handsontable 14.4.0-next-1ffa7bc-20240606 → 14.5.0-next-ede811d-20240717

Sign up to get free protection for your applications and to get access to all the features.
Files changed (446) hide show
  1. package/3rdparty/walkontable/src/calculator/renderAllColumns.js +1 -1
  2. package/3rdparty/walkontable/src/calculator/renderAllColumns.mjs +1 -1
  3. package/3rdparty/walkontable/src/calculator/renderAllRows.js +1 -1
  4. package/3rdparty/walkontable/src/calculator/renderAllRows.mjs +1 -1
  5. package/3rdparty/walkontable/src/calculator/viewportColumns.js +3 -3
  6. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +3 -3
  7. package/3rdparty/walkontable/src/calculator/viewportRows.js +3 -3
  8. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +3 -3
  9. package/3rdparty/walkontable/src/cell/coords.js +3 -3
  10. package/3rdparty/walkontable/src/cell/coords.mjs +3 -3
  11. package/3rdparty/walkontable/src/cell/range.js +4 -4
  12. package/3rdparty/walkontable/src/cell/range.mjs +3 -3
  13. package/3rdparty/walkontable/src/core/_base.js +2 -2
  14. package/3rdparty/walkontable/src/core/_base.mjs +1 -1
  15. package/3rdparty/walkontable/src/core/clone.js +2 -2
  16. package/3rdparty/walkontable/src/core/clone.mjs +1 -1
  17. package/3rdparty/walkontable/src/core/core.js +17 -1
  18. package/3rdparty/walkontable/src/core/core.mjs +16 -0
  19. package/3rdparty/walkontable/src/event.js +2 -2
  20. package/3rdparty/walkontable/src/event.mjs +2 -2
  21. package/3rdparty/walkontable/src/facade/core.js +4 -1
  22. package/3rdparty/walkontable/src/facade/core.mjs +3 -0
  23. package/3rdparty/walkontable/src/filter/column.js +1 -1
  24. package/3rdparty/walkontable/src/filter/column.mjs +1 -1
  25. package/3rdparty/walkontable/src/filter/row.js +1 -1
  26. package/3rdparty/walkontable/src/filter/row.mjs +1 -1
  27. package/3rdparty/walkontable/src/index.js +1 -1
  28. package/3rdparty/walkontable/src/overlay/_base.js +2 -2
  29. package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
  30. package/3rdparty/walkontable/src/overlay/bottom.js +2 -2
  31. package/3rdparty/walkontable/src/overlay/bottom.mjs +1 -1
  32. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.js +1 -1
  33. package/3rdparty/walkontable/src/overlay/inlineStart.js +1 -1
  34. package/3rdparty/walkontable/src/overlay/top.js +2 -2
  35. package/3rdparty/walkontable/src/overlay/top.mjs +1 -1
  36. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +2 -2
  37. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +1 -1
  38. package/3rdparty/walkontable/src/overlays.js +36 -4
  39. package/3rdparty/walkontable/src/overlays.mjs +36 -4
  40. package/3rdparty/walkontable/src/renderer/_base.js +2 -2
  41. package/3rdparty/walkontable/src/renderer/_base.mjs +1 -1
  42. package/3rdparty/walkontable/src/renderer/cells.js +2 -2
  43. package/3rdparty/walkontable/src/renderer/cells.mjs +1 -1
  44. package/3rdparty/walkontable/src/renderer/colGroup.js +1 -1
  45. package/3rdparty/walkontable/src/renderer/columnHeaders.js +1 -1
  46. package/3rdparty/walkontable/src/renderer/index.js +12 -1
  47. package/3rdparty/walkontable/src/renderer/index.mjs +11 -0
  48. package/3rdparty/walkontable/src/renderer/rowHeaders.js +2 -2
  49. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +1 -1
  50. package/3rdparty/walkontable/src/renderer/rows.js +2 -2
  51. package/3rdparty/walkontable/src/renderer/rows.mjs +1 -1
  52. package/3rdparty/walkontable/src/renderer/table.js +17 -2
  53. package/3rdparty/walkontable/src/renderer/table.mjs +17 -2
  54. package/3rdparty/walkontable/src/scroll.js +3 -3
  55. package/3rdparty/walkontable/src/scroll.mjs +3 -3
  56. package/3rdparty/walkontable/src/selection/index.js +1 -1
  57. package/3rdparty/walkontable/src/selection/manager.js +4 -4
  58. package/3rdparty/walkontable/src/selection/manager.mjs +3 -3
  59. package/3rdparty/walkontable/src/selection/scanner.js +3 -3
  60. package/3rdparty/walkontable/src/selection/scanner.mjs +3 -3
  61. package/3rdparty/walkontable/src/selection/selection.js +1 -1
  62. package/3rdparty/walkontable/src/settings.js +6 -2
  63. package/3rdparty/walkontable/src/settings.mjs +6 -2
  64. package/3rdparty/walkontable/src/table/bottom.js +1 -1
  65. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.js +1 -1
  66. package/3rdparty/walkontable/src/table/inlineStart.js +1 -1
  67. package/3rdparty/walkontable/src/table/master.js +1 -1
  68. package/3rdparty/walkontable/src/table/top.js +1 -1
  69. package/3rdparty/walkontable/src/table/topInlineStartCorner.js +1 -1
  70. package/3rdparty/walkontable/src/table.js +3 -3
  71. package/3rdparty/walkontable/src/table.mjs +2 -2
  72. package/3rdparty/walkontable/src/utils/column.js +1 -1
  73. package/3rdparty/walkontable/src/utils/column.mjs +1 -1
  74. package/3rdparty/walkontable/src/utils/columnStretching.js +3 -3
  75. package/3rdparty/walkontable/src/utils/columnStretching.mjs +3 -3
  76. package/3rdparty/walkontable/src/utils/nodesPool.js +1 -1
  77. package/3rdparty/walkontable/src/utils/nodesPool.mjs +1 -1
  78. package/3rdparty/walkontable/src/utils/orderView/index.js +1 -1
  79. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +1 -1
  80. package/3rdparty/walkontable/src/utils/orderView/view.js +2 -2
  81. package/3rdparty/walkontable/src/utils/orderView/view.mjs +1 -1
  82. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +1 -1
  83. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +1 -1
  84. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +2 -2
  85. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +1 -1
  86. package/3rdparty/walkontable/src/utils/row.js +17 -1
  87. package/3rdparty/walkontable/src/utils/row.mjs +17 -1
  88. package/CHANGELOG.md +27 -1
  89. package/base.js +3 -3
  90. package/base.mjs +2 -2
  91. package/cellTypes/registry.js +1 -1
  92. package/common.d.ts +3 -0
  93. package/core.d.ts +2 -0
  94. package/core.js +36 -31
  95. package/core.mjs +35 -30
  96. package/dataMap/dataMap.js +1 -1
  97. package/dataMap/dataMap.mjs +1 -1
  98. package/dataMap/dataSource.js +1 -1
  99. package/dataMap/dataSource.mjs +1 -1
  100. package/dataMap/index.js +1 -1
  101. package/dataMap/metaManager/index.js +1 -1
  102. package/dataMap/metaManager/lazyFactoryMap.js +1 -1
  103. package/dataMap/metaManager/lazyFactoryMap.mjs +1 -1
  104. package/dataMap/metaManager/metaLayers/cellMeta.js +2 -2
  105. package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -1
  106. package/dataMap/metaManager/metaLayers/columnMeta.js +2 -2
  107. package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -1
  108. package/dataMap/metaManager/metaLayers/globalMeta.js +2 -2
  109. package/dataMap/metaManager/metaLayers/globalMeta.mjs +1 -1
  110. package/dataMap/metaManager/metaLayers/tableMeta.js +1 -1
  111. package/dataMap/metaManager/metaLayers/tableMeta.mjs +1 -1
  112. package/dataMap/metaManager/metaSchema.js +25 -0
  113. package/dataMap/metaManager/metaSchema.mjs +25 -0
  114. package/dataMap/metaManager/mods/dynamicCellMeta.js +2 -2
  115. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
  116. package/dataMap/metaManager/mods/extendMetaProperties.js +3 -3
  117. package/dataMap/metaManager/mods/extendMetaProperties.mjs +3 -3
  118. package/dataMap/replaceData.js +1 -1
  119. package/dist/handsontable.css +134 -88
  120. package/dist/handsontable.full.css +134 -88
  121. package/dist/handsontable.full.js +2191 -1503
  122. package/dist/handsontable.full.min.css +7 -7
  123. package/dist/handsontable.full.min.js +86 -86
  124. package/dist/handsontable.js +2180 -1440
  125. package/dist/handsontable.min.css +6 -6
  126. package/dist/handsontable.min.js +23 -23
  127. package/dist/languages/all.js +3 -3
  128. package/dist/languages/ar-AR.js +3 -3
  129. package/dist/languages/cs-CZ.js +3 -3
  130. package/dist/languages/de-CH.js +3 -3
  131. package/dist/languages/de-DE.js +3 -3
  132. package/dist/languages/en-US.js +3 -3
  133. package/dist/languages/es-MX.js +3 -3
  134. package/dist/languages/fr-FR.js +3 -3
  135. package/dist/languages/hr-HR.js +3 -3
  136. package/dist/languages/it-IT.js +3 -3
  137. package/dist/languages/ja-JP.js +3 -3
  138. package/dist/languages/ko-KR.js +3 -3
  139. package/dist/languages/lv-LV.js +3 -3
  140. package/dist/languages/nb-NO.js +3 -3
  141. package/dist/languages/nl-NL.js +3 -3
  142. package/dist/languages/pl-PL.js +3 -3
  143. package/dist/languages/pt-BR.js +3 -3
  144. package/dist/languages/ru-RU.js +3 -3
  145. package/dist/languages/sr-SP.js +3 -3
  146. package/dist/languages/zh-CN.js +3 -3
  147. package/dist/languages/zh-TW.js +3 -3
  148. package/editorManager.js +4 -4
  149. package/editorManager.mjs +3 -3
  150. package/editors/autocompleteEditor/autocompleteEditor.js +3 -3
  151. package/editors/autocompleteEditor/autocompleteEditor.mjs +3 -3
  152. package/editors/baseEditor/baseEditor.js +2 -2
  153. package/editors/baseEditor/baseEditor.mjs +1 -1
  154. package/editors/dateEditor/dateEditor.js +2 -2
  155. package/editors/dateEditor/dateEditor.mjs +1 -1
  156. package/editors/dropdownEditor/dropdownEditor.js +1 -1
  157. package/editors/registry.js +1 -1
  158. package/editors/textEditor/textEditor.js +2 -2
  159. package/editors/textEditor/textEditor.mjs +1 -1
  160. package/eventManager.js +1 -1
  161. package/eventManager.mjs +1 -1
  162. package/focusManager.js +3 -3
  163. package/focusManager.mjs +3 -3
  164. package/helpers/dom/event.d.ts +1 -0
  165. package/helpers/dom/event.js +11 -0
  166. package/helpers/dom/event.mjs +10 -0
  167. package/helpers/mixed.js +3 -3
  168. package/helpers/mixed.mjs +2 -2
  169. package/helpers/string.js +1 -1
  170. package/i18n/languages/index.js +1 -1
  171. package/i18n/phraseFormatters/index.js +1 -1
  172. package/i18n/registry.js +1 -1
  173. package/index.js +1 -1
  174. package/languages/all.js +3 -3
  175. package/languages/ar-AR.js +3 -3
  176. package/languages/cs-CZ.js +3 -3
  177. package/languages/de-CH.js +3 -3
  178. package/languages/de-DE.js +3 -3
  179. package/languages/en-US.js +3 -3
  180. package/languages/es-MX.js +3 -3
  181. package/languages/fr-FR.js +3 -3
  182. package/languages/hr-HR.js +3 -3
  183. package/languages/index.js +3 -3
  184. package/languages/it-IT.js +3 -3
  185. package/languages/ja-JP.js +3 -3
  186. package/languages/ko-KR.js +3 -3
  187. package/languages/lv-LV.js +3 -3
  188. package/languages/nb-NO.js +3 -3
  189. package/languages/nl-NL.js +3 -3
  190. package/languages/pl-PL.js +3 -3
  191. package/languages/pt-BR.js +3 -3
  192. package/languages/ru-RU.js +3 -3
  193. package/languages/sr-SP.js +3 -3
  194. package/languages/zh-CN.js +3 -3
  195. package/languages/zh-TW.js +3 -3
  196. package/package.json +1 -5
  197. package/pluginHooks.d.ts +3 -1
  198. package/pluginHooks.js +12 -1
  199. package/pluginHooks.mjs +12 -1
  200. package/plugins/autoColumnSize/autoColumnSize.d.ts +1 -1
  201. package/plugins/autoColumnSize/autoColumnSize.js +123 -123
  202. package/plugins/autoColumnSize/autoColumnSize.mjs +122 -122
  203. package/plugins/autoRowSize/autoRowSize.d.ts +2 -1
  204. package/plugins/autoRowSize/autoRowSize.js +162 -100
  205. package/plugins/autoRowSize/autoRowSize.mjs +161 -99
  206. package/plugins/autofill/autofill.js +4 -4
  207. package/plugins/autofill/autofill.mjs +3 -3
  208. package/plugins/base/base.js +5 -5
  209. package/plugins/base/base.mjs +4 -4
  210. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +4 -4
  211. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +3 -3
  212. package/plugins/collapsibleColumns/collapsibleColumns.js +4 -4
  213. package/plugins/collapsibleColumns/collapsibleColumns.mjs +4 -4
  214. package/plugins/columnSorting/columnSorting.js +6 -5
  215. package/plugins/columnSorting/columnSorting.mjs +5 -4
  216. package/plugins/columnSorting/columnStatesManager.js +1 -1
  217. package/plugins/columnSorting/columnStatesManager.mjs +1 -1
  218. package/plugins/columnSorting/sortService/registry.js +1 -1
  219. package/plugins/columnSorting/utils.js +1 -1
  220. package/plugins/columnSummary/columnSummary.d.ts +1 -1
  221. package/plugins/columnSummary/columnSummary.js +4 -4
  222. package/plugins/columnSummary/columnSummary.mjs +3 -3
  223. package/plugins/columnSummary/endpoints.js +1 -1
  224. package/plugins/columnSummary/endpoints.mjs +1 -1
  225. package/plugins/comments/commentEditor.js +74 -39
  226. package/plugins/comments/commentEditor.mjs +73 -39
  227. package/plugins/comments/comments.js +25 -44
  228. package/plugins/comments/comments.mjs +25 -44
  229. package/plugins/comments/displaySwitch.js +2 -2
  230. package/plugins/comments/displaySwitch.mjs +1 -1
  231. package/plugins/comments/editorResizeObserver.js +100 -0
  232. package/plugins/comments/editorResizeObserver.mjs +95 -0
  233. package/plugins/contextMenu/commandExecutor.js +1 -1
  234. package/plugins/contextMenu/commandExecutor.mjs +1 -1
  235. package/plugins/contextMenu/contextMenu.js +4 -4
  236. package/plugins/contextMenu/contextMenu.mjs +3 -3
  237. package/plugins/contextMenu/itemsFactory.js +1 -1
  238. package/plugins/contextMenu/itemsFactory.mjs +1 -1
  239. package/plugins/contextMenu/menu/cursor.js +1 -1
  240. package/plugins/contextMenu/menu/cursor.mjs +1 -1
  241. package/plugins/contextMenu/menu/menu.js +5 -4
  242. package/plugins/contextMenu/menu/menu.mjs +4 -3
  243. package/plugins/contextMenu/menu/positioner.js +2 -2
  244. package/plugins/contextMenu/menu/positioner.mjs +2 -2
  245. package/plugins/copyPaste/copyPaste.js +5 -5
  246. package/plugins/copyPaste/copyPaste.mjs +4 -4
  247. package/plugins/copyPaste/copyableRanges.js +3 -3
  248. package/plugins/copyPaste/copyableRanges.mjs +3 -3
  249. package/plugins/copyPaste/pasteEvent.js +1 -1
  250. package/plugins/customBorders/contextMenuItem/index.js +1 -1
  251. package/plugins/customBorders/customBorders.js +3 -3
  252. package/plugins/customBorders/customBorders.mjs +3 -3
  253. package/plugins/dragToScroll/dragToScroll.js +4 -4
  254. package/plugins/dragToScroll/dragToScroll.mjs +4 -4
  255. package/plugins/dropdownMenu/dropdownMenu.js +5 -5
  256. package/plugins/dropdownMenu/dropdownMenu.mjs +4 -4
  257. package/plugins/exportFile/dataProvider.js +1 -1
  258. package/plugins/exportFile/dataProvider.mjs +1 -1
  259. package/plugins/exportFile/exportFile.js +1 -1
  260. package/plugins/exportFile/typeFactory.js +1 -1
  261. package/plugins/exportFile/types/_base.js +1 -1
  262. package/plugins/exportFile/types/_base.mjs +1 -1
  263. package/plugins/exportFile/types/csv.js +1 -1
  264. package/plugins/filters/component/_base.js +2 -2
  265. package/plugins/filters/component/_base.mjs +1 -1
  266. package/plugins/filters/component/actionBar.js +3 -3
  267. package/plugins/filters/component/actionBar.mjs +3 -3
  268. package/plugins/filters/component/condition.js +3 -3
  269. package/plugins/filters/component/condition.mjs +3 -3
  270. package/plugins/filters/component/operators.js +3 -3
  271. package/plugins/filters/component/operators.mjs +3 -3
  272. package/plugins/filters/component/value.js +3 -3
  273. package/plugins/filters/component/value.mjs +3 -3
  274. package/plugins/filters/condition/date/after.js +1 -1
  275. package/plugins/filters/condition/date/before.js +1 -1
  276. package/plugins/filters/condition/date/today.js +1 -1
  277. package/plugins/filters/condition/date/tomorrow.js +1 -1
  278. package/plugins/filters/condition/date/yesterday.js +1 -1
  279. package/plugins/filters/conditionCollection.js +2 -2
  280. package/plugins/filters/conditionCollection.mjs +1 -1
  281. package/plugins/filters/conditionUpdateObserver.js +4 -4
  282. package/plugins/filters/conditionUpdateObserver.mjs +3 -3
  283. package/plugins/filters/dataFilter.js +1 -1
  284. package/plugins/filters/dataFilter.mjs +1 -1
  285. package/plugins/filters/filters.js +5 -5
  286. package/plugins/filters/filters.mjs +4 -4
  287. package/plugins/filters/ui/_base.js +2 -2
  288. package/plugins/filters/ui/_base.mjs +1 -1
  289. package/plugins/filters/ui/input.js +3 -3
  290. package/plugins/filters/ui/input.mjs +3 -3
  291. package/plugins/filters/ui/link.js +2 -2
  292. package/plugins/filters/ui/link.mjs +2 -2
  293. package/plugins/filters/ui/multipleSelect.js +3 -3
  294. package/plugins/filters/ui/multipleSelect.mjs +3 -3
  295. package/plugins/filters/ui/radioInput.js +2 -2
  296. package/plugins/filters/ui/radioInput.mjs +2 -2
  297. package/plugins/filters/ui/select.js +3 -3
  298. package/plugins/filters/ui/select.mjs +3 -3
  299. package/plugins/formulas/engine/register.js +1 -1
  300. package/plugins/formulas/formulas.js +7 -7
  301. package/plugins/formulas/formulas.mjs +6 -6
  302. package/plugins/formulas/indexSyncer/axisSyncer.js +2 -2
  303. package/plugins/formulas/indexSyncer/axisSyncer.mjs +2 -2
  304. package/plugins/formulas/indexSyncer/index.js +3 -3
  305. package/plugins/formulas/indexSyncer/index.mjs +2 -2
  306. package/plugins/formulas/utils.js +1 -1
  307. package/plugins/hiddenColumns/hiddenColumns.js +4 -4
  308. package/plugins/hiddenColumns/hiddenColumns.mjs +3 -3
  309. package/plugins/hiddenRows/hiddenRows.js +4 -4
  310. package/plugins/hiddenRows/hiddenRows.mjs +3 -3
  311. package/plugins/manualColumnFreeze/manualColumnFreeze.js +4 -4
  312. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +3 -3
  313. package/plugins/manualColumnMove/manualColumnMove.js +4 -4
  314. package/plugins/manualColumnMove/manualColumnMove.mjs +3 -3
  315. package/plugins/manualColumnMove/ui/_base.js +1 -1
  316. package/plugins/manualColumnMove/ui/_base.mjs +1 -1
  317. package/plugins/manualColumnMove/ui/backlight.js +1 -1
  318. package/plugins/manualColumnMove/ui/guideline.js +1 -1
  319. package/plugins/manualColumnResize/manualColumnResize.js +3 -3
  320. package/plugins/manualColumnResize/manualColumnResize.mjs +3 -3
  321. package/plugins/manualRowMove/manualRowMove.js +4 -4
  322. package/plugins/manualRowMove/manualRowMove.mjs +3 -3
  323. package/plugins/manualRowMove/ui/_base.js +1 -1
  324. package/plugins/manualRowMove/ui/_base.mjs +1 -1
  325. package/plugins/manualRowMove/ui/backlight.js +1 -1
  326. package/plugins/manualRowMove/ui/guideline.js +1 -1
  327. package/plugins/manualRowResize/manualRowResize.js +3 -3
  328. package/plugins/manualRowResize/manualRowResize.mjs +3 -3
  329. package/plugins/mergeCells/calculations/autofill.js +2 -2
  330. package/plugins/mergeCells/calculations/autofill.mjs +2 -2
  331. package/plugins/mergeCells/calculations/selection.js +1 -1
  332. package/plugins/mergeCells/calculations/selection.mjs +1 -1
  333. package/plugins/mergeCells/cellCoords.js +81 -24
  334. package/plugins/mergeCells/cellCoords.mjs +81 -24
  335. package/plugins/mergeCells/cellsCollection.js +167 -91
  336. package/plugins/mergeCells/cellsCollection.mjs +166 -90
  337. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +1 -1
  338. package/plugins/mergeCells/focusOrder.js +4 -4
  339. package/plugins/mergeCells/focusOrder.mjs +3 -3
  340. package/plugins/mergeCells/mergeCells.js +171 -122
  341. package/plugins/mergeCells/mergeCells.mjs +171 -122
  342. package/plugins/mergeCells/renderer.js +74 -0
  343. package/plugins/mergeCells/renderer.mjs +70 -0
  344. package/plugins/multiColumnSorting/multiColumnSorting.js +2 -1
  345. package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -1
  346. package/plugins/multiColumnSorting/utils.js +1 -1
  347. package/plugins/multiColumnSorting/utils.mjs +1 -1
  348. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +1 -1
  349. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +1 -1
  350. package/plugins/nestedHeaders/nestedHeaders.d.ts +1 -0
  351. package/plugins/nestedHeaders/nestedHeaders.js +20 -9
  352. package/plugins/nestedHeaders/nestedHeaders.mjs +20 -9
  353. package/plugins/nestedHeaders/stateManager/headersTree.js +3 -3
  354. package/plugins/nestedHeaders/stateManager/headersTree.mjs +2 -2
  355. package/plugins/nestedHeaders/stateManager/index.js +3 -3
  356. package/plugins/nestedHeaders/stateManager/index.mjs +2 -2
  357. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +5 -1
  358. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +5 -1
  359. package/plugins/nestedHeaders/stateManager/sourceSettings.js +2 -2
  360. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +2 -2
  361. package/plugins/nestedHeaders/stateManager/utils.js +6 -2
  362. package/plugins/nestedHeaders/stateManager/utils.mjs +6 -2
  363. package/plugins/nestedHeaders/utils/ghostTable.js +1 -1
  364. package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -1
  365. package/plugins/nestedRows/data/dataManager.js +1 -1
  366. package/plugins/nestedRows/data/dataManager.mjs +1 -1
  367. package/plugins/nestedRows/nestedRows.js +5 -5
  368. package/plugins/nestedRows/nestedRows.mjs +4 -4
  369. package/plugins/nestedRows/ui/_base.js +1 -1
  370. package/plugins/nestedRows/ui/_base.mjs +1 -1
  371. package/plugins/nestedRows/ui/collapsing.js +1 -1
  372. package/plugins/nestedRows/ui/contextMenu.js +4 -4
  373. package/plugins/nestedRows/ui/contextMenu.mjs +3 -3
  374. package/plugins/nestedRows/ui/headers.js +1 -1
  375. package/plugins/nestedRows/utils/rowMoveController.js +1 -1
  376. package/plugins/nestedRows/utils/rowMoveController.mjs +1 -1
  377. package/plugins/persistentState/persistentState.js +2 -2
  378. package/plugins/persistentState/persistentState.mjs +1 -1
  379. package/plugins/persistentState/storage.js +1 -1
  380. package/plugins/persistentState/storage.mjs +1 -1
  381. package/plugins/search/search.js +3 -3
  382. package/plugins/search/search.mjs +3 -3
  383. package/plugins/touchScroll/touchScroll.js +3 -3
  384. package/plugins/touchScroll/touchScroll.mjs +3 -3
  385. package/plugins/trimRows/trimRows.js +3 -3
  386. package/plugins/trimRows/trimRows.mjs +3 -3
  387. package/plugins/undoRedo/undoRedo.js +38 -1
  388. package/plugins/undoRedo/undoRedo.mjs +37 -0
  389. package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -1
  390. package/renderers/checkboxRenderer/checkboxRenderer.js +1 -1
  391. package/renderers/numericRenderer/numericRenderer.js +1 -1
  392. package/renderers/registry.js +1 -1
  393. package/selection/highlight/highlight.js +3 -3
  394. package/selection/highlight/highlight.mjs +3 -3
  395. package/selection/highlight/types/activeHeader.js +1 -1
  396. package/selection/highlight/types/area.js +1 -1
  397. package/selection/highlight/types/areaLayered.js +1 -1
  398. package/selection/highlight/types/column.js +1 -1
  399. package/selection/highlight/types/customSelection.js +1 -1
  400. package/selection/highlight/types/fill.js +1 -1
  401. package/selection/highlight/types/focus.js +1 -1
  402. package/selection/highlight/types/header.js +1 -1
  403. package/selection/highlight/types/row.js +1 -1
  404. package/selection/highlight/visualSelection.js +1 -1
  405. package/selection/highlight/visualSelection.mjs +1 -1
  406. package/selection/index.js +1 -1
  407. package/selection/range.js +1 -1
  408. package/selection/range.mjs +1 -1
  409. package/selection/selection.js +8 -4
  410. package/selection/selection.mjs +7 -3
  411. package/selection/transformation.js +14 -4
  412. package/selection/transformation.mjs +13 -3
  413. package/settings.d.ts +1 -0
  414. package/shortcuts/utils.js +18 -27
  415. package/shortcuts/utils.mjs +18 -27
  416. package/tableView.js +126 -28
  417. package/tableView.mjs +125 -27
  418. package/translations/changesObservable/observable.js +2 -2
  419. package/translations/changesObservable/observable.mjs +2 -2
  420. package/translations/changesObservable/observer.js +3 -3
  421. package/translations/changesObservable/observer.mjs +2 -2
  422. package/translations/indexMapper.js +2 -2
  423. package/translations/indexMapper.mjs +1 -1
  424. package/translations/mapCollections/aggregatedCollection.js +1 -1
  425. package/translations/mapCollections/aggregatedCollection.mjs +1 -1
  426. package/translations/mapCollections/mapCollection.js +2 -2
  427. package/translations/mapCollections/mapCollection.mjs +1 -1
  428. package/translations/maps/indexMap.js +2 -2
  429. package/translations/maps/indexMap.mjs +1 -1
  430. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -1
  431. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -1
  432. package/utils/dataStructures/linkedList.js +1 -1
  433. package/utils/dataStructures/linkedList.mjs +1 -1
  434. package/utils/dataStructures/tree.js +1 -1
  435. package/utils/dataStructures/tree.mjs +1 -1
  436. package/utils/ghostTable.js +1 -1
  437. package/utils/ghostTable.mjs +1 -1
  438. package/utils/interval.js +4 -4
  439. package/utils/interval.mjs +4 -4
  440. package/utils/samplesGenerator.js +1 -1
  441. package/utils/samplesGenerator.mjs +1 -1
  442. package/validators/dateValidator/dateValidator.js +1 -1
  443. package/validators/registry.js +1 -1
  444. package/validators/timeValidator/timeValidator.js +1 -1
  445. package/plugins/mergeCells/utils.js +0 -28
  446. 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-next-1ffa7bc-20240606
29
- * Release date: 11/06/2024 (built at 06/06/2024 08:29:35)
28
+ * Version: 14.5.0-next-ede811d-20240717
29
+ * Release date: 24/07/2024 (built at 17/07/2024 10:30:57)
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-next-1ffa7bc-20240606
29
- * Release date: 11/06/2024 (built at 06/06/2024 08:29:35)
28
+ * Version: 14.5.0-next-ede811d-20240717
29
+ * Release date: 24/07/2024 (built at 17/07/2024 10:30:57)
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 */