handsontable 12.1.3 → 12.2.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 (914) hide show
  1. package/3rdparty/SheetClip/SheetClip.js +3 -32
  2. package/3rdparty/SheetClip/SheetClip.mjs +3 -23
  3. package/3rdparty/SheetClip/index.js +0 -2
  4. package/3rdparty/autoResize/autoResize.js +119 -145
  5. package/3rdparty/autoResize/autoResize.mjs +119 -143
  6. package/3rdparty/autoResize/index.js +0 -2
  7. package/3rdparty/walkontable/src/border.js +34 -151
  8. package/3rdparty/walkontable/src/border.mjs +36 -138
  9. package/3rdparty/walkontable/src/calculator/constants.js +0 -3
  10. package/3rdparty/walkontable/src/calculator/constants.mjs +0 -2
  11. package/3rdparty/walkontable/src/calculator/index.js +0 -10
  12. package/3rdparty/walkontable/src/calculator/viewportColumns.js +26 -76
  13. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +26 -69
  14. package/3rdparty/walkontable/src/calculator/viewportRows.js +20 -48
  15. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +20 -41
  16. package/3rdparty/walkontable/src/cell/coords.js +13 -43
  17. package/3rdparty/walkontable/src/cell/coords.mjs +13 -38
  18. package/3rdparty/walkontable/src/cell/range.js +55 -130
  19. package/3rdparty/walkontable/src/cell/range.mjs +60 -126
  20. package/3rdparty/walkontable/src/core/_base.js +16 -74
  21. package/3rdparty/walkontable/src/core/_base.mjs +19 -70
  22. package/3rdparty/walkontable/src/core/clone.js +1 -40
  23. package/3rdparty/walkontable/src/core/clone.mjs +3 -30
  24. package/3rdparty/walkontable/src/core/core.js +3 -57
  25. package/3rdparty/walkontable/src/core/core.mjs +5 -41
  26. package/3rdparty/walkontable/src/event.js +31 -78
  27. package/3rdparty/walkontable/src/event.mjs +31 -65
  28. package/3rdparty/walkontable/src/facade/core.js +1 -17
  29. package/3rdparty/walkontable/src/facade/core.mjs +7 -20
  30. package/3rdparty/walkontable/src/filter/column.js +9 -18
  31. package/3rdparty/walkontable/src/filter/column.mjs +9 -17
  32. package/3rdparty/walkontable/src/filter/row.js +9 -18
  33. package/3rdparty/walkontable/src/filter/row.mjs +9 -17
  34. package/3rdparty/walkontable/src/index.js +0 -31
  35. package/3rdparty/walkontable/src/overlay/_base.js +24 -69
  36. package/3rdparty/walkontable/src/overlay/_base.mjs +31 -68
  37. package/3rdparty/walkontable/src/overlay/bottom.js +28 -99
  38. package/3rdparty/walkontable/src/overlay/bottom.mjs +30 -86
  39. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.js +7 -53
  40. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.mjs +9 -40
  41. package/3rdparty/walkontable/src/overlay/constants.js +0 -6
  42. package/3rdparty/walkontable/src/overlay/constants.mjs +0 -1
  43. package/3rdparty/walkontable/src/overlay/index.js +0 -17
  44. package/3rdparty/walkontable/src/overlay/inlineStart.js +21 -91
  45. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +23 -78
  46. package/3rdparty/walkontable/src/overlay/top.js +27 -100
  47. package/3rdparty/walkontable/src/overlay/top.mjs +29 -87
  48. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +4 -51
  49. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +6 -38
  50. package/3rdparty/walkontable/src/overlays.js +58 -129
  51. package/3rdparty/walkontable/src/overlays.mjs +60 -121
  52. package/3rdparty/walkontable/src/renderer/_base.js +4 -20
  53. package/3rdparty/walkontable/src/renderer/_base.mjs +8 -22
  54. package/3rdparty/walkontable/src/renderer/cells.js +10 -54
  55. package/3rdparty/walkontable/src/renderer/cells.mjs +22 -52
  56. package/3rdparty/walkontable/src/renderer/colGroup.js +10 -47
  57. package/3rdparty/walkontable/src/renderer/colGroup.mjs +21 -46
  58. package/3rdparty/walkontable/src/renderer/columnHeaders.js +8 -50
  59. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +19 -49
  60. package/3rdparty/walkontable/src/renderer/index.js +13 -36
  61. package/3rdparty/walkontable/src/renderer/index.mjs +17 -27
  62. package/3rdparty/walkontable/src/renderer/rowHeaders.js +8 -50
  63. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +20 -49
  64. package/3rdparty/walkontable/src/renderer/rows.js +3 -46
  65. package/3rdparty/walkontable/src/renderer/rows.mjs +3 -29
  66. package/3rdparty/walkontable/src/renderer/table.js +22 -49
  67. package/3rdparty/walkontable/src/renderer/table.mjs +22 -48
  68. package/3rdparty/walkontable/src/scroll.js +56 -86
  69. package/3rdparty/walkontable/src/scroll.mjs +58 -86
  70. package/3rdparty/walkontable/src/selection.js +20 -101
  71. package/3rdparty/walkontable/src/selection.mjs +22 -85
  72. package/3rdparty/walkontable/src/settings.js +9 -29
  73. package/3rdparty/walkontable/src/settings.mjs +9 -27
  74. package/3rdparty/walkontable/src/table/bottom.js +1 -35
  75. package/3rdparty/walkontable/src/table/bottom.mjs +6 -25
  76. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.js +1 -35
  77. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.mjs +7 -26
  78. package/3rdparty/walkontable/src/table/inlineStart.js +1 -35
  79. package/3rdparty/walkontable/src/table/inlineStart.mjs +3 -22
  80. package/3rdparty/walkontable/src/table/master.js +10 -55
  81. package/3rdparty/walkontable/src/table/master.mjs +15 -44
  82. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +7 -28
  83. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +7 -26
  84. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +7 -28
  85. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +7 -26
  86. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +7 -22
  87. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +7 -20
  88. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +7 -23
  89. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +7 -21
  90. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +7 -22
  91. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +7 -20
  92. package/3rdparty/walkontable/src/table/top.js +1 -35
  93. package/3rdparty/walkontable/src/table/top.mjs +6 -25
  94. package/3rdparty/walkontable/src/table/topInlineStartCorner.js +1 -35
  95. package/3rdparty/walkontable/src/table/topInlineStartCorner.mjs +7 -26
  96. package/3rdparty/walkontable/src/table.js +63 -230
  97. package/3rdparty/walkontable/src/table.mjs +73 -219
  98. package/3rdparty/walkontable/src/types.js +0 -5
  99. package/3rdparty/walkontable/src/types.mjs +0 -5
  100. package/3rdparty/walkontable/src/utils/column.js +9 -31
  101. package/3rdparty/walkontable/src/utils/column.mjs +13 -30
  102. package/3rdparty/walkontable/src/utils/nodesPool.js +3 -12
  103. package/3rdparty/walkontable/src/utils/nodesPool.mjs +3 -11
  104. package/3rdparty/walkontable/src/utils/orderView/constants.js +0 -3
  105. package/3rdparty/walkontable/src/utils/orderView/constants.mjs +0 -2
  106. package/3rdparty/walkontable/src/utils/orderView/index.js +0 -5
  107. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +2 -33
  108. package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +6 -26
  109. package/3rdparty/walkontable/src/utils/orderView/view.js +14 -46
  110. package/3rdparty/walkontable/src/utils/orderView/view.mjs +21 -50
  111. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +3 -15
  112. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +3 -14
  113. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +8 -22
  114. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +23 -34
  115. package/3rdparty/walkontable/src/utils/row.js +2 -13
  116. package/3rdparty/walkontable/src/utils/row.mjs +2 -12
  117. package/3rdparty/walkontable/src/viewport.js +38 -100
  118. package/3rdparty/walkontable/src/viewport.mjs +40 -99
  119. package/CHANGELOG.md +76 -1
  120. package/base.js +6 -17
  121. package/base.mjs +6 -12
  122. package/cellTypes/autocompleteType/autocompleteType.js +0 -4
  123. package/cellTypes/autocompleteType/index.js +0 -2
  124. package/cellTypes/checkboxType/checkboxType.js +0 -3
  125. package/cellTypes/checkboxType/index.js +0 -2
  126. package/cellTypes/dateType/dateType.js +0 -4
  127. package/cellTypes/dateType/index.js +0 -2
  128. package/cellTypes/dropdownType/dropdownType.js +0 -4
  129. package/cellTypes/dropdownType/index.js +0 -2
  130. package/cellTypes/handsontableType/handsontableType.js +0 -3
  131. package/cellTypes/handsontableType/index.js +0 -2
  132. package/cellTypes/index.js +0 -21
  133. package/cellTypes/index.mjs +3 -5
  134. package/cellTypes/numericType/index.js +0 -2
  135. package/cellTypes/numericType/numericType.js +0 -4
  136. package/cellTypes/passwordType/index.js +0 -2
  137. package/cellTypes/passwordType/passwordType.js +0 -3
  138. package/cellTypes/registry.js +10 -25
  139. package/cellTypes/registry.mjs +10 -20
  140. package/cellTypes/textType/index.js +0 -2
  141. package/cellTypes/textType/textType.js +0 -3
  142. package/cellTypes/timeType/index.js +0 -2
  143. package/cellTypes/timeType/timeType.js +0 -4
  144. package/core.d.ts +5 -1
  145. package/core.js +505 -973
  146. package/core.mjs +510 -920
  147. package/dataMap/dataMap.js +106 -210
  148. package/dataMap/dataMap.mjs +106 -184
  149. package/{dataSource.js → dataMap/dataSource.js} +18 -66
  150. package/{dataSource.mjs → dataMap/dataSource.mjs} +20 -60
  151. package/dataMap/index.js +0 -13
  152. package/dataMap/metaManager/index.js +21 -46
  153. package/dataMap/metaManager/index.mjs +47 -64
  154. package/dataMap/metaManager/lazyFactoryMap.js +10 -61
  155. package/dataMap/metaManager/lazyFactoryMap.mjs +10 -45
  156. package/dataMap/metaManager/metaLayers/cellMeta.js +16 -52
  157. package/dataMap/metaManager/metaLayers/cellMeta.mjs +16 -37
  158. package/dataMap/metaManager/metaLayers/columnMeta.js +8 -22
  159. package/dataMap/metaManager/metaLayers/columnMeta.mjs +14 -25
  160. package/dataMap/metaManager/metaLayers/globalMeta.js +4 -19
  161. package/dataMap/metaManager/metaLayers/globalMeta.mjs +4 -15
  162. package/dataMap/metaManager/metaLayers/tableMeta.js +4 -15
  163. package/dataMap/metaManager/metaLayers/tableMeta.mjs +28 -37
  164. package/dataMap/metaManager/metaSchema.js +86 -179
  165. package/dataMap/metaManager/metaSchema.mjs +86 -170
  166. package/dataMap/metaManager/mods/dynamicCellMeta.js +6 -36
  167. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +20 -39
  168. package/dataMap/metaManager/mods/extendMetaProperties.js +5 -28
  169. package/dataMap/metaManager/mods/extendMetaProperties.mjs +4 -18
  170. package/dataMap/metaManager/utils.js +11 -20
  171. package/dataMap/metaManager/utils.mjs +21 -23
  172. package/dataMap/replaceData.js +14 -35
  173. package/dataMap/replaceData.mjs +35 -45
  174. package/dist/handsontable.css +2 -2
  175. package/dist/handsontable.full.css +2 -2
  176. package/dist/handsontable.full.js +8478 -20043
  177. package/dist/handsontable.full.min.css +2 -2
  178. package/dist/handsontable.full.min.js +55 -55
  179. package/dist/handsontable.js +7995 -19560
  180. package/dist/handsontable.min.css +2 -2
  181. package/dist/handsontable.min.js +3 -3
  182. package/dist/languages/all.js +0 -175
  183. package/dist/languages/ar-AR.js +0 -10
  184. package/dist/languages/cs-CZ.js +0 -10
  185. package/dist/languages/de-CH.js +0 -10
  186. package/dist/languages/de-DE.js +0 -10
  187. package/dist/languages/en-US.js +0 -10
  188. package/dist/languages/es-MX.js +0 -10
  189. package/dist/languages/fr-FR.js +0 -10
  190. package/dist/languages/it-IT.js +0 -10
  191. package/dist/languages/ja-JP.js +0 -10
  192. package/dist/languages/ko-KR.js +0 -10
  193. package/dist/languages/lv-LV.js +0 -10
  194. package/dist/languages/nb-NO.js +0 -10
  195. package/dist/languages/nl-NL.js +0 -10
  196. package/dist/languages/pl-PL.js +0 -10
  197. package/dist/languages/pt-BR.js +0 -10
  198. package/dist/languages/ru-RU.js +0 -10
  199. package/dist/languages/sr-SP.js +0 -10
  200. package/dist/languages/zh-CN.js +0 -10
  201. package/dist/languages/zh-TW.js +0 -10
  202. package/editorManager.js +36 -105
  203. package/editorManager.mjs +36 -85
  204. package/editors/autocompleteEditor/autocompleteEditor.js +26 -133
  205. package/editors/autocompleteEditor/autocompleteEditor.mjs +26 -104
  206. package/editors/autocompleteEditor/index.js +0 -2
  207. package/editors/baseEditor/baseEditor.js +44 -154
  208. package/editors/baseEditor/baseEditor.mjs +44 -128
  209. package/editors/baseEditor/index.js +0 -2
  210. package/editors/checkboxEditor/checkboxEditor.js +2 -33
  211. package/editors/checkboxEditor/checkboxEditor.mjs +2 -19
  212. package/editors/checkboxEditor/index.js +0 -2
  213. package/editors/dateEditor/dateEditor.js +20 -96
  214. package/editors/dateEditor/dateEditor.mjs +20 -75
  215. package/editors/dateEditor/index.js +0 -2
  216. package/editors/dropdownEditor/dropdownEditor.js +1 -41
  217. package/editors/dropdownEditor/dropdownEditor.mjs +1 -22
  218. package/editors/dropdownEditor/index.js +0 -2
  219. package/editors/handsontableEditor/handsontableEditor.js +13 -85
  220. package/editors/handsontableEditor/handsontableEditor.mjs +13 -66
  221. package/editors/handsontableEditor/index.js +0 -2
  222. package/editors/index.js +0 -25
  223. package/editors/index.mjs +3 -5
  224. package/editors/numericEditor/index.js +0 -2
  225. package/editors/numericEditor/numericEditor.js +1 -31
  226. package/editors/numericEditor/numericEditor.mjs +1 -18
  227. package/editors/passwordEditor/index.js +0 -2
  228. package/editors/passwordEditor/passwordEditor.js +1 -38
  229. package/editors/passwordEditor/passwordEditor.mjs +1 -22
  230. package/editors/registry.js +10 -36
  231. package/editors/registry.mjs +10 -28
  232. package/editors/selectEditor/index.js +0 -2
  233. package/editors/selectEditor/selectEditor.js +21 -73
  234. package/editors/selectEditor/selectEditor.mjs +21 -56
  235. package/editors/textEditor/caretPositioner.js +0 -8
  236. package/editors/textEditor/caretPositioner.mjs +10 -18
  237. package/editors/textEditor/index.js +0 -2
  238. package/editors/textEditor/textEditor.js +38 -137
  239. package/editors/textEditor/textEditor.mjs +38 -106
  240. package/editors/timeEditor/index.js +0 -2
  241. package/editors/timeEditor/timeEditor.js +1 -36
  242. package/editors/timeEditor/timeEditor.mjs +1 -21
  243. package/eventManager.js +20 -56
  244. package/eventManager.mjs +23 -56
  245. package/helpers/array.js +22 -88
  246. package/helpers/array.mjs +22 -58
  247. package/helpers/browser.js +25 -51
  248. package/helpers/browser.mjs +25 -32
  249. package/helpers/console.js +3 -13
  250. package/helpers/console.mjs +8 -16
  251. package/helpers/data.d.ts +0 -1
  252. package/helpers/data.js +10 -55
  253. package/helpers/data.mjs +10 -33
  254. package/helpers/date.js +2 -3
  255. package/helpers/date.mjs +2 -2
  256. package/helpers/dom/element.js +66 -256
  257. package/helpers/dom/element.mjs +73 -192
  258. package/helpers/dom/event.js +3 -7
  259. package/helpers/dom/event.mjs +3 -3
  260. package/helpers/feature.js +13 -47
  261. package/helpers/feature.mjs +13 -31
  262. package/helpers/function.js +14 -59
  263. package/helpers/function.mjs +20 -52
  264. package/helpers/mixed.js +9 -64
  265. package/helpers/mixed.mjs +15 -50
  266. package/helpers/number.js +4 -46
  267. package/helpers/number.mjs +4 -23
  268. package/helpers/object.js +15 -68
  269. package/helpers/object.mjs +21 -50
  270. package/helpers/string.js +6 -28
  271. package/helpers/string.mjs +12 -21
  272. package/helpers/templateLiteralTag.js +0 -6
  273. package/helpers/templateLiteralTag.mjs +7 -10
  274. package/helpers/unicode.js +17 -22
  275. package/helpers/unicode.mjs +17 -13
  276. package/helpers/wrappers/jquery.js +4 -14
  277. package/helpers/wrappers/jquery.mjs +4 -13
  278. package/i18n/constants.js +1 -3
  279. package/i18n/constants.mjs +1 -1
  280. package/i18n/index.js +0 -7
  281. package/i18n/languages/ar-AR.js +0 -16
  282. package/i18n/languages/ar-AR.mjs +1 -4
  283. package/i18n/languages/cs-CZ.js +0 -16
  284. package/i18n/languages/cs-CZ.mjs +1 -4
  285. package/i18n/languages/de-CH.js +0 -16
  286. package/i18n/languages/de-CH.mjs +1 -4
  287. package/i18n/languages/de-DE.js +0 -16
  288. package/i18n/languages/de-DE.mjs +1 -4
  289. package/i18n/languages/en-US.js +0 -16
  290. package/i18n/languages/en-US.mjs +1 -4
  291. package/i18n/languages/es-MX.js +0 -16
  292. package/i18n/languages/es-MX.mjs +1 -4
  293. package/i18n/languages/fr-FR.js +0 -16
  294. package/i18n/languages/fr-FR.mjs +1 -4
  295. package/i18n/languages/index.js +0 -39
  296. package/i18n/languages/it-IT.js +0 -16
  297. package/i18n/languages/it-IT.mjs +1 -4
  298. package/i18n/languages/ja-JP.js +0 -16
  299. package/i18n/languages/ja-JP.mjs +1 -4
  300. package/i18n/languages/ko-KR.js +0 -16
  301. package/i18n/languages/ko-KR.mjs +1 -4
  302. package/i18n/languages/lv-LV.js +0 -16
  303. package/i18n/languages/lv-LV.mjs +1 -4
  304. package/i18n/languages/nb-NO.js +0 -16
  305. package/i18n/languages/nb-NO.mjs +1 -4
  306. package/i18n/languages/nl-NL.js +0 -16
  307. package/i18n/languages/nl-NL.mjs +1 -4
  308. package/i18n/languages/pl-PL.js +0 -16
  309. package/i18n/languages/pl-PL.mjs +1 -4
  310. package/i18n/languages/pt-BR.js +0 -16
  311. package/i18n/languages/pt-BR.mjs +1 -4
  312. package/i18n/languages/ru-RU.js +0 -16
  313. package/i18n/languages/ru-RU.mjs +1 -4
  314. package/i18n/languages/sr-SP.js +0 -16
  315. package/i18n/languages/sr-SP.mjs +1 -4
  316. package/i18n/languages/zh-CN.js +0 -16
  317. package/i18n/languages/zh-CN.mjs +1 -4
  318. package/i18n/languages/zh-TW.js +0 -16
  319. package/i18n/languages/zh-TW.mjs +1 -4
  320. package/i18n/phraseFormatters/index.js +4 -11
  321. package/i18n/phraseFormatters/index.mjs +4 -6
  322. package/i18n/phraseFormatters/pluralize.js +0 -5
  323. package/i18n/phraseFormatters/pluralize.mjs +0 -3
  324. package/i18n/phraseFormatters/substituteVariables.js +0 -4
  325. package/i18n/phraseFormatters/substituteVariables.mjs +8 -11
  326. package/i18n/registry.js +18 -59
  327. package/i18n/registry.mjs +18 -30
  328. package/i18n/utils.js +4 -22
  329. package/i18n/utils.mjs +13 -21
  330. package/index.js +19 -56
  331. package/index.mjs +19 -15
  332. package/languages/all.js +0 -175
  333. package/languages/ar-AR.js +0 -10
  334. package/languages/ar-AR.mjs +1 -4
  335. package/languages/cs-CZ.js +0 -10
  336. package/languages/cs-CZ.mjs +1 -4
  337. package/languages/de-CH.js +0 -10
  338. package/languages/de-CH.mjs +1 -4
  339. package/languages/de-DE.js +0 -10
  340. package/languages/de-DE.mjs +1 -4
  341. package/languages/en-US.js +0 -10
  342. package/languages/en-US.mjs +1 -4
  343. package/languages/es-MX.js +0 -10
  344. package/languages/es-MX.mjs +1 -4
  345. package/languages/fr-FR.js +0 -10
  346. package/languages/fr-FR.mjs +1 -4
  347. package/languages/index.js +0 -175
  348. package/languages/it-IT.js +0 -10
  349. package/languages/it-IT.mjs +1 -4
  350. package/languages/ja-JP.js +0 -10
  351. package/languages/ja-JP.mjs +1 -4
  352. package/languages/ko-KR.js +0 -10
  353. package/languages/ko-KR.mjs +1 -4
  354. package/languages/lv-LV.js +0 -10
  355. package/languages/lv-LV.mjs +1 -4
  356. package/languages/nb-NO.js +0 -10
  357. package/languages/nb-NO.mjs +1 -4
  358. package/languages/nl-NL.js +0 -10
  359. package/languages/nl-NL.mjs +1 -4
  360. package/languages/pl-PL.js +0 -10
  361. package/languages/pl-PL.mjs +1 -4
  362. package/languages/pt-BR.js +0 -10
  363. package/languages/pt-BR.mjs +1 -4
  364. package/languages/ru-RU.js +0 -10
  365. package/languages/ru-RU.mjs +1 -4
  366. package/languages/sr-SP.js +0 -10
  367. package/languages/sr-SP.mjs +1 -4
  368. package/languages/zh-CN.js +0 -10
  369. package/languages/zh-CN.mjs +1 -4
  370. package/languages/zh-TW.js +0 -10
  371. package/languages/zh-TW.mjs +1 -4
  372. package/mixins/hooksRefRegisterer.js +4 -18
  373. package/mixins/hooksRefRegisterer.mjs +4 -15
  374. package/mixins/localHooks.js +7 -17
  375. package/mixins/localHooks.mjs +7 -14
  376. package/package.json +1 -1
  377. package/pluginHooks.d.ts +3 -3
  378. package/pluginHooks.js +271 -96
  379. package/pluginHooks.mjs +270 -83
  380. package/plugins/autoColumnSize/autoColumnSize.js +74 -172
  381. package/plugins/autoColumnSize/autoColumnSize.mjs +74 -137
  382. package/plugins/autoColumnSize/index.js +0 -2
  383. package/plugins/autoRowSize/autoRowSize.js +73 -153
  384. package/plugins/autoRowSize/autoRowSize.mjs +73 -124
  385. package/plugins/autoRowSize/index.js +0 -2
  386. package/plugins/autofill/autofill.js +46 -163
  387. package/plugins/autofill/autofill.mjs +46 -131
  388. package/plugins/autofill/index.js +0 -2
  389. package/plugins/autofill/utils.js +4 -26
  390. package/plugins/autofill/utils.mjs +4 -18
  391. package/plugins/base/base.js +20 -89
  392. package/plugins/base/base.mjs +20 -61
  393. package/plugins/base/index.js +0 -2
  394. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +19 -52
  395. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +19 -33
  396. package/plugins/bindRowsWithHeaders/index.js +0 -2
  397. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +5 -41
  398. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +5 -29
  399. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +6 -53
  400. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +6 -37
  401. package/plugins/collapsibleColumns/collapsibleColumns.js +96 -188
  402. package/plugins/collapsibleColumns/collapsibleColumns.mjs +97 -158
  403. package/plugins/collapsibleColumns/index.js +0 -2
  404. package/plugins/columnSorting/columnSorting.js +50 -188
  405. package/plugins/columnSorting/columnSorting.mjs +50 -143
  406. package/plugins/columnSorting/columnStatesManager.js +15 -71
  407. package/plugins/columnSorting/columnStatesManager.mjs +15 -48
  408. package/plugins/columnSorting/domHelpers.js +2 -18
  409. package/plugins/columnSorting/domHelpers.mjs +2 -7
  410. package/plugins/columnSorting/index.js +0 -2
  411. package/plugins/columnSorting/rootComparator.js +5 -24
  412. package/plugins/columnSorting/rootComparator.mjs +12 -21
  413. package/plugins/columnSorting/sortFunction/checkbox.js +8 -16
  414. package/plugins/columnSorting/sortFunction/checkbox.mjs +16 -21
  415. package/plugins/columnSorting/sortFunction/date.js +2 -19
  416. package/plugins/columnSorting/sortFunction/date.mjs +10 -23
  417. package/plugins/columnSorting/sortFunction/default.js +2 -17
  418. package/plugins/columnSorting/sortFunction/default.mjs +10 -23
  419. package/plugins/columnSorting/sortFunction/numeric.js +2 -11
  420. package/plugins/columnSorting/sortFunction/numeric.mjs +10 -17
  421. package/plugins/columnSorting/sortService/engine.js +1 -7
  422. package/plugins/columnSorting/sortService/engine.mjs +1 -3
  423. package/plugins/columnSorting/sortService/index.js +0 -5
  424. package/plugins/columnSorting/sortService/registry.js +6 -18
  425. package/plugins/columnSorting/sortService/registry.mjs +6 -10
  426. package/plugins/columnSorting/utils.js +9 -34
  427. package/plugins/columnSorting/utils.mjs +9 -15
  428. package/plugins/columnSummary/columnSummary.js +52 -118
  429. package/plugins/columnSummary/columnSummary.mjs +52 -93
  430. package/plugins/columnSummary/endpoints.js +21 -98
  431. package/plugins/columnSummary/endpoints.mjs +26 -99
  432. package/plugins/columnSummary/index.js +0 -2
  433. package/plugins/columnSummary/utils.js +0 -1
  434. package/plugins/comments/commentEditor.js +16 -28
  435. package/plugins/comments/commentEditor.mjs +21 -32
  436. package/plugins/comments/comments.js +92 -175
  437. package/plugins/comments/comments.mjs +92 -149
  438. package/plugins/comments/displaySwitch.js +6 -23
  439. package/plugins/comments/displaySwitch.mjs +6 -18
  440. package/plugins/comments/index.js +0 -2
  441. package/plugins/contextMenu/commandExecutor.js +9 -36
  442. package/plugins/contextMenu/commandExecutor.mjs +14 -39
  443. package/plugins/contextMenu/contextMenu.js +21 -104
  444. package/plugins/contextMenu/contextMenu.mjs +21 -74
  445. package/plugins/contextMenu/cursor.js +6 -20
  446. package/plugins/contextMenu/cursor.mjs +11 -24
  447. package/plugins/contextMenu/index.js +0 -2
  448. package/plugins/contextMenu/itemsFactory.js +14 -43
  449. package/plugins/contextMenu/itemsFactory.mjs +19 -44
  450. package/plugins/contextMenu/menu.js +57 -177
  451. package/plugins/contextMenu/menu.mjs +57 -149
  452. package/plugins/contextMenu/predefinedItems/alignment.js +1 -55
  453. package/plugins/contextMenu/predefinedItems/alignment.mjs +1 -37
  454. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -20
  455. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +1 -4
  456. package/plugins/contextMenu/predefinedItems/columnLeft.js +6 -43
  457. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +6 -26
  458. package/plugins/contextMenu/predefinedItems/columnRight.js +4 -42
  459. package/plugins/contextMenu/predefinedItems/columnRight.mjs +4 -25
  460. package/plugins/contextMenu/predefinedItems/noItems.js +1 -4
  461. package/plugins/contextMenu/predefinedItems/noItems.mjs +1 -1
  462. package/plugins/contextMenu/predefinedItems/readOnly.js +1 -25
  463. package/plugins/contextMenu/predefinedItems/readOnly.mjs +1 -8
  464. package/plugins/contextMenu/predefinedItems/redo.js +1 -16
  465. package/plugins/contextMenu/predefinedItems/redo.mjs +1 -1
  466. package/plugins/contextMenu/predefinedItems/removeColumn.js +3 -38
  467. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +3 -18
  468. package/plugins/contextMenu/predefinedItems/removeRow.js +3 -37
  469. package/plugins/contextMenu/predefinedItems/removeRow.mjs +3 -17
  470. package/plugins/contextMenu/predefinedItems/rowAbove.js +6 -35
  471. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +6 -19
  472. package/plugins/contextMenu/predefinedItems/rowBelow.js +4 -42
  473. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +4 -25
  474. package/plugins/contextMenu/predefinedItems/separator.js +1 -2
  475. package/plugins/contextMenu/predefinedItems/separator.mjs +1 -1
  476. package/plugins/contextMenu/predefinedItems/undo.js +1 -16
  477. package/plugins/contextMenu/predefinedItems/undo.mjs +1 -1
  478. package/plugins/contextMenu/predefinedItems.js +2 -48
  479. package/plugins/contextMenu/predefinedItems.mjs +2 -7
  480. package/plugins/contextMenu/utils.js +17 -57
  481. package/plugins/contextMenu/utils.mjs +21 -39
  482. package/plugins/copyPaste/clipboardData.js +1 -10
  483. package/plugins/copyPaste/clipboardData.mjs +1 -9
  484. package/plugins/copyPaste/contextMenuItem/copy.js +2 -17
  485. package/plugins/copyPaste/contextMenuItem/copy.mjs +6 -9
  486. package/plugins/copyPaste/contextMenuItem/cut.js +2 -17
  487. package/plugins/copyPaste/contextMenuItem/cut.mjs +6 -9
  488. package/plugins/copyPaste/copyPaste.js +51 -185
  489. package/plugins/copyPaste/copyPaste.mjs +51 -144
  490. package/plugins/copyPaste/focusableElement.js +12 -56
  491. package/plugins/copyPaste/focusableElement.mjs +15 -49
  492. package/plugins/copyPaste/index.js +0 -2
  493. package/plugins/copyPaste/pasteEvent.js +1 -10
  494. package/plugins/copyPaste/pasteEvent.mjs +3 -10
  495. package/plugins/customBorders/contextMenuItem/bottom.js +0 -17
  496. package/plugins/customBorders/contextMenuItem/bottom.mjs +4 -8
  497. package/plugins/customBorders/contextMenuItem/index.js +0 -11
  498. package/plugins/customBorders/contextMenuItem/left.js +0 -17
  499. package/plugins/customBorders/contextMenuItem/left.mjs +4 -8
  500. package/plugins/customBorders/contextMenuItem/noBorders.js +0 -15
  501. package/plugins/customBorders/contextMenuItem/noBorders.mjs +4 -6
  502. package/plugins/customBorders/contextMenuItem/right.js +0 -17
  503. package/plugins/customBorders/contextMenuItem/right.mjs +4 -8
  504. package/plugins/customBorders/contextMenuItem/top.js +0 -17
  505. package/plugins/customBorders/contextMenuItem/top.mjs +4 -8
  506. package/plugins/customBorders/customBorders.js +52 -181
  507. package/plugins/customBorders/customBorders.mjs +52 -147
  508. package/plugins/customBorders/index.js +0 -2
  509. package/plugins/customBorders/utils.js +13 -52
  510. package/plugins/customBorders/utils.mjs +20 -39
  511. package/plugins/dragToScroll/dragToScroll.js +17 -74
  512. package/plugins/dragToScroll/dragToScroll.mjs +17 -55
  513. package/plugins/dragToScroll/index.js +0 -2
  514. package/plugins/dropdownMenu/dropdownMenu.js +43 -126
  515. package/plugins/dropdownMenu/dropdownMenu.mjs +43 -95
  516. package/plugins/dropdownMenu/index.js +0 -2
  517. package/plugins/exportFile/dataProvider.js +24 -69
  518. package/plugins/exportFile/dataProvider.mjs +26 -60
  519. package/plugins/exportFile/exportFile.js +48 -58
  520. package/plugins/exportFile/exportFile.mjs +48 -36
  521. package/plugins/exportFile/index.js +0 -2
  522. package/plugins/exportFile/typeFactory.js +1 -11
  523. package/plugins/exportFile/typeFactory.mjs +1 -4
  524. package/plugins/exportFile/types/_base.js +2 -16
  525. package/plugins/exportFile/types/_base.mjs +4 -16
  526. package/plugins/exportFile/types/csv.js +2 -50
  527. package/plugins/exportFile/types/csv.mjs +2 -29
  528. package/plugins/filters/component/_base.js +12 -32
  529. package/plugins/filters/component/_base.mjs +15 -30
  530. package/plugins/filters/component/actionBar.js +6 -55
  531. package/plugins/filters/component/actionBar.mjs +9 -38
  532. package/plugins/filters/component/condition.js +15 -94
  533. package/plugins/filters/component/condition.mjs +18 -67
  534. package/plugins/filters/component/operators.js +10 -68
  535. package/plugins/filters/component/operators.mjs +10 -45
  536. package/plugins/filters/component/value.js +16 -97
  537. package/plugins/filters/component/value.mjs +19 -70
  538. package/plugins/filters/condition/beginsWith.js +2 -32
  539. package/plugins/filters/condition/beginsWith.mjs +2 -10
  540. package/plugins/filters/condition/between.js +3 -37
  541. package/plugins/filters/condition/between.mjs +3 -15
  542. package/plugins/filters/condition/byValue.js +3 -27
  543. package/plugins/filters/condition/byValue.mjs +3 -12
  544. package/plugins/filters/condition/contains.js +2 -32
  545. package/plugins/filters/condition/contains.mjs +2 -10
  546. package/plugins/filters/condition/date/after.js +2 -34
  547. package/plugins/filters/condition/date/after.mjs +2 -12
  548. package/plugins/filters/condition/date/before.js +2 -34
  549. package/plugins/filters/condition/date/before.mjs +2 -12
  550. package/plugins/filters/condition/date/today.js +1 -22
  551. package/plugins/filters/condition/date/today.mjs +1 -3
  552. package/plugins/filters/condition/date/tomorrow.js +1 -22
  553. package/plugins/filters/condition/date/tomorrow.mjs +1 -3
  554. package/plugins/filters/condition/date/yesterday.js +1 -22
  555. package/plugins/filters/condition/date/yesterday.mjs +1 -3
  556. package/plugins/filters/condition/empty.js +1 -19
  557. package/plugins/filters/condition/empty.mjs +1 -1
  558. package/plugins/filters/condition/endsWith.js +2 -32
  559. package/plugins/filters/condition/endsWith.mjs +2 -10
  560. package/plugins/filters/condition/equal.js +2 -31
  561. package/plugins/filters/condition/equal.mjs +2 -10
  562. package/plugins/filters/condition/false.js +1 -5
  563. package/plugins/filters/condition/false.mjs +1 -1
  564. package/plugins/filters/condition/greaterThan.js +2 -32
  565. package/plugins/filters/condition/greaterThan.mjs +2 -12
  566. package/plugins/filters/condition/greaterThanOrEqual.js +2 -32
  567. package/plugins/filters/condition/greaterThanOrEqual.mjs +2 -12
  568. package/plugins/filters/condition/lessThan.js +2 -32
  569. package/plugins/filters/condition/lessThan.mjs +2 -12
  570. package/plugins/filters/condition/lessThanOrEqual.js +2 -32
  571. package/plugins/filters/condition/lessThanOrEqual.mjs +2 -12
  572. package/plugins/filters/condition/none.js +1 -18
  573. package/plugins/filters/condition/none.mjs +1 -1
  574. package/plugins/filters/condition/notBetween.js +1 -19
  575. package/plugins/filters/condition/notBetween.mjs +1 -1
  576. package/plugins/filters/condition/notContains.js +1 -19
  577. package/plugins/filters/condition/notContains.mjs +1 -1
  578. package/plugins/filters/condition/notEmpty.js +1 -19
  579. package/plugins/filters/condition/notEmpty.mjs +1 -1
  580. package/plugins/filters/condition/notEqual.js +1 -19
  581. package/plugins/filters/condition/notEqual.mjs +1 -1
  582. package/plugins/filters/condition/true.js +1 -5
  583. package/plugins/filters/condition/true.mjs +1 -1
  584. package/plugins/filters/conditionCollection.js +21 -80
  585. package/plugins/filters/conditionCollection.mjs +21 -57
  586. package/plugins/filters/conditionRegisterer.js +5 -14
  587. package/plugins/filters/conditionRegisterer.mjs +5 -9
  588. package/plugins/filters/conditionUpdateObserver.js +17 -57
  589. package/plugins/filters/conditionUpdateObserver.mjs +25 -53
  590. package/plugins/filters/constants.js +1 -66
  591. package/plugins/filters/constants.mjs +1 -8
  592. package/plugins/filters/dataFilter.js +4 -21
  593. package/plugins/filters/dataFilter.mjs +7 -23
  594. package/plugins/filters/filters.js +103 -208
  595. package/plugins/filters/filters.mjs +103 -163
  596. package/plugins/filters/index.js +0 -2
  597. package/plugins/filters/logicalOperationRegisterer.js +3 -9
  598. package/plugins/filters/logicalOperationRegisterer.mjs +3 -4
  599. package/plugins/filters/logicalOperations/conjunction.js +2 -19
  600. package/plugins/filters/logicalOperations/conjunction.mjs +2 -2
  601. package/plugins/filters/logicalOperations/disjunction.js +2 -19
  602. package/plugins/filters/logicalOperations/disjunction.mjs +2 -2
  603. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +2 -21
  604. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +2 -3
  605. package/plugins/filters/ui/_base.js +12 -55
  606. package/plugins/filters/ui/_base.mjs +12 -35
  607. package/plugins/filters/ui/input.js +7 -52
  608. package/plugins/filters/ui/input.mjs +7 -34
  609. package/plugins/filters/ui/link.js +3 -43
  610. package/plugins/filters/ui/link.mjs +3 -25
  611. package/plugins/filters/ui/multipleSelect.js +26 -120
  612. package/plugins/filters/ui/multipleSelect.mjs +20 -76
  613. package/plugins/filters/ui/radioInput.js +6 -47
  614. package/plugins/filters/ui/radioInput.mjs +6 -30
  615. package/plugins/filters/ui/select.js +14 -76
  616. package/plugins/filters/ui/select.mjs +14 -52
  617. package/plugins/filters/utils.js +6 -39
  618. package/plugins/filters/utils.mjs +6 -23
  619. package/plugins/formulas/engine/register.js +24 -74
  620. package/plugins/formulas/engine/register.mjs +29 -51
  621. package/plugins/formulas/engine/settings.js +4 -24
  622. package/plugins/formulas/engine/settings.mjs +4 -12
  623. package/plugins/formulas/formulas.js +103 -295
  624. package/plugins/formulas/formulas.mjs +104 -248
  625. package/plugins/formulas/index.js +0 -2
  626. package/plugins/formulas/utils.js +1 -3
  627. package/plugins/formulas/utils.mjs +1 -1
  628. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +4 -38
  629. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +8 -25
  630. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +17 -45
  631. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +21 -29
  632. package/plugins/hiddenColumns/hiddenColumns.js +72 -149
  633. package/plugins/hiddenColumns/hiddenColumns.mjs +72 -108
  634. package/plugins/hiddenColumns/index.js +0 -2
  635. package/plugins/hiddenRows/contextMenuItem/hideRow.js +4 -38
  636. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +8 -25
  637. package/plugins/hiddenRows/contextMenuItem/showRow.js +17 -45
  638. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +21 -29
  639. package/plugins/hiddenRows/hiddenRows.js +70 -148
  640. package/plugins/hiddenRows/hiddenRows.mjs +70 -107
  641. package/plugins/hiddenRows/index.js +0 -2
  642. package/plugins/index.js +0 -71
  643. package/plugins/index.mjs +3 -5
  644. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -28
  645. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +5 -17
  646. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -28
  647. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +5 -17
  648. package/plugins/manualColumnFreeze/index.js +0 -2
  649. package/plugins/manualColumnFreeze/manualColumnFreeze.js +21 -78
  650. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +21 -54
  651. package/plugins/manualColumnMove/index.js +0 -2
  652. package/plugins/manualColumnMove/manualColumnMove.js +45 -134
  653. package/plugins/manualColumnMove/manualColumnMove.mjs +45 -106
  654. package/plugins/manualColumnMove/ui/_base.js +12 -30
  655. package/plugins/manualColumnMove/ui/_base.mjs +12 -27
  656. package/plugins/manualColumnMove/ui/backlight.js +1 -37
  657. package/plugins/manualColumnMove/ui/backlight.mjs +1 -22
  658. package/plugins/manualColumnMove/ui/guideline.js +1 -37
  659. package/plugins/manualColumnMove/ui/guideline.mjs +1 -22
  660. package/plugins/manualColumnResize/index.js +0 -2
  661. package/plugins/manualColumnResize/manualColumnResize.js +44 -143
  662. package/plugins/manualColumnResize/manualColumnResize.mjs +43 -118
  663. package/plugins/manualRowMove/index.js +0 -2
  664. package/plugins/manualRowMove/manualRowMove.js +45 -137
  665. package/plugins/manualRowMove/manualRowMove.mjs +45 -109
  666. package/plugins/manualRowMove/ui/_base.js +12 -27
  667. package/plugins/manualRowMove/ui/_base.mjs +12 -26
  668. package/plugins/manualRowMove/ui/backlight.js +1 -37
  669. package/plugins/manualRowMove/ui/backlight.mjs +1 -22
  670. package/plugins/manualRowMove/ui/guideline.js +1 -37
  671. package/plugins/manualRowMove/ui/guideline.mjs +1 -22
  672. package/plugins/manualRowResize/index.js +0 -2
  673. package/plugins/manualRowResize/manualRowResize.js +42 -138
  674. package/plugins/manualRowResize/manualRowResize.mjs +41 -112
  675. package/plugins/mergeCells/calculations/autofill.js +39 -130
  676. package/plugins/mergeCells/calculations/autofill.mjs +44 -122
  677. package/plugins/mergeCells/calculations/selection.js +9 -40
  678. package/plugins/mergeCells/calculations/selection.mjs +9 -37
  679. package/plugins/mergeCells/cellCoords.js +30 -51
  680. package/plugins/mergeCells/cellCoords.mjs +35 -54
  681. package/plugins/mergeCells/cellsCollection.js +13 -84
  682. package/plugins/mergeCells/cellsCollection.mjs +18 -69
  683. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +0 -22
  684. package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +4 -11
  685. package/plugins/mergeCells/index.js +0 -2
  686. package/plugins/mergeCells/mergeCells.js +130 -333
  687. package/plugins/mergeCells/mergeCells.mjs +130 -292
  688. package/plugins/mergeCells/utils.js +0 -3
  689. package/plugins/mergeCells/utils.mjs +0 -1
  690. package/plugins/multiColumnSorting/domHelpers.js +2 -12
  691. package/plugins/multiColumnSorting/domHelpers.mjs +2 -5
  692. package/plugins/multiColumnSorting/index.js +0 -2
  693. package/plugins/multiColumnSorting/multiColumnSorting.js +14 -66
  694. package/plugins/multiColumnSorting/multiColumnSorting.mjs +14 -44
  695. package/plugins/multiColumnSorting/rootComparator.js +2 -26
  696. package/plugins/multiColumnSorting/rootComparator.mjs +9 -23
  697. package/plugins/multiColumnSorting/utils.js +0 -7
  698. package/plugins/multiColumnSorting/utils.mjs +3 -8
  699. package/plugins/multipleSelectionHandles/index.js +0 -2
  700. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +6 -109
  701. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +6 -87
  702. package/plugins/nestedHeaders/index.js +0 -2
  703. package/plugins/nestedHeaders/nestedHeaders.js +79 -200
  704. package/plugins/nestedHeaders/nestedHeaders.mjs +80 -173
  705. package/plugins/nestedHeaders/stateManager/headersTree.js +16 -93
  706. package/plugins/nestedHeaders/stateManager/headersTree.mjs +16 -73
  707. package/plugins/nestedHeaders/stateManager/index.js +24 -107
  708. package/plugins/nestedHeaders/stateManager/index.mjs +51 -115
  709. package/plugins/nestedHeaders/stateManager/matrixGenerator.js +7 -25
  710. package/plugins/nestedHeaders/stateManager/matrixGenerator.mjs +38 -51
  711. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.js +12 -27
  712. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs +29 -35
  713. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.js +10 -25
  714. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.mjs +26 -32
  715. package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.js +3 -19
  716. package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.mjs +9 -20
  717. package/plugins/nestedHeaders/stateManager/nodeModifiers/index.js +2 -12
  718. package/plugins/nestedHeaders/stateManager/nodeModifiers/index.mjs +2 -5
  719. package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.js +3 -22
  720. package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.mjs +9 -21
  721. package/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.js +3 -10
  722. package/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.mjs +3 -7
  723. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +5 -36
  724. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +44 -61
  725. package/plugins/nestedHeaders/stateManager/sourceSettings.js +16 -78
  726. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +21 -68
  727. package/plugins/nestedHeaders/stateManager/utils.js +19 -22
  728. package/plugins/nestedHeaders/stateManager/utils.mjs +19 -20
  729. package/plugins/nestedHeaders/utils/ghostTable.js +9 -37
  730. package/plugins/nestedHeaders/utils/ghostTable.mjs +16 -43
  731. package/plugins/nestedRows/data/dataManager.js +40 -161
  732. package/plugins/nestedRows/data/dataManager.mjs +44 -148
  733. package/plugins/nestedRows/index.js +0 -2
  734. package/plugins/nestedRows/nestedRows.js +40 -118
  735. package/plugins/nestedRows/nestedRows.mjs +40 -85
  736. package/plugins/nestedRows/ui/_base.js +1 -9
  737. package/plugins/nestedRows/ui/_base.mjs +1 -8
  738. package/plugins/nestedRows/ui/collapsing.js +28 -134
  739. package/plugins/nestedRows/ui/collapsing.mjs +34 -118
  740. package/plugins/nestedRows/ui/contextMenu.js +2 -53
  741. package/plugins/nestedRows/ui/contextMenu.mjs +2 -32
  742. package/plugins/nestedRows/ui/headers.js +5 -50
  743. package/plugins/nestedRows/ui/headers.mjs +11 -41
  744. package/plugins/nestedRows/utils/rowMoveController.js +28 -78
  745. package/plugins/nestedRows/utils/rowMoveController.mjs +33 -66
  746. package/plugins/persistentState/index.js +0 -2
  747. package/plugins/persistentState/persistentState.js +10 -58
  748. package/plugins/persistentState/persistentState.mjs +10 -37
  749. package/plugins/persistentState/storage.js +9 -25
  750. package/plugins/persistentState/storage.mjs +12 -26
  751. package/plugins/registry.js +7 -51
  752. package/plugins/registry.mjs +8 -34
  753. package/plugins/search/index.js +0 -2
  754. package/plugins/search/search.js +16 -96
  755. package/plugins/search/search.mjs +16 -67
  756. package/plugins/touchScroll/index.js +0 -2
  757. package/plugins/touchScroll/touchScroll.js +15 -76
  758. package/plugins/touchScroll/touchScroll.mjs +15 -58
  759. package/plugins/trimRows/index.js +0 -2
  760. package/plugins/trimRows/trimRows.js +59 -85
  761. package/plugins/trimRows/trimRows.mjs +59 -62
  762. package/plugins/undoRedo/index.js +0 -14
  763. package/plugins/undoRedo/undoRedo.js +48 -218
  764. package/plugins/undoRedo/undoRedo.mjs +48 -188
  765. package/registry.js +0 -11
  766. package/registry.mjs +2 -4
  767. package/renderers/autocompleteRenderer/autocompleteRenderer.js +5 -14
  768. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +5 -6
  769. package/renderers/autocompleteRenderer/index.js +0 -2
  770. package/renderers/baseRenderer/baseRenderer.js +2 -11
  771. package/renderers/baseRenderer/baseRenderer.mjs +2 -9
  772. package/renderers/baseRenderer/index.js +0 -2
  773. package/renderers/checkboxRenderer/checkboxRenderer.js +22 -103
  774. package/renderers/checkboxRenderer/checkboxRenderer.mjs +22 -81
  775. package/renderers/checkboxRenderer/index.js +0 -2
  776. package/renderers/htmlRenderer/htmlRenderer.js +1 -7
  777. package/renderers/htmlRenderer/htmlRenderer.mjs +1 -1
  778. package/renderers/htmlRenderer/index.js +0 -2
  779. package/renderers/index.js +0 -19
  780. package/renderers/index.mjs +3 -5
  781. package/renderers/numericRenderer/index.js +0 -2
  782. package/renderers/numericRenderer/numericRenderer.js +1 -21
  783. package/renderers/numericRenderer/numericRenderer.mjs +1 -9
  784. package/renderers/passwordRenderer/index.js +0 -2
  785. package/renderers/passwordRenderer/passwordRenderer.js +1 -8
  786. package/renderers/passwordRenderer/passwordRenderer.mjs +1 -1
  787. package/renderers/registry.js +7 -16
  788. package/renderers/registry.mjs +7 -14
  789. package/renderers/textRenderer/index.js +0 -2
  790. package/renderers/textRenderer/textRenderer.js +1 -13
  791. package/renderers/textRenderer/textRenderer.mjs +1 -5
  792. package/renderers/timeRenderer/index.js +0 -2
  793. package/renderers/timeRenderer/timeRenderer.js +1 -6
  794. package/renderers/timeRenderer/timeRenderer.mjs +1 -1
  795. package/selection/highlight/highlight.js +17 -73
  796. package/selection/highlight/highlight.mjs +31 -64
  797. package/selection/highlight/types/activeHeader.js +1 -21
  798. package/selection/highlight/types/activeHeader.mjs +6 -16
  799. package/selection/highlight/types/area.js +2 -22
  800. package/selection/highlight/types/area.mjs +10 -20
  801. package/selection/highlight/types/cell.js +1 -21
  802. package/selection/highlight/types/cell.mjs +9 -19
  803. package/selection/highlight/types/customSelection.js +2 -22
  804. package/selection/highlight/types/customSelection.mjs +11 -21
  805. package/selection/highlight/types/fill.js +2 -17
  806. package/selection/highlight/types/fill.mjs +9 -14
  807. package/selection/highlight/types/header.js +3 -23
  808. package/selection/highlight/types/header.mjs +13 -23
  809. package/selection/highlight/types/index.js +3 -24
  810. package/selection/highlight/types/index.mjs +3 -10
  811. package/selection/highlight/visualSelection.js +24 -74
  812. package/selection/highlight/visualSelection.mjs +24 -62
  813. package/selection/index.js +0 -14
  814. package/selection/mouseEventHandler.js +19 -30
  815. package/selection/mouseEventHandler.mjs +32 -36
  816. package/selection/range.js +11 -31
  817. package/selection/range.mjs +11 -22
  818. package/selection/selection.js +62 -157
  819. package/selection/selection.mjs +65 -132
  820. package/selection/transformation.js +10 -40
  821. package/selection/transformation.mjs +18 -45
  822. package/selection/utils.js +22 -70
  823. package/selection/utils.mjs +22 -47
  824. package/shortcuts/context.js +23 -78
  825. package/shortcuts/context.mjs +23 -55
  826. package/shortcuts/index.js +0 -2
  827. package/shortcuts/keyObserver.js +4 -17
  828. package/shortcuts/keyObserver.mjs +4 -12
  829. package/shortcuts/manager.js +16 -36
  830. package/shortcuts/manager.mjs +16 -33
  831. package/shortcuts/recorder.js +9 -40
  832. package/shortcuts/recorder.mjs +9 -31
  833. package/shortcuts/utils.js +5 -20
  834. package/shortcuts/utils.mjs +5 -6
  835. package/tableView.js +100 -270
  836. package/tableView.mjs +100 -248
  837. package/translations/changesObservable/observable.js +5 -54
  838. package/translations/changesObservable/observable.mjs +12 -51
  839. package/translations/changesObservable/observer.js +4 -32
  840. package/translations/changesObservable/observer.mjs +9 -29
  841. package/translations/changesObservable/utils.js +1 -5
  842. package/translations/changesObservable/utils.mjs +1 -4
  843. package/translations/index.js +0 -11
  844. package/translations/indexMapper.js +68 -156
  845. package/translations/indexMapper.mjs +68 -123
  846. package/translations/mapCollections/aggregatedCollection.js +9 -51
  847. package/translations/mapCollections/aggregatedCollection.mjs +12 -41
  848. package/translations/mapCollections/index.js +0 -7
  849. package/translations/mapCollections/mapCollection.js +10 -33
  850. package/translations/mapCollections/mapCollection.mjs +10 -22
  851. package/translations/maps/hidingMap.js +2 -35
  852. package/translations/maps/hidingMap.mjs +7 -28
  853. package/translations/maps/index.js +1 -24
  854. package/translations/maps/index.mjs +1 -3
  855. package/translations/maps/indexMap.js +12 -34
  856. package/translations/maps/indexMap.mjs +16 -32
  857. package/translations/maps/indexesSequence.js +3 -41
  858. package/translations/maps/indexesSequence.mjs +9 -32
  859. package/translations/maps/linkedPhysicalIndexToValueMap.js +9 -78
  860. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +16 -59
  861. package/translations/maps/physicalIndexToValueMap.js +2 -39
  862. package/translations/maps/physicalIndexToValueMap.mjs +8 -31
  863. package/translations/maps/trimmingMap.js +2 -35
  864. package/translations/maps/trimmingMap.mjs +7 -28
  865. package/translations/maps/utils/actionsOnIndexes.js +1 -7
  866. package/translations/maps/utils/actionsOnIndexes.mjs +9 -12
  867. package/translations/maps/utils/index.js +0 -13
  868. package/translations/maps/utils/index.mjs +0 -3
  869. package/translations/maps/utils/indexesSequence.js +1 -24
  870. package/translations/maps/utils/indexesSequence.mjs +10 -19
  871. package/translations/maps/utils/physicallyIndexed.js +1 -27
  872. package/translations/maps/utils/physicallyIndexed.mjs +11 -21
  873. package/utils/dataStructures/linkedList.js +15 -56
  874. package/utils/dataStructures/linkedList.mjs +15 -54
  875. package/utils/dataStructures/priorityMap.js +8 -46
  876. package/utils/dataStructures/priorityMap.mjs +8 -29
  877. package/utils/dataStructures/queue.js +6 -17
  878. package/utils/dataStructures/queue.mjs +6 -16
  879. package/utils/dataStructures/stack.js +6 -17
  880. package/utils/dataStructures/stack.mjs +6 -16
  881. package/utils/dataStructures/tree.js +11 -75
  882. package/utils/dataStructures/tree.mjs +11 -54
  883. package/utils/dataStructures/uniqueMap.js +17 -56
  884. package/utils/dataStructures/uniqueMap.mjs +17 -42
  885. package/utils/dataStructures/uniqueSet.js +5 -32
  886. package/utils/dataStructures/uniqueSet.mjs +5 -19
  887. package/utils/ghostTable.js +33 -104
  888. package/utils/ghostTable.mjs +35 -92
  889. package/utils/interval.js +10 -37
  890. package/utils/interval.mjs +7 -29
  891. package/utils/parseTable.js +11 -92
  892. package/utils/parseTable.mjs +11 -62
  893. package/utils/rootInstance.js +3 -14
  894. package/utils/rootInstance.mjs +3 -3
  895. package/utils/samplesGenerator.js +15 -51
  896. package/utils/samplesGenerator.mjs +17 -44
  897. package/utils/staticRegister.js +6 -33
  898. package/utils/staticRegister.mjs +6 -19
  899. package/validators/autocompleteValidator/autocompleteValidator.js +2 -10
  900. package/validators/autocompleteValidator/autocompleteValidator.mjs +2 -8
  901. package/validators/autocompleteValidator/index.js +0 -2
  902. package/validators/dateValidator/dateValidator.js +2 -21
  903. package/validators/dateValidator/dateValidator.mjs +2 -11
  904. package/validators/dateValidator/index.js +0 -2
  905. package/validators/index.js +0 -11
  906. package/validators/index.mjs +3 -5
  907. package/validators/numericValidator/index.js +0 -2
  908. package/validators/numericValidator/numericValidator.js +1 -7
  909. package/validators/numericValidator/numericValidator.mjs +1 -3
  910. package/validators/registry.js +7 -16
  911. package/validators/registry.mjs +7 -14
  912. package/validators/timeValidator/index.js +0 -2
  913. package/validators/timeValidator/timeValidator.js +6 -18
  914. package/validators/timeValidator/timeValidator.mjs +8 -13
