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
@@ -55,8 +55,6 @@ var _array = require("../../helpers/array");
55
55
 
56
56
  var _eventManager = _interopRequireDefault(require("../../eventManager"));
57
57
 
58
- var _src = require("../../3rdparty/walkontable/src");
59
-
60
58
  var _utils = require("./utils");
61
59
 
62
60
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -87,13 +85,13 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
87
85
 
88
86
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
89
87
 
90
- function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
88
+ function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
91
89
 
92
90
  function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
93
91
 
94
92
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
95
93
 
96
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
94
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
97
95
 
98
96
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
99
97
 
@@ -103,7 +101,7 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
103
101
 
104
102
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
105
103
 
106
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
104
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
107
105
 
108
106
  _pluginHooks.default.getSingleton().register('modifyAutofillRange');
109
107
 
@@ -115,8 +113,11 @@ var PLUGIN_KEY = 'autofill';
115
113
  exports.PLUGIN_KEY = PLUGIN_KEY;
116
114
  var PLUGIN_PRIORITY = 20;
117
115
  exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
116
+ var SETTING_KEYS = ['fillHandle'];
118
117
  var INSERT_ROW_ALTER_ACTION_NAME = 'insert_row';
119
118
  var INTERVAL_FOR_ADDING_ROW = 200;
119
+ /* eslint-disable jsdoc/require-description-complete-sentence */
120
+
120
121
  /**
121
122
  * This plugin provides "drag-down" and "copy-down" functionalities, both operated using the small square in the right
122
123
  * bottom of the cell selection.
@@ -238,7 +239,11 @@ var Autofill = /*#__PURE__*/function (_BasePlugin) {
238
239
  _get(_getPrototypeOf(Autofill.prototype), "enablePlugin", this).call(this);
239
240
  }
240
241
  /**
241
- * Updates the plugin state. This method is executed when {@link Core#updateSettings} is invoked.
242
+ * Updates the plugin's state.
243
+ *
244
+ * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:
245
+ * - `autofill`
246
+ * - [`fillHandle`](@/api/options.md#fillhandle)
242
247
  */
243
248
 
