handsontable 14.4.0 → 14.5.0-next-7541a88-20240725

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 (467) hide show
  1. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleColumns.js +126 -0
  2. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleColumns.mjs +122 -0
  3. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleRows.js +119 -0
  4. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleRows.mjs +115 -0
  5. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.js +125 -0
  6. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.mjs +121 -0
  7. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.js +118 -0
  8. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.mjs +114 -0
  9. package/3rdparty/walkontable/src/calculator/{renderAllColumns.js → calculationType/renderedAllColumns.js} +33 -10
  10. package/3rdparty/walkontable/src/calculator/{renderAllColumns.mjs → calculationType/renderedAllColumns.mjs} +32 -9
  11. package/3rdparty/walkontable/src/calculator/{renderAllRows.js → calculationType/renderedAllRows.js} +33 -10
  12. package/3rdparty/walkontable/src/calculator/{renderAllRows.mjs → calculationType/renderedAllRows.mjs} +32 -9
  13. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.js +37 -0
  14. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +33 -0
  15. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +37 -0
  16. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +33 -0
  17. package/3rdparty/walkontable/src/calculator/index.js +18 -17
  18. package/3rdparty/walkontable/src/calculator/index.mjs +11 -6
  19. package/3rdparty/walkontable/src/calculator/viewportBase.js +92 -0
  20. package/3rdparty/walkontable/src/calculator/viewportBase.mjs +88 -0
  21. package/3rdparty/walkontable/src/calculator/viewportColumns.js +52 -146
  22. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +52 -146
  23. package/3rdparty/walkontable/src/calculator/viewportRows.js +60 -142
  24. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +60 -142
  25. package/3rdparty/walkontable/src/cell/coords.js +3 -3
  26. package/3rdparty/walkontable/src/cell/coords.mjs +3 -3
  27. package/3rdparty/walkontable/src/cell/range.js +4 -4
  28. package/3rdparty/walkontable/src/cell/range.mjs +3 -3
  29. package/3rdparty/walkontable/src/core/_base.js +2 -2
  30. package/3rdparty/walkontable/src/core/_base.mjs +1 -1
  31. package/3rdparty/walkontable/src/core/clone.js +2 -2
  32. package/3rdparty/walkontable/src/core/clone.mjs +1 -1
  33. package/3rdparty/walkontable/src/core/core.js +17 -1
  34. package/3rdparty/walkontable/src/core/core.mjs +16 -0
  35. package/3rdparty/walkontable/src/event.js +2 -2
  36. package/3rdparty/walkontable/src/event.mjs +2 -2
  37. package/3rdparty/walkontable/src/facade/core.js +4 -1
  38. package/3rdparty/walkontable/src/facade/core.mjs +3 -0
  39. package/3rdparty/walkontable/src/filter/column.js +1 -1
  40. package/3rdparty/walkontable/src/filter/column.mjs +1 -1
  41. package/3rdparty/walkontable/src/filter/row.js +1 -1
  42. package/3rdparty/walkontable/src/filter/row.mjs +1 -1
  43. package/3rdparty/walkontable/src/index.js +3 -1
  44. package/3rdparty/walkontable/src/index.mjs +2 -2
  45. package/3rdparty/walkontable/src/overlay/_base.js +2 -2
  46. package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
  47. package/3rdparty/walkontable/src/overlay/bottom.js +2 -2
  48. package/3rdparty/walkontable/src/overlay/bottom.mjs +1 -1
  49. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.js +1 -1
  50. package/3rdparty/walkontable/src/overlay/inlineStart.js +1 -1
  51. package/3rdparty/walkontable/src/overlay/top.js +2 -2
  52. package/3rdparty/walkontable/src/overlay/top.mjs +1 -1
  53. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +2 -2
  54. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +1 -1
  55. package/3rdparty/walkontable/src/overlays.js +36 -4
  56. package/3rdparty/walkontable/src/overlays.mjs +36 -4
  57. package/3rdparty/walkontable/src/renderer/_base.js +2 -2
  58. package/3rdparty/walkontable/src/renderer/_base.mjs +1 -1
  59. package/3rdparty/walkontable/src/renderer/cells.js +2 -2
  60. package/3rdparty/walkontable/src/renderer/cells.mjs +1 -1
  61. package/3rdparty/walkontable/src/renderer/colGroup.js +1 -1
  62. package/3rdparty/walkontable/src/renderer/columnHeaders.js +1 -1
  63. package/3rdparty/walkontable/src/renderer/index.js +12 -1
  64. package/3rdparty/walkontable/src/renderer/index.mjs +11 -0
  65. package/3rdparty/walkontable/src/renderer/rowHeaders.js +2 -2
  66. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +1 -1
  67. package/3rdparty/walkontable/src/renderer/rows.js +2 -2
  68. package/3rdparty/walkontable/src/renderer/rows.mjs +1 -1
  69. package/3rdparty/walkontable/src/renderer/table.js +17 -2
  70. package/3rdparty/walkontable/src/renderer/table.mjs +17 -2
  71. package/3rdparty/walkontable/src/scroll.js +3 -3
  72. package/3rdparty/walkontable/src/scroll.mjs +3 -3
  73. package/3rdparty/walkontable/src/selection/index.js +1 -1
  74. package/3rdparty/walkontable/src/selection/manager.js +4 -4
  75. package/3rdparty/walkontable/src/selection/manager.mjs +3 -3
  76. package/3rdparty/walkontable/src/selection/scanner.js +3 -3
  77. package/3rdparty/walkontable/src/selection/scanner.mjs +3 -3
  78. package/3rdparty/walkontable/src/selection/selection.js +1 -1
  79. package/3rdparty/walkontable/src/settings.js +6 -2
  80. package/3rdparty/walkontable/src/settings.mjs +6 -2
  81. package/3rdparty/walkontable/src/table/bottom.js +1 -1
  82. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.js +1 -1
  83. package/3rdparty/walkontable/src/table/inlineStart.js +1 -1
  84. package/3rdparty/walkontable/src/table/master.js +1 -1
  85. package/3rdparty/walkontable/src/table/top.js +1 -1
  86. package/3rdparty/walkontable/src/table/topInlineStartCorner.js +1 -1
  87. package/3rdparty/walkontable/src/table.js +8 -14
  88. package/3rdparty/walkontable/src/table.mjs +7 -13
  89. package/3rdparty/walkontable/src/utils/column.js +3 -2
  90. package/3rdparty/walkontable/src/utils/column.mjs +3 -2
  91. package/3rdparty/walkontable/src/utils/columnStretching.js +13 -22
  92. package/3rdparty/walkontable/src/utils/columnStretching.mjs +13 -22
  93. package/3rdparty/walkontable/src/utils/nodesPool.js +1 -1
  94. package/3rdparty/walkontable/src/utils/nodesPool.mjs +1 -1
  95. package/3rdparty/walkontable/src/utils/orderView/index.js +1 -1
  96. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +1 -1
  97. package/3rdparty/walkontable/src/utils/orderView/view.js +2 -2
  98. package/3rdparty/walkontable/src/utils/orderView/view.mjs +1 -1
  99. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +1 -1
  100. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +1 -1
  101. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +2 -2
  102. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +1 -1
  103. package/3rdparty/walkontable/src/utils/row.js +17 -1
  104. package/3rdparty/walkontable/src/utils/row.mjs +17 -1
  105. package/3rdparty/walkontable/src/viewport.js +35 -46
  106. package/3rdparty/walkontable/src/viewport.mjs +36 -47
  107. package/CHANGELOG.md +27 -1
  108. package/base.js +3 -3
  109. package/base.mjs +2 -2
  110. package/cellTypes/registry.js +1 -1
  111. package/common.d.ts +3 -0
  112. package/core.d.ts +2 -0
  113. package/core.js +37 -32
  114. package/core.mjs +37 -32
  115. package/dataMap/dataMap.js +1 -1
  116. package/dataMap/dataMap.mjs +1 -1
  117. package/dataMap/dataSource.js +1 -1
  118. package/dataMap/dataSource.mjs +1 -1
  119. package/dataMap/index.js +1 -1
  120. package/dataMap/metaManager/index.js +1 -1
  121. package/dataMap/metaManager/lazyFactoryMap.js +1 -1
  122. package/dataMap/metaManager/lazyFactoryMap.mjs +1 -1
  123. package/dataMap/metaManager/metaLayers/cellMeta.js +2 -2
  124. package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -1
  125. package/dataMap/metaManager/metaLayers/columnMeta.js +2 -2
  126. package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -1
  127. package/dataMap/metaManager/metaLayers/globalMeta.js +2 -2
  128. package/dataMap/metaManager/metaLayers/globalMeta.mjs +1 -1
  129. package/dataMap/metaManager/metaLayers/tableMeta.js +1 -1
  130. package/dataMap/metaManager/metaLayers/tableMeta.mjs +1 -1
  131. package/dataMap/metaManager/metaSchema.js +25 -0
  132. package/dataMap/metaManager/metaSchema.mjs +25 -0
  133. package/dataMap/metaManager/mods/dynamicCellMeta.js +2 -2
  134. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
  135. package/dataMap/metaManager/mods/extendMetaProperties.js +3 -3
  136. package/dataMap/metaManager/mods/extendMetaProperties.mjs +3 -3
  137. package/dataMap/replaceData.js +1 -1
  138. package/dist/handsontable.css +134 -88
  139. package/dist/handsontable.full.css +134 -88
  140. package/dist/handsontable.full.js +4084 -2863
  141. package/dist/handsontable.full.min.css +7 -7
  142. package/dist/handsontable.full.min.js +153 -153
  143. package/dist/handsontable.js +4074 -2801
  144. package/dist/handsontable.min.css +6 -6
  145. package/dist/handsontable.min.js +33 -33
  146. package/dist/languages/all.js +3 -3
  147. package/dist/languages/ar-AR.js +3 -3
  148. package/dist/languages/cs-CZ.js +3 -3
  149. package/dist/languages/de-CH.js +3 -3
  150. package/dist/languages/de-DE.js +3 -3
  151. package/dist/languages/en-US.js +3 -3
  152. package/dist/languages/es-MX.js +3 -3
  153. package/dist/languages/fr-FR.js +3 -3
  154. package/dist/languages/hr-HR.js +3 -3
  155. package/dist/languages/it-IT.js +3 -3
  156. package/dist/languages/ja-JP.js +3 -3
  157. package/dist/languages/ko-KR.js +3 -3
  158. package/dist/languages/lv-LV.js +3 -3
  159. package/dist/languages/nb-NO.js +3 -3
  160. package/dist/languages/nl-NL.js +3 -3
  161. package/dist/languages/pl-PL.js +3 -3
  162. package/dist/languages/pt-BR.js +3 -3
  163. package/dist/languages/ru-RU.js +3 -3
  164. package/dist/languages/sr-SP.js +3 -3
  165. package/dist/languages/zh-CN.js +3 -3
  166. package/dist/languages/zh-TW.js +3 -3
  167. package/editorManager.js +4 -4
  168. package/editorManager.mjs +3 -3
  169. package/editors/autocompleteEditor/autocompleteEditor.js +3 -3
  170. package/editors/autocompleteEditor/autocompleteEditor.mjs +3 -3
  171. package/editors/baseEditor/baseEditor.js +2 -2
  172. package/editors/baseEditor/baseEditor.mjs +1 -1
  173. package/editors/dateEditor/dateEditor.js +2 -2
  174. package/editors/dateEditor/dateEditor.mjs +1 -1
  175. package/editors/dropdownEditor/dropdownEditor.js +1 -1
  176. package/editors/registry.js +1 -1
  177. package/editors/textEditor/textEditor.js +2 -2
  178. package/editors/textEditor/textEditor.mjs +1 -1
  179. package/eventManager.js +1 -1
  180. package/eventManager.mjs +1 -1
  181. package/focusManager.js +3 -3
  182. package/focusManager.mjs +3 -3
  183. package/helpers/dom/event.d.ts +1 -0
  184. package/helpers/dom/event.js +11 -0
  185. package/helpers/dom/event.mjs +10 -0
  186. package/helpers/mixed.js +3 -3
  187. package/helpers/mixed.mjs +2 -2
  188. package/helpers/string.js +1 -1
  189. package/i18n/languages/index.js +1 -1
  190. package/i18n/phraseFormatters/index.js +1 -1
  191. package/i18n/registry.js +1 -1
  192. package/index.js +1 -1
  193. package/languages/all.js +3 -3
  194. package/languages/ar-AR.js +3 -3
  195. package/languages/cs-CZ.js +3 -3
  196. package/languages/de-CH.js +3 -3
  197. package/languages/de-DE.js +3 -3
  198. package/languages/en-US.js +3 -3
  199. package/languages/es-MX.js +3 -3
  200. package/languages/fr-FR.js +3 -3
  201. package/languages/hr-HR.js +3 -3
  202. package/languages/index.js +3 -3
  203. package/languages/it-IT.js +3 -3
  204. package/languages/ja-JP.js +3 -3
  205. package/languages/ko-KR.js +3 -3
  206. package/languages/lv-LV.js +3 -3
  207. package/languages/nb-NO.js +3 -3
  208. package/languages/nl-NL.js +3 -3
  209. package/languages/pl-PL.js +3 -3
  210. package/languages/pt-BR.js +3 -3
  211. package/languages/ru-RU.js +3 -3
  212. package/languages/sr-SP.js +3 -3
  213. package/languages/zh-CN.js +3 -3
  214. package/languages/zh-TW.js +3 -3
  215. package/package.json +1 -5
  216. package/pluginHooks.d.ts +3 -1
  217. package/pluginHooks.js +12 -1
  218. package/pluginHooks.mjs +12 -1
  219. package/plugins/autoColumnSize/autoColumnSize.d.ts +1 -1
  220. package/plugins/autoColumnSize/autoColumnSize.js +124 -124
  221. package/plugins/autoColumnSize/autoColumnSize.mjs +124 -124
  222. package/plugins/autoRowSize/autoRowSize.d.ts +2 -1
  223. package/plugins/autoRowSize/autoRowSize.js +162 -100
  224. package/plugins/autoRowSize/autoRowSize.mjs +161 -99
  225. package/plugins/autofill/autofill.js +4 -4
  226. package/plugins/autofill/autofill.mjs +3 -3
  227. package/plugins/base/base.js +5 -5
  228. package/plugins/base/base.mjs +4 -4
  229. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +4 -4
  230. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +3 -3
  231. package/plugins/collapsibleColumns/collapsibleColumns.js +4 -4
  232. package/plugins/collapsibleColumns/collapsibleColumns.mjs +4 -4
  233. package/plugins/columnSorting/columnSorting.js +6 -5
  234. package/plugins/columnSorting/columnSorting.mjs +5 -4
  235. package/plugins/columnSorting/columnStatesManager.js +1 -1
  236. package/plugins/columnSorting/columnStatesManager.mjs +1 -1
  237. package/plugins/columnSorting/sortService/registry.js +1 -1
  238. package/plugins/columnSorting/utils.js +1 -1
  239. package/plugins/columnSummary/columnSummary.d.ts +1 -1
  240. package/plugins/columnSummary/columnSummary.js +4 -4
  241. package/plugins/columnSummary/columnSummary.mjs +3 -3
  242. package/plugins/columnSummary/endpoints.js +1 -1
  243. package/plugins/columnSummary/endpoints.mjs +1 -1
  244. package/plugins/comments/commentEditor.js +74 -39
  245. package/plugins/comments/commentEditor.mjs +73 -39
  246. package/plugins/comments/comments.js +25 -44
  247. package/plugins/comments/comments.mjs +25 -44
  248. package/plugins/comments/displaySwitch.js +2 -2
  249. package/plugins/comments/displaySwitch.mjs +1 -1
  250. package/plugins/comments/editorResizeObserver.js +100 -0
  251. package/plugins/comments/editorResizeObserver.mjs +95 -0
  252. package/plugins/contextMenu/commandExecutor.js +1 -1
  253. package/plugins/contextMenu/commandExecutor.mjs +1 -1
  254. package/plugins/contextMenu/contextMenu.js +4 -4
  255. package/plugins/contextMenu/contextMenu.mjs +3 -3
  256. package/plugins/contextMenu/itemsFactory.js +1 -1
  257. package/plugins/contextMenu/itemsFactory.mjs +1 -1
  258. package/plugins/contextMenu/menu/cursor.js +1 -1
  259. package/plugins/contextMenu/menu/cursor.mjs +1 -1
  260. package/plugins/contextMenu/menu/menu.js +5 -4
  261. package/plugins/contextMenu/menu/menu.mjs +4 -3
  262. package/plugins/contextMenu/menu/positioner.js +2 -2
  263. package/plugins/contextMenu/menu/positioner.mjs +2 -2
  264. package/plugins/copyPaste/copyPaste.js +5 -5
  265. package/plugins/copyPaste/copyPaste.mjs +4 -4
  266. package/plugins/copyPaste/copyableRanges.js +3 -3
  267. package/plugins/copyPaste/copyableRanges.mjs +3 -3
  268. package/plugins/copyPaste/pasteEvent.js +1 -1
  269. package/plugins/customBorders/contextMenuItem/index.js +1 -1
  270. package/plugins/customBorders/customBorders.js +3 -3
  271. package/plugins/customBorders/customBorders.mjs +3 -3
  272. package/plugins/dragToScroll/dragToScroll.js +4 -4
  273. package/plugins/dragToScroll/dragToScroll.mjs +4 -4
  274. package/plugins/dropdownMenu/dropdownMenu.js +5 -5
  275. package/plugins/dropdownMenu/dropdownMenu.mjs +4 -4
  276. package/plugins/exportFile/dataProvider.js +1 -1
  277. package/plugins/exportFile/dataProvider.mjs +1 -1
  278. package/plugins/exportFile/exportFile.js +1 -1
  279. package/plugins/exportFile/typeFactory.js +1 -1
  280. package/plugins/exportFile/types/_base.js +1 -1
  281. package/plugins/exportFile/types/_base.mjs +1 -1
  282. package/plugins/exportFile/types/csv.js +1 -1
  283. package/plugins/filters/component/_base.js +2 -2
  284. package/plugins/filters/component/_base.mjs +1 -1
  285. package/plugins/filters/component/actionBar.js +3 -3
  286. package/plugins/filters/component/actionBar.mjs +3 -3
  287. package/plugins/filters/component/condition.js +3 -3
  288. package/plugins/filters/component/condition.mjs +3 -3
  289. package/plugins/filters/component/operators.js +3 -3
  290. package/plugins/filters/component/operators.mjs +3 -3
  291. package/plugins/filters/component/value.js +3 -3
  292. package/plugins/filters/component/value.mjs +3 -3
  293. package/plugins/filters/condition/date/after.js +1 -1
  294. package/plugins/filters/condition/date/before.js +1 -1
  295. package/plugins/filters/condition/date/today.js +1 -1
  296. package/plugins/filters/condition/date/tomorrow.js +1 -1
  297. package/plugins/filters/condition/date/yesterday.js +1 -1
  298. package/plugins/filters/conditionCollection.js +2 -2
  299. package/plugins/filters/conditionCollection.mjs +1 -1
  300. package/plugins/filters/conditionUpdateObserver.js +4 -4
  301. package/plugins/filters/conditionUpdateObserver.mjs +3 -3
  302. package/plugins/filters/dataFilter.js +1 -1
  303. package/plugins/filters/dataFilter.mjs +1 -1
  304. package/plugins/filters/filters.js +5 -5
  305. package/plugins/filters/filters.mjs +4 -4
  306. package/plugins/filters/ui/_base.js +2 -2
  307. package/plugins/filters/ui/_base.mjs +1 -1
  308. package/plugins/filters/ui/input.js +3 -3
  309. package/plugins/filters/ui/input.mjs +3 -3
  310. package/plugins/filters/ui/link.js +2 -2
  311. package/plugins/filters/ui/link.mjs +2 -2
  312. package/plugins/filters/ui/multipleSelect.js +3 -3
  313. package/plugins/filters/ui/multipleSelect.mjs +3 -3
  314. package/plugins/filters/ui/radioInput.js +2 -2
  315. package/plugins/filters/ui/radioInput.mjs +2 -2
  316. package/plugins/filters/ui/select.js +3 -3
  317. package/plugins/filters/ui/select.mjs +3 -3
  318. package/plugins/formulas/engine/register.js +1 -1
  319. package/plugins/formulas/formulas.js +7 -7
  320. package/plugins/formulas/formulas.mjs +6 -6
  321. package/plugins/formulas/indexSyncer/axisSyncer.js +2 -2
  322. package/plugins/formulas/indexSyncer/axisSyncer.mjs +2 -2
  323. package/plugins/formulas/indexSyncer/index.js +3 -3
  324. package/plugins/formulas/indexSyncer/index.mjs +2 -2
  325. package/plugins/formulas/utils.js +1 -1
  326. package/plugins/hiddenColumns/hiddenColumns.js +4 -4
  327. package/plugins/hiddenColumns/hiddenColumns.mjs +3 -3
  328. package/plugins/hiddenRows/hiddenRows.js +4 -4
  329. package/plugins/hiddenRows/hiddenRows.mjs +3 -3
  330. package/plugins/manualColumnFreeze/manualColumnFreeze.js +4 -4
  331. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +3 -3
  332. package/plugins/manualColumnMove/manualColumnMove.js +4 -4
  333. package/plugins/manualColumnMove/manualColumnMove.mjs +3 -3
  334. package/plugins/manualColumnMove/ui/_base.js +1 -1
  335. package/plugins/manualColumnMove/ui/_base.mjs +1 -1
  336. package/plugins/manualColumnMove/ui/backlight.js +1 -1
  337. package/plugins/manualColumnMove/ui/guideline.js +1 -1
  338. package/plugins/manualColumnResize/manualColumnResize.js +3 -3
  339. package/plugins/manualColumnResize/manualColumnResize.mjs +3 -3
  340. package/plugins/manualRowMove/manualRowMove.js +4 -4
  341. package/plugins/manualRowMove/manualRowMove.mjs +3 -3
  342. package/plugins/manualRowMove/ui/_base.js +1 -1
  343. package/plugins/manualRowMove/ui/_base.mjs +1 -1
  344. package/plugins/manualRowMove/ui/backlight.js +1 -1
  345. package/plugins/manualRowMove/ui/guideline.js +1 -1
  346. package/plugins/manualRowResize/manualRowResize.js +4 -4
  347. package/plugins/manualRowResize/manualRowResize.mjs +5 -5
  348. package/plugins/mergeCells/calculations/autofill.js +2 -2
  349. package/plugins/mergeCells/calculations/autofill.mjs +2 -2
  350. package/plugins/mergeCells/calculations/selection.js +1 -1
  351. package/plugins/mergeCells/calculations/selection.mjs +1 -1
  352. package/plugins/mergeCells/cellCoords.js +81 -24
  353. package/plugins/mergeCells/cellCoords.mjs +81 -24
  354. package/plugins/mergeCells/cellsCollection.js +167 -91
  355. package/plugins/mergeCells/cellsCollection.mjs +166 -90
  356. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +1 -1
  357. package/plugins/mergeCells/focusOrder.js +4 -4
  358. package/plugins/mergeCells/focusOrder.mjs +3 -3
  359. package/plugins/mergeCells/mergeCells.js +171 -122
  360. package/plugins/mergeCells/mergeCells.mjs +171 -122
  361. package/plugins/mergeCells/renderer.js +74 -0
  362. package/plugins/mergeCells/renderer.mjs +70 -0
  363. package/plugins/multiColumnSorting/multiColumnSorting.js +2 -1
  364. package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -1
  365. package/plugins/multiColumnSorting/utils.js +1 -1
  366. package/plugins/multiColumnSorting/utils.mjs +1 -1
  367. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +1 -1
  368. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +1 -1
  369. package/plugins/nestedHeaders/nestedHeaders.d.ts +1 -0
  370. package/plugins/nestedHeaders/nestedHeaders.js +20 -9
  371. package/plugins/nestedHeaders/nestedHeaders.mjs +20 -9
  372. package/plugins/nestedHeaders/stateManager/headersTree.js +3 -3
  373. package/plugins/nestedHeaders/stateManager/headersTree.mjs +2 -2
  374. package/plugins/nestedHeaders/stateManager/index.js +3 -3
  375. package/plugins/nestedHeaders/stateManager/index.mjs +2 -2
  376. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +5 -1
  377. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +5 -1
  378. package/plugins/nestedHeaders/stateManager/sourceSettings.js +2 -2
  379. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +2 -2
  380. package/plugins/nestedHeaders/stateManager/utils.js +6 -2
  381. package/plugins/nestedHeaders/stateManager/utils.mjs +6 -2
  382. package/plugins/nestedHeaders/utils/ghostTable.js +1 -1
  383. package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -1
  384. package/plugins/nestedRows/data/dataManager.js +1 -1
  385. package/plugins/nestedRows/data/dataManager.mjs +1 -1
  386. package/plugins/nestedRows/nestedRows.js +5 -5
  387. package/plugins/nestedRows/nestedRows.mjs +4 -4
  388. package/plugins/nestedRows/ui/_base.js +1 -1
  389. package/plugins/nestedRows/ui/_base.mjs +1 -1
  390. package/plugins/nestedRows/ui/collapsing.js +1 -1
  391. package/plugins/nestedRows/ui/contextMenu.js +4 -4
  392. package/plugins/nestedRows/ui/contextMenu.mjs +3 -3
  393. package/plugins/nestedRows/ui/headers.js +1 -1
  394. package/plugins/nestedRows/utils/rowMoveController.js +1 -1
  395. package/plugins/nestedRows/utils/rowMoveController.mjs +1 -1
  396. package/plugins/persistentState/persistentState.js +2 -2
  397. package/plugins/persistentState/persistentState.mjs +1 -1
  398. package/plugins/persistentState/storage.js +1 -1
  399. package/plugins/persistentState/storage.mjs +1 -1
  400. package/plugins/search/search.js +3 -3
  401. package/plugins/search/search.mjs +3 -3
  402. package/plugins/touchScroll/touchScroll.js +3 -3
  403. package/plugins/touchScroll/touchScroll.mjs +3 -3
  404. package/plugins/trimRows/trimRows.js +3 -3
  405. package/plugins/trimRows/trimRows.mjs +3 -3
  406. package/plugins/undoRedo/undoRedo.js +38 -1
  407. package/plugins/undoRedo/undoRedo.mjs +37 -0
  408. package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -1
  409. package/renderers/checkboxRenderer/checkboxRenderer.js +1 -1
  410. package/renderers/numericRenderer/numericRenderer.js +1 -1
  411. package/renderers/registry.js +1 -1
  412. package/selection/highlight/highlight.js +3 -3
  413. package/selection/highlight/highlight.mjs +3 -3
  414. package/selection/highlight/types/activeHeader.js +1 -1
  415. package/selection/highlight/types/area.js +1 -1
  416. package/selection/highlight/types/areaLayered.js +1 -1
  417. package/selection/highlight/types/column.js +1 -1
  418. package/selection/highlight/types/customSelection.js +1 -1
  419. package/selection/highlight/types/fill.js +1 -1
  420. package/selection/highlight/types/focus.js +1 -1
  421. package/selection/highlight/types/header.js +1 -1
  422. package/selection/highlight/types/row.js +1 -1
  423. package/selection/highlight/visualSelection.js +1 -1
  424. package/selection/highlight/visualSelection.mjs +1 -1
  425. package/selection/index.js +1 -1
  426. package/selection/range.js +1 -1
  427. package/selection/range.mjs +1 -1
  428. package/selection/selection.js +8 -4
  429. package/selection/selection.mjs +7 -3
  430. package/selection/transformation.js +14 -4
  431. package/selection/transformation.mjs +13 -3
  432. package/settings.d.ts +1 -0
  433. package/shortcuts/utils.js +18 -27
  434. package/shortcuts/utils.mjs +18 -27
  435. package/tableView.js +126 -28
  436. package/tableView.mjs +125 -27
  437. package/translations/changesObservable/observable.js +2 -2
  438. package/translations/changesObservable/observable.mjs +2 -2
  439. package/translations/changesObservable/observer.js +3 -3
  440. package/translations/changesObservable/observer.mjs +2 -2
  441. package/translations/indexMapper.js +2 -2
  442. package/translations/indexMapper.mjs +1 -1
  443. package/translations/mapCollections/aggregatedCollection.js +1 -1
  444. package/translations/mapCollections/aggregatedCollection.mjs +1 -1
  445. package/translations/mapCollections/mapCollection.js +2 -2
  446. package/translations/mapCollections/mapCollection.mjs +1 -1
  447. package/translations/maps/indexMap.js +2 -2
  448. package/translations/maps/indexMap.mjs +1 -1
  449. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -1
  450. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -1
  451. package/utils/dataStructures/linkedList.js +1 -1
  452. package/utils/dataStructures/linkedList.mjs +1 -1
  453. package/utils/dataStructures/tree.js +1 -1
  454. package/utils/dataStructures/tree.mjs +1 -1
  455. package/utils/ghostTable.js +1 -1
  456. package/utils/ghostTable.mjs +1 -1
  457. package/utils/interval.js +4 -4
  458. package/utils/interval.mjs +4 -4
  459. package/utils/samplesGenerator.js +1 -1
  460. package/utils/samplesGenerator.mjs +1 -1
  461. package/validators/dateValidator/dateValidator.js +1 -1
  462. package/validators/registry.js +1 -1
  463. package/validators/timeValidator/timeValidator.js +1 -1
  464. package/3rdparty/walkontable/src/calculator/constants.js +0 -26
  465. package/3rdparty/walkontable/src/calculator/constants.mjs +0 -23
  466. package/plugins/mergeCells/utils.js +0 -28
  467. package/plugins/mergeCells/utils.mjs +0 -24
