jqtree 1.6.2 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/.eslintrc +3 -12
  2. package/.github/workflows/ci.yml +57 -30
  3. package/.github/workflows/codeql-analysis.yml +9 -5
  4. package/.prettier +3 -0
  5. package/.tool-versions +1 -0
  6. package/README.md +12 -9
  7. package/bower.json +10 -3
  8. package/{.postcssrc → config/.postcssrc} +0 -0
  9. package/{babel.config.json → config/babel.config.json} +0 -0
  10. package/{babel.coverage.config.json → config/babel.coverage.config.json} +0 -0
  11. package/{jest-jsdom.config.js → config/jest.config.js} +8 -3
  12. package/config/playwright.config.js +18 -0
  13. package/config/production +4 -0
  14. package/{rollup.config.js → config/rollup.config.mjs} +3 -8
  15. package/{jqtree.postcss → css/jqtree.postcss} +0 -0
  16. package/devserver/index.html +1 -9
  17. package/docs/Gemfile +2 -0
  18. package/docs/Gemfile.lock +263 -0
  19. package/{_config.yml → docs/_config.yml} +8 -1
  20. package/{_entries → docs/_entries}/01_general.md +0 -0
  21. package/{_entries → docs/_entries}/02_introduction.md +0 -0
  22. package/{_entries → docs/_entries}/03_features.md +1 -1
  23. package/{_entries → docs/_entries}/04_demo.html +1 -7
  24. package/{_entries → docs/_entries}/05_requirements.md +0 -0
  25. package/{_entries → docs/_entries}/06_downloads.md +0 -0
  26. package/{_entries → docs/_entries}/07_tutorial.md +0 -0
  27. package/{_entries → docs/_entries}/08_examples.md +0 -0
  28. package/{_entries → docs/_entries}/09_usecases.md +0 -0
  29. package/{_entries → docs/_entries}/10_changelog.md +13 -0
  30. package/{_entries → docs/_entries}/11_options.md +0 -0
  31. package/{_entries → docs/_entries}/12_animationspeed.md +0 -0
  32. package/{_entries → docs/_entries}/13_autoescape.md +0 -0
  33. package/{_entries → docs/_entries}/14_autoopen.md +0 -0
  34. package/{_entries → docs/_entries}/15_buttonleft.md +0 -0
  35. package/{_entries → docs/_entries}/16_closedicon.md +0 -0
  36. package/{_entries → docs/_entries}/17_data.md +0 -0
  37. package/{_entries → docs/_entries}/18_datafilter.md +0 -0
  38. package/{_entries → docs/_entries}/19_data-url.md +0 -0
  39. package/{_entries → docs/_entries}/20_draganddrop.md +0 -0
  40. package/{_entries → docs/_entries}/21_keyboardsupport.md +0 -0
  41. package/{_entries → docs/_entries}/22_oncanmove.md +0 -0
  42. package/{_entries → docs/_entries}/23_oncanmoveto.md +2 -2
  43. package/{_entries → docs/_entries}/24_oncanselectnode.md +0 -0
  44. package/{_entries → docs/_entries}/25_oncreateli.md +2 -2
  45. package/{_entries → docs/_entries}/26_ondragmove.md +0 -0
  46. package/{_entries → docs/_entries}/27_ondragstop.md +0 -0
  47. package/{_entries → docs/_entries}/28_onismovehandle.md +0 -0
  48. package/{_entries → docs/_entries}/29_onloadfailed.md +0 -0
  49. package/{_entries → docs/_entries}/30_onloading.md +2 -2
  50. package/{_entries → docs/_entries}/31_openedicon.md +0 -0
  51. package/{_entries → docs/_entries}/32_openfolderdelay.md +2 -0
  52. package/{_entries → docs/_entries}/33_rtl.md +0 -0
  53. package/{_entries → docs/_entries}/34_savestate.md +0 -0
  54. package/{_entries → docs/_entries}/35_selectable.md +0 -0
  55. package/{_entries → docs/_entries}/36_showemptyfolder.md +0 -0
  56. package/{_entries → docs/_entries}/37_slide.md +0 -0
  57. package/{_entries → docs/_entries}/38_start_dnd_delay.md +0 -0
  58. package/{_entries → docs/_entries}/39_tabindex.md +0 -0
  59. package/{_entries → docs/_entries}/40_usecontextmenu.md +0 -0
  60. package/{_entries → docs/_entries}/41_functions.md +0 -0
  61. package/{_entries → docs/_entries}/42_addparentnode.md +1 -1
  62. package/{_entries → docs/_entries}/43_addnodeafter.md +1 -1
  63. package/{_entries → docs/_entries}/44_addnodebefore.md +1 -1
  64. package/{_entries → docs/_entries}/45_appendnode.md +5 -5
  65. package/{_entries → docs/_entries}/46_closenode.md +0 -0
  66. package/{_entries → docs/_entries}/47_destroy.md +0 -0
  67. package/{_entries → docs/_entries}/48_getnodebycallback.md +0 -0
  68. package/{_entries → docs/_entries}/49_getnodebyid.md +0 -0
  69. package/{_entries → docs/_entries}/50_getnodebyhtmlelement.md +2 -2
  70. package/{_entries → docs/_entries}/51_getselectednode.md +0 -0
  71. package/{_entries → docs/_entries}/52_getstate.md +0 -0
  72. package/{_entries → docs/_entries}/53_gettree.md +1 -1
  73. package/{_entries → docs/_entries}/54_isdragging.md +1 -1
  74. package/{_entries → docs/_entries}/55_loaddata.md +3 -3
  75. package/{_entries → docs/_entries}/56_loaddatafromurl.md +4 -4
  76. package/{_entries → docs/_entries}/57_movedown.md +0 -0
  77. package/{_entries → docs/_entries}/58_movenode.md +3 -3
  78. package/{_entries → docs/_entries}/59_moveup.md +0 -0
  79. package/{_entries → docs/_entries}/60_opennode.md +3 -3
  80. package/docs/_entries/61_prependnode.md +21 -0
  81. package/{_entries → docs/_entries}/62_refresh.md +0 -0
  82. package/{_entries → docs/_entries}/63_reload.md +2 -2
  83. package/{_entries → docs/_entries}/64_removenode.md +0 -0
  84. package/{_entries → docs/_entries}/65_selectnode.md +0 -0
  85. package/{_entries → docs/_entries}/66_scrolltonode.md +0 -0
  86. package/{_entries → docs/_entries}/67_setoption.md +0 -0
  87. package/{_entries → docs/_entries}/68_setstate.md +0 -0
  88. package/{_entries → docs/_entries}/69_toggle.md +0 -0
  89. package/{_entries → docs/_entries}/70_tojson.md +0 -0
  90. package/{_entries → docs/_entries}/71_updatenode.md +1 -1
  91. package/{_entries → docs/_entries}/72_events.md +0 -0
  92. package/{_entries → docs/_entries}/73_tree-click.md +0 -0
  93. package/{_entries → docs/_entries}/74_tree-close.md +0 -0
  94. package/{_entries → docs/_entries}/75_tree-contextmenu.md +0 -0
  95. package/{_entries → docs/_entries}/76_tree-dblclick.md +0 -0
  96. package/{_entries → docs/_entries}/77_tree-init.md +0 -0
  97. package/{_entries → docs/_entries}/78_tree-load-data.md +0 -0
  98. package/{_entries → docs/_entries}/79_tree-loading-data.md +0 -0
  99. package/{_entries → docs/_entries}/80_tree-move.md +0 -0
  100. package/{_entries → docs/_entries}/81_tree-refresh.md +0 -0
  101. package/{_entries → docs/_entries}/82_tree-open.md +0 -0
  102. package/{_entries → docs/_entries}/83_tree-select.md +0 -0
  103. package/{_entries → docs/_entries}/84_multiple-selection.md +0 -0
  104. package/{_entries → docs/_entries}/85_add-to-selection.md +0 -0
  105. package/{_entries → docs/_entries}/86_get-selected-nodes.md +0 -0
  106. package/{_entries → docs/_entries}/87_is-node-selected.md +1 -1
  107. package/{_entries → docs/_entries}/88_remove-from-selection.md +0 -0
  108. package/{_entries → docs/_entries}/89_node-functions.md +0 -0
  109. package/{_entries → docs/_entries}/90_children.md +0 -0
  110. package/{_entries → docs/_entries}/91_getdata.md +2 -2
  111. package/{_entries → docs/_entries}/92_getlevel.md +0 -0
  112. package/docs/_entries/93_getnextnode.md +15 -0
  113. package/{_entries → docs/_entries}/94_getnextsibling.md +0 -0
  114. package/{_entries/95_getpreviousnode.md → docs/_entries/95_getnextvisiblenode.md} +1 -1
  115. package/docs/_entries/96_getpreviousnode.md +0 -0
  116. package/{_entries/96_getprevioussibling.md → docs/_entries/97_getprevioussibling.md} +0 -0
  117. package/docs/_entries/98_getpreviousvisiblenode.md +14 -0
  118. package/{_entries/97_parent.md → docs/_entries/99_parent.md} +1 -1
  119. package/{_entries → docs/_entries}/insert.py +0 -0
  120. package/{_entries → docs/_entries}/renumber.py +0 -0
  121. package/{_examples → docs/_examples}/01_load_json_data.html +3 -5
  122. package/{_examples → docs/_examples}/02_load_json_data_from_server.html +3 -5
  123. package/{_examples → docs/_examples}/03_drag_and_drop.html +3 -5
  124. package/{_examples → docs/_examples}/04_save_state.html +3 -5
  125. package/{_examples → docs/_examples}/05_load_on_demand.html +3 -5
  126. package/{_examples → docs/_examples}/06_autoescape.html +3 -5
  127. package/{_examples → docs/_examples}/07_autoscroll.html +3 -5
  128. package/{_examples → docs/_examples}/08_multiple_select.html +3 -5
  129. package/{_examples → docs/_examples}/09_custom_html.html +3 -5
  130. package/{_examples → docs/_examples}/10_icon_buttons.html +3 -5
  131. package/{_examples → docs/_examples}/11_right-to-left.html +3 -5
  132. package/{_examples → docs/_examples}/12_button_on_right.html +3 -5
  133. package/docs/_examples/13_drag_outside.html +48 -0
  134. package/{_examples → docs/_examples}/14_filter.html +7 -9
  135. package/docs/_layouts/example.html +7 -0
  136. package/{_layouts/base.html → docs/_layouts/page.html} +4 -11
  137. package/docs/documentation.css +3 -0
  138. package/docs/index.html +65 -0
  139. package/docs/jqtree.css +189 -0
  140. package/docs/package.json +22 -0
  141. package/docs/pnpm-lock.yaml +798 -0
  142. package/docs/postcss.config.js +7 -0
  143. package/{static → docs/static}/bower.json +1 -2
  144. package/{static → docs/static}/bower_components/fontawesome/css/all.min.css +0 -0
  145. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-brands-400.eot +0 -0
  146. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-brands-400.svg +0 -0
  147. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-brands-400.ttf +0 -0
  148. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-brands-400.woff +0 -0
  149. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
  150. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-regular-400.eot +0 -0
  151. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-regular-400.svg +0 -0
  152. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-regular-400.ttf +0 -0
  153. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-regular-400.woff +0 -0
  154. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
  155. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-solid-900.eot +0 -0
  156. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-solid-900.svg +0 -0
  157. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-solid-900.ttf +0 -0
  158. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-solid-900.woff +0 -0
  159. package/{static → docs/static}/bower_components/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
  160. package/{static → docs/static}/bower_components/jquery/dist/jquery.js +209 -97
  161. package/docs/static/bower_components/jquery/dist/jquery.min.js +2 -0
  162. package/{static → docs/static}/bower_components/jquery-mockjax/dist/jquery.mockjax.js +0 -0
  163. package/docs/static/documentation.css +1453 -0
  164. package/docs/static/documentation.js +26 -0
  165. package/{static → docs/static}/example.css +5 -38
  166. package/{static → docs/static}/example.postcss +5 -35
  167. package/{static → docs/static}/example_data.js +0 -0
  168. package/{static → docs/static}/examples/autoescape.js +0 -0
  169. package/{static → docs/static}/examples/autoscroll.js +0 -0
  170. package/{static → docs/static}/examples/button-on-right.js +0 -0
  171. package/{static → docs/static}/examples/custom_html.js +5 -9
  172. package/{static → docs/static}/examples/drag-outside.js +0 -0
  173. package/{static → docs/static}/examples/drag_and_drop.js +0 -0
  174. package/{static → docs/static}/examples/filter.js +2 -2
  175. package/{static → docs/static}/examples/icon_buttons.js +0 -0
  176. package/{static → docs/static}/examples/load_json_data.js +0 -0
  177. package/{static → docs/static}/examples/load_json_data_from_server.js +0 -0
  178. package/{static → docs/static}/examples/load_on_demand.js +0 -0
  179. package/{static → docs/static}/examples/multiple_select.js +0 -0
  180. package/{static → docs/static}/examples/right-to-left.js +0 -0
  181. package/{static → docs/static}/examples/save_state.js +0 -0
  182. package/{static → docs/static}/monokai.css +0 -0
  183. package/{static → docs/static}/spinner.gif +0 -0
  184. package/docs/tailwind.config.js +16 -0
  185. package/docs/tree.jquery.js +21 -0
  186. package/lib/dataLoader.js +5 -31
  187. package/lib/dragAndDropHandler.js +26 -135
  188. package/lib/elementsRenderer.js +29 -59
  189. package/lib/keyHandler.js +8 -32
  190. package/lib/mouse.widget.js +16 -77
  191. package/lib/node.js +60 -125
  192. package/lib/nodeElement.js +8 -75
  193. package/lib/playwright/coverage.js +101 -0
  194. package/lib/playwright/playwright.test.js +212 -182
  195. package/lib/playwright/testUtils.js +201 -0
  196. package/lib/saveStateHandler.js +12 -61
  197. package/lib/scrollHandler.js +17 -74
  198. package/lib/selectNodeHandler.js +5 -24
  199. package/lib/simple.widget.js +18 -53
  200. package/lib/test/jqTree/create.test.js +0 -4
  201. package/lib/test/jqTree/events.test.js +10 -16
  202. package/lib/test/jqTree/keyboard.test.js +0 -6
  203. package/lib/test/jqTree/loadOnDemand.test.js +107 -139
  204. package/lib/test/jqTree/methods.test.js +136 -159
  205. package/lib/test/jqTree/options.test.js +53 -63
  206. package/lib/test/node.test.js +127 -72
  207. package/lib/test/nodeUtil.test.js +0 -1
  208. package/lib/test/support/jqTreeMatchers.js +4 -9
  209. package/lib/test/support/setupTests.js +0 -4
  210. package/lib/test/support/testUtil.js +2 -11
  211. package/lib/test/support/treeStructure.js +0 -6
  212. package/lib/test/util.test.js +0 -1
  213. package/lib/tree.jquery.js +32 -243
  214. package/lib/util.js +0 -6
  215. package/lib/version.js +1 -1
  216. package/package.json +54 -54
  217. package/src/dragAndDropHandler.ts +8 -4
  218. package/src/jqtreeOptions.ts +1 -1
  219. package/src/keyHandler.ts +3 -3
  220. package/src/node.ts +43 -12
  221. package/src/playwright/.eslintrc +2 -2
  222. package/src/playwright/coverage.ts +41 -0
  223. package/src/playwright/playwright.test.ts +50 -52
  224. package/src/playwright/playwright.test.ts-snapshots/with-dragAndDrop-moves-a-node-1-Chromium-darwin.png +0 -0
  225. package/src/playwright/playwright.test.ts-snapshots/with-dragAndDrop-moves-a-node-1-Chromium-linux.png +0 -0
  226. package/src/playwright/playwright.test.ts-snapshots/without-dragAndDrop-displays-a-tree-1-Chromium-darwin.png +0 -0
  227. package/src/playwright/playwright.test.ts-snapshots/without-dragAndDrop-displays-a-tree-1-Chromium-linux.png +0 -0
  228. package/src/playwright/playwright.test.ts-snapshots/without-dragAndDrop-selects-a-node-1-Chromium-darwin.png +0 -0
  229. package/src/playwright/playwright.test.ts-snapshots/without-dragAndDrop-selects-a-node-1-Chromium-linux.png +0 -0
  230. package/src/playwright/testUtils.ts +122 -0
  231. package/src/test/.eslintrc +15 -3
  232. package/src/test/jqTree/events.test.ts +10 -9
  233. package/src/test/jqTree/loadOnDemand.test.ts +10 -10
  234. package/src/test/jqTree/methods.test.ts +37 -45
  235. package/src/test/jqTree/options.test.ts +26 -28
  236. package/src/test/node.test.ts +146 -54
  237. package/src/tree.jquery.d.ts +1 -1
  238. package/src/tree.jquery.ts +6 -5
  239. package/src/version.ts +1 -1
  240. package/tree.jquery.debug.js +217 -867
  241. package/tree.jquery.debug.js.map +1 -1
  242. package/tree.jquery.js +3 -3
  243. package/tree.jquery.js.map +1 -1
  244. package/_entries/61_prependnode.md +0 -21
  245. package/_entries/93_getnextnode.md +0 -12
  246. package/_examples/13_drag_outside.html +0 -26
  247. package/_layouts/frontpage.html +0 -20
  248. package/_layouts/page.html +0 -7
  249. package/index.html +0 -48
  250. package/jest-browser.config.js +0 -15
  251. package/jest-playwright.config.js +0 -21
  252. package/jest.config.js +0 -8
  253. package/lib/playwright/testUtil.js +0 -459
  254. package/lib/playwright/visualRegression.js +0 -193
  255. package/production +0 -5
  256. package/src/playwright/screenshots/displays_a_tree_Desktop.png +0 -0
  257. package/src/playwright/screenshots/displays_a_tree_iPhone 6.png +0 -0
  258. package/src/playwright/screenshots/moves_a_node_Desktop.png +0 -0
  259. package/src/playwright/screenshots/moves_a_node_iPhone 6.png +0 -0
  260. package/src/playwright/screenshots/opens_a_node_Desktop.png +0 -0
  261. package/src/playwright/screenshots/opens_a_node_iPhone 6.png +0 -0
  262. package/src/playwright/screenshots/selects_a_node_Desktop.png +0 -0
  263. package/src/playwright/screenshots/selects_a_node_iPhone 6.png +0 -0
  264. package/src/playwright/testUtil.ts +0 -170
  265. package/src/playwright/visualRegression.ts +0 -88
  266. package/static/bower_components/bootstrap/dist/css/bootstrap-theme.min.css +0 -6
  267. package/static/bower_components/bootstrap/dist/css/bootstrap.min.css +0 -6
  268. package/static/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  269. package/static/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg +0 -288
  270. package/static/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  271. package/static/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  272. package/static/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 +0 -0
  273. package/static/bower_components/bootstrap/dist/js/bootstrap.min.js +0 -6
  274. package/static/bower_components/jquery/dist/jquery.min.js +0 -2
  275. package/static/documentation.css +0 -171
  276. package/static/documentation.js +0 -48