244
249
  }, {
@@ -274,13 +279,13 @@ var Autofill = /*#__PURE__*/function (_BasePlugin) {
274
279
 
275
280
  var selection = this.hot.getSelectedRangeLast();
276
281
 
277
- var _selection$getTopLeft = selection.getTopLeftCorner(),
278
- startRow = _selection$getTopLeft.row,
279
- startCol = _selection$getTopLeft.col;
282
+ var _selection$getTopStar = selection.getTopStartCorner(),
283
+ startRow = _selection$getTopStar.row,
284
+ startCol = _selection$getTopStar.col;
280
285
 
281
- var _selection$getBottomR = selection.getBottomRightCorner(),
282
- endRow = _selection$getBottomR.row,
283
- endCol = _selection$getBottomR.col;
286
+ var _selection$getBottomE = selection.getBottomEndCorner(),
287
+ endRow = _selection$getBottomE.row,
288
+ endCol = _selection$getBottomE.col;
284
289
 
285
290
  var copyableRanges = this.hot.runHooks('modifyCopyableRange', [{
286
291
  startRow: startRow,
@@ -327,6 +332,8 @@ var Autofill = /*#__PURE__*/function (_BasePlugin) {
327
332
  }, {
328
333
  key: "fillIn",
329
334
  value: function fillIn() {
335
+ var _this4 = this;
336
+
330
337
  if (this.hot.selection.highlight.getFill().isEmpty()) {
331
338
  return false;
332
339
  } // Fill area may starts or ends with invisible cell. There won't be any information about it as highlighted
@@ -342,13 +349,15 @@ var Autofill = /*#__PURE__*/function (_BasePlugin) {
342
349
  fillEndColumn = _this$hot$selection$h2[3];
343
350
 
344
351
  var selectionRangeLast = this.hot.getSelectedRangeLast();
345
- var topLeftCorner = selectionRangeLast.getTopLeftCorner();
346
- var bottomRightCorner = selectionRangeLast.getBottomRightCorner();
352
+ var topStartCorner = selectionRangeLast.getTopStartCorner();
353
+ var bottomEndCorner = selectionRangeLast.getBottomEndCorner();
347
354
  this.resetSelectionOfDraggedArea();
348
- var cornersOfSelectedCells = [topLeftCorner.row, topLeftCorner.col, bottomRightCorner.row, bottomRightCorner.col];
349
- var cornersOfSelectionAndDragAreas = this.hot.runHooks('modifyAutofillRange', [Math.min(topLeftCorner.row, fillStartRow), Math.min(topLeftCorner.col, fillStartColumn), Math.max(bottomRightCorner.row, fillEndRow), Math.max(bottomRightCorner.col, fillEndColumn)], cornersOfSelectedCells);
355
+ var cornersOfSelectedCells = [topStartCorner.row, topStartCorner.col, bottomEndCorner.row, bottomEndCorner.col];
356
+ var cornersOfSelectionAndDragAreas = this.hot.runHooks('modifyAutofillRange', [Math.min(topStartCorner.row, fillStartRow), Math.min(topStartCorner.col, fillStartColumn), Math.max(bottomEndCorner.row, fillEndRow), Math.max(bottomEndCorner.col, fillEndColumn)], cornersOfSelectedCells);
350
357
 
351
- var _getDragDirectionAndR = (0, _utils.getDragDirectionAndRange)(cornersOfSelectedCells, cornersOfSelectionAndDragAreas),
358
+ var _getDragDirectionAndR = (0, _utils.getDragDirectionAndRange)(cornersOfSelectedCells, cornersOfSelectionAndDragAreas, function (row, column) {
359
+ return _this4.hot._createCellCoords(row, column);
360
+ }),
352
361
  directionOfDrag = _getDragDirectionAndR.directionOfDrag,
353
362
  startOfDragCoords = _getDragDirectionAndR.startOfDragCoords,
354
363
  endOfDragCoords = _getDragDirectionAndR.endOfDragCoords;
@@ -356,7 +365,9 @@ var Autofill = /*#__PURE__*/function (_BasePlugin) {
356
365
  if (startOfDragCoords && startOfDragCoords.row > -1 && startOfDragCoords.col > -1) {
357
366
  var selectionData = this.getSelectionData();
358
367
  var sourceRange = selectionRangeLast.clone();
359
- var targetRange = new _src.CellRange(startOfDragCoords, startOfDragCoords, endOfDragCoords);
368
+
369
+ var targetRange = this.hot._createCellRange(startOfDragCoords, startOfDragCoords, endOfDragCoords);
370
+
360
371
  var beforeAutofillHookResult = this.hot.runHooks('beforeAutofill', selectionData, sourceRange, targetRange, directionOfDrag);
361
372
 
362
373
  if (beforeAutofillHookResult === false) {
@@ -438,23 +449,23 @@ var Autofill = /*#__PURE__*/function (_BasePlugin) {
438
449
  key: "getCoordsOfDragAndDropBorders",
439
450
  value: function getCoordsOfDragAndDropBorders(coordsOfSelection) {
440
451
  var currentSelection = this.hot.getSelectedRangeLast();
441
- var bottomRightCorner = currentSelection.getBottomRightCorner();
452
+ var bottomRightCorner = currentSelection.getBottomEndCorner();
442
453
  var coords = coordsOfSelection;
443
454
 
444
455
  if (this.directions.includes(_utils.DIRECTIONS.vertical) && this.directions.includes(_utils.DIRECTIONS.horizontal)) {
445
- var topLeftCorner = currentSelection.getTopLeftCorner();
456
+ var topStartCorner = currentSelection.getTopStartCorner();
446
457
 
447
- if (bottomRightCorner.col <= coordsOfSelection.col || topLeftCorner.col >= coordsOfSelection.col) {
448
- coords = new _src.CellCoords(bottomRightCorner.row, coordsOfSelection.col);
458
+ if (bottomRightCorner.col <= coordsOfSelection.col || topStartCorner.col >= coordsOfSelection.col) {
459
+ coords = this.hot._createCellCoords(bottomRightCorner.row, coordsOfSelection.col);
449
460
  }
450
461
 
451
- if (bottomRightCorner.row < coordsOfSelection.row || topLeftCorner.row > coordsOfSelection.row) {
452
- coords = new _src.CellCoords(coordsOfSelection.row, bottomRightCorner.col);
462
+ if (bottomRightCorner.row < coordsOfSelection.row || topStartCorner.row > coordsOfSelection.row) {
463
+ coords = this.hot._createCellCoords(coordsOfSelection.row, bottomRightCorner.col);
453
464
  }
454
465
  } else if (this.directions.includes(_utils.DIRECTIONS.vertical)) {
455
- coords = new _src.CellCoords(coordsOfSelection.row, bottomRightCorner.col);
466
+ coords = this.hot._createCellCoords(coordsOfSelection.row, bottomRightCorner.col);
456
467
  } else if (this.directions.includes(_utils.DIRECTIONS.horizontal)) {
457
- coords = new _src.CellCoords(bottomRightCorner.row, coordsOfSelection.col);
468
+ coords = this.hot._createCellCoords(bottomRightCorner.row, coordsOfSelection.col);
458
469
  } else {
459
470
  // wrong direction
460
471
  return;
@@ -487,12 +498,12 @@ var Autofill = /*#__PURE__*/function (_BasePlugin) {
487
498
  }, {
488
499
  key: "addRow",
489
500
  value: function addRow() {
490
- var _this4 = this;
501
+ var _this5 = this;
491
502
 
492
503
  this.hot._registerTimeout(function () {
493
- _this4.hot.alter(INSERT_ROW_ALTER_ACTION_NAME, void 0, 1, "".concat(_this4.pluginName, ".fill"));
504
+ _this5.hot.alter(INSERT_ROW_ALTER_ACTION_NAME, void 0, 1, "".concat(_this5.pluginName, ".fill"));
494
505
 
495
- _this4.addingStarted = false;
506
+ _this5.addingStarted = false;
496
507
  }, INTERVAL_FOR_ADDING_ROW);
497
508
  }
498
509
  /**
@@ -561,7 +572,7 @@ var Autofill = /*#__PURE__*/function (_BasePlugin) {
561
572
  }, {
562
573
  key: "addSelectionFromStartAreaToSpecificRowIndex",
563
574
  value: function addSelectionFromStartAreaToSpecificRowIndex(selectStartArea, rowIndex) {
564
- this.hot.selection.highlight.getFill().clear().add(new _src.CellCoords(selectStartArea[0], selectStartArea[1])).add(new _src.CellCoords(rowIndex, selectStartArea[3])).commit();
575
+ this.hot.selection.highlight.getFill().clear().add(this.hot._createCellCoords(selectStartArea[0], selectStartArea[1])).add(this.hot._createCellCoords(rowIndex, selectStartArea[3])).commit();
565
576
  }
566
577
  /**
567
578
  * Sets selection based on passed corners.
@@ -649,14 +660,14 @@ var Autofill = /*#__PURE__*/function (_BasePlugin) {
649
660
  }, {
650
661
  key: "registerEvents",
651
662
  value: function registerEvents() {
652
- var _this5 = this;
663
+ var _this6 = this;
653
664
 
654
665
  var documentElement = this.hot.rootDocument.documentElement;
655
666
  this.eventManager.addEventListener(documentElement, 'mouseup', function () {
656
- return _this5.onMouseUp();
667
+ return _this6.onMouseUp();
657
668
  });
658
669
  this.eventManager.addEventListener(documentElement, 'mousemove', function (event) {
659
- return _this5.onMouseMove(event);
670
+ return _this6.onMouseMove(event);
660
671
  });
661
672
  }
662
673
  /**
@@ -787,6 +798,11 @@ var Autofill = /*#__PURE__*/function (_BasePlugin) {
787
798
  get: function get() {
788
799
  return PLUGIN_PRIORITY;
789
800
  }
801
+ }, {
802
+ key: "SETTING_KEYS",
803
+ get: function get() {
804
+ return [PLUGIN_KEY].concat(SETTING_KEYS);
805
+ }
790
806
  }]);
791
807
 
792
808
  return Autofill;
@@ -47,13 +47,13 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
47
47
 
48
48
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
49
49
 
50
- function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
50
+ function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
51
51
 
52
52
  function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
53
53
 
54
54
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
55
55
 
56
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
56
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
57
57
 
58
58
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
59
59
 
@@ -63,22 +63,24 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
63
63
 
64
64
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
65
65
 
66
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
66
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
67
67
 
68
68
  import { BasePlugin } from "../base/index.mjs";
69
69
  import Hooks from "../../pluginHooks.mjs";
70
70
  import { offset, outerHeight, outerWidth } from "../../helpers/dom/element.mjs";
71
71
  import { arrayEach, arrayMap } from "../../helpers/array.mjs";
72
72
  import EventManager from "../../eventManager.mjs";
73
- import { CellCoords, CellRange } from "../../3rdparty/walkontable/src/index.mjs";
74
73
  import { getDeltas, getDragDirectionAndRange, DIRECTIONS, getMappedFillHandleSetting } from "./utils.mjs";
75
74
  Hooks.getSingleton().register('modifyAutofillRange');
76
75
  Hooks.getSingleton().register('beforeAutofill');
77
76
  Hooks.getSingleton().register('afterAutofill');
78
77
  export var PLUGIN_KEY = 'autofill';
79
78
  export var PLUGIN_PRIORITY = 20;
79
+ var SETTING_KEYS = ['fillHandle'];
80
80
  var INSERT_ROW_ALTER_ACTION_NAME = 'insert_row';
81
81
  var INTERVAL_FOR_ADDING_ROW = 200;
82
+ /* eslint-disable jsdoc/require-description-complete-sentence */
83
+
82
84
  /**
83
85
  * This plugin provides "drag-down" and "copy-down" functionalities, both operated using the small square in the right
84
86
  * bottom of the cell selection.
@@ -200,7 +202,11 @@ export var Autofill = /*#__PURE__*/function (_BasePlugin) {
200
202
  _get(_getPrototypeOf(Autofill.prototype), "enablePlugin", this).call(this);
201
203
  }
202
204
  /**
203
- * Updates the plugin state. This method is executed when {@link Core#updateSettings} is invoked.
205
+ * Updates the plugin's state.
206
+ *
207
+ * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:
208
+ * - `autofill`
209
+ * - [`fillHandle`](@/api/options.md#fillhandle)
204
210
  */
205
211
 
206
212
  }, {
@@ -236,13 +242,13 @@ export var Autofill = /*#__PURE__*/function (_BasePlugin) {
236
242
 
237
243
  var selection = this.hot.getSelectedRangeLast();
238
244
 
239
- var _selection$getTopLeft = selection.getTopLeftCorner(),
240
- startRow = _selection$getTopLeft.row,
241
- startCol = _selection$getTopLeft.col;
245
+ var _selection$getTopStar = selection.getTopStartCorner(),
246
+ startRow = _selection$getTopStar.row,
247
+ startCol = _selection$getTopStar.col;
242
248
 
243
- var _selection$getBottomR = selection.getBottomRightCorner(),
244
- endRow = _selection$getBottomR.row,
245
- endCol = _selection$getBottomR.col;
249
+ var _selection$getBottomE = selection.getBottomEndCorner(),
250
+ endRow = _selection$getBottomE.row,
251
+ endCol = _selection$getBottomE.col;
246
252
 
247
253
  var copyableRanges = this.hot.runHooks('modifyCopyableRange', [{
248
254
  startRow: startRow,
@@ -289,6 +295,8 @@ export var Autofill = /*#__PURE__*/function (_BasePlugin) {
289
295
  }, {
290
296
  key: "fillIn",
291
297
  value: function fillIn() {
298
+ var _this4 = this;
299
+
292
300
  if (this.hot.selection.highlight.getFill().isEmpty()) {
293
301
  return false;
294
302
  } // Fill area may starts or ends with invisible cell. There won't be any information about it as highlighted
@@ -304,13 +312,15 @@ export var Autofill = /*#__PURE__*/function (_BasePlugin) {
304
312
  fillEndColumn = _this$hot$selection$h2[3];
305
313
 
306
314
  var selectionRangeLast = this.hot.getSelectedRangeLast();
307
- var topLeftCorner = selectionRangeLast.getTopLeftCorner();
308
- var bottomRightCorner = selectionRangeLast.getBottomRightCorner();
315
+ var topStartCorner = selectionRangeLast.getTopStartCorner();
316
+ var bottomEndCorner = selectionRangeLast.getBottomEndCorner();
309
317
  this.resetSelectionOfDraggedArea();
310
- var cornersOfSelectedCells = [topLeftCorner.row, topLeftCorner.col, bottomRightCorner.row, bottomRightCorner.col];
311
- var cornersOfSelectionAndDragAreas = this.hot.runHooks('modifyAutofillRange', [Math.min(topLeftCorner.row, fillStartRow), Math.min(topLeftCorner.col, fillStartColumn), Math.max(bottomRightCorner.row, fillEndRow), Math.max(bottomRightCorner.col, fillEndColumn)], cornersOfSelectedCells);
318
+ var cornersOfSelectedCells = [topStartCorner.row, topStartCorner.col, bottomEndCorner.row, bottomEndCorner.col];
319
+ var cornersOfSelectionAndDragAreas = this.hot.runHooks('modifyAutofillRange', [Math.min(topStartCorner.row, fillStartRow), Math.min(topStartCorner.col, fillStartColumn), Math.max(bottomEndCorner.row, fillEndRow), Math.max(bottomEndCorner.col, fillEndColumn)], cornersOfSelectedCells);
312
320
 
313
- var _getDragDirectionAndR = getDragDirectionAndRange(cornersOfSelectedCells, cornersOfSelectionAndDragAreas),
321
+ var _getDragDirectionAndR = getDragDirectionAndRange(cornersOfSelectedCells, cornersOfSelectionAndDragAreas, function (row, column) {
322
+ return _this4.hot._createCellCoords(row, column);
323
+ }),
314
324
  directionOfDrag = _getDragDirectionAndR.directionOfDrag,
315
325
  startOfDragCoords = _getDragDirectionAndR.startOfDragCoords,
316
326
  endOfDragCoords = _getDragDirectionAndR.endOfDragCoords;
@@ -318,7 +328,9 @@ export var Autofill = /*#__PURE__*/function (_BasePlugin) {
318
328
  if (startOfDragCoords && startOfDragCoords.row > -1 && startOfDragCoords.col > -1) {
319
329
  var selectionData = this.getSelectionData();
320
330
  var sourceRange = selectionRangeLast.clone();
321
- var targetRange = new CellRange(startOfDragCoords, startOfDragCoords, endOfDragCoords);
331
+
332
+ var targetRange = this.hot._createCellRange(startOfDragCoords, startOfDragCoords, endOfDragCoords);
333
+
322
334
  var beforeAutofillHookResult = this.hot.runHooks('beforeAutofill', selectionData, sourceRange, targetRange, directionOfDrag);
323
335
 
324
336
  if (beforeAutofillHookResult === false) {
@@ -400,23 +412,23 @@ export var Autofill = /*#__PURE__*/function (_BasePlugin) {
400
412
  key: "getCoordsOfDragAndDropBorders",
401
413
  value: function getCoordsOfDragAndDropBorders(coordsOfSelection) {
402
414
  var currentSelection = this.hot.getSelectedRangeLast();
403
- var bottomRightCorner = currentSelection.getBottomRightCorner();
415
+ var bottomRightCorner = currentSelection.getBottomEndCorner();
404
416
  var coords = coordsOfSelection;
405
417
 
406
418
  if (this.directions.includes(DIRECTIONS.vertical) && this.directions.includes(DIRECTIONS.horizontal)) {
407
- var topLeftCorner = currentSelection.getTopLeftCorner();
419
+ var topStartCorner = currentSelection.getTopStartCorner();
408
420
 
409
- if (bottomRightCorner.col <= coordsOfSelection.col || topLeftCorner.col >= coordsOfSelection.col) {
410
- coords = new CellCoords(bottomRightCorner.row, coordsOfSelection.col);
421
+ if (bottomRightCorner.col <= coordsOfSelection.col || topStartCorner.col >= coordsOfSelection.col) {
422
+ coords = this.hot._createCellCoords(bottomRightCorner.row, coordsOfSelection.col);
411
423
  }
412
424
 
413
- if (bottomRightCorner.row < coordsOfSelection.row || topLeftCorner.row > coordsOfSelection.row) {
414
- coords = new CellCoords(coordsOfSelection.row, bottomRightCorner.col);
425
+ if (bottomRightCorner.row < coordsOfSelection.row || topStartCorner.row > coordsOfSelection.row) {
426
+ coords = this.hot._createCellCoords(coordsOfSelection.row, bottomRightCorner.col);
415
427
  }
416
428
  } else if (this.directions.includes(DIRECTIONS.vertical)) {
417
- coords = new CellCoords(coordsOfSelection.row, bottomRightCorner.col);
429
+ coords = this.hot._createCellCoords(coordsOfSelection.row, bottomRightCorner.col);
418
430
  } else if (this.directions.includes(DIRECTIONS.horizontal)) {
419
- coords = new CellCoords(bottomRightCorner.row, coordsOfSelection.col);
431
+ coords = this.hot._createCellCoords(bottomRightCorner.row, coordsOfSelection.col);
420
432
  } else {
421
433
  // wrong direction
422
434
  return;
@@ -449,12 +461,12 @@ export var Autofill = /*#__PURE__*/function (_BasePlugin) {
449
461
  }, {
450
462
  key: "addRow",
451
463
  value: function addRow() {
452
- var _this4 = this;
464
+ var _this5 = this;
453
465
 
454
466
  this.hot._registerTimeout(function () {
455
- _this4.hot.alter(INSERT_ROW_ALTER_ACTION_NAME, void 0, 1, "".concat(_this4.pluginName, ".fill"));
467
+ _this5.hot.alter(INSERT_ROW_ALTER_ACTION_NAME, void 0, 1, "".concat(_this5.pluginName, ".fill"));
456
468
 
457
- _this4.addingStarted = false;
469
+ _this5.addingStarted = false;
458
470
  }, INTERVAL_FOR_ADDING_ROW);
459
471
  }
460
472
  /**
@@ -523,7 +535,7 @@ export var Autofill = /*#__PURE__*/function (_BasePlugin) {
523
535
  }, {
524
536
  key: "addSelectionFromStartAreaToSpecificRowIndex",
525
537
  value: function addSelectionFromStartAreaToSpecificRowIndex(selectStartArea, rowIndex) {
526
- this.hot.selection.highlight.getFill().clear().add(new CellCoords(selectStartArea[0], selectStartArea[1])).add(new CellCoords(rowIndex, selectStartArea[3])).commit();
538
+ this.hot.selection.highlight.getFill().clear().add(this.hot._createCellCoords(selectStartArea[0], selectStartArea[1])).add(this.hot._createCellCoords(rowIndex, selectStartArea[3])).commit();
527
539
  }
528
540
  /**
529
541
  * Sets selection based on passed corners.
@@ -611,14 +623,14 @@ export var Autofill = /*#__PURE__*/function (_BasePlugin) {
611
623
  }, {
612
624
  key: "registerEvents",
613
625
  value: function registerEvents() {
614
- var _this5 = this;
626
+ var _this6 = this;
615
627
 
616
628
  var documentElement = this.hot.rootDocument.documentElement;
617
629
  this.eventManager.addEventListener(documentElement, 'mouseup', function () {
618
- return _this5.onMouseUp();
630
+ return _this6.onMouseUp();
619
631
  });
620
632
  this.eventManager.addEventListener(documentElement, 'mousemove', function (event) {
621
- return _this5.onMouseMove(event);
633
+ return _this6.onMouseMove(event);
622
634
  });
623
635
  }
624
636
  /**
@@ -749,6 +761,11 @@ export var Autofill = /*#__PURE__*/function (_BasePlugin) {
749
761
  get: function get() {
750
762
  return PLUGIN_PRIORITY;
751
763
  }
764
+ }, {
765
+ key: "SETTING_KEYS",
766
+ get: function get() {
767
+ return [PLUGIN_KEY].concat(SETTING_KEYS);
768
+ }
752
769
  }]);
753
770
 
754
771
  return Autofill;
@@ -14,8 +14,6 @@ var _object = require("../../helpers/object");
14
14
 
15
15
  var _mixed = require("../../helpers/mixed");
16
16
 
17
- var _src = require("../../3rdparty/walkontable/src");
18
-
19
17
  var DIRECTIONS = {
20
18
  horizontal: 'horizontal',
21
19
  vertical: 'vertical'
@@ -71,31 +69,32 @@ function getDeltas(start, end, data, direction) {
71
69
  *
72
70
  * @param {Array} startSelection The coordinates where the selection starts.
73
71
  * @param {Array} endSelection The coordinates where the selection ends.
72
+ * @param {Function} cellCoordsFactory The function factory for CellCoords objects.
74
73
  * @returns {{direction: string, start: CellCoords, end: CellCoords}}
75
74
  */
76
75
 
77
76
 
78
- function getDragDirectionAndRange(startSelection, endSelection) {
77
+ function getDragDirectionAndRange(startSelection, endSelection, cellCoordsFactory) {
79
78
  var startOfDragCoords;
80
79
  var endOfDragCoords;
81
80
  var directionOfDrag;
82
81
 
83
82
  if (endSelection[0] === startSelection[0] && endSelection[1] < startSelection[1]) {
84
83
  directionOfDrag = 'left';
85
- startOfDragCoords = new _src.CellCoords(endSelection[0], endSelection[1]);
86
- endOfDragCoords = new _src.CellCoords(endSelection[2], startSelection[1] - 1);
84
+ startOfDragCoords = cellCoordsFactory(endSelection[0], endSelection[1]);
85
+ endOfDragCoords = cellCoordsFactory(endSelection[2], startSelection[1] - 1);
87
86
  } else if (endSelection[2] === startSelection[2] && endSelection[0] === startSelection[0] && endSelection[3] > startSelection[3]) {
88
87
  directionOfDrag = 'right';
89
- startOfDragCoords = new _src.CellCoords(endSelection[0], startSelection[3] + 1);
90
- endOfDragCoords = new _src.CellCoords(endSelection[2], endSelection[3]);
88
+ startOfDragCoords = cellCoordsFactory(endSelection[0], startSelection[3] + 1);
89
+ endOfDragCoords = cellCoordsFactory(endSelection[2], endSelection[3]);
91
90
  } else if (endSelection[0] < startSelection[0] && endSelection[1] === startSelection[1]) {
92
91
  directionOfDrag = 'up';
93
- startOfDragCoords = new _src.CellCoords(endSelection[0], endSelection[1]);
94
- endOfDragCoords = new _src.CellCoords(startSelection[0] - 1, endSelection[3]);
92
+ startOfDragCoords = cellCoordsFactory(endSelection[0], endSelection[1]);
93
+ endOfDragCoords = cellCoordsFactory(startSelection[0] - 1, endSelection[3]);
95
94
  } else if (endSelection[2] > startSelection[2] && endSelection[1] === startSelection[1]) {
96
95
  directionOfDrag = 'down';
97
- startOfDragCoords = new _src.CellCoords(startSelection[2] + 1, endSelection[1]);
98
- endOfDragCoords = new _src.CellCoords(endSelection[2], endSelection[3]);
96
+ startOfDragCoords = cellCoordsFactory(startSelection[2] + 1, endSelection[1]);
97
+ endOfDragCoords = cellCoordsFactory(endSelection[2], endSelection[3]);
99
98
  }
100
99
 
101
100
  if (startOfDragCoords) {
@@ -2,7 +2,6 @@ import "core-js/modules/es.array.index-of.js";
2
2
  import "core-js/modules/es.object.keys.js";
3
3
  import { isObject } from "../../helpers/object.mjs";
4
4
  import { isDefined } from "../../helpers/mixed.mjs";
5
- import { CellCoords } from "../../3rdparty/walkontable/src/index.mjs";
6
5
  export var DIRECTIONS = {
7
6
  horizontal: 'horizontal',
8
7
  vertical: 'vertical'
@@ -56,30 +55,31 @@ export function getDeltas(start, end, data, direction) {
56
55
  *
57
56
  * @param {Array} startSelection The coordinates where the selection starts.
58
57
  * @param {Array} endSelection The coordinates where the selection ends.
58
+ * @param {Function} cellCoordsFactory The function factory for CellCoords objects.
59
59
  * @returns {{direction: string, start: CellCoords, end: CellCoords}}
60
60
  */
61
61
 
62
- export function getDragDirectionAndRange(startSelection, endSelection) {
62
+ export function getDragDirectionAndRange(startSelection, endSelection, cellCoordsFactory) {
63
63
  var startOfDragCoords;
64
64
  var endOfDragCoords;
65
65
  var directionOfDrag;
66
66
 
67
67
  if (endSelection[0] === startSelection[0] && endSelection[1] < startSelection[1]) {
68
68
  directionOfDrag = 'left';
69
- startOfDragCoords = new CellCoords(endSelection[0], endSelection[1]);
70
- endOfDragCoords = new CellCoords(endSelection[2], startSelection[1] - 1);
69
+ startOfDragCoords = cellCoordsFactory(endSelection[0], endSelection[1]);
70
+ endOfDragCoords = cellCoordsFactory(endSelection[2], startSelection[1] - 1);
71
71
  } else if (endSelection[2] === startSelection[2] && endSelection[0] === startSelection[0] && endSelection[3] > startSelection[3]) {
72
72
  directionOfDrag = 'right';
73
- startOfDragCoords = new CellCoords(endSelection[0], startSelection[3] + 1);
74
- endOfDragCoords = new CellCoords(endSelection[2], endSelection[3]);
73
+ startOfDragCoords = cellCoordsFactory(endSelection[0], startSelection[3] + 1);
74
+ endOfDragCoords = cellCoordsFactory(endSelection[2], endSelection[3]);
75
75
  } else if (endSelection[0] < startSelection[0] && endSelection[1] === startSelection[1]) {
76
76
  directionOfDrag = 'up';
77
- startOfDragCoords = new CellCoords(endSelection[0], endSelection[1]);
78
- endOfDragCoords = new CellCoords(startSelection[0] - 1, endSelection[3]);
77
+ startOfDragCoords = cellCoordsFactory(endSelection[0], endSelection[1]);
78
+ endOfDragCoords = cellCoordsFactory(startSelection[0] - 1, endSelection[3]);
79
79
  } else if (endSelection[2] > startSelection[2] && endSelection[1] === startSelection[1]) {
80
80
  directionOfDrag = 'down';
81
- startOfDragCoords = new CellCoords(startSelection[2] + 1, endSelection[1]);
82
- endOfDragCoords = new CellCoords(endSelection[2], endSelection[3]);
81
+ startOfDragCoords = cellCoordsFactory(startSelection[2] + 1, endSelection[1]);
82
+ endOfDragCoords = cellCoordsFactory(endSelection[2], endSelection[3]);
83
83
  }
84
84
 
85
85
  if (startOfDragCoords) {
@@ -1,8 +1,14 @@
1
1
  import Core from '../../core';
2
+ import { Events } from '../../pluginHooks';
2
3
 
3
4
  export class BasePlugin {
5
+ readonly hot: Core;
6
+
4
7
  constructor(hotInstance: Core);
5
8
 
9
+ static get PLUGIN_KEY(): string;
10
+ static get SETTING_KEYS(): string[] | boolean;
11
+
6
12
  pluginName: string;
7
13
  pluginsInitializedCallbacks: string[];
8
14
  isPluginsReady: boolean;
@@ -13,8 +19,8 @@ export class BasePlugin {
13
19
  enablePlugin(): void;
14
20
  disablePlugin(): void;
15
21
  updatePlugin(): void;
16
- addHook(name: string, callback: () => void): void;
17
- removeHooks(name: string): void;
22
+ addHook<K extends keyof Events>(key: K, callback: Events[K] | Array<Events[K]>): void;
23
+ removeHooks(name: keyof Events): void;
18
24
  clearHooks(): void;
19
25
  callOnPluginsReady(callback: () => void): void;
20
26
  destroy(): void;