handsontable 11.1.0 → 12.1.0

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.
Files changed (461) hide show
  1. package/3rdparty/walkontable/src/border.js +120 -98
  2. package/3rdparty/walkontable/src/border.mjs +120 -94
  3. package/3rdparty/walkontable/src/cell/coords.js +59 -17
  4. package/3rdparty/walkontable/src/cell/coords.mjs +55 -17
  5. package/3rdparty/walkontable/src/cell/range.d.ts +10 -2
  6. package/3rdparty/walkontable/src/cell/range.js +278 -99
  7. package/3rdparty/walkontable/src/cell/range.mjs +273 -99
  8. package/3rdparty/walkontable/src/core/_base.js +452 -0
  9. package/3rdparty/walkontable/src/core/_base.mjs +440 -0
  10. package/3rdparty/walkontable/src/core/clone.js +97 -0
  11. package/3rdparty/walkontable/src/core/clone.mjs +80 -0
  12. package/3rdparty/walkontable/src/core/core.js +183 -0
  13. package/3rdparty/walkontable/src/core/core.mjs +160 -0
  14. package/3rdparty/walkontable/src/event.js +99 -66
  15. package/3rdparty/walkontable/src/event.mjs +99 -63
  16. package/3rdparty/walkontable/src/facade/core.js +251 -0
  17. package/3rdparty/walkontable/src/facade/core.mjs +243 -0
  18. package/3rdparty/walkontable/src/index.js +2 -46
  19. package/3rdparty/walkontable/src/index.mjs +3 -13
  20. package/3rdparty/walkontable/src/overlay/_base.js +124 -57
  21. package/3rdparty/walkontable/src/overlay/_base.mjs +124 -57
  22. package/3rdparty/walkontable/src/overlay/bottom.js +96 -80
  23. package/3rdparty/walkontable/src/overlay/bottom.mjs +96 -80
  24. package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.js → bottomInlineStartCorner.js} +45 -62
  25. package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +44 -61
  26. package/3rdparty/walkontable/src/overlay/constants.js +25 -9
  27. package/3rdparty/walkontable/src/overlay/constants.mjs +14 -4
  28. package/3rdparty/walkontable/src/overlay/index.js +10 -19
  29. package/3rdparty/walkontable/src/overlay/index.mjs +4 -5
  30. package/3rdparty/walkontable/src/overlay/{left.js → inlineStart.js} +113 -82
  31. package/3rdparty/walkontable/src/overlay/{left.mjs → inlineStart.mjs} +112 -81
  32. package/3rdparty/walkontable/src/overlay/top.js +93 -68
  33. package/3rdparty/walkontable/src/overlay/top.mjs +93 -68
  34. package/3rdparty/walkontable/src/overlay/{topLeftCorner.js → topInlineStartCorner.js} +56 -57
  35. package/3rdparty/walkontable/src/overlay/{topLeftCorner.mjs → topInlineStartCorner.mjs} +51 -52
  36. package/3rdparty/walkontable/src/overlays.js +225 -156
  37. package/3rdparty/walkontable/src/overlays.mjs +224 -154
  38. package/3rdparty/walkontable/src/renderer/cells.js +4 -3
  39. package/3rdparty/walkontable/src/renderer/cells.mjs +4 -3
  40. package/3rdparty/walkontable/src/renderer/colGroup.js +2 -2
  41. package/3rdparty/walkontable/src/renderer/colGroup.mjs +2 -2
  42. package/3rdparty/walkontable/src/renderer/columnHeaders.js +2 -2
  43. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +2 -2
  44. package/3rdparty/walkontable/src/renderer/rowHeaders.js +2 -2
  45. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +2 -2
  46. package/3rdparty/walkontable/src/renderer/rows.js +2 -2
  47. package/3rdparty/walkontable/src/renderer/rows.mjs +2 -2
  48. package/3rdparty/walkontable/src/scroll.js +125 -104
  49. package/3rdparty/walkontable/src/scroll.mjs +124 -104
  50. package/3rdparty/walkontable/src/selection.js +10 -14
  51. package/3rdparty/walkontable/src/selection.mjs +10 -12
  52. package/3rdparty/walkontable/src/settings.js +235 -126
  53. package/3rdparty/walkontable/src/settings.mjs +235 -125
  54. package/3rdparty/walkontable/src/table/bottom.js +16 -5
  55. package/3rdparty/walkontable/src/table/bottom.mjs +15 -5
  56. package/3rdparty/walkontable/src/table/{bottomLeftCorner.js → bottomInlineStartCorner.js} +27 -15
  57. package/3rdparty/walkontable/src/table/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +26 -15
  58. package/3rdparty/walkontable/src/table/{left.js → inlineStart.js} +23 -15
  59. package/3rdparty/walkontable/src/table/{left.mjs → inlineStart.mjs} +22 -15
  60. package/3rdparty/walkontable/src/table/master.js +22 -12
  61. package/3rdparty/walkontable/src/table/master.mjs +22 -12
  62. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +12 -6
  63. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +12 -6
  64. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +12 -6
  65. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +12 -6
  66. package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.js → stickyColumnsStart.js} +13 -7
  67. package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.mjs → stickyColumnsStart.mjs} +13 -7
  68. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +11 -5
  69. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +11 -5
  70. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -3
  71. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -3
  72. package/3rdparty/walkontable/src/table/top.js +16 -5
  73. package/3rdparty/walkontable/src/table/top.mjs +15 -5
  74. package/3rdparty/walkontable/src/table/{topLeftCorner.js → topInlineStartCorner.js} +27 -15
  75. package/3rdparty/walkontable/src/table/{topLeftCorner.mjs → topInlineStartCorner.mjs} +26 -15
  76. package/3rdparty/walkontable/src/table.js +235 -140
  77. package/3rdparty/walkontable/src/table.mjs +231 -134
  78. package/3rdparty/walkontable/src/types.js +103 -0
  79. package/3rdparty/walkontable/src/types.mjs +102 -0
  80. package/3rdparty/walkontable/src/utils/column.js +22 -33
  81. package/3rdparty/walkontable/src/utils/column.mjs +22 -30
  82. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +2 -2
  83. package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +2 -2
  84. package/3rdparty/walkontable/src/utils/row.js +9 -4
  85. package/3rdparty/walkontable/src/utils/row.mjs +9 -4
  86. package/3rdparty/walkontable/src/viewport.js +89 -100
  87. package/3rdparty/walkontable/src/viewport.mjs +89 -97
  88. package/CHANGELOG.md +92 -0
  89. package/LICENSE.txt +1 -1
  90. package/README.md +0 -1
  91. package/base.js +2 -2
  92. package/base.mjs +2 -2
  93. package/cellTypes/timeType/timeType.d.ts +6 -6
  94. package/cellTypes/timeType/timeType.js +4 -5
  95. package/cellTypes/timeType/timeType.mjs +4 -5
  96. package/core.d.ts +6 -1
  97. package/core.js +508 -80
  98. package/core.mjs +517 -92
  99. package/dataMap/index.js +4 -0
  100. package/dataMap/index.mjs +2 -1
  101. package/dataMap/metaManager/index.js +2 -2
  102. package/dataMap/metaManager/index.mjs +2 -2
  103. package/dataMap/metaManager/metaLayers/globalMeta.js +4 -0
  104. package/dataMap/metaManager/metaLayers/globalMeta.mjs +4 -0
  105. package/dataMap/metaManager/metaLayers/tableMeta.js +2 -2
  106. package/dataMap/metaManager/metaLayers/tableMeta.mjs +2 -2
  107. package/dataMap/metaManager/metaSchema.js +282 -187
  108. package/dataMap/metaManager/metaSchema.mjs +282 -187
  109. package/dataMap/metaManager/mods/extendMetaProperties.js +126 -0
  110. package/dataMap/metaManager/mods/extendMetaProperties.mjs +113 -0
  111. package/dataMap/replaceData.js +3 -17
  112. package/dataMap/replaceData.mjs +3 -17
  113. package/dist/handsontable.css +268 -92
  114. package/dist/handsontable.full.css +269 -103
  115. package/dist/handsontable.full.js +41990 -35658
  116. package/dist/handsontable.full.min.css +9 -9
  117. package/dist/handsontable.full.min.js +144 -144
  118. package/dist/handsontable.js +29561 -25597
  119. package/dist/handsontable.min.css +8 -8
  120. package/dist/handsontable.min.js +4 -4
  121. package/dist/languages/all.js +131 -34
  122. package/dist/languages/all.min.js +1 -1
  123. package/dist/languages/ar-AR.js +167 -0
  124. package/dist/languages/ar-AR.min.js +1 -0
  125. package/dist/languages/cs-CZ.js +167 -0
  126. package/dist/languages/cs-CZ.min.js +1 -0
  127. package/dist/languages/de-CH.js +31 -29
  128. package/dist/languages/de-CH.min.js +1 -1
  129. package/dist/languages/de-DE.js +4 -2
  130. package/dist/languages/de-DE.min.js +1 -1
  131. package/dist/languages/en-US.js +4 -2
  132. package/dist/languages/en-US.min.js +1 -1
  133. package/dist/languages/es-MX.js +4 -2
  134. package/dist/languages/es-MX.min.js +1 -1
  135. package/dist/languages/fr-FR.js +4 -2
  136. package/dist/languages/fr-FR.min.js +1 -1
  137. package/dist/languages/it-IT.js +4 -2
  138. package/dist/languages/it-IT.min.js +1 -1
  139. package/dist/languages/ja-JP.js +36 -38
  140. package/dist/languages/ja-JP.min.js +1 -1
  141. package/dist/languages/ko-KR.js +36 -39
  142. package/dist/languages/ko-KR.min.js +1 -1
  143. package/dist/languages/lv-LV.js +2 -2
  144. package/dist/languages/lv-LV.min.js +1 -1
  145. package/dist/languages/nb-NO.js +2 -2
  146. package/dist/languages/nb-NO.min.js +1 -1
  147. package/dist/languages/nl-NL.js +2 -2
  148. package/dist/languages/nl-NL.min.js +1 -1
  149. package/dist/languages/pl-PL.js +2 -2
  150. package/dist/languages/pl-PL.min.js +1 -1
  151. package/dist/languages/pt-BR.js +2 -2
  152. package/dist/languages/pt-BR.min.js +1 -1
  153. package/dist/languages/ru-RU.js +2 -2
  154. package/dist/languages/ru-RU.min.js +1 -1
  155. package/dist/languages/sr-SP.js +171 -0
  156. package/dist/languages/sr-SP.min.js +1 -0
  157. package/dist/languages/zh-CN.js +24 -24
  158. package/dist/languages/zh-CN.min.js +1 -1
  159. package/dist/languages/zh-TW.js +24 -24
  160. package/dist/languages/zh-TW.min.js +1 -1
  161. package/editorManager.js +120 -267
  162. package/editorManager.mjs +128 -278
  163. package/editors/autocompleteEditor/autocompleteEditor.js +22 -25
  164. package/editors/autocompleteEditor/autocompleteEditor.mjs +22 -25
  165. package/editors/baseEditor/baseEditor.js +205 -34
  166. package/editors/baseEditor/baseEditor.mjs +200 -32
  167. package/editors/checkboxEditor/checkboxEditor.js +2 -2
  168. package/editors/checkboxEditor/checkboxEditor.mjs +2 -2
  169. package/editors/dateEditor/dateEditor.js +21 -8
  170. package/editors/dateEditor/dateEditor.mjs +22 -9
  171. package/editors/dropdownEditor/dropdownEditor.js +3 -3
  172. package/editors/dropdownEditor/dropdownEditor.mjs +3 -3
  173. package/editors/handsontableEditor/handsontableEditor.js +106 -55
  174. package/editors/handsontableEditor/handsontableEditor.mjs +106 -55
  175. package/editors/index.d.ts +3 -0
  176. package/editors/index.js +6 -0
  177. package/editors/index.mjs +3 -1
  178. package/editors/numericEditor/numericEditor.js +2 -2
  179. package/editors/numericEditor/numericEditor.mjs +2 -2
  180. package/editors/passwordEditor/passwordEditor.js +3 -3
  181. package/editors/passwordEditor/passwordEditor.mjs +3 -3
  182. package/editors/selectEditor/selectEditor.js +65 -110
  183. package/editors/selectEditor/selectEditor.mjs +66 -109
  184. package/editors/textEditor/caretPositioner.js +49 -0
  185. package/editors/textEditor/caretPositioner.mjs +42 -0
  186. package/editors/textEditor/textEditor.js +205 -181
  187. package/editors/textEditor/textEditor.mjs +199 -179
  188. package/editors/timeEditor/index.d.ts +1 -0
  189. package/editors/timeEditor/index.js +9 -0
  190. package/editors/timeEditor/index.mjs +1 -0
  191. package/editors/timeEditor/timeEditor.d.ts +7 -0
  192. package/editors/timeEditor/timeEditor.js +105 -0
  193. package/editors/timeEditor/timeEditor.mjs +84 -0
  194. package/eventManager.js +4 -2
  195. package/eventManager.mjs +4 -2
  196. package/helpers/mixed.js +2 -2
  197. package/helpers/mixed.mjs +2 -2
  198. package/i18n/languages/ar-AR.js +41 -0
  199. package/i18n/languages/ar-AR.mjs +17 -0
  200. package/i18n/languages/cs-CZ.js +40 -0
  201. package/i18n/languages/cs-CZ.mjs +16 -0
  202. package/i18n/languages/index.js +12 -0
  203. package/i18n/languages/index.mjs +4 -1
  204. package/i18n/languages/sr-SP.js +40 -0
  205. package/i18n/languages/sr-SP.mjs +16 -0
  206. package/index.d.ts +4 -0
  207. package/languages/all.js +131 -34
  208. package/languages/ar-AR.js +167 -0
  209. package/languages/ar-AR.mjs +19 -0
  210. package/languages/cs-CZ.js +167 -0
  211. package/languages/cs-CZ.mjs +18 -0
  212. package/languages/de-CH.js +31 -29
  213. package/languages/de-DE.js +4 -2
  214. package/languages/en-US.js +4 -2
  215. package/languages/es-MX.js +4 -2
  216. package/languages/fr-FR.js +4 -2
  217. package/languages/index.js +131 -34
  218. package/languages/index.mjs +4 -1
  219. package/languages/it-IT.js +4 -2
  220. package/languages/ja-JP.js +36 -38
  221. package/languages/ko-KR.js +36 -39
  222. package/languages/lv-LV.js +2 -2
  223. package/languages/nb-NO.js +2 -2
  224. package/languages/nl-NL.js +2 -2
  225. package/languages/pl-PL.js +2 -2
  226. package/languages/pt-BR.js +2 -2
  227. package/languages/ru-RU.js +2 -2
  228. package/languages/sr-SP.js +171 -0
  229. package/languages/sr-SP.mjs +18 -0
  230. package/languages/zh-CN.js +24 -24
  231. package/languages/zh-TW.js +24 -24
  232. package/package.json +44 -4
  233. package/pluginHooks.js +49 -13
  234. package/pluginHooks.mjs +49 -13
  235. package/plugins/autoColumnSize/autoColumnSize.js +15 -10
  236. package/plugins/autoColumnSize/autoColumnSize.mjs +15 -10
  237. package/plugins/autoRowSize/autoRowSize.js +14 -9
  238. package/plugins/autoRowSize/autoRowSize.mjs +14 -9
  239. package/plugins/autofill/autofill.js +49 -33
  240. package/plugins/autofill/autofill.mjs +49 -32
  241. package/plugins/autofill/utils.js +10 -11
  242. package/plugins/autofill/utils.mjs +10 -10
  243. package/plugins/base/base.d.ts +8 -2
  244. package/plugins/base/base.js +67 -4
  245. package/plugins/base/base.mjs +66 -4
  246. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +3 -3
  247. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +3 -3
  248. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +3 -3
  249. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +3 -3
  250. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +3 -3
  251. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +3 -3
  252. package/plugins/collapsibleColumns/collapsibleColumns.js +27 -9
  253. package/plugins/collapsibleColumns/collapsibleColumns.mjs +27 -9
  254. package/plugins/columnSorting/columnSorting.js +5 -7
  255. package/plugins/columnSorting/columnSorting.mjs +5 -6
  256. package/plugins/columnSummary/columnSummary.js +3 -3
  257. package/plugins/columnSummary/columnSummary.mjs +3 -3
  258. package/plugins/comments/commentEditor.js +18 -2
  259. package/plugins/comments/commentEditor.mjs +19 -3
  260. package/plugins/comments/comments.js +57 -46
  261. package/plugins/comments/comments.mjs +58 -46
  262. package/plugins/contextMenu/contextMenu.js +10 -6
  263. package/plugins/contextMenu/contextMenu.mjs +10 -6
  264. package/plugins/contextMenu/menu.js +222 -110
  265. package/plugins/contextMenu/menu.mjs +219 -111
  266. package/plugins/contextMenu/predefinedItems/columnLeft.js +12 -4
  267. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +11 -4
  268. package/plugins/contextMenu/predefinedItems/columnRight.js +9 -9
  269. package/plugins/contextMenu/predefinedItems/columnRight.mjs +9 -9
  270. package/plugins/contextMenu/utils.js +2 -2
  271. package/plugins/contextMenu/utils.mjs +2 -2
  272. package/plugins/copyPaste/copyPaste.js +31 -21
  273. package/plugins/copyPaste/copyPaste.mjs +30 -21
  274. package/plugins/customBorders/contextMenuItem/left.js +4 -3
  275. package/plugins/customBorders/contextMenuItem/left.mjs +4 -3
  276. package/plugins/customBorders/contextMenuItem/right.js +4 -3
  277. package/plugins/customBorders/contextMenuItem/right.mjs +4 -3
  278. package/plugins/customBorders/customBorders.js +144 -87
  279. package/plugins/customBorders/customBorders.mjs +143 -85
  280. package/plugins/customBorders/utils.js +131 -27
  281. package/plugins/customBorders/utils.mjs +115 -27
  282. package/plugins/dragToScroll/dragToScroll.js +10 -5
  283. package/plugins/dragToScroll/dragToScroll.mjs +10 -5
  284. package/plugins/dropdownMenu/dropdownMenu.js +9 -7
  285. package/plugins/dropdownMenu/dropdownMenu.mjs +9 -7
  286. package/plugins/exportFile/exportFile.js +2 -2
  287. package/plugins/exportFile/exportFile.mjs +2 -2
  288. package/plugins/exportFile/types/csv.js +2 -2
  289. package/plugins/exportFile/types/csv.mjs +2 -2
  290. package/plugins/filters/component/actionBar.js +2 -2
  291. package/plugins/filters/component/actionBar.mjs +2 -2
  292. package/plugins/filters/component/condition.js +3 -3
  293. package/plugins/filters/component/condition.mjs +3 -3
  294. package/plugins/filters/component/operators.js +2 -2
  295. package/plugins/filters/component/operators.mjs +2 -2
  296. package/plugins/filters/component/value.js +3 -3
  297. package/plugins/filters/component/value.mjs +3 -3
  298. package/plugins/filters/filters.js +11 -8
  299. package/plugins/filters/filters.mjs +11 -8
  300. package/plugins/filters/ui/input.js +3 -3
  301. package/plugins/filters/ui/input.mjs +3 -3
  302. package/plugins/filters/ui/link.js +3 -3
  303. package/plugins/filters/ui/link.mjs +3 -3
  304. package/plugins/filters/ui/multipleSelect.js +18 -31
  305. package/plugins/filters/ui/multipleSelect.mjs +18 -31
  306. package/plugins/filters/ui/radioInput.js +3 -3
  307. package/plugins/filters/ui/radioInput.mjs +3 -3
  308. package/plugins/filters/ui/select.js +4 -4
  309. package/plugins/filters/ui/select.mjs +4 -4
  310. package/plugins/formulas/formulas.js +14 -9
  311. package/plugins/formulas/formulas.mjs +14 -9
  312. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +2 -4
  313. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +2 -4
  314. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +5 -5
  315. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +5 -5
  316. package/plugins/hiddenColumns/hiddenColumns.js +9 -4
  317. package/plugins/hiddenColumns/hiddenColumns.mjs +9 -4
  318. package/plugins/hiddenRows/contextMenuItem/hideRow.js +2 -4
  319. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +2 -4
  320. package/plugins/hiddenRows/contextMenuItem/showRow.js +5 -5
  321. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +5 -5
  322. package/plugins/hiddenRows/hiddenRows.js +9 -4
  323. package/plugins/hiddenRows/hiddenRows.mjs +9 -4
  324. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
  325. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
  326. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
  327. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
  328. package/plugins/manualColumnFreeze/manualColumnFreeze.js +54 -15
  329. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +49 -15
  330. package/plugins/manualColumnMove/manualColumnMove.js +70 -70
  331. package/plugins/manualColumnMove/manualColumnMove.mjs +71 -71
  332. package/plugins/manualColumnMove/ui/_base.js +25 -12
  333. package/plugins/manualColumnMove/ui/_base.mjs +24 -12
  334. package/plugins/manualColumnMove/ui/backlight.js +3 -3
  335. package/plugins/manualColumnMove/ui/backlight.mjs +3 -3
  336. package/plugins/manualColumnMove/ui/guideline.js +3 -3
  337. package/plugins/manualColumnMove/ui/guideline.mjs +3 -3
  338. package/plugins/manualColumnResize/manualColumnResize.js +37 -21
  339. package/plugins/manualColumnResize/manualColumnResize.mjs +37 -21
  340. package/plugins/manualRowMove/manualRowMove.js +26 -34
  341. package/plugins/manualRowMove/manualRowMove.mjs +26 -34
  342. package/plugins/manualRowMove/ui/backlight.js +3 -3
  343. package/plugins/manualRowMove/ui/backlight.mjs +3 -3
  344. package/plugins/manualRowMove/ui/guideline.js +3 -3
  345. package/plugins/manualRowMove/ui/guideline.mjs +3 -3
  346. package/plugins/manualRowResize/manualRowResize.js +34 -19
  347. package/plugins/manualRowResize/manualRowResize.mjs +34 -19
  348. package/plugins/mergeCells/calculations/autofill.js +6 -5
  349. package/plugins/mergeCells/calculations/autofill.mjs +6 -4
  350. package/plugins/mergeCells/calculations/selection.js +9 -4
  351. package/plugins/mergeCells/calculations/selection.mjs +9 -4
  352. package/plugins/mergeCells/cellCoords.js +16 -4
  353. package/plugins/mergeCells/cellCoords.mjs +16 -3
  354. package/plugins/mergeCells/cellsCollection.js +30 -23
  355. package/plugins/mergeCells/cellsCollection.mjs +30 -22
  356. package/plugins/mergeCells/mergeCells.js +94 -61
  357. package/plugins/mergeCells/mergeCells.mjs +94 -59
  358. package/plugins/multiColumnSorting/multiColumnSorting.js +4 -6
  359. package/plugins/multiColumnSorting/multiColumnSorting.mjs +4 -5
  360. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +51 -57
  361. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +52 -57
  362. package/plugins/nestedHeaders/nestedHeaders.js +31 -20
  363. package/plugins/nestedHeaders/nestedHeaders.mjs +31 -20
  364. package/plugins/nestedHeaders/stateManager/utils.js +3 -4
  365. package/plugins/nestedHeaders/stateManager/utils.mjs +3 -4
  366. package/plugins/nestedHeaders/utils/ghostTable.js +114 -75
  367. package/plugins/nestedHeaders/utils/ghostTable.mjs +114 -74
  368. package/plugins/nestedRows/nestedRows.js +9 -4
  369. package/plugins/nestedRows/nestedRows.mjs +9 -4
  370. package/plugins/nestedRows/ui/collapsing.js +2 -2
  371. package/plugins/nestedRows/ui/collapsing.mjs +2 -2
  372. package/plugins/nestedRows/ui/contextMenu.js +2 -2
  373. package/plugins/nestedRows/ui/contextMenu.mjs +2 -2
  374. package/plugins/nestedRows/ui/headers.js +2 -2
  375. package/plugins/nestedRows/ui/headers.mjs +2 -2
  376. package/plugins/nestedRows/utils/rowMoveController.js +2 -4
  377. package/plugins/nestedRows/utils/rowMoveController.mjs +2 -3
  378. package/plugins/persistentState/persistentState.js +9 -4
  379. package/plugins/persistentState/persistentState.mjs +9 -4
  380. package/plugins/search/search.js +9 -4
  381. package/plugins/search/search.mjs +9 -4
  382. package/plugins/touchScroll/touchScroll.js +27 -21
  383. package/plugins/touchScroll/touchScroll.mjs +27 -21
  384. package/plugins/trimRows/trimRows.js +9 -4
  385. package/plugins/trimRows/trimRows.mjs +9 -4
  386. package/plugins/undoRedo/undoRedo.js +53 -47
  387. package/plugins/undoRedo/undoRedo.mjs +53 -46
  388. package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -3
  389. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +1 -2
  390. package/renderers/checkboxRenderer/checkboxRenderer.js +48 -43
  391. package/renderers/checkboxRenderer/checkboxRenderer.mjs +48 -41
  392. package/renderers/index.d.ts +4 -1
  393. package/renderers/index.js +6 -0
  394. package/renderers/index.mjs +3 -1
  395. package/renderers/numericRenderer/numericRenderer.js +1 -0
  396. package/renderers/numericRenderer/numericRenderer.mjs +1 -0
  397. package/renderers/timeRenderer/index.d.ts +1 -0
  398. package/renderers/timeRenderer/index.js +9 -0
  399. package/renderers/timeRenderer/index.mjs +1 -0
  400. package/renderers/timeRenderer/timeRenderer.d.ts +5 -0
  401. package/renderers/timeRenderer/timeRenderer.js +31 -0
  402. package/renderers/timeRenderer/timeRenderer.mjs +20 -0
  403. package/selection/highlight/visualSelection.js +94 -220
  404. package/selection/highlight/visualSelection.mjs +91 -213
  405. package/selection/mouseEventHandler.js +15 -10
  406. package/selection/mouseEventHandler.mjs +15 -9
  407. package/selection/range.js +4 -5
  408. package/selection/range.mjs +4 -5
  409. package/selection/selection.js +35 -22
  410. package/selection/selection.mjs +35 -20
  411. package/selection/transformation.js +4 -6
  412. package/selection/transformation.mjs +4 -5
  413. package/settings.d.ts +3 -1
  414. package/shortcuts/context.d.ts +20 -0
  415. package/shortcuts/context.js +296 -0
  416. package/shortcuts/context.mjs +268 -0
  417. package/shortcuts/index.d.ts +1 -0
  418. package/shortcuts/index.js +8 -0
  419. package/shortcuts/index.mjs +1 -0
  420. package/shortcuts/keyObserver.js +67 -0
  421. package/shortcuts/keyObserver.mjs +58 -0
  422. package/shortcuts/manager.d.ts +10 -0
  423. package/shortcuts/manager.js +185 -0
  424. package/shortcuts/manager.mjs +176 -0
  425. package/shortcuts/recorder.js +192 -0
  426. package/shortcuts/recorder.mjs +180 -0
  427. package/shortcuts/utils.js +77 -0
  428. package/shortcuts/utils.mjs +54 -0
  429. package/tableView.js +164 -84
  430. package/tableView.mjs +164 -74
  431. package/translations/changesObservable/observer.js +0 -1
  432. package/translations/changesObservable/observer.mjs +0 -1
  433. package/translations/indexMapper.d.ts +3 -1
  434. package/translations/indexMapper.js +89 -11
  435. package/translations/indexMapper.mjs +91 -20
  436. package/translations/mapCollections/aggregatedCollection.js +2 -2
  437. package/translations/mapCollections/aggregatedCollection.mjs +2 -2
  438. package/translations/maps/hidingMap.js +4 -2
  439. package/translations/maps/hidingMap.mjs +4 -2
  440. package/translations/maps/indexMap.js +2 -0
  441. package/translations/maps/indexMap.mjs +2 -0
  442. package/translations/maps/indexesSequence.js +5 -3
  443. package/translations/maps/indexesSequence.mjs +5 -3
  444. package/translations/maps/linkedPhysicalIndexToValueMap.js +5 -3
  445. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +5 -3
  446. package/translations/maps/physicalIndexToValueMap.js +5 -3
  447. package/translations/maps/physicalIndexToValueMap.mjs +5 -3
  448. package/translations/maps/trimmingMap.js +4 -2
  449. package/translations/maps/trimmingMap.mjs +4 -2
  450. package/utils/dataStructures/uniqueMap.js +14 -1
  451. package/utils/dataStructures/uniqueMap.mjs +14 -1
  452. package/utils/dataStructures/uniqueSet.js +9 -0
  453. package/utils/dataStructures/uniqueSet.mjs +9 -0
  454. package/utils/ghostTable.js +1 -1
  455. package/utils/ghostTable.mjs +1 -1
  456. package/3rdparty/walkontable/src/core.js +0 -309
  457. package/3rdparty/walkontable/src/core.mjs +0 -293
  458. package/3rdparty/walkontable/src/overlay/registerer.js +0 -70
  459. package/3rdparty/walkontable/src/overlay/registerer.mjs +0 -57
  460. package/utils/keyStateObserver.js +0 -121
  461. package/utils/keyStateObserver.mjs +0 -103