@@ -25,8 +25,8 @@
25
25
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
26
26
  * USE OR INABILITY TO USE THIS SOFTWARE.
27
27
  *
28
- * Version: 14.4.0
29
- * Release date: 11/06/2024 (built at 11/06/2024 09:51:57)
28
+ * Version: 14.5.0-next-7541a88-20240725
29
+ * Release date: 24/07/2024 (built at 25/07/2024 07:59:48)
30
30
  */
31
31
  /**
32
32
  * Fix for bootstrap styles
@@ -235,13 +235,15 @@
235
235
  border-top: 1px solid #ccc;
236
236
  }
237
237
 
238
- .ht_master:not(.innerBorderInlineStart):not(.emptyColumns) ~ .handsontable tbody tr th,
239
- .ht_master:not(.innerBorderInlineStart):not(.emptyColumns) ~ .handsontable:not(.ht_clone_top) thead tr th:first-child {
238
+ .ht_master:not(.innerBorderInlineStart):not(.emptyColumns) tbody tr th,
239
+ .ht_master:not(.innerBorderInlineStart):not(.emptyColumns) thead tr th:first-child,
240
+ .ht_master:not(.innerBorderInlineStart):not(.emptyColumns) ~ .handsontable:not(.htGhostTable) tbody tr th,
241
+ .ht_master:not(.innerBorderInlineStart):not(.emptyColumns) ~ .handsontable:not(.ht_clone_top):not(.htGhostTable) thead tr th:first-child {
240
242
  border-right-width: 0;
241
243
  border-left: 1px solid #ccc;
242
244
  }
243
245
 
244
- [dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) ~ .handsontable tbody tr th, [dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) ~ .handsontable:not(.ht_clone_top) thead tr th:first-child {
246
+ [dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) tbody tr th, [dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) thead tr th:first-child, [dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) ~ .handsontable:not(.htGhostTable) tbody tr th, [dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) ~ .handsontable:not(.ht_clone_top):not(.htGhostTable) thead tr th:first-child {
245
247
  border-left-width: 0;
246
248
  border-right: 1px solid #ccc;
247
249
  }
@@ -496,63 +498,6 @@ innerBorderBottom - Property controlled by bottom overlay
496
498
  z-index: 209;
497
499
  }
498
500
 
499
- .handsontable .columnSorting {
500
- position: relative;
501
- }
502
-
503
- .handsontable .columnSorting.sortAction:hover {
504
- text-decoration: underline;
505
- cursor: pointer;
506
- } /* Arrow position */
507
- .handsontable span.colHeader.columnSorting::before {
508
- /* Centering start */
509
- top: 50%;
510
- /* One extra pixel for purpose of proper positioning of sorting arrow, when `font-size` set to default */
511
- margin-top: -6px;
512
- /* Centering end */
513
- /* For purpose of continuous mouse over experience, when moving between the `span` and the `::before` elements */
514
- padding-left: 8px;
515
- padding-right: 0;
516
- position: absolute;
517
- right: -9px;
518
- left: unset;
519
- content: "";
520
- height: 10px;
521
- width: 5px;
522
- background-size: contain;
523
- background-repeat: no-repeat;
524
- background-position-x: right;
525
- }
526
-
527
- [dir=rtl].handsontable span.colHeader.columnSorting::before {
528
- /* Centering end */
529
- /* For purpose of continuous mouse over experience, when moving between the `span` and the `::before` elements */
530
- padding-right: 8px;
531
- padding-left: 0;
532
- left: -9px;
533
- right: unset;
534
- background-position-x: left;
535
- }
536
-
537
- .handsontable span.colHeader.columnSorting.ascending::before {
538
- /* arrow up; 20 x 40 px, scaled to 5 x 10 px; base64 size: 0.3kB */
539
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFNJREFUeAHtzjkSgCAUBNHPgsoy97+ulGXRqJE5L+xkxoYt2UdsLb5bqFINz+aLuuLn5rIu2RkO3fZpWENimNgiw6iBYRTPMLJjGFxQZ1hxxb/xBI1qC8k39CdKAAAAAElFTkSuQmCC);
540
- }
541
-
542
- .handsontable span.colHeader.columnSorting.descending::before {
543
- /* arrow down; 20 x 40 px, scaled to 5 x 10 px; base64 size: 0.3kB */
544
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFJJREFUeAHtzjkSgCAQRNFmQYUZ7n9dKUvru0TmvPAn3br0QfgdZ5xx6x+rQn23GqTYnq1FDcnuzZIO2WmedVqIRVxgGKEyjNgYRjKGkZ1hFIZ3I70LyM0VtU8AAAAASUVORK5CYII=);
545
- }
546
-
547
- .htGhostTable .htCore span.colHeader.columnSorting:not(.indicatorDisabled)::before {
548
- content: "*";
549
- display: inline-block;
550
- position: relative;
551
- /* The multi-line header and header with longer text need more padding to not hide arrow,
552
- we make header wider in `GhostTable` to make some space for arrow which is positioned absolutely in the main table */
553
- padding-right: 20px;
554
- }
555
-
556
501
  .handsontable td.area,
