jqtree 1.6.0 → 1.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/.eslintrc +3 -11
  2. package/.github/workflows/ci.yml +48 -23
  3. package/.github/workflows/codeql-analysis.yml +9 -5
  4. package/.prettier +3 -0
  5. package/README.md +11 -8
  6. package/bower.json +1 -1
  7. package/{.postcssrc → config/.postcssrc} +0 -0
  8. package/config/babel.config.json +11 -0
  9. package/config/babel.coverage.config.json +4 -0
  10. package/{jest-jsdom.config.js → config/jest.config.js} +9 -5
  11. package/config/playwright.config.js +18 -0
  12. package/config/production +4 -0
  13. package/{rollup.config.js → config/rollup.config.js} +19 -14
  14. package/{jqtree.postcss → css/jqtree.postcss} +3 -0
  15. package/devserver/index.html +1 -9
  16. package/docs/Gemfile +2 -0
  17. package/docs/Gemfile.lock +263 -0
  18. package/{_config.yml → docs/_config.yml} +8 -1
  19. package/{_entries → docs/_entries}/01_general.md +0 -0
  20. package/{_entries → docs/_entries}/02_introduction.md +0 -0
  21. package/{_entries → docs/_entries}/03_features.md +1 -1
  22. package/{_entries → docs/_entries}/04_demo.html +1 -7
  23. package/{_entries → docs/_entries}/05_requirements.md +0 -0
  24. package/{_entries → docs/_entries}/06_downloads.md +0 -0
  25. package/{_entries → docs/_entries}/07_tutorial.md +0 -0
  26. package/{_entries → docs/_entries}/08_examples.md +0 -0
  27. package/{_entries → docs/_entries}/09_usecases.md +0 -0
  28. package/{_entries → docs/_entries}/10_changelog.md +14 -0
  29. package/{_entries → docs/_entries}/11_options.md +0 -0
  30. package/{_entries → docs/_entries}/12_animationspeed.md +0 -0
  31. package/{_entries → docs/_entries}/13_autoescape.md +0 -0
  32. package/{_entries → docs/_entries}/14_autoopen.md +0 -0
  33. package/{_entries → docs/_entries}/15_buttonleft.md +0 -0
  34. package/{_entries → docs/_entries}/16_closedicon.md +0 -0
  35. package/{_entries → docs/_entries}/17_data.md +0 -0
  36. package/{_entries → docs/_entries}/18_datafilter.md +0 -0
  37. package/{_entries → docs/_entries}/19_data-url.md +0 -0
  38. package/{_entries → docs/_entries}/20_draganddrop.md +0 -0
  39. package/{_entries → docs/_entries}/21_keyboardsupport.md +0 -0
  40. package/{_entries → docs/_entries}/22_oncanmove.md +0 -0
  41. package/{_entries → docs/_entries}/23_oncanmoveto.md +2 -2
  42. package/{_entries → docs/_entries}/24_oncanselectnode.md +0 -0
  43. package/{_entries → docs/_entries}/25_oncreateli.md +2 -2
  44. package/{_entries → docs/_entries}/26_ondragmove.md +0 -0
  45. package/{_entries → docs/_entries}/27_ondragstop.md +0 -0
  46. package/{_entries → docs/_entries}/28_onismovehandle.md +0 -0
  47. package/{_entries → docs/_entries}/29_onloadfailed.md +0 -0
  48. package/{_entries → docs/_entries}/30_onloading.md +2 -2
  49. package/{_entries → docs/_entries}/31_openedicon.md +0 -0
  50. package/{_entries → docs/_entries}/32_openfolderdelay.md +2 -0
  51. package/{_entries → docs/_entries}/33_rtl.md +0 -0
  52. package/{_entries → docs/_entries}/34_savestate.md +0 -0
  53. package/{_entries → docs/_entries}/35_selectable.md +0 -0
  54. package/{_entries → docs/_entries}/36_showemptyfolder.md +0 -0
  55. package/{_entries → docs/_entries}/37_slide.md +0 -0
  56. package/{_entries → docs/_entries}/38_start_dnd_delay.md +0 -0
  57. package/{_entries → docs/_entries}/39_tabindex.md +0 -0
  58. package/{_entries → docs/_entries}/40_usecontextmenu.md +0 -0
  59. package/{_entries → docs/_entries}/41_functions.md +0 -0
  60. package/{_entries → docs/_entries}/42_addparentnode.md +1 -1
  61. package/{_entries → docs/_entries}/43_addnodeafter.md +1 -1
  62. package/{_entries → docs/_entries}/44_addnodebefore.md +1 -1
  63. package/{_entries → docs/_entries}/45_appendnode.md +5 -5
  64. package/{_entries → docs/_entries}/46_closenode.md +0 -0
  65. package/{_entries → docs/_entries}/47_destroy.md +0 -0
  66. package/{_entries → docs/_entries}/48_getnodebycallback.md +0 -0
  67. package/{_entries → docs/_entries}/49_getnodebyid.md +0 -0
  68. package/{_entries → docs/_entries}/50_getnodebyhtmlelement.md +2 -2
  69. package/{_entries → docs/_entries}/51_getselectednode.md +0 -0
  70. package/{_entries → docs/_entries}/52_getstate.md +0 -0
  71. package/{_entries → docs/_entries}/53_gettree.md +1 -1
  72. package/{_entries → docs/_entries}/54_isdragging.md +1 -1
  73. package/{_entries → docs/_entries}/55_loaddata.md +3 -3
  74. package/{_entries → docs/_entries}/56_loaddatafromurl.md +4 -4
  75. package/{_entries → docs/_entries}/57_movedown.md +0 -0
  76. package/{_entries → docs/_entries}/58_movenode.md +3 -3
  77. package/{_entries → docs/_entries}/59_moveup.md +0 -0
  78. package/{_entries → docs/_entries}/60_opennode.md +3 -3
  79. package/docs/_entries/61_prependnode.md +21 -0
  80. package/docs/_entries/62_refresh.md +12 -0
  81. package/{_entries/62_reload.md → docs/_entries/63_reload.md} +2 -2
  82. package/{_entries/63_removenode.md → docs/_entries/64_removenode.md} +0 -0
  83. package/{_entries/64_selectnode.md → docs/_entries/65_selectnode.md} +0 -0
  84. package/{_entries/65_scrolltonode.md → docs/_entries/66_scrolltonode.md} +0 -0
  85. package/{_entries/66_setoption.md → docs/_entries/67_setoption.md} +0 -0
  86. package/{_entries/67_setstate.md → docs/_entries/68_setstate.md} +0 -0
  87. package/{_entries/68_toggle.md → docs/_entries/69_toggle.md} +0 -0
  88. package/{_entries/69_tojson.md → docs/_entries/70_tojson.md} +0 -0
  89. package/{_entries/70_updatenode.md → docs/_entries/71_updatenode.md} +1 -1
  90. package/{_entries/71_events.md → docs/_entries/72_events.md} +0 -0
  91. package/{_entries/72_tree-click.md → docs/_entries/73_tree-click.md} +0 -0
  92. package/{_entries/73_tree-close.md → docs/_entries/74_tree-close.md} +0 -0
  93. package/{_entries/74_tree-contextmenu.md → docs/_entries/75_tree-contextmenu.md} +0 -0
  94. package/{_entries/75_tree-dblclick.md → docs/_entries/76_tree-dblclick.md} +0 -0
  95. package/{_entries/76_tree-init.md → docs/_entries/77_tree-init.md} +0 -0
  96. package/{_entries/77_tree-load-data.md → docs/_entries/78_tree-load-data.md} +0 -0
  97. package/{_entries/78_tree-loading-data.md → docs/_entries/79_tree-loading-data.md} +0 -0
  98. package/{_entries/79_tree-move.md → docs/_entries/80_tree-move.md} +0 -0
  99. package/{_entries/80_tree-refresh.md → docs/_entries/81_tree-refresh.md} +0 -0
  100. package/{_entries/81_tree-open.md → docs/_entries/82_tree-open.md} +0 -0
  101. package/{_entries/82_tree-select.md → docs/_entries/83_tree-select.md} +0 -0
  102. package/{_entries/83_multiple-selection.md → docs/_entries/84_multiple-selection.md} +0 -0
  103. package/{_entries/84_add-to-selection.md → docs/_entries/85_add-to-selection.md} +0 -0
  104. package/{_entries/85_get-selected-nodes.md → docs/_entries/86_get-selected-nodes.md} +0 -0
  105. package/{_entries/86_is-node-selected.md → docs/_entries/87_is-node-selected.md} +1 -1
  106. package/{_entries/87_remove-from-selection.md → docs/_entries/88_remove-from-selection.md} +0 -0
  107. package/{_entries/88_node-functions.md → docs/_entries/89_node-functions.md} +0 -0
  108. package/{_entries/89_children.md → docs/_entries/90_children.md} +0 -0
  109. package/{_entries/90_getdata.md → docs/_entries/91_getdata.md} +2 -2
  110. package/{_entries/91_getlevel.md → docs/_entries/92_getlevel.md} +0 -0
  111. package/{_entries/92_getnextnode.md → docs/_entries/93_getnextnode.md} +0 -0
  112. package/{_entries/93_getnextsibling.md → docs/_entries/94_getnextsibling.md} +0 -0
  113. package/{_entries/94_getpreviousnode.md → docs/_entries/95_getpreviousnode.md} +0 -0
  114. package/{_entries/95_getprevioussibling.md → docs/_entries/96_getprevioussibling.md} +0 -0
  115. package/{_entries/96_parent.md → docs/_entries/97_parent.md} +1 -1
  116. package/{_entries → docs/_entries}/insert.py +0 -0
  117. package/{_entries → docs/_entries}/renumber.py +0 -0
  118. package/{_examples → docs/_examples}/01_load_json_data.html +3 -5
  119. package/{_examples → docs/_examples}/02_load_json_data_from_server.html +3 -5
  120. package/{_examples → docs/_examples}/03_drag_and_drop.html +3 -5
  121. package/{_examples → docs/_examples}/04_save_state.html +3 -5
  122. package/{_examples → docs/_examples}/05_load_on_demand.html +3 -5
  123. package/{_examples → docs/_examples}/06_autoescape.html +3 -5
  124. package/{_examples → docs/_examples}/07_autoscroll.html +3 -5
  125. package/{_examples → docs/_examples}/08_multiple_select.html +3 -5
  126. package/{_examples → docs/_examples}/09_custom_html.html +3 -5
  127. package/{_examples → docs/_examples}/10_icon_buttons.html +3 -5
  128. package/{_examples → docs/_examples}/11_right-to-left.html +3 -5
  129. package/{_examples → docs/_examples}/12_button_on_right.html +3 -5
  130. package/docs/_examples/13_drag_outside.html +48 -0
  131. package/docs/_examples/14_filter.html +111 -0
  132. package/docs/_layouts/example.html +7 -0
  133. package/docs/_layouts/page.html +26 -0
  134. package/docs/documentation.css +3 -0
  135. package/docs/index.html +65 -0
  136. package/docs/jqtree.css +189 -0
  137. package/docs/package.json +22 -0
  138. package/docs/pnpm-lock.yaml +768 -0
  139. package/docs/postcss.config.js +7 -0
  140. package/docs/static/bower.json +8 -0
  141. package/docs/static/bower_components/fontawesome/css/all.min.css +5 -0
  142. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-brands-400.eot +0 -0
  143. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-brands-400.svg +774 -627
  144. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-brands-400.ttf +0 -0
  145. package/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.woff +0 -0
  146. package/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
  147. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-regular-400.eot +0 -0
  148. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-regular-400.svg +93 -95
  149. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-regular-400.ttf +0 -0
  150. package/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.woff +0 -0
  151. package/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
  152. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-solid-900.eot +0 -0
  153. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-solid-900.svg +1164 -1074
  154. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-solid-900.ttf +0 -0
  155. package/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.woff +0 -0
  156. package/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
  157. package/{static → docs/static}/bower_components/jquery/dist/jquery.js +118 -109
  158. package/docs/static/bower_components/jquery/dist/jquery.min.js +2 -0
  159. package/{static → docs/static}/bower_components/jquery-mockjax/dist/jquery.mockjax.js +15 -9
  160. package/docs/static/documentation.css +1313 -0
  161. package/docs/static/documentation.js +26 -0
  162. package/{static → docs/static}/example.css +14 -33
  163. package/{static → docs/static}/example.postcss +15 -32
  164. package/{static → docs/static}/example_data.js +33 -36
  165. package/{static → docs/static}/examples/autoescape.js +0 -0
  166. package/{static → docs/static}/examples/autoscroll.js +0 -0
  167. package/{static → docs/static}/examples/button-on-right.js +0 -0
  168. package/{static → docs/static}/examples/custom_html.js +5 -9
  169. package/{static → docs/static}/examples/drag-outside.js +0 -0
  170. package/{static → docs/static}/examples/drag_and_drop.js +0 -0
  171. package/docs/static/examples/filter.js +63 -0
  172. package/{static → docs/static}/examples/icon_buttons.js +0 -0
  173. package/{static → docs/static}/examples/load_json_data.js +0 -0
  174. package/{static → docs/static}/examples/load_json_data_from_server.js +0 -0
  175. package/{static → docs/static}/examples/load_on_demand.js +0 -0
  176. package/{static → docs/static}/examples/multiple_select.js +0 -0
  177. package/{static → docs/static}/examples/right-to-left.js +0 -0
  178. package/{static → docs/static}/examples/save_state.js +0 -0
  179. package/{static → docs/static}/monokai.css +0 -0
  180. package/{static → docs/static}/spinner.gif +0 -0
  181. package/docs/tailwind.config.js +16 -0
  182. package/docs/tree.jquery.js +21 -0
  183. package/jqtree.css +4 -1
  184. package/lib/dataLoader.js +146 -98
  185. package/lib/dragAndDropHandler.js +672 -470
  186. package/lib/elementsRenderer.js +282 -197
  187. package/lib/jqtreeOptions.js +1 -2
  188. package/lib/keyHandler.js +134 -87
  189. package/lib/mouse.widget.js +285 -184
  190. package/lib/node.js +691 -505
  191. package/lib/nodeElement.js +329 -205
  192. package/lib/playwright/coverage.js +140 -0
  193. package/lib/playwright/playwright.test.js +298 -179
  194. package/lib/playwright/testUtils.js +267 -0
  195. package/lib/saveStateHandler.js +311 -204
  196. package/lib/scrollHandler.js +293 -199
  197. package/lib/selectNodeHandler.js +140 -100
  198. package/lib/simple.widget.js +184 -109
  199. package/lib/test/global.d.js +3 -0
  200. package/lib/test/jqTree/create.test.js +44 -40
  201. package/lib/test/jqTree/events.test.js +186 -138
  202. package/lib/test/jqTree/keyboard.test.js +216 -199
  203. package/lib/test/jqTree/loadOnDemand.test.js +238 -157
  204. package/lib/test/jqTree/methods.test.js +1289 -1019
  205. package/lib/test/jqTree/options.test.js +491 -410
  206. package/lib/test/node.test.js +1036 -873
  207. package/lib/test/nodeUtil.test.js +21 -20
  208. package/lib/test/support/exampleData.js +35 -23
  209. package/lib/test/support/jqTreeMatchers.js +72 -54
  210. package/lib/test/support/matchers.d.js +1 -0
  211. package/lib/test/support/setupTests.js +9 -3
  212. package/lib/test/support/testUtil.js +35 -15
  213. package/lib/test/support/treeStructure.js +41 -32
  214. package/lib/test/util.test.js +21 -20
  215. package/lib/tree.jquery.d.js +1 -0
  216. package/lib/tree.jquery.js +1264 -886
  217. package/lib/types.js +1 -2
  218. package/lib/typings.d.js +2 -0
  219. package/lib/util.js +19 -8
  220. package/lib/version.js +8 -3
  221. package/package.json +54 -47
  222. package/src/dataLoader.ts +6 -6
  223. package/src/dragAndDropHandler.ts +8 -8
  224. package/src/elementsRenderer.ts +4 -0
  225. package/src/jqtreeOptions.ts +2 -2
  226. package/src/mouse.widget.ts +19 -15
  227. package/src/node.ts +27 -41
  228. package/src/nodeElement.ts +17 -9
  229. package/src/playwright/.eslintrc +5 -0
  230. package/src/playwright/coverage.ts +41 -0
  231. package/src/playwright/playwright.test.ts +75 -77
  232. package/src/playwright/playwright.test.ts-snapshots/with-dragAndDrop-moves-a-node-1-Chromium-darwin.png +0 -0
  233. package/src/playwright/playwright.test.ts-snapshots/with-dragAndDrop-moves-a-node-1-Chromium-linux.png +0 -0
  234. package/src/playwright/playwright.test.ts-snapshots/without-dragAndDrop-displays-a-tree-1-Chromium-darwin.png +0 -0
  235. package/src/playwright/playwright.test.ts-snapshots/without-dragAndDrop-displays-a-tree-1-Chromium-linux.png +0 -0
  236. package/src/playwright/playwright.test.ts-snapshots/without-dragAndDrop-selects-a-node-1-Chromium-darwin.png +0 -0
  237. package/src/playwright/playwright.test.ts-snapshots/without-dragAndDrop-selects-a-node-1-Chromium-linux.png +0 -0
  238. package/src/playwright/testUtils.ts +122 -0
  239. package/src/saveStateHandler.ts +11 -6
  240. package/src/selectNodeHandler.ts +1 -1
  241. package/src/simple.widget.ts +1 -1
  242. package/src/test/.eslintrc +14 -0
  243. package/src/test/jqTree/create.test.ts +0 -1
  244. package/src/test/jqTree/events.test.ts +10 -10
  245. package/src/test/jqTree/keyboard.test.ts +0 -1
  246. package/src/test/jqTree/loadOnDemand.test.ts +56 -11
  247. package/src/test/jqTree/methods.test.ts +72 -55
  248. package/src/test/jqTree/options.test.ts +30 -33
  249. package/src/test/node.test.ts +2 -2
  250. package/src/test/support/jqTreeMatchers.ts +8 -9
  251. package/src/test/support/matchers.d.ts +2 -4
  252. package/src/test/support/setupTests.ts +2 -1
  253. package/src/tree.jquery.d.ts +19 -13
  254. package/src/tree.jquery.ts +35 -28
  255. package/src/version.ts +1 -1
  256. package/tree.jquery.debug.js +4810 -3325
  257. package/tree.jquery.debug.js.map +1 -1
  258. package/tree.jquery.js +3 -3
  259. package/tree.jquery.js.map +1 -1
  260. package/tsconfig.json +1 -0
  261. package/_entries/61_prependnode.md +0 -21
  262. package/_examples/13_drag_outside.html +0 -25
  263. package/_layouts/base.html +0 -55
  264. package/_layouts/frontpage.html +0 -20
  265. package/_layouts/page.html +0 -7
  266. package/index.html +0 -48
  267. package/jest-browser.config.js +0 -18
  268. package/jest-playwright.config.js +0 -21
  269. package/jest.config.js +0 -8
  270. package/lib/playwright/testUtil.js +0 -223
  271. package/lib/playwright/visualRegression.js +0 -128
  272. package/production +0 -5
  273. package/src/playwright/screenshots/displays_a_tree_Desktop.png +0 -0
  274. package/src/playwright/screenshots/displays_a_tree_iPhone 6.png +0 -0
  275. package/src/playwright/screenshots/moves_a_node_Desktop.png +0 -0
  276. package/src/playwright/screenshots/moves_a_node_iPhone 6.png +0 -0
  277. package/src/playwright/screenshots/opens_a_node_Desktop.png +0 -0
  278. package/src/playwright/screenshots/opens_a_node_iPhone 6.png +0 -0
  279. package/src/playwright/screenshots/selects_a_node_Desktop.png +0 -0
  280. package/src/playwright/screenshots/selects_a_node_iPhone 6.png +0 -0
  281. package/src/playwright/testUtil.ts +0 -171
  282. package/src/playwright/visualRegression.ts +0 -88
  283. package/static/bower.json +0 -9
  284. package/static/bower_components/bootstrap/dist/css/bootstrap-theme.min.css +0 -6
  285. package/static/bower_components/bootstrap/dist/css/bootstrap.min.css +0 -6
  286. package/static/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  287. package/static/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg +0 -288
  288. package/static/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  289. package/static/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  290. package/static/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 +0 -0
  291. package/static/bower_components/bootstrap/dist/js/bootstrap.min.js +0 -6
  292. package/static/bower_components/fontawesome/css/all.min.css +0 -5
  293. package/static/bower_components/fontawesome/webfonts/fa-brands-400.woff +0 -0
  294. package/static/bower_components/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
  295. package/static/bower_components/fontawesome/webfonts/fa-regular-400.woff +0 -0
  296. package/static/bower_components/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
  297. package/static/bower_components/fontawesome/webfonts/fa-solid-900.woff +0 -0
  298. package/static/bower_components/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
  299. package/static/bower_components/jquery/dist/jquery.min.js +0 -2
  300. package/static/documentation.css +0 -171
  301. package/static/documentation.js +0 -48
