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
@@ -41,6 +41,8 @@ require("core-js/modules/es.array.index-of.js");
41
41
 
42
42
  require("core-js/modules/es.array.splice.js");
43
43
 
44
+ require("core-js/modules/es.weak-set.js");
45
+
44
46
  var _object = require("../../helpers/object");
45
47
 
46
48
  var _array = require("../../helpers/array");
@@ -71,7 +73,13 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
71
73
 
72
74
  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); } }
73
75
 
74
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
76
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
77
+
78
+ function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
79
+
80
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
81
+
82
+ function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
75
83
 
76
84
  var DEPS_TYPE_CHECKERS = new Map([['plugin', _registry.hasPlugin], ['cell-type', _registry2.hasCellType], ['editor', _registry3.hasEditor], ['renderer', _registry4.hasRenderer], ['validator', _registry5.hasValidator]]);
77
85
  var PLUGIN_KEY = 'base';
@@ -81,8 +89,11 @@ var missingDependeciesMsgs = [];
81
89
  var initializedPlugins = null;
82
90
  /**
83
91
  * @util
92
+ * @property {Core} hot Handsontable instance.
84
93
  */
85
94
 
95
+ var _isRelevantToSettings = /*#__PURE__*/new WeakSet();
96
+
86
97
  var BasePlugin = /*#__PURE__*/function () {
87
98
  /**
88
99
  * @param {object} hotInstance Handsontable instance.
@@ -92,6 +103,8 @@ var BasePlugin = /*#__PURE__*/function () {
92
103
 
93
104
  _classCallCheck(this, BasePlugin);
94
105
 
106
+ _classPrivateMethodInitSpec(this, _isRelevantToSettings);
107
+
95
108
  /**
96
109
  * Handsontable instance.
97
110
  *
@@ -271,14 +284,24 @@ var BasePlugin = /*#__PURE__*/function () {
271
284
  }
272
285
  }
273
286
  /**
274
- * On after plugins initialized listener.
287
+ * Check if any of the keys defined in `SETTING_KEYS` configuration of the plugin is present in the provided
288
+ * config object, or if the `SETTING_KEYS` configuration states that the plugin is relevant to the config object
289
+ * regardless of its contents.
275
290
  *
276
291
  * @private
292
+ * @param {Handsontable.DefaultSettings} settings The config object passed to `updateSettings`.
293
+ * @returns {boolean}
277
294
  */
278
295
 
279
296
  }, {
280
297
  key: "onAfterPluginsInitialized",
281
- value: function onAfterPluginsInitialized() {
298
+ value:
299
+ /**
300
+ * On after plugins initialized listener.
301
+ *
302
+ * @private
303
+ */
304
+ function onAfterPluginsInitialized() {
282
305
  (0, _array.arrayEach)(this.pluginsInitializedCallbacks, function (callback) {
283
306
  return callback();
284
307
  });
@@ -295,6 +318,8 @@ var BasePlugin = /*#__PURE__*/function () {
295
318
  }, {
296
319
  key: "onUpdateSettings",
297
320
  value: function onUpdateSettings(newSettings) {
321
+ var relevantToSettings = _classPrivateMethodGet(this, _isRelevantToSettings, _isRelevantToSettings2).call(this, newSettings);
322
+
298
323
  if (this.isEnabled) {
299
324
  if (this.enabled && !this.isEnabled()) {
300
325
  this.disablePlugin();
@@ -304,7 +329,7 @@ var BasePlugin = /*#__PURE__*/function () {
304
329
  this.enablePlugin();
305
330
  }
306
331
 
307
- if (this.enabled && this.isEnabled()) {
332
+ if (this.enabled && this.isEnabled() && relevantToSettings) {
308
333
  this.updatePlugin(newSettings);
309
334
  }
310
335
  }
@@ -345,9 +370,47 @@ var BasePlugin = /*#__PURE__*/function () {
345
370
  get: function get() {
346
371
  return PLUGIN_KEY;
347
372
  }
373
+ /**
374
+ * The `SETTING_KEYS` getter defines the keys that, when present in the config object, trigger the plugin update
375
+ * after the `updateSettings` calls.
376
+ * - When it returns `true`, the plugin updates after all `updateSettings` calls, regardless of the contents of the
377
+ * config object.
378
+ * - When it returns `false`, the plugin never updates on `updateSettings` calls.
379
+ *
380
+ * @returns {string[] | boolean}
381
+ */
382
+
383
+ }, {
384
+ key: "SETTING_KEYS",
385
+ get: function get() {
386
+ return [this.PLUGIN_KEY];
387
+ }
348
388
  }]);
349
389
 
350
390
  return BasePlugin;
351
391
  }();
352
392
 
353
- exports.BasePlugin = BasePlugin;
393
+ exports.BasePlugin = BasePlugin;
394
+
395
+ function _isRelevantToSettings2(settings) {
396
+ if (!settings) {
397
+ return false;
398
+ }
399
+
400
+ var settingKeys = this.constructor.SETTING_KEYS; // If SETTING_KEYS is declared as `true` -> update the plugin regardless of the settings declared in
401
+ // `updateSettings`.
402
+ // If SETTING_KEYS is declared as `false` -> DON'T update the plugin regardless of the settings declared in
403
+ // `updateSettings`.
404
+
405
+ if (typeof settingKeys === 'boolean') {
406
+ return settingKeys;
407
+ }
408
+
409
+ for (var i = 0; i < settingKeys.length; i++) {
410
+ if (settings[settingKeys[i]] !== void 0) {
411
+ return true;
412
+ }
413
+ }
414
+
415
+ return false;
416
+ }
@@ -14,7 +14,13 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
14
14
 
15
15
  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); } }
16
16
 
17
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
17
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
18
+
19
+ function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
20
+
21
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
22
+
23
+ function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
18
24
 
19
25
  import "core-js/modules/es.array.iterator.js";
20
26
  import "core-js/modules/es.map.js";
@@ -29,6 +35,7 @@ import "core-js/modules/es.array.concat.js";
29
35
  import "core-js/modules/es.array.join.js";
30
36
  import "core-js/modules/es.array.index-of.js";
31
37
  import "core-js/modules/es.array.splice.js";
38
+ import "core-js/modules/es.weak-set.js";
32
39
  import "core-js/modules/es.symbol.js";
33
40
  import "core-js/modules/es.symbol.description.js";
34
41
  import "core-js/modules/es.symbol.iterator.js";
@@ -49,8 +56,11 @@ var missingDependeciesMsgs = [];
49
56
  var initializedPlugins = null;
50
57
  /**
51
58
  * @util
59
+ * @property {Core} hot Handsontable instance.
52
60
  */
53
61
 
62
+ var _isRelevantToSettings = /*#__PURE__*/new WeakSet();
63
+
54
64
  export var BasePlugin = /*#__PURE__*/function () {
55
65
  /**
56
66
  * @param {object} hotInstance Handsontable instance.
@@ -60,6 +70,8 @@ export var BasePlugin = /*#__PURE__*/function () {
60
70
 
61
71
  _classCallCheck(this, BasePlugin);
62
72
 
73
+ _classPrivateMethodInitSpec(this, _isRelevantToSettings);
74
+
63
75
  /**
64
76
  * Handsontable instance.
65
77
  *
@@ -239,14 +251,24 @@ export var BasePlugin = /*#__PURE__*/function () {
239
251
  }
240
252
  }
241
253
  /**
242
- * On after plugins initialized listener.
254
+ * Check if any of the keys defined in `SETTING_KEYS` configuration of the plugin is present in the provided
255
+ * config object, or if the `SETTING_KEYS` configuration states that the plugin is relevant to the config object
256
+ * regardless of its contents.
243
257
  *
244
258
  * @private
259
+ * @param {Handsontable.DefaultSettings} settings The config object passed to `updateSettings`.
260
+ * @returns {boolean}
245
261
  */
246
262
 
247
263
  }, {
248
264
  key: "onAfterPluginsInitialized",
249
- value: function onAfterPluginsInitialized() {
265
+ value:
266
+ /**
267
+ * On after plugins initialized listener.
268
+ *
269
+ * @private
270
+ */
271
+ function onAfterPluginsInitialized() {
250
272
  arrayEach(this.pluginsInitializedCallbacks, function (callback) {
251
273
  return callback();
252
274
  });
@@ -263,6 +285,8 @@ export var BasePlugin = /*#__PURE__*/function () {
263
285
  }, {
264
286
  key: "onUpdateSettings",
265
287
  value: function onUpdateSettings(newSettings) {
288
+ var relevantToSettings = _classPrivateMethodGet(this, _isRelevantToSettings, _isRelevantToSettings2).call(this, newSettings);
289
+
266
290
  if (this.isEnabled) {
267
291
  if (this.enabled && !this.isEnabled()) {
268
292
  this.disablePlugin();
@@ -272,7 +296,7 @@ export var BasePlugin = /*#__PURE__*/function () {
272
296
  this.enablePlugin();
273
297
  }
274
298
 
275
- if (this.enabled && this.isEnabled()) {
299
+ if (this.enabled && this.isEnabled() && relevantToSettings) {
276
300
  this.updatePlugin(newSettings);
277
301
  }
278
302
  }
@@ -313,7 +337,45 @@ export var BasePlugin = /*#__PURE__*/function () {
313
337
  get: function get() {
314
338
  return PLUGIN_KEY;
315
339
  }
340
+ /**
341
+ * The `SETTING_KEYS` getter defines the keys that, when present in the config object, trigger the plugin update
342
+ * after the `updateSettings` calls.
343
+ * - When it returns `true`, the plugin updates after all `updateSettings` calls, regardless of the contents of the
344
+ * config object.
345
+ * - When it returns `false`, the plugin never updates on `updateSettings` calls.
346
+ *
347
+ * @returns {string[] | boolean}
348
+ */
349
+
350
+ }, {
351
+ key: "SETTING_KEYS",
352
+ get: function get() {
353
+ return [this.PLUGIN_KEY];
354
+ }
316
355
  }]);
317
356
 
318
357
  return BasePlugin;
319
- }();
358
+ }();
359
+
360
+ function _isRelevantToSettings2(settings) {
361
+ if (!settings) {
362
+ return false;
363
+ }
364
+
365
+ var settingKeys = this.constructor.SETTING_KEYS; // If SETTING_KEYS is declared as `true` -> update the plugin regardless of the settings declared in
366
+ // `updateSettings`.
367
+ // If SETTING_KEYS is declared as `false` -> DON'T update the plugin regardless of the settings declared in
368
+ // `updateSettings`.
369
+
370
+ if (typeof settingKeys === 'boolean') {
371
+ return settingKeys;
372
+ }
373
+
374
+ for (var i = 0; i < settingKeys.length; i++) {
375
+ if (settings[settingKeys[i]] !== void 0) {
376
+ return true;
377
+ }
378
+ }
379
+
380
+ return false;
381
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
4
 
5
5
  require("core-js/modules/es.object.set-prototype-of.js");
6
6
 
@@ -43,13 +43,13 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
43
43
 
44
44
  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); } }
45
45
 
46
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
46
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
47
47
 
48
- function _get(target, property, receiver) { 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(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
48
+ 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); }
49
49
 
50
50
  function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
51
51
 
52
- 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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }
52
+ 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); }
53
53
 