@@ -1,15 +1,9 @@
1
1
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
-
3
2
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
-
5
3
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
-
7
4
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
8
-
9
5
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
10
-
11
6
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
12
-
13
7
  import "core-js/modules/es.object.get-prototype-of.js";
14
8
  import "core-js/modules/es.array.includes.js";
15
9
  import "core-js/modules/es.string.includes.js";
@@ -34,27 +28,23 @@ import "core-js/modules/es.array.from.js";
34
28
  import "core-js/modules/es.function.name.js";
35
29
  import { hasCaptionProblem, isClassListSupported, isTextContentSupported, isGetComputedStyleSupported } from "../feature.mjs";
36
30
  import { isSafari, isIE9 } from "../browser.mjs";
37
- import { sanitize } from "../string.mjs";
38
- /**
39
- * Get the parent of the specified node in the DOM tree.
40
- *
41
- * @param {HTMLElement} element Element from which traversing is started.
42
- * @param {number} [level=0] Traversing deep level.
43
- * @returns {HTMLElement|null}
44
- */
45
-
31
+ import { sanitize } from "../string.mjs"; /**
32
+ * Get the parent of the specified node in the DOM tree.
33
+ *
34
+ * @param {HTMLElement} element Element from which traversing is started.
35
+ * @param {number} [level=0] Traversing deep level.
36
+ * @returns {HTMLElement|null}
37
+ */
46
38
  export function getParent(element) {
47
39
  var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
48
40
  var iteration = -1;
49
41
  var parent = null;
50
42
  var elementToCheck = element;
51
-
52
43
  while (elementToCheck !== null) {
53
44
  if (iteration === level) {
54
45
  parent = elementToCheck;
55
46
  break;
56
47
  }
57
-
58
48
  if (elementToCheck.host && elementToCheck.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
59
49
  elementToCheck = elementToCheck.host;
60
50
  } else {
@@ -62,39 +52,39 @@ export function getParent(element) {
62
52
  elementToCheck = elementToCheck.parentNode;
63
53
  }
64
54
  }
65
-
66
55
  return parent;
67
56
  }
57
+
68
58
  /**
69
59
  * Gets `frameElement` of the specified frame. Returns null if it is a top frame or if script has no access to read property.
70
60
  *
71
61
  * @param {Window} frame Frame from which should be get frameElement in safe way.
72
62
  * @returns {HTMLIFrameElement|null}
73
63
  */
74
-
75
64
  export function getFrameElement(frame) {
76
65
  return Object.getPrototypeOf(frame.parent) && frame.frameElement;
77
66
  }
67
+
78
68
  /**
79
69
  * Gets parent frame of the specified frame. Returns null if it is a top frame or if script has no access to read property.
80
70
  *
81
71
  * @param {Window} frame Frame from which should be get frameElement in safe way.
82
72
  * @returns {Window|null}
83
73
  */
84
-
85
74
  export function getParentWindow(frame) {
86
75
  return getFrameElement(frame) && frame.parent;
87
76
  }
77
+
88
78
  /**
89
79
  * Checks if script has access to read from parent frame of specified frame.
90
80
  *
91
81
  * @param {Window} frame Frame from which should be get frameElement in safe way.
92
82
  * @returns {boolean}
93
83
  */
94
-
95
84
  export function hasAccessToParentWindow(frame) {
96
85
  return !!Object.getPrototypeOf(frame.parent);
97
86
  }
87
+
98
88
  /**
99
89
  * Goes up the DOM tree (including given element) until it finds an parent element that matches the nodes or nodes name.
100
90
  * This method goes up through web components.
@@ -104,36 +94,31 @@ export function hasAccessToParentWindow(frame) {
104
94
  * @param {Node} [until] The element until the traversing ends.
105
95
  * @returns {Node|null}
106
96
  */
107
-
108
97
  export function closest(element) {
109
98
  var nodes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
110
99
  var until = arguments.length > 2 ? arguments[2] : undefined;
111
100
  var _Node = Node,
112
- ELEMENT_NODE = _Node.ELEMENT_NODE,
113
- DOCUMENT_FRAGMENT_NODE = _Node.DOCUMENT_FRAGMENT_NODE;
101
+ ELEMENT_NODE = _Node.ELEMENT_NODE,
102
+ DOCUMENT_FRAGMENT_NODE = _Node.DOCUMENT_FRAGMENT_NODE;
114
103
  var elementToCheck = element;
115
-
116
104
  while (elementToCheck !== null && elementToCheck !== void 0 && elementToCheck !== until) {
117
105
  var _elementToCheck = elementToCheck,
118
- nodeType = _elementToCheck.nodeType,
119
- nodeName = _elementToCheck.nodeName;
120
-
106
+ nodeType = _elementToCheck.nodeType,
107
+ nodeName = _elementToCheck.nodeName;
121
108
  if (nodeType === ELEMENT_NODE && (nodes.includes(nodeName) || nodes.includes(elementToCheck))) {
122
109
  return elementToCheck;
123
110
  }
124
-
125
111
  var _elementToCheck2 = elementToCheck,
126
- host = _elementToCheck2.host;
127
-
112
+ host = _elementToCheck2.host;
128
113
  if (host && nodeType === DOCUMENT_FRAGMENT_NODE) {
129
114
  elementToCheck = host;
130
115
  } else {
131
116
  elementToCheck = elementToCheck.parentNode;
132
117
  }
133
118
  }
134
-
135
119
  return null;
136
120
  }
121
+
137
122
  /**
138
123
  * Goes "down" the DOM tree (including given element) until it finds an element that matches the nodes or nodes name.
139
124
  *
@@ -142,30 +127,25 @@ export function closest(element) {
142
127
  * @param {HTMLElement} [until] The list of elements until the traversing ends.
143
128
  * @returns {HTMLElement|null}
144
129
  */
145
-
146
130
  export function closestDown(element, nodes, until) {
147
131
  var matched = [];
148
132
  var elementToCheck = element;
149
-
150
133
  while (elementToCheck) {
151
134
  elementToCheck = closest(elementToCheck, nodes, until);
152
-
153
135
  if (!elementToCheck || until && !until.contains(elementToCheck)) {
154
136
  break;
155
137
  }
156
-
157
138
  matched.push(elementToCheck);
158
-
159
139
  if (elementToCheck.host && elementToCheck.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
160
140
  elementToCheck = elementToCheck.host;
161
141
  } else {
162
142
  elementToCheck = elementToCheck.parentNode;
163
143
  }
164
144
  }
165
-
166
145
  var length = matched.length;
167
146
  return length ? matched[length - 1] : null;
168
147
  }
148
+
169
149
  /**
170
150
  * Goes up the DOM tree and checks if element is child of another element.
171
151
  *
@@ -174,11 +154,9 @@ export function closestDown(element, nodes, until) {
174
154
  * If string provided, function returns `true` for the first occurrence of element with that class.
175
155
  * @returns {boolean}
176
156
  */
177
-
178
157
  export function isChildOf(child, parent) {
179
158
  var node = child.parentNode;
180
159
  var queriedParents = [];
181
-
182
160
  if (typeof parent === 'string') {
183
161
  if (child.defaultView) {
184
162
  queriedParents = Array.prototype.slice.call(child.querySelectorAll(parent), 0);
@@ -188,17 +166,15 @@ export function isChildOf(child, parent) {
188
166
  } else {
189
167
  queriedParents.push(parent);
190
168
  }
191
-
192
169
  while (node !== null) {
193
170
  if (queriedParents.indexOf(node) > -1) {
194
171
  return true;
195
172
  }
196
-
197
173
  node = node.parentNode;
198
174
  }
199
-
200
175
  return false;
201
176
  }
177
+
202
178
  /**
203
179
  * Counts index of element within its parent.
204
180
  * WARNING: for performance reasons, assumes there are only element nodes (no text nodes). This is true
@@ -208,20 +184,18 @@ export function isChildOf(child, parent) {
208
184
  * @param {Element} element The element to check.
209
185
  * @returns {number}
210
186
  */
211
-
212
187
  export function index(element) {
213
188
  var i = 0;
214
189
  var elementToCheck = element;
215
-
216
190
  if (elementToCheck.previousSibling) {
217
191
  /* eslint-disable no-cond-assign */
218
192
  while (elementToCheck = elementToCheck.previousSibling) {
219
193
  i += 1;
220
194
  }
221
195
  }
222
-
223
196
  return i;
224
197
  }
198
+
225
199
  /**
226
200
  * Check if the provided overlay contains the provided element.
227
201
  *
@@ -230,66 +204,51 @@ export function index(element) {
230
204
  * @param {HTMLElement} root The root element.
231
205
  * @returns {boolean}
232
206
  */
233
-
234
207
  export function overlayContainsElement(overlayType, element, root) {
235
208
  var overlayElement = root.parentElement.querySelector(".ht_clone_".concat(overlayType));
236
209
  return overlayElement ? overlayElement.contains(element) : null;
237
210
  }
238
-
239
211
  var _hasClass;
240
-
241
212
  var _addClass;
242
-
243
213
  var _removeClass;
214
+
244
215
  /**
245
216
  * @param {string} classNames The element "class" attribute string.
246
217
  * @returns {string[]}
247
218
  */
248
-
249
-
250
219
  function filterEmptyClassNames(classNames) {
251
220
  if (!classNames || !classNames.length) {
252
221
  return [];
253
222
  }
254
-
255
223
  return classNames.filter(function (x) {
256
224
  return !!x;
257
225
  });
258
226
  }
259
-
260
227
  if (isClassListSupported()) {
261
228
  var isSupportMultipleClassesArg = function isSupportMultipleClassesArg(rootDocument) {
262
229
  var element = rootDocument.createElement('div');
263
230
  element.classList.add('test', 'test2');
264
231
  return element.classList.contains('test2');
265
232
  };
266
-
267
233
  _hasClass = function _hasClass(element, className) {
268
234
  if (element.classList === void 0 || typeof className !== 'string' || className === '') {
269
235
  return false;
270
236
  }
271
-
272
237
  return element.classList.contains(className);
273
238
  };
274
-
275
239
  _addClass = function _addClass(element, classes) {
276
240
  var rootDocument = element.ownerDocument;
277
241
  var className = classes;
278
-
279
242
  if (typeof className === 'string') {
280
243
  className = className.split(' ');
281
244
  }
282
-
283
245
  className = filterEmptyClassNames(className);
284
-
285
246
  if (className.length > 0) {
286
247
  if (isSupportMultipleClassesArg(rootDocument)) {
287
248
  var _element$classList;
288
-
289
249
  (_element$classList = element.classList).add.apply(_element$classList, _toConsumableArray(className));
290
250
  } else {
291
251
  var len = 0;
292
-
293
252
  while (className[len]) {
294
253
  element.classList.add(className[len]);
295
254
  len += 1;
@@ -297,25 +256,19 @@ if (isClassListSupported()) {
297
256
  }
298
257
  }
299
258
  };
300
-
301
259
  _removeClass = function _removeClass(element, classes) {
302
260
  var rootDocument = element.ownerDocument;
303
261
  var className = classes;
304
-
305
262
  if (typeof className === 'string') {
306
263
  className = className.split(' ');
307
264
  }
308
-
309
265
  className = filterEmptyClassNames(className);
310
-
311
266
  if (className.length > 0) {
312
267
  if (isSupportMultipleClassesArg(rootDocument)) {
313
268
  var _element$classList2;
314
-
315
269
  (_element$classList2 = element.classList).remove.apply(_element$classList2, _toConsumableArray(className));
316
270
  } else {
317
271
  var len = 0;
318
-
319
272
  while (className[len]) {
320
273
  element.classList.remove(className[len]);
321
274
  len += 1;
@@ -327,22 +280,17 @@ if (isClassListSupported()) {
327
280
  var createClassNameRegExp = function createClassNameRegExp(className) {
328
281
  return new RegExp("(\\s|^)".concat(className, "(\\s|$)"));
329
282
  };
330
-
331
283
  _hasClass = function _hasClass(element, className) {
332
284
  // http://snipplr.com/view/3561/addclass-removeclass-hasclass/
333
285
  return element.className !== void 0 && createClassNameRegExp(className).test(element.className);
334
286
  };
335
-
336
287
  _addClass = function _addClass(element, classes) {
337
288
  var _className = element.className;
338
289
  var className = classes;
339
-
340
290
  if (typeof className === 'string') {
341
291
  className = className.split(' ');
342
292
  }
343
-
344
293
  className = filterEmptyClassNames(className);
345
-
346
294
  if (_className === '') {
347
295
  _className = className.join(' ');
348
296
  } else {
@@ -352,32 +300,27 @@ if (isClassListSupported()) {
352
300
  }
353
301
  }
354
302
  }
355
-
356
303
  element.className = _className;
357
304
  };
358
-
359
305
  _removeClass = function _removeClass(element, classes) {
360
306
  var len = 0;
361
307
  var _className = element.className;
362
308
  var className = classes;
363
-
364
309
  if (typeof className === 'string') {
365
310
  className = className.split(' ');
366
311
  }
367
-
368
312
  className = filterEmptyClassNames(className);
369
-
370
313
  while (className[len]) {
371
314
  // String.prototype.trim is defined in polyfill.js
372
315
  _className = _className.replace(createClassNameRegExp(className[len]), ' ').trim();
373
316
  len += 1;
374
317
  }
375
-
376
318
  if (element.className !== _className) {
377
319
  element.className = _className;
378
320
  }
379
321
  };
380
322
  }
323
+
381
324
  /**
382
325
  * Checks if element has class name.
383
326
  *
@@ -385,46 +328,44 @@ if (isClassListSupported()) {
385
328
  * @param {string} className Class name to check.
386
329
  * @returns {boolean}
387
330
  */
388
-
389
-
390
331
  export function hasClass(element, className) {
391
332
  return _hasClass(element, className);
392
333
  }
334
+
393
335
  /**
394
336
  * Add class name to an element.
395
337
  *
396
338
  * @param {HTMLElement} element An element to process.
397
339
  * @param {string|Array} className Class name as string or array of strings.
398
340
  */
399
-
400
341
  export function addClass(element, className) {
401
342
  _addClass(element, className);
402
343
  }
344
+
403
345
  /**
404
346
  * Remove class name from an element.
405
347
  *
406
348
  * @param {HTMLElement} element An element to process.
407
349
  * @param {string|Array} className Class name as string or array of strings.
408
350
  */
409
-
410
351
  export function removeClass(element, className) {
411
352
  _removeClass(element, className);
412
353
  }
354
+
413
355
  /**
414
356
  * @param {HTMLElement} element An element from the text is removed.
415
357
  */
416
-
417
358
  export function removeTextNodes(element) {
418
359
  if (element.nodeType === 3) {
419
360
  element.parentNode.removeChild(element); // bye text nodes!
420
361
  } else if (['TABLE', 'THEAD', 'TBODY', 'TFOOT', 'TR'].indexOf(element.nodeName) > -1) {
421
362
  var childs = element.childNodes;
422
-
423
363
  for (var i = childs.length - 1; i >= 0; i--) {
424
364
  removeTextNodes(childs[i]);
425
365
  }
426
366
  }
427
367
  }
368
+
428
369
  /**
429
370
  * Remove childs function
430
371
  * WARNING - this doesn't unload events and data attached by jQuery
@@ -433,16 +374,16 @@ export function removeTextNodes(element) {
433
374
  *
434
375
  * @param {HTMLElement} element An element to clear.
435
376
  */
436
-
437
377
  export function empty(element) {
438
378
  var child;
439
- /* eslint-disable no-cond-assign */
440
379
 
380
+ /* eslint-disable no-cond-assign */
441
381
  while (child = element.lastChild) {
442
382
  element.removeChild(child);
443
383
  }
444
384
  }
445
385
  export var HTML_CHARACTERS = /(<(.*)>|&(.*);)/;
386
+
446
387
  /**
447
388
  * Insert content into element trying avoid innerHTML method.
448
389
  *
@@ -450,28 +391,26 @@ export var HTML_CHARACTERS = /(<(.*)>|&(.*);)/;
450
391
  * @param {string} content The text to write.
451
392
  * @param {boolean} [sanitizeContent=true] If `true`, the content will be sanitized before writing to the element.
452
393
  */
453
-
454
394
  export function fastInnerHTML(element, content) {
455
395
  var sanitizeContent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
456
-
457
396
  if (HTML_CHARACTERS.test(content)) {
458
397
  element.innerHTML = sanitizeContent ? sanitize(content) : content;
459
398
  } else {
460
399
  fastInnerText(element, content);
461
400
  }
462
401
  }
402
+
463
403
  /**
464
404
  * Insert text content into element.
465
405
  *
466
406
  * @param {HTMLElement} element An element to write into.
467
407
  * @param {string} content The text to write.
468
408
  */
469
-
470
409
  export function fastInnerText(element, content) {
471
410
  var child = element.firstChild;
472
-
473
411
  if (child && child.nodeType === 3 && child.nextSibling === null) {
474
412
  // fast lane - replace existing text node
413
+
475
414
  if (isTextContentSupported) {
476
415
  // http://jsperf.com/replace-text-vs-reuse
477
416
  child.textContent = content;
@@ -485,17 +424,16 @@ export function fastInnerText(element, content) {
485
424
  element.appendChild(element.ownerDocument.createTextNode(content));
486
425
  }
487
426
  }
427
+
488
428
  /**
489
429
  * Returns true if element is attached to the DOM and visible, false otherwise.
490
430
  *
491
431
  * @param {HTMLElement} element An element to check.
492
432
  * @returns {boolean}
493
433
  */
494
-
495
434
  export function isVisible(element) {
496
435
  var documentElement = element.ownerDocument.documentElement;
497
436
  var next = element;
498
-
499
437
  while (next !== documentElement) {
500
438
  // until <html> reached
501
439
  if (next === null) {
@@ -513,7 +451,6 @@ export function isVisible(element) {
513
451
  // Chrome 33.0.1723.0 canary (2013-11-29) Web Platform features enabled
514
452
  return isVisible(next.host);
515
453
  }
516
-
517
454
  throw new Error('Lost in Web Components world');
518
455
  } else {
519
456
  return false; // this is a node detached from document in IE8
@@ -521,19 +458,17 @@ export function isVisible(element) {
521
458
  } else if (next.style && next.style.display === 'none') {
522
459
  return false;
523
460
  }
524
-
525
461
  next = next.parentNode;
526
462
  }
527
-
528
463
  return true;
529
464
  }
465
+
530
466
  /**
531
467
  * Returns elements top and left offset relative to the document. Function is not compatible with jQuery offset.
532
468
  *
533
469
  * @param {HTMLElement} element An element to get the offset position from.
534
470
  * @returns {object} Returns object with `top` and `left` props.
535
471
  */
536
-
537
472
  export function offset(element) {
538
473
  var rootDocument = element.ownerDocument;
539
474
  var rootWindow = rootDocument.defaultView;
@@ -543,7 +478,6 @@ export function offset(element) {
543
478
  var offsetTop;
544
479
  var lastElem;
545
480
  var box;
546
-
547
481
  if (hasCaptionProblem() && elementToCheck.firstChild && elementToCheck.firstChild.nodeName === 'CAPTION') {
548
482
  // fixes problem with Firefox ignoring <caption> in TABLE offset (see also export outerHeight)
549
483
  // http://jsperf.com/offset-vs-getboundingclientrect/8
@@ -553,35 +487,33 @@ export function offset(element) {
553
487
  left: box.left + (rootWindow.pageXOffset || documentElement.scrollLeft) - (documentElement.clientLeft || 0)
554
488
  };
555
489
  }
556
-
557
490
  offsetLeft = elementToCheck.offsetLeft;
558
491
  offsetTop = elementToCheck.offsetTop;
559
492
  lastElem = elementToCheck;
560
- /* eslint-disable no-cond-assign */
561
493
 
494
+ /* eslint-disable no-cond-assign */
562
495
  while (elementToCheck = elementToCheck.offsetParent) {
563
496
  // from my observation, document.body always has scrollLeft/scrollTop == 0
564
497
  if (elementToCheck === rootDocument.body) {
565
498
  break;
566
499
  }
567
-
568
500
  offsetLeft += elementToCheck.offsetLeft;
569
501
  offsetTop += elementToCheck.offsetTop;
570
502
  lastElem = elementToCheck;
571
- } // slow - http://jsperf.com/offset-vs-getboundingclientrect/6
572
-
503
+ }
573
504
 
505
+ // slow - http://jsperf.com/offset-vs-getboundingclientrect/6
574
506
  if (lastElem && lastElem.style.position === 'fixed') {
575
507
  // if(lastElem !== document.body) { //faster but does gives false positive in Firefox
576
508
  offsetLeft += rootWindow.pageXOffset || documentElement.scrollLeft;
577
509
  offsetTop += rootWindow.pageYOffset || documentElement.scrollTop;
578
510
  }
579
-
580
511
  return {
581
512
  left: offsetLeft,
582
513
  top: offsetTop
583
514
  };
584
515
  }
516
+
585
517
  /**
586
518
  * Returns the document's scrollTop property.
587
519
  *
@@ -589,18 +521,16 @@ export function offset(element) {
589
521
  * @returns {number}
590
522
  */
591
523
  // eslint-disable-next-line no-restricted-globals
592
-
593
524
  export function getWindowScrollTop() {
594
525
  var rootWindow = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
595
526
  var res = rootWindow.scrollY;
596
-
597
527
  if (res === void 0) {
598
528
  // IE8-11
599
529
  res = rootWindow.document.documentElement.scrollTop;
600
530
  }
601
-
602
531
  return res;
603
532
  }
533
+
604
534
  /**
605
535
  * Returns the document's scrollLeft property.
606
536
  *
@@ -608,18 +538,16 @@ export function getWindowScrollTop() {
608
538
  * @returns {number}
609
539
  */
610
540
  // eslint-disable-next-line no-restricted-globals
611
-
612
541
  export function getWindowScrollLeft() {
613
542
  var rootWindow = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
614
543
  var res = rootWindow.scrollX;
615
-
616
544
  if (res === void 0) {
617
545
  // IE8-11
618
546
  res = rootWindow.document.documentElement.scrollLeft;
619
547
  }
620
-
621
548
  return res;
622
549
  }
550
+
623
551
  /**
624
552
  * Returns the provided element's scrollTop property.
625
553
  *
@@ -628,16 +556,14 @@ export function getWindowScrollLeft() {
628
556
  * @returns {number}
629
557
  */
630
558
  // eslint-disable-next-line no-restricted-globals
631
-
632
559
  export function getScrollTop(element) {
633
560
  var rootWindow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;
634
-
635
561
  if (element === rootWindow) {
636
562
  return getWindowScrollTop(rootWindow);
637
563
  }
638
-
639
564
  return element.scrollTop;
640
565
  }
566
+
641
567
  /**
642
568
  * Returns the provided element's scrollLeft property.
643
569
  *
@@ -646,102 +572,86 @@ export function getScrollTop(element) {
646
572
  * @returns {number}
647
573
  */
648
574
  // eslint-disable-next-line no-restricted-globals
649
-
650
575
  export function getScrollLeft(element) {
651
576
  var rootWindow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;
652
-
653
577
  if (element === rootWindow) {
654
578
  return getWindowScrollLeft(rootWindow);
655
579
  }
656
-
657
580
  return element.scrollLeft;
658
581
  }
582
+
659
583
  /**
660
584
  * Returns a DOM element responsible for scrolling of the provided element.
661
585
  *
662
586
  * @param {HTMLElement} element An element to get the scrollable element from.
663
587
  * @returns {HTMLElement} Element's scrollable parent.
664
588
  */
665
-
666
589
  export function getScrollableElement(element) {
667
590
  var rootDocument = element.ownerDocument;
668
591
  var rootWindow = rootDocument ? rootDocument.defaultView : void 0;
669
-
670
592
  if (!rootDocument) {
671
593
  rootDocument = element.document ? element.document : element;
672
594
  rootWindow = rootDocument.defaultView;
673
595
  }
674
-
675
596
  var props = ['auto', 'scroll'];
676
597
  var supportedGetComputedStyle = isGetComputedStyleSupported();
677
598
  var el = element.parentNode;
678
-
679
599
  while (el && el.style && rootDocument.body !== el) {
680
600
  var _el$style = el.style,
681
- overflow = _el$style.overflow,
682
- overflowX = _el$style.overflowX,
683
- overflowY = _el$style.overflowY;
684
-
601
+ overflow = _el$style.overflow,
602
+ overflowX = _el$style.overflowX,
603
+ overflowY = _el$style.overflowY;
685
604
  if ([overflow, overflowX, overflowY].includes('scroll')) {
686
605
  return el;
687
606
  } else if (supportedGetComputedStyle) {
688
607
  var _rootWindow$getComput = rootWindow.getComputedStyle(el);
689
-
690
608
  overflow = _rootWindow$getComput.overflow;
691
609
  overflowX = _rootWindow$getComput.overflowX;
692
610
  overflowY = _rootWindow$getComput.overflowY;
693
-
694
611
  if (props.includes(overflow) || props.includes(overflowX) || props.includes(overflowY)) {
695
612
  return el;
696
613
  }
697
- } // The '+ 1' after the scrollHeight/scrollWidth is to prevent problems with zoomed out Chrome.
698
-
614
+ }
699
615
 
616
+ // The '+ 1' after the scrollHeight/scrollWidth is to prevent problems with zoomed out Chrome.
700
617
  if (el.clientHeight <= el.scrollHeight + 1 && (props.includes(overflowY) || props.includes(overflow))) {
701
618
  return el;
702
619
  }
703
-
704
620
  if (el.clientWidth <= el.scrollWidth + 1 && (props.includes(overflowX) || props.includes(overflow))) {
705
621
  return el;
706
622
  }
707
-
708
623
  el = el.parentNode;
709
624
  }
710
-
711
625
  return rootWindow;
712
626
  }
627
+
713
628
  /**
714
629
  * Returns a DOM element responsible for trimming the provided element.
715
630
  *
716
631
  * @param {HTMLElement} base Base element.
717
632
  * @returns {HTMLElement} Base element's trimming parent.
718
633
  */
719
-
720
634
  export function getTrimmingContainer(base) {
721
635
  var rootDocument = base.ownerDocument;
722
636
  var rootWindow = rootDocument.defaultView;
723
637
  var el = base.parentNode;
724
-
725
638
  while (el && el.style && rootDocument.body !== el) {
726
639
  if (el.style.overflow !== 'visible' && el.style.overflow !== '') {
727
640
  return el;
728
641
  }
729
-
730
642
  var computedStyle = getComputedStyle(el, rootWindow);
731
643
  var allowedProperties = ['scroll', 'hidden', 'auto'];
732
644
  var property = computedStyle.getPropertyValue('overflow');
733
645
  var propertyY = computedStyle.getPropertyValue('overflow-y');
734
646
  var propertyX = computedStyle.getPropertyValue('overflow-x');
735
-
736
647
  if (allowedProperties.includes(property) || allowedProperties.includes(propertyY) || allowedProperties.includes(propertyX)) {
737
648
  return el;
738
649
  }
739
-
740
650
  el = el.parentNode;
741
651
  }
742
-
743
652
  return rootWindow;
744
653
  }
654
+
745
655
  /**
746
656
  * Returns a style property for the provided element. (Be it an inline or external style).
747
657
  *
@@ -751,10 +661,8 @@ export function getTrimmingContainer(base) {
751
661
  * @returns {string|undefined} Element's style property.
752
662
  */
753
663
  // eslint-disable-next-line no-restricted-globals
754
-
755
664
  export function getStyle(element, prop) {
756
665
  var rootWindow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : window;
757
-
758
666
  if (!element) {
759
667
  return;
760
668
  } else if (element === rootWindow) {
@@ -763,22 +671,18 @@ export function getStyle(element, prop) {
763
671
  } else if (prop === 'height') {
764
672
  return "".concat(rootWindow.innerHeight, "px");
765
673
  }
766
-
767
674
  return;
768
675
  }
769
-
770
676
  var styleProp = element.style[prop];
771
-
772
677
  if (styleProp !== '' && styleProp !== void 0) {
773
678
  return styleProp;
774
679
  }
775
-
776
680
  var computedStyle = getComputedStyle(element, rootWindow);
777
-
778
681
  if (computedStyle[prop] !== '' && computedStyle[prop] !== void 0) {
779
682
  return computedStyle[prop];
780
683
  }
781
684
  }
685
+
782
686
  /**
783
687
  * Verifies if element fit to provided CSSRule.
784
688
  *
@@ -786,11 +690,9 @@ export function getStyle(element, prop) {
786
690
  * @param {CSSRule} rule Selector text from CSSRule.
787
691
  * @returns {boolean}
788
692
  */
789
-
790
693
  export function matchesCSSRules(element, rule) {
791
694
  var selectorText = rule.selectorText;
792
695
  var result = false;
793
-
794
696
  if (rule.type === CSSRule.STYLE_RULE && selectorText) {
795
697
  if (element.msMatchesSelector) {
796
698
  result = element.msMatchesSelector(selectorText);
@@ -798,9 +700,9 @@ export function matchesCSSRules(element, rule) {
798
700
  result = element.matches(selectorText);
799
701
  }
800
702
  }
801
-
802
703
  return result;
803
704
  }
705
+
804
706
  /**
805
707
  * Returns a computed style object for the provided element. (Needed if style is declared in external stylesheet).
806
708
  *
@@ -809,28 +711,27 @@ export function matchesCSSRules(element, rule) {
809
711
  * @returns {IEElementStyle|CssStyle} Elements computed style object.
810
712
  */
811
713
  // eslint-disable-next-line no-restricted-globals
812
-
813
714
  export function getComputedStyle(element) {
814
715
  var rootWindow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;
815
716
  return element.currentStyle || rootWindow.getComputedStyle(element);
816
717
  }
718
+
817
719
  /**
818
720
  * Returns the element's outer width.
819
721
  *
820
722
  * @param {HTMLElement} element An element to get the width from.
821
723
  * @returns {number} Element's outer width.
822
724
  */
823
-
824
725
  export function outerWidth(element) {
825
726
  return element.offsetWidth;
826
727
  }
728
+
827
729
  /**
828
730
  * Returns the element's outer height.
829
731
  *
830
732
  * @param {HTMLElement} element An element to get the height from.
831
733
  * @returns {number} Element's outer height.
832
734
  */
833
-
834
735
  export function outerHeight(element) {
835
736
  if (hasCaptionProblem() && element.firstChild && element.firstChild.nodeName === 'CAPTION') {
836
737
  // fixes problem with Firefox ignoring <caption> in TABLE.offsetHeight
@@ -842,47 +743,47 @@ export function outerHeight(element) {
842
743
  // http://lists.w3.org/Archives/Public/www-style/2009Oct/0140.html#start140
843
744
  return element.offsetHeight + element.firstChild.offsetHeight;
844
745
  }
845
-
846
746
  return element.offsetHeight;
847
747
  }
748
+
848
749
  /**
849
750
  * Returns the element's inner height.
850
751
  *
851
752
  * @param {HTMLElement} element An element to get the height from.
852
753
  * @returns {number} Element's inner height.
853
754
  */
854
-
855
755
  export function innerHeight(element) {
856
756
  return element.clientHeight || element.innerHeight;
857
757
  }
758
+
858
759
  /**
859
760
  * Returns the element's inner width.
860
761
  *
861
762
  * @param {HTMLElement} element An element to get the width from.
862
763
  * @returns {number} Element's inner width.
863
764
  */
864
-
865
765
  export function innerWidth(element) {
866
766
  return element.clientWidth || element.innerWidth;
867
767
  }
768
+
868
769
  /**
869
770
  * @param {HTMLElement} element An element to which the event is added.
870
771
  * @param {string} event The event name.
871
772
  * @param {Function} callback The callback to add.
872
773
  */
873
-
874
774
  export function addEvent(element, event, callback) {
875
775
  element.addEventListener(event, callback, false);
876
776
  }
777
+
877
778
  /**
878
779
  * @param {HTMLElement} element An element from which the event is removed.
879
780
  * @param {string} event The event name.
880
781
  * @param {Function} callback The function reference to remove.
881
782
  */
882
-
883
783
  export function removeEvent(element, event, callback) {
884
784
  element.removeEventListener(event, callback, false);
885
785
  }
786
+
886
787
  /**
887
788
  * Returns caret position in text input.
888
789
  *
@@ -890,56 +791,48 @@ export function removeEvent(element, event, callback) {
890
791
  * @param {HTMLElement} el An element to check.
891
792
  * @returns {number}
892
793
  */
893
-
894
794
  export function getCaretPosition(el) {
895
795
  var rootDocument = el.ownerDocument;
896
-
897
796
  if (el.selectionStart) {
898
797
  return el.selectionStart;
899
798
  } else if (rootDocument.selection) {
900
799
  // IE8
901
800
  el.focus();
902
801
  var r = rootDocument.selection.createRange();
903
-
904
802
  if (r === null) {
905
803
  return 0;
906
804
  }
907
-
908
805
  var re = el.createTextRange();
909
806
  var rc = re.duplicate();
910
807
  re.moveToBookmark(r.getBookmark());
911
808
  rc.setEndPoint('EndToStart', re);
912
809
  return rc.text.length;
913
810
  }
914
-
915
811
  return 0;
916
812
  }
813
+
917
814
  /**
918
815
  * Returns end of the selection in text input.
919
816
  *
920
817
  * @param {HTMLElement} el An element to check.
921
818
  * @returns {number}
922
819
  */
923
-
924
820
  export function getSelectionEndPosition(el) {
925
821
  var rootDocument = el.ownerDocument;
926
-
927
822
  if (el.selectionEnd) {
928
823
  return el.selectionEnd;
929
824
  } else if (rootDocument.selection) {
930
825
  // IE8
931
826
  var r = rootDocument.selection.createRange();
932
-
933
827
  if (r === null) {
934
828
  return 0;
935
829
  }
936
-
937
830
  var re = el.createTextRange();
938
831
  return re.text.indexOf(r.text) + r.text.length;
939
832
  }
940
-
941
833
  return 0;
942
834
  }
835
+
943
836
  /**
944
837
  * Returns text under selection.
945
838
  *
@@ -947,31 +840,29 @@ export function getSelectionEndPosition(el) {
947
840
  * @returns {string}
948
841
  */
949
842
  // eslint-disable-next-line no-restricted-globals
950
-
951
843
  export function getSelectionText() {
952
844
  var rootWindow = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
953
845
  var rootDocument = rootWindow.document;
954
846
  var text = '';
955
-
956
847
  if (rootWindow.getSelection) {
957
848
  text = rootWindow.getSelection().toString();
958
849
  } else if (rootDocument.selection && rootDocument.selection.type !== 'Control') {
959
850
  text = rootDocument.selection.createRange().text;
960
851
  }
961
-
962
852
  return text;
963
853
  }
854
+
964
855
  /**
965
856
  * Cross-platform helper to clear text selection.
966
857
  *
967
858
  * @param {Window} [rootWindow] The document window owner.
968
859
  */
969
860
  // eslint-disable-next-line no-restricted-globals
970
-
971
861
  export function clearTextSelection() {
972
862
  var rootWindow = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
973
- var rootDocument = rootWindow.document; // http://stackoverflow.com/questions/3169786/clear-text-selection-with-javascript
863
+ var rootDocument = rootWindow.document;
974
864
 
865
+ // http://stackoverflow.com/questions/3169786/clear-text-selection-with-javascript
975
866
  if (rootWindow.getSelection) {
976
867
  if (rootWindow.getSelection().empty) {
977
868
  // Chrome
@@ -985,6 +876,7 @@ export function clearTextSelection() {
985
876
  rootDocument.selection.empty();
986
877
  }
987
878
  }
879
+
988
880
  /**
989
881
  * Sets caret position in text input.
990
882
  *
@@ -993,15 +885,12 @@ export function clearTextSelection() {
993
885
  * @param {number} pos The selection start position.
994
886
  * @param {number} endPos The selection end position.
995
887
  */
996
-
997
888
  export function setCaretPosition(element, pos, endPos) {
998
889
  if (endPos === void 0) {
999
890
  endPos = pos;
1000
891
  }
1001
-
1002
892
  if (element.setSelectionRange) {
1003
893
  element.focus();
1004
-
1005
894
  try {
1006
895
  element.setSelectionRange(pos, endPos);
1007
896
  } catch (err) {
@@ -1014,6 +903,7 @@ export function setCaretPosition(element, pos, endPos) {
1014
903
  }
1015
904
  }
1016
905
  var cachedScrollbarWidth;
906
+
1017
907
  /**
1018
908
  * Helper to calculate scrollbar width.
1019
909
  * Source: https://stackoverflow.com/questions/986937/how-can-i-get-the-browsers-scrollbar-sizes.
@@ -1023,7 +913,6 @@ var cachedScrollbarWidth;
1023
913
  * @returns {number}
1024
914
  */
1025
915
  // eslint-disable-next-line no-restricted-globals
1026
-
1027
916
  function walkontableCalculateScrollbarWidth() {
1028
917
  var rootDocument = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;
1029
918
  var inner = rootDocument.createElement('div');
@@ -1043,14 +932,13 @@ function walkontableCalculateScrollbarWidth() {
1043
932
  var w1 = inner.offsetWidth;
1044
933
  outer.style.overflow = 'scroll';
1045
934
  var w2 = inner.offsetWidth;
1046
-
1047
935
  if (w1 === w2) {
1048
936
  w2 = outer.clientWidth;
1049
937
  }
1050
-
1051
938
  (rootDocument.body || rootDocument.documentElement).removeChild(outer);
1052
939
  return w1 - w2;
1053
940
  }
941
+
1054
942
  /**
1055
943
  * Returns the computed width of the native browser scroll bar.
1056
944
  *
@@ -1058,37 +946,34 @@ function walkontableCalculateScrollbarWidth() {
1058
946
  * @returns {number} Width.
1059
947
  */
1060
948
  // eslint-disable-next-line no-restricted-globals
1061
-
1062
-
1063
949
  export function getScrollbarWidth() {
1064
950
  var rootDocument = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;
1065
-
1066
951
  if (cachedScrollbarWidth === void 0) {
1067
952
  cachedScrollbarWidth = walkontableCalculateScrollbarWidth(rootDocument);
1068
953
  }
1069
-
1070
954
  return cachedScrollbarWidth;
1071
955
  }
956
+
1072
957
  /**
1073
958
  * Checks if the provided element has a vertical scrollbar.
1074
959
  *
1075
960
  * @param {HTMLElement} element An element to check.
1076
961
  * @returns {boolean}
1077
962
  */
1078
-
1079
963
  export function hasVerticalScrollbar(element) {
1080
964
  return element.offsetWidth !== element.clientWidth;
1081
965
  }
966
+
1082
967
  /**
1083
968
  * Checks if the provided element has a vertical scrollbar.
1084
969
  *
1085
970
  * @param {HTMLElement} element An element to check.
1086
971
  * @returns {boolean}
1087
972
  */
1088
-
1089
973
  export function hasHorizontalScrollbar(element) {
1090
974
  return element.offsetHeight !== element.clientHeight;
1091
975
  }
976
+
1092
977
  /**
1093
978
  * Sets overlay position depending on it's type and used browser.
1094
979
  *
@@ -1096,7 +981,6 @@ export function hasHorizontalScrollbar(element) {
1096
981
  * @param {number|string} left The left position of the overlay.
1097
982
  * @param {number|string} top The top position of the overlay.
1098
983
  */
1099
-
1100
984
  export function setOverlayPosition(overlayElem, left, top) {
1101
985
  if (isIE9()) {
1102
986
  overlayElem.style.top = top;
@@ -1107,26 +991,24 @@ export function setOverlayPosition(overlayElem, left, top) {
1107
991
  overlayElem.style.transform = "translate3d(".concat(left, ",").concat(top, ",0)");
1108
992
  }
1109
993
  }
994
+
1110
995
  /**
1111
996
  * @param {HTMLElement} element An element to process.
1112
997
  * @returns {number|Array}
1113
998
  */
1114
-
1115
999
  export function getCssTransform(element) {
1116
1000
  var transform;
1117
-
1118
1001
  if (element.style.transform && (transform = element.style.transform) !== '') {
1119
1002
  return ['transform', transform];
1120
1003
  } else if (element.style['-webkit-transform'] && (transform = element.style['-webkit-transform']) !== '') {
1121
1004
  return ['-webkit-transform', transform];
1122
1005
  }
1123
-
1124
1006
  return -1;
1125
1007
  }
1008
+
1126
1009
  /**
1127
1010
  * @param {HTMLElement} element An element to process.
1128
1011
  */
1129
-
1130
1012
  export function resetCssTransform(element) {
1131
1013
  if (element.style.transform && element.style.transform !== '') {
1132
1014
  element.style.transform = '';
@@ -1134,6 +1016,7 @@ export function resetCssTransform(element) {
1134
1016
  element.style['-webkit-transform'] = '';
1135
1017
  }
1136
1018
  }
1019
+
1137
1020
  /**
1138
1021
  * Determines if the given DOM element is an input field.
1139
1022
  * Notice: By 'input' we mean input, textarea and select nodes.
@@ -1141,11 +1024,11 @@ export function resetCssTransform(element) {
1141
1024
  * @param {HTMLElement} element - DOM element.
1142
1025
  * @returns {boolean}
1143
1026
  */
1144
-
1145
1027
  export function isInput(element) {
1146
1028
  var inputs = ['INPUT', 'SELECT', 'TEXTAREA'];
1147
1029
  return element && (inputs.indexOf(element.nodeName) > -1 || element.contentEditable === 'true');
1148
1030
  }
1031
+
1149
1032
  /**
1150
1033
  * Determines if the given DOM element is an input field placed OUTSIDE of HOT.
1151
1034
  * Notice: By 'input' we mean input, textarea and select nodes which have defined 'data-hot-input' attribute.
@@ -1153,30 +1036,28 @@ export function isInput(element) {
1153
1036
  * @param {HTMLElement} element - DOM element.
1154
1037
  * @returns {boolean}
1155
1038
  */
1156
-
1157
1039
  export function isOutsideInput(element) {
1158
1040
  return isInput(element) && element.hasAttribute('data-hot-input') === false;
1159
1041
  }
1042
+
1160
1043
  /**
1161
1044
  * Check if the given DOM element can be focused (by using "select" method).
1162
1045
  *
1163
1046
  * @param {HTMLElement} element - DOM element.
1164
1047
  */
1165
-
1166
1048
  export function selectElementIfAllowed(element) {
1167
1049
  var activeElement = element.ownerDocument.activeElement;
1168
-
1169
1050
  if (!isOutsideInput(activeElement)) {
1170
1051
  element.select();
1171
1052
  }
1172
1053
  }
1054
+
1173
1055
  /**
1174
1056
  * Check if the provided element is detached from DOM.
1175
1057
  *
1176
1058
  * @param {HTMLElement} element HTML element to be checked.
1177
1059
  * @returns {boolean} `true` if the element is detached, `false` otherwise.
1178
1060
  */
1179
-
1180
1061
  export function isDetached(element) {
1181
1062
  return !element.parentNode;
1182
1063
  }