handsontable 11.1.0 → 12.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. package/3rdparty/walkontable/src/border.js +120 -98
  2. package/3rdparty/walkontable/src/border.mjs +120 -94
  3. package/3rdparty/walkontable/src/cell/coords.js +59 -17
  4. package/3rdparty/walkontable/src/cell/coords.mjs +55 -17
  5. package/3rdparty/walkontable/src/cell/range.d.ts +10 -2
  6. package/3rdparty/walkontable/src/cell/range.js +278 -99
  7. package/3rdparty/walkontable/src/cell/range.mjs +273 -99
  8. package/3rdparty/walkontable/src/core/_base.js +452 -0
  9. package/3rdparty/walkontable/src/core/_base.mjs +440 -0
  10. package/3rdparty/walkontable/src/core/clone.js +97 -0
  11. package/3rdparty/walkontable/src/core/clone.mjs +80 -0
  12. package/3rdparty/walkontable/src/core/core.js +183 -0
  13. package/3rdparty/walkontable/src/core/core.mjs +160 -0
  14. package/3rdparty/walkontable/src/event.js +99 -66
  15. package/3rdparty/walkontable/src/event.mjs +99 -63
  16. package/3rdparty/walkontable/src/facade/core.js +251 -0
  17. package/3rdparty/walkontable/src/facade/core.mjs +243 -0
  18. package/3rdparty/walkontable/src/index.js +2 -46
  19. package/3rdparty/walkontable/src/index.mjs +3 -13
  20. package/3rdparty/walkontable/src/overlay/_base.js +124 -57
  21. package/3rdparty/walkontable/src/overlay/_base.mjs +124 -57
  22. package/3rdparty/walkontable/src/overlay/bottom.js +96 -80
  23. package/3rdparty/walkontable/src/overlay/bottom.mjs +96 -80
  24. package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.js → bottomInlineStartCorner.js} +45 -62
  25. package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +44 -61
  26. package/3rdparty/walkontable/src/overlay/constants.js +25 -9
  27. package/3rdparty/walkontable/src/overlay/constants.mjs +14 -4
  28. package/3rdparty/walkontable/src/overlay/index.js +10 -19
  29. package/3rdparty/walkontable/src/overlay/index.mjs +4 -5
  30. package/3rdparty/walkontable/src/overlay/{left.js → inlineStart.js} +113 -82
  31. package/3rdparty/walkontable/src/overlay/{left.mjs → inlineStart.mjs} +112 -81
  32. package/3rdparty/walkontable/src/overlay/top.js +93 -68
  33. package/3rdparty/walkontable/src/overlay/top.mjs +93 -68
  34. package/3rdparty/walkontable/src/overlay/{topLeftCorner.js → topInlineStartCorner.js} +56 -57
  35. package/3rdparty/walkontable/src/overlay/{topLeftCorner.mjs → topInlineStartCorner.mjs} +51 -52
  36. package/3rdparty/walkontable/src/overlays.js +225 -156
  37. package/3rdparty/walkontable/src/overlays.mjs +224 -154
  38. package/3rdparty/walkontable/src/renderer/cells.js +4 -3
  39. package/3rdparty/walkontable/src/renderer/cells.mjs +4 -3
  40. package/3rdparty/walkontable/src/renderer/colGroup.js +2 -2
  41. package/3rdparty/walkontable/src/renderer/colGroup.mjs +2 -2
  42. package/3rdparty/walkontable/src/renderer/columnHeaders.js +2 -2
  43. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +2 -2
  44. package/3rdparty/walkontable/src/renderer/rowHeaders.js +2 -2
  45. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +2 -2
  46. package/3rdparty/walkontable/src/renderer/rows.js +2 -2
  47. package/3rdparty/walkontable/src/renderer/rows.mjs +2 -2
  48. package/3rdparty/walkontable/src/scroll.js +125 -104
  49. package/3rdparty/walkontable/src/scroll.mjs +124 -104
  50. package/3rdparty/walkontable/src/selection.js +10 -14
  51. package/3rdparty/walkontable/src/selection.mjs +10 -12
  52. package/3rdparty/walkontable/src/settings.js +235 -126
  53. package/3rdparty/walkontable/src/settings.mjs +235 -125
  54. package/3rdparty/walkontable/src/table/bottom.js +16 -5
  55. package/3rdparty/walkontable/src/table/bottom.mjs +15 -5
  56. package/3rdparty/walkontable/src/table/{bottomLeftCorner.js → bottomInlineStartCorner.js} +27 -15
  57. package/3rdparty/walkontable/src/table/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +26 -15
  58. package/3rdparty/walkontable/src/table/{left.js → inlineStart.js} +23 -15
  59. package/3rdparty/walkontable/src/table/{left.mjs → inlineStart.mjs} +22 -15
  60. package/3rdparty/walkontable/src/table/master.js +22 -12
  61. package/3rdparty/walkontable/src/table/master.mjs +22 -12
  62. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +12 -6
  63. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +12 -6
  64. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +12 -6
  65. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +12 -6
  66. package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.js → stickyColumnsStart.js} +13 -7
  67. package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.mjs → stickyColumnsStart.mjs} +13 -7
  68. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +11 -5
  69. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +11 -5
  70. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -3
  71. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -3
  72. package/3rdparty/walkontable/src/table/top.js +16 -5
  73. package/3rdparty/walkontable/src/table/top.mjs +15 -5
  74. package/3rdparty/walkontable/src/table/{topLeftCorner.js → topInlineStartCorner.js} +27 -15
  75. package/3rdparty/walkontable/src/table/{topLeftCorner.mjs → topInlineStartCorner.mjs} +26 -15
  76. package/3rdparty/walkontable/src/table.js +235 -140
  77. package/3rdparty/walkontable/src/table.mjs +231 -134
  78. package/3rdparty/walkontable/src/types.js +103 -0
  79. package/3rdparty/walkontable/src/types.mjs +102 -0
  80. package/3rdparty/walkontable/src/utils/column.js +22 -33
  81. package/3rdparty/walkontable/src/utils/column.mjs +22 -30
  82. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +2 -2
  83. package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +2 -2
  84. package/3rdparty/walkontable/src/utils/row.js +9 -4
  85. package/3rdparty/walkontable/src/utils/row.mjs +9 -4
  86. package/3rdparty/walkontable/src/viewport.js +89 -100
  87. package/3rdparty/walkontable/src/viewport.mjs +89 -97
  88. package/CHANGELOG.md +92 -0
  89. package/LICENSE.txt +1 -1
  90. package/README.md +0 -1
  91. package/base.js +2 -2
  92. package/base.mjs +2 -2
  93. package/cellTypes/timeType/timeType.d.ts +6 -6
  94. package/cellTypes/timeType/timeType.js +4 -5
  95. package/cellTypes/timeType/timeType.mjs +4 -5
  96. package/core.d.ts +6 -1
  97. package/core.js +508 -80
  98. package/core.mjs +517 -92
  99. package/dataMap/index.js +4 -0
  100. package/dataMap/index.mjs +2 -1
  101. package/dataMap/metaManager/index.js +2 -2
  102. package/dataMap/metaManager/index.mjs +2 -2
  103. package/dataMap/metaManager/metaLayers/globalMeta.js +4 -0
  104. package/dataMap/metaManager/metaLayers/globalMeta.mjs +4 -0
  105. package/dataMap/metaManager/metaLayers/tableMeta.js +2 -2
  106. package/dataMap/metaManager/metaLayers/tableMeta.mjs +2 -2
  107. package/dataMap/metaManager/metaSchema.js +282 -187
  108. package/dataMap/metaManager/metaSchema.mjs +282 -187
  109. package/dataMap/metaManager/mods/extendMetaProperties.js +126 -0
  110. package/dataMap/metaManager/mods/extendMetaProperties.mjs +113 -0
  111. package/dataMap/replaceData.js +3 -17
  112. package/dataMap/replaceData.mjs +3 -17
  113. package/dist/handsontable.css +268 -92
  114. package/dist/handsontable.full.css +269 -103
  115. package/dist/handsontable.full.js +41990 -35658
  116. package/dist/handsontable.full.min.css +9 -9
  117. package/dist/handsontable.full.min.js +144 -144
  118. package/dist/handsontable.js +29561 -25597
  119. package/dist/handsontable.min.css +8 -8
  120. package/dist/handsontable.min.js +4 -4
  121. package/dist/languages/all.js +131 -34
  122. package/dist/languages/all.min.js +1 -1
  123. package/dist/languages/ar-AR.js +167 -0
  124. package/dist/languages/ar-AR.min.js +1 -0
  125. package/dist/languages/cs-CZ.js +167 -0
  126. package/dist/languages/cs-CZ.min.js +1 -0
  127. package/dist/languages/de-CH.js +31 -29
  128. package/dist/languages/de-CH.min.js +1 -1
  129. package/dist/languages/de-DE.js +4 -2
  130. package/dist/languages/de-DE.min.js +1 -1
  131. package/dist/languages/en-US.js +4 -2
  132. package/dist/languages/en-US.min.js +1 -1
  133. package/dist/languages/es-MX.js +4 -2
  134. package/dist/languages/es-MX.min.js +1 -1
  135. package/dist/languages/fr-FR.js +4 -2
  136. package/dist/languages/fr-FR.min.js +1 -1
  137. package/dist/languages/it-IT.js +4 -2
  138. package/dist/languages/it-IT.min.js +1 -1
  139. package/dist/languages/ja-JP.js +36 -38
  140. package/dist/languages/ja-JP.min.js +1 -1
  141. package/dist/languages/ko-KR.js +36 -39
  142. package/dist/languages/ko-KR.min.js +1 -1
  143. package/dist/languages/lv-LV.js +2 -2
  144. package/dist/languages/lv-LV.min.js +1 -1
  145. package/dist/languages/nb-NO.js +2 -2
  146. package/dist/languages/nb-NO.min.js +1 -1
  147. package/dist/languages/nl-NL.js +2 -2
  148. package/dist/languages/nl-NL.min.js +1 -1
  149. package/dist/languages/pl-PL.js +2 -2
  150. package/dist/languages/pl-PL.min.js +1 -1
  151. package/dist/languages/pt-BR.js +2 -2
  152. package/dist/languages/pt-BR.min.js +1 -1
  153. package/dist/languages/ru-RU.js +2 -2
  154. package/dist/languages/ru-RU.min.js +1 -1
  155. package/dist/languages/sr-SP.js +171 -0
  156. package/dist/languages/sr-SP.min.js +1 -0
  157. package/dist/languages/zh-CN.js +24 -24
  158. package/dist/languages/zh-CN.min.js +1 -1
  159. package/dist/languages/zh-TW.js +24 -24
  160. package/dist/languages/zh-TW.min.js +1 -1
  161. package/editorManager.js +120 -267
  162. package/editorManager.mjs +128 -278
  163. package/editors/autocompleteEditor/autocompleteEditor.js +22 -25
  164. package/editors/autocompleteEditor/autocompleteEditor.mjs +22 -25
  165. package/editors/baseEditor/baseEditor.js +205 -34
  166. package/editors/baseEditor/baseEditor.mjs +200 -32
  167. package/editors/checkboxEditor/checkboxEditor.js +2 -2
  168. package/editors/checkboxEditor/checkboxEditor.mjs +2 -2
  169. package/editors/dateEditor/dateEditor.js +21 -8
  170. package/editors/dateEditor/dateEditor.mjs +22 -9
  171. package/editors/dropdownEditor/dropdownEditor.js +3 -3
  172. package/editors/dropdownEditor/dropdownEditor.mjs +3 -3
  173. package/editors/handsontableEditor/handsontableEditor.js +106 -55
  174. package/editors/handsontableEditor/handsontableEditor.mjs +106 -55
  175. package/editors/index.d.ts +3 -0
  176. package/editors/index.js +6 -0
  177. package/editors/index.mjs +3 -1
  178. package/editors/numericEditor/numericEditor.js +2 -2
  179. package/editors/numericEditor/numericEditor.mjs +2 -2
  180. package/editors/passwordEditor/passwordEditor.js +3 -3
  181. package/editors/passwordEditor/passwordEditor.mjs +3 -3
  182. package/editors/selectEditor/selectEditor.js +65 -110
  183. package/editors/selectEditor/selectEditor.mjs +66 -109
  184. package/editors/textEditor/caretPositioner.js +49 -0
  185. package/editors/textEditor/caretPositioner.mjs +42 -0
  186. package/editors/textEditor/textEditor.js +205 -181
  187. package/editors/textEditor/textEditor.mjs +199 -179
  188. package/editors/timeEditor/index.d.ts +1 -0
  189. package/editors/timeEditor/index.js +9 -0
  190. package/editors/timeEditor/index.mjs +1 -0
  191. package/editors/timeEditor/timeEditor.d.ts +7 -0
  192. package/editors/timeEditor/timeEditor.js +105 -0
  193. package/editors/timeEditor/timeEditor.mjs +84 -0
  194. package/eventManager.js +4 -2
  195. package/eventManager.mjs +4 -2
  196. package/helpers/mixed.js +2 -2
  197. package/helpers/mixed.mjs +2 -2
  198. package/i18n/languages/ar-AR.js +41 -0
  199. package/i18n/languages/ar-AR.mjs +17 -0
  200. package/i18n/languages/cs-CZ.js +40 -0
  201. package/i18n/languages/cs-CZ.mjs +16 -0
  202. package/i18n/languages/index.js +12 -0
  203. package/i18n/languages/index.mjs +4 -1
  204. package/i18n/languages/sr-SP.js +40 -0
  205. package/i18n/languages/sr-SP.mjs +16 -0
  206. package/index.d.ts +4 -0
  207. package/languages/all.js +131 -34
  208. package/languages/ar-AR.js +167 -0
  209. package/languages/ar-AR.mjs +19 -0
  210. package/languages/cs-CZ.js +167 -0
  211. package/languages/cs-CZ.mjs +18 -0
  212. package/languages/de-CH.js +31 -29
  213. package/languages/de-DE.js +4 -2
  214. package/languages/en-US.js +4 -2
  215. package/languages/es-MX.js +4 -2
  216. package/languages/fr-FR.js +4 -2
  217. package/languages/index.js +131 -34
  218. package/languages/index.mjs +4 -1
  219. package/languages/it-IT.js +4 -2
  220. package/languages/ja-JP.js +36 -38
  221. package/languages/ko-KR.js +36 -39
  222. package/languages/lv-LV.js +2 -2
  223. package/languages/nb-NO.js +2 -2
  224. package/languages/nl-NL.js +2 -2
  225. package/languages/pl-PL.js +2 -2
  226. package/languages/pt-BR.js +2 -2
  227. package/languages/ru-RU.js +2 -2
  228. package/languages/sr-SP.js +171 -0
  229. package/languages/sr-SP.mjs +18 -0
  230. package/languages/zh-CN.js +24 -24
  231. package/languages/zh-TW.js +24 -24
  232. package/package.json +44 -4
  233. package/pluginHooks.js +49 -13
  234. package/pluginHooks.mjs +49 -13
  235. package/plugins/autoColumnSize/autoColumnSize.js +15 -10
  236. package/plugins/autoColumnSize/autoColumnSize.mjs +15 -10
  237. package/plugins/autoRowSize/autoRowSize.js +14 -9
  238. package/plugins/autoRowSize/autoRowSize.mjs +14 -9
  239. package/plugins/autofill/autofill.js +49 -33
  240. package/plugins/autofill/autofill.mjs +49 -32
  241. package/plugins/autofill/utils.js +10 -11
  242. package/plugins/autofill/utils.mjs +10 -10
  243. package/plugins/base/base.d.ts +8 -2
  244. package/plugins/base/base.js +67 -4
  245. package/plugins/base/base.mjs +66 -4
  246. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +3 -3
  247. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +3 -3
  248. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +3 -3
  249. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +3 -3
  250. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +3 -3
  251. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +3 -3
  252. package/plugins/collapsibleColumns/collapsibleColumns.js +27 -9
  253. package/plugins/collapsibleColumns/collapsibleColumns.mjs +27 -9
  254. package/plugins/columnSorting/columnSorting.js +5 -7
  255. package/plugins/columnSorting/columnSorting.mjs +5 -6
  256. package/plugins/columnSummary/columnSummary.js +3 -3
  257. package/plugins/columnSummary/columnSummary.mjs +3 -3
  258. package/plugins/comments/commentEditor.js +18 -2
  259. package/plugins/comments/commentEditor.mjs +19 -3
  260. package/plugins/comments/comments.js +57 -46
  261. package/plugins/comments/comments.mjs +58 -46
  262. package/plugins/contextMenu/contextMenu.js +10 -6
  263. package/plugins/contextMenu/contextMenu.mjs +10 -6
  264. package/plugins/contextMenu/menu.js +222 -110
  265. package/plugins/contextMenu/menu.mjs +219 -111
  266. package/plugins/contextMenu/predefinedItems/columnLeft.js +12 -4
  267. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +11 -4
  268. package/plugins/contextMenu/predefinedItems/columnRight.js +9 -9
  269. package/plugins/contextMenu/predefinedItems/columnRight.mjs +9 -9
  270. package/plugins/contextMenu/utils.js +2 -2
  271. package/plugins/contextMenu/utils.mjs +2 -2
  272. package/plugins/copyPaste/copyPaste.js +31 -21
  273. package/plugins/copyPaste/copyPaste.mjs +30 -21
  274. package/plugins/customBorders/contextMenuItem/left.js +4 -3
  275. package/plugins/customBorders/contextMenuItem/left.mjs +4 -3
  276. package/plugins/customBorders/contextMenuItem/right.js +4 -3
  277. package/plugins/customBorders/contextMenuItem/right.mjs +4 -3
  278. package/plugins/customBorders/customBorders.js +144 -87
  279. package/plugins/customBorders/customBorders.mjs +143 -85
  280. package/plugins/customBorders/utils.js +131 -27
  281. package/plugins/customBorders/utils.mjs +115 -27
  282. package/plugins/dragToScroll/dragToScroll.js +10 -5
  283. package/plugins/dragToScroll/dragToScroll.mjs +10 -5
  284. package/plugins/dropdownMenu/dropdownMenu.js +9 -7
  285. package/plugins/dropdownMenu/dropdownMenu.mjs +9 -7
  286. package/plugins/exportFile/exportFile.js +2 -2
  287. package/plugins/exportFile/exportFile.mjs +2 -2
  288. package/plugins/exportFile/types/csv.js +2 -2
  289. package/plugins/exportFile/types/csv.mjs +2 -2
  290. package/plugins/filters/component/actionBar.js +2 -2
  291. package/plugins/filters/component/actionBar.mjs +2 -2
  292. package/plugins/filters/component/condition.js +3 -3
  293. package/plugins/filters/component/condition.mjs +3 -3
  294. package/plugins/filters/component/operators.js +2 -2
  295. package/plugins/filters/component/operators.mjs +2 -2
  296. package/plugins/filters/component/value.js +3 -3
  297. package/plugins/filters/component/value.mjs +3 -3
  298. package/plugins/filters/filters.js +11 -8
  299. package/plugins/filters/filters.mjs +11 -8
  300. package/plugins/filters/ui/input.js +3 -3
  301. package/plugins/filters/ui/input.mjs +3 -3
  302. package/plugins/filters/ui/link.js +3 -3
  303. package/plugins/filters/ui/link.mjs +3 -3
  304. package/plugins/filters/ui/multipleSelect.js +18 -31
  305. package/plugins/filters/ui/multipleSelect.mjs +18 -31
  306. package/plugins/filters/ui/radioInput.js +3 -3
  307. package/plugins/filters/ui/radioInput.mjs +3 -3
  308. package/plugins/filters/ui/select.js +4 -4
  309. package/plugins/filters/ui/select.mjs +4 -4
  310. package/plugins/formulas/formulas.js +14 -9
  311. package/plugins/formulas/formulas.mjs +14 -9
  312. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +2 -4
  313. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +2 -4
  314. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +5 -5
  315. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +5 -5
  316. package/plugins/hiddenColumns/hiddenColumns.js +9 -4
  317. package/plugins/hiddenColumns/hiddenColumns.mjs +9 -4
  318. package/plugins/hiddenRows/contextMenuItem/hideRow.js +2 -4
  319. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +2 -4
  320. package/plugins/hiddenRows/contextMenuItem/showRow.js +5 -5
  321. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +5 -5
  322. package/plugins/hiddenRows/hiddenRows.js +9 -4
  323. package/plugins/hiddenRows/hiddenRows.mjs +9 -4
  324. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
  325. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
  326. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
  327. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
  328. package/plugins/manualColumnFreeze/manualColumnFreeze.js +54 -15
  329. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +49 -15
  330. package/plugins/manualColumnMove/manualColumnMove.js +70 -70
  331. package/plugins/manualColumnMove/manualColumnMove.mjs +71 -71
  332. package/plugins/manualColumnMove/ui/_base.js +25 -12
  333. package/plugins/manualColumnMove/ui/_base.mjs +24 -12
  334. package/plugins/manualColumnMove/ui/backlight.js +3 -3
  335. package/plugins/manualColumnMove/ui/backlight.mjs +3 -3
  336. package/plugins/manualColumnMove/ui/guideline.js +3 -3
  337. package/plugins/manualColumnMove/ui/guideline.mjs +3 -3
  338. package/plugins/manualColumnResize/manualColumnResize.js +37 -21
  339. package/plugins/manualColumnResize/manualColumnResize.mjs +37 -21
  340. package/plugins/manualRowMove/manualRowMove.js +26 -34
  341. package/plugins/manualRowMove/manualRowMove.mjs +26 -34
  342. package/plugins/manualRowMove/ui/backlight.js +3 -3
  343. package/plugins/manualRowMove/ui/backlight.mjs +3 -3
  344. package/plugins/manualRowMove/ui/guideline.js +3 -3
  345. package/plugins/manualRowMove/ui/guideline.mjs +3 -3
  346. package/plugins/manualRowResize/manualRowResize.js +34 -19
  347. package/plugins/manualRowResize/manualRowResize.mjs +34 -19
  348. package/plugins/mergeCells/calculations/autofill.js +6 -5
  349. package/plugins/mergeCells/calculations/autofill.mjs +6 -4
  350. package/plugins/mergeCells/calculations/selection.js +9 -4
  351. package/plugins/mergeCells/calculations/selection.mjs +9 -4
  352. package/plugins/mergeCells/cellCoords.js +16 -4
  353. package/plugins/mergeCells/cellCoords.mjs +16 -3
  354. package/plugins/mergeCells/cellsCollection.js +30 -23
  355. package/plugins/mergeCells/cellsCollection.mjs +30 -22
  356. package/plugins/mergeCells/mergeCells.js +94 -61
  357. package/plugins/mergeCells/mergeCells.mjs +94 -59
  358. package/plugins/multiColumnSorting/multiColumnSorting.js +4 -6
  359. package/plugins/multiColumnSorting/multiColumnSorting.mjs +4 -5
  360. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +51 -57
  361. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +52 -57
  362. package/plugins/nestedHeaders/nestedHeaders.js +31 -20
  363. package/plugins/nestedHeaders/nestedHeaders.mjs +31 -20
  364. package/plugins/nestedHeaders/stateManager/utils.js +3 -4
  365. package/plugins/nestedHeaders/stateManager/utils.mjs +3 -4
  366. package/plugins/nestedHeaders/utils/ghostTable.js +114 -75
  367. package/plugins/nestedHeaders/utils/ghostTable.mjs +114 -74
  368. package/plugins/nestedRows/nestedRows.js +9 -4
  369. package/plugins/nestedRows/nestedRows.mjs +9 -4
  370. package/plugins/nestedRows/ui/collapsing.js +2 -2
  371. package/plugins/nestedRows/ui/collapsing.mjs +2 -2
  372. package/plugins/nestedRows/ui/contextMenu.js +2 -2
  373. package/plugins/nestedRows/ui/contextMenu.mjs +2 -2
  374. package/plugins/nestedRows/ui/headers.js +2 -2
  375. package/plugins/nestedRows/ui/headers.mjs +2 -2
  376. package/plugins/nestedRows/utils/rowMoveController.js +2 -4
  377. package/plugins/nestedRows/utils/rowMoveController.mjs +2 -3
  378. package/plugins/persistentState/persistentState.js +9 -4
  379. package/plugins/persistentState/persistentState.mjs +9 -4
  380. package/plugins/search/search.js +9 -4
  381. package/plugins/search/search.mjs +9 -4
  382. package/plugins/touchScroll/touchScroll.js +27 -21
  383. package/plugins/touchScroll/touchScroll.mjs +27 -21
  384. package/plugins/trimRows/trimRows.js +9 -4
  385. package/plugins/trimRows/trimRows.mjs +9 -4
  386. package/plugins/undoRedo/undoRedo.js +53 -47
  387. package/plugins/undoRedo/undoRedo.mjs +53 -46
  388. package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -3
  389. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +1 -2
  390. package/renderers/checkboxRenderer/checkboxRenderer.js +48 -43
  391. package/renderers/checkboxRenderer/checkboxRenderer.mjs +48 -41
  392. package/renderers/index.d.ts +4 -1
  393. package/renderers/index.js +6 -0
  394. package/renderers/index.mjs +3 -1
  395. package/renderers/numericRenderer/numericRenderer.js +1 -0
  396. package/renderers/numericRenderer/numericRenderer.mjs +1 -0
  397. package/renderers/timeRenderer/index.d.ts +1 -0
  398. package/renderers/timeRenderer/index.js +9 -0
  399. package/renderers/timeRenderer/index.mjs +1 -0
  400. package/renderers/timeRenderer/timeRenderer.d.ts +5 -0
  401. package/renderers/timeRenderer/timeRenderer.js +31 -0
  402. package/renderers/timeRenderer/timeRenderer.mjs +20 -0
  403. package/selection/highlight/visualSelection.js +94 -220
  404. package/selection/highlight/visualSelection.mjs +91 -213
  405. package/selection/mouseEventHandler.js +15 -10
  406. package/selection/mouseEventHandler.mjs +15 -9
  407. package/selection/range.js +4 -5
  408. package/selection/range.mjs +4 -5
  409. package/selection/selection.js +35 -22
  410. package/selection/selection.mjs +35 -20
  411. package/selection/transformation.js +4 -6
  412. package/selection/transformation.mjs +4 -5
  413. package/settings.d.ts +3 -1
  414. package/shortcuts/context.d.ts +20 -0
  415. package/shortcuts/context.js +296 -0
  416. package/shortcuts/context.mjs +268 -0
  417. package/shortcuts/index.d.ts +1 -0
  418. package/shortcuts/index.js +8 -0
  419. package/shortcuts/index.mjs +1 -0
  420. package/shortcuts/keyObserver.js +67 -0
  421. package/shortcuts/keyObserver.mjs +58 -0
  422. package/shortcuts/manager.d.ts +10 -0
  423. package/shortcuts/manager.js +185 -0
  424. package/shortcuts/manager.mjs +176 -0
  425. package/shortcuts/recorder.js +192 -0
  426. package/shortcuts/recorder.mjs +180 -0
  427. package/shortcuts/utils.js +77 -0
  428. package/shortcuts/utils.mjs +54 -0
  429. package/tableView.js +164 -84
  430. package/tableView.mjs +164 -74
  431. package/translations/changesObservable/observer.js +0 -1
  432. package/translations/changesObservable/observer.mjs +0 -1
  433. package/translations/indexMapper.d.ts +3 -1
  434. package/translations/indexMapper.js +89 -11
  435. package/translations/indexMapper.mjs +91 -20
  436. package/translations/mapCollections/aggregatedCollection.js +2 -2
  437. package/translations/mapCollections/aggregatedCollection.mjs +2 -2
  438. package/translations/maps/hidingMap.js +4 -2
  439. package/translations/maps/hidingMap.mjs +4 -2
  440. package/translations/maps/indexMap.js +2 -0
  441. package/translations/maps/indexMap.mjs +2 -0
  442. package/translations/maps/indexesSequence.js +5 -3
  443. package/translations/maps/indexesSequence.mjs +5 -3
  444. package/translations/maps/linkedPhysicalIndexToValueMap.js +5 -3
  445. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +5 -3
  446. package/translations/maps/physicalIndexToValueMap.js +5 -3
  447. package/translations/maps/physicalIndexToValueMap.mjs +5 -3
  448. package/translations/maps/trimmingMap.js +4 -2
  449. package/translations/maps/trimmingMap.mjs +4 -2
  450. package/utils/dataStructures/uniqueMap.js +14 -1
  451. package/utils/dataStructures/uniqueMap.mjs +14 -1
  452. package/utils/dataStructures/uniqueSet.js +9 -0
  453. package/utils/dataStructures/uniqueSet.mjs +9 -0
  454. package/utils/ghostTable.js +1 -1
  455. package/utils/ghostTable.mjs +1 -1
  456. package/3rdparty/walkontable/src/core.js +0 -309
  457. package/3rdparty/walkontable/src/core.mjs +0 -293
  458. package/3rdparty/walkontable/src/overlay/registerer.js +0 -70
  459. package/3rdparty/walkontable/src/overlay/registerer.mjs +0 -57
  460. package/utils/keyStateObserver.js +0 -121
  461. package/utils/keyStateObserver.mjs +0 -103