557
502
  .handsontable td.area-1,
558
503
  .handsontable td.area-2,
@@ -808,32 +753,6 @@ TextRenderer placeholder value
808
753
  background: #fcedd9;
809
754
  color: #583707;
810
755
  }
811
-
812
- .handsontable .collapsibleIndicator {
813
- position: absolute;
814
- top: 50%;
815
- transform: translate(0%, -50%);
816
- left: unset;
817
- right: 5px;
818
- border: 1px solid #A6A6A6;
819
- line-height: 8px;
820
- color: #222;
821
- border-radius: 10px;
822
- font-size: 10px;
823
- width: 10px;
824
- height: 10px;
825
- cursor: pointer;
826
- -webkit-box-shadow: 0 0 0 6px rgb(238, 238, 238);
827
- -moz-box-shadow: 0 0 0 6px rgb(238, 238, 238);
828
- box-shadow: 0 0 0 3px rgb(238, 238, 238);
829
- background: #eee;
830
- text-align: center;
831
- }
832
-
833
- [dir=rtl].handsontable .collapsibleIndicator {
834
- right: unset;
835
- left: 5px;
836
- }
837
756
  /*
838
757
 
839
758
  Handsontable Mobile Text Editor stylesheet
@@ -939,6 +858,105 @@ CheckboxRenderer
939
858
  .handsontable .htCheckboxRendererLabel.fullWidth {
940
859
  width: 100%;
941
860
  }
861
+ .handsontable .collapsibleIndicator {
862
+ position: absolute;
863
+ top: 50%;
864
+ transform: translate(0%, -50%);
865
+ left: unset;
866
+ right: 5px;
867
+ border: 1px solid #A6A6A6;
868
+ line-height: 8px;
869
+ color: #222;
870
+ border-radius: 10px;
871
+ font-size: 10px;
872
+ width: 10px;
873
+ height: 10px;
874
+ cursor: pointer;
875
+ -webkit-box-shadow: 0 0 0 6px rgb(238, 238, 238);
876
+ -moz-box-shadow: 0 0 0 6px rgb(238, 238, 238);
877
+ box-shadow: 0 0 0 3px rgb(238, 238, 238);
878
+ background: #eee;
879
+ text-align: center;
880
+ }
881
+
882
+ [dir=rtl].handsontable .collapsibleIndicator {
883
+ right: unset;
884
+ left: 5px;
885
+ }
886
+
887
+ .handsontable[dir=ltr] thead th:has(.collapsibleIndicator) div.htRight span.colHeader {
888
+ margin-right: 20px;
889
+ }
890
+
891
+ .handsontable[dir=rtl] thead th:has(.collapsibleIndicator) div.htLeft span.colHeader {
892
+ margin-left: 20px;
893
+ }
894
+ .handsontable .columnSorting {
895
+ position: relative;
896
+ }
897
+
898
+ .handsontable[dir=ltr] div.htRight span[class*=ascending],
899
+ .handsontable[dir=ltr] div.htRight span[class*=descending] {
900
+ margin-right: 20px;
901
+ }
902
+
903
+ .handsontable[dir=rtl] div.htLeft span[class*=ascending],
904
+ .handsontable[dir=rtl] div.htLeft span[class*=descending] {
905
+ margin-left: 20px;
906
+ }
907
+
908
+ .handsontable .columnSorting.sortAction:hover {
909
+ text-decoration: underline;
910
+ cursor: pointer;
911
+ } /* Arrow position */
912
+ .handsontable span.colHeader.columnSorting::before {
913
+ /* Centering start */
914
+ top: 50%;
915
+ /* One extra pixel for purpose of proper positioning of sorting arrow, when `font-size` set to default */
916
+ margin-top: -6px;
917
+ /* Centering end */
918
+ /* For purpose of continuous mouse over experience, when moving between the `span` and the `::before` elements */
919
+ padding-left: 8px;
920
+ padding-right: 0;
921
+ position: absolute;
922
+ right: -9px;
923
+ left: unset;
924
+ content: "";
925
+ height: 10px;
926
+ width: 5px;
927
+ background-size: contain;
928
+ background-repeat: no-repeat;
929
+ background-position-x: right;
930
+ }
931
+
932
+ [dir=rtl].handsontable span.colHeader.columnSorting::before {
933
+ /* Centering end */
934
+ /* For purpose of continuous mouse over experience, when moving between the `span` and the `::before` elements */
935
+ padding-right: 8px;
936
+ padding-left: 0;
937
+ left: -9px;
938
+ right: unset;
939
+ background-position-x: left;
940
+ }
941
+
942
+ .handsontable span.colHeader.columnSorting.ascending::before {
943
+ /* arrow up; 20 x 40 px, scaled to 5 x 10 px; base64 size: 0.3kB */
944
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFNJREFUeAHtzjkSgCAUBNHPgsoy97+ulGXRqJE5L+xkxoYt2UdsLb5bqFINz+aLuuLn5rIu2RkO3fZpWENimNgiw6iBYRTPMLJjGFxQZ1hxxb/xBI1qC8k39CdKAAAAAElFTkSuQmCC);
945
+ }
946
+
947
+ .handsontable span.colHeader.columnSorting.descending::before {
948
+ /* arrow down; 20 x 40 px, scaled to 5 x 10 px; base64 size: 0.3kB */
949
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFJJREFUeAHtzjkSgCAQRNFmQYUZ7n9dKUvru0TmvPAn3br0QfgdZ5xx6x+rQn23GqTYnq1FDcnuzZIO2WmedVqIRVxgGKEyjNgYRjKGkZ1hFIZ3I70LyM0VtU8AAAAASUVORK5CYII=);
950
+ }
951
+
952
+ .htGhostTable .htCore span.colHeader.columnSorting:not(.indicatorDisabled)::before {
953
+ content: "*";
954
+ display: inline-block;
955
+ position: relative;
956
+ /* The multi-line header and header with longer text need more padding to not hide arrow,
957
+ we make header wider in `GhostTable` to make some space for arrow which is positioned absolutely in the main table */
958
+ padding-right: 20px;
959
+ }
942
960
  .handsontable .htCommentCell {
943
961
  position: relative;
944
962
  }
