handsontable 12.1.3 → 12.2.0

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