handsontable 12.1.3 → 12.3.0-next-bb1a7c2-20221208

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