@@ -20,13 +20,13 @@ import { isObjectEqual } from "../../helpers/object.mjs";
20
20
  * [Configuration options](@/guides/getting-started/setting-options.md) let you heavily customize your Handsontable instance. For example, you can:
21
21
  *
22
22
  * - Enable and disable built-in features
23
- * - Enable and configure additional [plugins](@/guides/building-and-testing/plugins.md)
23
+ * - Enable and configure additional [plugins](@/guides/tools-and-building/custom-plugins.md)
24
24
  * - Personalize Handsontable's look
25
25
  * - Adjust Handsontable's behavior
26
26
  * - Implement your own custom features
27
27
  *
28
28
  * To apply [configuration options](@/guides/getting-started/setting-options.md), pass them as
29
- * a second argument of the [Handsontable constructor](@/guides/getting-started/installation.md#initialize-the-grid),
29
+ * a second argument of the [Handsontable constructor](@/guides/getting-started/installation.md#initialize-handsontable),
30
30
  * using the [object literal notation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer):
31
31
  *
32
32
  * ```js
@@ -56,7 +56,7 @@ import { isObjectEqual } from "../../helpers/object.mjs";
56
56
  * - [Individual grid elements, based on any logic you implement](@/guides/getting-started/setting-options.md#implementing-custom-logic)
57
57
  *
58
58
  * Read more:
59
- * - [Configuration options →](@/guides/getting-started/setting-options.md)
59
+ * - [Configuration options](@/guides/getting-started/setting-options.md)
60
60
  */
61
61
 
62
62
  export default (function () {
@@ -144,8 +144,8 @@ export default (function () {
144
144
  * __Warning:__ Setting the `allowHtml` option to `true` can cause serious XSS vulnerabilities.
145
145
  *
146
146
  * Read more:
147
- * - [Autocomplete cell type →](@/guides/cell-types/autocomplete-cell-type.md)
148
- * - [Dropdown cell type →](@/guides/cell-types/dropdown-cell-type.md)
147
+ * - [Autocomplete cell type](@/guides/cell-types/autocomplete-cell-type.md)
148
+ * - [Dropdown cell type](@/guides/cell-types/dropdown-cell-type.md)
149
149
  * - [`source`](#source)
150
150
  *
151
151
  * @memberof Options#
@@ -219,9 +219,9 @@ export default (function () {
219
219
  * Setting the `allowInvalid` option to `false` can be useful when used with the [Autocomplete strict mode](@/guides/cell-types/autocomplete-cell-type.md#autocomplete-strict-mode).
220
220
  *
221
221
  * Read more:
222
- * - [Cell validator →](@/guides/cell-functions/cell-validator.md)
223
- * - [Cell editor →](@/guides/cell-functions/cell-editor.md)
224
- * - [Autocomplete strict mode →](@/guides/cell-types/autocomplete-cell-type.md#autocomplete-strict-mode)
222
+ * - [Cell validator](@/guides/cell-functions/cell-validator.md)
223
+ * - [Cell editor](@/guides/cell-functions/cell-editor.md)
224
+ * - [Autocomplete strict mode](@/guides/cell-types/autocomplete-cell-type.md#autocomplete-strict-mode)
225
225
  *
226
226
  * @memberof Options#
227
227
  * @type {boolean}
@@ -243,7 +243,7 @@ export default (function () {
243
243
  * - **Remove column**
244
244
  *
245
245
  * Read more:
246
- * - [Context menu →](@/guides/accessories-and-menus/context-menu.md)
246
+ * - [Context menu](@/guides/accessories-and-menus/context-menu.md)
247
247
  *
248
248
  * @memberof Options#
249
249
  * @type {boolean}
@@ -263,7 +263,7 @@ export default (function () {
263
263
  * - **Remove row**
264
264
  *
265
265
  * Read more:
266
- * - [Context menu →](@/guides/accessories-and-menus/context-menu.md)
266
+ * - [Context menu](@/guides/accessories-and-menus/context-menu.md)
267
267
  *
268
268
  * @memberof Options#
269
269
  * @type {boolean}
@@ -306,7 +306,7 @@ export default (function () {
306
306
  * Using the [`colWidths`](#colWidths) option forcibly disables the [`AutoColumnSize`](@/api/autoColumnSize.md) plugin.
307
307
  *
308
308
  * Read more:
309
- * - [Plugins: `AutoColumnSize` →](@/api/autoColumnSize.md)
309
+ * - [Plugins: `AutoColumnSize`](@/api/autoColumnSize.md)
310
310
  *
311
311
  * @memberof Options#
312
312
  * @type {object|boolean}
@@ -352,7 +352,7 @@ export default (function () {
352
352
  * Using the [`rowHeights`](#rowHeights) option forcibly disables the [`AutoRowSize`](@/api/autoRowSize.md) plugin.
353
353
  *
354
354
  * Read more:
355
- * - [Plugins: `AutoRowSize` →](@/api/autoRowSize.md)
355
+ * - [Plugins: `AutoRowSize`](@/api/autoRowSize.md)
356
356
  *
357
357
  * @memberof Options#
358
358
  * @type {object|boolean}
@@ -427,7 +427,7 @@ export default (function () {
427
427
  * | `true` | Enable the the [`BindRowsWithHeaders`](@/api/bindRowsWithHeaders.md) plugin |
428
428
  *
429
429
  * Read more:
430
- * - [Plugins: `BindRowsWithHeaders` →](@/api/bindRowsWithHeaders.md)
430
+ * - [Plugins: `BindRowsWithHeaders`](@/api/bindRowsWithHeaders.md)
431
431
  *
432
432
  * @memberof Options#
433
433
  * @type {boolean|string}
@@ -449,7 +449,7 @@ export default (function () {
449
449
  * and the [`columns`](#columns) options.
450
450
  *
451
451
  * Read more:
452
- * - [Configuration options: Setting cell options →](@/guides/getting-started/setting-options.md#setting-cell-options)
452
+ * - [Configuration options: Setting cell options](@/guides/getting-started/setting-options.md#setting-cell-options)
453
453
  * - [`columns`](#columns)
454
454
  *
455
455
  * @memberof Options#
@@ -487,8 +487,8 @@ export default (function () {
487
487
  * | `prop` | No | String \| Number | If [`data`](#data) is set to an [array of arrays](@/guides/getting-started/binding-to-data.md#array-of-arrays), `prop` is the same number as `column`.<br><br>If [`data`](#data) is set to an [array of objects](@/guides/getting-started/binding-to-data.md#array-of-objects), `prop` is a property name for the column's data object. |
488
488
  *
489
489
  * Read more:
490
- * - [Configuration options: Implementing custom logic &#8594;](@/guides/getting-started/setting-options.md#implementing-custom-logic)
491
- * - [Configuration options: Setting row options &#8594;](@/guides/getting-started/setting-options.md#setting-row-options)
490
+ * - [Configuration options: Implementing custom logic](@/guides/getting-started/setting-options.md#implementing-custom-logic)
491
+ * - [Configuration options: Setting row options](@/guides/getting-started/setting-options.md#setting-row-options)
492
492
  * - [`columns`](#columns)
493
493
  * - [`cell`](#cell)
494
494
  *
@@ -527,8 +527,8 @@ export default (function () {
527
527
  * | A string | If a [`checkbox`](@/guides/cell-types/checkbox-cell-type.md) cell is checked,<br>the [`getDataAtCell`](@/api/core.md#getDataAtCell) method for this cell returns a string of your choice |
528
528
  *
529
529
  * Read more:
530
- * - [Checkbox cell type: Checkbox template &#8594;](@/guides/cell-types/checkbox-cell-type.md#checkbox-template)
531
- * - [`getDataAtCell()` &#8594;](@/api/core.md#getDataAtCell)
530
+ * - [Checkbox cell type: Checkbox template](@/guides/cell-types/checkbox-cell-type.md#checkbox-template)
531
+ * - [`getDataAtCell()`](@/api/core.md#getDataAtCell)
532
532
  * - [`uncheckedTemplate`](#uncheckedTemplate)
533
533
  *
534
534
  * @memberof Options#
@@ -571,7 +571,7 @@ export default (function () {
571
571
  * To apply different CSS class names on different levels, use Handsontable's [cascading configuration](@/guides/getting-started/setting-options.md#cascading-configuration).
572
572
  *
573
573
  * Read more:
574
- * - [Configuration options: Cascading configuration &#8594;](@/guides/getting-started/setting-options.md#cascading-configuration)
574
+ * - [Configuration options: Cascading configuration](@/guides/getting-started/setting-options.md#cascading-configuration)
575
575
  * - [`currentRowClassName`](#currentRowClassName)
576
576
  * - [`currentColClassName`](#currentColClassName)
577
577
  * - [`currentHeaderClassName`](#currentHeaderClassName)
@@ -614,7 +614,7 @@ export default (function () {
614
614
  * | A function | Define your own column headers, using a function |
615
615
  *
616
616
  * Read more:
617
- * - [Column header &#8594;](@/guides/columns/column-header.md)
617
+ * - [Column header](@/guides/columns/column-header.md)
618
618
  *
619
619
  * @memberof Options#
620
620
  * @type {boolean|string[]|Function}
@@ -650,7 +650,7 @@ export default (function () {
650
650
  * | An array of objects | Enable the [`CollapsibleColumns`](@/api/collapsibleColumns.md) plugin for selected column headers |
651
651
  *
652
652
  * Read more:
653
- * - [Plugins: `CollapsibleColumns` &#8594;](@/api/collapsibleColumns.md)
653
+ * - [Plugins: `CollapsibleColumns`](@/api/collapsibleColumns.md)
654
654
  *
655
655
  * @memberof Options#
656
656
  * @type {boolean|object[]}
@@ -711,7 +711,7 @@ export default (function () {
711
711
  * When you use the `columns` option, the [`startCols`](#startCols), [`minCols`](#minCols), and [`maxCols`](#maxCols) are ignored.
712
712
  *
713
713
  * Read more:
714
- * - [Configuration options: Setting column options &#8594;](@/guides/getting-started/setting-options.md#setting-column-options)
714
+ * - [Configuration options: Setting column options](@/guides/getting-started/setting-options.md#setting-column-options)
715
715
  * - [`startCols`](#startCols)
716
716
  * - [`minCols`](#minCols)
717
717
  * - [`maxCols`](#maxCols)
@@ -784,8 +784,8 @@ export default (function () {
784
784
  * | `sortOrder` | `'asc'` \| `'desc'` | The sorting order:<br>`'asc'`: ascending<br>`'desc'`: descending |
785
785
  *
786
786
  * Read more:
787
- * - [Row sorting &#8594;](@/guides/rows/row-sorting.md)
788
- * - [Row sorting: Custom compare functions &#8594;](@/guides/rows/row-sorting.md#custom-compare-functions)
787
+ * - [Row sorting](@/guides/rows/row-sorting.md)
788
+ * - [Row sorting: Custom compare functions](@/guides/rows/row-sorting.md#custom-compare-functions)
789
789
  * - [`multiColumnSorting`](#multiColumnSorting)
790
790
  *
791
791
  * @memberof Options#
@@ -853,8 +853,8 @@ export default (function () {
853
853
  * | `customFunction` | A function | [Custom summary function](@/guides/columns/column-summary.md#implementing-a-custom-summary-function) |
854
854
  *
855
855
  * Read more:
856
- * - [Column summary &#8594;](@/guides/columns/column-summary.md)
857
- * - [Plugins: `ColumnSummary` &#8594;](@/api/columnSummary.md)
856
+ * - [Column summary](@/guides/columns/column-summary.md)
857
+ * - [Plugins: `ColumnSummary`](@/api/columnSummary.md)
858
858
  *
859
859
  * @memberof Options#
860
860
  * @type {object[]|Function}
@@ -903,8 +903,8 @@ export default (function () {
903
903
  * Setting the `colWidths` option disables the {@link AutoColumnSize} plugin.
904
904
  *
905
905
  * Read more:
906
- * - [Column width &#8594;](@/guides/columns/column-width.md)
907
- * - [Hooks: `modifyColWidth` &#8594;](@/api/hooks.md#modifyColWidth)
906
+ * - [Column width](@/guides/columns/column-width.md)
907
+ * - [Hooks: `modifyColWidth`](@/api/hooks.md#modifyColWidth)
908
908
  * - [`autoColumnSize`](#autoColumnSize)
909
909
  *
910
910
  * @memberof Options#
@@ -939,7 +939,7 @@ export default (function () {
939
939
  * that have comments.
940
940
  *
941
941
  * Read more:
942
- * - [Comments &#8594;](@/guides/cell-features/comments.md)
942
+ * - [Comments](@/guides/cell-features/comments.md)
943
943
  * - [`comments`](#comments)
944
944
  * - [`readOnlyCellClassName`](#readOnlyCellClassName)
945
945
  * - [`currentRowClassName`](#currentRowClassName)
@@ -987,8 +987,8 @@ export default (function () {
987
987
  * | `style` | An object | Set comment boxes' `width` and `height` (in pixels) |
988
988
  *
989
989
  * Read more:
990
- * - [Comments &#8594;](@/guides/cell-features/comments.md)
991
- * - [Context menu &#8594;](@/guides/accessories-and-menus/context-menu.md)
990
+ * - [Comments](@/guides/cell-features/comments.md)
991
+ * - [Context menu](@/guides/accessories-and-menus/context-menu.md)
992
992
  * - [`width`](#width)
993
993
  * - [`height`](#height)
994
994
  * - [`readOnly`](#readOnly)
@@ -1035,11 +1035,11 @@ export default (function () {
1035
1035
  * | An object | - Enable the [`ContextMenu`](@/api/contextMenu.md) plugin<br>- Apply a [custom context menu configuration](@/guides/accessories-and-menus/context-menu.md#context-menu-with-fully-custom-configuration) |
1036
1036
  *
1037
1037
  * Read more:
1038
- * - [Context menu &#8594;](@/guides/accessories-and-menus/context-menu.md)
1039
- * - [Context menu: Context menu with default options &#8594;](@/guides/accessories-and-menus/context-menu.md#context-menu-with-default-options)
1040
- * - [Context menu: Context menu with specific options &#8594;](@/guides/accessories-and-menus/context-menu.md#context-menu-with-specific-options)
1041
- * - [Context menu: Context menu with fully custom configuration options &#8594;](@/guides/accessories-and-menus/context-menu.md#context-menu-with-fully-custom-configuration)
1042
- * - [Plugins: `ContextMenu` &#8594;](@/api/contextMenu.md)
1038
+ * - [Context menu](@/guides/accessories-and-menus/context-menu.md)
1039
+ * - [Context menu: Context menu with default options](@/guides/accessories-and-menus/context-menu.md#context-menu-with-default-options)
1040
+ * - [Context menu: Context menu with specific options](@/guides/accessories-and-menus/context-menu.md#context-menu-with-specific-options)
1041
+ * - [Context menu: Context menu with fully custom configuration options](@/guides/accessories-and-menus/context-menu.md#context-menu-with-fully-custom-configuration)
1042
+ * - [Plugins: `ContextMenu`](@/api/contextMenu.md)
1043
1043
  *
1044
1044
  * @memberof Options#
1045
1045
  * @type {boolean|string[]|object}
@@ -1092,13 +1092,13 @@ export default (function () {
1092
1092
  *
1093
1093
  * | Setting | Description |
1094
1094
  * | -------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
1095
- * | `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 |
1095
+ * | `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 |
1096
1096
  * | `false`<br>(default for the [`password`](@/guides/cell-types/password-cell-type.md) [cell type](#type)) | - Disable copying for this cell |
1097
1097
  *
1098
1098
  * Read more:
1099
- * - [Clipboard &#8594;](@/guides/cell-features/clipboard.md)
1100
- * - [Configuration options: Cascading configuration &#8594;](@/guides/getting-started/setting-options.md#cascading-configuration)
1101
- * - [Password cell type &#8594;](@/guides/cell-types/password-cell-type.md)
1099
+ * - [Clipboard](@/guides/cell-features/clipboard.md)
1100
+ * - [Configuration options: Cascading configuration](@/guides/getting-started/setting-options.md#cascading-configuration)
1101
+ * - [Password cell type](@/guides/cell-types/password-cell-type.md)
1102
1102
  *
1103
1103
  * @memberof Options#
1104
1104
  * @type {boolean}
@@ -1156,7 +1156,7 @@ export default (function () {
1156
1156
  * | `uiContainer` | An HTML element | A UI container for the secondary focusable element |
1157
1157
  *
1158
1158
  * Read more:
1159
- * - [Plugins: `CopyPaste` &#8594;](@/api/copyPaste.md)
1159
+ * - [Plugins: `CopyPaste`](@/api/copyPaste.md)
1160
1160
  *
1161
1161
  * @memberof Options#
1162
1162
  * @type {object|boolean}
@@ -1185,17 +1185,15 @@ export default (function () {
1185
1185
  copyPaste: true,
1186
1186
 
1187
1187
  /**
1188
- * The `correctFormat` option configures [`date`](@/guides/cell-types/date-cell-type.md) cells' date format correction.
1188
+ * 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:
1189
1189
  *
1190
- * You can set the `correctFormat` option to one of the following
1191
- *
1192
- * | Setting | Description |
1193
- * | ----------------- | --------------------------------------------------------------------- |
1194
- * | `false` (default) | Don't correct dates |
1195
- * | `true` | Enforce the date format set by the [`dateFormat`](#dateFormat) option |
1190
+ * | Setting | Description |
1191
+ * | ----------------- | ---------------------------------------------------------------------------------- |
1192
+ * | `false` (default) | Don't correct the entered date's format (treat the entered date as invalid) |
1193
+ * | `true` | Correct the entered date's format to match the [`dateFormat`](#dateFormat) setting |
1196
1194
  *
1197
1195
  * Read more:
1198
- * - [Date cell type &#8594;](@/guides/cell-types/date-cell-type.md)
1196
+ * - [Date cell type](@/guides/cell-types/date-cell-type.md)
1199
1197
  * - [`dateFormat`](#dateFormat)
1200
1198
  *
1201
1199
  * @memberof Options#
@@ -1325,10 +1323,10 @@ export default (function () {
1325
1323
  * | -------- | ------------------ | ---------------------------------- | ----------------------------------------------------------------- |
1326
1324
  * | `row` | - | `row`: Number | The cell's row coordinate. |
1327
1325
  * | `col` | - | `col`: Number | The cell's column coordinate. |
1328
- * | `left` | `width`<br>`color` | `width`: Number<br>`color`: String | Sets the left border's width (`width`)<br> and color (`color`). |
1329
- * | `right` | `width`<br>`color` | `width`: Number<br>`color`: String | Sets the right border's width (`width`)<br> and color (`color`). |
1330
- * | `top` | `width`<br>`color` | `width`: Number<br>`color`: String | Sets the top border's width (`width`)<br> and color (`color`). |
1331
- * | `bottom` | `width`<br>`color` | `width`: Number<br>`color`: String | Sets the bottom border's width (`width`)<br> and color (`color`). |
1326
+ * | `start` | `width`<br>`color` | `width`: Number<br>`color`: String | If the [layout direction](@/guides/internationalization/layout-direction.md) is LTR (default): `start` sets the width (`width`) and color (`color`) of the left-hand border.<br><br>If the [layout direction](@/guides/internationalization/layout-direction.md) is RTL: `start` sets the width (`width`) and color (`color`) of the right-hand border. |
1327
+ * | `end` | `width`<br>`color` | `width`: Number<br>`color`: String | If the [layout direction](@/guides/internationalization/layout-direction.md) is LTR (default): `end` sets the width (`width`) and color (`color`) of the right-hand border.<br><br>If the [layout direction](@/guides/internationalization/layout-direction.md) is RTL: `end` sets the width (`width`) and color (`color`) of the left-hand border. |
1328
+ * | `top` | `width`<br>`color` | `width`: Number<br>`color`: String | Sets the width (`width`) and color (`color`) of the top border. |
1329
+ * | `bottom` | `width`<br>`color` | `width`: Number<br>`color`: String | Sets the width (`width`) and color (`color`) of the bottom border. |
1332
1330
  *
1333
1331
  * To enable the [`CustomBorders`](@/api/customBorders.md) plugin
1334
1332
  * and add a predefined border around a range of cells,
@@ -1337,16 +1335,18 @@ export default (function () {
1337
1335
  *
1338
1336
  * | Property | Sub-properties | Types | Description |
1339
1337
  * | -------- | -------------------------------------------- | ---------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
1340
- * | `range` | `from` {`row`, `col`}<br>`to` {`row`, `col`} | `from`: Object<br>`to`: Object<br>`row`: Number<br>`col`: Number | `from` selects the range's top-left corner.<br>`to` selects the range's bottom-right corner. |
1341
- * | `left` | `width`<br>`color` | `width`: Number<br>`color`: String | Sets the left border's `width` and `color`. |
1342
- * | `right` | `width`<br>`color` | `width`: Number<br>`color`: String | Sets the right border's `width` and `color`. |
1343
- * | `top` | `width`<br>`color` | `width`: Number<br>`color`: String | Sets the top border's `width` and `color`. |
1344
- * | `bottom` | `width`<br>`color` | `width`: Number<br>`color`: String | Sets the bottom border's `width` and `color`. |
1338
+ * | `range` | `from` {`row`, `col`}<br>`to` {`row`, `col`} | `from`: Object<br>`to`: Object<br>`row`: Number<br>`col`: Number | If the [layout direction](@/guides/internationalization/layout-direction.md) is LTR (default):<br>- `from` selects the range's top-left corner.<br>- `to` selects the range's bottom-right corner.<br><br>If the [layout direction](@/guides/internationalization/layout-direction.md) is RTL: <br>- `from` selects the range's top-right corner.<br>- `to` selects the range's bottom-left corner. |
1339
+ * | `start` | `width`<br>`color` | `width`: Number<br>`color`: String | If the [layout direction](@/guides/internationalization/layout-direction.md) is LTR (default): `start` sets the width (`width`) and color (`color`) of the left-hand border.<br><br>If the [layout direction](@/guides/internationalization/layout-direction.md) is RTL: `start` sets the width (`width`) and color (`color`) of the right-hand border. |
1340
+ * | `end` | `width`<br>`color` | `width`: Number<br>`color`: String | If the [layout direction](@/guides/internationalization/layout-direction.md) is LTR (default): `end` sets the width (`width`) and color (`color`) of the right-hand border.<br><br>If the [layout direction](@/guides/internationalization/layout-direction.md) is RTL: `end` sets the width (`width`) and color (`color`) of the left-hand border. |
1341
+ * | `top` | `width`<br>`color` | `width`: Number<br>`color`: String | Sets the width (`width`) and color (`color`) of the top border. |
1342
+ * | `bottom` | `width`<br>`color` | `width`: Number<br>`color`: String | Sets the width (`width`) and color (`color`) of the bottom border. |
1345
1343
  *
1346
1344
  * Read more:
1347
- * - [Formatting cells: Custom cell borders &#8594;](@/guides/cell-features/formatting-cells.md#custom-cell-borders)
1348
- * - [Context menu &#8594;](@/guides/accessories-and-menus/context-menu.md)
1349
- * - [Plugins: `CustomBorders` &#8594;](@/api/customBorders.md)
1345
+ * - [Formatting cells: Custom cell borders](@/guides/cell-features/formatting-cells.md#custom-cell-borders)
1346
+ * - [Context menu](@/guides/accessories-and-menus/context-menu.md)
1347
+ * - [Plugins: `CustomBorders`](@/api/customBorders.md)
1348
+ * - [Layout direction](@/guides/internationalization/layout-direction.md)
1349
+ * - [`layoutDirection`](#layoutDirection)
1350
1350
  *
1351
1351
  * @memberof Options#
1352
1352
  * @type {boolean|object[]}
@@ -1367,13 +1367,13 @@ export default (function () {
1367
1367
  * row: 2,
1368
1368
  * // set the cell's column coordinate
1369
1369
  * col: 2,
1370
- * // set the left border's width and color
1371
- * left: {
1370
+ * // set the left/right border's width and color
1371
+ * start: {
1372
1372
  * width: 2,
1373
1373
  * color: 'red'
1374
1374
  * },
1375
- * // set the right border's width and color
1376
- * right: {
1375
+ * // set the right/left border's width and color
1376
+ * end: {
1377
1377
  * width: 1,
1378
1378
  * color: 'green'
1379
1379
  * },
@@ -1402,13 +1402,13 @@ export default (function () {
1402
1402
  * col: 4
1403
1403
  * }
1404
1404
  * },
1405
- * // set the left border's width and color
1406
- * left: {
1405
+ * // set the left/right border's width and color
1406
+ * start: {
1407
1407
  * width: 2,
1408
1408
  * color: 'red'
1409
1409
  * },
1410
- * // set the right border's width and color
1411
- * right: {},
1410
+ * // set the right/left border's width and color
1411
+ * end: {},
1412
1412
  * // set the top border's width and color
1413
1413
  * top: {},
1414
1414
  * // set the bottom border's width and color
@@ -1423,14 +1423,14 @@ export default (function () {
1423
1423
  * @description
1424
1424
  * The `data` option sets the initial [data](@/guides/getting-started/binding-to-data.md) of your Handsontable instance.
1425
1425
  *
1426
- * Handsontable's data is bound to your source data __by reference__ (i.e. when you edit Handsontable's data, your source data alters as well).
1426
+ * Handsontable's data is bound to your source data by reference (i.e. when you edit Handsontable's data, your source data alters as well).
1427
1427
  *
1428
1428
  * You can set the `data` option:
1429
1429
  * - Either to an [array of arrays](@/guides/getting-started/binding-to-data.md#array-of-arrays).
1430
1430
  * - Or to an [array of objects](@/guides/getting-started/binding-to-data.md#array-of-objects).
1431
1431
  *
1432
1432
  * Read more:
1433
- * - [Binding to data &#8594;](@/guides/getting-started/binding-to-data.md)
1433
+ * - [Binding to data](@/guides/getting-started/binding-to-data.md)
1434
1434
  * - [`dataSchema`](#dataSchema)
1435
1435
  *
1436
1436
  * @memberof Options#
@@ -1465,7 +1465,7 @@ export default (function () {
1465
1465
  * (or is empty), the `dataSchema` option defines the structure of new rows.
1466
1466
  *
1467
1467
  * Read more:
1468
- * - [Binding to data: Array of objects with custom data schema &#8594;](@/guides/getting-started/binding-to-data.md#array-of-objects-with-custom-data-schema)
1468
+ * - [Binding to data: Array of objects with custom data schema](@/guides/getting-started/binding-to-data.md#array-of-objects-with-custom-data-schema)
1469
1469
  * - [`data`](#data)
1470
1470
  *
1471
1471
  * @memberof Options#
@@ -1492,15 +1492,14 @@ export default (function () {
1492
1492
  dataSchema: void 0,
1493
1493
 
1494
1494
  /**
1495
- * The `dateFormat` option configures [`date`](@/guides/cell-types/date-cell-type.md) cells' date format.
1495
+ * The `dateFormat` option configures the date format accepted by [`date`](@/guides/cell-types/date-cell-type.md) cells.
1496
1496
  *
1497
- * You can set the `dateFormat` option to a date format string. The default value is: `'DD/MM/YYYY'`.
1497
+ * You can set the `dateFormat` option to a string with a proper date format. The default value is: `'DD/MM/YYYY'`.
1498
1498
  *
1499
- * To enforce the date format set by the `dateFormat` option,
1500
- * use the [`correctFormat`](#correctFormat) option.
1499
+ * To automatically correct dates whose format doesn't match the `dateFormat` setting, use the [`correctFormat`](#correctFormat) option.
1501
1500
  *
1502
1501
  * Read more:
1503
- * - [Date cell type &#8594;](@/guides/cell-types/date-cell-type.md)
1502
+ * - [Date cell type](@/guides/cell-types/date-cell-type.md)
1504
1503
  * - [`correctFormat`](#correctFormat)
1505
1504
  * - [`defaultDate`](#defaultDate)
1506
1505
  *
@@ -1543,7 +1542,7 @@ export default (function () {
1543
1542
  * Read more:
1544
1543
  * - [`editor`](#editor)
1545
1544
  * - [`dateFormat`](#dateFormat)
1546
- * - [Cell editor &#8594;](@/guides/cell-functions/cell-editor.md)
1545
+ * - [Cell editor](@/guides/cell-functions/cell-editor.md)
1547
1546
  * - [All Pikaday options &#8594;](https://github.com/Pikaday/Pikaday/tree/1.8.0#configuration)
1548
1547
  *
1549
1548
  * @memberof Options#
@@ -1560,7 +1559,7 @@ export default (function () {
1560
1559
  * You can set the `defaultDate` option to a string.
1561
1560
  *
1562
1561
  * Read more:
1563
- * - [Date cell type &#8594;](@/guides/cell-types/date-cell-type.md)
1562
+ * - [Date cell type](@/guides/cell-types/date-cell-type.md)
1564
1563
  * - [`dateFormat`](#dateFormat)
1565
1564
  *
1566
1565
  * @memberof Options#
@@ -1599,7 +1598,7 @@ export default (function () {
1599
1598
  * | An array | A combination of `'current'`, `'area'`, and/or `'header'` |
1600
1599
  *
1601
1600
  * Read more:
1602
- * - [Selection &#8594;](@/guides/cell-features/selection.md)
1601
+ * - [Selection](@/guides/cell-features/selection.md)
1603
1602
  *
1604
1603
  * @memberof Options#
1605
1604
  * @type {boolean|string|string[]}
@@ -1638,7 +1637,7 @@ export default (function () {
1638
1637
  * | `false` | Don't scroll the viewport |
1639
1638
  *
1640
1639
  * Read more:
1641
- * - [Plugins: `DragToScroll` &#8594;](@/api/dragToScroll.md)
1640
+ * - [Plugins: `DragToScroll`](@/api/dragToScroll.md)
1642
1641
  *
1643
1642
  * @memberof Options#
1644
1643
  * @type {boolean}
@@ -1666,8 +1665,8 @@ export default (function () {
1666
1665
  * | An object | - Enable the [`DropdownMenu`](@/api/dropdownMenu.md) plugin<br>- Apply a custom dropdown menu configuration |
1667
1666
  *
1668
1667
  * Read more:
1669
- * - [Context menu &#8594;](@/guides/accessories-and-menus/context-menu.md)
1670
- * - [Plugins: `DropdownMenu` &#8594;](@/api/dropdownMenu.md)
1668
+ * - [Context menu](@/guides/accessories-and-menus/context-menu.md)
1669
+ * - [Plugins: `DropdownMenu`](@/api/dropdownMenu.md)
1671
1670
  *
1672
1671
  * @memberof Options#
1673
1672
  * @type {boolean|object|string[]}
@@ -1741,9 +1740,9 @@ export default (function () {
1741
1740
  * options all at once, use the [`type`](#type) option.
1742
1741
  *
1743
1742
  * Read more:
1744
- * - [Cell editor &#8594;](@/guides/cell-functions/cell-editor.md)
1745
- * - [Cell type &#8594;](@/guides/cell-types/cell-type.md)
1746
- * - [Configuration options: Cascading configuration &#8594;](@/guides/getting-started/setting-options.md#cascading-configuration)
1743
+ * - [Cell editor](@/guides/cell-functions/cell-editor.md)
1744
+ * - [Cell type](@/guides/cell-types/cell-type.md)
1745
+ * - [Configuration options: Cascading configuration](@/guides/getting-started/setting-options.md#cascading-configuration)
1747
1746
  * - [`type`](#type)
1748
1747
  *
1749
1748
  * @memberof Options#
@@ -1772,14 +1771,14 @@ export default (function () {
1772
1771
  editor: void 0,
1773
1772
 
1774
1773
  /**
1775
- * The `enterBeginsEditing` option configures the action of the <kbd>Enter</kbd> key.
1774
+ * The `enterBeginsEditing` option configures the action of the <kbd>**Enter**</kbd> key.
1776
1775
  *
1777
1776
  * You can set the `enterBeginsEditing` option to one of the following:
1778
1777
  *
1779
1778
  * | Setting | Description |
1780
1779
  * | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1781
- * | `true` (default) | - On pressing <kbd>Enter</kbd> once, start editing the currently-selected cell<br>- On pressing <kbd>Enter</kbd> twice, move to another cell,<br>as configured by the [`enterMoves`](#enterMoves) setting |
1782
- * | `false` | - On pressing <kbd>Enter</kbd> once, move to another cell,<br>as configured by the [`enterMoves`](#enterMoves) setting |
1780
+ * | `true` (default) | - On pressing <kbd>**Enter**</kbd> once, enter the editing mode of the active cell<br>- On pressing <kbd>**Enter**</kbd> twice, move to another cell,<br>as configured by the [`enterMoves`](#enterMoves) setting |
1781
+ * | `false` | - On pressing <kbd>**Enter**</kbd> once, move to another cell,<br>as configured by the [`enterMoves`](#enterMoves) setting |
1783
1782
  *
1784
1783
  * Read more:
1785
1784
  * - [`enterMoves`](#enterMoves)
@@ -1802,21 +1801,21 @@ export default (function () {
1802
1801
  enterBeginsEditing: true,
1803
1802
 
1804
1803
  /**
1805
- * The `enterMoves` option configures the action of the <kbd>Enter</kbd> key.
1804
+ * The `enterMoves` option configures the action of the <kbd>**Enter**</kbd> key.
1806
1805
  *
1807
1806
  * If the [`enterBeginsEditing`](#enterBeginsEditing) option is set to `true`,
1808
- * the `enterMoves` setting applies to the **second** pressing of the <kbd>Enter</kbd> key.
1807
+ * the `enterMoves` setting applies to the **second** pressing of the <kbd>**Enter**</kbd> key.
1809
1808
  *
1810
1809
  * If the [`enterBeginsEditing`](#enterBeginsEditing) option is set to `false`,
1811
- * the `enterMoves` setting applies to the **first** pressing of the <kbd>Enter</kbd> key.
1810
+ * the `enterMoves` setting applies to the **first** pressing of the <kbd>**Enter**</kbd> key.
1812
1811
  *
1813
1812
  * You can set the `enterMoves` option to an object with the following properties
1814
1813
  * (or to a function that returns such an object):
1815
1814
  *
1816
1815
  * | Property | Type | Description |
1817
1816
  * | -------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
1818
- * | `col` | Number | - On pressing <kbd>Enter</kbd>, move selection `col` columns right<br>- On pressing <kbd>Shift</kbd>+<kbd>Enter</kbd>, move selection `col` columns left |
1819
- * | `row` | Number | - On pressing <kbd>Enter</kbd>, move selection `row` rows down<br>- On pressing <kbd>Shift</kbd>+<kbd>Enter</kbd>, move selection `row` rows up |
1817
+ * | `col` | Number | - On pressing <kbd>**Enter**</kbd>, move selection `col` columns right<br>- On pressing <kbd>**Shift**</kbd> + <kbd>**Enter**</kbd>, move selection `col` columns left |
1818
+ * | `row` | Number | - On pressing <kbd>**Enter**</kbd>, move selection `row` rows down<br>- On pressing <kbd>**Shift**</kbd> + <kbd>**Enter**</kbd>, move selection `row` rows up |
1820
1819
  *
1821
1820
  * Read more:
1822
1821
  * - [`enterBeginsEditing`](#enterBeginsEditing)
@@ -1866,7 +1865,7 @@ export default (function () {
1866
1865
  * | `direction` | `'vertical'` \| `'horizontal'` | `'vertical'`: Enable vertical autofill<br>`'horizontal'`: Enable horizontal autofill |
1867
1866
  *
1868
1867
  * Read more:
1869
- * - [AutoFill values &#8594;](@/guides/cell-features/autofill-values.md)
1868
+ * - [AutoFill values](@/guides/cell-features/autofill-values.md)
1870
1869
  *
1871
1870
  * @memberof Options#
1872
1871
  * @type {boolean|string|object}
@@ -1917,7 +1916,7 @@ export default (function () {
1917
1916
  * | `false` | When the end user types into the input area, all options are displayed<br>(options matching the input are put in bold |
1918
1917
  *
1919
1918
  * Read more:
1920
- * - [Autocomplete cell type &#8594;](@/guides/cell-types/autocomplete-cell-type.md)
1919
+ * - [Autocomplete cell type](@/guides/cell-types/autocomplete-cell-type.md)
1921
1920
  * - [`source`](#source)
1922
1921
  * - [`filteringCaseSensitive`](#filteringCaseSensitive)
1923
1922
  *
@@ -1954,7 +1953,7 @@ export default (function () {
1954
1953
  * | `true` | [`autocomplete`](@/guides/cell-types/autocomplete-cell-type.md) cells' input is case-sensitive |
1955
1954
  *
1956
1955
  * Read more:
1957
- * - [Autocomplete cell type &#8594;](@/guides/cell-types/autocomplete-cell-type.md)
1956
+ * - [Autocomplete cell type](@/guides/cell-types/autocomplete-cell-type.md)
1958
1957
  * - [`source`](#source)
1959
1958
  * - [`filter`](#filter)
1960
1959
  *
@@ -1988,8 +1987,8 @@ export default (function () {
1988
1987
  * | `true` | Enable the [`Filters`](@/api/filters.md) plugin |
1989
1988
  *
1990
1989
  * Read more:
1991
- * - [Column filter &#8594;](@/guides/columns/column-filter.md)
1992
- * - [Plugins: `Filters` &#8594;](@/api/filters.md)
1990
+ * - [Column filter](@/guides/columns/column-filter.md)
1991
+ * - [Plugins: `Filters`](@/api/filters.md)
1993
1992
  * - [`dropdownMenu`](#dropdownMenu)
1994
1993
  *
1995
1994
  * @memberof Options#
@@ -2006,11 +2005,16 @@ export default (function () {
2006
2005
  filters: void 0,
2007
2006
 
2008
2007
  /**
2009
- * The `fixedColumnsLeft` option sets the number of [frozen columns](@/guides/columns/column-freezing.md)
2010
- * at the left-hand side of the grid.
2008
+ * `fixedColumnsLeft` is a legacy option.
2009
+ *
2010
+ * If your grid's [layout direction](@/guides/internationalization/layout-direction.md) is LTR (default), `fixedColumnsLeft` acts like the [`fixedColumnsStart`](#fixedColumnsStart) option.
2011
+ *
2012
+ * If your grid's [layout direction](@/guides/internationalization/layout-direction.md) is RTL, using `fixedColumnsLeft` throws an error.
2013
+ *
2014
+ * Use [`fixedColumnsStart`](#fixedColumnsStart), which works in any layout direction.
2011
2015
  *
2012
2016
  * Read more:
2013
- * - [Column freezing &#8594;](@/guides/columns/column-freezing.md)
2017
+ * - [`fixedColumnsStart`](#fixedcolumnsstart)
2014
2018
  *
2015
2019
  * @memberof Options#
2016
2020
  * @type {number}
@@ -2025,12 +2029,51 @@ export default (function () {
2025
2029
  */
2026
2030
  fixedColumnsLeft: 0,
2027
2031
 
2032
+ /**
2033
+ * If your grid's [layout direction](@/guides/internationalization/layout-direction.md) is LTR (default), the `fixedColumnsStart` option sets the number of [frozen columns](@/guides/columns/column-freezing.md) at the left-hand edge of the grid.
2034
+ *
2035
+ * If your grid's [layout direction](@/guides/internationalization/layout-direction.md) is RTL, the `fixedColumnsStart` option sets the number of [frozen columns](@/guides/columns/column-freezing.md) at the right-hand edge of the grid.
2036
+ *
2037
+ * Read more:
2038
+ * - [Column freezing](@/guides/columns/column-freezing.md)
2039
+ * - [Layout direction](@/guides/internationalization/layout-direction.md)
2040
+ * - [`fixedColumnsLeft`](#fixedcolumnsleft)
2041
+ * - [`layoutDirection`](#layoutDirection)
2042
+ *
2043
+ * @memberof Options#
2044
+ * @type {number}
2045
+ * @default 0
2046
+ * @category Core
2047
+ *
2048
+ * @example
2049
+ * ```js
2050
+ * // when `layoutDirection` is set to `inherit` (default)
2051
+ * // freeze the first 3 columns from the left or from the right
2052
+ * // depending on your HTML document's `dir` attribute
2053
+ * layoutDirection: 'inherit',
2054
+ * fixedColumnsStart: 3,
2055
+ *
2056
+ * // when `layoutDirection` is set to `rtl`
2057
+ * // freeze the first 3 columns from the right
2058
+ * // regardless of your HTML document's `dir` attribute
2059
+ * layoutDirection: 'rtl',
2060
+ * fixedColumnsStart: 3,
2061
+ *
2062
+ * // when `layoutDirection` is set to `ltr`
2063
+ * // freeze the first 3 columns from the left
2064
+ * // regardless of your HTML document's `dir` attribute
2065
+ * layoutDirection: 'ltr',
2066
+ * fixedColumnsStart: 3,
2067
+ * ```
2068
+ */
2069
+ fixedColumnsStart: 0,
2070
+
2028
2071
  /**
2029
2072
  * The `fixedRowsBottom` option sets the number of [frozen rows](@/guides/rows/row-freezing.md)
2030
2073
  * at the bottom of the grid.
2031
2074
  *
2032
2075
  * Read more:
2033
- * - [Row freezing &#8594;](@/guides/rows/row-freezing.md)
2076
+ * - [Row freezing](@/guides/rows/row-freezing.md)
2034
2077
  *
2035
2078
  * @memberof Options#
2036
2079
  * @type {number}
@@ -2049,7 +2092,7 @@ export default (function () {
2049
2092
  * The `fixedRowsTop` option sets the number of [frozen rows](@/guides/rows/row-freezing.md) at the top of the grid.
2050
2093
  *
2051
2094
  * Read more:
2052
- * - [Row freezing &#8594;](@/guides/rows/row-freezing.md)
2095
+ * - [Row freezing](@/guides/rows/row-freezing.md)
2053
2096
  *
2054
2097
  * @memberof Options#
2055
2098
  * @type {number}
@@ -2069,7 +2112,7 @@ export default (function () {
2069
2112
  *
2070
2113
  * The [`Formulas`](@/api/formulas.md) plugin uses the [HyperFormula](https://handsontable.github.io/hyperformula/) calculation engine.
2071
2114
  * To install [HyperFormula](https://handsontable.github.io/hyperformula/), read the following:
2072
- * - [Formula calculation: Initialization methods &#8594;](@/guides/formulas/formula-calculation.md#initialization-methods)
2115
+ * - [Formula calculation: Initialization methods](@/guides/formulas/formula-calculation.md#initialization-methods)
2073
2116
  *
2074
2117
  * You can set the `formulas` option to an object with the following properties:
2075
2118
  *
@@ -2080,8 +2123,8 @@ export default (function () {
2080
2123
  * | `sheetName` | A string |
2081
2124
  *
2082
2125
  * Read more:
2083
- * - [Plugins: `Formulas` &#8594;](@/api/formulas.md)
2084
- * - [Formula calculation &#8594;](@/guides/formulas/formula-calculation.md)
2126
+ * - [Plugins: `Formulas`](@/api/formulas.md)
2127
+ * - [Formula calculation](@/guides/formulas/formula-calculation.md)
2085
2128
  * - [HyperFormula documentation: Client-side installation](https://handsontable.github.io/hyperformula/guide/client-side-installation)
2086
2129
  * - [HyperFormula documentation: Configuration options](https://handsontable.github.io/hyperformula/api/interfaces/configparams.html)
2087
2130
  *
@@ -2183,7 +2226,7 @@ export default (function () {
2183
2226
  * | A function that returns a valid number or string | `height() { return 500; }` |
2184
2227
  *
2185
2228
  * Read more:
2186
- * - [Grid size &#8594;](@/guides/getting-started/grid-size.md)
2229
+ * - [Grid size](@/guides/getting-started/grid-size.md)
2187
2230
  *
2188
2231
  * @memberof Options#
2189
2232
  * @type {number|string|Function}
@@ -2226,8 +2269,8 @@ export default (function () {
2226
2269
  * | `indicators` | `true` \| `false` | `true`: display UI markers to indicate the presence of hidden columns<br>`false`: display UI markers |
2227
2270
  *
2228
2271
  * Read more:
2229
- * - [Plugins: `HiddenColumns` &#8594;](@/api/hiddenColumns.md)
2230
- * - [Column hiding &#8594;](@/guides/columns/column-hiding.md)
2272
+ * - [Plugins: `HiddenColumns`](@/api/hiddenColumns.md)
2273
+ * - [Column hiding](@/guides/columns/column-hiding.md)
2231
2274
  *
2232
2275
  * @memberof Options#
2233
2276
  * @type {boolean|object}
@@ -2272,8 +2315,8 @@ export default (function () {
2272
2315
  * | `indicators` | `true` \| `false` | `true`: display UI markers to indicate the presence of hidden rows<br>`false`: display UI markers |
2273
2316
  *
2274
2317
  * Read more:
2275
- * - [Plugins: `HiddenRows` &#8594;](@/api/hiddenRows.md)
2276
- * - [Row hiding &#8594;](@/guides/rows/row-hiding.md)
2318
+ * - [Plugins: `HiddenRows`](@/api/hiddenRows.md)
2319
+ * - [Row hiding](@/guides/rows/row-hiding.md)
2277
2320
  *
2278
2321
  * @memberof Options#
2279
2322
  * @type {boolean|object}
@@ -2303,7 +2346,7 @@ export default (function () {
2303
2346
  * that were marked as `invalid` by the [cell validator](@/guides/cell-functions/cell-validator.md).
2304
2347
  *
2305
2348
  * Read more:
2306
- * - [Cell validator &#8594;](@/guides/cell-functions/cell-validator.md)
2349
+ * - [Cell validator](@/guides/cell-functions/cell-validator.md)
2307
2350
  * - [`currentRowClassName`](#currentRowClassName)
2308
2351
  * - [`currentHeaderClassName`](#currentHeaderClassName)
2309
2352
  * - [`activeHeaderClassName`](#activeHeaderClassName)
@@ -2422,7 +2465,7 @@ export default (function () {
2422
2465
  * | `property` | A string | - A [`data`](#data) object property name that's used as the label's text <br>- Works only when the [`data`](#data) option is set to an [array of objects](@/guides/getting-started/binding-to-data.md#array-of-objects) |
2423
2466
  *
2424
2467
  * Read more:
2425
- * - [Checkbox cell type: Checkbox labels &#8594;](@/guides/cell-types/checkbox-cell-type.md#checkbox-labels)
2468
+ * - [Checkbox cell type: Checkbox labels](@/guides/cell-types/checkbox-cell-type.md#checkbox-labels)
2426
2469
  *
2427
2470
  * @memberof Options#
2428
2471
  * @type {object}
@@ -2441,13 +2484,16 @@ export default (function () {
2441
2484
  label: void 0,
2442
2485
 
2443
2486
  /**
2444
- * The `language` option configures Handsontable's language.
2487
+ * The `language` option configures Handsontable's [language](@/guides/internationalization/language.md) settings.
2445
2488
  *
2446
2489
  * You can set the `language` option to one of the following:
2447
2490
  *
2448
2491
  * | Setting | Description |
2449
2492
  * | ------------------- | --------------------------- |
2450
2493
  * | `'en-US'` (default) | English - United States |
2494
+ * | `'ar-AR'` | Arabic - Global.<br><br>To properly render this language, set the [layout direction](@/guides/internationalization/layout-direction.md) to RTL. |
2495
+ * | `'cs-CZ'` | Czech - Czech Republic |
2496
+ * | `'de-CH'` | German - Switzerland |
2451
2497
  * | `'de-DE'` | German - Germany |
2452
2498
  * | `'es-MX'` | Spanish - Mexico |
2453
2499
  * | `'fr-FR'` | French - France |
@@ -2460,12 +2506,14 @@ export default (function () {
2460
2506
  * | `'pl-PL'` | Polish - Poland |
2461
2507
  * | `'pt-BR'` | Portuguese - Brazil |
2462
2508
  * | `'ru-RU'` | Russian - Russia |
2509
+ * | `'sr-SP'` | Serbian (Latin) - Serbia |
2463
2510
  * | `'zh-CN'` | Chinese - China |
2464
2511
  * | `'zh-TW'` | Chinese - Taiwan |
2465
2512
  *
2466
2513
  * Read more:
2467
- * - [Internationalization (i18n) &#8594;](@/guides/internationalization/internationalization-i18n.md)
2514
+ * - [Language](@/guides/internationalization/language.md)
2468
2515
  * - [`locale`](#locale)
2516
+ * - [`layoutDirection`](#layoutdirection)
2469
2517
  *
2470
2518
  * @memberof Options#
2471
2519
  * @type {string}
@@ -2480,6 +2528,52 @@ export default (function () {
2480
2528
  */
2481
2529
  language: 'en-US',
2482
2530
 
2531
+ /**
2532
+ * The `layoutDirection` option configures whether Handsontable renders from the left to the right, or from the right to the left.
2533
+ *
2534
+ * You can set the layout direction only at Handsontable's [initialization](@/guides/getting-started/installation.md#initialize-handsontable). Any change of the `layoutDirection` option after the initialization (e.g. using the [`updateSettings()`](@/api/core.md#updatesettings) method) is ignored.
2535
+ *
2536
+ * You can set the `layoutDirection` option only [for the entire grid](@/guides/getting-started/setting-options.md#setting-grid-options).
2537
+ * You can't set it for individual columns, rows, or cells.
2538
+ *
2539
+ * You can set the `layoutDirection` option to one of the following strings:
2540
+ *
2541
+ * | Setting | Description |
2542
+ * | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
2543
+ * | `inherit` (default) | Set Handsontable's layout direction automatically,<br>based on the value of your HTML document's [`dir`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir) attribute |
2544
+ * | `rtl` | Render Handsontable from the right to the left,<br>even when your HTML document's [`dir`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir) attribute is set to `ltr` |
2545
+ * | `ltr` | Render Handsontable from the left to the right,<br>even when your HTML document's [`dir`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir) attribute is set to `rtl` |
2546
+ *
2547
+ * Read more:
2548
+ * - [Layout direction](@/guides/internationalization/layout-direction.md)
2549
+ * - [Language](@/guides/internationalization/language.md)
2550
+ * - [`language`](#language)
2551
+ * - [`locale`](#locale)
2552
+ * - [`fixedColumnsStart`](#fixedcolumnsstart)
2553
+ * - [`customBorders`](#customBorders)
2554
+ *
2555
+ * @memberof Options#
2556
+ * @type {string}
2557
+ * @default 'inherit'
2558
+ * @category Core
2559
+ *
2560
+ * @example
2561
+ * ```js
2562
+ * // inherit Handsontable's layout direction
2563
+ * // from the value of your HTML document's `dir` attribute
2564
+ * layoutDirection: 'inherit',
2565
+ *
2566
+ * // render Handsontable from the right to the left
2567
+ * // regardless of your HTML document's `dir`
2568
+ * layoutDirection: 'rtl',
2569
+ *
2570
+ * // render Handsontable from the left to the right
2571
+ * // regardless of your HTML document's `dir`
2572
+ * layoutDirection: 'ltr',
2573
+ * ```
2574
+ */
2575
+ layoutDirection: 'inherit',
2576
+
2483
2577
  /**
2484
2578
  * The `licenseKey` option sets your Handsontable license key.
2485
2579
  *
@@ -2491,7 +2585,7 @@ export default (function () {
2491
2585
  * | `'non-commercial-and-evaluation'` | For [non-commercial use](@/guides/technical-specification/software-license.md#non-commercial-use) |
2492
2586
  *
2493
2587
  * Read more:
2494
- * - [License key &#8594;](@/guides/getting-started/license-key.md)
2588
+ * - [License key](@/guides/getting-started/license-key.md)
2495
2589
  *
2496
2590
  * @memberof Options#
2497
2591
  * @type {string}
@@ -2510,14 +2604,16 @@ export default (function () {
2510
2604
  licenseKey: void 0,
2511
2605
 
2512
2606
  /**
2513
- * The `locale` option configures Handsontable's locale.
2607
+ * The `locale` option configures Handsontable's [locale](@/guides/internationalization/locale.md) settings.
2514
2608
  *
2515
2609
  * You can set the `locale` option to any valid and canonicalized Unicode BCP 47 locale tag,
2516
- * both for the entire grid, and for individual columns.
2610
+ * both for the [entire grid](@/guides/internationalization/locale.md#setting-the-grid-s-locale),
2611
+ * and for [individual columns](@/guides/internationalization/locale.md#setting-a-column-s-locale).
2517
2612
  *
2518
2613
  * Read more:
2519
- * - [Internationalization (i18n) &#8594;](@/guides/internationalization/internationalization-i18n.md)
2614
+ * - [Locale](@/guides/internationalization/locale.md)
2520
2615
  * - [`language`](#language)
2616
+ * - [`layoutDirection`](#layoutdirection)
2521
2617
  *
2522
2618
  * @memberof Options#
2523
2619
  * @type {string}
@@ -2555,7 +2651,7 @@ export default (function () {
2555
2651
  * | `false` | Disable the [`ManualColumnFreeze`](@/api/manualColumnFreeze.md) plugin |
2556
2652
  *
2557
2653
  * Read more:
2558
- * - [Column freezing &#8594;](@/guides/columns/column-freezing.md#user-triggered-freeze)
2654
+ * - [Column freezing](@/guides/columns/column-freezing.md#user-triggered-freeze)
2559
2655
  *
2560
2656
  * @memberof Options#
2561
2657
  * @type {boolean}
@@ -2582,7 +2678,7 @@ export default (function () {
2582
2678
  * | An array | - Enable the [`ManualColumnMove`](@/api/manualColumnMove.md) plugin<br>- Move individual columns at initialization |
2583
2679
  *
2584
2680
  * Read more:
2585
- * - [Column moving &#8594;](@/guides/columns/column-moving.md)
2681
+ * - [Column moving](@/guides/columns/column-moving.md)
2586
2682
  *
2587
2683
  * @memberof Options#
2588
2684
  * @type {boolean|number[]}
@@ -2616,7 +2712,7 @@ export default (function () {
2616
2712
  * | An array | - Enable the [`ManualColumnResize`](@/api/manualColumnResize.md) plugin<br>- Set initial widths of individual columns |
2617
2713
  *
2618
2714
  * Read more:
2619
- * - [Column width: Column stretching &#8594;](@/guides/columns/column-width.md#column-stretching)
2715
+ * - [Column width: Column stretching](@/guides/columns/column-width.md#column-stretching)
2620
2716
  *
2621
2717
  * @memberof Options#
2622
2718
  * @type {boolean|number[]}
@@ -2650,7 +2746,7 @@ export default (function () {
2650
2746
  * | An array | - Enable the [`ManualRowMove`](@/api/manualRowMove.md) plugin<br>- Move individual rows at initialization |
2651
2747
  *
2652
2748
  * Read more:
2653
- * - [Row moving &#8594;](@/guides/rows/row-moving.md)
2749
+ * - [Row moving](@/guides/rows/row-moving.md)
2654
2750
  *
2655
2751
  * @memberof Options#
2656
2752
  * @type {boolean|number[]}
@@ -2684,7 +2780,7 @@ export default (function () {
2684
2780
  * | An array | - Enable the [`ManualRowResize`](@/api/manualRowResize.md) plugin<br>- Set initial heights of individual rows |
2685
2781
  *
2686
2782
  * Read more:
2687
- * - [Row height: Adjust the row height manually &#8594;](@/guides/rows/row-height.md#adjust-the-row-height-manually)
2783
+ * - [Row height: Adjust the row height manually](@/guides/rows/row-height.md#adjust-the-row-height-manually)
2688
2784
  *
2689
2785
  * @memberof Options#
2690
2786
  * @type {boolean|number[]}
@@ -2770,7 +2866,7 @@ export default (function () {
2770
2866
  * | `colspan` | The height (as a number of columns ) of the merged section |
2771
2867
  *
2772
2868
  * Read more:
2773
- * - [Merge cells &#8594;](@/guides/cell-features/merge-cells.md)
2869
+ * - [Merge cells](@/guides/cell-features/merge-cells.md)
2774
2870
  *
2775
2871
  * @memberof Options#
2776
2872
  * @type {boolean|object[]}
@@ -2780,7 +2876,7 @@ export default (function () {
2780
2876
  * @example
2781
2877
  * ```js
2782
2878
  * // enable the `MergeCells` plugin
2783
- * margeCells: true,
2879
+ * mergeCells: true,
2784
2880
  *
2785
2881
  * // enable the `MergeCells` plugin
2786
2882
  * // and merge specific cells at initialization
@@ -2929,7 +3025,7 @@ export default (function () {
2929
3025
  * | `sortOrder` | `'asc'` \| `'desc'` | The sorting order:<br>`'asc'`: ascending<br>`'desc'`: descending |
2930
3026
  *
2931
3027
  * Read more:
2932
- * - [Row sorting &#8594;](@/guides/rows/row-sorting.md)
3028
+ * - [Row sorting](@/guides/rows/row-sorting.md)
2933
3029
  * - [`columnSorting`](#columnSorting)
2934
3030
  *
2935
3031
  * @memberof Options#
@@ -2989,8 +3085,8 @@ export default (function () {
2989
3085
  * | An object | Properties:<br>`label` (string): the header's label<br>`colspan` (integer): the column width |
2990
3086
  *
2991
3087
  * Read more:
2992
- * - [Plugins: `NestedHeaders` &#8594;](@/api/nestedHeaders.md)
2993
- * - [Column groups: Nested headers &#8594;](@/guides/columns/column-groups.md#nested-headers)
3088
+ * - [Plugins: `NestedHeaders`](@/api/nestedHeaders.md)
3089
+ * - [Column groups: Nested headers](@/guides/columns/column-groups.md#nested-headers)
2994
3090
  *
2995
3091
  * @memberof Options#
2996
3092
  * @type {Array[]}
@@ -3020,7 +3116,7 @@ export default (function () {
3020
3116
  * | `true` | Enable the [`NestedRows`](@/api/nestedRows.md) plugin |
3021
3117
  *
3022
3118
  * Read more:
3023
- * - [Plugins: `NestedRows` &#8594;](@/api/nestedRows.md)
3119
+ * - [Plugins: `NestedRows`](@/api/nestedRows.md)
3024
3120
  *
3025
3121
  * @example
3026
3122
  * ```js
@@ -3084,8 +3180,8 @@ export default (function () {
3084
3180
  * In the source data, numeric data is stored as JavaScript numbers.
3085
3181
  *
3086
3182
  * Read more:
3087
- * - [Numeric cell type &#8594;](@/guides/cell-types/numeric-cell-type.md)
3088
- * - [Third-party licenses &#8594;](@/guides/technical-specification/third-party-licenses.md)
3183
+ * - [Numeric cell type](@/guides/cell-types/numeric-cell-type.md)
3184
+ * - [Third-party licenses](@/guides/technical-specification/third-party-licenses.md)
3089
3185
  *
3090
3186
  * @memberof Options#
3091
3187
  * @since 0.35.0
@@ -3179,8 +3275,8 @@ export default (function () {
3179
3275
  * | `true` | Enable the [`PersistentState`](@/api/persistentState.md) plugin |
3180
3276
  *
3181
3277
  * Read more:
3182
- * - [Saving data: Saving data locally &#8594;](@/guides/getting-started/saving-data.md#saving-data-locally)
3183
- * - [Plugins: `PersistentState` &#8594;](@/api/persistentState.md)
3278
+ * - [Saving data: Saving data locally](@/guides/getting-started/saving-data.md#saving-data-locally)
3279
+ * - [Plugins: `PersistentState`](@/api/persistentState.md)
3184
3280
  *
3185
3281
  * @memberof Options#
3186
3282
  * @type {boolean}
@@ -3238,7 +3334,7 @@ export default (function () {
3238
3334
  * that contain [`placeholder`](#placeholder) text.
3239
3335
  *
3240
3336
  * Read more:
3241
- * - [Cell validator &#8594;](@/guides/cell-functions/cell-validator.md)
3337
+ * - [Cell validator](@/guides/cell-functions/cell-validator.md)
3242
3338
  * - [`placeholder`](#placeholder)
3243
3339
  * - [`currentRowClassName`](#currentRowClassName)
3244
3340
  * - [`currentHeaderClassName`](#currentHeaderClassName)
@@ -3293,7 +3389,7 @@ export default (function () {
3293
3389
  * The `preventWheel` option configures preventing the `wheel` event's default action
3294
3390
  * on overlays.
3295
3391
  *
3296
- * You can set the `preventOverflow` option to one of the following:
3392
+ * You can set the `preventWheel` option to one of the following:
3297
3393
  *
3298
3394
  * | Setting | Description |
3299
3395
  * | ----------------- | ------------------------------------------------ |
@@ -3326,7 +3422,7 @@ export default (function () {
3326
3422
  * | `true` | - Set as read-only<br>- Add the [`readOnlyCellClassName`](#readOnlyCellClassName) CSS class name (by default: `htDimmed`) |
3327
3423
  *
3328
3424
  * Read more:
3329
- * - [Configuration options: Cascading configuration &#8594;](@/guides/getting-started/setting-options.md#cascading-configuration)
3425
+ * - [Configuration options: Cascading configuration](@/guides/getting-started/setting-options.md#cascading-configuration)
3330
3426
  *
3331
3427
  * @memberof Options#
3332
3428
  * @type {boolean}
@@ -3381,7 +3477,7 @@ export default (function () {
3381
3477
  * | `true` | Disable [row virtualization](@/guides/rows/row-virtualization.md)<br>(render all rows of the grid) |
3382
3478
  *
3383
3479
  * Read more:
3384
- * - [Row virtualization &#8594;](@/guides/rows/row-virtualization.md)
3480
+ * - [Row virtualization](@/guides/rows/row-virtualization.md)
3385
3481
  *
3386
3482
  * @memberof Options#
3387
3483
  * @type {boolean}
@@ -3422,9 +3518,9 @@ export default (function () {
3422
3518
  * options all at once, use the [`type`](#type) option.
3423
3519
  *
3424
3520
  * Read more:
3425
- * - [Cell renderer &#8594;](@/guides/cell-functions/cell-renderer.md)
3426
- * - [Cell type &#8594;](@/guides/cell-types/cell-type.md)
3427
- * - [Configuration options: Cascading configuration &#8594;](@/guides/getting-started/setting-options.md#cascading-configuration)
3521
+ * - [Cell renderer](@/guides/cell-functions/cell-renderer.md)
3522
+ * - [Cell type](@/guides/cell-types/cell-type.md)
3523
+ * - [Configuration options: Cascading configuration](@/guides/getting-started/setting-options.md#cascading-configuration)
3428
3524
  * - [`type`](#type)
3429
3525
  *
3430
3526
  * @memberof Options#
@@ -3471,7 +3567,7 @@ export default (function () {
3471
3567
  * | A function | Define your own row headers, using a function |
3472
3568
  *
3473
3569
  * Read more:
3474
- * - [Row header &#8594;](@/guides/rows/row-header.md)
3570
+ * - [Row header](@/guides/rows/row-header.md)
3475
3571
  *
3476
3572
  * @memberof Options#
3477
3573
  * @type {boolean|string[]|Function}
@@ -3539,7 +3635,7 @@ export default (function () {
3539
3635
  * via the {@link ManualRowResize} and {@link AutoRowSize} plugins (if they are enabled).
3540
3636
  *
3541
3637
  * Read more:
3542
- * - [Row height &#8594;](@/guides/rows/row-height.md)
3638
+ * - [Row height](@/guides/rows/row-height.md)
3543
3639
  *
3544
3640
  * @memberof Options#
3545
3641
  * @type {number|number[]|string|string[]|Array<undefined>|Function}
@@ -3589,9 +3685,9 @@ export default (function () {
3589
3685
  * | `callback` | A function | Add a [custom callback function](@/guides/accessories-and-menus/searching-values.md#custom-callback) |
3590
3686
  *
3591
3687
  * Read more:
3592
- * - [Searching values &#8594;](@/guides/accessories-and-menus/searching-values.md)
3593
- * - [Searching values: Custom query method &#8594;](@/guides/accessories-and-menus/searching-values.md#custom-query-method)
3594
- * - [Searching values: Custom callback &#8594;](@/guides/accessories-and-menus/searching-values.md#custom-callback)
3688
+ * - [Searching values](@/guides/accessories-and-menus/searching-values.md)
3689
+ * - [Searching values: Custom query method](@/guides/accessories-and-menus/searching-values.md#custom-query-method)
3690
+ * - [Searching values: Custom callback](@/guides/accessories-and-menus/searching-values.md#custom-callback)
3595
3691
  *
3596
3692
  * @memberof Options#
3597
3693
  * @type {boolean|object}
@@ -3633,7 +3729,7 @@ export default (function () {
3633
3729
  * | `'multiple'` | Allow the user to select multiple ranges of cells at a time. |
3634
3730
  *
3635
3731
  * Read more:
3636
- * - [Selection: Selecting ranges &#8594;](@/guides/cell-features/selection.md#selecting-ranges)
3732
+ * - [Selection: Selecting ranges](@/guides/cell-features/selection.md#selecting-ranges)
3637
3733
  *
3638
3734
  * @memberof Options#
3639
3735
  * @type {string}
@@ -3666,7 +3762,7 @@ export default (function () {
3666
3762
  * | A function | A function that returns an object with key-string pairs |
3667
3763
  *
3668
3764
  * Read more:
3669
- * - [Select cell type &#8594;](@/guides/cell-types/select-cell-type.md)
3765
+ * - [Select cell type](@/guides/cell-types/select-cell-type.md)
3670
3766
  *
3671
3767
  * @memberof Options#
3672
3768
  * @type {string[]|object|Function}
@@ -3726,7 +3822,7 @@ export default (function () {
3726
3822
  * | `true` | - Disable pasting data into this column<br>- On pasting, paste data into the next column to the right |
3727
3823
  *
3728
3824
  * Read more:
3729
- * - [Configuration options: Setting column options &#8594;](@/guides/getting-started/setting-options.md#setting-column-options)
3825
+ * - [Configuration options: Setting column options](@/guides/getting-started/setting-options.md#setting-column-options)
3730
3826
  *
3731
3827
  * @memberof Options#
3732
3828
  * @type {boolean}
@@ -3760,7 +3856,7 @@ export default (function () {
3760
3856
  * | `true` | - Disable pasting data into this row<br>- On pasting, paste data into the row below |
3761
3857
  *
3762
3858
  * Read more:
3763
- * - [Configuration options: Setting row options &#8594;](@/guides/getting-started/setting-options.md#setting-row-options)
3859
+ * - [Configuration options: Setting row options](@/guides/getting-started/setting-options.md#setting-row-options)
3764
3860
  *
3765
3861
  * @memberof Options#
3766
3862
  * @type {boolean}
@@ -3796,7 +3892,7 @@ export default (function () {
3796
3892
  *
3797
3893
  * Read more:
3798
3894
  * - [`source`](#source)
3799
- * - [Autocomplete cell type &#8594;](@/guides/cell-types/autocomplete-cell-type.md)
3895
+ * - [Autocomplete cell type](@/guides/cell-types/autocomplete-cell-type.md)
3800
3896
  *
3801
3897
  * @memberof Options#
3802
3898
  * @type {boolean}
@@ -3827,8 +3923,8 @@ export default (function () {
3827
3923
  * - A function
3828
3924
  *
3829
3925
  * Read more:
3830
- * - [Autocomplete cell type &#8594;](@/guides/cell-types/autocomplete-cell-type.md)
3831
- * - [Dropdown cell type &#8594;](@/guides/cell-types/dropdown-cell-type.md)
3926
+ * - [Autocomplete cell type](@/guides/cell-types/autocomplete-cell-type.md)
3927
+ * - [Dropdown cell type](@/guides/cell-types/dropdown-cell-type.md)
3832
3928
  * - [`strict`](#strict)
3833
3929
  * - [`allowHtml`](#allowHtml)
3834
3930
  * - [`filter`](#filter)
@@ -3916,7 +4012,7 @@ export default (function () {
3916
4012
  * | `'all'` | Fit the grid to the container, by stretching all columns evenly |
3917
4013
  *
3918
4014
  * Read more:
3919
- * - [Column width: Column stretching &#8594;](@/guides/columns/column-width.md#column-stretching)
4015
+ * - [Column width: Column stretching](@/guides/columns/column-width.md#column-stretching)
3920
4016
  *
3921
4017
  * @memberof Options#
3922
4018
  * @type {string}
@@ -3933,18 +4029,17 @@ export default (function () {
3933
4029
  stretchH: 'none',
3934
4030
 
3935
4031
  /**
3936
- * The `strict` option configures [`autocomplete`](@/guides/cell-types/autocomplete-cell-type.md)
3937
- * cells' strict/lazy mode.
4032
+ * The `strict` option configures the behavior of [`autocomplete`](@/guides/cell-types/autocomplete-cell-type.md) cells.
3938
4033
  *
3939
4034
  * You can set the `strict` option to one of the following:
3940
4035
  *
3941
- * | Setting | Mode | Description |
3942
- * | ------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
3943
- * | `true` | [Strict mode](@/guides/cell-types/autocomplete-cell-type.md#autocomplete-strict-mode) | The value entered must match an autocomplete option (case-sensitive) |
3944
- * | `false` | [Lazy mode](@/guides/cell-types/autocomplete-cell-type.md#autocomplete-lazy-mode) | The value entered doesn't have to match an autocomplete option.<br>The end user can:<br>- Choose from suggested options<br>- Enter a custom value |
4036
+ * | Setting | Mode | Description |
4037
+ * | ------- | --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
4038
+ * | `true` | [Strict mode](@/guides/cell-types/autocomplete-cell-type.md#autocomplete-strict-mode) | The end user:<br>- Can only choose one of suggested values<br>- Can't enter a custom value |
4039
+ * | `false` | [Flexible mode](@/guides/cell-types/autocomplete-cell-type.md#autocomplete-flexible-mode) | The end user:<br>- Can choose one of suggested values<br>- Can enter a custom value |
3945
4040
  *
3946
4041
  * Read more:
3947
- * - [Autocomplete cell type &#8594;](@/guides/cell-types/autocomplete-cell-type.md)
4042
+ * - [Autocomplete cell type](@/guides/cell-types/autocomplete-cell-type.md)
3948
4043
  * - [`source`](#source)
3949
4044
  *
3950
4045
  * @memberof Options#
@@ -4010,15 +4105,15 @@ export default (function () {
4010
4105
  tableClassName: void 0,
4011
4106
 
4012
4107
  /**
4013
- * The `tabMoves` option configures the action of the <kbd>Tab</kbd> key.
4108
+ * The `tabMoves` option configures the action of the <kbd>**Tab**</kbd> key.
4014
4109
  *
4015
4110
  * You can set the `tabMoves` option to an object with the following properties
4016
4111
  * (or to a function that returns such an object):
4017
4112
  *
4018
4113
  * | Property | Type | Description |
4019
4114
  * | -------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
4020
- * | `row` | Number | - On pressing <kbd>Tab</kbd>, move selection `row` rows down<br>- On pressing <kbd>Shift</kbd>+<kbd>Tab</kbd>, move selection `row` rows up |
4021
- * | `col` | Number | - On pressing <kbd>Tab</kbd>, move selection `col` columns right<br>- On pressing <kbd>Shift</kbd>+<kbd>Tab</kbd>, move selection `col` columns left |
4115
+ * | `row` | Number | - On pressing <kbd>**Tab**</kbd>, move selection `row` rows down<br>- On pressing <kbd>**Shift**</kbd> + <kbd>**Tab**</kbd>, move selection `row` rows up |
4116
+ * | `col` | Number | - On pressing <kbd>**Tab**</kbd>, move selection `col` columns right<br>- On pressing <kbd>**Shift**</kbd> + <kbd>**Tab**</kbd>, move selection `col` columns left |
4022
4117
  *
4023
4118
  * @memberof Options#
4024
4119
  * @type {object|Function}
@@ -4051,7 +4146,7 @@ export default (function () {
4051
4146
  * You can set the `title` option to a string.
4052
4147
  *
4053
4148
  * Read more:
4054
- * - [Column header &#8594;](@/guides/columns/column-header.md)
4149
+ * - [Column header](@/guides/columns/column-header.md)
4055
4150
  * - [`columns`](#columns)
4056
4151
  *
4057
4152
  * @memberof Options#
@@ -4089,8 +4184,8 @@ export default (function () {
4089
4184
  * | `false` | Scale the dropdown/autocomplete list's width to the list's content |
4090
4185
  *
4091
4186
  * Read more:
4092
- * - [Autocomplete cell type &#8594;](@/guides/cell-types/autocomplete-cell-type.md)
4093
- * - [Dropdown cell type &#8594;](@/guides/cell-types/dropdown-cell-type.md)
4187
+ * - [Autocomplete cell type](@/guides/cell-types/autocomplete-cell-type.md)
4188
+ * - [Dropdown cell type](@/guides/cell-types/dropdown-cell-type.md)
4094
4189
  *
4095
4190
  * @memberof Options#
4096
4191
  * @type {boolean}
@@ -4130,8 +4225,8 @@ export default (function () {
4130
4225
  * | An array | - Enable the [`TrimRows`](@/api/trimRows.md) plugin<br>- Trim selected rows at initialization |
4131
4226
  *
4132
4227
  * Read more:
4133
- * - [Plugins: `TrimRows` &#8594;](@/api/trimRows.md)
4134
- * - [Row trimming &#8594;](@/guides/rows/row-trimming.md)
4228
+ * - [Plugins: `TrimRows`](@/api/trimRows.md)
4229
+ * - [Row trimming](@/guides/rows/row-trimming.md)
4135
4230
  *
4136
4231
  * @memberof Options#
4137
4232
  * @type {boolean|number[]}
@@ -4199,11 +4294,11 @@ export default (function () {
4199
4294
  * | [`'time`'](@/guides/cell-types/time-cell-type.md) | Renderer: `TimeRenderer`<br>Editor: `TimeEditor`<br>Validator: `TimeValidator` |
4200
4295
  *
4201
4296
  * Read more:
4202
- * - [Cell type &#8594;](@/guides/cell-types/cell-type.md)
4203
- * - [Cell renderer &#8594;](@/guides/cell-functions/cell-renderer.md)
4204
- * - [Cell editor &#8594;](@/guides/cell-functions/cell-editor.md)
4205
- * - [Cell validator &#8594;](@/guides/cell-functions/cell-validator.md)
4206
- * - [Configuration options: Cascading configuration &#8594;](@/guides/getting-started/setting-options.md#cascading-configuration)
4297
+ * - [Cell type](@/guides/cell-types/cell-type.md)
4298
+ * - [Cell renderer](@/guides/cell-functions/cell-renderer.md)
4299
+ * - [Cell editor](@/guides/cell-functions/cell-editor.md)
4300
+ * - [Cell validator](@/guides/cell-functions/cell-validator.md)
4301
+ * - [Configuration options: Cascading configuration](@/guides/getting-started/setting-options.md#cascading-configuration)
4207
4302
  * - [`renderer`](#renderer)
4208
4303
  * - [`editor`](#editor)
4209
4304
  * - [`validator`](#validator)
@@ -4245,8 +4340,8 @@ export default (function () {
4245
4340
  * | A string | If a [`checkbox`](@/guides/cell-types/checkbox-cell-type.md) cell is unchecked,<br>the [`getDataAtCell`](@/api/core.md#getDataAtCell) method for this cell returns a string of your choice |
4246
4341
  *
4247
4342
  * Read more:
4248
- * - [Checkbox cell type: Checkbox template &#8594;](@/guides/cell-types/checkbox-cell-type.md#checkbox-template)
4249
- * - [`getDataAtCell()` &#8594;](@/api/core.md#getDataAtCell)
4343
+ * - [Checkbox cell type: Checkbox template](@/guides/cell-types/checkbox-cell-type.md#checkbox-template)
4344
+ * - [`getDataAtCell()`](@/api/core.md#getDataAtCell)
4250
4345
  * - [`checkedTemplate`](#checkedTemplate)
4251
4346
  *
4252
4347
  * @memberof Options#
@@ -4292,7 +4387,7 @@ export default (function () {
4292
4387
  * set the `undo` option to `false`.
4293
4388
  *
4294
4389
  * Read more:
4295
- * - [Undo and redo &#8594;](@/guides/accessories-and-menus/undo-redo.md)
4390
+ * - [Undo and redo](@/guides/accessories-and-menus/undo-redo.md)
4296
4391
  *
4297
4392
  * @memberof Options#
4298
4393
  * @type {boolean}
@@ -4335,9 +4430,9 @@ export default (function () {
4335
4430
  * options all at once, use the [`type`](#type) option.
4336
4431
  *
4337
4432
  * Read more:
4338
- * - [Cell validator &#8594;](@/guides/cell-functions/cell-validator.md)
4339
- * - [Cell type &#8594;](@/guides/cell-types/cell-type.md)
4340
- * - [Configuration options: Cascading configuration &#8594;](@/guides/getting-started/setting-options.md#cascading-configuration)
4433
+ * - [Cell validator](@/guides/cell-functions/cell-validator.md)
4434
+ * - [Cell type](@/guides/cell-types/cell-type.md)
4435
+ * - [Configuration options: Cascading configuration](@/guides/getting-started/setting-options.md#cascading-configuration)
4341
4436
  * - [`type`](#type)
4342
4437
  *
4343
4438
  * @memberof Options#
@@ -4380,7 +4475,7 @@ export default (function () {
4380
4475
  * | A number | Set the offset manually |
4381
4476
  *
4382
4477
  * Read more:
4383
- * - [Performance: Define the number of pre-rendered rows and columns &#8594;](@/guides/advanced-topics/performance.md#define-the-number-of-pre-rendered-rows-and-columns)
4478
+ * - [Performance: Define the number of pre-rendered rows and columns](@/guides/optimization/performance.md#define-the-number-of-pre-rendered-rows-and-columns)
4384
4479
  *
4385
4480
  * @memberof Options#
4386
4481
  * @type {number|string}
@@ -4408,8 +4503,8 @@ export default (function () {
4408
4503
  * | A number | Set the offset manually |
4409
4504
  *
4410
4505
  * Read more:
4411
- * - [Performance: Define the number of pre-rendered rows and columns &#8594;](@/guides/advanced-topics/performance.md#define-the-number-of-pre-rendered-rows-and-columns)
4412
- * - [Column virtualization &#8594;](@/guides/columns/column-virtualization.md)
4506
+ * - [Performance: Define the number of pre-rendered rows and columns](@/guides/optimization/performance.md#define-the-number-of-pre-rendered-rows-and-columns)
4507
+ * - [Column virtualization](@/guides/columns/column-virtualization.md)
4413
4508
  *
4414
4509
  * @memberof Options#
4415
4510
  * @type {number|string}
@@ -4431,8 +4526,8 @@ export default (function () {
4431
4526
  * When the number of list options exceeds the `visibleRows` number, a scrollbar appears.
4432
4527
  *
4433
4528
  * Read more:
4434
- * - [Autocomplete cell type &#8594;](@/guides/cell-types/autocomplete-cell-type.md)
4435
- * - [Dropdown cell type &#8594;](@/guides/cell-types/dropdown-cell-type.md)
4529
+ * - [Autocomplete cell type](@/guides/cell-types/autocomplete-cell-type.md)
4530
+ * - [Dropdown cell type](@/guides/cell-types/dropdown-cell-type.md)
4436
4531
  *
4437
4532
  * @memberof Options#
4438
4533
  * @type {number}
@@ -4471,7 +4566,7 @@ export default (function () {
4471
4566
  * | A function that returns a valid number or string | `width() { return 500; }` |
4472
4567
  *
4473
4568
  * Read more:
4474
- * - [Grid size &#8594;](@/guides/getting-started/grid-size.md)
4569
+ * - [Grid size](@/guides/getting-started/grid-size.md)
4475
4570
  *
4476
4571
  * @memberof Options#
4477
4572
  * @type {number|string|Function}