smart-webcomponents-react 18.0.2 → 18.0.11

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 (554) hide show
  1. package/accordion/accordion.d.ts +2 -0
  2. package/accordion/accordion.esm.js +1 -1
  3. package/accordion/accordion.umd.js +2 -3
  4. package/accordion/accordionitem.d.ts +2 -0
  5. package/alertwindow/alertwindow.d.ts +2 -0
  6. package/alertwindow/alertwindow.esm.js +1 -1
  7. package/alertwindow/alertwindow.umd.js +2 -3
  8. package/array/array.d.ts +2 -0
  9. package/array/array.esm.js +1 -1
  10. package/array/array.umd.js +2 -3
  11. package/barcode/barcode.d.ts +2 -0
  12. package/barcode/barcode.esm.js +1 -1
  13. package/barcode/barcode.umd.js +2 -3
  14. package/breadcrumb/breadcrumb.d.ts +2 -0
  15. package/breadcrumb/breadcrumb.esm.js +1 -1
  16. package/breadcrumb/breadcrumb.umd.js +2 -3
  17. package/button/button.d.ts +2 -0
  18. package/button/button.esm.js +1 -1
  19. package/button/button.umd.js +2 -3
  20. package/button/buttongroup.d.ts +2 -0
  21. package/button/dropdownbutton.d.ts +2 -0
  22. package/button/multisplitbutton.d.ts +2 -0
  23. package/button/powerbutton.d.ts +2 -0
  24. package/button/radiobutton.d.ts +2 -0
  25. package/button/repeatbutton.d.ts +2 -0
  26. package/button/switchbutton.d.ts +2 -0
  27. package/button/togglebutton.d.ts +2 -0
  28. package/buttongroup/buttongroup.d.ts +2 -0
  29. package/buttongroup/buttongroup.esm.js +1 -1
  30. package/buttongroup/buttongroup.umd.js +2 -3
  31. package/calendar/calendar.d.ts +7 -0
  32. package/calendar/calendar.esm.js +13 -2
  33. package/calendar/calendar.umd.js +14 -4
  34. package/card/card.d.ts +2 -0
  35. package/card/card.esm.js +1 -1
  36. package/card/card.umd.js +2 -3
  37. package/card/cardview.d.ts +2 -0
  38. package/cardview/cardview.d.ts +2 -0
  39. package/cardview/cardview.esm.js +1 -1
  40. package/cardview/cardview.umd.js +2 -3
  41. package/carousel/carousel.d.ts +2 -0
  42. package/carousel/carousel.esm.js +1 -1
  43. package/carousel/carousel.umd.js +2 -3
  44. package/chart/chart.d.ts +2 -0
  45. package/chart/chart.esm.js +1 -1
  46. package/chart/chart.umd.js +2 -3
  47. package/chart/ganttchart.d.ts +2 -0
  48. package/chart/threedchart.d.ts +2 -0
  49. package/checkbox/checkbox.d.ts +2 -0
  50. package/checkbox/checkbox.esm.js +1 -1
  51. package/checkbox/checkbox.umd.js +2 -3
  52. package/checkinput/checkinput.d.ts +2 -0
  53. package/checkinput/checkinput.esm.js +1 -1
  54. package/checkinput/checkinput.umd.js +2 -3
  55. package/chip/chip.d.ts +2 -0
  56. package/chip/chip.esm.js +1 -1
  57. package/chip/chip.umd.js +2 -3
  58. package/colorinput/colorinput.d.ts +2 -0
  59. package/colorinput/colorinput.esm.js +1 -1
  60. package/colorinput/colorinput.umd.js +2 -3
  61. package/colorpanel/colorpanel.d.ts +2 -0
  62. package/colorpanel/colorpanel.esm.js +1 -1
  63. package/colorpanel/colorpanel.umd.js +2 -3
  64. package/colorpicker/colorpicker.d.ts +2 -0
  65. package/colorpicker/colorpicker.esm.js +1 -1
  66. package/colorpicker/colorpicker.umd.js +2 -3
  67. package/columnpanel/columnpanel.d.ts +2 -0
  68. package/columnpanel/columnpanel.esm.js +1 -1
  69. package/columnpanel/columnpanel.umd.js +2 -3
  70. package/combobox/combobox.d.ts +2 -0
  71. package/combobox/combobox.esm.js +1 -1
  72. package/combobox/combobox.umd.js +2 -3
  73. package/countryinput/countryinput.d.ts +2 -0
  74. package/countryinput/countryinput.esm.js +1 -1
  75. package/countryinput/countryinput.umd.js +2 -3
  76. package/customizationdialog/customizationdialog.d.ts +2 -0
  77. package/customizationdialog/customizationdialog.esm.js +1 -1
  78. package/customizationdialog/customizationdialog.umd.js +2 -3
  79. package/dateinput/dateinput.d.ts +2 -0
  80. package/dateinput/dateinput.esm.js +1 -1
  81. package/dateinput/dateinput.umd.js +2 -3
  82. package/daterangeinput/daterangeinput.d.ts +2 -0
  83. package/daterangeinput/daterangeinput.esm.js +1 -1
  84. package/daterangeinput/daterangeinput.umd.js +2 -3
  85. package/datetimepicker/datetimepicker.d.ts +2 -0
  86. package/datetimepicker/datetimepicker.esm.js +1 -1
  87. package/datetimepicker/datetimepicker.umd.js +2 -3
  88. package/dialogwindow/dialogwindow.d.ts +2 -0
  89. package/dialogwindow/dialogwindow.esm.js +1 -1
  90. package/dialogwindow/dialogwindow.umd.js +2 -3
  91. package/dockinglayout/dockinglayout.d.ts +2 -0
  92. package/dockinglayout/dockinglayout.esm.js +1 -1
  93. package/dockinglayout/dockinglayout.umd.js +2 -3
  94. package/dropdownbutton/dropdownbutton.d.ts +2 -0
  95. package/dropdownbutton/dropdownbutton.esm.js +1 -1
  96. package/dropdownbutton/dropdownbutton.umd.js +2 -3
  97. package/dropdownlist/dropdownlist.d.ts +2 -0
  98. package/dropdownlist/dropdownlist.esm.js +1 -1
  99. package/dropdownlist/dropdownlist.umd.js +2 -3
  100. package/editor/editor.d.ts +2 -0
  101. package/editor/editor.esm.js +1 -1
  102. package/editor/editor.umd.js +2 -3
  103. package/element/element.d.ts +2 -0
  104. package/element/element.esm.js +1 -1
  105. package/element/element.umd.js +2 -3
  106. package/fileupload/fileupload.d.ts +2 -0
  107. package/fileupload/fileupload.esm.js +1 -1
  108. package/fileupload/fileupload.umd.js +2 -3
  109. package/filterbuilder/filterbuilder.d.ts +2 -0
  110. package/filterbuilder/filterbuilder.esm.js +1 -1
  111. package/filterbuilder/filterbuilder.umd.js +2 -3
  112. package/filterpanel/filterpanel.d.ts +2 -0
  113. package/filterpanel/filterpanel.esm.js +1 -1
  114. package/filterpanel/filterpanel.umd.js +2 -3
  115. package/filterpanel/multicolumnfilterpanel.d.ts +2 -0
  116. package/form/form.d.ts +2 -0
  117. package/form/form.esm.js +1 -1
  118. package/form/form.umd.js +2 -3
  119. package/form/formcontrol.d.ts +2 -0
  120. package/form/formgroup.d.ts +2 -0
  121. package/ganttchart/ganttchart.d.ts +2 -0
  122. package/ganttchart/ganttchart.esm.js +1 -1
  123. package/ganttchart/ganttchart.umd.js +2 -3
  124. package/gauge/gauge.d.ts +2 -0
  125. package/gauge/gauge.esm.js +1 -1
  126. package/gauge/gauge.umd.js +2 -3
  127. package/grid/grid.d.ts +23 -12
  128. package/grid/grid.esm.js +25 -14
  129. package/grid/grid.umd.js +26 -16
  130. package/grouppanel/grouppanel.d.ts +2 -0
  131. package/grouppanel/grouppanel.esm.js +1 -1
  132. package/grouppanel/grouppanel.umd.js +2 -3
  133. package/index.d.ts +54 -3
  134. package/input/checkinput.d.ts +2 -0
  135. package/input/colorinput.d.ts +2 -0
  136. package/input/countryinput.d.ts +2 -0
  137. package/input/dateinput.d.ts +2 -0
  138. package/input/daterangeinput.d.ts +2 -0
  139. package/input/input.d.ts +2 -0
  140. package/input/input.esm.js +1 -1
  141. package/input/input.umd.js +2 -3
  142. package/input/multicomboinput.d.ts +2 -0
  143. package/input/multiinput.d.ts +2 -0
  144. package/input/numberinput.d.ts +2 -0
  145. package/input/passwordinput.d.ts +2 -0
  146. package/input/phoneinput.d.ts +2 -0
  147. package/input/timeinput.d.ts +2 -0
  148. package/kanban/kanban.d.ts +2 -0
  149. package/kanban/kanban.esm.js +1 -1
  150. package/kanban/kanban.umd.js +2 -3
  151. package/layout/dockinglayout.d.ts +2 -0
  152. package/layout/layout.d.ts +2 -0
  153. package/layout/layout.esm.js +1 -1
  154. package/layout/layout.umd.js +2 -3
  155. package/layout/layoutgroup.d.ts +2 -0
  156. package/layout/layoutitem.d.ts +2 -0
  157. package/layout/tablayoutgroup.d.ts +2 -0
  158. package/layout/tablayoutitem.d.ts +2 -0
  159. package/led/led.d.ts +2 -0
  160. package/led/led.esm.js +1 -1
  161. package/led/led.umd.js +2 -3
  162. package/listbox/listbox.d.ts +2 -0
  163. package/listbox/listbox.esm.js +1 -1
  164. package/listbox/listbox.umd.js +2 -3
  165. package/listmenu/listmenu.d.ts +2 -0
  166. package/listmenu/listmenu.esm.js +1 -1
  167. package/listmenu/listmenu.umd.js +2 -3
  168. package/map/map.d.ts +2 -0
  169. package/map/map.esm.js +1 -1
  170. package/map/map.umd.js +2 -3
  171. package/maskedtextbox/maskedtextbox.d.ts +2 -0
  172. package/maskedtextbox/maskedtextbox.esm.js +1 -1
  173. package/maskedtextbox/maskedtextbox.umd.js +2 -3
  174. package/menu/listmenu.d.ts +2 -0
  175. package/menu/menu.d.ts +2 -0
  176. package/menu/menu.esm.js +1 -1
  177. package/menu/menu.umd.js +2 -3
  178. package/menu/menuitem.d.ts +2 -0
  179. package/menu/menuitemsgroup.d.ts +2 -0
  180. package/multicolumnfilterpanel/multicolumnfilterpanel.d.ts +2 -0
  181. package/multicolumnfilterpanel/multicolumnfilterpanel.esm.js +1 -1
  182. package/multicolumnfilterpanel/multicolumnfilterpanel.umd.js +2 -3
  183. package/multicomboinput/multicomboinput.d.ts +2 -0
  184. package/multicomboinput/multicomboinput.esm.js +1 -1
  185. package/multicomboinput/multicomboinput.umd.js +2 -3
  186. package/multiinput/multiinput.d.ts +2 -0
  187. package/multiinput/multiinput.esm.js +1 -1
  188. package/multiinput/multiinput.umd.js +2 -3
  189. package/multilinetextbox/multilinetextbox.d.ts +2 -0
  190. package/multilinetextbox/multilinetextbox.esm.js +1 -1
  191. package/multilinetextbox/multilinetextbox.umd.js +2 -3
  192. package/multilinewindow/multilinewindow.d.ts +2 -0
  193. package/multilinewindow/multilinewindow.esm.js +1 -1
  194. package/multilinewindow/multilinewindow.umd.js +2 -3
  195. package/multisplitbutton/multisplitbutton.d.ts +2 -0
  196. package/multisplitbutton/multisplitbutton.esm.js +1 -1
  197. package/multisplitbutton/multisplitbutton.umd.js +2 -3
  198. package/numberinput/numberinput.d.ts +2 -0
  199. package/numberinput/numberinput.esm.js +1 -1
  200. package/numberinput/numberinput.umd.js +2 -3
  201. package/numerictextbox/numerictextbox.d.ts +2 -0
  202. package/numerictextbox/numerictextbox.esm.js +1 -1
  203. package/numerictextbox/numerictextbox.umd.js +2 -3
  204. package/package.json +1 -1
  205. package/pager/pager.d.ts +2 -0
  206. package/pager/pager.esm.js +1 -1
  207. package/pager/pager.umd.js +2 -3
  208. package/passwordinput/passwordinput.d.ts +2 -0
  209. package/passwordinput/passwordinput.esm.js +1 -1
  210. package/passwordinput/passwordinput.umd.js +2 -3
  211. package/passwordtextbox/passwordtextbox.d.ts +2 -0
  212. package/passwordtextbox/passwordtextbox.esm.js +1 -1
  213. package/passwordtextbox/passwordtextbox.umd.js +2 -3
  214. package/path/path.d.ts +2 -0
  215. package/path/path.esm.js +1 -1
  216. package/path/path.umd.js +2 -3
  217. package/phoneinput/phoneinput.d.ts +2 -0
  218. package/phoneinput/phoneinput.esm.js +1 -1
  219. package/phoneinput/phoneinput.umd.js +2 -3
  220. package/pivottable/pivottable.d.ts +2 -0
  221. package/pivottable/pivottable.esm.js +1 -1
  222. package/pivottable/pivottable.umd.js +2 -3
  223. package/progressbar/circularprogressbar.d.ts +2 -0
  224. package/progressbar/progressbar.d.ts +2 -0
  225. package/progressbar/progressbar.esm.js +1 -1
  226. package/progressbar/progressbar.umd.js +2 -3
  227. package/progresswindow/progresswindow.d.ts +2 -0
  228. package/progresswindow/progresswindow.esm.js +1 -1
  229. package/progresswindow/progresswindow.umd.js +2 -3
  230. package/promptwindow/promptwindow.d.ts +2 -0
  231. package/promptwindow/promptwindow.esm.js +1 -1
  232. package/promptwindow/promptwindow.umd.js +2 -3
  233. package/qrcode/qrcode.d.ts +2 -0
  234. package/qrcode/qrcode.esm.js +1 -1
  235. package/qrcode/qrcode.umd.js +2 -3
  236. package/querybuilder/querybuilder.d.ts +2 -0
  237. package/querybuilder/querybuilder.esm.js +1 -1
  238. package/querybuilder/querybuilder.umd.js +2 -3
  239. package/radiobutton/radiobutton.d.ts +2 -0
  240. package/radiobutton/radiobutton.esm.js +1 -1
  241. package/radiobutton/radiobutton.umd.js +2 -3
  242. package/rating/rating.d.ts +2 -0
  243. package/rating/rating.esm.js +1 -1
  244. package/rating/rating.umd.js +2 -3
  245. package/ribbon/ribbon.d.ts +2 -0
  246. package/ribbon/ribbon.esm.js +1 -1
  247. package/ribbon/ribbon.umd.js +2 -3
  248. package/ribbon/ribbongroup.d.ts +2 -0
  249. package/ribbon/ribbonitem.d.ts +2 -0
  250. package/ribbon/ribbontab.d.ts +2 -0
  251. package/scheduler/scheduler.d.ts +2 -0
  252. package/scheduler/scheduler.esm.js +1 -1
  253. package/scheduler/scheduler.umd.js +2 -3
  254. package/scrollbar/scrollbar.d.ts +2 -0
  255. package/scrollbar/scrollbar.esm.js +1 -1
  256. package/scrollbar/scrollbar.umd.js +2 -3
  257. package/slider/slider.d.ts +2 -0
  258. package/slider/slider.esm.js +1 -1
  259. package/slider/slider.umd.js +2 -3
  260. package/sortable/sortable.d.ts +2 -0
  261. package/sortable/sortable.esm.js +1 -1
  262. package/sortable/sortable.umd.js +2 -3
  263. package/sortpanel/sortpanel.d.ts +2 -0
  264. package/sortpanel/sortpanel.esm.js +1 -1
  265. package/sortpanel/sortpanel.umd.js +2 -3
  266. package/source/modules/smart.3dchart.js +1 -1
  267. package/source/modules/smart.accordion.js +1 -1
  268. package/source/modules/smart.array.js +1 -1
  269. package/source/modules/smart.barcode.js +1 -1
  270. package/source/modules/smart.breadcrumb.js +1 -1
  271. package/source/modules/smart.button.js +1 -1
  272. package/source/modules/smart.buttongroup.js +1 -1
  273. package/source/modules/smart.calendar.js +3 -3
  274. package/source/modules/smart.card.js +1 -1
  275. package/source/modules/smart.cardview.js +5 -5
  276. package/source/modules/smart.carousel.js +1 -1
  277. package/source/modules/smart.chart.js +2 -2
  278. package/source/modules/smart.checkbox.js +1 -1
  279. package/source/modules/smart.checkinput.js +2 -2
  280. package/source/modules/smart.chip.js +1 -1
  281. package/source/modules/smart.colorinput.js +2 -2
  282. package/source/modules/smart.colorpanel.js +1 -1
  283. package/source/modules/smart.colorpicker.js +1 -1
  284. package/source/modules/smart.combobox.js +1 -1
  285. package/source/modules/smart.common.js +3 -3
  286. package/source/modules/smart.countryinput.js +2 -2
  287. package/source/modules/smart.dateinput.js +3 -3
  288. package/source/modules/smart.daterangeinput.js +3 -3
  289. package/source/modules/smart.datetimepicker.js +3 -3
  290. package/source/modules/smart.dockinglayout.js +1 -1
  291. package/source/modules/smart.dropdownbutton.js +1 -1
  292. package/source/modules/smart.dropdownlist.js +1 -1
  293. package/source/modules/smart.editor.js +2 -2
  294. package/source/modules/smart.element.js +1 -1
  295. package/source/modules/smart.fileupload.js +1 -1
  296. package/source/modules/smart.form.js +3 -3
  297. package/source/modules/smart.formulaparser.js +1 -1
  298. package/source/modules/smart.ganttchart.js +6 -6
  299. package/source/modules/smart.gauge.js +1 -1
  300. package/source/modules/smart.grid.js +15 -15
  301. package/source/modules/smart.gridpanel.js +5 -5
  302. package/source/modules/smart.input.js +2 -2
  303. package/source/modules/smart.kanban.js +5 -5
  304. package/source/modules/smart.layout.js +1 -1
  305. package/source/modules/smart.led.js +1 -1
  306. package/source/modules/smart.listbox.js +1 -1
  307. package/source/modules/smart.listmenu.js +1 -1
  308. package/source/modules/smart.map.js +1 -1
  309. package/source/modules/smart.maskedtextbox.js +2 -2
  310. package/source/modules/smart.menu.js +1 -1
  311. package/source/modules/smart.multicomboinput.js +2 -2
  312. package/source/modules/smart.multiinput.js +2 -2
  313. package/source/modules/smart.multilinetextbox.js +1 -1
  314. package/source/modules/smart.multisplitbutton.js +1 -1
  315. package/source/modules/smart.numberinput.js +2 -2
  316. package/source/modules/smart.numerictextbox.js +1 -1
  317. package/source/modules/smart.pager.js +2 -2
  318. package/source/modules/smart.passwordinput.js +2 -2
  319. package/source/modules/smart.passwordtextbox.js +2 -2
  320. package/source/modules/smart.path.js +1 -1
  321. package/source/modules/smart.phoneinput.js +2 -2
  322. package/source/modules/smart.pivottable.js +6 -6
  323. package/source/modules/smart.progressbar.js +1 -1
  324. package/source/modules/smart.qrcode.js +1 -1
  325. package/source/modules/smart.querybuilder.js +3 -3
  326. package/source/modules/smart.radiobutton.js +1 -1
  327. package/source/modules/smart.rating.js +1 -1
  328. package/source/modules/smart.ribbon.js +2 -2
  329. package/source/modules/smart.router.js +2 -2
  330. package/source/modules/smart.scheduler.js +5 -5
  331. package/source/modules/smart.scrollbar.js +1 -1
  332. package/source/modules/smart.slider.js +1 -1
  333. package/source/modules/smart.sortable.js +1 -1
  334. package/source/modules/smart.splitter.js +1 -1
  335. package/source/modules/smart.switchbutton.js +1 -1
  336. package/source/modules/smart.table.js +4 -4
  337. package/source/modules/smart.tabs.js +1 -1
  338. package/source/modules/smart.tank.js +1 -1
  339. package/source/modules/smart.textarea.js +3 -3
  340. package/source/modules/smart.textbox.js +1 -1
  341. package/source/modules/smart.timeinput.js +2 -2
  342. package/source/modules/smart.timepicker.js +1 -1
  343. package/source/modules/smart.toast.js +1 -1
  344. package/source/modules/smart.tooltip.js +1 -1
  345. package/source/modules/smart.tree.js +2 -2
  346. package/source/modules/smart.validator.js +1 -1
  347. package/source/modules/smart.window.js +1 -1
  348. package/source/smart.3dchart.js +1 -1
  349. package/source/smart.accordion.js +1 -1
  350. package/source/smart.ajax.js +1 -1
  351. package/source/smart.array.js +1 -1
  352. package/source/smart.barcode.js +1 -1
  353. package/source/smart.bootstrap.js +1 -1
  354. package/source/smart.breadcrumb.js +1 -1
  355. package/source/smart.button.js +1 -1
  356. package/source/smart.buttongroup.js +1 -1
  357. package/source/smart.calendar.js +2 -2
  358. package/source/smart.card.js +1 -1
  359. package/source/smart.cardview.js +1 -1
  360. package/source/smart.carousel.js +1 -1
  361. package/source/smart.chart.annotations.js +1 -1
  362. package/source/smart.chart.api.js +1 -1
  363. package/source/smart.chart.core.js +1 -1
  364. package/source/smart.chart.js +1 -1
  365. package/source/smart.chart.rangeselector.js +1 -1
  366. package/source/smart.chart.waterfall.js +1 -1
  367. package/source/smart.checkbox.js +1 -1
  368. package/source/smart.checkinput.js +1 -1
  369. package/source/smart.chip.js +1 -1
  370. package/source/smart.colorinput.js +1 -1
  371. package/source/smart.colorpanel.js +1 -1
  372. package/source/smart.colorpicker.js +1 -1
  373. package/source/smart.combobox.js +1 -1
  374. package/source/smart.complex.js +1 -1
  375. package/source/smart.core.js +1 -1
  376. package/source/smart.countryinput.js +1 -1
  377. package/source/smart.data.js +2 -2
  378. package/source/smart.date.js +1 -1
  379. package/source/smart.dateformatpanel.js +1 -1
  380. package/source/smart.dateinput.js +1 -1
  381. package/source/smart.daterangeinput.js +1 -1
  382. package/source/smart.datetimepicker.js +1 -1
  383. package/source/smart.dockinglayout.js +1 -1
  384. package/source/smart.draw.js +1 -1
  385. package/source/smart.dropdownbutton.js +1 -1
  386. package/source/smart.dropdownlist.js +1 -1
  387. package/source/smart.editor.js +1 -1
  388. package/source/smart.element.js +1 -1
  389. package/source/smart.elements.js +16 -16
  390. package/source/smart.export.js +1 -1
  391. package/source/smart.fileupload.js +1 -1
  392. package/source/smart.filter.js +2 -2
  393. package/source/smart.filterbuilder.js +1 -1
  394. package/source/smart.filterpanel.js +2 -2
  395. package/source/smart.form.js +1 -1
  396. package/source/smart.format.js +1 -1
  397. package/source/smart.formulaparser.js +1 -1
  398. package/source/smart.ganttchart.js +2 -2
  399. package/source/smart.gauge.js +1 -1
  400. package/source/smart.grid.cell.js +2 -2
  401. package/source/smart.grid.chart.js +1 -1
  402. package/source/smart.grid.column.js +2 -2
  403. package/source/smart.grid.core.js +2 -2
  404. package/source/smart.grid.dialog.js +2 -2
  405. package/source/smart.grid.edit.js +2 -2
  406. package/source/smart.grid.export.js +1 -1
  407. package/source/smart.grid.filter.js +1 -1
  408. package/source/smart.grid.group.js +1 -1
  409. package/source/smart.grid.js +1 -1
  410. package/source/smart.grid.menu.js +1 -1
  411. package/source/smart.grid.pager.js +1 -1
  412. package/source/smart.grid.reorder.js +1 -1
  413. package/source/smart.grid.resize.js +1 -1
  414. package/source/smart.grid.row.js +2 -2
  415. package/source/smart.grid.select.js +2 -2
  416. package/source/smart.grid.sort.js +1 -1
  417. package/source/smart.grid.toolbar.js +1 -1
  418. package/source/smart.grid.tree.js +1 -1
  419. package/source/smart.grid.view.js +1 -1
  420. package/source/smart.gridpanel.js +1 -1
  421. package/source/smart.input.js +2 -2
  422. package/source/smart.kanban.js +1 -1
  423. package/source/smart.layout.js +1 -1
  424. package/source/smart.led.js +1 -1
  425. package/source/smart.listbox.js +1 -1
  426. package/source/smart.listmenu.js +1 -1
  427. package/source/smart.map.js +1 -1
  428. package/source/smart.maskedtextbox.js +1 -1
  429. package/source/smart.math.js +1 -1
  430. package/source/smart.menu.js +1 -1
  431. package/source/smart.multicomboinput.js +1 -1
  432. package/source/smart.multiinput.js +1 -1
  433. package/source/smart.multilinetextbox.js +1 -1
  434. package/source/smart.multisplitbutton.js +1 -1
  435. package/source/smart.numberformatpanel.js +1 -1
  436. package/source/smart.numberinput.js +1 -1
  437. package/source/smart.numeric.js +1 -1
  438. package/source/smart.numerictextbox.js +1 -1
  439. package/source/smart.pager.js +1 -1
  440. package/source/smart.passwordinput.js +1 -1
  441. package/source/smart.passwordtextbox.js +1 -1
  442. package/source/smart.path.js +1 -1
  443. package/source/smart.phoneinput.js +1 -1
  444. package/source/smart.pivottable.js +1 -1
  445. package/source/smart.powerbutton.js +1 -1
  446. package/source/smart.progressbar.js +1 -1
  447. package/source/smart.qrcode.js +1 -1
  448. package/source/smart.radiobutton.js +1 -1
  449. package/source/smart.rating.js +1 -1
  450. package/source/smart.ribbon.js +1 -1
  451. package/source/smart.router.js +1 -1
  452. package/source/smart.scheduler.js +1 -1
  453. package/source/smart.scrollbar.js +1 -1
  454. package/source/smart.slider.js +1 -1
  455. package/source/smart.sortable.js +1 -1
  456. package/source/smart.sparkline.js +6 -0
  457. package/source/smart.splitter.js +1 -1
  458. package/source/smart.switchbutton.js +1 -1
  459. package/source/smart.table.js +1 -1
  460. package/source/smart.tabs.js +1 -1
  461. package/source/smart.tank.js +1 -1
  462. package/source/smart.textarea.js +2 -2
  463. package/source/smart.textbox.js +1 -1
  464. package/source/smart.tickintervalhandler.js +1 -1
  465. package/source/smart.timeinput.js +1 -1
  466. package/source/smart.timepicker.js +1 -1
  467. package/source/smart.toast.js +1 -1
  468. package/source/smart.tooltip.js +1 -1
  469. package/source/smart.tree.js +2 -2
  470. package/source/smart.validationpanel.js +1 -1
  471. package/source/smart.validator.js +1 -1
  472. package/source/smart.window.js +1 -1
  473. package/source/styles/components/smart.grid.css +1 -1
  474. package/source/styles/components/smart.validator.css +1 -1
  475. package/source/styles/default/scss/smart.grid.scss +230 -168
  476. package/source/styles/default/scss/smart.validator.scss +1 -0
  477. package/source/styles/default/smart.grid.css +48 -9
  478. package/source/styles/default/smart.validator.css +123 -121
  479. package/source/styles/smart.default.css +2 -2
  480. package/source/typescript/smart.calendar.d.ts +5 -0
  481. package/source/typescript/smart.elements.d.ts +54 -3
  482. package/source/typescript/smart.grid.d.ts +33 -3
  483. package/source/typescript/smart.textarea.d.ts +5 -0
  484. package/source/typescript/smart.tree.d.ts +11 -0
  485. package/splitter/splitter.d.ts +2 -0
  486. package/splitter/splitter.esm.js +1 -1
  487. package/splitter/splitter.umd.js +2 -3
  488. package/splitter/splitterbar.d.ts +2 -0
  489. package/splitter/splitteritem.d.ts +2 -0
  490. package/switchbutton/switchbutton.d.ts +2 -0
  491. package/switchbutton/switchbutton.esm.js +1 -1
  492. package/switchbutton/switchbutton.umd.js +2 -3
  493. package/table/pivottable.d.ts +2 -0
  494. package/table/sortable.d.ts +2 -0
  495. package/table/table.d.ts +2 -0
  496. package/table/table.esm.js +1 -1
  497. package/table/table.umd.js +2 -3
  498. package/tabs/tabs.d.ts +2 -0
  499. package/tabs/tabs.esm.js +1 -1
  500. package/tabs/tabs.umd.js +2 -3
  501. package/tabs/tabswindow.d.ts +2 -0
  502. package/tabswindow/tabswindow.d.ts +2 -0
  503. package/tabswindow/tabswindow.esm.js +1 -1
  504. package/tabswindow/tabswindow.umd.js +2 -3
  505. package/tank/tank.d.ts +2 -0
  506. package/tank/tank.esm.js +1 -1
  507. package/tank/tank.umd.js +2 -3
  508. package/textarea/textarea.d.ts +7 -0
  509. package/textarea/textarea.esm.js +13 -2
  510. package/textarea/textarea.umd.js +14 -4
  511. package/textbox/maskedtextbox.d.ts +2 -0
  512. package/textbox/multilinetextbox.d.ts +2 -0
  513. package/textbox/numerictextbox.d.ts +2 -0
  514. package/textbox/passwordtextbox.d.ts +2 -0
  515. package/textbox/textbox.d.ts +2 -0
  516. package/textbox/textbox.esm.js +1 -1
  517. package/textbox/textbox.umd.js +2 -3
  518. package/threedchart/threedchart.d.ts +2 -0
  519. package/threedchart/threedchart.esm.js +1 -1
  520. package/threedchart/threedchart.umd.js +2 -3
  521. package/timeinput/timeinput.d.ts +2 -0
  522. package/timeinput/timeinput.esm.js +1 -1
  523. package/timeinput/timeinput.umd.js +2 -3
  524. package/timepicker/datetimepicker.d.ts +2 -0
  525. package/timepicker/timepicker.d.ts +2 -0
  526. package/timepicker/timepicker.esm.js +1 -1
  527. package/timepicker/timepicker.umd.js +2 -3
  528. package/toast/toast.d.ts +2 -0
  529. package/toast/toast.esm.js +1 -1
  530. package/toast/toast.umd.js +2 -3
  531. package/tooltip/tooltip.d.ts +2 -0
  532. package/tooltip/tooltip.esm.js +1 -1
  533. package/tooltip/tooltip.umd.js +2 -3
  534. package/tree/tree.d.ts +12 -0
  535. package/tree/tree.esm.js +9 -2
  536. package/tree/tree.umd.js +10 -4
  537. package/tree/treeitem.d.ts +2 -0
  538. package/tree/treeitemsgroup.d.ts +2 -0
  539. package/validator/validator.d.ts +2 -0
  540. package/validator/validator.esm.js +1 -1
  541. package/validator/validator.umd.js +2 -3
  542. package/waitwindow/waitwindow.d.ts +2 -0
  543. package/waitwindow/waitwindow.esm.js +1 -1
  544. package/waitwindow/waitwindow.umd.js +2 -3
  545. package/window/alertwindow.d.ts +2 -0
  546. package/window/dialogwindow.d.ts +2 -0
  547. package/window/multilinewindow.d.ts +2 -0
  548. package/window/progresswindow.d.ts +2 -0
  549. package/window/promptwindow.d.ts +2 -0
  550. package/window/tabswindow.d.ts +2 -0
  551. package/window/waitwindow.d.ts +2 -0
  552. package/window/window.d.ts +2 -0
  553. package/window/window.esm.js +1 -1
  554. package/window/window.umd.js +2 -3