@@ -1145,6 +1163,10 @@ textarea.HandsontableCopyPaste {
1145
1163
  float: left;
1146
1164
  }
1147
1165
 
1166
+ .handsontable[dir=rtl] .changeType {
1167
+ margin: 3px 5px 0 1px;
1168
+ }
1169
+
1148
1170
  .handsontable .changeType:before {
1149
1171
  content: "▼ ";
1150
1172
  }
@@ -1634,6 +1656,22 @@ textarea.HandsontableCopyPaste {
1634
1656
  position: relative;
1635
1657
  }
1636
1658
 
1659
+ .handsontable[dir=ltr] th.afterHiddenColumn div.htLeft {
1660
+ margin-left: 10px;
1661
+ }
1662
+
1663
+ .handsontable[dir=ltr] th.beforeHiddenColumn div.htRight {
1664
+ margin-right: 10px;
1665
+ }
1666
+
1667
+ .handsontable[dir=rtl] th.afterHiddenColumn div.htRight {
1668
+ margin-right: 10px;
1669
+ }
1670
+
1671
+ .handsontable[dir=rtl] th.beforeHiddenColumn div.htLeft {
1672
+ margin-left: 10px;
1673
+ }
1674
+
1637
1675
  .handsontable th.beforeHiddenColumn::after {
1638
1676
  right: 1px;
1639
1677
  content: "◀"; /* left arrow */
@@ -1836,6 +1874,14 @@ textarea.HandsontableCopyPaste {
1836
1874
  .handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-7]:before {
1837
1875
  opacity: 0.58;
1838
1876
  }
1877
+ .handsontable[dir=ltr] div.htRight span[class*=sort-] {
1878
+ margin-right: 20px;
1879
+ }
1880
+
1881
+ .handsontable[dir=rtl] div.htLeft span[class*=sort-] {
1882
+ margin-left: 20px;
1883
+ }
1884
+
1839
1885
  /* Column's number position */
1840
1886
  .handsontable span.colHeader.columnSorting::after {
1841
1887
  /* Centering start */
@@ -25,8 +25,8 @@
25
25
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
26
26
  * USE OR INABILITY TO USE THIS SOFTWARE.
27
27
  *
28
- * Version: 14.4.0
29
- * Release date: 11/06/2024 (built at 11/06/2024 09:51:57)
28
+ * Version: 14.5.0-next-7541a88-20240725
29
+ * Release date: 24/07/2024 (built at 25/07/2024 07:59:48)
30
30
  */
31
31
  /**
32
32
  * Fix for bootstrap styles
@@ -235,13 +235,15 @@
235
235
  border-top: 1px solid #ccc;
236
236
  }
237
237
 
238
- .ht_master:not(.innerBorderInlineStart):not(.emptyColumns) ~ .handsontable tbody tr th,
239
- .ht_master:not(.innerBorderInlineStart):not(.emptyColumns) ~ .handsontable:not(.ht_clone_top) thead tr th:first-child {
238
+ .ht_master:not(.innerBorderInlineStart):not(.emptyColumns) tbody tr th,
239
+ .ht_master:not(.innerBorderInlineStart):not(.emptyColumns) thead tr th:first-child,
240
+ .ht_master:not(.innerBorderInlineStart):not(.emptyColumns) ~ .handsontable:not(.htGhostTable) tbody tr th,
241
+ .ht_master:not(.innerBorderInlineStart):not(.emptyColumns) ~ .handsontable:not(.ht_clone_top):not(.htGhostTable) thead tr th:first-child {
240
242
  border-right-width: 0;
241
243
  border-left: 1px solid #ccc;
242
244
  }
243
245
 
244
- [dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) ~ .handsontable tbody tr th, [dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) ~ .handsontable:not(.ht_clone_top) thead tr th:first-child {
246
+ [dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) tbody tr th, [dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) thead tr th:first-child, [dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) ~ .handsontable:not(.htGhostTable) tbody tr th, [dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) ~ .handsontable:not(.ht_clone_top):not(.htGhostTable) thead tr th:first-child {
245
247
  border-left-width: 0;
246
248
  border-right: 1px solid #ccc;
247
249
  }
@@ -496,63 +498,6 @@ innerBorderBottom - Property controlled by bottom overlay
496
498
  z-index: 209;
497
499
  }
498
500
 
499
- .handsontable .columnSorting {
500
- position: relative;
501
- }
502
-
503
- .handsontable .columnSorting.sortAction:hover {
504
- text-decoration: underline;
505
- cursor: pointer;
506
- } /* Arrow position */
507
- .handsontable span.colHeader.columnSorting::before {
508
- /* Centering start */
509
- top: 50%;
510
- /* One extra pixel for purpose of proper positioning of sorting arrow, when `font-size` set to default */
511
- margin-top: -6px;
512
- /* Centering end */
513
- /* For purpose of continuous mouse over experience, when moving between the `span` and the `::before` elements */
514
- padding-left: 8px;
515
- padding-right: 0;
516
- position: absolute;
517
- right: -9px;
518
- left: unset;
519
- content: "";
520
- height: 10px;
521
- width: 5px;
522
- background-size: contain;
523
- background-repeat: no-repeat;
524
- background-position-x: right;
525
- }
526
-
527
- [dir=rtl].handsontable span.colHeader.columnSorting::before {
528
- /* Centering end */
529
- /* For purpose of continuous mouse over experience, when moving between the `span` and the `::before` elements */
530
- padding-right: 8px;
531
- padding-left: 0;
532
- left: -9px;
533
- right: unset;
534
- background-position-x: left;
535
- }
536
-
537
- .handsontable span.colHeader.columnSorting.ascending::before {
538
- /* arrow up; 20 x 40 px, scaled to 5 x 10 px; base64 size: 0.3kB */
539
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFNJREFUeAHtzjkSgCAUBNHPgsoy97+ulGXRqJE5L+xkxoYt2UdsLb5bqFINz+aLuuLn5rIu2RkO3fZpWENimNgiw6iBYRTPMLJjGFxQZ1hxxb/xBI1qC8k39CdKAAAAAElFTkSuQmCC);
540
- }
541
-
542
- .handsontable span.colHeader.columnSorting.descending::before {
543
- /* arrow down; 20 x 40 px, scaled to 5 x 10 px; base64 size: 0.3kB */
544
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFJJREFUeAHtzjkSgCAQRNFmQYUZ7n9dKUvru0TmvPAn3br0QfgdZ5xx6x+rQn23GqTYnq1FDcnuzZIO2WmedVqIRVxgGKEyjNgYRjKGkZ1hFIZ3I70LyM0VtU8AAAAASUVORK5CYII=);
545
- }
546
-
547
- .htGhostTable .htCore span.colHeader.columnSorting:not(.indicatorDisabled)::before {
548
- content: "*";
549
- display: inline-block;
550
- position: relative;
551
- /* The multi-line header and header with longer text need more padding to not hide arrow,
552
- we make header wider in `GhostTable` to make some space for arrow which is positioned absolutely in the main table */
553
- padding-right: 20px;
554
- }
555
-
556
501
  .handsontable td.area,