54
54
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
55
55
 
@@ -1,16 +1,16 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
2
 
3
3
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
4
4
 
5
5
  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); } }
6
6
 
7
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
7
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
8
8
 
9
- function _get(target, property, receiver) { 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(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
9
+ 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); }
10
10
 
11
11
  function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
12
12
 
13
- 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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }
13
+ 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); }
14
14
 
15
15
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
16
16
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
4
 
5
5
  require("core-js/modules/es.object.to-string.js");
6
6
 
@@ -35,13 +35,13 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
35
35
 
36
36
  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); } }
37
37
 
38
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
38
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
39
39
 
40
- function _get(target, property, receiver) { 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(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
40
+ 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); }
41
41
 
42
42
  function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
43
43
 
44
- 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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }
44
+ 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); }
45
45
 
46
46
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
47
47
 
@@ -1,4 +1,4 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
2
 
3
3
  import "core-js/modules/es.object.set-prototype-of.js";
4
4
  import "core-js/modules/es.object.get-prototype-of.js";
@@ -17,13 +17,13 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
17
17
 
18
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); } }
19
19
 
20
- 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
21
 
22
- function _get(target, property, receiver) { 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(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
22
+ 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); }
23
23
 
24
24
  function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
25
25
 
26
- 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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }
26
+ 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); }
27
27
 