@@ -1,6 +1,6 @@
1
1
 
2
- /* Smart UI v18.0.1 (2024-01-23)
2
+ /* Smart UI v18.0.11 (2024-02-10)
3
3
  Copyright (c) 2011-2023 jQWidgets.
4
4
  License: https://htmlelements.com/license/ */ //
5
5
 
6
- (()=>{Smart("smart-text-area",class extends Smart.Input{static get properties(){return{users:{value:[],type:"array",reflectToAttribute:!1},resize:{value:"none",type:"string"},richText:{value:!1,type:"boolean"},enableHTMLEncode:{value:!0,type:"boolean"},minWidth:{value:0,type:"number"},minHeight:{value:0,type:"number"},toolbarOnFocus:{value:!1,type:"boolean"}}}template(){return'<div id="inputContainer" role="presentation"><textarea class="smart-input" id=\'input\' readonly=\'[[readonly]]\' placeholder=\'[[placeholder]]\' name=\'[[name]]\' value=\'{{value::keyup}}\' disabled=\'[[disabled]]\' aria-label="[[placeholder]]"></textarea><div id="editor"></div><span class="smart-hidden smart-hint" inner-h-t-m-l="[[hint]]" id="span"></span><div id="dropDownButton" tabindex=-1 class="smart-drop-down-button" role="button" aria-label="Toggle popup"><div id="arrow" class="arrow" aria-hidden="true"></div></div></div>'}_blurHandler(){const e=this;e.richText?e.removeAttribute("focus"):super._blurHandler()}_focusHandler(){const e=this;e.richText&&(e.$.editor.component.focus(),setTimeout((()=>{const t=e.$.editor.value;e.$.editor.selectionStart=t.length}))),super._focusHandler()}setHTML(e){const t=this;if(t.richText)return t.$.editor.value=e;this.value=e.replaceAll("<","&lt;").replaceAll(">","&gt;")}getHTML(){const e=this;return e.richText?e.$.editor.component.getHTML():e.value}propertyChangedHandler(e,t,o){const n=this;"value"===e&&n.richText&&(n.$.editor.value=o),"users"===e?(delete n._initMenu,n._mentionMenu&&(n._mentionPlugin&&n._mentionPlugin.destroy(),n._mentionMenu.remove(),n._initUsersMention()),n._renderMentionTrigger()):"resize"===e&&(n.richText?n.$.editor.querySelector(".smart-editor-editable").style.resize=o:n.$.input.style.resize=o,n._mentionTrigger&&("none"!==n.resize?n._mentionTrigger.style.right="10px":n._mentionTrigger.style.right="5px"))}detached(){const e=this;delete e._initMenu,e._mentionMenu&&e._mentionMenu.remove()}findMatches(){const e=this.$.input.value.split("").concat([" "]),t=[];let o="";for(let n in e){let i=e[n],r=e[n-1]||" ",s=[" ","\\n"].indexOf(r)>-1||10===r.charCodeAt(0);("@"===i&&s||o.length)&&" "!==i&&(o+=i),o.length&&" "===i&&(t.push({word:o,index:Math.max(n-o.length,0)}),o="")}return t}getMentions(){const e=this,t=this.findMatches(),o=[];return t.forEach((t=>{e.users.forEach((e=>{const n=t.word.replace("@","");e.name===n&&o.push(e)}))})),o}_initUsersMention(){const e=this;if(e._initMenu)return;e._initMenu=!0;const t=document.createElement("div");t.id=e.id+"_mention_menu",t.classList.add("smart-text-area-mention-menu","smart-hidden"),e._mentionMenu=t,document.body.appendChild(t),e._mentionPlugin=new Smart.Mention(e.richText?e.$.editor:e.$.input,t,(t=>""===t?e.users:e.users.filter((e=>e.name.startsWith(t)))),((e,t)=>e?`${t}${e.name} `:""),((e,t,o)=>{const n=document.createElement("div");return n.setAttribute("role","option"),n.className="smart-text-area-mention-menu-item",o&&(n.classList.add("selected"),n.setAttribute("aria-selected","")),n.textContent=e.name,n.onpointerdown=e=>{e.preventDefault(),t()},n}))}_initRichText(e,t,o){const n=this,i=n,r={};if(!e)return;o||(o={bold:"Bold",italic:"Italic",underline:"Underline",striketrhough:"Strikethrough",unorderedlist:"Bulleted list",orderedlist:"Numbered list",checklist:"Checklist",paragraph:"Paragraph",format:"Format",h1:"Large Heading",h2:"Medium Heading",h3:"Small Heading",link:"Create link",code:"Code",openLink:"Ctrl + Click to open the link"});const s=`\n <div class="smart-container">\n <div class="smart-editor-toolbar"> \n <div style="height: auto;" class="smart-editor-toolbar-items-primary">\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.bold}" command="bold" item-name="bold"></div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.italic}" command="italic" item-name="italic"></div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.underline}" command="underline" item-name="underline"></div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.striketrhough}" command="strikethrough" item-name="strikethrough"></div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.unorderedlist}" command="insertUnorderedList" item-name="unorderedlist"></div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.orderedlist}" command="insertOrderedList" item-name="orderedlist"></div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.checklist}" command="insertUnorderedList" item-name="checklist"></div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.link}" command="hyperlink" item-name="hyperlink"></div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center smart-arrow-down" item-type="button" item-name="tableheader" tooltip="${o.format}"></div>\n </div>\n </div>\n <div class="smart-editor-content-container">\n <div class="smart-editor-editable" contenteditable="true"></div>\n </div>\n </div>\n `,a=e;a.className="smart-editor smart-rich-textarea",a.style.borderLeftWidth=a.style.borderTopWidth=a.style.borderRightWidth=a.style.borderBottomWidth="0px",a.innerHTML=s;const l=a.querySelector(".smart-editor-editable");l.style.resize=n.resize,n.style.minHeight=n.minHeight+"px",l.style.minHeight=n.minHeight+"px",l.style.minWidth=n.minWidth+"px",e.style.minHeight=n.minHeight+"px",e.style.minWidth=n.minWidth+"px";const d=a.querySelectorAll(".smart-editor-toolbar-item");if(r.textarea=t,r.tools=[],r.toolbar=a.querySelector(".smart-editor-toolbar"),n.toolbarOnFocus){r.toolbar.id=n.id+"_toolbar";const e=document.createElement("div");e.classList.add("smart-editor"),e.classList.add("smart-editor-toolbar-float"),e.setAttribute("focus",""),e.appendChild(r.toolbar),a.querySelector(".smart-container").setAttribute("toolbar-on-focus",""),n.appendChild(e)}r.contentContainer=a.querySelector(".smart-editor-content-container");const c=document.createElement("div");c.className="smart-editor-tooltip",c.setAttribute("tooltip-position","bottom"),document.body.appendChild(c),r.tooltip=document.querySelector(".smart-editor-tooltip");new ResizeObserver((()=>{if("none"!==n.resize){if(n.style.width=parseInt(l.offsetWidth)+2+"px",n.toolbarOnFocus)return void(n.style.height=parseInt(l.offsetHeight)+2+"px");n.style.height=parseInt(l.offsetHeight)+r.toolbar.offsetHeight+2+"px"}})).observe(l),d.forEach((e=>{const t=e.getAttribute("item-name");r.tools[t]={element:e,type:"button"},e.onmouseenter=e=>{setTimeout((()=>{const t=e.target.getAttribute("tooltip"),o=e.target.getBoundingClientRect(),i=(r.toolbar.getBoundingClientRect(),e=>e?e.offsetTop+i(e.offsetParent):0),s=e=>e?e.offsetLeft+s(e.offsetParent):0,a=(l=e.target,{left:s(l),top:i(l)});var l;r.tooltip.style.top=5+a.top+o.height+"px",r.tooltip.setAttribute("hover-tooltip",t),r.tooltip.classList.add("open"),r.tooltip.style.left=a.left+o.width/2-r.tooltip.offsetWidth/2+"px",n._tooltipTimer&&clearTimeout(n._tooltipTimer),n._tooltipTimer=setTimeout((()=>{r.tooltip.classList.remove("open")}),1e3)}),150)},e.onmouseleave=()=>{r.tooltip.classList.remove("open")},e.onpointerdown=e=>{const t=e.target.getAttribute("item-name"),i=(e.target.getAttribute("item-value"),e.target.getAttribute("command")),s=e.target.getAttribute("command-value"),l=a.querySelector(".smart-editor-editable");if("tableheader"===t){e.preventDefault();const t=n.toolbarOnFocus?document.querySelector("#"+n.id+'_toolbar [item-name="tableheader"]'):a.querySelector('[item-name="tableheader"]');if(t._popup)t._popup.remove(),delete t._popup;else{t._popup=document.createElement("div");const e=t._popup;document.body.appendChild(e),e.style.position="absolute",e.style.height="auto",e.style.width="70px",e.style.background="var(--smart-background)",e.style.borderStyle="solid",e.style.borderWidth="1px",e.style.borderColor="var(--smart-border)",e.style.boxShadow="var(--smart-elevation-8)",e.style.zIndex=99999;const n=t.getBoundingClientRect();e.style.top=n.bottom+"px",e.style.left=n.left-20+"px",e.innerHTML=`\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.paragraph}" command="insertParagraph" command-value="p" item-name="p">P</div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.h1}" command="formatBlock" command-value="H1" item-name="h1">H1</div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.h2}" command="formatBlock" command-value="H2" item-name="h2">H2</div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.h3}" command="formatBlock" command-value="H3" item-name="h3">H3</div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.code}" command="formatBlock" command-value="pre" item-name="pre">Code</div> \n `,e.querySelectorAll(".smart-button").forEach((e=>{e.onpointerdown=e=>{t._popup.remove(),delete t._popup;const o=e.target.getAttribute("command"),n=e.target.getAttribute("command-value");a.querySelector(".smart-editor-editable").getRootNode().execCommand(o,!1,n),e.preventDefault()}}))}return}e.target.hasAttribute("checked")?e.target.removeAttribute("checked"):e.target.setAttribute("checked","");const d=n.toolbarOnFocus?document.querySelector("#"+n.id+'_toolbar [item-name="tableheader"]'):a.querySelector('[item-name="tableheader"]');switch(d._popup&&(d._popup.remove(),delete d._popup),t){case"bold":case"italic":case"underline":case"strikethrough":case"unorderedlist":case"checklist":case"orderedlist":l.getRootNode().execCommand(i,!1,null);break;case"hyperlink":{const e=r._getSelectionRange();let t,n=e.startContainer;n&&"a"!==n.nodeName.toLowerCase()&&(n=n.parentElement);let i=!1;n&&"a"===n.nodeName.toLowerCase()?(t=n.textContent,i=!0):t=e.toString(),i?(n.remove(),l.getRootNode().execCommand("insertHTML",!1,t)):t&&(l.getRootNode().execCommand("insertHTML",!1,'<a title="'+o.openLink+'" href="https://'+t.trim()+'">'+t+"</a>"),setTimeout((()=>{let e=r._getSelectionRange().startContainer;e&&"a"!==e.nodeName.toLowerCase()&&(e=e.parentElement),e&&"a"===e.nodeName.toLowerCase()&&(e.onmouseenter=t=>{t.ctrlKey&&e.classList.add("ctrl")},e.onmousemove=t=>{t.ctrlKey&&e.classList.add("ctrl")},e.onmouseleave=()=>{e.classList.remove("ctrl")})}),50));break}case"h1":case"h2":case"h3":case"p":case"pre":case"formats":l.getRootNode().execCommand(i,!1,s)}if("checklist"===t){const e=window.getSelection();if(e.focusNode){const t=e.focusNode.parentElement.closest("ul");t&&t.setAttribute("checklist","")}}e.preventDefault()}}));const m=a.querySelector(".smart-editor-editable");r.content=m,r.content.innerHTML="<div>"+t.value+"&#8203;</div>";const u=(e,o)=>{const n=r;return void 0===e&&(e=t.value),e=!o&&n.enableHtmlEncode?e.replaceAll("<","&lt;").replaceAll(">","&gt;"):e.replaceAll("&lt;","<").replaceAll("&gt;",">")};e.component=r;const h=(e,t)=>{var o=t(e);for(e=e.firstChild;!1!==o&&e;e=e.nextSibling)o=h(e,t);return o};r.getCaretPosition=e=>{var t=window.getSelection(),o=[0,0];if(t.anchorNode===e)o=[t.anchorOffset,t.extentOffset];else{var n=[t.anchorNode,t.extentNode];if(!e.contains(t.anchorNode)||!e.contains(t.extentNode))return;var i,r=[0,0];h(e,(function(e){for(i=0;i<2;i++)if(e==n[i]&&(r[i]=!0,r[0==i?1:0]))return!1;if(e.textContent&&!e.firstChild)for(i=0;i<2;i++)r[i]||(o[i]+=e.textContent.length)})),o[0]+=t.anchorOffset,o[1]+=t.extentOffset}return o[0]<=o[1]?o:[o[1],o[0]]},r.setCaretPosition=e=>{if(e>=0){const t=window.getSelection(),o=(e,t,n)=>{if(n||((n=document.createRange()).selectNode(e),n.setStart(e,0)),0===t.count)n.setEnd(e,t.count);else if(e&&t.count>0)if(e.nodeType===Node.TEXT_NODE)e.textContent.length<t.count?t.count-=e.textContent.length:(n.setEnd(e,t.count),t.count=0);else for(var i=0;i<e.childNodes.length&&(n=o(e.childNodes[i],t,n),0!==t.count);i++);return n},n=o(a.querySelector(".smart-editor-editable"),{count:e});n&&(n.collapse(!1),t.removeAllRanges(),t.addRange(n))}},r.execCommand=(e,t)=>{const o=m.getRootNode();o&&o.execCommand(e,!1,t)},Object.defineProperty(e,"selectionStart",{configurable:!1,enumerable:!0,get(){t.value=r.content.textContent;const e=r.getCaretPosition(r.content);return void 0!==e?e[1]:0},set(e){r.setCaretPosition(e)}}),Object.defineProperty(e,"value",{configurable:!1,enumerable:!0,get:()=>(t.value=r.content.textContent,r._getInputValue()),set(e){r.content.innerHTML="<div>"+e+"&#8203;</div>",t.value=e,i.set("value",t.value,!1)}});return r._getSelectionRange=()=>{const e=r;return e._selectionRange||e._setSelectionRange(),e._selectionRange},r._setSelectionRange=(e,t,o)=>{const n=r;let i=a.querySelector(".smart-editor-editable");const s=window.getSelection();let l;if(e){if(l=document.createRange(),"number"==typeof t&&"number"==typeof o)try{l.setStart(e,parseInt(t)),l.setEnd(e,parseInt(o))}catch(t){l.selectNodeContents(e)}else"img"===e.nodeName.toLowerCase()||e.classList.contains("smart-editor-video-container")?(l.setStartBefore(e),l.setEndAfter(e),l.selectNode(e)):l.selectNodeContents(e);s.removeAllRanges(),s.addRange(l)}else s.rangeCount&&(l=s.getRangeAt(0));try{l&&l.startContainer&&i.contains(l.startContainer)&&(r._selectionRange=l)}catch(e){}n._selectionRange||(l=document.createRange(),l.selectNodeContents(i),l.collapse(!0),r._selectionRange=l)},r._getNodeFromList=(e,t)=>{const o=r.content;if(e&&t)for(;e&&e!==o;){const o=e.nodeName.toLocaleLowerCase();if(t.indexOf(o)>-1)return o;e=e.parentElement}},r._setItemValue=(e,t)=>{const o=r;let n=t.value;e&&t&&("button"===t.type?n?(e.setAttribute("checked",""),e.setAttribute("aria-pressed",!0)):(e.removeAttribute("checked"),e.setAttribute("aria-pressed",!1)):(n||"color-input"!==t.type?["fontname","formats"].indexOf(t.name)>-1&&(n=o.localize(t.value)||t.label||t.value):n="transparent",n?(e.setAttribute("item-value",n),e.style.setProperty("--item-value",n)):(e.removeAttribute("item-value"),e.style.removeProperty("--item-value"))))},r._getInputValue=u,r._updateToolbarItems=e=>{const t=r,o=t._getSelectionRange();if(!o)return;const n=t.content;let i,s=o.startOffset>o.endOffset?o.endContainer:o.startContainer;if(s&&(s.closest||(s=s.parentElement),s&&s.closest)){e||(e=["alignment","bold","hyperlink","italic","strikethrough","underline","fontsize","fontname","formats","fontcolor","backgroundcolor","orderedlist","unorderedlist","checklist","subscript","superscript","h1","h2","h3","code","pre"]);for(let o=0,r=e.length;o<r;o+=1){const r=e[o],a=t.tools[r];if(a){let e;if("alignment"===r)e=s.style.textAlign;else if("bold"===r)e=!!t._getNodeFromList(s,["b","strong","h4","h5","h6"]);else if("hyperlink"===r)e=!!t._getNodeFromList(s,["a"]);else if("h1"===r)e=!!t._getNodeFromList(s,["h1"]);else if("h2"===r)e=!!t._getNodeFromList(s,["h2"]);else if("h3"===r)e=!!t._getNodeFromList(s,["h3"]);else if("pre"===r)e=!!t._getNodeFromList(s,["pre"]);else if("p"===r)e=!!t._getNodeFromList(s,["p"]);else if("italic"===r)e=!!t._getNodeFromList(s,["i"]);else if("underline"===r)e=!!t._getNodeFromList(s,["u"]);else if("strikethrough"===r)e=!!t._getNodeFromList(s,["strike"]);else if("fontsize"===r){const t=s.closest(".smart-editor-editable font");t&&(e=t.style.fontSize),e||(i||(i=window.getComputedStyle(s)),e=i.fontSize),e=parseInt(e),isNaN(e)&&(e="")}else if("fontname"===r){const t=s.closest(".smart-editor-editable font");t&&t.hasAttribute("face")?e=t.getAttribute("face"):(i||(i=window.getComputedStyle(s)),e=i.fontFamily.split(",")[0])}else if("formats"===r&&s!==n){const o=["h1","h2","h3","p","pre"];if(e="",o){const n=o;e=t._getNodeFromList(s,n)||""}}else if("fontcolor"===r){const t=s.closest(".smart-editor-editable font");t?e=t.color:(i||(i=window.getComputedStyle(s)),e=i.color)}else if("backgroundcolor"===r)e=t._getNodeBackgroundColor(s),e||(i||(i=window.getComputedStyle(s)),e=i.backgroundColor);else if("orderedlist"===r||"unorderedlist"===r){e=!!s.closest(`.smart-editor-editable ${"orderedlist"===r?"ol":"ul"} li`);const t=s.closest(`.smart-editor-editable ${"orderedlist"===r?"ol":"ul"} li`);t&&t.parentElement&&t.parentElement.hasAttribute("checklist")&&(e=!1)}else if("checklist"===r){const t=s.closest(`.smart-editor-editable ${"orderedlist"===r?"ol":"ul"} li`);t&&t.parentElement.hasAttribute("checklist")&&(e=!0)}else"subscript"===r?e=!!s.closest(".smart-editor-editable sub"):"superscript"===r&&(e=!!s.closest(".smart-editor-editable sup"));if(!e&&a.dataSource){const t=a.dataSource[0];t&&(e=t.value||t)}null!==e&&(a.value=e,t._setItemValue(t.toolbar.querySelector(`.smart-editor-toolbar-item[item-name=${r}]`),a))}}}},r._getTextFromCarret=()=>{const e=r._getSelectionRange(),t=e.startContainer,o=t.textContent;let n,i;if(!e.toString()&&o.length>0&&o.indexOf(" ")>-1){const t=o.slice(0,e.startOffset).lastIndexOf(" ")+1;let r=o.slice(e.endOffset).indexOf(" ");r<0&&(r=o.length-1),n=t>-1?t:e.startOffset,i=Math.max(e.endOffset,e.endOffset+r)}else n=0,i=t.length;return{selectionStartIndex:n,selectionEndIndex:i}},r.focus=()=>{m.focus()},r.blur=()=>{m.blur()},r.getHTML=()=>u(r.content.innerHTML),m.onpointerup=e=>{const t=r,o=e.target;if(t._setSelectionRange(),t._updateToolbarItems(),e.ctrlKey){let e=t._getSelectionRange().startContainer;e&&"a"!==e.nodeName.toLowerCase()&&(e=e.parentElement),e&&"a"===e.nodeName.toLowerCase()&&window.open(e.href,"_blank")}if(o&&"LI"===o.nodeName&&o.closest("UL[checklist]")){const e=t._getSelectionRange();e&&0===e.startOffset&&0===e.endOffset&&(o.hasAttribute("checked")?o.removeAttribute("checked"):o.setAttribute("checked",""))}},m.onpaste=()=>{const e=r;e._setSelectionRange(),e._updateToolbarItems(),t.value=e.content.textContent,i.set("value",t.value,!1)},m.oninput=()=>{const e=r;e._setSelectionRange(),e._updateToolbarItems(),t.value=e.content.textContent,i.set("value",t.value,!1)},m.onkeydown=e=>{const t=r;t._setSelectionRange(),t._updateToolbarItems();let o=r._getSelectionRange().startContainer;o&&"a"!==o.nodeName.toLowerCase()&&(o=o.parentElement),o&&"a"===o.nodeName.toLowerCase()&&e.ctrlKey&&o.classList.add("ctrl")},m.onkeyup=()=>{const e=r;e._setSelectionRange(),e._updateToolbarItems(),t.value=e.content.textContent,i.set("value",t.value,!1)},m.onfocus=()=>{a.setAttribute("focus",""),i.toolbarOnFocus&&r.toolbar.parentElement.classList.add("show")},m.onblur=()=>{const e=r;a.removeAttribute("focus"),t.value=e.content.textContent,i.set("value",t.value,!1),i.toolbarOnFocus&&r.toolbar.parentElement.classList.remove("show"),r.tooltip.classList.remove("open")},document.addEventListener("selectionchange",(e=>{const t=r;if(!e.target.getSelection)return;const o=e.target.getSelection().focusNode;t.contentContainer.contains(o)&&(t._setSelectionRange(),t._updateToolbarItems())})),r}render(){const e=this;if(super.render(),e.richText)e._initRichText(e.$.editor,e.$.input);else{new ResizeObserver((()=>{"none"!==e.resize&&(e.style.width=parseInt(e.$.input.offsetWidth)+2+"px",e.style.height=parseInt(e.$.input.offsetHeight)+2+"px")})).observe(e.$.input),e.$.input.style.resize=e.resize}e._initUsersMention(),e._renderMentionTrigger(),e.classList.add("smart-input")}_renderMentionTrigger(){const e=this;if(!this.richText&&e.users&&e.users.length){e.setAttribute("has-users","");const t=document.createElement("span");t.innerHTML="@",t.style.position="absolute",t.classList.add("smart-hidden"),t.classList.add("smart-mention-trigger"),t.style.bottom="3px","none"!==e.resize?t.style.right="10px":t.style.right="5px",t.style.cursor="pointer",t.onpointerdown=t=>{const o=this.$.input.selectionEnd,n=this.$.input.value.slice(0,o),i=this.$.input.value.substring(o);return e.richText?(e.$.editor.component.execCommand("insertHTML","@"),this.$.editor.dispatchEvent(new Event("input")),void t.preventDefault()):n.length>1&&n.substring(n.length-2).indexOf("@")>=0?(this.$.input.dispatchEvent(new Event("input")),void t.preventDefault()):(n.length>0?(this.$.input.value=n+" @"+i,this.$.input.selectionStart=this.$.input.selectionEnd=o+2):0===e.$.input.selectionStart&&(this.$.input.value=n+"@ "+i,this.$.input.selectionStart=this.$.input.selectionEnd=1),this.$.input.dispatchEvent(new Event("input")),void t.preventDefault())},e._mentionTrigger=t,e.addEventListener("focus",(()=>{t.classList.remove("smart-hidden"),e._mentionPlugin&&e._mentionPlugin.refreshMenu()})),e.addEventListener("blur",(()=>{t.classList.add("smart-hidden"),e._mentionPlugin&&e._mentionPlugin.refreshMenu()})),e.onmouseenter=()=>{t.classList.remove("smart-hidden")},e.onmouseleave=()=>{t.classList.add("smart-hidden")},e.$.inputContainer.appendChild(t)}}});const e=["direction","boxSizing","width","height","overflowX","overflowY","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing","tabSize","MozTabSize"];function t(t,o){const n=document.createElement("div");document.body.appendChild(n);const i=n.style;let r=getComputedStyle(t);if(t.className.indexOf("smart-editor")>=0){const e=t.querySelector(".smart-editor-editable");r=getComputedStyle(e)}i.whiteSpace="pre-wrap",i.wordWrap="break-word",i.position="absolute",i.visibility="hidden",e.forEach((e=>{i[e]=r[e]})),i.overflow="hidden",n.textContent=t.value.substring(0,o);const s=document.createElement("span");s.textContent=t.value.substring(o)||".",n.appendChild(s);const a={top:s.offsetTop+parseInt(r.borderTopWidth),left:s.offsetLeft+parseInt(r.borderLeftWidth),height:s.offsetHeight};if(t.className.indexOf("smart-editor")>=0){const e=t.getBoundingClientRect(),o=window.getSelection().getRangeAt(0).getClientRects()[0];o&&e&&(a.left=o.left-e.left,a.top=o.top-e.top)}return n.remove(),a}Smart.Mention=class{constructor(e,t,o,n,i){this.ref=e,this.menuRef=t,this.resolveFn=o,this.replaceFn=n,this.menuItemFn=i,this.options=[],this.makeOptions=this.makeOptions.bind(this),this.closeMenu=this.closeMenu.bind(this),this.selectItem=this.selectItem.bind(this),this.onInput=this.onInput.bind(this),this.onKeyDown=this.onKeyDown.bind(this),this.renderMenu=this.renderMenu.bind(this),this.ref.addEventListener("input",this.onInput),this.ref.addEventListener("keydown",this.onKeyDown)}destroy(){this.ref.removeEventListener("input",this.onInput),this.ref.removeEventListener("keydown",this.onKeyDown)}async makeOptions(e){const t=await this.resolveFn(e);0!==t.lenght?(this.options=t,this.renderMenu()):this.closeMenu()}closeMenu(){setTimeout((()=>{this.options=[],this.left=void 0,this.top=void 0,this.triggerIdx=void 0,this.renderMenu()}),0)}selectItem(e){return()=>{const t=this.ref.value.substr(0,this.triggerIdx),o=this.options[e],n=this.replaceFn(o,this.ref.value[this.triggerIdx]),i=this.ref.value.substr(this.ref.selectionStart),r=`${t}${n}${i}`;-1!==this.ref.className.indexOf("smart-editor")?this.ref.component.execCommand("insertHTML",o.name):(this.ref.value=r,this.ref.ownerElement&&(this.ref.ownerElement.value=r));const s=this.ref.value.length-i.length;-1===this.ref.className.indexOf("smart-editor")?this.ref.setSelectionRange(s,s):this.ref.selectionStart=s,this.ref.dispatchEvent(new Event("input")),this.closeMenu(),this.ref.focus()}}onInput(e){const o=this.ref.selectionStart,n=this.ref.value.slice(0,o),i=n.split(/\s/),r=i[i.length-1],s=n.endsWith(r)?n.length-r.length:-1;if(!("@"===n[s]))return void this.closeMenu();const a=n.slice(s+1);this.makeOptions(a);const l=t(this.ref,o),{top:d,left:c}=this.ref.getBoundingClientRect();setTimeout((()=>{this.active=0,this.left=window.scrollX+l.left+c+this.ref.scrollLeft,this.top=window.scrollY+l.top+d+l.height-this.ref.scrollTop,this.triggerIdx=s,this.renderMenu()}),0)}refreshMenu(){void 0!==this.triggerIdx&&null!==this.triggerIdx&&(this.ref===document.activeElement?this.triggerIdx&&this.menuRef.classList.remove("smart-hidden"):this.menuRef.classList.add("smart-hidden"),setTimeout((()=>{const e=this.ref.selectionStart,o=t(this.ref,e),{top:n,left:i}=this.ref.getBoundingClientRect();this.left=window.scrollX+o.left+i+this.ref.scrollLeft,this.top=window.scrollY+o.top+n+o.height-this.ref.scrollTop,this.menuRef.style.left=this.left+"px",this.menuRef.style.top=this.top+"px"})))}onKeyDown(e){let t=!1;if(void 0!==this.triggerIdx)switch(e.key){case"ArrowDown":this.active=Math.min(this.active+1,this.options.length-1),this.renderMenu(),t=!0;break;case"ArrowUp":this.active=Math.max(this.active-1,0),this.renderMenu(),t=!0;break;case"Enter":case"Tab":this.selectItem(this.active)(),t=!0}t&&e.preventDefault()}renderMenu(){return void 0===this.top?(this.menuRef.hidden=!0,void this.menuRef.classList.add("smart-hidden")):this.options.length?(this.menuRef.style.left=this.left+"px",this.menuRef.style.top=this.top+"px",this.menuRef.innerHTML="",this.ref===document.activeElement&&this.menuRef.classList.remove("smart-hidden"),this.options.forEach(((e,t)=>{this.menuRef.appendChild(this.menuItemFn(e,this.selectItem(t),this.active===t))})),this.menuRef.hidden=!1,void this.menuRef.classList.remove("smart-hidden")):(this.menuRef.hidden=!0,void this.menuRef.classList.add("smart-hidden"))}}})();
6
+ (()=>{Smart("smart-text-area",class extends Smart.Input{static get properties(){return{users:{value:[],type:"array",reflectToAttribute:!1},resize:{value:"none",type:"string"},richText:{value:!1,type:"boolean"},enableHTMLEncode:{value:!0,type:"boolean"},minWidth:{value:0,type:"number"},minHeight:{value:0,type:"number"},toolbarOnFocus:{value:!1,type:"boolean"},uploadSettings:{value:{url:{value:"",type:"string",reflectToAttribute:!1},removeUrl:{value:"",type:"string",reflectToAttribute:!1},existsUrl:{value:"",type:"string",reflectToAttribute:!1},name:{value:"userfile[]",type:"string",reflectToAttribute:!1},uploadMaxCount:{value:5,type:"number",reflectToAttribute:!1},uploadMaxSize:{value:2097152,type:"number",reflectToAttribute:!1},data:{value:null,type:"object",reflectToAttribute:!1},onUploadStarted:{value:null,type:"any",reflectToAttribute:!1},onUploadCompleted:{value:null,type:"any",reflectToAttribute:!1},onUploadRemove:{value:null,type:"any",reflectToAttribute:!1},onUploadError:{value:null,type:"any",reflectToAttribute:!1},onChange:{value:null,type:"any",reflectToAttribute:!1},onProgress:{value:null,type:"any",reflectToAttribute:!1},onAbort:{value:null,type:"any",reflectToAttribute:!1},onError:{value:null,type:"any",reflectToAttribute:!1},onSetHeaders:{value:null,type:"any",reflectToAttribute:!1}},reflectToAttribute:!1,type:"object"},toolbarItems:{value:["bold","italic","underline","strikethrough","alignment","orderedlist","unorderedlist","checklist","hyperlink","image","tableheader"],reflectToAttribute:!1,type:"array"}}}template(){return'<div id="inputContainer" role="presentation"><textarea class="smart-input" id=\'input\' readonly=\'[[readonly]]\' placeholder=\'[[placeholder]]\' name=\'[[name]]\' value=\'{{value::keyup}}\' disabled=\'[[disabled]]\' aria-label="[[placeholder]]"></textarea><div id="editor"></div><span class="smart-hidden smart-hint" inner-h-t-m-l="[[hint]]" id="span"></span><div id="dropDownButton" tabindex=-1 class="smart-drop-down-button" role="button" aria-label="Toggle popup"><div id="arrow" class="arrow" aria-hidden="true"></div></div></div>'}_blurHandler(){const e=this;e.richText?e.removeAttribute("focus"):super._blurHandler()}_focusHandler(){const e=this;e.richText&&(e.$.editor.component.focus(),setTimeout((()=>{const t=e.$.editor.value;e.$.editor.selectionStart=t.length}))),super._focusHandler()}setHTML(e){const t=this;if(t.richText)return t.$.editor.value=e;this.value=e.replaceAll("<","&lt;").replaceAll(">","&gt;")}getHTML(){const e=this;return e.richText?e.$.editor.component.getHTML():e.value}propertyChangedHandler(e,t,o){const n=this;"value"===e&&n.richText&&(n.$.editor.value=o),"users"===e?(delete n._initMenu,n._mentionMenu&&(n._mentionPlugin&&n._mentionPlugin.destroy(),n._mentionMenu.remove(),n._initUsersMention()),n._renderMentionTrigger()):"resize"===e&&(n.richText?n.$.editor.querySelector(".smart-editor-editable").style.resize=o:n.$.input.style.resize=o,n._mentionTrigger&&("none"!==n.resize?n._mentionTrigger.style.right="10px":n._mentionTrigger.style.right="5px"))}detached(){const e=this;delete e._initMenu,e._mentionMenu&&e._mentionMenu.remove()}findMatches(){const e=this.$.input.value.split("").concat([" "]),t=[];let o="";for(let n in e){let i=e[n],r=e[n-1]||" ",s=[" ","\\n"].indexOf(r)>-1||10===r.charCodeAt(0);("@"===i&&s||o.length)&&" "!==i&&(o+=i),o.length&&" "===i&&(t.push({word:o,index:Math.max(n-o.length,0)}),o="")}return t}getMentions(){const e=this,t=this.findMatches(),o=[];return t.forEach((t=>{e.users.forEach((e=>{const n=t.word.replace("@","");e.name===n&&o.push(e)}))})),o}_initUsersMention(){const e=this;if(e._initMenu)return;e._initMenu=!0;const t=document.createElement("div");t.id=e.id+"_mention_menu",t.classList.add("smart-text-area-mention-menu","smart-hidden"),e._mentionMenu=t,document.body.appendChild(t),e._mentionPlugin=new Smart.Mention(e.richText?e.$.editor:e.$.input,t,(t=>""===t?e.users:e.users.filter((e=>e.name.startsWith(t)))),((e,t)=>e?`${t}${e.name} `:""),((e,t,o)=>{const n=document.createElement("div");return n.setAttribute("role","option"),n.className="smart-text-area-mention-menu-item",o&&(n.classList.add("selected"),n.setAttribute("aria-selected","")),n.textContent=e.name,n.onpointerdown=e=>{e.preventDefault(),t()},n}))}_initRichText(e,t,o){const n=this,i=n,r={};if(!e)return;o||(o={bold:"Bold",italic:"Italic",underline:"Underline",striketrhough:"Strikethrough",alignment:"Alignment",unorderedlist:"Bulleted list",orderedlist:"Numbered list",checklist:"Checklist",paragraph:"Paragraph",format:"Format",image:"Image",h1:"Large Heading",h2:"Medium Heading",h3:"Small Heading",link:"Create link",code:"Code",openLink:"Ctrl + Click to open the link"});const s=`\n <div class="smart-container">\n <div class="smart-editor-toolbar"> \n <div style="height: auto;" class="smart-editor-toolbar-items-primary">\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.bold}" command="bold" item-name="bold"></div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.italic}" command="italic" item-name="italic"></div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.underline}" command="underline" item-name="underline"></div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.striketrhough}" command="strikethrough" item-name="strikethrough"></div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center smart-arrow-down" item-type="button" item-value="left" item-name="alignment" command="justify" tooltip="${o.alignment}"></div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.unorderedlist}" command="insertUnorderedList" item-name="unorderedlist"></div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.orderedlist}" command="insertOrderedList" item-name="orderedlist"></div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.checklist}" command="insertUnorderedList" item-name="checklist"></div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.link}" command="hyperlink" item-name="hyperlink"></div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.image}" command="image" item-name="image"></div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center smart-arrow-down" item-type="button" item-name="tableheader" tooltip="${o.format}"></div>\n </div>\n </div>\n <div class="smart-editor-content-container">\n <div class="smart-editor-editable" contenteditable="true"></div>\n </div>\n </div>\n `,a=e;a.className="smart-editor smart-rich-textarea",a.style.borderLeftWidth=a.style.borderTopWidth=a.style.borderRightWidth=a.style.borderBottomWidth="0px",a.innerHTML=s;const l=a.querySelector(".smart-editor-editable");l.style.resize=n.resize,n.style.minHeight=n.minHeight+"px",l.style.minHeight=n.minHeight+"px",l.style.minWidth=n.minWidth+"px",e.style.minHeight=n.minHeight+"px",e.style.minWidth=n.minWidth+"px";const d=a.querySelectorAll(".smart-editor-toolbar-item");for(let e=0;e<d.length;e++){const t=d[e],o=t.getAttribute("item-name");-1===n.toolbarItems.indexOf(o)&&t.classList.add("smart-hidden")}if(r.textarea=t,r.tools=[],r.toolbar=a.querySelector(".smart-editor-toolbar"),n.toolbarOnFocus){r.toolbar.id=n.id+"_toolbar";const e=document.createElement("div");e.classList.add("smart-editor"),e.classList.add("smart-editor-toolbar-float"),e.setAttribute("focus",""),e.appendChild(r.toolbar),a.querySelector(".smart-container").setAttribute("toolbar-on-focus",""),n.appendChild(e)}r.contentContainer=a.querySelector(".smart-editor-content-container");const m=document.createElement("div");m.className="smart-editor-tooltip",m.setAttribute("tooltip-position","bottom"),document.body.appendChild(m),r.tooltip=document.querySelector(".smart-editor-tooltip");new ResizeObserver((()=>{if("none"!==n.resize){if(n.style.width=parseInt(l.offsetWidth)+2+"px",n.toolbarOnFocus)return void(n.style.height=parseInt(l.offsetHeight)+2+"px");n.style.height=parseInt(l.offsetHeight)+r.toolbar.offsetHeight+2+"px"}})).observe(l);const c=[],u=(e,t)=>{const o=this,n=new FormData,i=o.uploadSettings.url;let r=!1;const s=files[0],a=o.uploadSettings.data;a&&""!==a&&("string"==typeof a?n.append("postData",a):n.append("postData",JSON.stringify(a))),n.append("fileType",fileType);for(let e=0;e<files.length;e++)n.append(o.uploadSettings.name,files[e]),r=!0;let l=new XMLHttpRequest;l.open("POST",i),o.uploadSettings.onSetHeaders&&"function"==typeof o.uploadSettings.onSetHeaders&&o.uploadSettings.onSetHeaders(l,s),o.uploadSettings.onUploadStarted&&o.uploadSettings.onUploadStarted({files,status:l.status}),l.upload.onprogress=function(e){o.uploadSettings.onProgress&&o.uploadSettings.onProgress(e)},l.onabort=function(e){o.uploadSettings.onAbort&&o.uploadSettings.onAbort(e)},l.onerror=function(e){o.uploadSettings.onError&&o.uploadSettings.onError(e)},l.onload=function(){let e=!1;if(l.response&&("string"==typeof l.response?(e=l.response,e.indexOf("[{")>=0&&(e=JSON.parse(l.response))):e=JSON.parse(l.response)),l.status>=200&&l.status<=299){const n=(e,t)=>{if(e.response&&e.response.response&&"success"!==e.response.response)return null;let o=!1;l.fileURL&&(o=l.file_url);let n={};e&&e.file_url?o=e.file_url:e&&e[0]&&e[0].file_url&&(o=e[0].file_url);let i=!1;e&&e.file_url_small?i=e.file_url_small:e&&e[0]&&e[0].file_url_small&&(i=e[0].file_url_small);let r=!1;e&&e.file_url_medium?r=e.file_url_medium:e&&e[0]&&e[0].file_url_medium&&(r=e[0].file_url_medium);let s=!1;return e&&e.file_url_large?s=e.file_url_large:e&&e[0]&&e[0].file_url_large&&(s=e[0].file_url_large),o&&(n.value=o),i&&(n.small=i),r&&(n.medium=r),s&&(n.large=s),n.label=t,n};for(let t=0;t<files.length;t++){const i=files[t].name?[]:files[t].split("/"),r="url"===fileType?i[i.length-1]:files[t].name;o.uploadSettings.url;const s=n((e.files||e[0]&&e[0].files||[e[0]])[t],r);s&&c.push(s)}t(c,e)}else t(c,e)},l.onreadystatechange=function(){},r&&l.send(n)};d.forEach((t=>{const i=t.getAttribute("item-name");r.tools[i]={element:t,type:"button"},t.onmouseenter=e=>{setTimeout((()=>{const t=e.target.getAttribute("tooltip"),o=e.target.getBoundingClientRect(),i=(r.toolbar.getBoundingClientRect(),e=>e?e.offsetTop+i(e.offsetParent):0),s=e=>e?e.offsetLeft+s(e.offsetParent):0,a=(l=e.target,{left:s(l),top:i(l)});var l;r.tooltip.style.top=5+a.top+o.height+"px",r.tooltip.setAttribute("hover-tooltip",t),r.tooltip.classList.add("open"),r.tooltip.style.left=a.left+o.width/2-r.tooltip.offsetWidth/2+"px",n._tooltipTimer&&clearTimeout(n._tooltipTimer),n._tooltipTimer=setTimeout((()=>{r.tooltip.classList.remove("open")}),1e3)}),150)},t.onmouseleave=()=>{r.tooltip.classList.remove("open")},t.onpointerdown=t=>{const i=t.target.getAttribute("item-name"),s=(t.target.getAttribute("item-value"),t.target.getAttribute("command")),l=t.target.getAttribute("command-value"),d=a.querySelector(".smart-editor-editable"),m=e=>{if(!e||"tableheader"===e){const e=n.toolbarOnFocus?document.querySelector("#"+n.id+'_toolbar [item-name="tableheader"]'):a.querySelector('[item-name="tableheader"]');e._popup&&(e._popup.remove(),delete e._popup)}if(!e||"alignment"===e){const e=n.toolbarOnFocus?document.querySelector("#"+n.id+'_toolbar [item-name="alignment"]'):a.querySelector('[item-name="alignment"]');e._popup&&(e._popup.remove(),delete e._popup)}};if("tableheader"!==i)if("alignment"!==i){switch(m(),t.target.hasAttribute("checked")?t.target.removeAttribute("checked"):t.target.setAttribute("checked",""),i){case"bold":case"italic":case"underline":case"strikethrough":case"unorderedlist":case"checklist":case"orderedlist":d.getRootNode().execCommand(s,!1,null);break;case"image":{const t=document.createElement("input");t.type="file",t.accept="image/jpeg, image/png, image/gif",t.hidden=!0,document.body.appendChild(t);r._getSelectionRange();d.getRootNode().execCommand("insertHTML",!1,'<img style="max-width: 100%;" class="smart-hidden" id="targetImage"/>'),t.click(),t.onchange=()=>{const o=d.getRootNode().getElementById("targetImage"),i=t.files[0];o.id="",o.classList.add("smart-hidden");const r=new FileReader;r.addEventListener("load",(function(){o.src=r.result,o.classList.remove("smart-hidden")})),i&&r.readAsDataURL(i),n.uploadSettings.uploadUrl&&u(0,(t=>{t&&t.length&&(o.src=t[0].medium||t[0].value,o.classList.remove("smart-hidden"),e.imgArray||(e.imgArray=[]),e.imgArrayId||(e.imgArrayId=[]),e.imgArray.push(o.src),e.imgArrayId[o.src]=t[0])}))};break}case"hyperlink":{const e=r._getSelectionRange();let t,n=e.startContainer;n&&"a"!==n.nodeName.toLowerCase()&&(n=n.parentElement);let i=!1;n&&"a"===n.nodeName.toLowerCase()?(t=n.textContent,i=!0):t=e.toString(),i?(n.remove(),d.getRootNode().execCommand("insertHTML",!1,t)):t&&(d.getRootNode().execCommand("insertHTML",!1,'<a title="'+o.openLink+'" href="https://'+t.trim()+'">'+t+"</a>"),setTimeout((()=>{let e=r._getSelectionRange().startContainer;e&&"a"!==e.nodeName.toLowerCase()&&(e=e.parentElement),e&&"a"===e.nodeName.toLowerCase()&&(e.onmouseenter=t=>{t.ctrlKey&&e.classList.add("ctrl")},e.onmousemove=t=>{t.ctrlKey&&e.classList.add("ctrl")},e.onmouseleave=()=>{e.classList.remove("ctrl")})}),50));break}case"h1":case"h2":case"h3":case"p":case"pre":case"justify":case"formats":d.getRootNode().execCommand(s,!1,l)}if("checklist"===i){const e=window.getSelection();if(e.focusNode){const t=e.focusNode.parentElement.closest("ul");t&&t.setAttribute("checklist","")}}t.preventDefault()}else{t.preventDefault(),m("tableheader");const e=n.toolbarOnFocus?document.querySelector("#"+n.id+'_toolbar [item-name="alignment"]'):a.querySelector('[item-name="alignment"]');if(e._popup)e._popup.remove(),delete e._popup;else{e._popup=document.createElement("div");const t=e._popup;document.body.appendChild(t),t.style.position="absolute",t.style.height="auto",t.style.width="30px",t.style.background="var(--smart-background)",t.style.borderStyle="solid",t.style.borderWidth="1px",t.style.borderColor="var(--smart-border)",t.style.boxShadow="var(--smart-elevation-8)",t.style.zIndex=99999;const n=e.getBoundingClientRect();t.style.top=n.bottom+"px",t.style.left=n.left+"px",t.innerHTML=`\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.alignLeft}" command="justify" command-value="Left" item-name="alignment" item-value="left"></div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.alignCenter}" command="justify" command-value="Center" item-name="alignment" item-value="center"></div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.alignRight}" command="justify" command-value="Right" item-name="alignment" item-value="right"></div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.alignJustify}" command="justify" command-value="Full" item-name="alignment" item-value="justify"></div>\n `,t.querySelectorAll(".smart-button").forEach((t=>{t.onpointerdown=t=>{e._popup.remove(),delete e._popup;const o=t.target.getAttribute("command"),n=t.target.getAttribute("command-value");a.querySelector(".smart-editor-editable").getRootNode().execCommand(o+n,!1,null),t.preventDefault()}}))}}else{t.preventDefault(),m("alignment");const e=n.toolbarOnFocus?document.querySelector("#"+n.id+'_toolbar [item-name="tableheader"]'):a.querySelector('[item-name="tableheader"]');if(e._popup)e._popup.remove(),delete e._popup;else{e._popup=document.createElement("div");const t=e._popup;document.body.appendChild(t),t.style.position="absolute",t.style.height="auto",t.style.width="70px",t.style.background="var(--smart-background)",t.style.borderStyle="solid",t.style.borderWidth="1px",t.style.borderColor="var(--smart-border)",t.style.boxShadow="var(--smart-elevation-8)",t.style.zIndex=99999;const n=e.getBoundingClientRect();t.style.top=n.bottom+"px",t.style.left=n.left-20+"px",t.innerHTML=`\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.paragraph}" command="insertParagraph" command-value="p" item-name="p">P</div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.h1}" command="formatBlock" command-value="H1" item-name="h1">H1</div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.h2}" command="formatBlock" command-value="H2" item-name="h2">H2</div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.h3}" command="formatBlock" command-value="H3" item-name="h3">H3</div>\n <div class="smart-button smart-editor-toolbar-item smart-editor-toolbar-item-center" item-type="button" tooltip="${o.code}" command="formatBlock" command-value="pre" item-name="pre">Code</div> \n `,t.querySelectorAll(".smart-button").forEach((t=>{t.onpointerdown=t=>{e._popup.remove(),delete e._popup;const o=t.target.getAttribute("command"),n=t.target.getAttribute("command-value");a.querySelector(".smart-editor-editable").getRootNode().execCommand(o,!1,n),t.preventDefault()}}))}}}}));const p=a.querySelector(".smart-editor-editable");r.content=p,r.content.innerHTML="<div>"+t.value+"&#8203;</div>";const h=(e,o)=>{const n=r;return void 0===e&&(e=t.value),e=!o&&n.enableHtmlEncode?e.replaceAll("<","&lt;").replaceAll(">","&gt;"):e.replaceAll("&lt;","<").replaceAll("&gt;",">")};e.component=r;const g=(e,t)=>{var o=t(e);for(e=e.firstChild;!1!==o&&e;e=e.nextSibling)o=g(e,t);return o};r.getCaretPosition=e=>{var t=window.getSelection(),o=[0,0];if(t.anchorNode===e)o=[t.anchorOffset,t.extentOffset];else{var n=[t.anchorNode,t.extentNode];if(!e.contains(t.anchorNode)||!e.contains(t.extentNode))return;var i,r=[0,0];g(e,(function(e){for(i=0;i<2;i++)if(e==n[i]&&(r[i]=!0,r[0==i?1:0]))return!1;if(e.textContent&&!e.firstChild)for(i=0;i<2;i++)r[i]||(o[i]+=e.textContent.length)})),o[0]+=t.anchorOffset,o[1]+=t.extentOffset}return o[0]<=o[1]?o:[o[1],o[0]]},r.setCaretPosition=e=>{if(e>=0){const t=window.getSelection(),o=(e,t,n)=>{if(n||((n=document.createRange()).selectNode(e),n.setStart(e,0)),0===t.count)n.setEnd(e,t.count);else if(e&&t.count>0)if(e.nodeType===Node.TEXT_NODE)e.textContent.length<t.count?t.count-=e.textContent.length:(n.setEnd(e,t.count),t.count=0);else for(var i=0;i<e.childNodes.length&&(n=o(e.childNodes[i],t,n),0!==t.count);i++);return n},n=o(a.querySelector(".smart-editor-editable"),{count:e});n&&(n.collapse(!1),t.removeAllRanges(),t.addRange(n))}},r.execCommand=(e,t)=>{const o=p.getRootNode();o&&o.execCommand(e,!1,t)},Object.defineProperty(e,"selectionStart",{configurable:!1,enumerable:!0,get(){t.value=r.content.textContent;const e=r.getCaretPosition(r.content);return void 0!==e?e[1]:0},set(e){r.setCaretPosition(e)}}),Object.defineProperty(e,"value",{configurable:!1,enumerable:!0,get:()=>(t.value=r.content.textContent,r._getInputValue()),set(e){r.content.innerHTML!==e&&(r.content.innerHTML="<div>"+e+"&#8203;</div>",t.value=e,i.set("value",t.value,!1),r.setCaretPosition(r.content.textContent.length-1))}});return r._getSelectionRange=()=>{const e=r;return e._selectionRange||e._setSelectionRange(),e._selectionRange},r._setSelectionRange=(e,t,o)=>{const n=r;let i=a.querySelector(".smart-editor-editable");const s=window.getSelection();let l;if(e){if(l=document.createRange(),"number"==typeof t&&"number"==typeof o)try{l.setStart(e,parseInt(t)),l.setEnd(e,parseInt(o))}catch(t){l.selectNodeContents(e)}else"img"===e.nodeName.toLowerCase()||e.classList.contains("smart-editor-video-container")?(l.setStartBefore(e),l.setEndAfter(e),l.selectNode(e)):l.selectNodeContents(e);s.removeAllRanges(),s.addRange(l)}else s.rangeCount&&(l=s.getRangeAt(0));try{l&&l.startContainer&&i.contains(l.startContainer)&&(r._selectionRange=l)}catch(e){}n._selectionRange||(l=document.createRange(),l.selectNodeContents(i),l.collapse(!0),r._selectionRange=l)},r._getNodeFromList=(e,t)=>{const o=r.content;if(e&&t)for(;e&&e!==o;){const o=e.nodeName.toLocaleLowerCase();if(t.indexOf(o)>-1)return o;e=e.parentElement}},r._setItemValue=(e,t)=>{const o=r;let n=t.value;e&&t&&("button"===t.type?n?(e.setAttribute("checked",""),e.setAttribute("aria-pressed",!0)):(e.removeAttribute("checked"),e.setAttribute("aria-pressed",!1)):(n||"color-input"!==t.type?["fontname","formats"].indexOf(t.name)>-1&&(n=o.localize(t.value)||t.label||t.value):n="transparent",n?(e.setAttribute("item-value",n),e.style.setProperty("--item-value",n)):(e.removeAttribute("item-value"),e.style.removeProperty("--item-value"))))},r._getInputValue=h,r._updateToolbarItems=e=>{const t=r,o=t._getSelectionRange();if(!o)return;const n=t.content;let i,s=o.startOffset>o.endOffset?o.endContainer:o.startContainer;if(s&&(s.closest||(s=s.parentElement),s&&s.closest)){e||(e=["alignment","bold","hyperlink","italic","strikethrough","underline","fontsize","fontname","formats","fontcolor","backgroundcolor","orderedlist","unorderedlist","image","checklist","subscript","superscript","h1","h2","h3","code","pre"]);for(let o=0,r=e.length;o<r;o+=1){const r=e[o],a=t.tools[r];if(a){let e;if("alignment"===r)e=s.style.textAlign;else if("bold"===r)e=!!t._getNodeFromList(s,["b","strong","h4","h5","h6"]);else if("hyperlink"===r)e=!!t._getNodeFromList(s,["a"]);else if("h1"===r)e=!!t._getNodeFromList(s,["h1"]);else if("h2"===r)e=!!t._getNodeFromList(s,["h2"]);else if("h3"===r)e=!!t._getNodeFromList(s,["h3"]);else if("pre"===r)e=!!t._getNodeFromList(s,["pre"]);else if("p"===r)e=!!t._getNodeFromList(s,["p"]);else if("italic"===r)e=!!t._getNodeFromList(s,["i"]);else if("underline"===r)e=!!t._getNodeFromList(s,["u"]);else if("strikethrough"===r)e=!!t._getNodeFromList(s,["strike"]);else if("fontsize"===r){const t=s.closest(".smart-editor-editable font");t&&(e=t.style.fontSize),e||(i||(i=window.getComputedStyle(s)),e=i.fontSize),e=parseInt(e),isNaN(e)&&(e="")}else if("fontname"===r){const t=s.closest(".smart-editor-editable font");t&&t.hasAttribute("face")?e=t.getAttribute("face"):(i||(i=window.getComputedStyle(s)),e=i.fontFamily.split(",")[0])}else if("formats"===r&&s!==n){const o=["h1","h2","h3","p","pre"];if(e="",o){const n=o;e=t._getNodeFromList(s,n)||""}}else if("fontcolor"===r){const t=s.closest(".smart-editor-editable font");t?e=t.color:(i||(i=window.getComputedStyle(s)),e=i.color)}else if("backgroundcolor"===r)e=t._getNodeBackgroundColor(s),e||(i||(i=window.getComputedStyle(s)),e=i.backgroundColor);else if("orderedlist"===r||"unorderedlist"===r){e=!!s.closest(`.smart-editor-editable ${"orderedlist"===r?"ol":"ul"} li`);const t=s.closest(`.smart-editor-editable ${"orderedlist"===r?"ol":"ul"} li`);t&&t.parentElement&&t.parentElement.hasAttribute("checklist")&&(e=!1)}else if("checklist"===r){const t=s.closest(`.smart-editor-editable ${"orderedlist"===r?"ol":"ul"} li`);t&&t.parentElement.hasAttribute("checklist")&&(e=!0)}else"subscript"===r?e=!!s.closest(".smart-editor-editable sub"):"superscript"===r&&(e=!!s.closest(".smart-editor-editable sup"));if(!e&&a.dataSource){const t=a.dataSource[0];t&&(e=t.value||t)}null!==e&&(a.value=e,t._setItemValue(t.toolbar.querySelector(`.smart-editor-toolbar-item[item-name=${r}]`),a))}}}},r._getTextFromCarret=()=>{const e=r._getSelectionRange(),t=e.startContainer,o=t.textContent;let n,i;if(!e.toString()&&o.length>0&&o.indexOf(" ")>-1){const t=o.slice(0,e.startOffset).lastIndexOf(" ")+1;let r=o.slice(e.endOffset).indexOf(" ");r<0&&(r=o.length-1),n=t>-1?t:e.startOffset,i=Math.max(e.endOffset,e.endOffset+r)}else n=0,i=t.length;return{selectionStartIndex:n,selectionEndIndex:i}},r.focus=()=>{p.focus()},r.blur=()=>{p.blur()},r.getHTML=()=>h(r.content.innerHTML),p.onpointerup=e=>{const t=r,o=e.target;if(t._setSelectionRange(),t._updateToolbarItems(),e.ctrlKey){let e=t._getSelectionRange().startContainer;e&&"a"!==e.nodeName.toLowerCase()&&(e=e.parentElement),e&&"a"===e.nodeName.toLowerCase()&&window.open(e.href,"_blank")}if(o&&"LI"===o.nodeName&&o.closest("UL[checklist]")){const e=t._getSelectionRange();e&&0===e.startOffset&&0===e.endOffset&&(o.hasAttribute("checked")?o.removeAttribute("checked"):o.setAttribute("checked",""))}},p.onpaste=()=>{const e=r;e._setSelectionRange(),e._updateToolbarItems(),t.value=e.content.textContent,i.set("value",t.value,!1)},p.oninput=e=>{const o=r;o._setSelectionRange(),o._updateToolbarItems();const n=t.value;t.value=o.content.textContent,i.set("value",t.value,!1),i.$.fireEvent("input",{value:t.value,oldValue:n,html:r.getHTML()}),e.stopPropagation()},p.onkeydown=e=>{const t=r;t._setSelectionRange(),t._updateToolbarItems();let o=r._getSelectionRange().startContainer;o&&"a"!==o.nodeName.toLowerCase()&&(o=o.parentElement),o&&"a"===o.nodeName.toLowerCase()&&e.ctrlKey&&o.classList.add("ctrl")},p.onkeyup=()=>{const e=r;e._setSelectionRange(),e._updateToolbarItems(),t.value=e.content.textContent,i.set("value",t.value,!1)},p.onfocus=()=>{a.setAttribute("focus",""),i.toolbarOnFocus&&r.toolbar.parentElement.classList.add("show")},p.onblur=()=>{const o=r;a.removeAttribute("focus");const n=t.value;t.value=o.content.textContent,i.set("value",t.value,!1),i.toolbarOnFocus&&r.toolbar.parentElement.classList.remove("show"),r.tooltip.classList.remove("open"),i.$.fireEvent("change",{value:t.value,oldValue:n,html:r.getHTML()}),o.content.querySelector("img")&&i.uploadSettings.uploadUrl&&i.uploadSettings.removeUrl&&o.content.querySelectorAll("img").forEach((t=>{if(e.imgArray&&-1===e.imgArray.indexOf(t.src)&&e.uploadSettings.removeUrl){let o=new FormData,n=new XMLHttpRequest;if(o.append(e.uploadSettings.name,t.src),e.imgArrayId[t.src]){const n=e.imgArrayId[t.src].small,i=e.imgArrayId[t.src].medium,r=e.imgArrayId[t.src].large,s=e.imgArrayId[t.src].value;n&&o.append(e.uploadSettings.name+"_small",n),i&&o.append(e.uploadSettings.name+"_medium",i),r&&o.append(e.uploadSettings.name+"_large",r),s&&o.append(e.uploadSettings.name+"_value",s)}n.open("POST",e.uploadSettings.removeUrl),n.send(o)}}))},document.addEventListener("selectionchange",(e=>{const t=r;if(!e.target.getSelection)return;const o=e.target.getSelection().focusNode;t.contentContainer.contains(o)&&(t._setSelectionRange(),t._updateToolbarItems())})),r}render(){const e=this;if(super.render(),e.richText)e._initRichText(e.$.editor,e.$.input);else{new ResizeObserver((()=>{"none"!==e.resize&&(e.style.width=parseInt(e.$.input.offsetWidth)+2+"px",e.style.height=parseInt(e.$.input.offsetHeight)+2+"px")})).observe(e.$.input),e.$.input.style.resize=e.resize}e._initUsersMention(),e._renderMentionTrigger(),e.classList.add("smart-input")}_renderMentionTrigger(){const e=this;if(!this.richText&&e.users&&e.users.length){e.setAttribute("has-users","");const t=document.createElement("span");t.innerHTML="@",t.style.position="absolute",t.classList.add("smart-hidden"),t.classList.add("smart-mention-trigger"),t.style.bottom="3px","none"!==e.resize?t.style.right="10px":t.style.right="5px",t.style.cursor="pointer",t.onpointerdown=t=>{const o=this.$.input.selectionEnd,n=this.$.input.value.slice(0,o),i=this.$.input.value.substring(o);return e.richText?(e.$.editor.component.execCommand("insertHTML","@"),this.$.editor.dispatchEvent(new Event("input")),void t.preventDefault()):n.length>1&&n.substring(n.length-2).indexOf("@")>=0?(this.$.input.dispatchEvent(new Event("input")),void t.preventDefault()):(n.length>0?(this.$.input.value=n+" @"+i,this.$.input.selectionStart=this.$.input.selectionEnd=o+2):0===e.$.input.selectionStart&&(this.$.input.value=n+"@ "+i,this.$.input.selectionStart=this.$.input.selectionEnd=1),this.$.input.dispatchEvent(new Event("input")),void t.preventDefault())},e._mentionTrigger=t,e.addEventListener("focus",(()=>{t.classList.remove("smart-hidden"),e._mentionPlugin&&e._mentionPlugin.refreshMenu()})),e.addEventListener("blur",(()=>{t.classList.add("smart-hidden"),e._mentionPlugin&&e._mentionPlugin.refreshMenu()})),e.onmouseenter=()=>{t.classList.remove("smart-hidden")},e.onmouseleave=()=>{t.classList.add("smart-hidden")},e.$.inputContainer.appendChild(t)}}});const e=["direction","boxSizing","width","height","overflowX","overflowY","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing","tabSize","MozTabSize"];function t(t,o){const n=document.createElement("div");document.body.appendChild(n);const i=n.style;let r=getComputedStyle(t);if(t.className.indexOf("smart-editor")>=0){const e=t.querySelector(".smart-editor-editable");r=getComputedStyle(e)}i.whiteSpace="pre-wrap",i.wordWrap="break-word",i.position="absolute",i.visibility="hidden",e.forEach((e=>{i[e]=r[e]})),i.overflow="hidden",n.textContent=t.value.substring(0,o);const s=document.createElement("span");s.textContent=t.value.substring(o)||".",n.appendChild(s);const a={top:s.offsetTop+parseInt(r.borderTopWidth),left:s.offsetLeft+parseInt(r.borderLeftWidth),height:s.offsetHeight};if(t.className.indexOf("smart-editor")>=0){const e=t.getBoundingClientRect(),o=window.getSelection().getRangeAt(0).getClientRects()[0];o&&e&&(a.left=o.left-e.left,a.top=o.top-e.top)}return n.remove(),a}Smart.Mention=class{constructor(e,t,o,n,i){this.ref=e,this.menuRef=t,this.resolveFn=o,this.replaceFn=n,this.menuItemFn=i,this.options=[],this.makeOptions=this.makeOptions.bind(this),this.closeMenu=this.closeMenu.bind(this),this.selectItem=this.selectItem.bind(this),this.onInput=this.onInput.bind(this),this.onKeyDown=this.onKeyDown.bind(this),this.renderMenu=this.renderMenu.bind(this),this.ref.addEventListener("input",this.onInput),this.ref.addEventListener("keydown",this.onKeyDown)}destroy(){this.ref.removeEventListener("input",this.onInput),this.ref.removeEventListener("keydown",this.onKeyDown)}async makeOptions(e){const t=await this.resolveFn(e);0!==t.lenght?(this.options=t,this.renderMenu()):this.closeMenu()}closeMenu(){setTimeout((()=>{this.options=[],this.left=void 0,this.top=void 0,this.triggerIdx=void 0,this.renderMenu()}),0)}selectItem(e){return()=>{const t=this.ref.value.substr(0,this.triggerIdx),o=this.options[e],n=this.replaceFn(o,this.ref.value[this.triggerIdx]),i=this.ref.value.substr(this.ref.selectionStart),r=`${t}${n}${i}`;-1!==this.ref.className.indexOf("smart-editor")?this.ref.component.execCommand("insertHTML",o.name):(this.ref.value=r,this.ref.ownerElement&&(this.ref.ownerElement.value=r));const s=this.ref.value.length-i.length;-1===this.ref.className.indexOf("smart-editor")?this.ref.setSelectionRange(s,s):this.ref.selectionStart=s,this.ref.dispatchEvent(new Event("input")),this.closeMenu(),this.ref.focus()}}onInput(e){const o=this.ref.selectionStart,n=this.ref.value.slice(0,o),i=n.split(/\s/),r=i[i.length-1],s=n.endsWith(r)?n.length-r.length:-1;if(!("@"===n[s]))return void this.closeMenu();const a=n.slice(s+1);this.makeOptions(a);const l=t(this.ref,o),{top:d,left:m}=this.ref.getBoundingClientRect();setTimeout((()=>{this.active=0,this.left=window.scrollX+l.left+m+this.ref.scrollLeft,this.top=window.scrollY+l.top+d+l.height-this.ref.scrollTop,this.triggerIdx=s,this.renderMenu()}),0)}refreshMenu(){void 0!==this.triggerIdx&&null!==this.triggerIdx&&(this.ref===document.activeElement?this.triggerIdx&&this.menuRef.classList.remove("smart-hidden"):this.menuRef.classList.add("smart-hidden"),setTimeout((()=>{const e=this.ref.selectionStart,o=t(this.ref,e),{top:n,left:i}=this.ref.getBoundingClientRect();this.left=window.scrollX+o.left+i+this.ref.scrollLeft,this.top=window.scrollY+o.top+n+o.height-this.ref.scrollTop,this.menuRef.style.left=this.left+"px",this.menuRef.style.top=this.top+"px"})))}onKeyDown(e){let t=!1;if(void 0!==this.triggerIdx)switch(e.key){case"ArrowDown":this.active=Math.min(this.active+1,this.options.length-1),this.renderMenu(),t=!0;break;case"ArrowUp":this.active=Math.max(this.active-1,0),this.renderMenu(),t=!0;break;case"Enter":case"Tab":this.selectItem(this.active)(),t=!0}t&&e.preventDefault()}renderMenu(){return void 0===this.top?(this.menuRef.hidden=!0,void this.menuRef.classList.add("smart-hidden")):this.options.length?(this.menuRef.style.left=this.left+"px",this.menuRef.style.top=this.top+"px",this.menuRef.innerHTML="",this.ref===document.activeElement&&this.menuRef.classList.remove("smart-hidden"),this.options.forEach(((e,t)=>{this.menuRef.appendChild(this.menuItemFn(e,this.selectItem(t),this.active===t))})),this.menuRef.hidden=!1,void this.menuRef.classList.remove("smart-hidden")):(this.menuRef.hidden=!0,void this.menuRef.classList.add("smart-hidden"))}}})();
@@ -1,5 +1,5 @@
1
1
 
