handsontable 12.1.3 → 12.3.0-next-bb1a7c2-20221208

Sign up to get free protection for your applications and to get access to all the features.
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
  }