28
28
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
29
29
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
4
 
5
5
  require("core-js/modules/es.object.to-string.js");
6
6
 
@@ -55,13 +55,13 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
55
55
 
56
56
  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); } }
57
57
 
58
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
58
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
59
59
 
60
- function _get(target, property, receiver) { 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(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
60
+ 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); }
61
61
 
62
62
  function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
63
63
 
64
- 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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }
64
+ 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); }
65
65
 
66
66
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
67
67
 
@@ -1,4 +1,4 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
2
 
3
3
  import "core-js/modules/es.object.set-prototype-of.js";
4
4
  import "core-js/modules/es.object.get-prototype-of.js";
@@ -33,13 +33,13 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
33
33
 
34
34
  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); } }
35
35
 
36
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
36
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
37
37
 
38
- function _get(target, property, receiver) { 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(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
38
+ 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); }
39
39
 
40
40
  function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
41
41
 
42
- 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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }
42
+ 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); }
43
43
 
44
44
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
45
45
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
4
 
5
5
  require("core-js/modules/es.object.set-prototype-of.js");
6
6
 
@@ -79,13 +79,13 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
79
79
 
80
80
  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); } }
81
81
 
82
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
82
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
83
83
 
84
- function _get(target, property, receiver) { 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(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
84
+ 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); }
85
85
 
