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