557
502
  .handsontable td.area-1,
558
503
  .handsontable td.area-2,
@@ -808,32 +753,6 @@ TextRenderer placeholder value
808
753
  background: #fcedd9;
809
754
  color: #583707;
810
755
  }
811
-
812
- .handsontable .collapsibleIndicator {
813
- position: absolute;
814
- top: 50%;
815
- transform: translate(0%, -50%);
816
- left: unset;
817
- right: 5px;
818
- border: 1px solid #A6A6A6;
819
- line-height: 8px;
820
- color: #222;
821
- border-radius: 10px;
822
- font-size: 10px;
823
- width: 10px;
824
- height: 10px;
825
- cursor: pointer;
826
- -webkit-box-shadow: 0 0 0 6px rgb(238, 238, 238);
827
- -moz-box-shadow: 0 0 0 6px rgb(238, 238, 238);
828
- box-shadow: 0 0 0 3px rgb(238, 238, 238);
829
- background: #eee;
830
- text-align: center;
831
- }
832
-
833
- [dir=rtl].handsontable .collapsibleIndicator {
834
- right: unset;
835
- left: 5px;
836
- }
837
756
  /*
838
757
 
839
758
  Handsontable Mobile Text Editor stylesheet
@@ -1172,6 +1091,105 @@ CheckboxRenderer
1172
1091
  .handsontable .htCheckboxRendererLabel.fullWidth {
1173
1092
  width: 100%;
1174
1093
  }
1094
+ .handsontable .collapsibleIndicator {
1095
+ position: absolute;
1096
+ top: 50%;
1097
+ transform: translate(0%, -50%);
1098
+ left: unset;
1099
+ right: 5px;
1100
+ border: 1px solid #A6A6A6;
1101
+ line-height: 8px;
1102
+ color: #222;
1103
+ border-radius: 10px;
1104
+ font-size: 10px;
1105
+ width: 10px;
1106
+ height: 10px;
1107
+ cursor: pointer;
1108
+ -webkit-box-shadow: 0 0 0 6px rgb(238, 238, 238);
1109
+ -moz-box-shadow: 0 0 0 6px rgb(238, 238, 238);
1110
+ box-shadow: 0 0 0 3px rgb(238, 238, 238);
1111
+ background: #eee;
1112
+ text-align: center;
1113
+ }
1114
+
1115
+ [dir=rtl].handsontable .collapsibleIndicator {
1116
+ right: unset;
1117
+ left: 5px;
1118
+ }
1119
+
1120
+ .handsontable[dir=ltr] thead th:has(.collapsibleIndicator) div.htRight span.colHeader {
1121
+ margin-right: 20px;
1122
+ }
1123
+
1124
+ .handsontable[dir=rtl] thead th:has(.collapsibleIndicator) div.htLeft span.colHeader {
1125
+ margin-left: 20px;
1126
+ }
1127
+ .handsontable .columnSorting {
1128
+ position: relative;
1129
+ }
1130
+
1131
+ .handsontable[dir=ltr] div.htRight span[class*=ascending],
1132
+ .handsontable[dir=ltr] div.htRight span[class*=descending] {
1133
+ margin-right: 20px;
1134
+ }
1135
+
1136
+ .handsontable[dir=rtl] div.htLeft span[class*=ascending],
1137
+ .handsontable[dir=rtl] div.htLeft span[class*=descending] {
1138
+ margin-left: 20px;
1139
+ }
1140
+
1141
+ .handsontable .columnSorting.sortAction:hover {
1142
+ text-decoration: underline;
1143
+ cursor: pointer;
1144
+ } /* Arrow position */
1145
+ .handsontable span.colHeader.columnSorting::before {
1146
+ /* Centering start */
1147
+ top: 50%;
1148
+ /* One extra pixel for purpose of proper positioning of sorting arrow, when `font-size` set to default */
1149
+ margin-top: -6px;
1150
+ /* Centering end */
1151
+ /* For purpose of continuous mouse over experience, when moving between the `span` and the `::before` elements */
1152
+ padding-left: 8px;
1153
+ padding-right: 0;
1154
+ position: absolute;
1155
+ right: -9px;
1156
+ left: unset;
1157
+ content: "";
1158
+ height: 10px;
1159
+ width: 5px;
1160
+ background-size: contain;
1161
+ background-repeat: no-repeat;
1162
+ background-position-x: right;
1163
+ }
1164
+
1165
+ [dir=rtl].handsontable span.colHeader.columnSorting::before {
1166
+ /* Centering end */
1167
+ /* For purpose of continuous mouse over experience, when moving between the `span` and the `::before` elements */
1168
+ padding-right: 8px;
1169
+ padding-left: 0;
1170
+ left: -9px;
1171
+ right: unset;
1172
+ background-position-x: left;
1173
+ }
1174
+
1175
+ .handsontable span.colHeader.columnSorting.ascending::before {
1176
+ /* arrow up; 20 x 40 px, scaled to 5 x 10 px; base64 size: 0.3kB */
1177
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFNJREFUeAHtzjkSgCAUBNHPgsoy97+ulGXRqJE5L+xkxoYt2UdsLb5bqFINz+aLuuLn5rIu2RkO3fZpWENimNgiw6iBYRTPMLJjGFxQZ1hxxb/xBI1qC8k39CdKAAAAAElFTkSuQmCC);
1178
+ }
1179
+
1180
+ .handsontable span.colHeader.columnSorting.descending::before {
1181
+ /* arrow down; 20 x 40 px, scaled to 5 x 10 px; base64 size: 0.3kB */
1182
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFJJREFUeAHtzjkSgCAQRNFmQYUZ7n9dKUvru0TmvPAn3br0QfgdZ5xx6x+rQn23GqTYnq1FDcnuzZIO2WmedVqIRVxgGKEyjNgYRjKGkZ1hFIZ3I70LyM0VtU8AAAAASUVORK5CYII=);
1183
+ }
1184
+
1185
+ .htGhostTable .htCore span.colHeader.columnSorting:not(.indicatorDisabled)::before {
1186
+ content: "*";
1187
+ display: inline-block;
1188
+ position: relative;
1189
+ /* The multi-line header and header with longer text need more padding to not hide arrow,
1190
+ we make header wider in `GhostTable` to make some space for arrow which is positioned absolutely in the main table */
1191
+ padding-right: 20px;
1192
+ }
1175
1193
  .handsontable .htCommentCell {
1176
1194
  position: relative;
1177
1195
  }