86
86
  function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
87
87
 
88
- 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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }
88
+ 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); }
89
89
 
90
90
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
91
91
 
@@ -119,6 +119,7 @@ var PLUGIN_KEY = 'collapsibleColumns';
119
119
  exports.PLUGIN_KEY = PLUGIN_KEY;
120
120
  var PLUGIN_PRIORITY = 290;
121
121
  exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
122
+ var SETTING_KEYS = ['nestedHeaders'];
122
123
  var actionDictionary = new Map([['collapse', {
123
124
  hideColumn: true,
124
125
  beforeHook: 'beforeColumnCollapse',
@@ -128,6 +129,8 @@ var actionDictionary = new Map([['collapse', {
128
129
  beforeHook: 'beforeColumnExpand',
129
130
  afterHook: 'afterColumnExpand'
130
131
  }]]);
132
+ /* eslint-disable jsdoc/require-description-complete-sentence */
133
+
131
134
  /**
132
135
  * @plugin CollapsibleColumns
133
136
  * @class CollapsibleColumns
@@ -257,7 +260,11 @@ var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
257
260
  this.updatePlugin();
258
261
  }
259
262
  /**
260
- * Updates the plugin state. This method is executed when {@link Core#updateSettings} is invoked.
263
+ * Updates the plugin's state.
264
+ *
265
+ * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:
266
+ * - [`collapsibleColumns`](@/api/options.md#collapsiblecolumns)
267
+ * - [`nestedHeaders`](@/api/options.md#nestedheaders)
261
268
  */
262
269
 
263
270
  }, {
@@ -280,6 +287,11 @@ var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
280
287
  };
281
288
  });
282
289
  } else if (Array.isArray(collapsibleColumns)) {
290
+ this.headerStateManager.mapState(function () {
291
+ return {
292
+ collapsible: false
293
+ };
294
+ });
283
295
  this.headerStateManager.mergeStateWith(collapsibleColumns);
284
296
  }
285
297
  }
@@ -315,10 +327,11 @@ var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
315
327
  return;
316
328
  }
317
329
 
318
- var headerLevels = this.hot.view.wt.getSetting('columnHeaders').length;
319
- var mainHeaders = this.hot.view.wt.wtTable.THEAD;
320
- var topHeaders = this.hot.view.wt.wtOverlays.topOverlay.clone.wtTable.THEAD;
321
- var topLeftCornerHeaders = this.hot.view.wt.wtOverlays.topLeftCornerOverlay ? this.hot.view.wt.wtOverlays.topLeftCornerOverlay.clone.wtTable.THEAD : null;
330
+ var headerLevels = this.hot.view._wt.getSetting('columnHeaders').length;
331
+
332
+ var mainHeaders = this.hot.view._wt.wtTable.THEAD;
333
+ var topHeaders = this.hot.view._wt.wtOverlays.topOverlay.clone.wtTable.THEAD;
334
+ var topLeftCornerHeaders = this.hot.view._wt.wtOverlays.topInlineStartCornerOverlay ? this.hot.view._wt.wtOverlays.topInlineStartCornerOverlay.clone.wtTable.THEAD : null;
322
335
 