@@ -1,209 +1,303 @@
1
1
  "use strict";
2
- exports.__esModule = true;
3
- var ScrollHandler = /** @class */ (function () {
4
- function ScrollHandler(treeWidget) {
5
- this.treeWidget = treeWidget;
6
- this.previousTop = -1;
7
- this.isInitialized = false;
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
9
+
10
+ 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); }
11
+
12
+ 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; }
13
+
14
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
15
+
16
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
17
+
18
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
19
+
20
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
21
+
22
+ var ScrollHandler = /*#__PURE__*/function () {
23
+ function ScrollHandler(treeWidget) {
24
+ _classCallCheck(this, ScrollHandler);
25
+
26
+ _defineProperty(this, "treeWidget", void 0);
27
+
28
+ _defineProperty(this, "previousTop", void 0);
29
+
30
+ _defineProperty(this, "isInitialized", void 0);
31
+
32
+ _defineProperty(this, "$scrollParent", void 0);
33
+
34
+ _defineProperty(this, "scrollParentTop", void 0);
35
+
36
+ this.treeWidget = treeWidget;
37
+ this.previousTop = -1;
38
+ this.isInitialized = false;
39
+ }
40
+
41
+ _createClass(ScrollHandler, [{
42
+ key: "checkScrolling",
43
+ value: function checkScrolling() {
44
+ this.ensureInit();
45
+ this.checkVerticalScrolling();
46
+ this.checkHorizontalScrolling();
8
47
  }
9
- ScrollHandler.prototype.checkScrolling = function () {
10
- this.ensureInit();
11
- this.checkVerticalScrolling();
12
- this.checkHorizontalScrolling();
13
- };
14
- ScrollHandler.prototype.scrollToY = function (top) {
15
- this.ensureInit();
16
- if (this.$scrollParent) {
17
- this.$scrollParent[0].scrollTop = top;
18
- }
19
- else {
20
- var offset = this.treeWidget.$el.offset();
21
- var treeTop = offset ? offset.top : 0;
22
- jQuery(document).scrollTop(top + treeTop);
23
- }
24
- };
25
- ScrollHandler.prototype.isScrolledIntoView = function ($element) {
26
- this.ensureInit();
27
- var elementBottom;
28
- var viewBottom;
29
- var elementTop;
30
- var viewTop;
31
- var elHeight = $element.height() || 0;
32
- if (this.$scrollParent) {
33
- viewTop = 0;
34
- viewBottom = this.$scrollParent.height() || 0;
35
- var offset = $element.offset();
36
- var originalTop = offset ? offset.top : 0;
37
- elementTop = originalTop - this.scrollParentTop;
38
- elementBottom = elementTop + elHeight;
39
- }
40
- else {
41
- viewTop = jQuery(window).scrollTop() || 0;
42
- var windowHeight = jQuery(window).height() || 0;
43
- viewBottom = viewTop + windowHeight;
44
- var offset = $element.offset();
45
- elementTop = offset ? offset.top : 0;
46
- elementBottom = elementTop + elHeight;
47
- }
48
- return elementBottom <= viewBottom && elementTop >= viewTop;
49
- };
50
- ScrollHandler.prototype.getScrollLeft = function () {
51
- if (!this.$scrollParent) {
52
- return 0;
53
- }
54
- else {
55
- return this.$scrollParent.scrollLeft() || 0;
56
- }
57
- };
58
- ScrollHandler.prototype.initScrollParent = function () {
59
- var _this = this;
60
- var getParentWithOverflow = function () {
61
- var cssAttributes = ["overflow", "overflow-y"];
62
- var hasOverFlow = function ($el) {
63
- for (var _i = 0, cssAttributes_1 = cssAttributes; _i < cssAttributes_1.length; _i++) {
64
- var attr = cssAttributes_1[_i];
65
- var overflowValue = $el.css(attr);
66
- if (overflowValue === "auto" ||
67
- overflowValue === "scroll") {
68
- return true;
69
- }
70
- }
71
- return false;
72
- };
73
- if (hasOverFlow(_this.treeWidget.$el)) {
74
- return _this.treeWidget.$el;
75
- }
76
- for (var _i = 0, _a = _this.treeWidget.$el.parents().get(); _i < _a.length; _i++) {
77
- var el = _a[_i];
78
- var $el = jQuery(el);
79
- if (hasOverFlow($el)) {
80
- return $el;
81
- }
48
+ }, {
49
+ key: "scrollToY",
50
+ value: function scrollToY(top) {
51
+ this.ensureInit();
52
+
53
+ if (this.$scrollParent) {
54
+ this.$scrollParent[0].scrollTop = top;
55
+ } else {
56
+ var offset = this.treeWidget.$el.offset();
57
+ var treeTop = offset ? offset.top : 0;
58
+ jQuery(document).scrollTop(top + treeTop);
59
+ }
60
+ }
61
+ }, {
62
+ key: "isScrolledIntoView",
63
+ value: function isScrolledIntoView($element) {
64
+ this.ensureInit();
65
+ var elementBottom;
66
+ var viewBottom;
67
+ var elementTop;
68
+ var viewTop;
69
+ var elHeight = $element.height() || 0;
70
+
71
+ if (this.$scrollParent) {
72
+ viewTop = 0;
73
+ viewBottom = this.$scrollParent.height() || 0;
74
+ var offset = $element.offset();
75
+ var originalTop = offset ? offset.top : 0;
76
+ elementTop = originalTop - this.scrollParentTop;
77
+ elementBottom = elementTop + elHeight;
78
+ } else {
79
+ viewTop = jQuery(window).scrollTop() || 0;
80
+ var windowHeight = jQuery(window).height() || 0;
81
+ viewBottom = viewTop + windowHeight;
82
+
83
+ var _offset = $element.offset();
84
+
85
+ elementTop = _offset ? _offset.top : 0;
86
+ elementBottom = elementTop + elHeight;
87
+ }
88
+
89
+ return elementBottom <= viewBottom && elementTop >= viewTop;
90
+ }
91
+ }, {
92
+ key: "getScrollLeft",
93
+ value: function getScrollLeft() {
94
+ if (!this.$scrollParent) {
95
+ return 0;
96
+ } else {
97
+ return this.$scrollParent.scrollLeft() || 0;
98
+ }
99
+ }
100
+ }, {
101
+ key: "initScrollParent",
102
+ value: function initScrollParent() {
103
+ var _this = this;
104
+
105
+ var getParentWithOverflow = function getParentWithOverflow() {
106
+ var cssAttributes = ["overflow", "overflow-y"];
107
+
108
+ var hasOverFlow = function hasOverFlow($el) {
109
+ var _iterator = _createForOfIteratorHelper(cssAttributes),
110
+ _step;
111
+
112
+ try {
113
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
114
+ var attr = _step.value;
115
+ var overflowValue = $el.css(attr);
116
+
117
+ if (overflowValue === "auto" || overflowValue === "scroll") {
118
+ return true;
119
+ }
82
120
  }
83
- return null;
84
- };
85
- var setDocumentAsScrollParent = function () {
86
- _this.scrollParentTop = 0;
87
- _this.$scrollParent = null;
121
+ } catch (err) {
122
+ _iterator.e(err);
123
+ } finally {
124
+ _iterator.f();
125
+ }
126
+
127
+ return false;
88
128
  };
89
- if (this.treeWidget.$el.css("position") === "fixed") {
90
- setDocumentAsScrollParent();
91
- }
92
- var $scrollParent = getParentWithOverflow();
93
- if ($scrollParent &&
94
- $scrollParent.length &&
95
- $scrollParent[0].tagName !== "HTML") {
96
- this.$scrollParent = $scrollParent;
97
- var offset = this.$scrollParent.offset();
98
- this.scrollParentTop = offset ? offset.top : 0;
99
- }
100
- else {
101
- setDocumentAsScrollParent();
102
- }
103
- this.isInitialized = true;
104
- };
105
- ScrollHandler.prototype.ensureInit = function () {
106
- if (!this.isInitialized) {
107
- this.initScrollParent();
108
- }
109
- };
110
- ScrollHandler.prototype.handleVerticalScrollingWithScrollParent = function (area) {
111
- var scrollParent = this.$scrollParent && this.$scrollParent[0];
112
- if (!scrollParent) {
113
- return;
114
- }
115
- var distanceBottom = this.scrollParentTop + scrollParent.offsetHeight - area.bottom;
116
- if (distanceBottom < 20) {
117
- scrollParent.scrollTop += 20;
118
- this.treeWidget.refreshHitAreas();
119
- this.previousTop = -1;
120
- }
121
- else if (area.top - this.scrollParentTop < 20) {
122
- scrollParent.scrollTop -= 20;
123
- this.treeWidget.refreshHitAreas();
124
- this.previousTop = -1;
125
- }
126
- };
127
- ScrollHandler.prototype.handleVerticalScrollingWithDocument = function (area) {
128
- var scrollTop = jQuery(document).scrollTop() || 0;
129
- var distanceTop = area.top - scrollTop;
130
- if (distanceTop < 20) {
131
- jQuery(document).scrollTop(scrollTop - 20);
129
+
130
+ if (hasOverFlow(_this.treeWidget.$el)) {
131
+ return _this.treeWidget.$el;
132
132
  }
133
- else {
134
- var windowHeight = jQuery(window).height() || 0;
135
- if (windowHeight - (area.bottom - scrollTop) < 20) {
136
- jQuery(document).scrollTop(scrollTop + 20);
133
+
134
+ var _iterator2 = _createForOfIteratorHelper(_this.treeWidget.$el.parents().get()),
135
+ _step2;
136
+
137
+ try {
138
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
139
+ var el = _step2.value;
140
+ var $el = jQuery(el);
141
+
142
+ if (hasOverFlow($el)) {
143
+ return $el;
137
144
  }
145
+ }
146
+ } catch (err) {
147
+ _iterator2.e(err);
148
+ } finally {
149
+ _iterator2.f();
138
150
  }
139
- };
140
- ScrollHandler.prototype.checkVerticalScrolling = function () {
141
- var hoveredArea = this.treeWidget.dndHandler.hoveredArea;
142
- if (hoveredArea && hoveredArea.top !== this.previousTop) {
143
- this.previousTop = hoveredArea.top;
144
- if (this.$scrollParent) {
145
- this.handleVerticalScrollingWithScrollParent(hoveredArea);
146
- }
147
- else {
148
- this.handleVerticalScrollingWithDocument(hoveredArea);
149
- }
150
- }
151
- };
152
- ScrollHandler.prototype.checkHorizontalScrolling = function () {
153
- var positionInfo = this.treeWidget.dndHandler.positionInfo;
154
- if (!positionInfo) {
155
- return;
151
+
152
+ return null;
153
+ };
154
+
155
+ var setDocumentAsScrollParent = function setDocumentAsScrollParent() {
156
+ _this.scrollParentTop = 0;
157
+ _this.$scrollParent = null;
158
+ };
159
+
160
+ if (this.treeWidget.$el.css("position") === "fixed") {
161
+ setDocumentAsScrollParent();
162
+ }
163
+
164
+ var $scrollParent = getParentWithOverflow();
165
+
166
+ if ($scrollParent && $scrollParent.length && $scrollParent[0].tagName !== "HTML") {
167
+ this.$scrollParent = $scrollParent;
168
+ var offset = this.$scrollParent.offset();
169
+ this.scrollParentTop = offset ? offset.top : 0;
170
+ } else {
171
+ setDocumentAsScrollParent();
172
+ }
173
+
174
+ this.isInitialized = true;
175
+ }
176
+ }, {
177
+ key: "ensureInit",
178
+ value: function ensureInit() {
179
+ if (!this.isInitialized) {
180
+ this.initScrollParent();
181
+ }
182
+ }
183
+ }, {
184
+ key: "handleVerticalScrollingWithScrollParent",
185
+ value: function handleVerticalScrollingWithScrollParent(area) {
186
+ var scrollParent = this.$scrollParent && this.$scrollParent[0];
187
+
188
+ if (!scrollParent) {
189
+ return;
190
+ }
191
+
192
+ var distanceBottom = this.scrollParentTop + scrollParent.offsetHeight - area.bottom;
193
+
194
+ if (distanceBottom < 20) {
195
+ scrollParent.scrollTop += 20;
196
+ this.treeWidget.refreshHitAreas();
197
+ this.previousTop = -1;
198
+ } else if (area.top - this.scrollParentTop < 20) {
199
+ scrollParent.scrollTop -= 20;
200
+ this.treeWidget.refreshHitAreas();
201
+ this.previousTop = -1;
202
+ }
203
+ }
204
+ }, {
205
+ key: "handleVerticalScrollingWithDocument",
206
+ value: function handleVerticalScrollingWithDocument(area) {
207
+ var scrollTop = jQuery(document).scrollTop() || 0;
208
+ var distanceTop = area.top - scrollTop;
209
+
210
+ if (distanceTop < 20) {
211
+ jQuery(document).scrollTop(scrollTop - 20);
212
+ } else {
213
+ var windowHeight = jQuery(window).height() || 0;
214
+
215
+ if (windowHeight - (area.bottom - scrollTop) < 20) {
216
+ jQuery(document).scrollTop(scrollTop + 20);
156
217
  }
218
+ }
219
+ }
220
+ }, {
221
+ key: "checkVerticalScrolling",
222
+ value: function checkVerticalScrolling() {
223
+ var hoveredArea = this.treeWidget.dndHandler.hoveredArea;
224
+
225
+ if (hoveredArea && hoveredArea.top !== this.previousTop) {
226
+ this.previousTop = hoveredArea.top;
227
+
157
228
  if (this.$scrollParent) {
158
- this.handleHorizontalScrollingWithParent(positionInfo);
159
- }
160
- else {
161
- this.handleHorizontalScrollingWithDocument(positionInfo);
162
- }
163
- };
164
- ScrollHandler.prototype.handleHorizontalScrollingWithParent = function (positionInfo) {
165
- if (positionInfo.pageX === undefined ||
166
- positionInfo.pageY === undefined) {
167
- return;
229
+ this.handleVerticalScrollingWithScrollParent(hoveredArea);
230
+ } else {
231
+ this.handleVerticalScrollingWithDocument(hoveredArea);
168
232
  }
169
- var $scrollParent = this.$scrollParent;
170
- var scrollParentOffset = $scrollParent && $scrollParent.offset();
171
- if (!($scrollParent && scrollParentOffset)) {
172
- return;
173
- }
174
- var scrollParent = $scrollParent[0];
175
- var canScrollRight = scrollParent.scrollLeft + scrollParent.clientWidth <
176
- scrollParent.scrollWidth;
177
- var canScrollLeft = scrollParent.scrollLeft > 0;
178
- var rightEdge = scrollParentOffset.left + scrollParent.clientWidth;
179
- var leftEdge = scrollParentOffset.left;
180
- var isNearRightEdge = positionInfo.pageX > rightEdge - 20;
181
- var isNearLeftEdge = positionInfo.pageX < leftEdge + 20;
182
- if (isNearRightEdge && canScrollRight) {
183
- scrollParent.scrollLeft = Math.min(scrollParent.scrollLeft + 20, scrollParent.scrollWidth);
184
- }
185
- else if (isNearLeftEdge && canScrollLeft) {
186
- scrollParent.scrollLeft = Math.max(scrollParent.scrollLeft - 20, 0);
187
- }
188
- };
189
- ScrollHandler.prototype.handleHorizontalScrollingWithDocument = function (positionInfo) {
190
- if (positionInfo.pageX === undefined ||
191
- positionInfo.pageY === undefined) {
192
- return;
193
- }
194
- var $document = jQuery(document);
195
- var scrollLeft = $document.scrollLeft() || 0;
196
- var windowWidth = jQuery(window).width() || 0;
197
- var canScrollLeft = scrollLeft > 0;
198
- var isNearRightEdge = positionInfo.pageX > windowWidth - 20;
199
- var isNearLeftEdge = positionInfo.pageX - scrollLeft < 20;
200
- if (isNearRightEdge) {
201
- $document.scrollLeft(scrollLeft + 20);
202
- }
203
- else if (isNearLeftEdge && canScrollLeft) {
204
- $document.scrollLeft(Math.max(scrollLeft - 20, 0));
205
- }
206
- };
207
- return ScrollHandler;
208
- }());
209
- exports["default"] = ScrollHandler;
233
+ }
234
+ }
235
+ }, {
236
+ key: "checkHorizontalScrolling",
237
+ value: function checkHorizontalScrolling() {
238
+ var positionInfo = this.treeWidget.dndHandler.positionInfo;
239
+
240
+ if (!positionInfo) {
241
+ return;
242
+ }
243
+
244
+ if (this.$scrollParent) {
245
+ this.handleHorizontalScrollingWithParent(positionInfo);
246
+ } else {
247
+ this.handleHorizontalScrollingWithDocument(positionInfo);
248
+ }
249
+ }
250
+ }, {
251
+ key: "handleHorizontalScrollingWithParent",
252
+ value: function handleHorizontalScrollingWithParent(positionInfo) {
253
+ if (positionInfo.pageX === undefined || positionInfo.pageY === undefined) {
254
+ return;
255
+ }
256
+
257
+ var $scrollParent = this.$scrollParent;
258
+ var scrollParentOffset = $scrollParent && $scrollParent.offset();
259
+
260
+ if (!($scrollParent && scrollParentOffset)) {
261
+ return;
262
+ }
263
+
264
+ var scrollParent = $scrollParent[0];
265
+ var canScrollRight = scrollParent.scrollLeft + scrollParent.clientWidth < scrollParent.scrollWidth;
266
+ var canScrollLeft = scrollParent.scrollLeft > 0;
267
+ var rightEdge = scrollParentOffset.left + scrollParent.clientWidth;
268
+ var leftEdge = scrollParentOffset.left;
269
+ var isNearRightEdge = positionInfo.pageX > rightEdge - 20;
270
+ var isNearLeftEdge = positionInfo.pageX < leftEdge + 20;
271
+
272
+ if (isNearRightEdge && canScrollRight) {
273
+ scrollParent.scrollLeft = Math.min(scrollParent.scrollLeft + 20, scrollParent.scrollWidth);
274
+ } else if (isNearLeftEdge && canScrollLeft) {
275
+ scrollParent.scrollLeft = Math.max(scrollParent.scrollLeft - 20, 0);
276
+ }
277
+ }
278
+ }, {
279
+ key: "handleHorizontalScrollingWithDocument",
280
+ value: function handleHorizontalScrollingWithDocument(positionInfo) {
281
+ if (positionInfo.pageX === undefined || positionInfo.pageY === undefined) {
282
+ return;
283
+ }
284
+
285
+ var $document = jQuery(document);
286
+ var scrollLeft = $document.scrollLeft() || 0;
287
+ var windowWidth = jQuery(window).width() || 0;
288
+ var canScrollLeft = scrollLeft > 0;
289
+ var isNearRightEdge = positionInfo.pageX > windowWidth - 20;
290
+ var isNearLeftEdge = positionInfo.pageX - scrollLeft < 20;
291
+
292
+ if (isNearRightEdge) {
293
+ $document.scrollLeft(scrollLeft + 20);
294
+ } else if (isNearLeftEdge && canScrollLeft) {
295
+ $document.scrollLeft(Math.max(scrollLeft - 20, 0));
296
+ }
297
+ }
298
+ }]);
299
+
300
+ return ScrollHandler;
301
+ }();
302
+
303
+ exports["default"] = ScrollHandler;