@@ -1378,6 +1396,10 @@ textarea.HandsontableCopyPaste {
1378
1396
  float: left;
1379
1397
  }
1380
1398
 
1399
+ .handsontable[dir=rtl] .changeType {
1400
+ margin: 3px 5px 0 1px;
1401
+ }
1402
+
1381
1403
  .handsontable .changeType:before {
1382
1404
  content: "▼ ";
1383
1405
  }
@@ -1867,6 +1889,22 @@ textarea.HandsontableCopyPaste {
1867
1889
  position: relative;
1868
1890
  }
1869
1891
 
1892
+ .handsontable[dir=ltr] th.afterHiddenColumn div.htLeft {
1893
+ margin-left: 10px;
1894
+ }
1895
+
1896
+ .handsontable[dir=ltr] th.beforeHiddenColumn div.htRight {
1897
+ margin-right: 10px;
1898
+ }
1899
+
1900
+ .handsontable[dir=rtl] th.afterHiddenColumn div.htRight {
1901
+ margin-right: 10px;
1902
+ }
1903
+
1904
+ .handsontable[dir=rtl] th.beforeHiddenColumn div.htLeft {
1905
+ margin-left: 10px;
1906
+ }
1907
+
1870
1908
  .handsontable th.beforeHiddenColumn::after {
1871
1909
  right: 1px;
1872
1910
  content: "◀"; /* left arrow */
@@ -2069,6 +2107,14 @@ textarea.HandsontableCopyPaste {
2069
2107
  .handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-7]:before {
2070
2108
  opacity: 0.58;
2071
2109
  }
2110
+ .handsontable[dir=ltr] div.htRight span[class*=sort-] {
2111
+ margin-right: 20px;
2112
+ }
2113
+
2114
+ .handsontable[dir=rtl] div.htLeft span[class*=sort-] {
2115
+ margin-left: 20px;
2116
+ }
2117
+
2072
2118
  /* Column's number position */
2073
2119
  .handsontable span.colHeader.columnSorting::after {
2074
2120
  /* Centering start */