323
336
  var removeButton = function removeButton(button) {
324
337
  if (button) {
@@ -379,13 +392,14 @@ var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
379
392
  value: function toggleAllCollapsibleSections(action) {
380
393
  var _this3 = this;
381
394
 
382
- var coords = this.headerStateManager.mapNodes(function (_ref) {
383
- var collapsible = _ref.collapsible,
384
- origColspan = _ref.origColspan,
385
- headerLevel = _ref.headerLevel,
386
- columnIndex = _ref.columnIndex;
395
+ var coords = this.headerStateManager.mapNodes(function (headerSettings) {
396
+ var collapsible = headerSettings.collapsible,
397
+ origColspan = headerSettings.origColspan,
398
+ headerLevel = headerSettings.headerLevel,
399
+ columnIndex = headerSettings.columnIndex,
400
+ isCollapsed = headerSettings.isCollapsed;
387
401
 
388
- if (collapsible === true && origColspan > 1) {
402
+ if (collapsible === true && origColspan > 1 && (isCollapsed && action === 'expand' || !isCollapsed && action === 'collapse')) {
389
403
  return {
390
404
  row: _this3.headerStateManager.levelToRowCoords(headerLevel),
391
405
  col: columnIndex
@@ -437,20 +451,20 @@ var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
437
451
  } // Ignore coordinates which points to the cells range.
438
452
 
439
453
 
440
- var filteredCoords = (0, _array.arrayFilter)(coords, function (_ref2) {
441
- var row = _ref2.row;
454
+ var filteredCoords = (0, _array.arrayFilter)(coords, function (_ref) {
455
+ var row = _ref.row;
442
456
  return row < 0;
443
457
  });
444
458
  var isActionPossible = filteredCoords.length > 0;
445
- (0, _array.arrayEach)(filteredCoords, function (_ref3) {
459
+ (0, _array.arrayEach)(filteredCoords, function (_ref2) {
446
460
  var _this4$headerStateMan;
447
461
 
448
- var row = _ref3.row,
449
- column = _ref3.col;
462
+ var row = _ref2.row,
463
+ column = _ref2.col;
450
464
 
451
- var _ref4 = (_this4$headerStateMan = _this4.headerStateManager.getHeaderSettings(row, column)) !== null && _this4$headerStateMan !== void 0 ? _this4$headerStateMan : {},
452
- collapsible = _ref4.collapsible,
453
- isCollapsed = _ref4.isCollapsed;
465
+ var _ref3 = (_this4$headerStateMan = _this4.headerStateManager.getHeaderSettings(row, column)) !== null && _this4$headerStateMan !== void 0 ? _this4$headerStateMan : {},
466
+ collapsible = _ref3.collapsible,
467
+ isCollapsed = _ref3.isCollapsed;
454
468
 
455
469
  if (!collapsible || isCollapsed && action === 'collapse' || !isCollapsed && action === 'expand') {
456
470
  isActionPossible = false;
@@ -461,9 +475,9 @@ var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
461
475
  var affectedColumnsIndexes = [];
462
476
 
463
477
  if (isActionPossible) {
464
- (0, _array.arrayEach)(filteredCoords, function (_ref5) {
465
- var row = _ref5.row,
466
- column = _ref5.col;
478
+ (0, _array.arrayEach)(filteredCoords, function (_ref4) {
479
+ var row = _ref4.row,
480
+ column = _ref4.col;
467
481
 
468
482
  var _this4$headerStateMan2 = _this4.headerStateManager.triggerNodeModification(action, row, column),
469
483
  colspanCompensation = _this4$headerStateMan2.colspanCompensation,
@@ -564,11 +578,11 @@ var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
564
578
  var THEAD = TR.parentNode;
565
579
  var row = -1 * THEAD.childNodes.length + Array.prototype.indexOf.call(THEAD.childNodes, TR);
566
580
 
567
- var _ref6 = (_this$headerStateMana = this.headerStateManager.getHeaderSettings(row, column)) !== null && _this$headerStateMana !== void 0 ? _this$headerStateMana : {},
568
- collapsible = _ref6.collapsible,
569
- origColspan = _ref6.origColspan;
581
+ var _ref5 = (_this$headerStateMana = this.headerStateManager.getHeaderSettings(row, column)) !== null && _this$headerStateMana !== void 0 ? _this$headerStateMana : {},
582
+ collapsible = _ref5.collapsible,
583
+ origColspan = _ref5.origColspan;
570
584
 
571
- if (collapsible && origColspan > 1 && column >= this.hot.getSettings().fixedColumnsLeft) {
585
+ if (collapsible && origColspan > 1 && column >= this.hot.getSettings().fixedColumnsStart) {
572
586
  var button = this.generateIndicator(row, column);
573
587
  TH.querySelector('div:first-child').appendChild(button);
574
588
  }
@@ -650,6 +664,11 @@ var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
650
664
  get: function get() {
651
665
  return ['plugin:NestedHeaders'];
652
666
  }
667
+ }, {
668
+ key: "SETTING_KEYS",
669
+ get: function get() {
670
+ return [PLUGIN_KEY].concat(SETTING_KEYS);
671
+ }
653
672
  /**
654
673
  * Cached reference to the NestedHeaders plugin.
655
674
  *