2
- /* Smart UI v18.0.1 (2024-01-23)
2
+ /* Smart UI v18.0.11 (2024-02-10)
3
3
  Copyright (c) 2011-2023 jQWidgets.
4
4
  License: https://htmlelements.com/license/ */ //
5
5
 
@@ -1,5 +1,5 @@
1
1
 
2
- /* Smart UI v18.0.1 (2024-01-23)
2
+ /* Smart UI v18.0.11 (2024-02-10)
3
3
  Copyright (c) 2011-2023 jQWidgets.
4
4
  License: https://htmlelements.com/license/ */ //
5
5
 
@@ -1,5 +1,5 @@
1
1
 
2
- /* Smart UI v18.0.1 (2024-01-23)
2
+ /* Smart UI v18.0.11 (2024-02-10)
3
3
  Copyright (c) 2011-2023 jQWidgets.
4
4
  License: https://htmlelements.com/license/ */ //
5
5
 
@@ -1,5 +1,5 @@
1
1
 
2
- /* Smart UI v18.0.1 (2024-01-23)
2
+ /* Smart UI v18.0.11 (2024-02-10)
3
3
  Copyright (c) 2011-2023 jQWidgets.
4
4
  License: https://htmlelements.com/license/ */ //
5
5
 
@@ -1,5 +1,5 @@
1
1
 
