handsontable 11.0.0 → 12.0.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 (633) hide show
  1. package/3rdparty/walkontable/src/border.js +121 -99
  2. package/3rdparty/walkontable/src/border.mjs +122 -96
  3. package/3rdparty/walkontable/src/calculator/viewportColumns.js +1 -1
  4. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +1 -1
  5. package/3rdparty/walkontable/src/calculator/viewportRows.js +1 -1
  6. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +1 -1
  7. package/3rdparty/walkontable/src/cell/coords.js +60 -18
  8. package/3rdparty/walkontable/src/cell/coords.mjs +56 -18
  9. package/3rdparty/walkontable/src/cell/range.d.ts +10 -2
  10. package/3rdparty/walkontable/src/cell/range.js +279 -100
  11. package/3rdparty/walkontable/src/cell/range.mjs +274 -100
  12. package/3rdparty/walkontable/src/core/_base.js +452 -0
  13. package/3rdparty/walkontable/src/core/_base.mjs +440 -0
  14. package/3rdparty/walkontable/src/core/clone.js +97 -0
  15. package/3rdparty/walkontable/src/core/clone.mjs +80 -0
  16. package/3rdparty/walkontable/src/core/core.js +183 -0
  17. package/3rdparty/walkontable/src/core/core.mjs +160 -0
  18. package/3rdparty/walkontable/src/event.js +100 -67
  19. package/3rdparty/walkontable/src/event.mjs +100 -64
  20. package/3rdparty/walkontable/src/facade/core.js +251 -0
  21. package/3rdparty/walkontable/src/facade/core.mjs +243 -0
  22. package/3rdparty/walkontable/src/filter/column.js +1 -1
  23. package/3rdparty/walkontable/src/filter/column.mjs +1 -1
  24. package/3rdparty/walkontable/src/filter/row.js +1 -1
  25. package/3rdparty/walkontable/src/filter/row.mjs +1 -1
  26. package/3rdparty/walkontable/src/index.js +3 -47
  27. package/3rdparty/walkontable/src/index.mjs +3 -13
  28. package/3rdparty/walkontable/src/overlay/_base.js +125 -58
  29. package/3rdparty/walkontable/src/overlay/_base.mjs +126 -59
  30. package/3rdparty/walkontable/src/overlay/bottom.js +86 -76
  31. package/3rdparty/walkontable/src/overlay/bottom.mjs +86 -76
  32. package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.js → bottomInlineStartCorner.js} +35 -58
  33. package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +34 -57
  34. package/3rdparty/walkontable/src/overlay/constants.js +25 -9
  35. package/3rdparty/walkontable/src/overlay/constants.mjs +14 -4
  36. package/3rdparty/walkontable/src/overlay/index.js +10 -19
  37. package/3rdparty/walkontable/src/overlay/index.mjs +4 -5
  38. package/3rdparty/walkontable/src/overlay/{left.js → inlineStart.js} +102 -80
  39. package/3rdparty/walkontable/src/overlay/{left.mjs → inlineStart.mjs} +101 -79
  40. package/3rdparty/walkontable/src/overlay/top.js +84 -79
  41. package/3rdparty/walkontable/src/overlay/top.mjs +84 -79
  42. package/3rdparty/walkontable/src/overlay/{topLeftCorner.js → topInlineStartCorner.js} +56 -57
  43. package/3rdparty/walkontable/src/overlay/{topLeftCorner.mjs → topInlineStartCorner.mjs} +51 -52
  44. package/3rdparty/walkontable/src/overlays.js +226 -157
  45. package/3rdparty/walkontable/src/overlays.mjs +226 -156
  46. package/3rdparty/walkontable/src/renderer/_base.js +1 -1
  47. package/3rdparty/walkontable/src/renderer/_base.mjs +1 -1
  48. package/3rdparty/walkontable/src/renderer/cells.js +5 -4
  49. package/3rdparty/walkontable/src/renderer/cells.mjs +5 -4
  50. package/3rdparty/walkontable/src/renderer/colGroup.js +3 -3
  51. package/3rdparty/walkontable/src/renderer/colGroup.mjs +3 -3
  52. package/3rdparty/walkontable/src/renderer/columnHeaders.js +3 -3
  53. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +3 -3
  54. package/3rdparty/walkontable/src/renderer/index.js +1 -1
  55. package/3rdparty/walkontable/src/renderer/index.mjs +1 -1
  56. package/3rdparty/walkontable/src/renderer/rowHeaders.js +3 -3
  57. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +3 -3
  58. package/3rdparty/walkontable/src/renderer/rows.js +3 -3
  59. package/3rdparty/walkontable/src/renderer/rows.mjs +3 -3
  60. package/3rdparty/walkontable/src/renderer/table.js +1 -1
  61. package/3rdparty/walkontable/src/renderer/table.mjs +1 -1
  62. package/3rdparty/walkontable/src/scroll.js +61 -88
  63. package/3rdparty/walkontable/src/scroll.mjs +61 -88
  64. package/3rdparty/walkontable/src/selection.js +12 -16
  65. package/3rdparty/walkontable/src/selection.mjs +12 -14
  66. package/3rdparty/walkontable/src/settings.js +236 -127
  67. package/3rdparty/walkontable/src/settings.mjs +236 -126
  68. package/3rdparty/walkontable/src/table/bottom.js +21 -6
  69. package/3rdparty/walkontable/src/table/bottom.mjs +20 -6
  70. package/3rdparty/walkontable/src/table/{bottomLeftCorner.js → bottomInlineStartCorner.js} +31 -15
  71. package/3rdparty/walkontable/src/table/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +30 -15
  72. package/3rdparty/walkontable/src/table/{left.js → inlineStart.js} +27 -15
  73. package/3rdparty/walkontable/src/table/{left.mjs → inlineStart.mjs} +26 -15
  74. package/3rdparty/walkontable/src/table/master.js +23 -13
  75. package/3rdparty/walkontable/src/table/master.mjs +23 -13
  76. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +12 -6
  77. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +12 -6
  78. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +12 -6
  79. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +12 -6
  80. package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.js → stickyColumnsStart.js} +13 -7
  81. package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.mjs → stickyColumnsStart.mjs} +13 -7
  82. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +11 -5
  83. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +11 -5
  84. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -3
  85. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -3
  86. package/3rdparty/walkontable/src/table/top.js +21 -6
  87. package/3rdparty/walkontable/src/table/top.mjs +20 -6
  88. package/3rdparty/walkontable/src/table/{topLeftCorner.js → topInlineStartCorner.js} +31 -15
  89. package/3rdparty/walkontable/src/table/{topLeftCorner.mjs → topInlineStartCorner.mjs} +30 -15
  90. package/3rdparty/walkontable/src/table.js +236 -141
  91. package/3rdparty/walkontable/src/table.mjs +232 -135
  92. package/3rdparty/walkontable/src/types.js +103 -0
  93. package/3rdparty/walkontable/src/types.mjs +102 -0
  94. package/3rdparty/walkontable/src/utils/column.js +23 -34
  95. package/3rdparty/walkontable/src/utils/column.mjs +23 -31
  96. package/3rdparty/walkontable/src/utils/nodesPool.js +1 -1
  97. package/3rdparty/walkontable/src/utils/nodesPool.mjs +1 -1
  98. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +3 -3
  99. package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +3 -3
  100. package/3rdparty/walkontable/src/utils/orderView/view.js +1 -1
  101. package/3rdparty/walkontable/src/utils/orderView/view.mjs +1 -1
  102. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +1 -1
  103. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +1 -1
  104. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +1 -1
  105. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +1 -1
  106. package/3rdparty/walkontable/src/utils/row.js +10 -5
  107. package/3rdparty/walkontable/src/utils/row.mjs +10 -5
  108. package/3rdparty/walkontable/src/viewport.js +78 -81
  109. package/3rdparty/walkontable/src/viewport.mjs +78 -78
  110. package/CHANGELOG.md +94 -17
  111. package/README.md +10 -7
  112. package/base.js +2 -2
  113. package/base.mjs +2 -2
  114. package/cellTypes/timeType/timeType.d.ts +6 -6
  115. package/cellTypes/timeType/timeType.js +4 -5
  116. package/cellTypes/timeType/timeType.mjs +4 -5
  117. package/core.d.ts +9 -3
  118. package/core.js +590 -157
  119. package/core.mjs +599 -169
  120. package/dataMap/dataMap.js +2 -2
  121. package/dataMap/dataMap.mjs +2 -2
  122. package/dataMap/index.js +8 -0
  123. package/dataMap/index.mjs +3 -1
  124. package/dataMap/metaManager/index.js +3 -3
  125. package/dataMap/metaManager/index.mjs +3 -3
  126. package/dataMap/metaManager/lazyFactoryMap.js +1 -1
  127. package/dataMap/metaManager/lazyFactoryMap.mjs +1 -1
  128. package/dataMap/metaManager/metaLayers/cellMeta.js +1 -1
  129. package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -1
  130. package/dataMap/metaManager/metaLayers/columnMeta.js +1 -1
  131. package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -1
  132. package/dataMap/metaManager/metaLayers/globalMeta.js +7 -3
  133. package/dataMap/metaManager/metaLayers/globalMeta.mjs +7 -3
  134. package/dataMap/metaManager/metaLayers/tableMeta.js +3 -3
  135. package/dataMap/metaManager/metaLayers/tableMeta.mjs +3 -3
  136. package/dataMap/metaManager/metaSchema.js +2931 -2676
  137. package/dataMap/metaManager/metaSchema.mjs +2931 -2676
  138. package/dataMap/metaManager/mods/dynamicCellMeta.js +1 -1
  139. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
  140. package/dataMap/metaManager/mods/extendMetaProperties.js +126 -0
  141. package/dataMap/metaManager/mods/extendMetaProperties.mjs +113 -0
  142. package/dataMap/replaceData.js +140 -0
  143. package/dataMap/replaceData.mjs +124 -0
  144. package/dataSource.js +1 -1
  145. package/dataSource.mjs +1 -1
  146. package/dist/README.md +2 -2
  147. package/dist/handsontable.css +424 -166
  148. package/dist/handsontable.full.css +559 -298
  149. package/dist/handsontable.full.js +47163 -41289
  150. package/dist/handsontable.full.min.css +8 -13
  151. package/dist/handsontable.full.min.js +143 -142
  152. package/dist/handsontable.js +28270 -24105
  153. package/dist/handsontable.min.css +8 -11
  154. package/dist/handsontable.min.js +3 -3
  155. package/dist/languages/all.js +69 -38
  156. package/dist/languages/all.min.js +1 -1
  157. package/dist/languages/ar-AR.js +167 -0
  158. package/dist/languages/ar-AR.min.js +1 -0
  159. package/dist/languages/de-CH.js +32 -33
  160. package/dist/languages/de-CH.min.js +1 -1
  161. package/dist/languages/de-DE.js +5 -6
  162. package/dist/languages/de-DE.min.js +1 -1
  163. package/dist/languages/en-US.js +5 -6
  164. package/dist/languages/en-US.min.js +1 -1
  165. package/dist/languages/es-MX.js +5 -6
  166. package/dist/languages/es-MX.min.js +1 -1
  167. package/dist/languages/fr-FR.js +5 -6
  168. package/dist/languages/fr-FR.min.js +1 -1
  169. package/dist/languages/it-IT.js +5 -6
  170. package/dist/languages/it-IT.min.js +1 -1
  171. package/dist/languages/ja-JP.js +5 -6
  172. package/dist/languages/ja-JP.min.js +1 -1
  173. package/dist/languages/ko-KR.js +37 -42
  174. package/dist/languages/ko-KR.min.js +1 -1
  175. package/dist/languages/lv-LV.js +4 -6
  176. package/dist/languages/lv-LV.min.js +1 -1
  177. package/dist/languages/nb-NO.js +4 -6
  178. package/dist/languages/nb-NO.min.js +1 -1
  179. package/dist/languages/nl-NL.js +4 -6
  180. package/dist/languages/nl-NL.min.js +1 -1
  181. package/dist/languages/pl-PL.js +4 -6
  182. package/dist/languages/pl-PL.min.js +1 -1
  183. package/dist/languages/pt-BR.js +4 -6
  184. package/dist/languages/pt-BR.min.js +1 -1
  185. package/dist/languages/ru-RU.js +4 -6
  186. package/dist/languages/ru-RU.min.js +1 -1
  187. package/dist/languages/zh-CN.js +4 -6
  188. package/dist/languages/zh-CN.min.js +1 -1
  189. package/dist/languages/zh-TW.js +25 -27
  190. package/dist/languages/zh-TW.min.js +1 -1
  191. package/editorManager.js +121 -268
  192. package/editorManager.mjs +129 -279
  193. package/editors/autocompleteEditor/autocompleteEditor.js +19 -17
  194. package/editors/autocompleteEditor/autocompleteEditor.mjs +19 -17
  195. package/editors/baseEditor/baseEditor.js +207 -36
  196. package/editors/baseEditor/baseEditor.mjs +202 -34
  197. package/editors/checkboxEditor/checkboxEditor.js +3 -3
  198. package/editors/checkboxEditor/checkboxEditor.mjs +3 -3
  199. package/editors/dateEditor/dateEditor.js +22 -9
  200. package/editors/dateEditor/dateEditor.mjs +23 -10
  201. package/editors/dropdownEditor/dropdownEditor.js +4 -4
  202. package/editors/dropdownEditor/dropdownEditor.mjs +4 -4
  203. package/editors/handsontableEditor/handsontableEditor.js +107 -56
  204. package/editors/handsontableEditor/handsontableEditor.mjs +107 -56
  205. package/editors/index.d.ts +3 -0
  206. package/editors/index.js +6 -0
  207. package/editors/index.mjs +3 -1
  208. package/editors/numericEditor/numericEditor.js +3 -3
  209. package/editors/numericEditor/numericEditor.mjs +3 -3
  210. package/editors/passwordEditor/passwordEditor.js +4 -4
  211. package/editors/passwordEditor/passwordEditor.mjs +4 -4
  212. package/editors/selectEditor/selectEditor.js +66 -111
  213. package/editors/selectEditor/selectEditor.mjs +67 -110
  214. package/editors/textEditor/caretPositioner.js +49 -0
  215. package/editors/textEditor/caretPositioner.mjs +42 -0
  216. package/editors/textEditor/textEditor.js +206 -182
  217. package/editors/textEditor/textEditor.mjs +200 -180
  218. package/editors/timeEditor/index.d.ts +1 -0
  219. package/editors/timeEditor/index.js +9 -0
  220. package/editors/timeEditor/index.mjs +1 -0
  221. package/editors/timeEditor/timeEditor.d.ts +7 -0
  222. package/editors/timeEditor/timeEditor.js +105 -0
  223. package/editors/timeEditor/timeEditor.mjs +84 -0
  224. package/eventManager.js +11 -5
  225. package/eventManager.mjs +11 -5
  226. package/helpers/data.js +1 -1
  227. package/helpers/data.mjs +1 -1
  228. package/helpers/dom/element.js +1 -1
  229. package/helpers/dom/element.mjs +1 -1
  230. package/helpers/feature.js +1 -1
  231. package/helpers/feature.mjs +1 -1
  232. package/helpers/mixed.js +3 -3
  233. package/helpers/mixed.mjs +3 -3
  234. package/helpers/number.js +4 -4
  235. package/helpers/number.mjs +4 -4
  236. package/helpers/object.js +1 -1
  237. package/helpers/object.mjs +1 -1
  238. package/i18n/languages/ar-AR.js +41 -0
  239. package/i18n/languages/ar-AR.mjs +17 -0
  240. package/i18n/languages/de-CH.js +1 -1
  241. package/i18n/languages/de-DE.js +1 -1
  242. package/i18n/languages/en-US.js +1 -1
  243. package/i18n/languages/es-MX.js +1 -1
  244. package/i18n/languages/fr-FR.js +1 -1
  245. package/i18n/languages/index.js +4 -0
  246. package/i18n/languages/index.mjs +2 -1
  247. package/i18n/languages/it-IT.js +1 -1
  248. package/i18n/languages/ja-JP.js +1 -1
  249. package/i18n/languages/ko-KR.js +1 -1
  250. package/i18n/languages/lv-LV.js +1 -1
  251. package/i18n/languages/nb-NO.js +1 -1
  252. package/i18n/languages/nl-NL.js +1 -1
  253. package/i18n/languages/pl-PL.js +1 -1
  254. package/i18n/languages/pt-BR.js +1 -1
  255. package/i18n/languages/ru-RU.js +1 -1
  256. package/i18n/languages/zh-CN.js +1 -1
  257. package/i18n/languages/zh-TW.js +1 -1
  258. package/i18n/registry.js +1 -1
  259. package/index.d.ts +4 -0
  260. package/index.js +1 -1
  261. package/languages/all.js +69 -38
  262. package/languages/ar-AR.js +167 -0
  263. package/languages/ar-AR.mjs +19 -0
  264. package/languages/de-CH.js +32 -33
  265. package/languages/de-DE.js +5 -6
  266. package/languages/en-US.js +5 -6
  267. package/languages/es-MX.js +5 -6
  268. package/languages/fr-FR.js +5 -6
  269. package/languages/index.js +69 -38
  270. package/languages/index.mjs +2 -1
  271. package/languages/it-IT.js +5 -6
  272. package/languages/ja-JP.js +5 -6
  273. package/languages/ko-KR.js +37 -42
  274. package/languages/lv-LV.js +4 -6
  275. package/languages/nb-NO.js +4 -6
  276. package/languages/nl-NL.js +4 -6
  277. package/languages/pl-PL.js +4 -6
  278. package/languages/pt-BR.js +4 -6
  279. package/languages/ru-RU.js +4 -6
  280. package/languages/zh-CN.js +4 -6
  281. package/languages/zh-TW.js +25 -27
  282. package/package.json +26 -8
  283. package/pluginHooks.d.ts +2 -0
  284. package/pluginHooks.js +58 -27
  285. package/pluginHooks.mjs +58 -27
  286. package/plugins/autoColumnSize/autoColumnSize.js +14 -9
  287. package/plugins/autoColumnSize/autoColumnSize.mjs +14 -9
  288. package/plugins/autoRowSize/autoRowSize.js +15 -10
  289. package/plugins/autoRowSize/autoRowSize.mjs +15 -10
  290. package/plugins/autofill/autofill.js +50 -34
  291. package/plugins/autofill/autofill.mjs +50 -33
  292. package/plugins/autofill/utils.js +10 -11
  293. package/plugins/autofill/utils.mjs +10 -10
  294. package/plugins/base/base.d.ts +8 -2
  295. package/plugins/base/base.js +68 -5
  296. package/plugins/base/base.mjs +67 -5
  297. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +4 -4
  298. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +4 -4
  299. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +4 -4
  300. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +4 -4
  301. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +4 -4
  302. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +4 -4
  303. package/plugins/collapsibleColumns/collapsibleColumns.js +49 -30
  304. package/plugins/collapsibleColumns/collapsibleColumns.mjs +49 -30
  305. package/plugins/columnSorting/columnSorting.d.ts +1 -1
  306. package/plugins/columnSorting/columnSorting.js +10 -12
  307. package/plugins/columnSorting/columnSorting.mjs +10 -11
  308. package/plugins/columnSorting/columnStatesManager.js +3 -3
  309. package/plugins/columnSorting/columnStatesManager.mjs +3 -3
  310. package/plugins/columnSummary/columnSummary.js +4 -4
  311. package/plugins/columnSummary/columnSummary.mjs +4 -4
  312. package/plugins/columnSummary/endpoints.js +1 -1
  313. package/plugins/columnSummary/endpoints.mjs +1 -1
  314. package/plugins/comments/commentEditor.js +24 -4
  315. package/plugins/comments/commentEditor.mjs +25 -5
  316. package/plugins/comments/comments.js +63 -104
  317. package/plugins/comments/comments.mjs +63 -102
  318. package/plugins/comments/displaySwitch.js +1 -1
  319. package/plugins/comments/displaySwitch.mjs +1 -1
  320. package/plugins/contextMenu/commandExecutor.js +1 -1
  321. package/plugins/contextMenu/commandExecutor.mjs +1 -1
  322. package/plugins/contextMenu/contextMenu.js +11 -7
  323. package/plugins/contextMenu/contextMenu.mjs +11 -7
  324. package/plugins/contextMenu/cursor.js +1 -1
  325. package/plugins/contextMenu/cursor.mjs +1 -1
  326. package/plugins/contextMenu/itemsFactory.js +1 -1
  327. package/plugins/contextMenu/itemsFactory.mjs +1 -1
  328. package/plugins/contextMenu/menu.js +223 -111
  329. package/plugins/contextMenu/menu.mjs +220 -112
  330. package/plugins/contextMenu/predefinedItems/alignment.js +1 -1
  331. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -1
  332. package/plugins/contextMenu/predefinedItems/columnLeft.js +13 -5
  333. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +11 -4
  334. package/plugins/contextMenu/predefinedItems/columnRight.js +10 -10
  335. package/plugins/contextMenu/predefinedItems/columnRight.mjs +9 -9
  336. package/plugins/contextMenu/predefinedItems/readOnly.js +1 -1
  337. package/plugins/contextMenu/predefinedItems/redo.js +1 -1
  338. package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -1
  339. package/plugins/contextMenu/predefinedItems/removeRow.js +1 -1
  340. package/plugins/contextMenu/predefinedItems/rowAbove.js +1 -1
  341. package/plugins/contextMenu/predefinedItems/rowBelow.js +1 -1
  342. package/plugins/contextMenu/predefinedItems/undo.js +1 -1
  343. package/plugins/contextMenu/predefinedItems.js +1 -1
  344. package/plugins/contextMenu/utils.js +2 -2
  345. package/plugins/contextMenu/utils.mjs +2 -2
  346. package/plugins/copyPaste/clipboardData.js +1 -1
  347. package/plugins/copyPaste/clipboardData.mjs +1 -1
  348. package/plugins/copyPaste/contextMenuItem/copy.js +1 -1
  349. package/plugins/copyPaste/contextMenuItem/cut.js +1 -1
  350. package/plugins/copyPaste/copyPaste.js +29 -19
  351. package/plugins/copyPaste/copyPaste.mjs +28 -19
  352. package/plugins/copyPaste/focusableElement.js +1 -1
  353. package/plugins/copyPaste/focusableElement.mjs +1 -1
  354. package/plugins/copyPaste/pasteEvent.js +6 -2
  355. package/plugins/copyPaste/pasteEvent.mjs +6 -2
  356. package/plugins/customBorders/contextMenuItem/bottom.js +1 -1
  357. package/plugins/customBorders/contextMenuItem/left.js +5 -4
  358. package/plugins/customBorders/contextMenuItem/left.mjs +4 -3
  359. package/plugins/customBorders/contextMenuItem/noBorders.js +1 -1
  360. package/plugins/customBorders/contextMenuItem/right.js +5 -4
  361. package/plugins/customBorders/contextMenuItem/right.mjs +4 -3
  362. package/plugins/customBorders/contextMenuItem/top.js +1 -1
  363. package/plugins/customBorders/customBorders.js +141 -85
  364. package/plugins/customBorders/customBorders.mjs +139 -82
  365. package/plugins/customBorders/utils.js +131 -27
  366. package/plugins/customBorders/utils.mjs +115 -27
  367. package/plugins/dragToScroll/dragToScroll.js +11 -6
  368. package/plugins/dragToScroll/dragToScroll.mjs +11 -6
  369. package/plugins/dropdownMenu/dropdownMenu.js +8 -7
  370. package/plugins/dropdownMenu/dropdownMenu.mjs +8 -7
  371. package/plugins/exportFile/dataProvider.js +1 -1
  372. package/plugins/exportFile/dataProvider.mjs +1 -1
  373. package/plugins/exportFile/exportFile.js +3 -3
  374. package/plugins/exportFile/exportFile.mjs +3 -3
  375. package/plugins/exportFile/types/_base.js +1 -1
  376. package/plugins/exportFile/types/_base.mjs +1 -1
  377. package/plugins/exportFile/types/csv.js +3 -3
  378. package/plugins/exportFile/types/csv.mjs +3 -3
  379. package/plugins/filters/component/_base.js +1 -1
  380. package/plugins/filters/component/_base.mjs +1 -1
  381. package/plugins/filters/component/actionBar.js +3 -3
  382. package/plugins/filters/component/actionBar.mjs +3 -3
  383. package/plugins/filters/component/condition.js +4 -4
  384. package/plugins/filters/component/condition.mjs +4 -4
  385. package/plugins/filters/component/operators.js +3 -3
  386. package/plugins/filters/component/operators.mjs +3 -3
  387. package/plugins/filters/component/value.js +4 -4
  388. package/plugins/filters/component/value.mjs +4 -4
  389. package/plugins/filters/condition/beginsWith.js +1 -1
  390. package/plugins/filters/condition/between.js +1 -1
  391. package/plugins/filters/condition/contains.js +1 -1
  392. package/plugins/filters/condition/date/after.js +1 -1
  393. package/plugins/filters/condition/date/before.js +1 -1
  394. package/plugins/filters/condition/date/today.js +1 -1
  395. package/plugins/filters/condition/date/tomorrow.js +1 -1
  396. package/plugins/filters/condition/date/yesterday.js +1 -1
  397. package/plugins/filters/condition/empty.js +1 -1
  398. package/plugins/filters/condition/endsWith.js +1 -1
  399. package/plugins/filters/condition/equal.js +1 -1
  400. package/plugins/filters/condition/greaterThan.js +1 -1
  401. package/plugins/filters/condition/greaterThanOrEqual.js +1 -1
  402. package/plugins/filters/condition/lessThan.js +1 -1
  403. package/plugins/filters/condition/lessThanOrEqual.js +1 -1
  404. package/plugins/filters/condition/none.js +1 -1
  405. package/plugins/filters/condition/notBetween.js +1 -1
  406. package/plugins/filters/condition/notContains.js +1 -1
  407. package/plugins/filters/condition/notEmpty.js +1 -1
  408. package/plugins/filters/condition/notEqual.js +1 -1
  409. package/plugins/filters/conditionCollection.js +1 -1
  410. package/plugins/filters/conditionCollection.mjs +1 -1
  411. package/plugins/filters/conditionUpdateObserver.js +1 -1
  412. package/plugins/filters/conditionUpdateObserver.mjs +1 -1
  413. package/plugins/filters/dataFilter.js +1 -1
  414. package/plugins/filters/dataFilter.mjs +1 -1
  415. package/plugins/filters/filters.js +12 -9
  416. package/plugins/filters/filters.mjs +12 -9
  417. package/plugins/filters/logicalOperations/conjunction.js +1 -1
  418. package/plugins/filters/logicalOperations/disjunction.js +1 -1
  419. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +1 -1
  420. package/plugins/filters/ui/_base.js +2 -2
  421. package/plugins/filters/ui/_base.mjs +1 -1
  422. package/plugins/filters/ui/input.js +4 -4
  423. package/plugins/filters/ui/input.mjs +4 -4
  424. package/plugins/filters/ui/link.js +4 -4
  425. package/plugins/filters/ui/link.mjs +4 -4
  426. package/plugins/filters/ui/multipleSelect.js +19 -32
  427. package/plugins/filters/ui/multipleSelect.mjs +19 -32
  428. package/plugins/filters/ui/radioInput.js +4 -4
  429. package/plugins/filters/ui/radioInput.mjs +4 -4
  430. package/plugins/filters/ui/select.js +5 -5
  431. package/plugins/filters/ui/select.mjs +5 -5
  432. package/plugins/formulas/engine/register.js +1 -1
  433. package/plugins/formulas/engine/register.mjs +1 -1
  434. package/plugins/formulas/engine/settings.js +2 -2
  435. package/plugins/formulas/engine/settings.mjs +2 -2
  436. package/plugins/formulas/formulas.js +10 -10
  437. package/plugins/formulas/formulas.mjs +10 -10
  438. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -1
  439. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +3 -3
  440. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -2
  441. package/plugins/hiddenColumns/hiddenColumns.js +10 -5
  442. package/plugins/hiddenColumns/hiddenColumns.mjs +10 -5
  443. package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -1
  444. package/plugins/hiddenRows/contextMenuItem/showRow.js +3 -3
  445. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -2
  446. package/plugins/hiddenRows/hiddenRows.js +10 -5
  447. package/plugins/hiddenRows/hiddenRows.mjs +10 -5
  448. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +2 -2
  449. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
  450. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +2 -2
  451. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
  452. package/plugins/manualColumnFreeze/manualColumnFreeze.js +26 -13
  453. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +26 -13
  454. package/plugins/manualColumnMove/manualColumnMove.js +73 -62
  455. package/plugins/manualColumnMove/manualColumnMove.mjs +74 -63
  456. package/plugins/manualColumnMove/ui/_base.js +26 -13
  457. package/plugins/manualColumnMove/ui/_base.mjs +25 -13
  458. package/plugins/manualColumnMove/ui/backlight.js +4 -4
  459. package/plugins/manualColumnMove/ui/backlight.mjs +4 -4
  460. package/plugins/manualColumnMove/ui/guideline.js +4 -4
  461. package/plugins/manualColumnMove/ui/guideline.mjs +4 -4
  462. package/plugins/manualColumnResize/manualColumnResize.js +38 -22
  463. package/plugins/manualColumnResize/manualColumnResize.mjs +38 -22
  464. package/plugins/manualRowMove/manualRowMove.js +27 -17
  465. package/plugins/manualRowMove/manualRowMove.mjs +27 -17
  466. package/plugins/manualRowMove/ui/_base.js +1 -1
  467. package/plugins/manualRowMove/ui/_base.mjs +1 -1
  468. package/plugins/manualRowMove/ui/backlight.js +4 -4
  469. package/plugins/manualRowMove/ui/backlight.mjs +4 -4
  470. package/plugins/manualRowMove/ui/guideline.js +4 -4
  471. package/plugins/manualRowMove/ui/guideline.mjs +4 -4
  472. package/plugins/manualRowResize/manualRowResize.js +35 -20
  473. package/plugins/manualRowResize/manualRowResize.mjs +35 -20
  474. package/plugins/mergeCells/calculations/autofill.js +7 -6
  475. package/plugins/mergeCells/calculations/autofill.mjs +7 -5
  476. package/plugins/mergeCells/calculations/selection.js +10 -5
  477. package/plugins/mergeCells/calculations/selection.mjs +10 -5
  478. package/plugins/mergeCells/cellCoords.js +17 -5
  479. package/plugins/mergeCells/cellCoords.mjs +17 -4
  480. package/plugins/mergeCells/cellsCollection.js +28 -21
  481. package/plugins/mergeCells/cellsCollection.mjs +28 -20
  482. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +1 -1
  483. package/plugins/mergeCells/mergeCells.js +83 -50
  484. package/plugins/mergeCells/mergeCells.mjs +83 -48
  485. package/plugins/multiColumnSorting/multiColumnSorting.js +5 -7
  486. package/plugins/multiColumnSorting/multiColumnSorting.mjs +5 -6
  487. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +52 -58
  488. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +53 -58
  489. package/plugins/nestedHeaders/nestedHeaders.js +26 -19
  490. package/plugins/nestedHeaders/nestedHeaders.mjs +26 -19
  491. package/plugins/nestedHeaders/stateManager/headersTree.js +3 -3
  492. package/plugins/nestedHeaders/stateManager/headersTree.mjs +3 -3
  493. package/plugins/nestedHeaders/stateManager/index.js +3 -3
  494. package/plugins/nestedHeaders/stateManager/index.mjs +3 -3
  495. package/plugins/nestedHeaders/stateManager/sourceSettings.js +3 -3
  496. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +3 -3
  497. package/plugins/nestedHeaders/utils/ghostTable.js +1 -1
  498. package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -1
  499. package/plugins/nestedRows/data/dataManager.js +2 -2
  500. package/plugins/nestedRows/data/dataManager.mjs +2 -2
  501. package/plugins/nestedRows/nestedRows.js +11 -5
  502. package/plugins/nestedRows/nestedRows.mjs +11 -5
  503. package/plugins/nestedRows/ui/_base.js +6 -2
  504. package/plugins/nestedRows/ui/_base.mjs +6 -2
  505. package/plugins/nestedRows/ui/collapsing.js +3 -3
  506. package/plugins/nestedRows/ui/collapsing.mjs +3 -3
  507. package/plugins/nestedRows/ui/contextMenu.js +3 -3
  508. package/plugins/nestedRows/ui/contextMenu.mjs +3 -3
  509. package/plugins/nestedRows/ui/headers.js +3 -3
  510. package/plugins/nestedRows/ui/headers.mjs +3 -3
  511. package/plugins/nestedRows/utils/rowMoveController.js +3 -5
  512. package/plugins/nestedRows/utils/rowMoveController.mjs +3 -4
  513. package/plugins/persistentState/persistentState.js +10 -5
  514. package/plugins/persistentState/persistentState.mjs +10 -5
  515. package/plugins/persistentState/storage.js +1 -1
  516. package/plugins/persistentState/storage.mjs +1 -1
  517. package/plugins/search/search.js +10 -5
  518. package/plugins/search/search.mjs +10 -5
  519. package/plugins/touchScroll/touchScroll.js +32 -26
  520. package/plugins/touchScroll/touchScroll.mjs +32 -25
  521. package/plugins/trimRows/trimRows.js +10 -5
  522. package/plugins/trimRows/trimRows.mjs +10 -5
  523. package/plugins/undoRedo/index.js +1 -1
  524. package/plugins/undoRedo/undoRedo.js +54 -48
  525. package/plugins/undoRedo/undoRedo.mjs +54 -47
  526. package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -3
  527. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +1 -2
  528. package/renderers/checkboxRenderer/checkboxRenderer.js +48 -43
  529. package/renderers/checkboxRenderer/checkboxRenderer.mjs +48 -41
  530. package/renderers/index.d.ts +4 -1
  531. package/renderers/index.js +6 -0
  532. package/renderers/index.mjs +3 -1
  533. package/renderers/numericRenderer/numericRenderer.js +1 -0
  534. package/renderers/numericRenderer/numericRenderer.mjs +1 -0
  535. package/renderers/timeRenderer/index.d.ts +1 -0
  536. package/renderers/timeRenderer/index.js +9 -0
  537. package/renderers/timeRenderer/index.mjs +1 -0
  538. package/renderers/timeRenderer/timeRenderer.d.ts +5 -0
  539. package/renderers/timeRenderer/timeRenderer.js +31 -0
  540. package/renderers/timeRenderer/timeRenderer.mjs +20 -0
  541. package/selection/highlight/highlight.js +3 -3
  542. package/selection/highlight/highlight.mjs +3 -3
  543. package/selection/highlight/types/activeHeader.js +2 -2
  544. package/selection/highlight/types/activeHeader.mjs +2 -2
  545. package/selection/highlight/types/area.js +2 -2
  546. package/selection/highlight/types/area.mjs +2 -2
  547. package/selection/highlight/types/cell.js +2 -2
  548. package/selection/highlight/types/cell.mjs +2 -2
  549. package/selection/highlight/types/customSelection.js +2 -2
  550. package/selection/highlight/types/customSelection.mjs +2 -2
  551. package/selection/highlight/types/fill.js +2 -2
  552. package/selection/highlight/types/fill.mjs +2 -2
  553. package/selection/highlight/types/header.js +2 -2
  554. package/selection/highlight/types/header.mjs +2 -2
  555. package/selection/highlight/types/index.js +2 -2
  556. package/selection/highlight/types/index.mjs +2 -2
  557. package/selection/highlight/visualSelection.js +17 -16
  558. package/selection/highlight/visualSelection.mjs +18 -17
  559. package/selection/mouseEventHandler.js +15 -10
  560. package/selection/mouseEventHandler.mjs +15 -9
  561. package/selection/range.js +5 -6
  562. package/selection/range.mjs +5 -6
  563. package/selection/selection.js +27 -20
  564. package/selection/selection.mjs +27 -18
  565. package/selection/transformation.js +5 -7
  566. package/selection/transformation.mjs +5 -6
  567. package/selection/utils.js +1 -1
  568. package/selection/utils.mjs +1 -1
  569. package/settings.d.ts +3 -1
  570. package/shortcuts/context.d.ts +20 -0
  571. package/shortcuts/context.js +296 -0
  572. package/shortcuts/context.mjs +268 -0
  573. package/shortcuts/index.d.ts +1 -0
  574. package/shortcuts/index.js +8 -0
  575. package/shortcuts/index.mjs +1 -0
  576. package/shortcuts/keyObserver.js +67 -0
  577. package/shortcuts/keyObserver.mjs +58 -0
  578. package/shortcuts/manager.d.ts +10 -0
  579. package/shortcuts/manager.js +183 -0
  580. package/shortcuts/manager.mjs +174 -0
  581. package/shortcuts/recorder.js +183 -0
  582. package/shortcuts/recorder.mjs +171 -0
  583. package/shortcuts/utils.js +77 -0
  584. package/shortcuts/utils.mjs +54 -0
  585. package/tableView.js +138 -80
  586. package/tableView.mjs +138 -70
  587. package/translations/changesObservable/observable.js +1 -1
  588. package/translations/changesObservable/observable.mjs +1 -1
  589. package/translations/changesObservable/observer.js +1 -2
  590. package/translations/changesObservable/observer.mjs +1 -2
  591. package/translations/indexMapper.d.ts +1 -0
  592. package/translations/indexMapper.js +25 -2
  593. package/translations/indexMapper.mjs +24 -2
  594. package/translations/mapCollections/aggregatedCollection.js +3 -3
  595. package/translations/mapCollections/aggregatedCollection.mjs +3 -3
  596. package/translations/mapCollections/mapCollection.js +1 -1
  597. package/translations/mapCollections/mapCollection.mjs +1 -1
  598. package/translations/maps/hidingMap.js +5 -3
  599. package/translations/maps/hidingMap.mjs +5 -3
  600. package/translations/maps/indexMap.js +3 -1
  601. package/translations/maps/indexMap.mjs +3 -1
  602. package/translations/maps/indexesSequence.js +6 -4
  603. package/translations/maps/indexesSequence.mjs +6 -4
  604. package/translations/maps/linkedPhysicalIndexToValueMap.js +6 -4
  605. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +6 -4
  606. package/translations/maps/physicalIndexToValueMap.js +6 -4
  607. package/translations/maps/physicalIndexToValueMap.mjs +6 -4
  608. package/translations/maps/trimmingMap.js +5 -3
  609. package/translations/maps/trimmingMap.mjs +5 -3
  610. package/utils/dataStructures/linkedList.js +3 -3
  611. package/utils/dataStructures/linkedList.mjs +3 -3
  612. package/utils/dataStructures/queue.js +1 -1
  613. package/utils/dataStructures/queue.mjs +1 -1
  614. package/utils/dataStructures/stack.js +1 -1
  615. package/utils/dataStructures/stack.mjs +1 -1
  616. package/utils/dataStructures/tree.js +3 -3
  617. package/utils/dataStructures/tree.mjs +3 -3
  618. package/utils/dataStructures/uniqueMap.js +14 -1
  619. package/utils/dataStructures/uniqueMap.mjs +14 -1
  620. package/utils/dataStructures/uniqueSet.js +9 -0
  621. package/utils/dataStructures/uniqueSet.mjs +9 -0
  622. package/utils/ghostTable.js +14 -3
  623. package/utils/ghostTable.mjs +15 -4
  624. package/utils/interval.js +1 -1
  625. package/utils/interval.mjs +1 -1
  626. package/utils/samplesGenerator.js +1 -1
  627. package/utils/samplesGenerator.mjs +1 -1
  628. package/3rdparty/walkontable/src/core.js +0 -309
  629. package/3rdparty/walkontable/src/core.mjs +0 -293
  630. package/3rdparty/walkontable/src/overlay/registerer.js +0 -70
  631. package/3rdparty/walkontable/src/overlay/registerer.mjs +0 -57
  632. package/utils/keyStateObserver.js +0 -121
  633. package/utils/keyStateObserver.mjs +0 -103