@@ -27,19 +27,13 @@ exports.default = void 0;
27
27
 
28
28
  require("core-js/modules/es.array.join.js");
29
29
 
30
- var _element = require("./../../../helpers/dom/element");
30
+ var _element = require("../../../helpers/dom/element");
31
31
 
32
- var _event = require("./../../../helpers/dom/event");
32
+ var _event = require("../../../helpers/dom/event");
33
33
 
34
- var _object = require("./../../../helpers/object");
34
+ var _object = require("../../../helpers/object");
35
35
 
36
- var _browser = require("./../../../helpers/browser");
37
-
38
- var _eventManager = _interopRequireDefault(require("./../../../eventManager"));
39
-
40
- var _coords = _interopRequireDefault(require("./cell/coords"));
41
-
42
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
36
+ var _browser = require("../../../helpers/browser");
43
37
 
44
38
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
45
39
 
@@ -63,8 +57,12 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
63
57
  *
64
58
  */
65
59
  var Border = /*#__PURE__*/function () {
60
+ // TODO As this is an internal class, should be designed for using {Walkontable}. It uses the facade,
61
+ // TODO Con. Because the class is created on place where the instance reference comes from external origin.
62
+ // TODO Imho, the discrimination for handling both, facade and non-facade should be handled.
63
+
66
64
  /**
67
- * @param {Walkontable} wotInstance The Walkontable instance.
65
+ * @param {WalkontableFacade} wotInstance The Walkontable instance.
68
66
  * @param {object} settings The border settings.
69
67
  */
70
68
  function Border(wotInstance, settings) {
@@ -74,20 +72,20 @@ var Border = /*#__PURE__*/function () {
74
72
  return;
75
73
  }
76
74
 
77
- this.eventManager = new _eventManager.default(wotInstance);
75
+ this.eventManager = wotInstance.eventManager;
78
76
  this.instance = wotInstance;
79
77
  this.wot = wotInstance;
80
78
  this.settings = settings;
81
79
  this.mouseDown = false;
82
80
  this.main = null;
83
81
  this.top = null;
84
- this.left = null;
85
82
  this.bottom = null;
86
- this.right = null;
83
+ this.start = null;
84
+ this.end = null;
87
85
  this.topStyle = null;
88
- this.leftStyle = null;
89
86
  this.bottomStyle = null;
90
- this.rightStyle = null;
87
+ this.startStyle = null;
88
+ this.endStyle = null;
91
89
  this.cornerDefaultStyle = {
92
90
  width: '6px',
93
91
  height: '6px',
@@ -226,7 +224,7 @@ var Border = /*#__PURE__*/function () {
226
224
  value: function createBorders(settings) {
227
225
  var rootDocument = this.wot.rootDocument;
228
226
  this.main = rootDocument.createElement('div');
229
- var borderDivs = ['top', 'left', 'bottom', 'right', 'corner'];
227
+ var borderDivs = ['top', 'start', 'bottom', 'end', 'corner'];
230
228
  var style = this.main.style;
231
229
  style.position = 'absolute';
232
230
  style.top = 0;
@@ -249,13 +247,13 @@ var Border = /*#__PURE__*/function () {
249
247
  }
250
248
 
251
249
  this.top = this.main.childNodes[0];
252
- this.left = this.main.childNodes[1];
250
+ this.start = this.main.childNodes[1];
253
251
  this.bottom = this.main.childNodes[2];
254
- this.right = this.main.childNodes[3];
252
+ this.end = this.main.childNodes[3];
255
253
  this.topStyle = this.top.style;
256
- this.leftStyle = this.left.style;
254
+ this.startStyle = this.start.style;
257
255
  this.bottomStyle = this.bottom.style;
258
- this.rightStyle = this.right.style;
256
+ this.endStyle = this.end.style;
259
257
  this.corner = this.main.childNodes[4];
260
258
  this.corner.className += ' corner';
261
259
  this.cornerStyle = this.corner.style;
@@ -291,22 +289,22 @@ var Border = /*#__PURE__*/function () {
291
289
 
292
290
  var rootDocument = this.wot.rootDocument;
293
291
  this.selectionHandles = {
294
- topLeft: rootDocument.createElement('DIV'),
295
- topLeftHitArea: rootDocument.createElement('DIV'),
296
- bottomRight: rootDocument.createElement('DIV'),
297
- bottomRightHitArea: rootDocument.createElement('DIV')
292
+ top: rootDocument.createElement('DIV'),
293
+ topHitArea: rootDocument.createElement('DIV'),
294
+ bottom: rootDocument.createElement('DIV'),
295
+ bottomHitArea: rootDocument.createElement('DIV')
298
296
  };
299
297
  var width = 10;
300
298
  var hitAreaWidth = 40;
301
- this.selectionHandles.topLeft.className = 'topLeftSelectionHandle';
302
- this.selectionHandles.topLeftHitArea.className = 'topLeftSelectionHandle-HitArea';
303
- this.selectionHandles.bottomRight.className = 'bottomRightSelectionHandle';
304
- this.selectionHandles.bottomRightHitArea.className = 'bottomRightSelectionHandle-HitArea';
299
+ this.selectionHandles.top.className = 'topSelectionHandle topLeftSelectionHandle';
300
+ this.selectionHandles.topHitArea.className = 'topSelectionHandle-HitArea topLeftSelectionHandle-HitArea';
301
+ this.selectionHandles.bottom.className = 'bottomSelectionHandle bottomRightSelectionHandle';
302
+ this.selectionHandles.bottomHitArea.className = 'bottomSelectionHandle-HitArea bottomRightSelectionHandle-HitArea';
305
303
  this.selectionHandles.styles = {
306
- topLeft: this.selectionHandles.topLeft.style,
307
- topLeftHitArea: this.selectionHandles.topLeftHitArea.style,
308
- bottomRight: this.selectionHandles.bottomRight.style,
309
- bottomRightHitArea: this.selectionHandles.bottomRightHitArea.style
304
+ top: this.selectionHandles.top.style,
305
+ topHitArea: this.selectionHandles.topHitArea.style,
306
+ bottom: this.selectionHandles.bottom.style,
307
+ bottomHitArea: this.selectionHandles.bottomHitArea.style
310
308
  };
311
309
  var hitAreaStyle = {
312
310
  position: 'absolute',
@@ -315,8 +313,8 @@ var Border = /*#__PURE__*/function () {
315
313
  'border-radius': "".concat(parseInt(hitAreaWidth / 1.5, 10), "px")
316
314
  };
317
315
  (0, _object.objectEach)(hitAreaStyle, function (value, key) {
318
- _this3.selectionHandles.styles.bottomRightHitArea[key] = value;
319
- _this3.selectionHandles.styles.topLeftHitArea[key] = value;
316
+ _this3.selectionHandles.styles.bottomHitArea[key] = value;
317
+ _this3.selectionHandles.styles.topHitArea[key] = value;
320
318
  });
321
319
  var handleStyle = {
322
320
  position: 'absolute',
@@ -327,13 +325,13 @@ var Border = /*#__PURE__*/function () {
327
325
  border: '1px solid #4285c8'
328
326
  };
329
327
  (0, _object.objectEach)(handleStyle, function (value, key) {
330
- _this3.selectionHandles.styles.bottomRight[key] = value;
331
- _this3.selectionHandles.styles.topLeft[key] = value;
328
+ _this3.selectionHandles.styles.bottom[key] = value;
329
+ _this3.selectionHandles.styles.top[key] = value;
332
330
  });
333
- this.main.appendChild(this.selectionHandles.topLeft);
334
- this.main.appendChild(this.selectionHandles.bottomRight);
335
- this.main.appendChild(this.selectionHandles.topLeftHitArea);
336
- this.main.appendChild(this.selectionHandles.bottomRightHitArea);
331
+ this.main.appendChild(this.selectionHandles.top);
332
+ this.main.appendChild(this.selectionHandles.bottom);
333
+ this.main.appendChild(this.selectionHandles.topHitArea);
334
+ this.main.appendChild(this.selectionHandles.bottomHitArea);
337
335
  }
338
336
  /**
339
337
  * @param {number} row The visual row index.
@@ -366,41 +364,43 @@ var Border = /*#__PURE__*/function () {
366
364
  }, {
367
365
  key: "updateMultipleSelectionHandlesPosition",
368
366
  value: function updateMultipleSelectionHandlesPosition(row, col, top, left, width, height) {
369
- var handleWidth = parseInt(this.selectionHandles.styles.topLeft.width, 10);
370
- var hitAreaWidth = parseInt(this.selectionHandles.styles.topLeftHitArea.width, 10);
371
- this.selectionHandles.styles.topLeft.top = "".concat(parseInt(top - handleWidth, 10), "px");
372
- this.selectionHandles.styles.topLeft.left = "".concat(parseInt(left - handleWidth, 10), "px");
373
- this.selectionHandles.styles.topLeftHitArea.top = "".concat(parseInt(top - hitAreaWidth / 4 * 3, 10), "px");
374
- this.selectionHandles.styles.topLeftHitArea.left = "".concat(parseInt(left - hitAreaWidth / 4 * 3, 10), "px");
375
- this.selectionHandles.styles.bottomRight.top = "".concat(parseInt(top + height, 10), "px");
376
- this.selectionHandles.styles.bottomRight.left = "".concat(parseInt(left + width, 10), "px");
377
- this.selectionHandles.styles.bottomRightHitArea.top = "".concat(parseInt(top + height - hitAreaWidth / 4, 10), "px");
378
- this.selectionHandles.styles.bottomRightHitArea.left = "".concat(parseInt(left + width - hitAreaWidth / 4, 10), "px");
367
+ var isRtl = this.wot.wtSettings.getSetting('rtlMode');
368
+ var inlinePosProperty = isRtl ? 'right' : 'left';
369
+ var handleWidth = parseInt(this.selectionHandles.styles.top.width, 10);
370
+ var hitAreaWidth = parseInt(this.selectionHandles.styles.topHitArea.width, 10);
371
+ this.selectionHandles.styles.top.top = "".concat(parseInt(top - handleWidth - 1, 10), "px");
372
+ this.selectionHandles.styles.top[inlinePosProperty] = "".concat(parseInt(left - handleWidth - 1, 10), "px");
373
+ this.selectionHandles.styles.topHitArea.top = "".concat(parseInt(top - hitAreaWidth / 4 * 3, 10), "px");
374
+ this.selectionHandles.styles.topHitArea[inlinePosProperty] = "".concat(parseInt(left - hitAreaWidth / 4 * 3, 10), "px");
375
+ this.selectionHandles.styles.bottom.top = "".concat(parseInt(top + height, 10), "px");
376
+ this.selectionHandles.styles.bottom[inlinePosProperty] = "".concat(parseInt(left + width, 10), "px");
377
+ this.selectionHandles.styles.bottomHitArea.top = "".concat(parseInt(top + height - hitAreaWidth / 4, 10), "px");
378
+ this.selectionHandles.styles.bottomHitArea[inlinePosProperty] = "".concat(parseInt(left + width - hitAreaWidth / 4, 10), "px");
379
379
 
380
380
  if (this.settings.border.cornerVisible && this.settings.border.cornerVisible()) {
381
- this.selectionHandles.styles.topLeft.display = 'block';
382
- this.selectionHandles.styles.topLeftHitArea.display = 'block';
381
+ this.selectionHandles.styles.top.display = 'block';
382
+ this.selectionHandles.styles.topHitArea.display = 'block';
383
383
 
384
384
  if (this.isPartRange(row, col)) {
385
- this.selectionHandles.styles.bottomRight.display = 'none';
386
- this.selectionHandles.styles.bottomRightHitArea.display = 'none';
385
+ this.selectionHandles.styles.bottom.display = 'none';
386
+ this.selectionHandles.styles.bottomHitArea.display = 'none';
387
387
  } else {
388
- this.selectionHandles.styles.bottomRight.display = 'block';
389
- this.selectionHandles.styles.bottomRightHitArea.display = 'block';
388
+ this.selectionHandles.styles.bottom.display = 'block';
389
+ this.selectionHandles.styles.bottomHitArea.display = 'block';
390
390
  }
391
391
  } else {
392
- this.selectionHandles.styles.topLeft.display = 'none';
393
- this.selectionHandles.styles.bottomRight.display = 'none';
394
- this.selectionHandles.styles.topLeftHitArea.display = 'none';
395
- this.selectionHandles.styles.bottomRightHitArea.display = 'none';
392
+ this.selectionHandles.styles.top.display = 'none';
393
+ this.selectionHandles.styles.bottom.display = 'none';
394
+ this.selectionHandles.styles.topHitArea.display = 'none';
395
+ this.selectionHandles.styles.bottomHitArea.display = 'none';
396
396
  }
397
397
 
398
- if (row === this.wot.wtSettings.getSetting('fixedRowsTop') || col === this.wot.wtSettings.getSetting('fixedColumnsLeft')) {
399
- this.selectionHandles.styles.topLeft.zIndex = '9999';
400
- this.selectionHandles.styles.topLeftHitArea.zIndex = '9999';
398
+ if (row === this.wot.wtSettings.getSetting('fixedRowsTop') || col === this.wot.wtSettings.getSetting('fixedColumnsStart')) {
399
+ this.selectionHandles.styles.top.zIndex = '9999';
400
+ this.selectionHandles.styles.topHitArea.zIndex = '9999';
401
401
  } else {
402
- this.selectionHandles.styles.topLeft.zIndex = '';
403
- this.selectionHandles.styles.topLeftHitArea.zIndex = '';
402
+ this.selectionHandles.styles.top.zIndex = '';
403
+ this.selectionHandles.styles.topHitArea.zIndex = '';
404
404
  }
405
405
  }
406
406
  /**
@@ -419,7 +419,8 @@ var Border = /*#__PURE__*/function () {
419
419
  var _this$wot = this.wot,
420
420
  wtTable = _this$wot.wtTable,
421
421
  rootDocument = _this$wot.rootDocument,
422
- rootWindow = _this$wot.rootWindow;
422
+ rootWindow = _this$wot.rootWindow; // todo refactoring: consider about using internal facade (it is given by external code)
423
+
423
424
  var fromRow;
424
425
  var toRow;
425
426
  var fromColumn;
@@ -473,16 +474,28 @@ var Border = /*#__PURE__*/function () {
473
474
  return;
474
475
  }
475
476
 
476
- var fromTD = wtTable.getCell(new _coords.default(fromRow, fromColumn));
477
+ var fromTD = wtTable.getCell(this.wot.createCellCoords(fromRow, fromColumn));
477
478
  var isMultiple = fromRow !== toRow || fromColumn !== toColumn;
478
- var toTD = isMultiple ? wtTable.getCell(new _coords.default(toRow, toColumn)) : fromTD;
479
+ var toTD = isMultiple ? wtTable.getCell(this.wot.createCellCoords(toRow, toColumn)) : fromTD;
479
480
  var fromOffset = (0, _element.offset)(fromTD);
480
481
  var toOffset = isMultiple ? (0, _element.offset)(toTD) : fromOffset;
481
482
  var containerOffset = (0, _element.offset)(wtTable.TABLE);
483
+ var containerWidth = (0, _element.outerWidth)(wtTable.TABLE);
482
484
  var minTop = fromOffset.top;
483
485
  var minLeft = fromOffset.left;
484
- var left = minLeft - containerOffset.left - 1;
485
- var width = toOffset.left + (0, _element.outerWidth)(toTD) - minLeft;
486
+ var isRtl = this.wot.wtSettings.getSetting('rtlMode');
487
+ var inlineStartPos = 0;
488
+ var width = 0;
489
+
490
+ if (isRtl) {
491
+ var fromWidth = (0, _element.outerWidth)(fromTD);
492
+ var gridRightPos = rootWindow.innerWidth - containerOffset.left - containerWidth;
493
+ width = minLeft + fromWidth - toOffset.left;
494
+ inlineStartPos = rootWindow.innerWidth - minLeft - fromWidth - gridRightPos - 1;
495
+ } else {
496
+ width = toOffset.left + (0, _element.outerWidth)(toTD) - minLeft;
497
+ inlineStartPos = minLeft - containerOffset.left - 1;
498
+ }
486
499
 
487
500
  if (this.isEntireColumnSelected(fromRow, toRow)) {
488
501
  var modifiedValues = this.getDimensionsFromHeader('columns', fromColumn, toColumn, rowHeader, containerOffset);
@@ -492,7 +505,7 @@ var Border = /*#__PURE__*/function () {
492
505
  var _modifiedValues = _slicedToArray(modifiedValues, 3);
493
506
 
494
507
  fromTH = _modifiedValues[0];
495
- left = _modifiedValues[1];
508
+ inlineStartPos = _modifiedValues[1];
496
509
  width = _modifiedValues[2];
497
510
  }
498
511
 
@@ -529,28 +542,29 @@ var Border = /*#__PURE__*/function () {
529
542
  height = height > 0 ? height - 1 : 0;
530
543
  }
531
544
 
532
- if (parseInt(style.borderLeftWidth, 10) > 0) {
533
- left += 1;
545
+ if (parseInt(style[isRtl ? 'borderRightWidth' : 'borderLeftWidth'], 10) > 0) {
546
+ inlineStartPos += 1;
534
547
  width = width > 0 ? width - 1 : 0;
535
548
  }
536
549
 
550
+ var inlinePosProperty = isRtl ? 'right' : 'left';
537
551
  this.topStyle.top = "".concat(top, "px");
538
- this.topStyle.left = "".concat(left, "px");
552
+ this.topStyle[inlinePosProperty] = "".concat(inlineStartPos, "px");
539
553
  this.topStyle.width = "".concat(width, "px");
540
554
  this.topStyle.display = 'block';
541
- this.leftStyle.top = "".concat(top, "px");
542
- this.leftStyle.left = "".concat(left, "px");
543
- this.leftStyle.height = "".concat(height, "px");
544
- this.leftStyle.display = 'block';
555
+ this.startStyle.top = "".concat(top, "px");
556
+ this.startStyle[inlinePosProperty] = "".concat(inlineStartPos, "px");
557
+ this.startStyle.height = "".concat(height, "px");
558
+ this.startStyle.display = 'block';
545
559
  var delta = Math.floor(this.settings.border.width / 2);
546
560
  this.bottomStyle.top = "".concat(top + height - delta, "px");
547
- this.bottomStyle.left = "".concat(left, "px");
561
+ this.bottomStyle[inlinePosProperty] = "".concat(inlineStartPos, "px");
548
562
  this.bottomStyle.width = "".concat(width, "px");
549
563
  this.bottomStyle.display = 'block';
550
- this.rightStyle.top = "".concat(top, "px");
551
- this.rightStyle.left = "".concat(left + width - delta, "px");
552
- this.rightStyle.height = "".concat(height + 1, "px");
553
- this.rightStyle.display = 'block';
564
+ this.endStyle.top = "".concat(top, "px");
565
+ this.endStyle[inlinePosProperty] = "".concat(inlineStartPos + width - delta, "px");
566
+ this.endStyle.height = "".concat(height + 1, "px");
567
+ this.endStyle.display = 'block';
554
568
  var cornerVisibleSetting = this.settings.border.cornerVisible;
555
569
  cornerVisibleSetting = typeof cornerVisibleSetting === 'function' ? cornerVisibleSetting(this.settings.layerLevel) : cornerVisibleSetting;
556
570
  var hookResult = this.wot.getSetting('onModifyGetCellCoords', toRow, toColumn);
@@ -568,7 +582,7 @@ var Border = /*#__PURE__*/function () {
568
582
  this.cornerStyle.display = 'none';
569
583
  } else {
570
584
  this.cornerStyle.top = "".concat(top + height + this.cornerCenterPointOffset - 1, "px");
571
- this.cornerStyle.left = "".concat(left + width + this.cornerCenterPointOffset - 1, "px");
585
+ this.cornerStyle[inlinePosProperty] = "".concat(inlineStartPos + width + this.cornerCenterPointOffset - 1, "px");
572
586
  this.cornerStyle.borderRightWidth = this.cornerDefaultStyle.borderWidth;
573
587
  this.cornerStyle.width = this.cornerDefaultStyle.width; // Hide the fill handle, so the possible further adjustments won't force unneeded scrollbars.
574
588
 
@@ -582,13 +596,21 @@ var Border = /*#__PURE__*/function () {
582
596
 
583
597
  if (toColumn === this.wot.getSetting('totalColumns') - 1) {
584
598
  var toTdOffsetLeft = trimToWindow ? toTD.getBoundingClientRect().left : toTD.offsetLeft;
585
- var cornerRightEdge = toTdOffsetLeft + (0, _element.outerWidth)(toTD) + parseInt(this.cornerDefaultStyle.width, 10) / 2;
586
- var cornerOverlappingContainer = cornerRightEdge >= (0, _element.innerWidth)(trimmingContainer);
599
+ var cornerOverlappingContainer = false;
600
+ var cornerEdge = 0;
601
+
602
+ if (isRtl) {
603
+ cornerEdge = toTdOffsetLeft - parseInt(this.cornerDefaultStyle.width, 10) / 2;
604
+ cornerOverlappingContainer = cornerEdge < 0;
605
+ } else {
606
+ cornerEdge = toTdOffsetLeft + (0, _element.outerWidth)(toTD) + parseInt(this.cornerDefaultStyle.width, 10) / 2;
607
+ cornerOverlappingContainer = cornerEdge >= (0, _element.innerWidth)(trimmingContainer);
608
+ }
587
609
 
588
610
  if (cornerOverlappingContainer) {
589
- this.cornerStyle.left = "".concat(Math.floor(left + width + this.cornerCenterPointOffset - parseInt(this.cornerDefaultStyle.width, 10) / 2), "px"); // eslint-disable-line max-len
611
+ this.cornerStyle[inlinePosProperty] = "".concat(Math.floor(inlineStartPos + width + this.cornerCenterPointOffset - parseInt(this.cornerDefaultStyle.width, 10) / 2), "px"); // eslint-disable-line max-len
590
612
 
591
- this.cornerStyle.borderRightWidth = 0;
613
+ this.cornerStyle[isRtl ? 'borderLeftWidth' : 'borderRightWidth'] = 0;
592
614
  }
593
615
  }
594
616
 
@@ -609,7 +631,7 @@ var Border = /*#__PURE__*/function () {
609
631
  }
610
632
 
611
633
  if ((0, _browser.isMobileBrowser)()) {
612
- this.updateMultipleSelectionHandlesPosition(toRow, toColumn, top, left, width, height);
634
+ this.updateMultipleSelectionHandlesPosition(toRow, toColumn, top, inlineStartPos, width, height);
613
635
  }
614
636
  }
615
637
  /**
@@ -722,7 +744,7 @@ var Border = /*#__PURE__*/function () {
722
744
  * Change border style.
723
745
  *
724
746
  * @private
725
- * @param {string} borderElement Coordinate where add/remove border: top, right, bottom, left.
747
+ * @param {string} borderElement Coordinate where add/remove border: top, bottom, start, end.
726
748
  * @param {object} border The border object descriptor.
727
749
  */
728
750
 
@@ -745,7 +767,7 @@ var Border = /*#__PURE__*/function () {
745
767
  style.height = "".concat(borderStyle.width, "px");
746
768
  }
747
769
 
748
- if (borderElement === 'right' || borderElement === 'left') {
770
+ if (borderElement === 'start' || borderElement === 'end') {
749
771
  style.width = "".concat(borderStyle.width, "px");
750
772
  }
751
773
  }
@@ -754,7 +776,7 @@ var Border = /*#__PURE__*/function () {
754
776
  * Change border style to default.
755
777
  *
756
778
  * @private
757
- * @param {string} position The position type ("top", "bottom", "left", "right") to change.
779
+ * @param {string} position The position type ("top", "bottom", "start", "end") to change.
758
780
  */
759
781
 
760
782
  }, {
@@ -773,7 +795,7 @@ var Border = /*#__PURE__*/function () {
773
795
  * Toggle class 'hidden' to element.
774
796
  *
775
797
  * @private
776
- * @param {string} borderElement Coordinate where add/remove border: top, right, bottom, left.
798
+ * @param {string} borderElement Coordinate where add/remove border: top, bottom, start, end.
777
799
  * @param {boolean} [remove] Defines type of the action to perform.
778
800
  */
779
801
 
@@ -796,14 +818,14 @@ var Border = /*#__PURE__*/function () {
796
818
  key: "disappear",
797
819
  value: function disappear() {
798
820
  this.topStyle.display = 'none';
799
- this.leftStyle.display = 'none';
800
821
  this.bottomStyle.display = 'none';
801
- this.rightStyle.display = 'none';
822
+ this.startStyle.display = 'none';
823
+ this.endStyle.display = 'none';
802
824
  this.cornerStyle.display = 'none';
803
825
 
804
826
  if ((0, _browser.isMobileBrowser)()) {
805
- this.selectionHandles.styles.topLeft.display = 'none';
806
- this.selectionHandles.styles.bottomRight.display = 'none';
827
+ this.selectionHandles.styles.top.display = 'none';
828
+ this.selectionHandles.styles.bottom.display = 'none';
807
829
  }
808
830
  }
809
831
  /**