@@ -4,38 +4,27 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = void 0;
7
-
8
7
  var _util = require("./util");
9
-
8
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
10
9
  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; } } }; }
11
-
12
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); }
13
-
14
- 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; }
15
-
11
+ 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; }
16
12
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
17
-
18
- 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); } }
19
-
13
+ 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, _toPropertyKey(descriptor.key), descriptor); } }
20
14
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
21
-
22
- 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; }
23
-
15
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
16
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
17
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
24
18
  var ElementsRenderer = /*#__PURE__*/function () {
25
19
  function ElementsRenderer(treeWidget) {
26
20
  _classCallCheck(this, ElementsRenderer);
27
-
28
21
  _defineProperty(this, "openedIconElement", void 0);
29
-
30
22
  _defineProperty(this, "closedIconElement", void 0);
31
-
32
23
  _defineProperty(this, "treeWidget", void 0);
33
-
34
24
  this.treeWidget = treeWidget;
35
25
  this.openedIconElement = this.createButtonElement(treeWidget.options.openedIcon || "+");
36
26
  this.closedIconElement = this.createButtonElement(treeWidget.options.closedIcon || "-");
37
27
  }
38
-
39
28
  _createClass(ElementsRenderer, [{
40
29
  key: "render",
41
30
  value: function render(fromNode) {
@@ -56,15 +45,19 @@ var ElementsRenderer = /*#__PURE__*/function () {
56
45
  key: "renderFromNode",
57
46
  value: function renderFromNode(node) {
58
47
  // remember current li
59
- var $previousLi = jQuery(node.element); // create element
48
+ var $previousLi = jQuery(node.element);
60
49
 
50
+ // create element
61
51
  var li = this.createLi(node, node.getLevel());
62
- this.attachNodeData(node, li); // add element to dom
52
+ this.attachNodeData(node, li);
63
53
 
64
- $previousLi.after(li); // remove previous li
54
+ // add element to dom
55
+ $previousLi.after(li);
65
56
 
66
- $previousLi.remove(); // create children
57
+ // remove previous li
58
+ $previousLi.remove();
67
59
 
60
+ // create children
68
61
  if (node.children) {
69
62
  this.createDomElements(li, node.children, false, node.getLevel() + 1);
70
63
  }
@@ -74,17 +67,14 @@ var ElementsRenderer = /*#__PURE__*/function () {
74
67
  value: function createDomElements(element, children, isRootNode, level) {
75
68
  var ul = this.createUl(isRootNode);
76
69
  element.appendChild(ul);
77
-
78
70
  var _iterator = _createForOfIteratorHelper(children),
79
- _step;
80
-
71
+ _step;
81
72
  try {
82
73
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
83
74
  var child = _step.value;
84
75
  var li = this.createLi(child, level);
85
76
  ul.appendChild(li);
86
77
  this.attachNodeData(child, li);
87
-
88
78
  if (child.hasChildren()) {
89
79
  this.createDomElements(li, child.children, false, level + 1);
90
80
  }
@@ -106,23 +96,19 @@ var ElementsRenderer = /*#__PURE__*/function () {
106
96
  value: function createUl(isRootNode) {
107
97
  var classString;
108
98
  var role;
109
-
110
99
  if (!isRootNode) {
111
100
  classString = "";
112
101
  role = "group";
113
102
  } else {
114
103
  classString = "jqtree-tree";
115
104
  role = "tree";
116
-
117
105
  if (this.treeWidget.options.rtl) {
118
106
  classString += " jqtree-rtl";
119
107
  }
120
108
  }
121
-
122
109
  if (this.treeWidget.options.dragAndDrop) {
123
110
  classString += " jqtree-dnd";
124
111
  }
125
-
126
112
  var ul = document.createElement("ul");
127
113
  ul.className = "jqtree_common ".concat(classString);
128
114
  ul.setAttribute("role", role);
@@ -134,11 +120,9 @@ var ElementsRenderer = /*#__PURE__*/function () {
134
120
  var isSelected = Boolean(this.treeWidget.selectNodeHandler.isNodeSelected(node));
135
121
  var mustShowFolder = node.isFolder() || node.isEmptyFolder && this.treeWidget.options.showEmptyFolder;
136
122
  var li = mustShowFolder ? this.createFolderLi(node, level, isSelected) : this.createNodeLi(node, level, isSelected);
137
-
138
123
  if (this.treeWidget.options.onCreateLi) {
139
124
  this.treeWidget.options.onCreateLi(node, jQuery(li), isSelected);
140
125
  }
141
-
142
126
  return li;
143
127
  }
144
128
  }, {
@@ -146,56 +130,57 @@ var ElementsRenderer = /*#__PURE__*/function () {
146
130
  value: function createFolderLi(node, level, isSelected) {
147
131
  var buttonClasses = this.getButtonClasses(node);
148
132
  var folderClasses = this.getFolderClasses(node, isSelected);
149
- var iconElement = node.is_open ? this.openedIconElement : this.closedIconElement; // li
133
+ var iconElement = node.is_open ? this.openedIconElement : this.closedIconElement;
150
134
 
135
+ // li
151
136
  var li = document.createElement("li");
152
137
  li.className = "jqtree_common ".concat(folderClasses);
153
- li.setAttribute("role", "presentation"); // div
138
+ li.setAttribute("role", "presentation");
154
139
 
140
+ // div
155
141
  var div = document.createElement("div");
156
142
  div.className = "jqtree-element jqtree_common";
157
143
  div.setAttribute("role", "presentation");
158
- li.appendChild(div); // button link
144
+ li.appendChild(div);
159
145
 
146
+ // button link
160
147
  var buttonLink = document.createElement("a");
161
148
  buttonLink.className = buttonClasses;
162
149
  buttonLink.appendChild(iconElement.cloneNode(true));
163
150
  buttonLink.setAttribute("role", "presentation");
164
151
  buttonLink.setAttribute("aria-hidden", "true");
165
-
166
152
  if (this.treeWidget.options.buttonLeft) {
167
153
  div.appendChild(buttonLink);
168
- } // title span
169
-
154
+ }
170
155
 
156
+ // title span
171
157
  div.appendChild(this.createTitleSpan(node.name, level, isSelected, node.is_open, true));
172
-
173
158
  if (!this.treeWidget.options.buttonLeft) {
174
159
  div.appendChild(buttonLink);
175
160
  }
176
-
177
161
  return li;
178
162
  }
179
163
  }, {
180
164
  key: "createNodeLi",
181
165
  value: function createNodeLi(node, level, isSelected) {
182
166
  var liClasses = ["jqtree_common"];
183
-
184
167
  if (isSelected) {
185
168
  liClasses.push("jqtree-selected");
186
169
  }
170
+ var classString = liClasses.join(" ");
187
171
 
188
- var classString = liClasses.join(" "); // li
189
-
172
+ // li
190
173
  var li = document.createElement("li");
191
174
  li.className = classString;
192
- li.setAttribute("role", "presentation"); // div
175
+ li.setAttribute("role", "presentation");
193
176
 
177
+ // div
194
178
  var div = document.createElement("div");
195
179
  div.className = "jqtree-element jqtree_common";
196
180
  div.setAttribute("role", "presentation");
197
- li.appendChild(div); // title span
181
+ li.appendChild(div);
198
182
 
183
+ // title span
199
184
  div.appendChild(this.createTitleSpan(node.name, level, isSelected, node.is_open, false));
200
185
  return li;
201
186
  }
@@ -204,68 +189,55 @@ var ElementsRenderer = /*#__PURE__*/function () {
204
189
  value: function createTitleSpan(nodeName, level, isSelected, isOpen, isFolder) {
205
190
  var titleSpan = document.createElement("span");
206
191
  var classes = "jqtree-title jqtree_common";
207
-
208
192
  if (isFolder) {
209
193
  classes += " jqtree-title-folder";
210
194
  }
211
-
212
195
  classes += " jqtree-title-button-".concat(this.treeWidget.options.buttonLeft ? "left" : "right");
213
196
  titleSpan.className = classes;
214
197
  titleSpan.setAttribute("role", "treeitem");
215
198
  titleSpan.setAttribute("aria-level", "".concat(level));
216
199
  titleSpan.setAttribute("aria-selected", (0, _util.getBoolString)(isSelected));
217
200
  titleSpan.setAttribute("aria-expanded", (0, _util.getBoolString)(isOpen));
218
-
219
201
  if (isSelected) {
220
202
  var tabIndex = this.treeWidget.options.tabIndex;
221
-
222
203
  if (tabIndex !== undefined) {
223
204
  titleSpan.setAttribute("tabindex", "".concat(tabIndex));
224
205
  }
225
206
  }
226
-
227
207
  if (this.treeWidget.options.autoEscape) {
228
208
  titleSpan.textContent = nodeName;
229
209
  } else {
230
210
  titleSpan.innerHTML = nodeName;
231
211
  }
232
-
233
212
  return titleSpan;
234
213
  }
235
214
  }, {
236
215
  key: "getButtonClasses",
237
216
  value: function getButtonClasses(node) {
238
217
  var classes = ["jqtree-toggler", "jqtree_common"];
239
-
240
218
  if (!node.is_open) {
241
219
  classes.push("jqtree-closed");
242
220
  }
243
-
244
221
  if (this.treeWidget.options.buttonLeft) {
245
222
  classes.push("jqtree-toggler-left");
246
223
  } else {
247
224
  classes.push("jqtree-toggler-right");
248
225
  }
249
-
250
226
  return classes.join(" ");
251
227
  }
252
228
  }, {
253
229
  key: "getFolderClasses",
254
230
  value: function getFolderClasses(node, isSelected) {
255
231
  var classes = ["jqtree-folder"];
256
-
257
232
  if (!node.is_open) {
258
233
  classes.push("jqtree-closed");
259
234
  }
260
-
261
235
  if (isSelected) {
262
236
  classes.push("jqtree-selected");
263
237
  }
264
-
265
238
  if (node.is_loading) {
266
239
  classes.push("jqtree-loading");
267
240
  }
268
-
269
241
  return classes.join(" ");
270
242
  }
271
243
  }, {
@@ -281,8 +253,6 @@ var ElementsRenderer = /*#__PURE__*/function () {
281
253
  }
282
254
  }
283
255
  }]);
284
-
285
256
  return ElementsRenderer;
286
257
  }();
287
-
288
258
  exports["default"] = ElementsRenderer;
package/lib/keyHandler.js CHANGED
@@ -4,61 +4,45 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = void 0;
7
-
7
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
8
8
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9
-
10
- 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); } }
11
-
9
+ 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, _toPropertyKey(descriptor.key), descriptor); } }
12
10
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
13
-
14
- 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; }
15
-
11
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
13
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
16
14
  var KeyHandler = /*#__PURE__*/function () {
17
15
  function KeyHandler(treeWidget) {
18
16
  var _this = this;
19
-
20
17
  _classCallCheck(this, KeyHandler);
21
-
22
18
  _defineProperty(this, "treeWidget", void 0);
23
-
24
19
  _defineProperty(this, "handleKeyDown", function (e) {
25
20
  if (!_this.canHandleKeyboard()) {
26
21
  return true;
27
22
  }
28
-
29
23
  var selectedNode = _this.treeWidget.getSelectedNode();
30
-
31
24
  if (!selectedNode) {
32
25
  return true;
33
26
  }
34
-
35
27
  var key = e.which;
36
-
37
28
  switch (key) {
38
29
  case KeyHandler.DOWN:
39
30
  return _this.moveDown(selectedNode);
40
-
41
31
  case KeyHandler.UP:
42
32
  return _this.moveUp(selectedNode);
43
-
44
33
  case KeyHandler.RIGHT:
45
34
  return _this.moveRight(selectedNode);
46
-
47
35
  case KeyHandler.LEFT:
48
36
  return _this.moveLeft(selectedNode);
49
-
50
37
  default:
51
38
  return true;
52
39
  }
53
40
  });
54
-
55
41
  this.treeWidget = treeWidget;
56
-
57
42
  if (treeWidget.options.keyboardSupport) {
58
43
  jQuery(document).on("keydown.jqtree", this.handleKeyDown);
59
44
  }
60
45
  }
61
-
62
46
  _createClass(KeyHandler, [{
63
47
  key: "deinit",
64
48
  value: function deinit() {
@@ -67,12 +51,12 @@ var KeyHandler = /*#__PURE__*/function () {
67
51
  }, {
68
52
  key: "moveDown",
69
53
  value: function moveDown(selectedNode) {
70
- return this.selectNode(selectedNode.getNextNode());
54
+ return this.selectNode(selectedNode.getNextVisibleNode());
71
55
  }
72
56
  }, {
73
57
  key: "moveUp",
74
58
  value: function moveUp(selectedNode) {
75
- return this.selectNode(selectedNode.getPreviousNode());
59
+ return this.selectNode(selectedNode.getPreviousVisibleNode());
76
60
  }
77
61
  }, {
78
62
  key: "moveRight",
@@ -83,7 +67,7 @@ var KeyHandler = /*#__PURE__*/function () {
83
67
  // folder node
84
68
  if (selectedNode.is_open) {
85
69
  // Right moves to the first child of an open node
86
- return this.selectNode(selectedNode.getNextNode());
70
+ return this.selectNode(selectedNode.getNextVisibleNode());
87
71
  } else {
88
72
  // Right expands a closed node
89
73
  this.treeWidget.openNode(selectedNode);
@@ -110,11 +94,9 @@ var KeyHandler = /*#__PURE__*/function () {
110
94
  return true;
111
95
  } else {
112
96
  this.treeWidget.selectNode(node);
113
-
114
97
  if (!this.treeWidget.scrollHandler.isScrolledIntoView(jQuery(node.element).find(".jqtree-element"))) {
115
98
  this.treeWidget.scrollToNode(node);
116
99
  }
117
-
118
100
  return false;
119
101
  }
120
102
  }
@@ -124,16 +106,10 @@ var KeyHandler = /*#__PURE__*/function () {
124
106
  return (this.treeWidget.options.keyboardSupport || false) && this.treeWidget.selectNodeHandler.isFocusOnTree();
125
107
  }
126
108
  }]);
127
-
128
109
  return KeyHandler;
129
110
  }();
130
-
131
111
  exports["default"] = KeyHandler;
132
-
133
112
  _defineProperty(KeyHandler, "LEFT", 37);
134
-
135
113
  _defineProperty(KeyHandler, "UP", 38);
136
-
137
114
  _defineProperty(KeyHandler, "RIGHT", 39);
138
-
139
115
  _defineProperty(KeyHandler, "DOWN", 40);