2
- /* Smart UI v18.0.1 (2024-01-23)
2
+ /* Smart UI v18.0.11 (2024-02-10)
3
3
  Copyright (c) 2011-2023 jQWidgets.
4
4
  License: https://htmlelements.com/license/ */ //
5
5
 
@@ -1,5 +1,5 @@
1
1
 
2
- /* Smart UI v18.0.1 (2024-01-23)
2
+ /* Smart UI v18.0.11 (2024-02-10)
3
3
  Copyright (c) 2011-2023 jQWidgets.
4
4
  License: https://htmlelements.com/license/ */ //
5
5
 
@@ -1,6 +1,6 @@
1
1
 
2
- /* Smart UI v18.0.1 (2024-01-23)
2
+ /* Smart UI v18.0.11 (2024-02-10)
3
3
  Copyright (c) 2011-2023 jQWidgets.
4
4
  License: https://htmlelements.com/license/ */ //
5
5
 
6
- Smart("smart-tree-item",class extends Smart.MenuItem{static get properties(){return{selected:{value:!1,type:"boolean"}}}ready(){const e=this;Object.defineProperty(e,"hasStyleObserver",{get:function(){return!1}}),super.ready(),e.setAttribute("role","treeitem"),e.setAttribute("aria-label",e.label)}propertyChangedHandler(e,t,r){const n=this,l=n.menu;if(super.propertyChangedHandler(e,t,r),"level"===e)return void(n.level=t);if("disabled"===e||"separator"===e||!l)return;const a=l.context;switch(l.context=l,e){case"label":{const e=l.sorted&&l.autoSort;n.firstElementChild.firstElementChild.firstElementChild.innerHTML=r,e&&(l._unsortItems(l.$.mainContainer),l._applyGrouping(l.$.mainContainer)),l._state.filter&&l._applyFilter(l._state.filter),n.setAttribute("aria-label",r);break}case"selected":n.selected=t,r?l.select(n):l.unselect(n);break;case"shortcut":{let e=n.firstElementChild.children[1];e||(e=document.createElement("div"),e.className="smart-tree-item-shortcut",n.firstElementChild.appendChild(e)),e.innerHTML=r;break}case"value":l.sort&&l.sorted&&l.autoSort&&l._refreshSorting()}l.context=a}_setId(){}}),Smart("smart-tree-items-group",class extends Smart.MenuItemsGroup{static get properties(){return{selected:{value:!1,type:"boolean"}}}ready(){const e=this;Object.defineProperty(e,"hasStyleObserver",{get:function(){return!1}}),super.ready(),e.setAttribute("role","treeitem"),e.removeAttribute("aria-haspopup"),e.setAttribute("aria-label",e.label)}propertyChangedHandler(e,t,r){const n=this,l=n.menu;if(super.propertyChangedHandler(e,t,r),"level"===e)return void(n.level=t);if("disabled"===e||"separator"===e||!l)return;const a=l.context;switch(l.context=l,e){case"expanded":n.expanded=t,r?l.expandItem(n):l.collapseItem(n);break;case"label":{const e=l.sorted&&l.autoSort;n.firstElementChild.firstElementChild.firstElementChild.innerHTML=r,e&&(l._unsortItems(l.$.mainContainer),l._applyGrouping(l.$.mainContainer)),l._state.filter&&l._applyFilter(l._state.filter),n.setAttribute("aria-label",r);break}case"selected":n.selected=t,r?l.select(n):l.unselect(n);break;case"value":l.sort&&l.sorted&&l.autoSort&&l._refreshSorting()}l.context=a}_setId(){}}),Smart("smart-tree",class extends Smart.Menu{static get properties(){return{allowDrag:{value:!1,type:"boolean"},allowDrop:{value:!1,type:"boolean"},autoHideToggleElement:{value:!1,type:"boolean"},autoLoadState:{value:!1,type:"boolean"},autoSaveState:{value:!1,type:"boolean"},autoSort:{value:!0,type:"boolean"},displayLoadingIndicator:{value:!1,type:"boolean"},dragFeedbackFormatFunction:{value:null,type:"function?"},dragOffset:{value:[10,10],type:"array"},editable:{value:!1,type:"boolean"},expandMode:{value:"multiple",allowedValues:["multiple","single"],type:"string"},filterable:{value:!1,type:"boolean"},filterOnEnter:{value:!1,type:"boolean"},filterInputPlaceholder:{value:"",type:"string"},filterMember:{value:"label",type:"string"},filterMode:{value:"containsIgnoreCase",allowedValues:["contains","containsIgnoreCase","doesNotContain","doesNotContainIgnoreCase","equals","equalsIgnoreCase","startsWith","startsWithIgnoreCase","endsWith","endsWithIgnoreCase"],type:"string"},hasThreeStates:{value:!1,type:"boolean"},loadingIndicatorPlaceholder:{value:"Loading...",type:"string"},loadingIndicatorPosition:{value:"center",allowedValues:["bottom","center","top"],type:"string"},messages:{value:{en:{noId:"smart-tree: Saving and loading the element's state are not available if the element has no id."}},type:"object",extend:!0},scrollMode:{value:"scrollbar",allowedValues:["scrollbar","scrollButtons"],type:"string"},selectedIndexes:{value:[],type:"array"},selectionDisplayMode:{value:"row",allowedValues:["row","label"],type:"string"},selectionMode:{value:"one",allowedValues:["none","oneOrManyExtended","zeroOrMany","oneOrMany","zeroOrOne","zeroAndOne","one","checkBox","radioButton"],type:"string"},selectionTarget:{value:"all",allowedValues:["all","leaf"],type:"string"},showLines:{value:!1,type:"boolean"},showRootLines:{value:!1,type:"boolean"},sort:{value:null,type:"function?",reflectToAttribute:!1},sortDirection:{value:"asc",allowedValues:["asc","desc"],type:"string"},sorted:{value:!1,type:"boolean"},toggleElementPosition:{value:"near",allowedValues:["near","far"],type:"string"},toggleMode:{value:"dblclick",allowedValues:["click","dblclick","arrow"],type:"string"}}}static get listeners(){return{blur:"_blurHandler",focus:"_focusHandler",keydown:"_keydownHandler",mouseenter:"_mouseenterHandler",mouseleave:"_mouseleaveHandler",resize:"_checkOverflow",styleChanged:"_styleChangedHandler",transitionend:"_overriddenMenuHandler","container.click":"_overriddenMenuHandler","container.mouseout":"_overriddenMenuHandler","container.mouseover":"_overriddenMenuHandler","container.pointerover":"_pointeroverHandler","editInput.blur":"_editInputBlurHandler","filterInput.keydown":"_filterInputKeydownHandler","filterInput.keyup":"_filterInputKeyupHandler","mainContainer.click":"_overriddenMenuHandler","mainContainer.mouseleave":"_overriddenMenuHandler","mainContainer.mouseout":"_overriddenMenuHandler","mainContainer.mouseover":"_overriddenMenuHandler","mainContainer.swipeleft":"_mainContainerSwipeHandler","mainContainer.swiperight":"_mainContainerSwipeHandler","scrollButtonFar.click":"_scrollButtonFarClickHandler","scrollButtonNear.click":"_scrollButtonNearClickHandler","scrollViewer.down":"_scrollViewerDownHandler","scrollViewer.kineticScroll":"_scrollViewerWheelHandler","scrollViewer.touchmove":"_scrollViewerTouchmoveHandler","mainContainer.wheel":"_scrollViewerWheelHandler","document.move":"_moveHandler","document.selectstart":"_selectstartHandler","document.up":"_documentUpHandler"}}static get requires(){return{"Smart.ScrollBar":"smart.scrollbar.js"}}static get styleUrls(){return["smart.scrollbar.css","smart.scrollviewer.css","smart.tree.css"]}template(){return'<div id="container" role="presentation">\n <div class="smart-tree-filter-input-container" role="presentation"><input id="filterInput" class="smart-filter-input" disabled="[[disabled]]" placeholder="[[filterInputPlaceholder]]" type="text" role="searchbox" aria-label="[[filterInputPlaceholder]]" /></div>\n <smart-repeat-button id="scrollButtonNear" class="smart-tree-scroll-button smart-spin-button smart-scroll-button-near smart-hidden" animation="[[animation]]" unfocusable aria-label="Scroll up">\n <div id="arrowNear" class="smart-arrow smart-arrow-up"></div>\n </smart-repeat-button>\n <smart-scroll-viewer id="scrollViewer" animation="[[animation]]" horizontal-scroll-bar-visibility="hidden" right-to-left="[[rightToLeft]]">\n <div id="mainContainer" inner-h-t-m-l=\'[[innerHTML]]\' class="smart-tree-main-container" role="presentation">\n <content></content>\n </div>\n <input type="text" id="editInput" class="smart-tree-edit-input smart-hidden" />\n </smart-scroll-viewer>\n <smart-repeat-button id="scrollButtonFar" class="smart-tree-scroll-button smart-spin-button smart-scroll-button-far smart-hidden" animation="[[animation]]" unfocusable aria-label="Scroll down">\n <div id="arrowFar" class="smart-arrow smart-arrow-down"></div>\n </smart-repeat-button>\n <div id="loadingIndicatorContainer" class="smart-loader-container smart-hidden" role="presentation">\n <span id="loadingIndicator" class="smart-loader" role="img" aria-label="[[loadingIndicatorPlaceholder]]"></span>\n <span id="loadingIndicatorPlaceHolder" class="smart-loader-label smart-hidden">[[loadingIndicatorPlaceholder]]</span>\n </div>\n </div>'}detached(){const e=this,t=e._dragDetails;if(super.detached(),!t)return;const r=Smart.Tree.hoveredTree,n=Smart.Tree.hoveredItem;delete e._dragDetails,delete Smart.Tree.treeItemDragged,delete Smart.Tree.hoveredTree,delete Smart.Tree.hoveredItem,e.$.scrollViewer._scrollView.disableSwipeScroll=!1,t.FeedbackShown&&(n.classList.remove("drop-target","top","bottom"),document.body.classList.remove("smart-dragging"),t.Feedback.remove(),r&&clearInterval(r._dragInterval))}addAfter(e,t){void 0!==(t=this.getItem(t))&&this.addTo(e,t.parentItem,t,!0)}addBefore(e,t){void 0!==(t=this.getItem(t))&&this.addTo(e,t.parentItem,t)}addTo(e,t){const r=this;if(!(e instanceof Smart.TreeItem||e instanceof Smart.TreeItemsGroup))if("string"==typeof e){const t=document.createElement("smart-tree-item");t.label=e,e=t}else{if(!e||!e.label)return;{const t=document.createElement("smart-tree-item");t.label=e.label,e=t}}let n,l;if(e.isDirty=!1,void 0===t)n=1,l=t=r.$.mainContainer;else{if((t=r.getItem(t))instanceof Smart.TreeItemsGroup==0){const n=document.createElement("smart-tree-items-group");return n.innerHTML=t.innerHTML,n.appendChild(e),r.addBefore(n,t),void t.remove()}n=t.level+1,l=t.itemContainer}r._createItemHTMLStructure(e,n,t,l.childElementCount,0);const a=r.sorted&&r.autoSort,o=r._state.filter,s=r.selectedIndexes.slice(0);a&&r._unsortItems(r.$.mainContainer),e instanceof Smart.TreeItemsGroup&&(Array.from(e.querySelectorAll("smart-tree-item, smart-tree-items-group")).forEach((e=>e.isDirty=!1)),r._processHTML(e,n+1,!1));let i=arguments[2];i&&arguments[3]&&(i=i.nextElementSibling),i?(l.insertBefore(e,i),r._menuItems={},r._refreshItemPaths(r.$.mainContainer,!0,void 0,r.sorted&&!r.autoSort)):l.appendChild(e),a&&r._applyGrouping(r.$.mainContainer),o&&r._applyFilter(o),r._checkOverflow(),r._expandItemsByDefault(),r.selectedIndexes=[],r._applySelection(!0,s)}getSelectedValues(){const e=this,t=[];for(let r=0;r<e.selectedIndexes.length;r++){const n=e._menuItems[e.selectedIndexes[r]];n.hasAttribute("value")?t.push(n.getAttribute("value")):n.hasAttribute("label")&&t.push(n.getAttribute("label"))}return t}unselectValues(e){const t=this;e&&Object.keys(t._menuItems).forEach((r=>{const n=t._menuItems[r];let l=null;n.hasAttribute("value")?l=n.getAttribute("value"):n.hasAttribute("label")&&(l=n.getAttribute("label")),"string"==typeof e?e===l&&t.unselect(r):e.indexOf(l)>=0&&t.unselect(r)}))}setSelectedValues(e){const t=this;e&&Object.keys(t._menuItems).forEach((r=>{const n=t._menuItems[r];let l=null;n.hasAttribute("value")?l=n.getAttribute("value"):n.hasAttribute("label")&&(l=n.getAttribute("label")),"string"==typeof e?e===l&&t._canItemBeSelected(n)&&t._handleSelection(n,{type:"programmatic"}):e.indexOf(l)>=0&&t._canItemBeSelected(n)&&t._handleSelection(n,{type:"programmatic"})}))}clearSelection(){const e=this,t=e.selectedIndexes.slice(0);e.selectedIndexes=[],e._applySelection(!1,t)}collapseAll(e){const t=this,r=t.animation,n=!1===e&&t.hasAnimation;n&&(t.animation="none"),t._collapseAll(!0),n&&(t.animation=r)}ensureVisible(e){const t=this;if(void 0===(e=t.getItem(e))||e.hidden)return;let r=!1;e.level>1&&!t._isBranchExpanded(e)&&(super.expandItem(e.parentItem,void 0,!0),r=t.hasAnimation,r&&(t._ensureVisibleOnTransitionend=e)),r||t._ensureVisible(e)}expandAll(e){const t=this,r=t.animation,n=!1===e&&t.hasAnimation;let l=1,a=(t.enableShadowDOM?t.shadowRoot:t).querySelectorAll('smart-tree-items-group[level="1"]');for(n&&(t.animation="none");a.length>0;){for(let e=0;e<a.length;e++){const r=a[e];r.expanded||t._menuItemsGroupSelectionHandler(r,{target:r,type:"expand"})}l++,a=(t.enableShadowDOM?t.shadowRoot:t).querySelectorAll('smart-tree-items-group[level="'+l+'"]')}n&&(t.animation=r)}expandItem(e,t){const r=this;if(void 0===(e=r.getItem(e))||e instanceof Smart.TreeItemsGroup==0||e&&e.container&&r._isContainerOpened(e.container.level,e.container))return;void 0!==Smart.Menu.processTimer&&r._lazyInitItems();const n=!1===t&&r.hasAnimation,l=r.animation;n&&(r.animation="none"),r._discardKeyboardHover(),r._menuItemsGroupSelectionHandler(e,{target:e,type:"expand"},arguments[2]),n&&(r.animation=l)}filter(e){const t=this;t.filterable&&(t._applyFilter(e),t.$.filterInput.value=e)}getState(){return JSON.parse(JSON.stringify(this._state))}insert(e,t){const r=this;let n;if(e instanceof Smart.TreeItem||e instanceof Smart.TreeItemsGroup){if(r.contains(e))return;e.isDirty=!1,n=e}else{if("object"!=typeof e||e.constructor!==Object)return;n=function e(t){const n=t[r.itemsMember],l="smart-tree-items-group"===t.tagName||Array.isArray(n)?"smart-tree-items-group":"smart-tree-item",a=document.createElement(l);if(a.isDirty=!1,t.disabled&&(a.disabled=!0),t[r.displayMember]&&(a.label=t[r.displayMember]),t.selected&&(a.selected=!0),t.separator&&(a.separator=!0),t[r.valueMember]&&(a.value=t[r.valueMember]),"smart-tree-items-group"===l){if(t.expanded&&(a.expanded=!0),n)for(let t=0;t<n.length;t++)a.appendChild(e(n[t]))}else t.shortcut&&(a.shortcut=t.shortcut);return a}(e)}if(void 0===t)return void r.addTo(n);if("number"==typeof t)t=t.toString();else if(t instanceof Smart.TreeItem||t instanceof Smart.TreeItemsGroup){if(!r.contains(t))return;t=t.path}else if("string"!=typeof t)return;const l=t.split(".");let a,o;1===l.length?(o=r._menuItems[l[0]],o?r.addBefore(n,o):r.addTo(n)):(o=r._menuItems[t],a=r._menuItems[l.slice(0,l.length-1).join(".")],o?r.addBefore(n,o):a&&a instanceof Smart.TreeItemsGroup&&r.addTo(n,a))}loadState(e){const t=this,r=t.selectedIndexes.slice(0),n=[];if(!e){if(!t.id)return void t.warn(t.localize("noId"));if(!(e=window.localStorage.getItem("smartTree"+t.id)))return}"string"==typeof e&&(e=JSON.parse(e)),e.filter&&!t.filterable&&(e.filter="");let l=e.filter!==t._state.filter;e.sorted!==t.sorted?(t.sorted=e.sorted,t._updateState("sorted",t.sorted),e.sorted?t._applyGrouping(t.$.mainContainer):t._unsortItems(t.$.mainContainer),(e.filter||l)&&(t._applyFilter(e.filter),t.$.filterInput.value=e.filter)):l&&(t._applyFilter(e.filter),t.$.filterInput.value=e.filter),t._menuItemsGroupsToExpand=[];for(let r=0;r<e.expanded.length;r++){const n=t.getItem(e.expanded[r]);n&&t._menuItemsGroupsToExpand.push(n)}t._expandItemsByDefault(!0);for(let r=0;r<e.selected.length;r++){const l=t.getItem(e.selected[r]);l&&n.push(l.path)}t.selectedIndexes=n,t._applySelection(!1,r)}moveDown(e){const t=this,r=(e=t.getItem(e)).nextElementSibling;void 0!==e&&r&&!t.sorted&&(t._moveTreeItem(e,r,2,[t]),t.filterable&&t._state.filter&&t._applyFilter(t._state.filter))}moveUp(e){const t=this,r=(e=t.getItem(e)).previousElementSibling;void 0!==e&&r&&!t.sorted&&(t._moveTreeItem(e,r,0,[t]),t.filterable&&t._state.filter&&t._applyFilter(t._state.filter))}refresh(){this._checkOverflow()}removeItem(e){const t=this;if(void 0===(e=t.getItem(e)))return;if(e instanceof Smart.TreeItemsGroup){const r=e.container;t._isContainerOpened(r.level,r)&&t._closeSubContainersTreeMode(r.level,r)}const r=t.sorted&&t.autoSort;r&&t._unsortItems(t.$.mainContainer);const n=e.closest("smart-tree-items-group");e.parentElement.removeChild(e),t._menuItems={},t._refreshItemPaths(t.$.mainContainer,!0,void 0,t.sorted&&!t.autoSort),r&&t._applyGrouping(t.$.mainContainer);const l=t._state.filter,a=t.selectedIndexes.slice(0);if(l&&t._applyFilter(l),t._checkOverflow(),t.selectedIndexes=[],t._applySelection(!0,a),delete t._treeAnimationInProgress,n&&!n.querySelector("smart-tree-item")){const e=document.createElement("smart-tree-item");return e.innerHTML=n.innerHTML,t.addBefore(e,n),void n.remove()}}saveState(){const e=this;return e.id?window.localStorage.setItem("smartTree"+e.id,JSON.stringify(e._state)):e.warn(e.localize("noId")),JSON.parse(JSON.stringify(e._state))}select(e){const t=this;void 0!==(e=t.getItem(e))&&!e.selected&&t._canItemBeSelected(e)&&t._handleSelection(e,{type:"programmatic"})}unselect(e){void 0!==(e=this.getItem(e))&&e.selected&&!e.templateApplied&&this._handleSelection(e,{type:"programmatic"})}updateItem(e,t){if(void 0===(e=this.getItem(e))||void 0===t)return;const r=e instanceof Smart.TreeItem;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(r){if(-1===["disabled","label","level","selected","separator","shortcut","value"].indexOf(n))continue}else if(-1===["disabled","expanded","label","level","selected","separator","value"].indexOf(n))continue;e[n]=t[n]}}propertyChangedHandler(e,t,r){const n=this;switch(super.propertyChangedHandler(e,t,r),e){case"allowDrag":case"allowDrop":case"autoLoadState":case"autoSort":case"editable":case"filterInputPlaceholder":case"loadingIndicatorPlaceholder":case"selectionDisplayMode":case"showLines":case"showRootLines":case"toggleElementPosition":case"toggleMode":break;case"autoHideToggleElement":r?n.$mainContainer.addClass("hidden-arrows"):n.$mainContainer.removeClass("hidden-arrows");break;case"autoSaveState":if(!r)return;if(!n.id)return n.warn(n.localize("noId")),void(n.autoSaveState=!1);window.localStorage.setItem("smartTree"+n.id,JSON.stringify(n._state));break;case"dataSource":{const e=n.selectedIndexes.slice(0);n.selectedIndexes=[],n._menuItems={},n._processDataSource(),n._checkOverflow(),n._expandItemsByDefault(),n._applySelection(!0,e);const t=n._state.filter;t&&n._applyFilter(t);break}case"disabled":n._setFocusable(),n.$.scrollButtonNear.disabled=r,n.$.scrollButtonFar.disabled=r,r||n._updateScrollButtonVisibility();break;case"displayLoadingIndicator":r?(n._discardKeyboardHover(!0),n.$loadingIndicatorContainer.removeClass("smart-hidden")):n.$loadingIndicatorContainer.addClass("smart-hidden");break;case"expandMode":if("single"===r){const e=n._state.expanded.map((e=>Object.values(n._menuItems).find((t=>t.id===e)))),t={};for(let r=0;r<e.length;r++){const l=e[r],a=l.parentItem;if(t[a])continue;t[a]=!0;const o=e.filter((e=>e!==l&&e.parentItem===a));o.length>0&&o.forEach((e=>n.collapseItem(e)))}}break;case"filterable":!1===r&&(n._applyFilter(""),n.$.filterInput.value=""),n._checkOverflow();break;case"filterMode":n.filterable&&n._state.filter&&n._applyFilter(n._state.filter);break;case"hasThreeStates":if("checkBox"!==n.selectionMode)return;if(r)n._applySelection(!1);else{const e=(n.enableShadowDOM?n.shadowRoot:n).querySelectorAll("[indeterminate]");for(let t=0;t<e.length;t++)e[t].removeAttribute("indeterminate")}break;case"innerHTML":n.$.mainContainer.innerHTML=r,n._lazyInitItems();break;case"loadingIndicatorPosition":"center"===r?n.$loadingIndicatorPlaceHolder.addClass("smart-hidden"):n.$loadingIndicatorPlaceHolder.removeClass("smart-hidden");break;case"overflow":if("scrollbar"===n.scrollMode)return"hidden"===r?n.$.scrollViewer.$.verticalScrollBar.setAttribute("aria-hidden",!0):n.$.scrollViewer.$.verticalScrollBar.removeAttribute("aria-hidden"),void(n.$.scrollViewer.verticalScrollBarVisibility="scroll"===r?"visible":"auto");n.$.scrollViewer.scrollTop=0,"hidden"===r?(n.$scrollViewer.removeClass("scroll-buttons-shown"),n.$scrollButtonNear.addClass("smart-hidden"),n.$scrollButtonFar.addClass("smart-hidden")):(n.$.scrollButtonNear.disabled=n.disabled,n.$.scrollButtonFar.disabled=n.disabled,"auto"===r?(n.$scrollButtonNear.addClass("smart-hidden"),n.$scrollButtonFar.addClass("smart-hidden"),n._checkOverflow()):(n.$scrollViewer.addClass("scroll-buttons-shown"),n.$scrollViewer.removeClass("one-button-shown"),n.$scrollButtonNear.removeClass("smart-hidden"),n.$scrollButtonFar.removeClass("smart-hidden"),n._updateScrollButtonVisibility())),n.$.scrollViewer.refresh();break;case"rightToLeft":{let e,t;r?(e="paddingLeft",t="paddingRight"):(e="paddingRight",t="paddingLeft");for(let r in n._menuItems)if(Object.prototype.hasOwnProperty.call(n._menuItems,r)){const l=n._menuItems[r],a=l.firstElementChild;a.style[e]="",n._setIndentation(a,l.level,t)}break}case"scrollMode":if("hidden"===n.overflow)return;if(n.$.scrollViewer.scrollTop=0,"scrollButtons"===r)return"scroll"===n.overflow&&(n.$scrollViewer.addClass("scroll-buttons-shown"),n.$scrollButtonNear.removeClass("smart-hidden"),n.$scrollButtonFar.removeClass("smart-hidden")),n.$.scrollViewer.$.verticalScrollBar.setAttribute("aria-hidden",!0),n.$.scrollViewer.verticalScrollBarVisibility="auto",void n._checkOverflow();n.$.scrollViewer.$.verticalScrollBar.removeAttribute("aria-hidden"),n.$scrollViewer.removeClass("scroll-buttons-shown"),n.$scrollViewer.removeClass("one-button-shown"),n.$scrollButtonNear.addClass("smart-hidden"),n.$scrollButtonFar.addClass("smart-hidden"),"auto"===n.overflow?n.$.scrollViewer.verticalScrollBarVisibility="auto":n.$.scrollViewer.verticalScrollBarVisibility="visible";break;case"selectedIndexes":n._applySelection(!1,t);break;case"selectionMode":if(n.setAttribute("aria-multiselectable",-1!==["oneOrManyExtended","zeroOrMany","oneOrMany","checkBox","radioButton"].indexOf(r)),void 0===n._menuItems[0])return;if("one"===t&&"none"!==r&&"checkBox"!==r&&"radioButton"!==r||-1!==t.indexOf("oneOrMany")&&-1!==r.indexOf("oneOrMany")||"none"===t&&(-1!==r.indexOf("zero")||"checkBox"===r)||"zeroOrMany"===r&&"checkBox"!==t||"radioButton"===t&&-1!==r.indexOf("Many")||!n.hasThreeStates&&("checkBox"===r||"checkBox"===t&&"zeroOrMany"===r))return n._lastSelectedItem="one"===r||"oneOrManyExtended"===r?n._menuItems[n.selectedIndexes[n.selectedIndexes.length-1]]:void 0,void n._applyAriaSelected();if(n.hasThreeStates&&"checkBox"===t){const e=(n.enableShadowDOM?n.shadowRoot:n).querySelectorAll("[indeterminate]");for(let t=0;t<e.length;t++)e[t].removeAttribute("indeterminate")}n._applySelection(!1);break;case"sort":if(!n.sorted)return;n._refreshSorting();break;case"sortDirection":n.sorted&&!n.sort&&(n._unsortItems(n.$.mainContainer),n._applyGrouping(n.$.mainContainer));break;case"sorted":{if(!r&&!n.autoSort)return n._refreshItemPathsAndSelection(),void n._updateState("sorted",!1);r?n._applyGrouping(n.$.mainContainer):n._unsortItems(n.$.mainContainer);const e=n._state.filter;e&&n._applyFilter(e),n._updateState("sorted",r),n._checkOverflow();break}case"unfocusable":n._setFocusable()}}_addDragFeedback(){const e=this,t=document.createElement("div");return t.className="smart-tree-item-feedback",t.setAttribute("parent-tree-id",e.id),e.theme&&t.setAttribute("theme",e.theme),e.dragFeedbackFormatFunction?t.innerHTML=e.dragFeedbackFormatFunction(e._dragDetails.Items):1===e._dragDetails.Items.length?t.innerHTML=e._dragDetails.Item.label:(t.classList.add("multiple"),t.innerHTML="&#xf0c5;"),document.body.appendChild(t),t}_applyFilter(e){const t=this;function r(e,t){e?(t.hidden&&t.$.removeClass("smart-hidden"),t.hidden=!1):(t.hidden||t.$.addClass("smart-hidden"),t.hidden=!0)}if(""===e&&!t.hasAttribute("filter-applied"))return;const n=Array.from(t.$.mainContainer.getElementsByClassName("last-filtered-child"));for(let e=0;e<n.length;e++)n[e].$.removeClass("last-filtered-child");!function n(l,a){let o,s=!1,i=0;a=Array.from(a);for(let l=0;l<a.length;l++){const d=a[l];d instanceof Smart.TreeItem?r(t._findItem(d,e),d):n(d,d.itemContainer.children),d.hidden||(i++,o=d),s=s||!d.hidden}if(l!==t.$.mainContainer){const n=t._findItem(l,e);r(s||n,l),s&&null===n?l.$.addClass("filtered-child"):l.$.removeClass("filtered-child"),!s&&a.length>0?(l.hiddenChildren=!0,l.$.addClass("hidden-children"),t.collapseItem(l,void 0,!1)):(l.hiddenChildren=!1,l.$.removeClass("hidden-children"))}""!==e&&i>0&&o.$.addClass("last-filtered-child")}(t.$.mainContainer,t.$.mainContainer.children),""!==e?t.setAttribute("filter-applied",""):t.removeAttribute("filter-applied"),t._updateState("filter",e),t._checkOverflow()}_applyHierarchicalSelection(e,t){const r=this,n=e!==r.$.mainContainer,l=n?e.itemContainer.children:e.children;let a=0,o=0;for(let s=0;s<l.length;s++){const i=l[s];e.selected&&i.set("selected",!0),i instanceof Smart.TreeItemsGroup?r._applyHierarchicalSelection(i,t):i.selected&&t.push(i.path),n&&(i.selected?a++:i.hasAttribute("indeterminate")&&o++)}n&&(r._setThreeStateCheckbox(e,a,o),e.selected&&t.push(e.path))}_applyRadioButtonSelection(e,t,r){const n=this,l=e!==n.$.mainContainer?e.itemContainer.children:e.children,a=[];let o;for(let e=0;e<l.length;e++){const o=l[e];o instanceof Smart.TreeItemsGroup&&n._applyRadioButtonSelection(o,t,r),o.set("selected",!1),-1!==t.indexOf(o.path)&&a.push(o)}o=0===a.length?l[0]:a[a.length-1],o.set("selected",!0),r.push(o.path)}_applySelection(e,t){const r=this;let n=r.selectedIndexes.slice(0);function l(e){const t=Object.values(r._menuItems).filter((t=>t.level===e));if(0!==t.length){for(let e=0;e<t.length;e++)if(r._canItemBeSelected(t[e]))return t[e].path;return l(e+1)}}if(void 0===t&&(t=n.slice(0)),void 0===r._menuItems[0])return r.selectedIndexes=[],r._lastSelectedItem=void 0,void(r.isRendered&&JSON.stringify(t)!==JSON.stringify([])&&r.$.fireEvent("change",{selectedIndexes:r.selectedIndexes,oldSelectedIndexes:t}));const a=r.selectionMode,o=Array.from((r.shadowRoot||r).querySelectorAll("smart-tree-item[selected], smart-tree-items-group[selected]"));for(let e=n.length-1;e>=0;e--){const t=r._menuItems[n[e]];void 0!==t&&r._canItemBeSelected(t)||n.splice(e,1)}if(e)for(let e=0;e<o.length;e++)r._canItemBeSelected(o[e])?-1===n.indexOf(o[e].path)&&n.push(o[e].path):o[e].set("selected",!1);else{for(let e=0;e<o.length;e++)o[e].set("selected",!1);o.length=0}switch(r._sortPathCollection(n),a){case"none":n.length=0;for(let e=0;e<o.length;e++)o[e].set("selected",!1);break;case"one":case"zeroAndOne":case"zeroOrOne":"one"===a&&0===n.length&&n.push(l(1));for(let e=0;e<n.length;e++){const t=r._menuItems[n[e]];if(e===n.length-1){t.set("selected",!0),n=[n[e]];break}-1!==o.indexOf(t)&&t.set("selected",!1)}break;case"oneOrMany":case"oneOrManyExtended":0===n.length&&n.push(l(1));for(let e=0;e<n.length;e++)r._menuItems[n[e]].set("selected",!0);break;case"zeroOrMany":case"checkBox":for(let e=0;e<n.length;e++)r._menuItems[n[e]].set("selected",!0);if("checkBox"===a&&r.hasThreeStates){const e=[];r._applyHierarchicalSelection(r.$.mainContainer,e),r._sortPathCollection(e),n=e}break;case"radioButton":{const e=[];r._applyRadioButtonSelection(r.$.mainContainer,n,e),r._sortPathCollection(e),n=e;break}}r.selectedIndexes=n,r._updateState("selected"),r._lastSelectedItem="one"===a||"oneOrManyExtended"===a?r._menuItems[n[n.length-1]]:void 0,r.isRendered&&!1!==arguments[2]&&JSON.stringify(t)!==JSON.stringify(n)&&r.$.fireEvent("change",{selectedIndexes:r.selectedIndexes,oldSelectedIndexes:t}),r._applyAriaSelected()}_applyAriaSelected(){const e=this,t=e.selectionMode;for(let r in e._menuItems){const n=e._menuItems[r];n.selected?n.setAttribute("aria-selected",!0):e._canItemBeSelected(n)&&-1!==["oneOrManyExtended","zeroOrMany","oneOrMany","checkBox","radioButton"].indexOf(t)?n.setAttribute("aria-selected",!1):n.removeAttribute("aria-selected")}}_autoLoadState(e){const t=this,r=[];for(let e=0;e<t._menuItemsGroupsToExpand.length;e++)t._menuItemsGroupsToExpand[e].set("expanded",!1);t._menuItemsGroupsToExpand=[];for(let r=0;r<e.expanded.length;r++){const n=t.getItem(e.expanded[r]);n&&t._menuItemsGroupsToExpand.push(n)}t.filterable&&e.filter&&(t._applyFilter(e.filter),t.$.filterInput.value=e.filter);for(let n=0;n<e.selected.length;n++){const l=t.getItem(e.selected[n]);l&&r.push(l.path)}t.selectedIndexes=r}_blurHandler(){this._discardKeyboardHover(!0)}_canItemBeHovered(e){const t=e.level;return!1===e.disabled&&!0!==e.templateApplied&&!0!==e.hidden&&(1===t||t>1&&this._isContainerOpened(t,e.parentElement.container)&&e.getBoundingClientRect().height>0)}_canItemBeSelected(e,t){return!(!0!==t&&"leaf"===this.selectionTarget&&e instanceof Smart.TreeItemsGroup)&&!1===e.disabled&&!0!==e.templateApplied}_checkOverflow(){const e=this,t=e.$.scrollViewer,r=e.overflow;if("scrollbar"===e.scrollMode||"hidden"===r)return void t.refresh();const n=t.scrollTop;"auto"===r&&(t.$.removeClass("scroll-buttons-shown"),t.$.removeClass("one-button-shown"),e.$scrollButtonNear.addClass("smart-hidden"),e.$scrollButtonFar.addClass("smart-hidden"));const l=Math.round(t.$.scrollViewerContentContainer.offsetHeight)>Math.round(t.$.scrollViewerContainer.offsetHeight),a=Math.round(t.scrollTop)>0,o=Math.round(t.$.scrollViewerContainer.offsetHeight+t.scrollTop)<Math.round(t.$.scrollViewerContentContainer.offsetHeight);l?"auto"===r?(t.$.addClass("scroll-buttons-shown"),a&&e.$scrollButtonNear.removeClass("smart-hidden"),o&&e.$scrollButtonFar.removeClass("smart-hidden"),!1===(a&&o)&&t.$.addClass("one-button-shown"),e.disabled||(e.$.scrollButtonNear.disabled=!1,e.$.scrollButtonFar.disabled=!1),t.scrollTop=n):(e.$scrollButtonNear.removeClass("smart-hidden"),e.$scrollButtonFar.removeClass("smart-hidden"),e.disabled?(e.$.scrollButtonNear.disabled=!0,e.$.scrollButtonFar.disabled=!0):(e.$.scrollButtonNear.disabled=!a,e.$.scrollButtonFar.disabled=!o)):"scroll"===r&&(e.$.scrollButtonNear.disabled=!0,e.$.scrollButtonFar.disabled=!0),t.refresh()}_createElement(){const e=this,t=window.getComputedStyle(e.$.scrollViewer);if(e.setAttribute("role","tree"),e.setAttribute("aria-multiselectable",-1!==["oneOrManyExtended","zeroOrMany","oneOrMany","checkBox","radioButton"].indexOf(e.selectionMode)),e.setAttribute("aria-orientation","vertical"),e.$.scrollViewer.onVerticalChange=e._verticalScrollbarHandler,e.isRendered||Object.defineProperty(e,"dataSource",{get:function(){return e.context===e?e.properties.dataSource.value:e._getDataSource()},set(t){e.updateProperty(e,e._properties.dataSource,t)}}),e.id||!e.autoLoadState&&!e.autoSaveState||(e.warn(e.localize("noId")),e.autoLoadState=!1,e.autoSaveState=!1),e.mode="tree",e._element="tree",e._isMobile=Smart.Utilities.Core.isMobile,e._edgeMacFF=!1,e._autoScrollCoefficient=Smart.Utilities.Core.Browser.Firefox?4:Smart.Utilities.Core.Browser.Edge?8:2,e._scrollViewerPadding=parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)||0,e._state={expanded:[],filter:"",selected:[]},e._dblclickObject={numberOfClicks:0},e.autoHideToggleElement&&e.$mainContainer.addClass("hidden-arrows"),e.disabled&&(e.$.scrollButtonNear.disabled=!0,e.$.scrollButtonFar.disabled=!0),"scrollbar"===e.scrollMode&&"scroll"===e.overflow&&(e.$.scrollViewer.verticalScrollBarVisibility="visible"),null===e.dataSource&&e.$.mainContainer.firstElementChild instanceof HTMLUListElement&&e._processUList(),e.isRendered)return e._menuItems={},void(null===e.dataSource?e._processHTML(e.$.mainContainer,1):e._processDataSource());const r=(e.shadowRoot||e).querySelectorAll("smart-tree-item, smart-tree-items-group"),n=function(){let t;e.autoLoadState&&(t=window.localStorage.getItem("smartTree"+e.id),t&&(t=JSON.parse(t),e.sorted=t.sorted)),e._setFocusable(),e._menuItems={},null===e.dataSource?e._processHTML(e.$.mainContainer,1):e._processDataSource(),"scrollButtons"!==e.scrollMode&&"hidden"!==e.overflow||e.$.scrollViewer.$.verticalScrollBar.setAttribute("aria-hidden",!0),"scrollButtons"===e.scrollMode&&"scroll"===e.overflow&&(e.$scrollViewer.addClass("scroll-buttons-shown"),e.$scrollButtonNear.removeClass("smart-hidden"),e.$scrollButtonFar.removeClass("smart-hidden"),e._updateScrollButtonVisibility()),e._checkOverflow(),t&&e._autoLoadState(t),e._expandItemsByDefault(),e._applySelection(!0),e._updateState("sorted",e.sorted),e.displayLoadingIndicator&&e.$loadingIndicatorContainer.removeClass("smart-hidden"),"center"!==e.loadingIndicatorPosition&&e.$loadingIndicatorPlaceHolder.removeClass("smart-hidden"),e.__onCompleted&&(e._onCompleted=e.__onCompleted,e.__onCompleted=null,e._onCompleted())};0===r.length||e.enableShadowDOM||e.isInShadowDOM?n():(e._onCompleted&&(e.__onCompleted=e._onCompleted,e._onCompleted=null),e._ensureItemsReady(r,n))}appendChild(e){const t=this;if(!t.isCompleted){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.appendChild.apply(t,e.concat(Array.prototype.slice.call(arguments)))}t.$.mainContainer&&t.$.mainContainer.appendChild(e)}_dblclickHandler(e,t,r){"dblclick"!==this.toggleMode||e instanceof Smart.TreeItem||t||this._menuItemsGroupSelectionHandler(e,r)}_discardKeyboardHover(e,t){const r=this;!t&&r._hoveredViaKeyboard&&(!e&&r._hoveredViaKeyboard instanceof Smart.MenuItemsGroup&&r._isContainerOpened(r._hoveredViaKeyboard.level+1,r._hoveredViaKeyboard.container)||(r._hoveredViaKeyboard.removeAttribute("focus"),r._hoveredViaKeyboard=void 0))}_documentUpHandler(e){if("pointercancel"===e.originalEvent.type)return;const t=this,r=t._downTimeoutInfo,n=t._dragDetails;!r||n&&n.FeedbackShown||(clearTimeout(r.timeout),t.$.scrollViewer.scrollTop!==r.scrollTop&&t.getBoundingClientRect().top===r.top||t._continueSelection(r.target,r.event)),delete t._downTimeoutInfo;const l=t._downItem,a=t.isInShadowDOM?e.originalEvent.composedPath()[0]:e.originalEvent.target;if(delete t._downItem,t._editedItem&&!t._editInputDown&&(!t._isMobile&&a!==t.$.editInput||t._isMobile&&t.getRootNode().elementFromPoint(e.clientX,e.clientY)!==t.$.editInput))return void t._endEditing();if(delete t._editInputDown,l){const r=a.closest("smart-tree-item")||a.closest("smart-tree-items-group");!r||!r.selected||r!==l||t._dragDetails&&t._dragDetails.FeedbackShown||r instanceof Smart.TreeItemsGroup&&(a.closest(".smart-tree-items-group-arrow")||a===r.container||a===r.container.firstElementChild)||t._handleSelection(r,e)}if(!n)return;const o=Smart.Tree.hoveredTree,s=Smart.Tree.hoveredItem;if(delete t._dragDetails,delete Smart.Tree.treeItemDragged,delete Smart.Tree.hoveredTree,delete Smart.Tree.hoveredItem,t.$.scrollViewer._scrollView.disableSwipeScroll=!1,!n.FeedbackShown)return;const i=o||t.getRootNode().elementFromPoint(e.clientX,e.clientY);let d;document.body.classList.remove("smart-dragging"),document.body.removeChild(n.Feedback),o&&clearInterval(o._dragInterval);const c=n.Item,m=n.Items,u=n.ValidItems;if(!i)return;if(!s||c.contains(s))return void t.$.fireEvent("dragEnd",{item:c,items:m,target:i,data:n,previousContainer:t,container:o||i,originalEvent:e});if(!o||!o.allowDrop||o.disabled)return;const p=[o];let h;if(s.classList.remove("drop-target"),s.classList.contains("top")?(s.classList.remove("top"),h="top",d=0):s.classList.contains("bottom")?(s.classList.remove("bottom"),h="bottom",d=2):(h="inside",d=1),n.DropDetails={item:s,position:h},o!==t)p.push(t);else if(n.ValidateOnDrop)for(let e=0;e<u.length;e++)if(u[e].contains(s))return;if(!t.$.fireEvent("dragEnd",{item:c,items:m,target:s,data:n,previousContainer:t,container:o,originalEvent:e}).defaultPrevented){o.sorted&&o.autoSort&&o._unsortItems(o.$.mainContainer);for(let e=0;e<u.length;e++)t._moveTreeItem(u[e],s,d,p);o.sorted&&o.autoSort&&o._applyGrouping(o.$.mainContainer),o!==t&&o._state.filter&&o._applyFilter(o._state.filter)}}_editInputBlurHandler(){this._endEditing()}_endEditing(e){const t=this,r=t._editedItem;if(!r)return;if(delete t._editedItem,t.$editInput.addClass("smart-hidden"),t.focus(),e)return;const n=t.$.editInput.value,l=t.sorted&&t.autoSort,a=t._state.filter;n!==r.label&&(r.set("label",n),r.setAttribute("aria-label",n),r.firstElementChild.firstElementChild.firstElementChild.innerHTML=n,l&&(t._unsortItems(t.$.mainContainer),t._applyGrouping(t.$.mainContainer)),a&&t._applyFilter(a))}_ensureVisible(e){const t=this;t._ensureVisibleTreeMode(e,e.getBoundingClientRect(),t.$.scrollViewer,t.$.scrollViewer.getBoundingClientRect(),t._scrollViewerPadding),t._ensureVisibleCallback&&t._ensureVisibleCallback(e)}_pointeroverHandler(e){const t=(this.isInShadowDOM?e.composedPath()[0]:e.target).closest(".smart-tree-item-label-element>span");if(!t)return;const r=this.$.container.querySelector(".tooltip");r&&(r.classList.remove("tooltip"),r.removeAttribute("title")),t.scrollWidth>t.offsetWidth&&(t.classList.add("tooltip"),t.title=t.innerText)}_filterInputKeyupHandler(e){const t=this;if(t._filterTimer&&clearTimeout(t._filterTimer),t.filterOnEnter){if("Enter"!==e.key)return;{const e=t.context;t.context=t,t._applyFilter(t.$.filterInput.value,t._view),t._checkOverflow(),t.context=e}}t._filterTimer=setTimeout((function(){const e=t.context;t.context=t,t._applyFilter(t.$.filterInput.value,t._view),t._checkOverflow(),t.context=e}),300)}_filterInputKeydownHandler(e){if("PageDown"!==e.key)return void("PageUp"===e.key&&(e.preventDefault(),e.stopPropagation()));const t=this;let r;if(e.preventDefault(),e.stopPropagation(),t.selectedIndexes.length>0){const e=t.selectedIndexes.slice(0);r=t._lastSelectedItem||t._menuItems[t.selectedIndexes[t.selectedIndexes.length-1]],"checkBox"!==t.selectionMode&&"radioButton"!==t.selectionMode&&(t.selectedIndexes=[r.path],t._applySelection(!1,e)),t.focus()}else r=t._getFirstEnabledChild(t.$.mainContainer),t.focus(),r&&t._hoverViaKeyboard(r);t._ensureVisible(r)}_focusHandler(){const e=this;e.selectedIndexes.length>0&&!e._hoveredViaKeyboard&&(e._lastSelectedItem?e._hoverViaKeyboard(e._lastSelectedItem,!1,void 0,!1):e._hoverViaKeyboard(e._menuItems[e.selectedIndexes[e.selectedIndexes.length-1]],!1,void 0,!1))}_getDataSource(){const e=[];return function e(t,r){for(let n=0;n<t.length;n++){const l=t[n],a={label:l.label};l.disabled&&(a.disabled=!0),l.selected&&(a.selected=!0),l.separator&&(a.separator=!0),null!==l.value&&(a.value=l.value),l instanceof Smart.TreeItem?l.shortcut&&(a.shortcut=l.shortcut):(l.expanded&&(a.expanded=!0),a.items=[],l.itemContainer&&l.itemContainer.children&&e(l.itemContainer.children,a.items)),r.push(a)}}(this.$.mainContainer.children,e),e}_handleHierarchicalSelection(e,t){const r=this;let n=e;for(e.selected?(e.set("selected",!1),e.setAttribute("aria-selected",!1)):(e.set("selected",!0),e.setAttribute("aria-selected",!0),e.removeAttribute("indeterminate"));n.parentItem;){const e=n.parentItem,t=e.itemContainer.children;let l=0,a=0;for(let e=0;e<t.length;e++)t[e].selected?l++:t[e].hasAttribute("indeterminate")&&a++;r._setThreeStateCheckbox(e,l,a),n=e}e instanceof Smart.TreeItemsGroup&&function e(t,r){const n=t.itemContainer.children;for(let t=0;t<n.length;t++){const l=n[t];l.set("selected",r),l.setAttribute("aria-selected",r),l.removeAttribute("indeterminate"),l instanceof Smart.TreeItemsGroup&&e(l,r)}}(e,e.selected),t.length=0;const l=Array.from((r.enableShadowDOM?r.shadowRoot:r).querySelectorAll("[selected]"));for(let e=0;e<l.length;e++)t.push(l[e].path);r._sortPathCollection(t)}_handleSelection(e,t){const r=this,n=r.selectionMode;if("none"===n||"programmatic"!==t.type&&!r._canItemBeSelected(e))return;const l=e.selected;if(l&&"down"===t.type)return;const a=r.selectedIndexes.slice(0);let o=a.slice(0);switch(n){case"one":case"zeroAndOne":if(l)return;r._menuItems[o[0]]&&(r._menuItems[o[0]].set("selected",!1),r._menuItems[o[0]].removeAttribute("aria-selected")),r.selectedIndexes=[e.path],e.set("selected",!0),e.setAttribute("aria-selected",!0),r._lastSelectedItem=e;break;case"zeroOrOne":l?(r.selectedIndexes=[],e.set("selected",!1),e.removeAttribute("aria-selected")):(void 0!==o[0]&&(r._menuItems[o[0]].set("selected",!1),r._menuItems[o[0]].removeAttribute("aria-selected")),r.selectedIndexes=[e.path],e.set("selected",!0),e.setAttribute("aria-selected",!0));break;case"oneOrMany":case"zeroOrMany":if(l){if(1===o.length&&"zeroOrMany"!==n)return;o.splice(o.indexOf(e.path),1),e.set("selected",!1),e.setAttribute("aria-selected",!1)}else o.push(e.path),r._sortPathCollection(o),e.set("selected",!0),e.setAttribute("aria-selected",!0);r.selectedIndexes=o;break;case"oneOrManyExtended":{const n=t.ctrlKey||t.metaKey,l=t.shiftKey;if(!n&&!l||l&&e===r._lastSelectedItem){for(let e=0;e<o.length;e++)r._menuItems[o[e]].set("selected",!1),r._menuItems[o[e]].setAttribute("aria-selected",!1);o=[e.path],e.set("selected",!0),e.setAttribute("aria-selected",!0),r._lastSelectedItem=e}else if(n)e.selected&&o.length>1?(o.splice(o.indexOf(e.path),1),e.set("selected",!1),e.setAttribute("aria-selected",!1)):e.selected||(o.push(e.path),r._sortPathCollection(o),e.set("selected",!0),e.setAttribute("aria-selected",!0),r._lastSelectedItem=e);else if(l){for(let e=0;e<o.length;e++)r._menuItems[o[e]].set("selected",!1),r._menuItems[o[e]].setAttribute("aria-selected",!1);o=r._selectItemRange(r._lastSelectedItem,e)}r.selectedIndexes=o;break}case"checkBox":r.hasThreeStates?r._handleHierarchicalSelection(e,o):l?(o.splice(o.indexOf(e.path),1),e.set("selected",!1),e.setAttribute("aria-selected",!1)):(o.push(e.path),r._sortPathCollection(o),e.set("selected",!0),e.setAttribute("aria-selected",!0)),r.selectedIndexes=o;break;case"radioButton":{if(e.selected)return;let t;for(let r=0;r<e.parentElement.children.length;r++){const n=e.parentElement.children[r];if(n.selected){t=n;break}}const n=o.indexOf(t.path);t.set("selected",!1),e.setAttribute("aria-selected",!1),e.set("selected",!0),e.setAttribute("aria-selected",!0),o.splice(n,1),o.push(e.path),r._sortPathCollection(o),r.selectedIndexes=o;break}}if(r._discardKeyboardHover(!0),r._hoverViaKeyboard(e,!1,void 0,!r._treeAnimationInProgress),r._updateState("selected"),JSON.stringify(a)!==JSON.stringify(r.selectedIndexes)){if(r.ownerElement&&!r.ownerElement.isRendered)return;r.$.fireEvent("change",{item:e,selectedIndexes:r.selectedIndexes,oldSelectedIndexes:a})}}_hoverViaKeyboard(e,t,r,n){if(!e)return;const l=this;e.setAttribute("focus",""),l._hoveredViaKeyboard=e,!1!==n&&l._ensureVisible(e),t&&l._handleSelection(e,r),l._hoverViaKeyboardCallback&&l._hoverViaKeyboardCallback(e)}_keydownHandler(e){const t=this,r=e.key;if(t._editedItem)return void("Enter"===r?t._endEditing():"Escape"===r&&t._endEditing(!0));if(t.getRootNode().activeElement!==t||-1===["ArrowDown","ArrowLeft","ArrowRight","ArrowUp","End","Enter","F2","Home","PageDown","PageUp"," "].indexOf(r)||t.disabled||t.displayLoadingIndicator)return;"Enter"!==r&&e.preventDefault();const n=Array.from(t.$.mainContainer.querySelectorAll("smart-tree-item, smart-tree-items-group")),l="one"===t.selectionMode||"oneOrManyExtended"===t.selectionMode&&!e.ctrlKey&&!e.metaKey,a=t.$.mainContainer.querySelector("[focus]");function o(r){for(let o=r;o<n.length;o++){const r=n[o];if(t._canItemBeHovered(r)){if(a){if(a===r)break;a.removeAttribute("focus")}t._hoverViaKeyboard(r,l,e);break}}}function s(r){for(let o=r;o>=0;o--){const r=n[o];if(t._canItemBeHovered(r)){if(a){if(a===r)break;a.removeAttribute("focus")}t._hoverViaKeyboard(r,l,e);break}}}function i(){a.level>1&&t._canItemBeSelected(a.parentItem)&&(a.removeAttribute("focus"),t._hoverViaKeyboard(a.parentItem,l,e))}let d;switch(r){case"ArrowDown":d=a?n.indexOf(a)+1:0,o(d);break;case"ArrowLeft":if(!a)return;if(a instanceof Smart.TreeItem)i();else{if(t._isContainerOpened(a.level+1,a.container))return void t._closeSubContainersTreeMode(a.level+1,a.container,!0,!0);i()}break;case"ArrowRight":if(!a||a instanceof Smart.TreeItem)return;if(t._isContainerOpened(a.level+1,a.container)){const r=t._getFirstEnabledChild(a.itemContainer);r&&(a.removeAttribute("focus"),t._hoverViaKeyboard(r,l,e))}else t._menuItemsGroupSelectionHandler(a,{target:a,type:"keydown"});break;case"ArrowUp":d=a?n.indexOf(a)-1:n.length-1,s(d);break;case"End":s(n.length-1);break;case"Enter":a&&a instanceof Smart.TreeItemsGroup&&t._menuItemsGroupSelectionHandler(a,{target:a,type:"keydown"});break;case"F2":t.editable&&t._startEditing(a);break;case"Home":o(0);break;case"PageDown":t._pageDownHandler(n,a,l,e);break;case"PageUp":t._pageUpHandler(n,a,l,e);break;case" ":a&&t._handleSelection(a,e)}}_mainContainerSwipeHandler(e){Smart.Tree.treeItemDragged&&e.stopPropagation()}_menuItemsGroupSelectionHandler(e,t,r){const n=this,l=n.toggleMode,a=!!t.originalEvent&&t.originalEvent.target.classList.contains("smart-tree-items-group-arrow"),o=e.container;if(n._waitAnimation&&n._treeAnimationInProgress)return;if("down"!==t.type||a||"dblclick"===l&&1!==n._dblclickObject.numberOfClicks||n._handleSelection(e,t),"down"===t.type&&!a&&("dblclick"===l&&2!==n._dblclickObject.numberOfClicks||"click"===l&&n._dblclickObject.numberOfClicks>1||"arrow"===l)||e.hiddenChildren)return;const s=o.level;let i=n.hasAnimation;if("keydown"===t.type&&n._discardKeyboardHover(),n._treeAnimationInProgress&&(o.removeEventListener("transitionend",n._transitionendHandlerExpand),o.removeEventListener("transitionend",n._transitionendHandlerCollapse)),n._isContainerOpened(s,o))n._closeSubContainersTreeMode(s,o,!0,!1!==r);else{if(n.$.fireEvent("expanding",{item:e,label:e.label,path:e.path,value:e.value,children:e.itemContainer.children}).defaultPrevented)return;if(n._handleSingleExpandMode(e),i&&("expand"!==t.type&&(n._ensureVisibleOnTransitionend=e),n._expandSection(o)),o.$.removeClass("smart-visibility-hidden"),"keydown"===t.type&&(e.setAttribute("focus",""),n._hoveredViaKeyboard=e),e.$.addClass("smart-tree-items-group-opened"),e.$.addClass("smart-tree-items-group-expanded"),n._addOpenedContainer(s,o),void 0===t.type&&n._hoverViaKeyboard(n._getFirstEnabledChild(e.itemContainer)),!1!==r){const t={item:e,label:e.label,path:e.path,value:e.value,children:e.itemContainer.children};n.toggleCallback?(t.type="expand",n.toggleCallback(t)):n.$.fireEvent("expand",t)}}i||(n._checkOverflow(),"expand"!==t.type&&n._ensureVisible(e))}_handleSingleExpandMode(e){const t=this;if("single"!==t.expandMode)return;const r=e.parentItem,n=t._state.expanded.map((e=>Object.values(t._menuItems).find((t=>t.id===e)))).filter((e=>e.parentItem===r));n.length>0&&n.forEach((e=>t.collapseItem(e)))}_mouseenterHandler(){const e=this;e.autoHideToggleElement&&e.$mainContainer.removeClass("hidden-arrows"),Smart.Tree.treeItemDragged&&e.allowDrop&&!e.disabled&&(Smart.Tree.hoveredTree=e)}_mouseleaveHandler(){const e=this;if(e.autoHideToggleElement&&e.$mainContainer.addClass("hidden-arrows"),Smart.Tree.treeItemDragged){Smart.Tree.hoveredTree&&(clearInterval(Smart.Tree.hoveredTree._dragInterval),delete Smart.Tree.hoveredTree);const e=Smart.Tree.hoveredItem;e&&(e.classList.remove("drop-target"),e.classList.remove("top"),e.classList.remove("bottom"),delete Smart.Tree.hoveredItem)}}_moveHandler(e){const t=this,r=t._dragDetails;if(!r)return;if(!r.FeedbackShown){if(!(Math.abs(r.StartPosition.left-e.pageX)>5||Math.abs(r.StartPosition.top-e.pageY)>5))return;if(t.$.fireEvent("dragStart",{item:r.Item,items:r.Items,data:r,container:t,previousContainer:t,originalEvent:r.OriginalEvent}).defaultPrevented)return delete t._dragDetails,delete Smart.Tree.treeItemDragged,delete Smart.Tree.hoveredTree,delete Smart.Tree.hoveredItem,void(t.$.scrollViewer._scrollView.disableSwipeScroll=!1);document.body.classList.add("smart-dragging"),r.Feedback=t._addDragFeedback(),r.FeedbackShown=!0}const n=t.dragOffset;let l,a,o;if(t.$.fireEvent("dragging",{item:r.Item,items:r.Items,data:r,originalEvent:e}),r.Feedback.style.left=e.pageX+n[0]+"px",r.Feedback.style.top=e.pageY+n[1]+"px",t._isMobile){const r=Smart.Tree.hoveredItem;r&&(r.classList.remove("drop-target"),r.classList.remove("top"),r.classList.remove("bottom"),delete Smart.Tree.hoveredItem);const n=t.getRootNode().elementFromPoint(e.clientX,e.clientY);Smart.Tree.hoveredTree&&(clearInterval(Smart.Tree.hoveredTree._dragInterval),delete Smart.Tree.hoveredTree),n&&(l=n.closest("smart-tree"),l&&l.allowDrop&&(Smart.Tree.hoveredTree=l,a=n.closest("smart-tree-item")||n.closest("smart-tree-items-group"),a?o=a:a=n))}if(l=Smart.Tree.hoveredTree,!l)return;const s=l.filterable?l.$.filterInput.offsetHeight+10:0;if(clearInterval(l._dragInterval),l._dragInterval=setInterval((function(){const r=l.getBoundingClientRect();l.$.scrollViewer.scrollHeight>0&&r.left<=e.clientX&&r.left+r.width>=e.clientX?e.clientY>=r.top+s&&e.clientY<=r.top+20+s?(l.$.scrollViewer.scrollTop-=t._autoScrollCoefficient,"scrollButtons"===l.scrollMode&&l._updateScrollButtonVisibility()):e.clientY>=r.top+r.height-20&&e.clientY<=r.top+r.height?(l.$.scrollViewer.scrollTop+=t._autoScrollCoefficient,"scrollButtons"===l.scrollMode&&l._updateScrollButtonVisibility()):clearInterval(l._dragInterval):clearInterval(l._dragInterval)}),1),t._isMobile||(a=e.originalEvent.target,a&&a.enableShadowDOM&&(a=e.originalEvent.composedPath()[0]),a&&a.closest&&(o=a.closest("smart-tree-item")||a.closest("smart-tree-items-group"))),o){if(Smart.Tree.hoveredItem&&o!==Smart.Tree.hoveredItem&&(Smart.Tree.hoveredItem.classList.remove("drop-target"),Smart.Tree.hoveredItem.classList.remove("top"),Smart.Tree.hoveredItem.classList.remove("bottom")),Smart.Tree.hoveredItem=o,r.Item.contains(o))return;const t=o.getBoundingClientRect();o instanceof Smart.TreeItem?e.clientY-t.top<=t.height/2?(o.classList.remove("bottom"),o.classList.add("top")):(o.classList.remove("top"),o.classList.add("bottom")):e.clientY-t.top<=10?(o.classList.remove("bottom"),o.classList.add("top")):!o.expanded&&t.bottom-e.clientY<=10?(o.classList.remove("top"),o.classList.add("bottom")):(o.classList.remove("top"),o.classList.remove("bottom")),o.classList.add("drop-target")}else if(Smart.Tree.hoveredItem&&(Smart.Tree.hoveredItem.classList.remove("drop-target"),Smart.Tree.hoveredItem.classList.remove("top"),Smart.Tree.hoveredItem.classList.remove("bottom")),a===l.$.scrollViewer.$.scrollViewerContainer)if(l._menuItems[0]){let e=l.$.mainContainer.lastElementChild,t=l.$.mainContainer.childElementCount-1;for(;e.hidden&&(t--,e=l.$.mainContainer.children[t],e););if(e){if(r.Item===e)return;Smart.Tree.hoveredItem=e,Smart.Tree.hoveredItem.classList.add("bottom")}else Smart.Tree.hoveredItem=l.$.container;Smart.Tree.hoveredItem.classList.add("drop-target")}else Smart.Tree.hoveredItem=l.$.container,Smart.Tree.hoveredItem.classList.add("drop-target");else delete Smart.Tree.hoveredItem}_moveSubItems(e,t,r){const n=this;for(let l=0;l<e.length;l++){const a=e[l];a.menu=t,a.set("level",a.parentItem.level+1),a.firstElementChild.style.paddingLeft="",a.firstElementChild.style.paddingRight="",n._setIndentation(a.firstElementChild,a.level,r),a.hidden=!1,a.$.removeClass("smart-hidden"),a.$.removeClass("filtered-child"),a.$.removeClass("last-filtered-child"),a instanceof Smart.TreeItemsGroup&&(a.$.removeClass("hidden-children"),a.container.level=a.level+1,n._moveSubItems(a.itemContainer.children,t,r),t!==n&&a.expanded&&(t._menuItemsGroupsToExpand.push(a),n._updateState("expanded",a.id,!1)))}}_moveTreeItem(e,t,r,n){const l=this,a=e.level;if(0===r){if(t.previousElementSibling===e)return;t.parentElement.insertBefore(e,t),e.set("level",t.level),e.parentItem=t.parentItem}else if(2===r){if(t.nextElementSibling===e)return;t.parentElement.insertBefore(e,t.nextElementSibling||null),e.set("level",t.level),e.parentItem=t.parentItem}else if(t===n[0].$.container)n[0].$.mainContainer.appendChild(e),e.set("level",1),e.parentItem=void 0;else{if(t.itemContainer.lastElementChild===e)return;t.itemContainer.appendChild(e),e.set("level",t.level+1),e.parentItem=t}const o=n[0].rightToLeft?"paddingRight":"paddingLeft";if(e.menu=n[0],e.parentItem=e.parentElement.menuItemsGroup,e.firstElementChild.style.paddingLeft="",e.firstElementChild.style.paddingRight="",l._setIndentation(e.firstElementChild,e.level,o),e.hidden=!1,e.$.removeClass("smart-hidden"),e.$.removeClass("filtered-child"),e.$.removeClass("last-filtered-child"),e instanceof Smart.TreeItemsGroup&&(e.$.removeClass("hidden-children"),e.container.level=e.level+1,l._moveSubItems(e.itemContainer.children,n[0],o),e.expanded)){const t=l._openedContainers[a+1].indexOf(e.container);-1!==t&&l._openedContainers[a+1].splice(t,1),n[0]._menuItemsGroupsToExpand.push(e),2===n.length&&l._updateState("expanded",e.id,!1)}for(let e=0;e<n.length;e++){const t=n[e],r=t.context,l=t.selectedIndexes.slice(0);t.context=t,t._menuItems={},t._refreshItemPaths(t.$.mainContainer,!0,void 0,t.sorted&&!t.autoSort),t.selectedIndexes=[],t._applySelection(!0,l,!1),t._checkOverflow(),t.context=r}n[0]._expandItemsByDefault()}_overriddenMenuHandler(){}_pageDownHandler(e,t,r,n){const l=this,a=l.$.scrollViewer;function o(){for(let t=e.length-1;t>=0;t--){const r=e[t];if(l._canItemBeHovered(r)&&l._getOffsetTop(r)+r.firstElementChild.offsetHeight<=a.scrollTop+a.$.container.offsetHeight)return r}}if(!t)return;let s=o();s&&(t!==s?(t.removeAttribute("focus"),l._hoverViaKeyboard(s,r,n)):a.scrollTop+a.$.container.offsetHeight!==a.$.scrollViewerContentContainer.offsetHeight&&(l.$.scrollViewer.scrollTop+=a.$.container.offsetHeight,"scrollButtons"===l.scrollMode&&l._updateScrollButtonVisibility(),s=o(),t.removeAttribute("focus"),l._hoverViaKeyboard(s,r,n)))}_pageUpHandler(e,t,r,n){const l=this,a=l.$.scrollViewer;function o(){for(let t=0;t<e.length;t++){const r=e[t];if(l._canItemBeHovered(r)&&l._getOffsetTop(r)>=a.scrollTop)return r}}if(!t)return;let s=o();s&&(t!==s?(t.removeAttribute("focus"),l._hoverViaKeyboard(s,r,n)):0!==a.scrollTop?(l.$.scrollViewer.scrollTop-=a.$.container.offsetHeight,"scrollButtons"===l.scrollMode&&l._updateScrollButtonVisibility(),s=o(),t.removeAttribute("focus"),l._hoverViaKeyboard(s,r,n)):l.filterable&&l.$.filterInput.focus())}_refreshItemPathsAndSelection(){const e=this,t=e.selectedIndexes.slice(0);e._menuItems={},e._refreshItemPaths(e.$.mainContainer,!0),e.selectedIndexes=[],e._applySelection(!0,t)}_refreshSorting(){const e=this;e._unsortItems(e.$.mainContainer),e._applyGrouping(e.$.mainContainer);const t=e._state.filter;t&&e._applyFilter(t),e._checkOverflow()}_scroll(e){const t=this;t.$.scrollViewer.scrollTop=t.$.scrollViewer.scrollTop+10*e,t._updateScrollButtonVisibility(),t.focus()}_scrollButtonFarClickHandler(){this.$.scrollButtonFar.disabled||this._scroll(1)}_scrollButtonNearClickHandler(){this.$.scrollButtonNear.disabled||this._scroll(-1)}_scrollViewerDownHandler(e){const t=this;if(e.target!==t.$.scrollViewer||t.disabled||t.displayLoadingIndicator||!t._isMobile&&1!==e.which)return;const r=e.originalEvent.target;if(r!==t.$.editInput)if(t._isMobile){const n=t.$.scrollViewer.scrollTop,l=t.getBoundingClientRect().top,a=setTimeout((function(){if(!t._dragDetails&&t.$.scrollViewer.scrollTop===n&&t.getBoundingClientRect().top===l){const n=t.context;t.context=t,t._continueSelection(r,e),t.context=n}}),250);t._downTimeoutInfo={target:r,event:e,scrollTop:n,top:l,timeout:a}}else t._continueSelection(r,e);else t._editInputDown=!0}_continueSelection(e,t){const r=this,n=e.closest("smart-tree-item")||e.closest("smart-tree-items-group");if(!(n&&n.parentElement&&r._canItemBeSelected(n,!0)))return;const l=e.closest(".smart-tree-items-group-arrow");let a;if(n instanceof Smart.TreeItem)a="_handleSelection";else{if(e===n.container||e===n.container.firstElementChild)return;a="_menuItemsGroupSelectionHandler"}if(clearTimeout(r._dblclickTimeout),n!==r._dblclickObject.target&&(r._dblclickObject.numberOfClicks=0),r._dblclickObject.target=n,r._dblclickObject.numberOfClicks++,r._dblclickTimeout=setTimeout((function(){r._dblclickObject.numberOfClicks=0}),300),2===r._dblclickObject.numberOfClicks){if(r.editable)return void r._startEditing(n);r._dblclickHandler(n,l,t),r._dblclickObject.numberOfClicks=0}n.selected&&(r._downItem=n),r[a](n,t),r._discardKeyboardHover(!0),r._hoverViaKeyboard(n,!1,void 0,!1),l||r._startDragging(n,t)}_scrollViewerTouchmoveHandler(e){this._dragDetails&&e.cancelable&&(e.preventDefault(),e.stopPropagation())}_scrollViewerWheelHandler(){const e=this;"scrollButtons"===e.scrollMode&&"hidden"!==e.overflow&&e._updateScrollButtonVisibility()}_selectItemRange(e,t){const r=this,n=Array.from(r.$.mainContainer.querySelectorAll("smart-tree-item, smart-tree-items-group")),l=n.indexOf(e),a=n.indexOf(t),o=[];for(let e=Math.min(l,a);e<=Math.max(l,a);e++){const t=n[e];r._canItemBeHovered(t)&&(o.push(t.path),t.set("selected",!0))}return o}_selectstartHandler(e){this._dragDetails&&e.preventDefault()}_setFocusable(){super._setFocusable();const e=this;e.disabled||e.unfocusable?e.$.filterInput.tabIndex=-1:e.$.filterInput.removeAttribute("tabindex")}_setIndentation(e,t,r){const n=this;let l=n._paddingSize;void 0===l&&(l=parseFloat(getComputedStyle(n).getPropertyValue("--smart-tree-indent")),isNaN(l)?l=20:l+=4,n._paddingSize=l),e.style[r]=t*l-l/2+"px"}_setThreeStateCheckbox(e,t,r){t===e.itemContainer.childElementCount&&t>0?(e.removeAttribute("indeterminate"),e.set("selected",!0),e.setAttribute("aria-selected",!0)):0===t&&0===r?(e.removeAttribute("indeterminate"),e.set("selected",!1),e.setAttribute("aria-selected",!1)):(e.setAttribute("indeterminate",""),e.set("selected",!1),e.setAttribute("aria-selected",!1))}_sortItems(e){const t=this;if(!t.sorted)return;let r;e instanceof Smart.TreeItemsGroup?r=e.container.firstElementChild:e===t.$.mainContainer&&(r=e);let n=Array.from(r.children);if(t.sort){const r=t.sort(n,e);Array.isArray(r)&&(n=r)}else"asc"===t.sortDirection?n.sort((function(e,t){return e.label.localeCompare(t.label)})):n.sort((function(e,t){return t.label.localeCompare(e.label)}));for(let e=n.length-1;e>=0;e--)r.insertBefore(n[e],r.firstElementChild)}_sortPathCollection(e){e.sort((function(e,t){const r=e.split("."),n=t.split("."),l=Math.max(r.length,n.length);for(let e=0;e<l;e++){const t=parseFloat(r[e]),l=parseFloat(n[e]);if(isNaN(t))return-1;if(isNaN(l))return 1;if(t<l)return-1;if(t>l)return 1}}))}_startDragging(e,t){const r=this,n=r.selectionMode;if(!r.allowDrag||r._editedItem||"none"===n)return;const l=[],a=[];let o;if(-1!==["one","zeroAndOne","zeroOrOne","checkBox","radioButton"].indexOf(n))o=!1,l.push(e),a.push(e);else{o=!0;for(let e=0;e<r.selectedIndexes.length;e++)l.push(r._menuItems[r.selectedIndexes[e]]),a.push(l[e]);for(let e=0;e<l.length;e++){const t=l[e];if(-1!==a.indexOf(t))for(let e=a.length-1;e>=0;e--){const r=a[e];if(r===t)break;t.contains(r)&&a.splice(e,1)}}}r._dragDetails={StartPosition:{left:t.pageX,top:t.pageY},Items:l,ValidItems:a,Item:e,FeedbackShown:!1,ValidateOnDrop:o,OriginalEvent:t,StartTime:new Date,Dragging:!0},Smart.Tree.treeItemDragged=!0,r.$.scrollViewer._scrollView.disableSwipeScroll=!0,r.allowDrop&&(Smart.Tree.hoveredTree=r,Smart.Tree.hoveredItem=e)}_startEditing(e){const t=this,r=t.$.editInput;let n,l;if(!t._canItemBeSelected(e,!0))return;const a=e.firstElementChild,o=a.firstElementChild;t.rightToLeft?(n=function(){return a.offsetWidth-o.offsetLeft-o.offsetWidth},l="paddingRight"):(n=function(){return o.offsetLeft+parseFloat(window.getComputedStyle(a).borderLeftWidth)},l="paddingLeft"),e instanceof Smart.TreeItemsGroup?(r.style[l]=n()+(t.showLines?parseFloat(window.getComputedStyle(o.firstElementChild).paddingLeft):0)-1+"px",r.style.height=a.offsetHeight+"px"):(r.style[l]=e.offsetWidth+parseInt(a.style[l],10)-a.offsetWidth+parseFloat(window.getComputedStyle(o.firstElementChild).paddingLeft)-2+"px",r.style.height=e.offsetHeight+"px"),r.style.top=t._getOffsetTop(e)+"px",t.$editInput.removeClass("smart-hidden"),r.value=e.label,t._editedItem=e,r.setAttribute("aria-label","Edit item "+e.label),setTimeout((function(){r.focus()}),0)}_styleChangedHandler(e){e.detail.styleProperties&&e.detail.styleProperties["font-size"]&&this._checkOverflow()}_updateScrollButtonVisibility(){const e=this,t=e.overflow;if("scrollbar"===e.scrollMode||"hidden"===t)return;let r=!0,n=!0;if(0===Math.round(e.$.scrollViewer.scrollTop)&&(r=!1),Math.round(e.$.scrollViewer.$.scrollViewerContainer.offsetHeight+e.$.scrollViewer.scrollTop)>=Math.round(e.$.scrollViewer.$.scrollViewerContentContainer.offsetHeight)&&(n=!1),"auto"===t){if(r&&n)return e.$scrollButtonNear.removeClass("smart-hidden"),e.$scrollButtonFar.removeClass("smart-hidden"),e.$scrollViewer.removeClass("one-button-shown"),void e.$.scrollViewer.refresh();r?e.$scrollButtonNear.removeClass("smart-hidden"):e.$scrollButtonNear.addClass("smart-hidden"),n?e.$scrollButtonFar.removeClass("smart-hidden"):e.$scrollButtonFar.addClass("smart-hidden"),e.$scrollViewer.addClass("one-button-shown"),e.$.scrollViewer.refresh()}else"scroll"!==t||e.disabled||(e.$.scrollButtonNear.disabled=!r,e.$.scrollButtonFar.disabled=!n)}_updateState(e,t,r){const n=this;switch(e){case"expanded":{const e=n._state.expanded.indexOf(t);if(r&&-1===e)n._state.expanded.push(t);else{if(r||-1===e)return;n._state.expanded.splice(e,1)}break}case"filter":n._state.filter=void 0!==t?t:n.$.filterInput.value;break;case"selected":n._state.selected=[];for(let e=0;e<n.selectedIndexes.length;e++){const t=n._menuItems[n.selectedIndexes[e]];n._state.selected.push(t.id)}break;case"sorted":n._state.sorted=t}n.autoSaveState&&window.localStorage.setItem("smartTree"+n.id,JSON.stringify(n._state))}_verticalScrollbarHandler(){const e=this,t=e.$.verticalScrollBar,r=t.value;e.disabled||(t.max!==r?t.min!==r?(delete e._topReached,delete e._bottomReached):e._topReached||(e.$.fireEvent("scrollTopReached"),delete e._bottomReached,e._topReached=!0):e._bottomReached||(e.$.fireEvent("scrollBottomReached"),delete e._topReached,e._bottomReached=!0))}});
6
+ Smart("smart-tree-item",class extends Smart.MenuItem{static get properties(){return{selected:{value:!1,type:"boolean"}}}ready(){const e=this;Object.defineProperty(e,"hasStyleObserver",{get:function(){return!1}}),super.ready(),e.setAttribute("role","treeitem"),e.setAttribute("aria-label",e.label)}propertyChangedHandler(e,t,r){const n=this,l=n.menu;if(super.propertyChangedHandler(e,t,r),"level"===e)return void(n.level=t);if("disabled"===e||"separator"===e||!l)return;const a=l.context;switch(l.context=l,e){case"label":{const e=l.sorted&&l.autoSort;n.firstElementChild.firstElementChild.firstElementChild.innerHTML=r,e&&(l._unsortItems(l.$.mainContainer),l._applyGrouping(l.$.mainContainer)),l._state.filter&&l._applyFilter(l._state.filter),n.setAttribute("aria-label",r);break}case"selected":n.selected=t,r?l.select(n):l.unselect(n);break;case"shortcut":{let e=n.firstElementChild.children[1];e||(e=document.createElement("div"),e.className="smart-tree-item-shortcut",n.firstElementChild.appendChild(e)),e.innerHTML=r;break}case"value":l.sort&&l.sorted&&l.autoSort&&l._refreshSorting()}l.context=a}_setId(){}}),Smart("smart-tree-items-group",class extends Smart.MenuItemsGroup{static get properties(){return{selected:{value:!1,type:"boolean"}}}ready(){const e=this;Object.defineProperty(e,"hasStyleObserver",{get:function(){return!1}}),super.ready(),e.setAttribute("role","treeitem"),e.removeAttribute("aria-haspopup"),e.setAttribute("aria-label",e.label)}propertyChangedHandler(e,t,r){const n=this,l=n.menu;if(super.propertyChangedHandler(e,t,r),"level"===e)return void(n.level=t);if("disabled"===e||"separator"===e||!l)return;const a=l.context;switch(l.context=l,e){case"expanded":n.expanded=t,r?l.expandItem(n):l.collapseItem(n);break;case"label":{const e=l.sorted&&l.autoSort;n.firstElementChild.firstElementChild.firstElementChild.innerHTML=r,e&&(l._unsortItems(l.$.mainContainer),l._applyGrouping(l.$.mainContainer)),l._state.filter&&l._applyFilter(l._state.filter),n.setAttribute("aria-label",r);break}case"selected":n.selected=t,r?l.select(n):l.unselect(n);break;case"value":l.sort&&l.sorted&&l.autoSort&&l._refreshSorting()}l.context=a}_setId(){}}),Smart("smart-tree",class extends Smart.Menu{static get properties(){return{allowDrag:{value:!1,type:"boolean"},allowDrop:{value:!1,type:"boolean"},autoHideToggleElement:{value:!1,type:"boolean"},autoLoadState:{value:!1,type:"boolean"},autoSaveState:{value:!1,type:"boolean"},autoSort:{value:!0,type:"boolean"},displayLoadingIndicator:{value:!1,type:"boolean"},dragFeedbackFormatFunction:{value:null,type:"function?"},dragOffset:{value:[10,10],type:"array"},editable:{value:!1,type:"boolean"},expandMode:{value:"multiple",allowedValues:["multiple","single"],type:"string"},filterable:{value:!1,type:"boolean"},filterOnEnter:{value:!1,type:"boolean"},filterInputPlaceholder:{value:"",type:"string"},filterMember:{value:"label",type:"string"},filterMode:{value:"containsIgnoreCase",allowedValues:["contains","containsIgnoreCase","doesNotContain","doesNotContainIgnoreCase","equals","equalsIgnoreCase","startsWith","startsWithIgnoreCase","endsWith","endsWithIgnoreCase"],type:"string"},hasThreeStates:{value:!1,type:"boolean"},loadingIndicatorPlaceholder:{value:"Loading...",type:"string"},loadingIndicatorPosition:{value:"center",allowedValues:["bottom","center","top"],type:"string"},messages:{value:{en:{noId:"smart-tree: Saving and loading the element's state are not available if the element has no id."}},type:"object",extend:!0},scrollMode:{value:"scrollbar",allowedValues:["scrollbar","scrollButtons"],type:"string"},selectedIndexes:{value:[],type:"array"},selectionDisplayMode:{value:"row",allowedValues:["row","label"],type:"string"},selectionMode:{value:"one",allowedValues:["none","oneOrManyExtended","zeroOrMany","oneOrMany","zeroOrOne","zeroAndOne","one","checkBox","radioButton"],type:"string"},selectionTarget:{value:"all",allowedValues:["all","leaf"],type:"string"},showLines:{value:!1,type:"boolean"},showRootLines:{value:!1,type:"boolean"},sort:{value:null,type:"function?",reflectToAttribute:!1},sortDirection:{value:"asc",allowedValues:["asc","desc"],type:"string"},sorted:{value:!1,type:"boolean"},toggleElementPosition:{value:"near",allowedValues:["near","far"],type:"string"},toggleMode:{value:"dblclick",allowedValues:["click","dblclick","arrow"],type:"string"}}}static get listeners(){return{blur:"_blurHandler",focus:"_focusHandler",keydown:"_keydownHandler",mouseenter:"_mouseenterHandler",mouseleave:"_mouseleaveHandler",resize:"_checkOverflow",styleChanged:"_styleChangedHandler",transitionend:"_overriddenMenuHandler","container.click":"_overriddenMenuHandler","container.mouseout":"_overriddenMenuHandler","container.mouseover":"_overriddenMenuHandler","container.pointerover":"_pointeroverHandler","editInput.blur":"_editInputBlurHandler","filterInput.keydown":"_filterInputKeydownHandler","filterInput.keyup":"_filterInputKeyupHandler","mainContainer.click":"_overriddenMenuHandler","mainContainer.mouseleave":"_overriddenMenuHandler","mainContainer.mouseout":"_overriddenMenuHandler","mainContainer.mouseover":"_overriddenMenuHandler","mainContainer.swipeleft":"_mainContainerSwipeHandler","mainContainer.swiperight":"_mainContainerSwipeHandler","scrollButtonFar.click":"_scrollButtonFarClickHandler","scrollButtonNear.click":"_scrollButtonNearClickHandler","scrollViewer.down":"_scrollViewerDownHandler","scrollViewer.kineticScroll":"_scrollViewerWheelHandler","scrollViewer.touchmove":"_scrollViewerTouchmoveHandler","mainContainer.wheel":"_scrollViewerWheelHandler","document.move":"_moveHandler","document.selectstart":"_selectstartHandler","document.up":"_documentUpHandler"}}static get requires(){return{"Smart.ScrollBar":"smart.scrollbar.js"}}static get styleUrls(){return["smart.scrollbar.css","smart.scrollviewer.css","smart.tree.css"]}template(){return'<div id="container" role="presentation">\n <div class="smart-tree-filter-input-container" role="presentation"><input id="filterInput" class="smart-filter-input" disabled="[[disabled]]" placeholder="[[filterInputPlaceholder]]" type="text" role="searchbox" aria-label="[[filterInputPlaceholder]]" /></div>\n <smart-repeat-button id="scrollButtonNear" class="smart-tree-scroll-button smart-spin-button smart-scroll-button-near smart-hidden" animation="[[animation]]" unfocusable aria-label="Scroll up">\n <div id="arrowNear" class="smart-arrow smart-arrow-up"></div>\n </smart-repeat-button>\n <smart-scroll-viewer id="scrollViewer" animation="[[animation]]" horizontal-scroll-bar-visibility="hidden" right-to-left="[[rightToLeft]]">\n <div id="mainContainer" inner-h-t-m-l=\'[[innerHTML]]\' class="smart-tree-main-container" role="presentation">\n <content></content>\n </div>\n <input type="text" id="editInput" class="smart-tree-edit-input smart-hidden" />\n </smart-scroll-viewer>\n <smart-repeat-button id="scrollButtonFar" class="smart-tree-scroll-button smart-spin-button smart-scroll-button-far smart-hidden" animation="[[animation]]" unfocusable aria-label="Scroll down">\n <div id="arrowFar" class="smart-arrow smart-arrow-down"></div>\n </smart-repeat-button>\n <div id="loadingIndicatorContainer" class="smart-loader-container smart-hidden" role="presentation">\n <span id="loadingIndicator" class="smart-loader" role="img" aria-label="[[loadingIndicatorPlaceholder]]"></span>\n <span id="loadingIndicatorPlaceHolder" class="smart-loader-label smart-hidden">[[loadingIndicatorPlaceholder]]</span>\n </div>\n </div>'}detached(){const e=this,t=e._dragDetails;if(super.detached(),!t)return;const r=Smart.Tree.hoveredTree,n=Smart.Tree.hoveredItem;delete e._dragDetails,delete Smart.Tree.treeItemDragged,delete Smart.Tree.hoveredTree,delete Smart.Tree.hoveredItem,e.$.scrollViewer._scrollView.disableSwipeScroll=!1,t.FeedbackShown&&(n.classList.remove("drop-target","top","bottom"),document.body.classList.remove("smart-dragging"),t.Feedback.remove(),r&&clearInterval(r._dragInterval))}addAfter(e,t){void 0!==(t=this.getItem(t))&&this.addTo(e,t.parentItem,t,!0)}addBefore(e,t){void 0!==(t=this.getItem(t))&&this.addTo(e,t.parentItem,t)}addTo(e,t){const r=this;if(!(e instanceof Smart.TreeItem||e instanceof Smart.TreeItemsGroup))if("string"==typeof e){const t=document.createElement("smart-tree-item");t.label=e,e=t}else{if(!e||!e.label)return;{const t=document.createElement("smart-tree-item");t.label=e.label,e=t}}let n,l;if(e.isDirty=!1,void 0===t)n=1,l=t=r.$.mainContainer;else{if((t=r.getItem(t))instanceof Smart.TreeItemsGroup==0){const n=document.createElement("smart-tree-items-group");return n.innerHTML=t.innerHTML,n.appendChild(e),r.addBefore(n,t),void t.remove()}n=t.level+1,l=t.itemContainer}r._createItemHTMLStructure(e,n,t,l.childElementCount,0);const a=r.sorted&&r.autoSort,o=r._state.filter,s=r.selectedIndexes.slice(0);a&&r._unsortItems(r.$.mainContainer),e instanceof Smart.TreeItemsGroup&&(Array.from(e.querySelectorAll("smart-tree-item, smart-tree-items-group")).forEach((e=>e.isDirty=!1)),r._processHTML(e,n+1,!1));let i=arguments[2];i&&arguments[3]&&(i=i.nextElementSibling),i?(l.insertBefore(e,i),r._menuItems={},r._refreshItemPaths(r.$.mainContainer,!0,void 0,r.sorted&&!r.autoSort)):l.appendChild(e),a&&r._applyGrouping(r.$.mainContainer),o&&r._applyFilter(o),r._checkOverflow(),r._expandItemsByDefault(),r.selectedIndexes=[],r._applySelection(!0,s)}getSelectedValues(){const e=this,t=[];for(let r=0;r<e.selectedIndexes.length;r++){const n=e._menuItems[e.selectedIndexes[r]];n.hasAttribute("value")?t.push(n.getAttribute("value")):n.hasAttribute("label")&&t.push(n.getAttribute("label"))}return t}unselectValues(e){const t=this;e&&Object.keys(t._menuItems).forEach((r=>{const n=t._menuItems[r];let l=null;n.hasAttribute("value")?l=n.getAttribute("value"):n.hasAttribute("label")&&(l=n.getAttribute("label")),"string"==typeof e?e===l&&t.unselect(r):e.indexOf(l)>=0&&t.unselect(r)}))}setSelectedValues(e){const t=this;e&&Object.keys(t._menuItems).forEach((r=>{const n=t._menuItems[r];let l=null;n.hasAttribute("value")?l=n.getAttribute("value"):n.hasAttribute("label")&&(l=n.getAttribute("label")),"string"==typeof e?e===l&&t._canItemBeSelected(n)&&t._handleSelection(n,{type:"programmatic"}):e.indexOf(l)>=0&&t._canItemBeSelected(n)&&t._handleSelection(n,{type:"programmatic"})}))}clearSelection(){const e=this,t=e.selectedIndexes.slice(0);e.selectedIndexes=[],e._applySelection(!1,t)}collapseAll(e){const t=this,r=t.animation,n=!1===e&&t.hasAnimation;n&&(t.animation="none"),t._collapseAll(!0),n&&(t.animation=r)}ensureVisible(e){const t=this;if(void 0===(e=t.getItem(e))||e.hidden)return;let r=!1;e.level>1&&!t._isBranchExpanded(e)&&(super.expandItem(e.parentItem,void 0,!0),r=t.hasAnimation,r&&(t._ensureVisibleOnTransitionend=e)),r||t._ensureVisible(e)}expandAll(e){const t=this,r=t.animation,n=!1===e&&t.hasAnimation;let l=1,a=(t.enableShadowDOM?t.shadowRoot:t).querySelectorAll('smart-tree-items-group[level="1"]');for(n&&(t.animation="none");a.length>0;){for(let e=0;e<a.length;e++){const r=a[e];r.expanded||t._menuItemsGroupSelectionHandler(r,{target:r,type:"expand"})}l++,a=(t.enableShadowDOM?t.shadowRoot:t).querySelectorAll('smart-tree-items-group[level="'+l+'"]')}n&&(t.animation=r)}expandItem(e,t){const r=this;if(void 0===(e=r.getItem(e))||e instanceof Smart.TreeItemsGroup==0||e&&e.container&&r._isContainerOpened(e.container.level,e.container))return;void 0!==Smart.Menu.processTimer&&r._lazyInitItems();const n=!1===t&&r.hasAnimation,l=r.animation;n&&(r.animation="none"),r._discardKeyboardHover(),r._menuItemsGroupSelectionHandler(e,{target:e,type:"expand"},arguments[2]),n&&(r.animation=l)}filter(e){const t=this;t.filterable&&(t._applyFilter(e),t.$.filterInput.value=e)}getState(){return JSON.parse(JSON.stringify(this._state))}insert(e,t){const r=this;let n;if(e instanceof Smart.TreeItem||e instanceof Smart.TreeItemsGroup){if(r.contains(e))return;e.isDirty=!1,n=e}else{if("object"!=typeof e||e.constructor!==Object)return;n=function e(t){const n=t[r.itemsMember],l="smart-tree-items-group"===t.tagName||Array.isArray(n)?"smart-tree-items-group":"smart-tree-item",a=document.createElement(l);if(a.isDirty=!1,t.disabled&&(a.disabled=!0),t[r.displayMember]&&(a.label=t[r.displayMember]),t.selected&&(a.selected=!0),t.separator&&(a.separator=!0),t[r.valueMember]&&(a.value=t[r.valueMember]),"smart-tree-items-group"===l){if(t.expanded&&(a.expanded=!0),n)for(let t=0;t<n.length;t++)a.appendChild(e(n[t]))}else t.shortcut&&(a.shortcut=t.shortcut);return a}(e)}if(void 0===t)return void r.addTo(n);if("number"==typeof t)t=t.toString();else if(t instanceof Smart.TreeItem||t instanceof Smart.TreeItemsGroup){if(!r.contains(t))return;t=t.path}else if("string"!=typeof t)return;const l=t.split(".");let a,o;1===l.length?(o=r._menuItems[l[0]],o?r.addBefore(n,o):r.addTo(n)):(o=r._menuItems[t],a=r._menuItems[l.slice(0,l.length-1).join(".")],o?r.addBefore(n,o):a&&a instanceof Smart.TreeItemsGroup&&r.addTo(n,a))}loadState(e){const t=this,r=t.selectedIndexes.slice(0),n=[];if(!e){if(!t.id)return void t.warn(t.localize("noId"));if(!(e=window.localStorage.getItem("smartTree"+t.id)))return}"string"==typeof e&&(e=JSON.parse(e)),e.filter&&!t.filterable&&(e.filter="");let l=e.filter!==t._state.filter;e.sorted!==t.sorted?(t.sorted=e.sorted,t._updateState("sorted",t.sorted),e.sorted?t._applyGrouping(t.$.mainContainer):t._unsortItems(t.$.mainContainer),(e.filter||l)&&(t._applyFilter(e.filter),t.$.filterInput.value=e.filter)):l&&(t._applyFilter(e.filter),t.$.filterInput.value=e.filter),t._menuItemsGroupsToExpand=[];for(let r=0;r<e.expanded.length;r++){const n=t.getItem(e.expanded[r]);n&&t._menuItemsGroupsToExpand.push(n)}t._expandItemsByDefault(!0);for(let r=0;r<e.selected.length;r++){const l=t.getItem(e.selected[r]);l&&n.push(l.path)}t.selectedIndexes=n,t._applySelection(!1,r)}moveDown(e){const t=this,r=(e=t.getItem(e)).nextElementSibling;void 0!==e&&r&&!t.sorted&&(t._moveTreeItem(e,r,2,[t]),t.filterable&&t._state.filter&&t._applyFilter(t._state.filter))}moveUp(e){const t=this,r=(e=t.getItem(e)).previousElementSibling;void 0!==e&&r&&!t.sorted&&(t._moveTreeItem(e,r,0,[t]),t.filterable&&t._state.filter&&t._applyFilter(t._state.filter))}refresh(){this._checkOverflow()}removeItem(e){const t=this;if(void 0===(e=t.getItem(e)))return;if(e instanceof Smart.TreeItemsGroup){const r=e.container;t._isContainerOpened(r.level,r)&&t._closeSubContainersTreeMode(r.level,r)}const r=t.sorted&&t.autoSort;r&&t._unsortItems(t.$.mainContainer);const n=e.closest("smart-tree-items-group");e.parentElement.removeChild(e),t._menuItems={},t._refreshItemPaths(t.$.mainContainer,!0,void 0,t.sorted&&!t.autoSort),r&&t._applyGrouping(t.$.mainContainer);const l=t._state.filter,a=t.selectedIndexes.slice(0);if(l&&t._applyFilter(l),t._checkOverflow(),t.selectedIndexes=[],t._applySelection(!0,a),delete t._treeAnimationInProgress,n&&!n.querySelector("smart-tree-item")){const e=document.createElement("smart-tree-item");return e.innerHTML=n.innerHTML,t.addBefore(e,n),void n.remove()}}saveState(){const e=this;return e.id?window.localStorage.setItem("smartTree"+e.id,JSON.stringify(e._state)):e.warn(e.localize("noId")),JSON.parse(JSON.stringify(e._state))}select(e){const t=this;void 0!==(e=t.getItem(e))&&!e.selected&&t._canItemBeSelected(e)&&t._handleSelection(e,{type:"programmatic"})}unselect(e){void 0!==(e=this.getItem(e))&&e.selected&&!e.templateApplied&&this._handleSelection(e,{type:"programmatic"})}updateItem(e,t){if(void 0===(e=this.getItem(e))||void 0===t)return;const r=e instanceof Smart.TreeItem;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(r){if(-1===["disabled","label","level","selected","separator","shortcut","value"].indexOf(n))continue}else if(-1===["disabled","expanded","label","level","selected","separator","value"].indexOf(n))continue;e[n]=t[n]}}propertyChangedHandler(e,t,r){const n=this;switch(super.propertyChangedHandler(e,t,r),e){case"allowDrag":case"allowDrop":case"autoLoadState":case"autoSort":case"editable":case"filterInputPlaceholder":case"loadingIndicatorPlaceholder":case"selectionDisplayMode":case"showLines":case"showRootLines":case"toggleElementPosition":case"toggleMode":break;case"autoHideToggleElement":r?n.$mainContainer.addClass("hidden-arrows"):n.$mainContainer.removeClass("hidden-arrows");break;case"autoSaveState":if(!r)return;if(!n.id)return n.warn(n.localize("noId")),void(n.autoSaveState=!1);window.localStorage.setItem("smartTree"+n.id,JSON.stringify(n._state));break;case"dataSource":{const e=n.selectedIndexes.slice(0);n.selectedIndexes=[],n._menuItems={},n._processDataSource(),n._checkOverflow(),n._expandItemsByDefault(),n._applySelection(!0,e);const t=n._state.filter;t&&n._applyFilter(t);break}case"disabled":n._setFocusable(),n.$.scrollButtonNear.disabled=r,n.$.scrollButtonFar.disabled=r,r||n._updateScrollButtonVisibility();break;case"displayLoadingIndicator":r?(n._discardKeyboardHover(!0),n.$loadingIndicatorContainer.removeClass("smart-hidden")):n.$loadingIndicatorContainer.addClass("smart-hidden");break;case"expandMode":if("single"===r){const e=n._state.expanded.map((e=>Object.values(n._menuItems).find((t=>t.id===e)))),t={};for(let r=0;r<e.length;r++){const l=e[r],a=l.parentItem;if(t[a])continue;t[a]=!0;const o=e.filter((e=>e!==l&&e.parentItem===a));o.length>0&&o.forEach((e=>n.collapseItem(e)))}}break;case"filterable":!1===r&&(n._applyFilter(""),n.$.filterInput.value=""),n._checkOverflow();break;case"filterMode":n.filterable&&n._state.filter&&n._applyFilter(n._state.filter);break;case"hasThreeStates":if("checkBox"!==n.selectionMode)return;if(r)n._applySelection(!1);else{const e=(n.enableShadowDOM?n.shadowRoot:n).querySelectorAll("[indeterminate]");for(let t=0;t<e.length;t++)e[t].removeAttribute("indeterminate")}break;case"innerHTML":n.$.mainContainer.innerHTML=r,n._lazyInitItems();break;case"loadingIndicatorPosition":"center"===r?n.$loadingIndicatorPlaceHolder.addClass("smart-hidden"):n.$loadingIndicatorPlaceHolder.removeClass("smart-hidden");break;case"overflow":if("scrollbar"===n.scrollMode)return"hidden"===r?n.$.scrollViewer.$.verticalScrollBar.setAttribute("aria-hidden",!0):n.$.scrollViewer.$.verticalScrollBar.removeAttribute("aria-hidden"),void(n.$.scrollViewer.verticalScrollBarVisibility="scroll"===r?"visible":"auto");n.$.scrollViewer.scrollTop=0,"hidden"===r?(n.$scrollViewer.removeClass("scroll-buttons-shown"),n.$scrollButtonNear.addClass("smart-hidden"),n.$scrollButtonFar.addClass("smart-hidden")):(n.$.scrollButtonNear.disabled=n.disabled,n.$.scrollButtonFar.disabled=n.disabled,"auto"===r?(n.$scrollButtonNear.addClass("smart-hidden"),n.$scrollButtonFar.addClass("smart-hidden"),n._checkOverflow()):(n.$scrollViewer.addClass("scroll-buttons-shown"),n.$scrollViewer.removeClass("one-button-shown"),n.$scrollButtonNear.removeClass("smart-hidden"),n.$scrollButtonFar.removeClass("smart-hidden"),n._updateScrollButtonVisibility())),n.$.scrollViewer.refresh();break;case"rightToLeft":{let e,t;r?(e="paddingLeft",t="paddingRight"):(e="paddingRight",t="paddingLeft");for(let r in n._menuItems)if(Object.prototype.hasOwnProperty.call(n._menuItems,r)){const l=n._menuItems[r],a=l.firstElementChild;a.style[e]="",n._setIndentation(a,l.level,t)}break}case"scrollMode":if("hidden"===n.overflow)return;if(n.$.scrollViewer.scrollTop=0,"scrollButtons"===r)return"scroll"===n.overflow&&(n.$scrollViewer.addClass("scroll-buttons-shown"),n.$scrollButtonNear.removeClass("smart-hidden"),n.$scrollButtonFar.removeClass("smart-hidden")),n.$.scrollViewer.$.verticalScrollBar.setAttribute("aria-hidden",!0),n.$.scrollViewer.verticalScrollBarVisibility="auto",void n._checkOverflow();n.$.scrollViewer.$.verticalScrollBar.removeAttribute("aria-hidden"),n.$scrollViewer.removeClass("scroll-buttons-shown"),n.$scrollViewer.removeClass("one-button-shown"),n.$scrollButtonNear.addClass("smart-hidden"),n.$scrollButtonFar.addClass("smart-hidden"),"auto"===n.overflow?n.$.scrollViewer.verticalScrollBarVisibility="auto":n.$.scrollViewer.verticalScrollBarVisibility="visible";break;case"selectedIndexes":n._applySelection(!1,t);break;case"selectionMode":if(n.setAttribute("aria-multiselectable",-1!==["oneOrManyExtended","zeroOrMany","oneOrMany","checkBox","radioButton"].indexOf(r)),void 0===n._menuItems[0])return;if("one"===t&&"none"!==r&&"checkBox"!==r&&"radioButton"!==r||-1!==t.indexOf("oneOrMany")&&-1!==r.indexOf("oneOrMany")||"none"===t&&(-1!==r.indexOf("zero")||"checkBox"===r)||"zeroOrMany"===r&&"checkBox"!==t||"radioButton"===t&&-1!==r.indexOf("Many")||!n.hasThreeStates&&("checkBox"===r||"checkBox"===t&&"zeroOrMany"===r))return n._lastSelectedItem="one"===r||"oneOrManyExtended"===r?n._menuItems[n.selectedIndexes[n.selectedIndexes.length-1]]:void 0,void n._applyAriaSelected();if(n.hasThreeStates&&"checkBox"===t){const e=(n.enableShadowDOM?n.shadowRoot:n).querySelectorAll("[indeterminate]");for(let t=0;t<e.length;t++)e[t].removeAttribute("indeterminate")}n._applySelection(!1);break;case"sort":if(!n.sorted)return;n._refreshSorting();break;case"sortDirection":n.sorted&&!n.sort&&(n._unsortItems(n.$.mainContainer),n._applyGrouping(n.$.mainContainer));break;case"sorted":{if(!r&&!n.autoSort)return n._refreshItemPathsAndSelection(),void n._updateState("sorted",!1);r?n._applyGrouping(n.$.mainContainer):n._unsortItems(n.$.mainContainer);const e=n._state.filter;e&&n._applyFilter(e),n._updateState("sorted",r),n._checkOverflow();break}case"unfocusable":n._setFocusable()}}_addDragFeedback(){const e=this,t=document.createElement("div");return t.className="smart-tree-item-feedback",t.setAttribute("parent-tree-id",e.id),e.theme&&t.setAttribute("theme",e.theme),e.dragFeedbackFormatFunction?t.innerHTML=e.dragFeedbackFormatFunction(e._dragDetails.Items):1===e._dragDetails.Items.length?t.innerHTML=e._dragDetails.Item.label:(t.classList.add("multiple"),t.innerHTML="&#xf0c5;"),document.body.appendChild(t),t}_applyFilter(e){const t=this;function r(e,t){e?(t.hidden&&t.$.removeClass("smart-hidden"),t.hidden=!1):(t.hidden||t.$.addClass("smart-hidden"),t.hidden=!0)}if(""===e&&!t.hasAttribute("filter-applied"))return;const n=Array.from(t.$.mainContainer.getElementsByClassName("last-filtered-child"));for(let e=0;e<n.length;e++)n[e].$.removeClass("last-filtered-child");!function n(l,a){let o,s=!1,i=0;a=Array.from(a);for(let l=0;l<a.length;l++){const d=a[l];d instanceof Smart.TreeItem?r(t._findItem(d,e),d):n(d,d.itemContainer.children),d.hidden||(i++,o=d),s=s||!d.hidden}if(l!==t.$.mainContainer){const n=t._findItem(l,e);r(s||n,l),s&&null===n?l.$.addClass("filtered-child"):l.$.removeClass("filtered-child"),!s&&a.length>0?(l.hiddenChildren=!0,l.$.addClass("hidden-children"),t.collapseItem(l,void 0,!1)):(l.hiddenChildren=!1,l.$.removeClass("hidden-children"))}""!==e&&i>0&&o.$.addClass("last-filtered-child")}(t.$.mainContainer,t.$.mainContainer.children),""!==e?t.setAttribute("filter-applied",""):t.removeAttribute("filter-applied"),t._updateState("filter",e),t._checkOverflow()}_applyHierarchicalSelection(e,t){const r=this,n=e!==r.$.mainContainer,l=n?e.itemContainer.children:e.children;let a=0,o=0;for(let s=0;s<l.length;s++){const i=l[s];e.selected&&i.set("selected",!0),i instanceof Smart.TreeItemsGroup?r._applyHierarchicalSelection(i,t):i.selected&&t.push(i.path),n&&(i.selected?a++:i.hasAttribute("indeterminate")&&o++)}n&&(r._setThreeStateCheckbox(e,a,o),e.selected&&t.push(e.path))}_applyRadioButtonSelection(e,t,r){const n=this,l=e!==n.$.mainContainer?e.itemContainer.children:e.children,a=[];let o;for(let e=0;e<l.length;e++){const o=l[e];o instanceof Smart.TreeItemsGroup&&n._applyRadioButtonSelection(o,t,r),o.set("selected",!1),-1!==t.indexOf(o.path)&&a.push(o)}o=0===a.length?l[0]:a[a.length-1],o.set("selected",!0),r.push(o.path)}_applySelection(e,t){const r=this;let n=r.selectedIndexes.slice(0);function l(e){const t=Object.values(r._menuItems).filter((t=>t.level===e));if(0!==t.length){for(let e=0;e<t.length;e++)if(r._canItemBeSelected(t[e]))return t[e].path;return l(e+1)}}if(void 0===t&&(t=n.slice(0)),void 0===r._menuItems[0])return r.selectedIndexes=[],r._lastSelectedItem=void 0,void(r.isRendered&&JSON.stringify(t)!==JSON.stringify([])&&r.$.fireEvent("change",{selectedIndexes:r.selectedIndexes,oldSelectedIndexes:t}));const a=r.selectionMode,o=Array.from((r.shadowRoot||r).querySelectorAll("smart-tree-item[selected], smart-tree-items-group[selected]"));for(let e=n.length-1;e>=0;e--){const t=r._menuItems[n[e]];void 0!==t&&r._canItemBeSelected(t)||n.splice(e,1)}if(e)for(let e=0;e<o.length;e++)r._canItemBeSelected(o[e])?-1===n.indexOf(o[e].path)&&n.push(o[e].path):o[e].set("selected",!1);else{for(let e=0;e<o.length;e++)o[e].set("selected",!1);o.length=0}switch(r._sortPathCollection(n),a){case"none":n.length=0;for(let e=0;e<o.length;e++)o[e].set("selected",!1);break;case"one":case"zeroAndOne":case"zeroOrOne":"one"===a&&0===n.length&&n.push(l(1));for(let e=0;e<n.length;e++){const t=r._menuItems[n[e]];if(e===n.length-1){t.set("selected",!0),n=[n[e]];break}-1!==o.indexOf(t)&&t.set("selected",!1)}break;case"oneOrMany":case"oneOrManyExtended":0===n.length&&n.push(l(1));for(let e=0;e<n.length;e++)r._menuItems[n[e]].set("selected",!0);break;case"zeroOrMany":case"checkBox":for(let e=0;e<n.length;e++)r._menuItems[n[e]].set("selected",!0);if("checkBox"===a&&r.hasThreeStates){const e=[];r._applyHierarchicalSelection(r.$.mainContainer,e),r._sortPathCollection(e),n=e}break;case"radioButton":{const e=[];r._applyRadioButtonSelection(r.$.mainContainer,n,e),r._sortPathCollection(e),n=e;break}}r.selectedIndexes=n,r._updateState("selected"),r._lastSelectedItem="one"===a||"oneOrManyExtended"===a?r._menuItems[n[n.length-1]]:void 0,r.isRendered&&!1!==arguments[2]&&JSON.stringify(t)!==JSON.stringify(n)&&r.$.fireEvent("change",{selectedIndexes:r.selectedIndexes,oldSelectedIndexes:t}),r._applyAriaSelected()}_applyAriaSelected(){const e=this,t=e.selectionMode;for(let r in e._menuItems){const n=e._menuItems[r];n.selected?n.setAttribute("aria-selected",!0):e._canItemBeSelected(n)&&-1!==["oneOrManyExtended","zeroOrMany","oneOrMany","checkBox","radioButton"].indexOf(t)?n.setAttribute("aria-selected",!1):n.removeAttribute("aria-selected")}}_autoLoadState(e){const t=this,r=[];for(let e=0;e<t._menuItemsGroupsToExpand.length;e++)t._menuItemsGroupsToExpand[e].set("expanded",!1);t._menuItemsGroupsToExpand=[];for(let r=0;r<e.expanded.length;r++){const n=t.getItem(e.expanded[r]);n&&t._menuItemsGroupsToExpand.push(n)}t.filterable&&e.filter&&(t._applyFilter(e.filter),t.$.filterInput.value=e.filter);for(let n=0;n<e.selected.length;n++){const l=t.getItem(e.selected[n]);l&&r.push(l.path)}t.selectedIndexes=r}_blurHandler(){this._discardKeyboardHover(!0)}_canItemBeHovered(e){const t=e.level;return!1===e.disabled&&!0!==e.templateApplied&&!0!==e.hidden&&(1===t||t>1&&this._isContainerOpened(t,e.parentElement.container)&&e.getBoundingClientRect().height>0)}_canItemBeSelected(e,t){return!(!0!==t&&"leaf"===this.selectionTarget&&e instanceof Smart.TreeItemsGroup)&&!1===e.disabled&&!0!==e.templateApplied}_checkOverflow(){const e=this,t=e.$.scrollViewer,r=e.overflow;if("scrollbar"===e.scrollMode||"hidden"===r)return void t.refresh();const n=t.scrollTop;"auto"===r&&(t.$.removeClass("scroll-buttons-shown"),t.$.removeClass("one-button-shown"),e.$scrollButtonNear.addClass("smart-hidden"),e.$scrollButtonFar.addClass("smart-hidden"));const l=Math.round(t.$.scrollViewerContentContainer.offsetHeight)>Math.round(t.$.scrollViewerContainer.offsetHeight),a=Math.round(t.scrollTop)>0,o=Math.round(t.$.scrollViewerContainer.offsetHeight+t.scrollTop)<Math.round(t.$.scrollViewerContentContainer.offsetHeight);l?"auto"===r?(t.$.addClass("scroll-buttons-shown"),a&&e.$scrollButtonNear.removeClass("smart-hidden"),o&&e.$scrollButtonFar.removeClass("smart-hidden"),!1===(a&&o)&&t.$.addClass("one-button-shown"),e.disabled||(e.$.scrollButtonNear.disabled=!1,e.$.scrollButtonFar.disabled=!1),t.scrollTop=n):(e.$scrollButtonNear.removeClass("smart-hidden"),e.$scrollButtonFar.removeClass("smart-hidden"),e.disabled?(e.$.scrollButtonNear.disabled=!0,e.$.scrollButtonFar.disabled=!0):(e.$.scrollButtonNear.disabled=!a,e.$.scrollButtonFar.disabled=!o)):"scroll"===r&&(e.$.scrollButtonNear.disabled=!0,e.$.scrollButtonFar.disabled=!0),t.refresh()}_createElement(){const e=this,t=window.getComputedStyle(e.$.scrollViewer);if(e.setAttribute("role","tree"),e.setAttribute("aria-multiselectable",-1!==["oneOrManyExtended","zeroOrMany","oneOrMany","checkBox","radioButton"].indexOf(e.selectionMode)),e.setAttribute("aria-orientation","vertical"),e.$.scrollViewer.onVerticalChange=e._verticalScrollbarHandler,e.isRendered||Object.defineProperty(e,"dataSource",{get:function(){return e.context===e?e.properties.dataSource.value:e._getDataSource()},set(t){e.updateProperty(e,e._properties.dataSource,t)}}),e.id||!e.autoLoadState&&!e.autoSaveState||(e.warn(e.localize("noId")),e.autoLoadState=!1,e.autoSaveState=!1),e.mode="tree",e._element="tree",e._isMobile=Smart.Utilities.Core.isMobile,e._edgeMacFF=!1,e._autoScrollCoefficient=Smart.Utilities.Core.Browser.Firefox?4:Smart.Utilities.Core.Browser.Edge?8:2,e._scrollViewerPadding=parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)||0,e._state={expanded:[],filter:"",selected:[]},e._dblclickObject={numberOfClicks:0},e.autoHideToggleElement&&e.$mainContainer.addClass("hidden-arrows"),e.disabled&&(e.$.scrollButtonNear.disabled=!0,e.$.scrollButtonFar.disabled=!0),"scrollbar"===e.scrollMode&&"scroll"===e.overflow&&(e.$.scrollViewer.verticalScrollBarVisibility="visible"),null===e.dataSource&&e.$.mainContainer.firstElementChild instanceof HTMLUListElement&&e._processUList(),e.isRendered)return e._menuItems={},void(null===e.dataSource?e._processHTML(e.$.mainContainer,1):e._processDataSource());const r=(e.shadowRoot||e).querySelectorAll("smart-tree-item, smart-tree-items-group"),n=function(){let t;e.autoLoadState&&(t=window.localStorage.getItem("smartTree"+e.id),t&&(t=JSON.parse(t),e.sorted=t.sorted)),e._setFocusable(),e._menuItems={},null===e.dataSource?e._processHTML(e.$.mainContainer,1):e._processDataSource(),"scrollButtons"!==e.scrollMode&&"hidden"!==e.overflow||e.$.scrollViewer.$.verticalScrollBar.setAttribute("aria-hidden",!0),"scrollButtons"===e.scrollMode&&"scroll"===e.overflow&&(e.$scrollViewer.addClass("scroll-buttons-shown"),e.$scrollButtonNear.removeClass("smart-hidden"),e.$scrollButtonFar.removeClass("smart-hidden"),e._updateScrollButtonVisibility()),e._checkOverflow(),t&&e._autoLoadState(t),e._expandItemsByDefault(),e._applySelection(!0),e._updateState("sorted",e.sorted),e.displayLoadingIndicator&&e.$loadingIndicatorContainer.removeClass("smart-hidden"),"center"!==e.loadingIndicatorPosition&&e.$loadingIndicatorPlaceHolder.removeClass("smart-hidden"),e.__onCompleted&&(e._onCompleted=e.__onCompleted,e.__onCompleted=null,e._onCompleted())};0===r.length||e.enableShadowDOM||e.isInShadowDOM?n():(e._onCompleted&&(e.__onCompleted=e._onCompleted,e._onCompleted=null),e._ensureItemsReady(r,n))}appendChild(e){const t=this;if(!t.isCompleted){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.appendChild.apply(t,e.concat(Array.prototype.slice.call(arguments)))}t.$.mainContainer&&t.$.mainContainer.appendChild(e)}_dblclickHandler(e,t,r){"dblclick"!==this.toggleMode||e instanceof Smart.TreeItem||t||this._menuItemsGroupSelectionHandler(e,r)}_discardKeyboardHover(e,t){const r=this;!t&&r._hoveredViaKeyboard&&(!e&&r._hoveredViaKeyboard instanceof Smart.MenuItemsGroup&&r._isContainerOpened(r._hoveredViaKeyboard.level+1,r._hoveredViaKeyboard.container)||(r._hoveredViaKeyboard.removeAttribute("focus"),r._hoveredViaKeyboard=void 0))}_documentUpHandler(e){if("pointercancel"===e.originalEvent.type)return;const t=this,r=t._downTimeoutInfo,n=t._dragDetails;!r||n&&n.FeedbackShown||(clearTimeout(r.timeout),t.$.scrollViewer.scrollTop!==r.scrollTop&&t.getBoundingClientRect().top===r.top||t._continueSelection(r.target,r.event)),delete t._downTimeoutInfo;const l=t._downItem,a=t.isInShadowDOM?e.originalEvent.composedPath()[0]:e.originalEvent.target;if(delete t._downItem,t._editedItem&&!t._editInputDown&&(!t._isMobile&&a!==t.$.editInput||t._isMobile&&t.getRootNode().elementFromPoint(e.clientX,e.clientY)!==t.$.editInput))return void t._endEditing();if(delete t._editInputDown,l){const r=a.closest("smart-tree-item")||a.closest("smart-tree-items-group");!r||!r.selected||r!==l||t._dragDetails&&t._dragDetails.FeedbackShown||r instanceof Smart.TreeItemsGroup&&(a.closest(".smart-tree-items-group-arrow")||a===r.container||a===r.container.firstElementChild)||t._handleSelection(r,e)}if(!n)return;const o=Smart.Tree.hoveredTree,s=Smart.Tree.hoveredItem;if(delete t._dragDetails,delete Smart.Tree.treeItemDragged,delete Smart.Tree.hoveredTree,delete Smart.Tree.hoveredItem,t.$.scrollViewer._scrollView.disableSwipeScroll=!1,!n.FeedbackShown)return;const i=o||t.getRootNode().elementFromPoint(e.clientX,e.clientY);let d;document.body.classList.remove("smart-dragging"),document.body.removeChild(n.Feedback),o&&clearInterval(o._dragInterval);const c=n.Item,m=n.Items,u=n.ValidItems;if(!i)return;if(!s||c.contains(s))return void t.$.fireEvent("dragEnd",{item:c,items:m,target:i,data:n,previousContainer:t,container:o||i,originalEvent:e});if(!o||!o.allowDrop||o.disabled)return;const p=[o];let h;if(s.classList.remove("drop-target"),s.classList.contains("top")?(s.classList.remove("top"),h="top",d=0):s.classList.contains("bottom")?(s.classList.remove("bottom"),h="bottom",d=2):(h="inside",d=1),n.DropDetails={item:s,position:h},o!==t)p.push(t);else if(n.ValidateOnDrop)for(let e=0;e<u.length;e++)if(u[e].contains(s))return;if(!t.$.fireEvent("dragEnd",{item:c,items:m,target:s,data:n,previousContainer:t,container:o,originalEvent:e}).defaultPrevented){o.sorted&&o.autoSort&&o._unsortItems(o.$.mainContainer);for(let e=0;e<u.length;e++)t._moveTreeItem(u[e],s,d,p);o.sorted&&o.autoSort&&o._applyGrouping(o.$.mainContainer),o!==t&&o._state.filter&&o._applyFilter(o._state.filter)}}_editInputBlurHandler(){this._endEditing()}_endEditing(e){const t=this,r=t._editedItem;if(!r)return;if(delete t._editedItem,t.$editInput.addClass("smart-hidden"),t.focus(),e)return;const n=t.$.editInput.value,l=t.sorted&&t.autoSort,a=t._state.filter;n!==r.label&&(r.set("label",n),r.setAttribute("aria-label",n),r.firstElementChild.firstElementChild.firstElementChild.innerHTML=n,l&&(t._unsortItems(t.$.mainContainer),t._applyGrouping(t.$.mainContainer)),a&&t._applyFilter(a))}_ensureVisible(e){const t=this;t._ensureVisibleTreeMode(e,e.getBoundingClientRect(),t.$.scrollViewer,t.$.scrollViewer.getBoundingClientRect(),t._scrollViewerPadding),t._ensureVisibleCallback&&t._ensureVisibleCallback(e)}_pointeroverHandler(e){const t=(this.isInShadowDOM?e.composedPath()[0]:e.target).closest(".smart-tree-item-label-element>span");if(!t)return;const r=this.$.container.querySelector(".tooltip");r&&(r.classList.remove("tooltip"),r.removeAttribute("title")),t.scrollWidth>t.offsetWidth&&(t.classList.add("tooltip"),t.title=t.innerText)}getFilter(){return this.$.filterInput.value}_filterInputKeyupHandler(e){const t=this;if(t._filterTimer&&clearTimeout(t._filterTimer),t.filterOnEnter){if("Enter"!==e.key)return;{const e=t.context;t.context=t,t._applyFilter(t.$.filterInput.value,t._view),t.$.fireEvent("filterChange",{value:t.$.filterInput.value}),t._checkOverflow(),t.context=e}}t._filterTimer=setTimeout((function(){const e=t.context;t.context=t,t._applyFilter(t.$.filterInput.value,t._view),t.$.fireEvent("filterChange",{value:t.$.filterInput.value}),t._checkOverflow(),t.context=e}),300)}_filterInputKeydownHandler(e){if("PageDown"!==e.key)return void("PageUp"===e.key&&(e.preventDefault(),e.stopPropagation()));const t=this;let r;if(e.preventDefault(),e.stopPropagation(),t.selectedIndexes.length>0){const e=t.selectedIndexes.slice(0);r=t._lastSelectedItem||t._menuItems[t.selectedIndexes[t.selectedIndexes.length-1]],"checkBox"!==t.selectionMode&&"radioButton"!==t.selectionMode&&(t.selectedIndexes=[r.path],t._applySelection(!1,e)),t.focus()}else r=t._getFirstEnabledChild(t.$.mainContainer),t.focus(),r&&t._hoverViaKeyboard(r);t._ensureVisible(r)}_focusHandler(){const e=this;e.selectedIndexes.length>0&&!e._hoveredViaKeyboard&&(e._lastSelectedItem?e._hoverViaKeyboard(e._lastSelectedItem,!1,void 0,!1):e._hoverViaKeyboard(e._menuItems[e.selectedIndexes[e.selectedIndexes.length-1]],!1,void 0,!1))}_getDataSource(){const e=[];return function e(t,r){for(let n=0;n<t.length;n++){const l=t[n],a={label:l.label};l.disabled&&(a.disabled=!0),l.selected&&(a.selected=!0),l.separator&&(a.separator=!0),null!==l.value&&(a.value=l.value),l instanceof Smart.TreeItem?l.shortcut&&(a.shortcut=l.shortcut):(l.expanded&&(a.expanded=!0),a.items=[],l.itemContainer&&l.itemContainer.children&&e(l.itemContainer.children,a.items)),r.push(a)}}(this.$.mainContainer.children,e),e}_handleHierarchicalSelection(e,t){const r=this;let n=e;for(e.selected?(e.set("selected",!1),e.setAttribute("aria-selected",!1)):(e.set("selected",!0),e.setAttribute("aria-selected",!0),e.removeAttribute("indeterminate"));n.parentItem;){const e=n.parentItem,t=e.itemContainer.children;let l=0,a=0;for(let e=0;e<t.length;e++)t[e].selected?l++:t[e].hasAttribute("indeterminate")&&a++;r._setThreeStateCheckbox(e,l,a),n=e}e instanceof Smart.TreeItemsGroup&&function e(t,r){const n=t.itemContainer.children;for(let t=0;t<n.length;t++){const l=n[t];l.set("selected",r),l.setAttribute("aria-selected",r),l.removeAttribute("indeterminate"),l instanceof Smart.TreeItemsGroup&&e(l,r)}}(e,e.selected),t.length=0;const l=Array.from((r.enableShadowDOM?r.shadowRoot:r).querySelectorAll("[selected]"));for(let e=0;e<l.length;e++)t.push(l[e].path);r._sortPathCollection(t)}_handleSelection(e,t){const r=this,n=r.selectionMode;if("none"===n||"programmatic"!==t.type&&!r._canItemBeSelected(e))return;const l=e.selected;if(l&&"down"===t.type)return;const a=r.selectedIndexes.slice(0);let o=a.slice(0);switch(n){case"one":case"zeroAndOne":if(l)return;r._menuItems[o[0]]&&(r._menuItems[o[0]].set("selected",!1),r._menuItems[o[0]].removeAttribute("aria-selected")),r.selectedIndexes=[e.path],e.set("selected",!0),e.setAttribute("aria-selected",!0),r._lastSelectedItem=e;break;case"zeroOrOne":l?(r.selectedIndexes=[],e.set("selected",!1),e.removeAttribute("aria-selected")):(void 0!==o[0]&&(r._menuItems[o[0]].set("selected",!1),r._menuItems[o[0]].removeAttribute("aria-selected")),r.selectedIndexes=[e.path],e.set("selected",!0),e.setAttribute("aria-selected",!0));break;case"oneOrMany":case"zeroOrMany":if(l){if(1===o.length&&"zeroOrMany"!==n)return;o.splice(o.indexOf(e.path),1),e.set("selected",!1),e.setAttribute("aria-selected",!1)}else o.push(e.path),r._sortPathCollection(o),e.set("selected",!0),e.setAttribute("aria-selected",!0);r.selectedIndexes=o;break;case"oneOrManyExtended":{const n=t.ctrlKey||t.metaKey,l=t.shiftKey;if(!n&&!l||l&&e===r._lastSelectedItem){for(let e=0;e<o.length;e++)r._menuItems[o[e]].set("selected",!1),r._menuItems[o[e]].setAttribute("aria-selected",!1);o=[e.path],e.set("selected",!0),e.setAttribute("aria-selected",!0),r._lastSelectedItem=e}else if(n)e.selected&&o.length>1?(o.splice(o.indexOf(e.path),1),e.set("selected",!1),e.setAttribute("aria-selected",!1)):e.selected||(o.push(e.path),r._sortPathCollection(o),e.set("selected",!0),e.setAttribute("aria-selected",!0),r._lastSelectedItem=e);else if(l){for(let e=0;e<o.length;e++)r._menuItems[o[e]].set("selected",!1),r._menuItems[o[e]].setAttribute("aria-selected",!1);o=r._selectItemRange(r._lastSelectedItem,e)}r.selectedIndexes=o;break}case"checkBox":r.hasThreeStates?r._handleHierarchicalSelection(e,o):l?(o.splice(o.indexOf(e.path),1),e.set("selected",!1),e.setAttribute("aria-selected",!1)):(o.push(e.path),r._sortPathCollection(o),e.set("selected",!0),e.setAttribute("aria-selected",!0)),r.selectedIndexes=o;break;case"radioButton":{if(e.selected)return;let t;for(let r=0;r<e.parentElement.children.length;r++){const n=e.parentElement.children[r];if(n.selected){t=n;break}}const n=o.indexOf(t.path);t.set("selected",!1),e.setAttribute("aria-selected",!1),e.set("selected",!0),e.setAttribute("aria-selected",!0),o.splice(n,1),o.push(e.path),r._sortPathCollection(o),r.selectedIndexes=o;break}}if(r._discardKeyboardHover(!0),r._hoverViaKeyboard(e,!1,void 0,!r._treeAnimationInProgress),r._updateState("selected"),JSON.stringify(a)!==JSON.stringify(r.selectedIndexes)){if(r.ownerElement&&!r.ownerElement.isRendered)return;r.$.fireEvent("change",{item:e,selectedIndexes:r.selectedIndexes,oldSelectedIndexes:a})}}_hoverViaKeyboard(e,t,r,n){if(!e)return;const l=this;e.setAttribute("focus",""),l._hoveredViaKeyboard=e,!1!==n&&l._ensureVisible(e),t&&l._handleSelection(e,r),l._hoverViaKeyboardCallback&&l._hoverViaKeyboardCallback(e)}_keydownHandler(e){const t=this,r=e.key;if(t._editedItem)return void("Enter"===r?t._endEditing():"Escape"===r&&t._endEditing(!0));if(t.getRootNode().activeElement!==t||-1===["ArrowDown","ArrowLeft","ArrowRight","ArrowUp","End","Enter","F2","Home","PageDown","PageUp"," "].indexOf(r)||t.disabled||t.displayLoadingIndicator)return;"Enter"!==r&&e.preventDefault();const n=Array.from(t.$.mainContainer.querySelectorAll("smart-tree-item, smart-tree-items-group")),l="one"===t.selectionMode||"oneOrManyExtended"===t.selectionMode&&!e.ctrlKey&&!e.metaKey,a=t.$.mainContainer.querySelector("[focus]");function o(r){for(let o=r;o<n.length;o++){const r=n[o];if(t._canItemBeHovered(r)){if(a){if(a===r)break;a.removeAttribute("focus")}t._hoverViaKeyboard(r,l,e);break}}}function s(r){for(let o=r;o>=0;o--){const r=n[o];if(t._canItemBeHovered(r)){if(a){if(a===r)break;a.removeAttribute("focus")}t._hoverViaKeyboard(r,l,e);break}}}function i(){a.level>1&&t._canItemBeSelected(a.parentItem)&&(a.removeAttribute("focus"),t._hoverViaKeyboard(a.parentItem,l,e))}let d;switch(r){case"ArrowDown":d=a?n.indexOf(a)+1:0,o(d);break;case"ArrowLeft":if(!a)return;if(a instanceof Smart.TreeItem)i();else{if(t._isContainerOpened(a.level+1,a.container))return void t._closeSubContainersTreeMode(a.level+1,a.container,!0,!0);i()}break;case"ArrowRight":if(!a||a instanceof Smart.TreeItem)return;if(t._isContainerOpened(a.level+1,a.container)){const r=t._getFirstEnabledChild(a.itemContainer);r&&(a.removeAttribute("focus"),t._hoverViaKeyboard(r,l,e))}else t._menuItemsGroupSelectionHandler(a,{target:a,type:"keydown"});break;case"ArrowUp":d=a?n.indexOf(a)-1:n.length-1,s(d);break;case"End":s(n.length-1);break;case"Enter":a&&a instanceof Smart.TreeItemsGroup&&t._menuItemsGroupSelectionHandler(a,{target:a,type:"keydown"});break;case"F2":t.editable&&t._startEditing(a);break;case"Home":o(0);break;case"PageDown":t._pageDownHandler(n,a,l,e);break;case"PageUp":t._pageUpHandler(n,a,l,e);break;case" ":a&&t._handleSelection(a,e)}}_mainContainerSwipeHandler(e){Smart.Tree.treeItemDragged&&e.stopPropagation()}_menuItemsGroupSelectionHandler(e,t,r){const n=this,l=n.toggleMode,a=!!t.originalEvent&&t.originalEvent.target.classList.contains("smart-tree-items-group-arrow"),o=e.container;if(n._waitAnimation&&n._treeAnimationInProgress)return;if("down"!==t.type||a||"dblclick"===l&&1!==n._dblclickObject.numberOfClicks||n._handleSelection(e,t),"down"===t.type&&!a&&("dblclick"===l&&2!==n._dblclickObject.numberOfClicks||"click"===l&&n._dblclickObject.numberOfClicks>1||"arrow"===l)||e.hiddenChildren)return;const s=o.level;let i=n.hasAnimation;if("keydown"===t.type&&n._discardKeyboardHover(),n._treeAnimationInProgress&&(o.removeEventListener("transitionend",n._transitionendHandlerExpand),o.removeEventListener("transitionend",n._transitionendHandlerCollapse)),n._isContainerOpened(s,o))n._closeSubContainersTreeMode(s,o,!0,!1!==r);else{if(n.$.fireEvent("expanding",{item:e,label:e.label,path:e.path,value:e.value,children:e.itemContainer.children}).defaultPrevented)return;if(n._handleSingleExpandMode(e),i&&("expand"!==t.type&&(n._ensureVisibleOnTransitionend=e),n._expandSection(o)),o.$.removeClass("smart-visibility-hidden"),"keydown"===t.type&&(e.setAttribute("focus",""),n._hoveredViaKeyboard=e),e.$.addClass("smart-tree-items-group-opened"),e.$.addClass("smart-tree-items-group-expanded"),n._addOpenedContainer(s,o),void 0===t.type&&n._hoverViaKeyboard(n._getFirstEnabledChild(e.itemContainer)),!1!==r){const t={item:e,label:e.label,path:e.path,value:e.value,children:e.itemContainer.children};n.toggleCallback?(t.type="expand",n.toggleCallback(t)):n.$.fireEvent("expand",t)}}i||(n._checkOverflow(),"expand"!==t.type&&n._ensureVisible(e))}_handleSingleExpandMode(e){const t=this;if("single"!==t.expandMode)return;const r=e.parentItem,n=t._state.expanded.map((e=>Object.values(t._menuItems).find((t=>t.id===e)))).filter((e=>e.parentItem===r));n.length>0&&n.forEach((e=>t.collapseItem(e)))}_mouseenterHandler(){const e=this;e.autoHideToggleElement&&e.$mainContainer.removeClass("hidden-arrows"),Smart.Tree.treeItemDragged&&e.allowDrop&&!e.disabled&&(Smart.Tree.hoveredTree=e)}_mouseleaveHandler(){const e=this;if(e.autoHideToggleElement&&e.$mainContainer.addClass("hidden-arrows"),Smart.Tree.treeItemDragged){Smart.Tree.hoveredTree&&(clearInterval(Smart.Tree.hoveredTree._dragInterval),delete Smart.Tree.hoveredTree);const e=Smart.Tree.hoveredItem;e&&(e.classList.remove("drop-target"),e.classList.remove("top"),e.classList.remove("bottom"),delete Smart.Tree.hoveredItem)}}_moveHandler(e){const t=this,r=t._dragDetails;if(!r)return;if(!r.FeedbackShown){if(!(Math.abs(r.StartPosition.left-e.pageX)>5||Math.abs(r.StartPosition.top-e.pageY)>5))return;if(t.$.fireEvent("dragStart",{item:r.Item,items:r.Items,data:r,container:t,previousContainer:t,originalEvent:r.OriginalEvent}).defaultPrevented)return delete t._dragDetails,delete Smart.Tree.treeItemDragged,delete Smart.Tree.hoveredTree,delete Smart.Tree.hoveredItem,void(t.$.scrollViewer._scrollView.disableSwipeScroll=!1);document.body.classList.add("smart-dragging"),r.Feedback=t._addDragFeedback(),r.FeedbackShown=!0}const n=t.dragOffset;let l,a,o;if(t.$.fireEvent("dragging",{item:r.Item,items:r.Items,data:r,originalEvent:e}),r.Feedback.style.left=e.pageX+n[0]+"px",r.Feedback.style.top=e.pageY+n[1]+"px",t._isMobile){const r=Smart.Tree.hoveredItem;r&&(r.classList.remove("drop-target"),r.classList.remove("top"),r.classList.remove("bottom"),delete Smart.Tree.hoveredItem);const n=t.getRootNode().elementFromPoint(e.clientX,e.clientY);Smart.Tree.hoveredTree&&(clearInterval(Smart.Tree.hoveredTree._dragInterval),delete Smart.Tree.hoveredTree),n&&(l=n.closest("smart-tree"),l&&l.allowDrop&&(Smart.Tree.hoveredTree=l,a=n.closest("smart-tree-item")||n.closest("smart-tree-items-group"),a?o=a:a=n))}if(l=Smart.Tree.hoveredTree,!l)return;const s=l.filterable?l.$.filterInput.offsetHeight+10:0;if(clearInterval(l._dragInterval),l._dragInterval=setInterval((function(){const r=l.getBoundingClientRect();l.$.scrollViewer.scrollHeight>0&&r.left<=e.clientX&&r.left+r.width>=e.clientX?e.clientY>=r.top+s&&e.clientY<=r.top+20+s?(l.$.scrollViewer.scrollTop-=t._autoScrollCoefficient,"scrollButtons"===l.scrollMode&&l._updateScrollButtonVisibility()):e.clientY>=r.top+r.height-20&&e.clientY<=r.top+r.height?(l.$.scrollViewer.scrollTop+=t._autoScrollCoefficient,"scrollButtons"===l.scrollMode&&l._updateScrollButtonVisibility()):clearInterval(l._dragInterval):clearInterval(l._dragInterval)}),1),t._isMobile||(a=e.originalEvent.target,a&&a.enableShadowDOM&&(a=e.originalEvent.composedPath()[0]),a&&a.closest&&(o=a.closest("smart-tree-item")||a.closest("smart-tree-items-group"))),o){if(Smart.Tree.hoveredItem&&o!==Smart.Tree.hoveredItem&&(Smart.Tree.hoveredItem.classList.remove("drop-target"),Smart.Tree.hoveredItem.classList.remove("top"),Smart.Tree.hoveredItem.classList.remove("bottom")),Smart.Tree.hoveredItem=o,r.Item.contains(o))return;const t=o.getBoundingClientRect();o instanceof Smart.TreeItem?e.clientY-t.top<=t.height/2?(o.classList.remove("bottom"),o.classList.add("top")):(o.classList.remove("top"),o.classList.add("bottom")):e.clientY-t.top<=10?(o.classList.remove("bottom"),o.classList.add("top")):!o.expanded&&t.bottom-e.clientY<=10?(o.classList.remove("top"),o.classList.add("bottom")):(o.classList.remove("top"),o.classList.remove("bottom")),o.classList.add("drop-target")}else if(Smart.Tree.hoveredItem&&(Smart.Tree.hoveredItem.classList.remove("drop-target"),Smart.Tree.hoveredItem.classList.remove("top"),Smart.Tree.hoveredItem.classList.remove("bottom")),a===l.$.scrollViewer.$.scrollViewerContainer)if(l._menuItems[0]){let e=l.$.mainContainer.lastElementChild,t=l.$.mainContainer.childElementCount-1;for(;e.hidden&&(t--,e=l.$.mainContainer.children[t],e););if(e){if(r.Item===e)return;Smart.Tree.hoveredItem=e,Smart.Tree.hoveredItem.classList.add("bottom")}else Smart.Tree.hoveredItem=l.$.container;Smart.Tree.hoveredItem.classList.add("drop-target")}else Smart.Tree.hoveredItem=l.$.container,Smart.Tree.hoveredItem.classList.add("drop-target");else delete Smart.Tree.hoveredItem}_moveSubItems(e,t,r){const n=this;for(let l=0;l<e.length;l++){const a=e[l];a.menu=t,a.set("level",a.parentItem.level+1),a.firstElementChild.style.paddingLeft="",a.firstElementChild.style.paddingRight="",n._setIndentation(a.firstElementChild,a.level,r),a.hidden=!1,a.$.removeClass("smart-hidden"),a.$.removeClass("filtered-child"),a.$.removeClass("last-filtered-child"),a instanceof Smart.TreeItemsGroup&&(a.$.removeClass("hidden-children"),a.container.level=a.level+1,n._moveSubItems(a.itemContainer.children,t,r),t!==n&&a.expanded&&(t._menuItemsGroupsToExpand.push(a),n._updateState("expanded",a.id,!1)))}}_moveTreeItem(e,t,r,n){const l=this,a=e.level;if(0===r){if(t.previousElementSibling===e)return;t.parentElement.insertBefore(e,t),e.set("level",t.level),e.parentItem=t.parentItem}else if(2===r){if(t.nextElementSibling===e)return;t.parentElement.insertBefore(e,t.nextElementSibling||null),e.set("level",t.level),e.parentItem=t.parentItem}else if(t===n[0].$.container)n[0].$.mainContainer.appendChild(e),e.set("level",1),e.parentItem=void 0;else{if(t.itemContainer.lastElementChild===e)return;t.itemContainer.appendChild(e),e.set("level",t.level+1),e.parentItem=t}const o=n[0].rightToLeft?"paddingRight":"paddingLeft";if(e.menu=n[0],e.parentItem=e.parentElement.menuItemsGroup,e.firstElementChild.style.paddingLeft="",e.firstElementChild.style.paddingRight="",l._setIndentation(e.firstElementChild,e.level,o),e.hidden=!1,e.$.removeClass("smart-hidden"),e.$.removeClass("filtered-child"),e.$.removeClass("last-filtered-child"),e instanceof Smart.TreeItemsGroup&&(e.$.removeClass("hidden-children"),e.container.level=e.level+1,l._moveSubItems(e.itemContainer.children,n[0],o),e.expanded)){const t=l._openedContainers[a+1].indexOf(e.container);-1!==t&&l._openedContainers[a+1].splice(t,1),n[0]._menuItemsGroupsToExpand.push(e),2===n.length&&l._updateState("expanded",e.id,!1)}for(let e=0;e<n.length;e++){const t=n[e],r=t.context,l=t.selectedIndexes.slice(0);t.context=t,t._menuItems={},t._refreshItemPaths(t.$.mainContainer,!0,void 0,t.sorted&&!t.autoSort),t.selectedIndexes=[],t._applySelection(!0,l,!1),t._checkOverflow(),t.context=r}n[0]._expandItemsByDefault()}_overriddenMenuHandler(){}_pageDownHandler(e,t,r,n){const l=this,a=l.$.scrollViewer;function o(){for(let t=e.length-1;t>=0;t--){const r=e[t];if(l._canItemBeHovered(r)&&l._getOffsetTop(r)+r.firstElementChild.offsetHeight<=a.scrollTop+a.$.container.offsetHeight)return r}}if(!t)return;let s=o();s&&(t!==s?(t.removeAttribute("focus"),l._hoverViaKeyboard(s,r,n)):a.scrollTop+a.$.container.offsetHeight!==a.$.scrollViewerContentContainer.offsetHeight&&(l.$.scrollViewer.scrollTop+=a.$.container.offsetHeight,"scrollButtons"===l.scrollMode&&l._updateScrollButtonVisibility(),s=o(),t.removeAttribute("focus"),l._hoverViaKeyboard(s,r,n)))}_pageUpHandler(e,t,r,n){const l=this,a=l.$.scrollViewer;function o(){for(let t=0;t<e.length;t++){const r=e[t];if(l._canItemBeHovered(r)&&l._getOffsetTop(r)>=a.scrollTop)return r}}if(!t)return;let s=o();s&&(t!==s?(t.removeAttribute("focus"),l._hoverViaKeyboard(s,r,n)):0!==a.scrollTop?(l.$.scrollViewer.scrollTop-=a.$.container.offsetHeight,"scrollButtons"===l.scrollMode&&l._updateScrollButtonVisibility(),s=o(),t.removeAttribute("focus"),l._hoverViaKeyboard(s,r,n)):l.filterable&&l.$.filterInput.focus())}_refreshItemPathsAndSelection(){const e=this,t=e.selectedIndexes.slice(0);e._menuItems={},e._refreshItemPaths(e.$.mainContainer,!0),e.selectedIndexes=[],e._applySelection(!0,t)}_refreshSorting(){const e=this;e._unsortItems(e.$.mainContainer),e._applyGrouping(e.$.mainContainer);const t=e._state.filter;t&&e._applyFilter(t),e._checkOverflow()}_scroll(e){const t=this;t.$.scrollViewer.scrollTop=t.$.scrollViewer.scrollTop+10*e,t._updateScrollButtonVisibility(),t.focus()}_scrollButtonFarClickHandler(){this.$.scrollButtonFar.disabled||this._scroll(1)}_scrollButtonNearClickHandler(){this.$.scrollButtonNear.disabled||this._scroll(-1)}_scrollViewerDownHandler(e){const t=this;if(e.target!==t.$.scrollViewer||t.disabled||t.displayLoadingIndicator||!t._isMobile&&1!==e.which)return;const r=e.originalEvent.target;if(r!==t.$.editInput)if(t._isMobile){const n=t.$.scrollViewer.scrollTop,l=t.getBoundingClientRect().top,a=setTimeout((function(){if(!t._dragDetails&&t.$.scrollViewer.scrollTop===n&&t.getBoundingClientRect().top===l){const n=t.context;t.context=t,t._continueSelection(r,e),t.context=n}}),250);t._downTimeoutInfo={target:r,event:e,scrollTop:n,top:l,timeout:a}}else t._continueSelection(r,e);else t._editInputDown=!0}_continueSelection(e,t){const r=this,n=e.closest("smart-tree-item")||e.closest("smart-tree-items-group");if(!(n&&n.parentElement&&r._canItemBeSelected(n,!0)))return;const l=e.closest(".smart-tree-items-group-arrow");let a;if(n instanceof Smart.TreeItem)a="_handleSelection";else{if(e===n.container||e===n.container.firstElementChild)return;a="_menuItemsGroupSelectionHandler"}if(clearTimeout(r._dblclickTimeout),n!==r._dblclickObject.target&&(r._dblclickObject.numberOfClicks=0),r._dblclickObject.target=n,r._dblclickObject.numberOfClicks++,r._dblclickTimeout=setTimeout((function(){r._dblclickObject.numberOfClicks=0}),300),2===r._dblclickObject.numberOfClicks){if(r.editable)return void r._startEditing(n);r._dblclickHandler(n,l,t),r._dblclickObject.numberOfClicks=0}n.selected&&(r._downItem=n),r[a](n,t),r._discardKeyboardHover(!0),r._hoverViaKeyboard(n,!1,void 0,!1),l||r._startDragging(n,t)}_scrollViewerTouchmoveHandler(e){this._dragDetails&&e.cancelable&&(e.preventDefault(),e.stopPropagation())}_scrollViewerWheelHandler(){const e=this;"scrollButtons"===e.scrollMode&&"hidden"!==e.overflow&&e._updateScrollButtonVisibility()}_selectItemRange(e,t){const r=this,n=Array.from(r.$.mainContainer.querySelectorAll("smart-tree-item, smart-tree-items-group")),l=n.indexOf(e),a=n.indexOf(t),o=[];for(let e=Math.min(l,a);e<=Math.max(l,a);e++){const t=n[e];r._canItemBeHovered(t)&&(o.push(t.path),t.set("selected",!0))}return o}_selectstartHandler(e){this._dragDetails&&e.preventDefault()}_setFocusable(){super._setFocusable();const e=this;e.disabled||e.unfocusable?e.$.filterInput.tabIndex=-1:e.$.filterInput.removeAttribute("tabindex")}_setIndentation(e,t,r){const n=this;let l=n._paddingSize;void 0===l&&(l=parseFloat(getComputedStyle(n).getPropertyValue("--smart-tree-indent")),isNaN(l)?l=20:l+=4,n._paddingSize=l),e.style[r]=t*l-l/2+"px"}_setThreeStateCheckbox(e,t,r){t===e.itemContainer.childElementCount&&t>0?(e.removeAttribute("indeterminate"),e.set("selected",!0),e.setAttribute("aria-selected",!0)):0===t&&0===r?(e.removeAttribute("indeterminate"),e.set("selected",!1),e.setAttribute("aria-selected",!1)):(e.setAttribute("indeterminate",""),e.set("selected",!1),e.setAttribute("aria-selected",!1))}_sortItems(e){const t=this;if(!t.sorted)return;let r;e instanceof Smart.TreeItemsGroup?r=e.container.firstElementChild:e===t.$.mainContainer&&(r=e);let n=Array.from(r.children);if(t.sort){const r=t.sort(n,e);Array.isArray(r)&&(n=r)}else"asc"===t.sortDirection?n.sort((function(e,t){return e.label.localeCompare(t.label)})):n.sort((function(e,t){return t.label.localeCompare(e.label)}));for(let e=n.length-1;e>=0;e--)r.insertBefore(n[e],r.firstElementChild)}_sortPathCollection(e){e.sort((function(e,t){const r=e.split("."),n=t.split("."),l=Math.max(r.length,n.length);for(let e=0;e<l;e++){const t=parseFloat(r[e]),l=parseFloat(n[e]);if(isNaN(t))return-1;if(isNaN(l))return 1;if(t<l)return-1;if(t>l)return 1}}))}_startDragging(e,t){const r=this,n=r.selectionMode;if(!r.allowDrag||r._editedItem||"none"===n)return;const l=[],a=[];let o;if(-1!==["one","zeroAndOne","zeroOrOne","checkBox","radioButton"].indexOf(n))o=!1,l.push(e),a.push(e);else{o=!0;for(let e=0;e<r.selectedIndexes.length;e++)l.push(r._menuItems[r.selectedIndexes[e]]),a.push(l[e]);for(let e=0;e<l.length;e++){const t=l[e];if(-1!==a.indexOf(t))for(let e=a.length-1;e>=0;e--){const r=a[e];if(r===t)break;t.contains(r)&&a.splice(e,1)}}}r._dragDetails={StartPosition:{left:t.pageX,top:t.pageY},Items:l,ValidItems:a,Item:e,FeedbackShown:!1,ValidateOnDrop:o,OriginalEvent:t,StartTime:new Date,Dragging:!0},Smart.Tree.treeItemDragged=!0,r.$.scrollViewer._scrollView.disableSwipeScroll=!0,r.allowDrop&&(Smart.Tree.hoveredTree=r,Smart.Tree.hoveredItem=e)}_startEditing(e){const t=this,r=t.$.editInput;let n,l;if(!t._canItemBeSelected(e,!0))return;const a=e.firstElementChild,o=a.firstElementChild;t.rightToLeft?(n=function(){return a.offsetWidth-o.offsetLeft-o.offsetWidth},l="paddingRight"):(n=function(){return o.offsetLeft+parseFloat(window.getComputedStyle(a).borderLeftWidth)},l="paddingLeft"),e instanceof Smart.TreeItemsGroup?(r.style[l]=n()+(t.showLines?parseFloat(window.getComputedStyle(o.firstElementChild).paddingLeft):0)-1+"px",r.style.height=a.offsetHeight+"px"):(r.style[l]=e.offsetWidth+parseInt(a.style[l],10)-a.offsetWidth+parseFloat(window.getComputedStyle(o.firstElementChild).paddingLeft)-2+"px",r.style.height=e.offsetHeight+"px"),r.style.top=t._getOffsetTop(e)+"px",t.$editInput.removeClass("smart-hidden"),r.value=e.label,t._editedItem=e,r.setAttribute("aria-label","Edit item "+e.label),setTimeout((function(){r.focus()}),0)}_styleChangedHandler(e){e.detail.styleProperties&&e.detail.styleProperties["font-size"]&&this._checkOverflow()}_updateScrollButtonVisibility(){const e=this,t=e.overflow;if("scrollbar"===e.scrollMode||"hidden"===t)return;let r=!0,n=!0;if(0===Math.round(e.$.scrollViewer.scrollTop)&&(r=!1),Math.round(e.$.scrollViewer.$.scrollViewerContainer.offsetHeight+e.$.scrollViewer.scrollTop)>=Math.round(e.$.scrollViewer.$.scrollViewerContentContainer.offsetHeight)&&(n=!1),"auto"===t){if(r&&n)return e.$scrollButtonNear.removeClass("smart-hidden"),e.$scrollButtonFar.removeClass("smart-hidden"),e.$scrollViewer.removeClass("one-button-shown"),void e.$.scrollViewer.refresh();r?e.$scrollButtonNear.removeClass("smart-hidden"):e.$scrollButtonNear.addClass("smart-hidden"),n?e.$scrollButtonFar.removeClass("smart-hidden"):e.$scrollButtonFar.addClass("smart-hidden"),e.$scrollViewer.addClass("one-button-shown"),e.$.scrollViewer.refresh()}else"scroll"!==t||e.disabled||(e.$.scrollButtonNear.disabled=!r,e.$.scrollButtonFar.disabled=!n)}_updateState(e,t,r){const n=this;switch(e){case"expanded":{const e=n._state.expanded.indexOf(t);if(r&&-1===e)n._state.expanded.push(t);else{if(r||-1===e)return;n._state.expanded.splice(e,1)}break}case"filter":n._state.filter=void 0!==t?t:n.$.filterInput.value;break;case"selected":n._state.selected=[];for(let e=0;e<n.selectedIndexes.length;e++){const t=n._menuItems[n.selectedIndexes[e]];n._state.selected.push(t.id)}break;case"sorted":n._state.sorted=t}n.autoSaveState&&window.localStorage.setItem("smartTree"+n.id,JSON.stringify(n._state))}_verticalScrollbarHandler(){const e=this,t=e.$.verticalScrollBar,r=t.value;e.disabled||(t.max!==r?t.min!==r?(delete e._topReached,delete e._bottomReached):e._topReached||(e.$.fireEvent("scrollTopReached"),delete e._bottomReached,e._topReached=!0):e._bottomReached||(e.$.fireEvent("scrollBottomReached"),delete e._topReached,e._bottomReached=!0))}});
@@ -1,5 +1,5 @@
1
1
 
2
- /* Smart UI v18.0.1 (2024-01-23)
2
+ /* Smart UI v18.0.11 (2024-02-10)
3
3
  Copyright (c) 2011-2023 jQWidgets.
4
4
  License: https://htmlelements.com/license/ */ //
5
5
 
@@ -1,5 +1,5 @@
1
1
 
2
- /* Smart UI v18.0.1 (2024-01-23)
2
+ /* Smart UI v18.0.11 (2024-02-10)
3
3
  Copyright (c) 2011-2023 jQWidgets.
4
4
  License: https://htmlelements.com/license/ */ //
5
5
 
@@ -1,5 +1,5 @@
1
1
 
2
- /* Smart UI v18.0.1 (2024-01-23)
2
+ /* Smart UI v18.0.11 (2024-02-10)
3
3
  Copyright (c) 2011-2023 jQWidgets.
4
4
  License: https://htmlelements.com/license/ */ //
5
5