@@ -27,21 +27,23 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
27
27
 
28
28
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
29
29
 
30
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
31
-
32
- import { addClass, hasClass, removeClass, getComputedStyle, getTrimmingContainer, innerWidth, innerHeight, offset, outerHeight, outerWidth } from "./../../../helpers/dom/element.mjs";
33
- import { stopImmediatePropagation } from "./../../../helpers/dom/event.mjs";
34
- import { objectEach } from "./../../../helpers/object.mjs";
35
- import { isMobileBrowser } from "./../../../helpers/browser.mjs";
36
- import EventManager from "./../../../eventManager.mjs";
37
- import CellCoords from "./cell/coords.mjs";
30
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
31
+
32
+ import { addClass, hasClass, removeClass, getComputedStyle, getTrimmingContainer, innerWidth, innerHeight, offset, outerHeight, outerWidth } from "../../../helpers/dom/element.mjs";
33
+ import { stopImmediatePropagation } from "../../../helpers/dom/event.mjs";
34
+ import { objectEach } from "../../../helpers/object.mjs";
35
+ import { isMobileBrowser } from "../../../helpers/browser.mjs";
38
36
  /**
39
37
  *
40
38
  */
41
39
 
42
40
  var Border = /*#__PURE__*/function () {
41
+ // TODO As this is an internal class, should be designed for using {Walkontable}. It uses the facade,
42
+ // TODO Con. Because the class is created on place where the instance reference comes from external origin.
43
+ // TODO Imho, the discrimination for handling both, facade and non-facade should be handled.
44
+
43
45
  /**
44
- * @param {Walkontable} wotInstance The Walkontable instance.
46
+ * @param {WalkontableFacade} wotInstance The Walkontable instance.
45
47
  * @param {object} settings The border settings.
46
48
  */
47
49
  function Border(wotInstance, settings) {
@@ -51,20 +53,20 @@ var Border = /*#__PURE__*/function () {
51
53
  return;
52
54
  }
53
55
 
54
- this.eventManager = new EventManager(wotInstance);
56
+ this.eventManager = wotInstance.eventManager;
55
57
  this.instance = wotInstance;
56
58
  this.wot = wotInstance;
57
59
  this.settings = settings;
58
60
  this.mouseDown = false;
59
61
  this.main = null;
60
62
  this.top = null;
61
- this.left = null;
62
63
  this.bottom = null;
63
- this.right = null;
64
+ this.start = null;
65
+ this.end = null;
64
66
  this.topStyle = null;
65
- this.leftStyle = null;
66
67
  this.bottomStyle = null;
67
- this.rightStyle = null;
68
+ this.startStyle = null;
69
+ this.endStyle = null;
68
70
  this.cornerDefaultStyle = {
69
71
  width: '6px',
70
72
  height: '6px',
@@ -203,7 +205,7 @@ var Border = /*#__PURE__*/function () {
203
205
  value: function createBorders(settings) {
204
206
  var rootDocument = this.wot.rootDocument;
205
207
  this.main = rootDocument.createElement('div');
206
- var borderDivs = ['top', 'left', 'bottom', 'right', 'corner'];
208
+ var borderDivs = ['top', 'start', 'bottom', 'end', 'corner'];
207
209
  var style = this.main.style;
208
210
  style.position = 'absolute';
209
211
  style.top = 0;
@@ -226,13 +228,13 @@ var Border = /*#__PURE__*/function () {
226
228
  }
227
229
 
228
230
  this.top = this.main.childNodes[0];
229
- this.left = this.main.childNodes[1];
231
+ this.start = this.main.childNodes[1];
230
232
  this.bottom = this.main.childNodes[2];
231
- this.right = this.main.childNodes[3];
233
+ this.end = this.main.childNodes[3];
232
234
  this.topStyle = this.top.style;
233
- this.leftStyle = this.left.style;
235
+ this.startStyle = this.start.style;
234
236
  this.bottomStyle = this.bottom.style;
235
- this.rightStyle = this.right.style;
237
+ this.endStyle = this.end.style;
236
238
  this.corner = this.main.childNodes[4];
237
239
  this.corner.className += ' corner';
238
240
  this.cornerStyle = this.corner.style;
@@ -268,22 +270,22 @@ var Border = /*#__PURE__*/function () {
268
270
 
269
271
  var rootDocument = this.wot.rootDocument;
270
272
  this.selectionHandles = {
271
- topLeft: rootDocument.createElement('DIV'),
272
- topLeftHitArea: rootDocument.createElement('DIV'),
273
- bottomRight: rootDocument.createElement('DIV'),
274
- bottomRightHitArea: rootDocument.createElement('DIV')
273
+ top: rootDocument.createElement('DIV'),
274
+ topHitArea: rootDocument.createElement('DIV'),
275
+ bottom: rootDocument.createElement('DIV'),
276
+ bottomHitArea: rootDocument.createElement('DIV')
275
277
  };
276
278
  var width = 10;
277
279
  var hitAreaWidth = 40;
278
- this.selectionHandles.topLeft.className = 'topLeftSelectionHandle';
279
- this.selectionHandles.topLeftHitArea.className = 'topLeftSelectionHandle-HitArea';
280
- this.selectionHandles.bottomRight.className = 'bottomRightSelectionHandle';
281
- this.selectionHandles.bottomRightHitArea.className = 'bottomRightSelectionHandle-HitArea';
280
+ this.selectionHandles.top.className = 'topSelectionHandle topLeftSelectionHandle';
281
+ this.selectionHandles.topHitArea.className = 'topSelectionHandle-HitArea topLeftSelectionHandle-HitArea';
282
+ this.selectionHandles.bottom.className = 'bottomSelectionHandle bottomRightSelectionHandle';
283
+ this.selectionHandles.bottomHitArea.className = 'bottomSelectionHandle-HitArea bottomRightSelectionHandle-HitArea';
282
284
  this.selectionHandles.styles = {
283
- topLeft: this.selectionHandles.topLeft.style,
284
- topLeftHitArea: this.selectionHandles.topLeftHitArea.style,
285
- bottomRight: this.selectionHandles.bottomRight.style,
286
- bottomRightHitArea: this.selectionHandles.bottomRightHitArea.style
285
+ top: this.selectionHandles.top.style,
286
+ topHitArea: this.selectionHandles.topHitArea.style,
287
+ bottom: this.selectionHandles.bottom.style,
288
+ bottomHitArea: this.selectionHandles.bottomHitArea.style
287
289
  };
288
290
  var hitAreaStyle = {
289
291
  position: 'absolute',
@@ -292,8 +294,8 @@ var Border = /*#__PURE__*/function () {
292
294
  'border-radius': "".concat(parseInt(hitAreaWidth / 1.5, 10), "px")
293
295
  };
294
296
  objectEach(hitAreaStyle, function (value, key) {
295
- _this3.selectionHandles.styles.bottomRightHitArea[key] = value;
296
- _this3.selectionHandles.styles.topLeftHitArea[key] = value;
297
+ _this3.selectionHandles.styles.bottomHitArea[key] = value;
298
+ _this3.selectionHandles.styles.topHitArea[key] = value;
297
299
  });
298
300
  var handleStyle = {
299
301
  position: 'absolute',
@@ -304,13 +306,13 @@ var Border = /*#__PURE__*/function () {
304
306
  border: '1px solid #4285c8'
305
307
  };
306
308
  objectEach(handleStyle, function (value, key) {
307
- _this3.selectionHandles.styles.bottomRight[key] = value;
308
- _this3.selectionHandles.styles.topLeft[key] = value;
309
+ _this3.selectionHandles.styles.bottom[key] = value;
310
+ _this3.selectionHandles.styles.top[key] = value;
309
311
  });
310
- this.main.appendChild(this.selectionHandles.topLeft);
311
- this.main.appendChild(this.selectionHandles.bottomRight);
312
- this.main.appendChild(this.selectionHandles.topLeftHitArea);
313
- this.main.appendChild(this.selectionHandles.bottomRightHitArea);
312
+ this.main.appendChild(this.selectionHandles.top);
313
+ this.main.appendChild(this.selectionHandles.bottom);
314
+ this.main.appendChild(this.selectionHandles.topHitArea);
315
+ this.main.appendChild(this.selectionHandles.bottomHitArea);
314
316
  }
315
317
  /**
316
318
  * @param {number} row The visual row index.
@@ -343,41 +345,43 @@ var Border = /*#__PURE__*/function () {
343
345
  }, {
344
346
  key: "updateMultipleSelectionHandlesPosition",
345
347
  value: function updateMultipleSelectionHandlesPosition(row, col, top, left, width, height) {
346
- var handleWidth = parseInt(this.selectionHandles.styles.topLeft.width, 10);
347
- var hitAreaWidth = parseInt(this.selectionHandles.styles.topLeftHitArea.width, 10);
348
- this.selectionHandles.styles.topLeft.top = "".concat(parseInt(top - handleWidth, 10), "px");
349
- this.selectionHandles.styles.topLeft.left = "".concat(parseInt(left - handleWidth, 10), "px");
350
- this.selectionHandles.styles.topLeftHitArea.top = "".concat(parseInt(top - hitAreaWidth / 4 * 3, 10), "px");
351
- this.selectionHandles.styles.topLeftHitArea.left = "".concat(parseInt(left - hitAreaWidth / 4 * 3, 10), "px");
352
- this.selectionHandles.styles.bottomRight.top = "".concat(parseInt(top + height, 10), "px");
353
- this.selectionHandles.styles.bottomRight.left = "".concat(parseInt(left + width, 10), "px");
354
- this.selectionHandles.styles.bottomRightHitArea.top = "".concat(parseInt(top + height - hitAreaWidth / 4, 10), "px");
355
- this.selectionHandles.styles.bottomRightHitArea.left = "".concat(parseInt(left + width - hitAreaWidth / 4, 10), "px");
348
+ var isRtl = this.wot.wtSettings.getSetting('rtlMode');
349
+ var inlinePosProperty = isRtl ? 'right' : 'left';
350
+ var handleWidth = parseInt(this.selectionHandles.styles.top.width, 10);
351
+ var hitAreaWidth = parseInt(this.selectionHandles.styles.topHitArea.width, 10);
352
+ this.selectionHandles.styles.top.top = "".concat(parseInt(top - handleWidth - 1, 10), "px");
353
+ this.selectionHandles.styles.top[inlinePosProperty] = "".concat(parseInt(left - handleWidth - 1, 10), "px");
354
+ this.selectionHandles.styles.topHitArea.top = "".concat(parseInt(top - hitAreaWidth / 4 * 3, 10), "px");
355
+ this.selectionHandles.styles.topHitArea[inlinePosProperty] = "".concat(parseInt(left - hitAreaWidth / 4 * 3, 10), "px");
356
+ this.selectionHandles.styles.bottom.top = "".concat(parseInt(top + height, 10), "px");
357
+ this.selectionHandles.styles.bottom[inlinePosProperty] = "".concat(parseInt(left + width, 10), "px");
358
+ this.selectionHandles.styles.bottomHitArea.top = "".concat(parseInt(top + height - hitAreaWidth / 4, 10), "px");
359
+ this.selectionHandles.styles.bottomHitArea[inlinePosProperty] = "".concat(parseInt(left + width - hitAreaWidth / 4, 10), "px");
356
360
 
357
361
  if (this.settings.border.cornerVisible && this.settings.border.cornerVisible()) {
358
- this.selectionHandles.styles.topLeft.display = 'block';
359
- this.selectionHandles.styles.topLeftHitArea.display = 'block';
362
+ this.selectionHandles.styles.top.display = 'block';
363
+ this.selectionHandles.styles.topHitArea.display = 'block';
360
364
 
361
365
  if (this.isPartRange(row, col)) {
362
- this.selectionHandles.styles.bottomRight.display = 'none';
363
- this.selectionHandles.styles.bottomRightHitArea.display = 'none';
366
+ this.selectionHandles.styles.bottom.display = 'none';
367
+ this.selectionHandles.styles.bottomHitArea.display = 'none';
364
368
  } else {
365
- this.selectionHandles.styles.bottomRight.display = 'block';
366
- this.selectionHandles.styles.bottomRightHitArea.display = 'block';
369
+ this.selectionHandles.styles.bottom.display = 'block';
370
+ this.selectionHandles.styles.bottomHitArea.display = 'block';
367
371
  }
368
372
  } else {
369
- this.selectionHandles.styles.topLeft.display = 'none';
370
- this.selectionHandles.styles.bottomRight.display = 'none';
371
- this.selectionHandles.styles.topLeftHitArea.display = 'none';
372
- this.selectionHandles.styles.bottomRightHitArea.display = 'none';
373
+ this.selectionHandles.styles.top.display = 'none';
374
+ this.selectionHandles.styles.bottom.display = 'none';
375
+ this.selectionHandles.styles.topHitArea.display = 'none';
376
+ this.selectionHandles.styles.bottomHitArea.display = 'none';
373
377
  }
374
378
 
375
- if (row === this.wot.wtSettings.getSetting('fixedRowsTop') || col === this.wot.wtSettings.getSetting('fixedColumnsLeft')) {
376
- this.selectionHandles.styles.topLeft.zIndex = '9999';
377
- this.selectionHandles.styles.topLeftHitArea.zIndex = '9999';
379
+ if (row === this.wot.wtSettings.getSetting('fixedRowsTop') || col === this.wot.wtSettings.getSetting('fixedColumnsStart')) {
380
+ this.selectionHandles.styles.top.zIndex = '9999';
381
+ this.selectionHandles.styles.topHitArea.zIndex = '9999';
378
382
  } else {
379
- this.selectionHandles.styles.topLeft.zIndex = '';
380
- this.selectionHandles.styles.topLeftHitArea.zIndex = '';
383
+ this.selectionHandles.styles.top.zIndex = '';
384
+ this.selectionHandles.styles.topHitArea.zIndex = '';
381
385
  }
382
386
  }
383
387
  /**
@@ -396,7 +400,8 @@ var Border = /*#__PURE__*/function () {
396
400
  var _this$wot = this.wot,
397
401
  wtTable = _this$wot.wtTable,
398
402
  rootDocument = _this$wot.rootDocument,
399
- rootWindow = _this$wot.rootWindow;
403
+ rootWindow = _this$wot.rootWindow; // todo refactoring: consider about using internal facade (it is given by external code)
404
+
400
405
  var fromRow;
401
406
  var toRow;
402
407
  var fromColumn;
@@ -450,16 +455,28 @@ var Border = /*#__PURE__*/function () {
450
455
  return;
451
456
  }
452
457
 
453
- var fromTD = wtTable.getCell(new CellCoords(fromRow, fromColumn));
458
+ var fromTD = wtTable.getCell(this.wot.createCellCoords(fromRow, fromColumn));
454
459
  var isMultiple = fromRow !== toRow || fromColumn !== toColumn;
455
- var toTD = isMultiple ? wtTable.getCell(new CellCoords(toRow, toColumn)) : fromTD;
460
+ var toTD = isMultiple ? wtTable.getCell(this.wot.createCellCoords(toRow, toColumn)) : fromTD;
456
461
  var fromOffset = offset(fromTD);
457
462
  var toOffset = isMultiple ? offset(toTD) : fromOffset;
458
463
  var containerOffset = offset(wtTable.TABLE);
464
+ var containerWidth = outerWidth(wtTable.TABLE);
459
465
  var minTop = fromOffset.top;
460
466
  var minLeft = fromOffset.left;
461
- var left = minLeft - containerOffset.left - 1;
462
- var width = toOffset.left + outerWidth(toTD) - minLeft;
467
+ var isRtl = this.wot.wtSettings.getSetting('rtlMode');
468
+ var inlineStartPos = 0;
469
+ var width = 0;
470
+
471
+ if (isRtl) {
472
+ var fromWidth = outerWidth(fromTD);
473
+ var gridRightPos = rootWindow.innerWidth - containerOffset.left - containerWidth;
474
+ width = minLeft + fromWidth - toOffset.left;
475
+ inlineStartPos = rootWindow.innerWidth - minLeft - fromWidth - gridRightPos - 1;
476
+ } else {
477
+ width = toOffset.left + outerWidth(toTD) - minLeft;
478
+ inlineStartPos = minLeft - containerOffset.left - 1;
479
+ }
463
480
 
464
481
  if (this.isEntireColumnSelected(fromRow, toRow)) {
465
482
  var modifiedValues = this.getDimensionsFromHeader('columns', fromColumn, toColumn, rowHeader, containerOffset);
@@ -469,7 +486,7 @@ var Border = /*#__PURE__*/function () {
469
486
  var _modifiedValues = _slicedToArray(modifiedValues, 3);
470
487
 
471
488
  fromTH = _modifiedValues[0];
472
- left = _modifiedValues[1];
489
+ inlineStartPos = _modifiedValues[1];
473
490
  width = _modifiedValues[2];
474
491
  }
475
492
 
@@ -506,28 +523,29 @@ var Border = /*#__PURE__*/function () {
506
523
  height = height > 0 ? height - 1 : 0;
507
524
  }
508
525
 
509
- if (parseInt(style.borderLeftWidth, 10) > 0) {
510
- left += 1;
526
+ if (parseInt(style[isRtl ? 'borderRightWidth' : 'borderLeftWidth'], 10) > 0) {
527
+ inlineStartPos += 1;
511
528
  width = width > 0 ? width - 1 : 0;
512
529
  }
513
530
 
531
+ var inlinePosProperty = isRtl ? 'right' : 'left';
514
532
  this.topStyle.top = "".concat(top, "px");
515
- this.topStyle.left = "".concat(left, "px");
533
+ this.topStyle[inlinePosProperty] = "".concat(inlineStartPos, "px");
516
534
  this.topStyle.width = "".concat(width, "px");
517
535
  this.topStyle.display = 'block';
518
- this.leftStyle.top = "".concat(top, "px");
519
- this.leftStyle.left = "".concat(left, "px");
520
- this.leftStyle.height = "".concat(height, "px");
521
- this.leftStyle.display = 'block';
536
+ this.startStyle.top = "".concat(top, "px");
537
+ this.startStyle[inlinePosProperty] = "".concat(inlineStartPos, "px");
538
+ this.startStyle.height = "".concat(height, "px");
539
+ this.startStyle.display = 'block';
522
540
  var delta = Math.floor(this.settings.border.width / 2);
523
541
  this.bottomStyle.top = "".concat(top + height - delta, "px");
524
- this.bottomStyle.left = "".concat(left, "px");
542
+ this.bottomStyle[inlinePosProperty] = "".concat(inlineStartPos, "px");
525
543
  this.bottomStyle.width = "".concat(width, "px");
526
544
  this.bottomStyle.display = 'block';
527
- this.rightStyle.top = "".concat(top, "px");
528
- this.rightStyle.left = "".concat(left + width - delta, "px");
529
- this.rightStyle.height = "".concat(height + 1, "px");
530
- this.rightStyle.display = 'block';
545
+ this.endStyle.top = "".concat(top, "px");
546
+ this.endStyle[inlinePosProperty] = "".concat(inlineStartPos + width - delta, "px");
547
+ this.endStyle.height = "".concat(height + 1, "px");
548
+ this.endStyle.display = 'block';
531
549
  var cornerVisibleSetting = this.settings.border.cornerVisible;
532
550
  cornerVisibleSetting = typeof cornerVisibleSetting === 'function' ? cornerVisibleSetting(this.settings.layerLevel) : cornerVisibleSetting;
533
551
  var hookResult = this.wot.getSetting('onModifyGetCellCoords', toRow, toColumn);
@@ -545,7 +563,7 @@ var Border = /*#__PURE__*/function () {
545
563
  this.cornerStyle.display = 'none';
546
564
  } else {
547
565
  this.cornerStyle.top = "".concat(top + height + this.cornerCenterPointOffset - 1, "px");
548
- this.cornerStyle.left = "".concat(left + width + this.cornerCenterPointOffset - 1, "px");
566
+ this.cornerStyle[inlinePosProperty] = "".concat(inlineStartPos + width + this.cornerCenterPointOffset - 1, "px");
549
567
  this.cornerStyle.borderRightWidth = this.cornerDefaultStyle.borderWidth;
550
568
  this.cornerStyle.width = this.cornerDefaultStyle.width; // Hide the fill handle, so the possible further adjustments won't force unneeded scrollbars.
551
569
 
@@ -559,13 +577,21 @@ var Border = /*#__PURE__*/function () {
559
577
 
560
578
  if (toColumn === this.wot.getSetting('totalColumns') - 1) {
561
579
  var toTdOffsetLeft = trimToWindow ? toTD.getBoundingClientRect().left : toTD.offsetLeft;
562
- var cornerRightEdge = toTdOffsetLeft + outerWidth(toTD) + parseInt(this.cornerDefaultStyle.width, 10) / 2;
563
- var cornerOverlappingContainer = cornerRightEdge >= innerWidth(trimmingContainer);
580
+ var cornerOverlappingContainer = false;
581
+ var cornerEdge = 0;
582
+
583
+ if (isRtl) {
584
+ cornerEdge = toTdOffsetLeft - parseInt(this.cornerDefaultStyle.width, 10) / 2;
585
+ cornerOverlappingContainer = cornerEdge < 0;
586
+ } else {
587
+ cornerEdge = toTdOffsetLeft + outerWidth(toTD) + parseInt(this.cornerDefaultStyle.width, 10) / 2;
588
+ cornerOverlappingContainer = cornerEdge >= innerWidth(trimmingContainer);
589
+ }
564
590
 
565
591
  if (cornerOverlappingContainer) {
566
- this.cornerStyle.left = "".concat(Math.floor(left + width + this.cornerCenterPointOffset - parseInt(this.cornerDefaultStyle.width, 10) / 2), "px"); // eslint-disable-line max-len
592
+ this.cornerStyle[inlinePosProperty] = "".concat(Math.floor(inlineStartPos + width + this.cornerCenterPointOffset - parseInt(this.cornerDefaultStyle.width, 10) / 2), "px"); // eslint-disable-line max-len
567
593
 
568
- this.cornerStyle.borderRightWidth = 0;
594
+ this.cornerStyle[isRtl ? 'borderLeftWidth' : 'borderRightWidth'] = 0;
569
595
  }
570
596
  }
571
597
 
@@ -586,7 +612,7 @@ var Border = /*#__PURE__*/function () {
586
612
  }
587
613
 
588
614
  if (isMobileBrowser()) {
589
- this.updateMultipleSelectionHandlesPosition(toRow, toColumn, top, left, width, height);
615
+ this.updateMultipleSelectionHandlesPosition(toRow, toColumn, top, inlineStartPos, width, height);
590
616
  }
591
617
  }
592
618
  /**
@@ -699,7 +725,7 @@ var Border = /*#__PURE__*/function () {
699
725
  * Change border style.
700
726
  *
701
727
  * @private
702
- * @param {string} borderElement Coordinate where add/remove border: top, right, bottom, left.
728
+ * @param {string} borderElement Coordinate where add/remove border: top, bottom, start, end.
703
729
  * @param {object} border The border object descriptor.
704
730
  */
705
731
 
@@ -722,7 +748,7 @@ var Border = /*#__PURE__*/function () {
722
748
  style.height = "".concat(borderStyle.width, "px");
723
749
  }
724
750
 
725
- if (borderElement === 'right' || borderElement === 'left') {
751
+ if (borderElement === 'start' || borderElement === 'end') {
726
752
  style.width = "".concat(borderStyle.width, "px");
727
753
  }
728
754
  }
@@ -731,7 +757,7 @@ var Border = /*#__PURE__*/function () {
731
757
  * Change border style to default.
732
758
  *
733
759
  * @private
734
- * @param {string} position The position type ("top", "bottom", "left", "right") to change.
760
+ * @param {string} position The position type ("top", "bottom", "start", "end") to change.
735
761
  */
736
762
 
737
763
  }, {
@@ -750,7 +776,7 @@ var Border = /*#__PURE__*/function () {
750
776
  * Toggle class 'hidden' to element.
751
777
  *
752
778
  * @private
753
- * @param {string} borderElement Coordinate where add/remove border: top, right, bottom, left.
779
+ * @param {string} borderElement Coordinate where add/remove border: top, bottom, start, end.
754
780
  * @param {boolean} [remove] Defines type of the action to perform.
755
781
  */
756
782
 
@@ -773,14 +799,14 @@ var Border = /*#__PURE__*/function () {
773
799
  key: "disappear",
774
800
  value: function disappear() {
775
801
  this.topStyle.display = 'none';
776
- this.leftStyle.display = 'none';
777
802
  this.bottomStyle.display = 'none';
778
- this.rightStyle.display = 'none';
803
+ this.startStyle.display = 'none';
804
+ this.endStyle.display = 'none';
779
805
  this.cornerStyle.display = 'none';
780
806
 
781
807
  if (isMobileBrowser()) {
782
- this.selectionHandles.styles.topLeft.display = 'none';
783
- this.selectionHandles.styles.bottomRight.display = 'none';
808
+ this.selectionHandles.styles.top.display = 'none';
809
+ this.selectionHandles.styles.bottom.display = 'none';
784
810
  }
785
811
  }
786
812
  /**
@@ -19,7 +19,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
19
19
 
20
20
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
21
21
 
22
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
22
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
23
23
 
24
24
  var privatePool = new WeakMap();
25
25
  /**
@@ -2,7 +2,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
2
2
 
3
3
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
4
4
 
5
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
5
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
6
6
 
7
7
  import "core-js/modules/es.array.iterator.js";
8
8
  import "core-js/modules/es.object.to-string.js";
@@ -19,7 +19,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
19
19
 
20
20
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
21
21
 
22
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
22
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
23
23
 
24
24
  var privatePool = new WeakMap();
25
25
  /**
@@ -2,7 +2,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
2
2
 
3
3
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
4
4
 
5
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
5
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
6
6
 
7
7
  import "core-js/modules/es.array.iterator.js";
8
8
  import "core-js/modules/es.object.to-string.js";
@@ -3,11 +3,39 @@
3
3
  exports.__esModule = true;
4
4
  exports.default = void 0;
5
5
 
6
+ require("core-js/modules/es.array.iterator.js");
7
+
8
+ require("core-js/modules/es.object.to-string.js");
9
+
10
+ require("core-js/modules/es.string.iterator.js");
11
+
12
+ require("core-js/modules/es.weak-map.js");
13
+
14
+ require("core-js/modules/web.dom-collections.iterator.js");
15
+
6
16
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7
17
 
8
18
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
9
19
 
10
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
20
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
21
+
22
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
23
+
24
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
25
+
26
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
27
+
28
+ function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
29
+
30
+ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
31
+
32
+ function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
33
+
34
+ function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
35
+
36
+ function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
37
+
38
+ var _isRtl = /*#__PURE__*/new WeakMap();
11
39
 
12
40
  /**
13
41
  * CellCoords holds cell coordinates (row, column) and few method to validate them and retrieve as an array or an object.
@@ -15,22 +43,36 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
15
43
  * @util
16
44
  */
17
45
  var CellCoords = /*#__PURE__*/function () {
46
+ /**
47
+ * Row index.
48
+ *
49
+ * @type {number}
50
+ */
51
+
52
+ /**
53
+ * Column index.
54
+ *
55
+ * @type {number}
56
+ */
57
+
58
+ /**
59
+ * @type {boolean}
60
+ */
18
61
  function CellCoords(row, column) {
62
+ var isRtl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
63
+
19
64
  _classCallCheck(this, CellCoords);
20
65
 
21
- /**
22
- * Row index.
23
- *
24
- * @type {number}
25
- */
26
- this.row = null;
27
- /**
28
- * Column index.
29
- *
30
- * @type {number}
31
- */
66
+ _defineProperty(this, "row", null);
67
+
68
+ _defineProperty(this, "col", null);
69
+
70
+ _classPrivateFieldInitSpec(this, _isRtl, {
71
+ writable: true,
72
+ value: false
73
+ });
32
74
 
33
- this.col = null;
75
+ _classPrivateFieldSet(this, _isRtl, isRtl);
34
76
 
35
77
  if (typeof row !== 'undefined' && typeof column !== 'undefined') {
36
78
  this.row = row;
@@ -86,7 +128,7 @@ var CellCoords = /*#__PURE__*/function () {
86
128
  }, {
87
129
  key: "isSouthEastOf",
88
130
  value: function isSouthEastOf(testedCoords) {
89
- return this.row >= testedCoords.row && this.col >= testedCoords.col;
131
+ return this.row >= testedCoords.row && (_classPrivateFieldGet(this, _isRtl) ? this.col <= testedCoords.col : this.col >= testedCoords.col);
90
132
  }
91
133
  /**
92
134
  * Checks if tested coordinates are positioned in north-east from this cell coordinates.
@@ -98,7 +140,7 @@ var CellCoords = /*#__PURE__*/function () {
98
140
  }, {
99
141
  key: "isNorthWestOf",
100
142
  value: function isNorthWestOf(testedCoords) {
101
- return this.row <= testedCoords.row && this.col <= testedCoords.col;
143
+ return this.row <= testedCoords.row && (_classPrivateFieldGet(this, _isRtl) ? this.col >= testedCoords.col : this.col <= testedCoords.col);
102
144
  }
103
145
  /**
104
146
  * Checks if tested coordinates are positioned in south-west from this cell coordinates.
@@ -110,7 +152,7 @@ var CellCoords = /*#__PURE__*/function () {
110
152
  }, {
111
153
  key: "isSouthWestOf",
112
154
  value: function isSouthWestOf(testedCoords) {
113
- return this.row >= testedCoords.row && this.col <= testedCoords.col;
155
+ return this.row >= testedCoords.row && (_classPrivateFieldGet(this, _isRtl) ? this.col >= testedCoords.col : this.col <= testedCoords.col);
114
156
  }
115
157
  /**
116
158
  * Checks if tested coordinates are positioned in north-east from this cell coordinates.
@@ -122,7 +164,7 @@ var CellCoords = /*#__PURE__*/function () {
122
164
  }, {
123
165
  key: "isNorthEastOf",
124
166
  value: function isNorthEastOf(testedCoords) {
125
- return this.row <= testedCoords.row && this.col >= testedCoords.col;
167
+ return this.row <= testedCoords.row && (_classPrivateFieldGet(this, _isRtl) ? this.col <= testedCoords.col : this.col >= testedCoords.col);
126
168
  }
127
169
  /**
128
170
  * Normalizes the coordinates to the nearest valid position. The coordinates that point
@@ -147,7 +189,7 @@ var CellCoords = /*#__PURE__*/function () {
147
189
  }, {
148
190
  key: "clone",
149
191
  value: function clone() {
150
- return new CellCoords(this.row, this.col);
192
+ return new CellCoords(this.row, this.col, _classPrivateFieldGet(this, _isRtl));
151
193
  }
152
194
  /**
153
195
  * Converts CellCoords to literal object with `row` and `col` properties.