smart-webcomponents-react 17.0.0 → 17.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (551) hide show
  1. package/accordion/accordion.d.ts +0 -1
  2. package/accordion/accordion.esm.js +19 -10
  3. package/accordion/accordion.umd.js +8 -3
  4. package/accordion/accordionitem.d.ts +0 -1
  5. package/alertwindow/alertwindow.d.ts +0 -1
  6. package/alertwindow/alertwindow.esm.js +15 -9
  7. package/alertwindow/alertwindow.umd.js +4 -2
  8. package/array/array.d.ts +0 -1
  9. package/array/array.esm.js +15 -9
  10. package/array/array.umd.js +4 -2
  11. package/barcode/barcode.d.ts +0 -1
  12. package/barcode/barcode.esm.js +15 -9
  13. package/barcode/barcode.umd.js +4 -2
  14. package/breadcrumb/breadcrumb.d.ts +0 -1
  15. package/breadcrumb/breadcrumb.esm.js +15 -9
  16. package/breadcrumb/breadcrumb.umd.js +4 -2
  17. package/button/button.d.ts +0 -1
  18. package/button/button.esm.js +27 -12
  19. package/button/button.umd.js +16 -5
  20. package/button/buttongroup.d.ts +0 -1
  21. package/button/dropdownbutton.d.ts +0 -1
  22. package/button/multisplitbutton.d.ts +0 -1
  23. package/button/powerbutton.d.ts +0 -1
  24. package/button/radiobutton.d.ts +0 -1
  25. package/button/repeatbutton.d.ts +0 -1
  26. package/button/switchbutton.d.ts +0 -1
  27. package/button/togglebutton.d.ts +0 -1
  28. package/buttongroup/buttongroup.d.ts +0 -1
  29. package/buttongroup/buttongroup.esm.js +15 -9
  30. package/buttongroup/buttongroup.umd.js +4 -2
  31. package/calendar/calendar.d.ts +0 -1
  32. package/calendar/calendar.esm.js +15 -9
  33. package/calendar/calendar.umd.js +4 -2
  34. package/card/card.d.ts +0 -1
  35. package/card/card.esm.js +15 -9
  36. package/card/card.umd.js +4 -2
  37. package/card/cardview.d.ts +0 -1
  38. package/cardview/cardview.d.ts +0 -1
  39. package/cardview/cardview.esm.js +15 -9
  40. package/cardview/cardview.umd.js +4 -2
  41. package/carousel/carousel.d.ts +0 -1
  42. package/carousel/carousel.esm.js +15 -9
  43. package/carousel/carousel.umd.js +4 -2
  44. package/chart/chart.d.ts +0 -1
  45. package/chart/chart.esm.js +15 -9
  46. package/chart/chart.umd.js +4 -2
  47. package/chart/ganttchart.d.ts +0 -11
  48. package/chart/threedchart.d.ts +0 -1
  49. package/checkbox/checkbox.d.ts +0 -1
  50. package/checkbox/checkbox.esm.js +15 -9
  51. package/checkbox/checkbox.umd.js +4 -2
  52. package/checkinput/checkinput.d.ts +0 -1
  53. package/checkinput/checkinput.esm.js +15 -9
  54. package/checkinput/checkinput.umd.js +4 -2
  55. package/chip/chip.d.ts +0 -1
  56. package/chip/chip.esm.js +15 -9
  57. package/chip/chip.umd.js +4 -2
  58. package/colorinput/colorinput.d.ts +0 -1
  59. package/colorinput/colorinput.esm.js +15 -9
  60. package/colorinput/colorinput.umd.js +4 -2
  61. package/colorpanel/colorpanel.d.ts +0 -1
  62. package/colorpanel/colorpanel.esm.js +15 -9
  63. package/colorpanel/colorpanel.umd.js +4 -2
  64. package/colorpicker/colorpicker.d.ts +0 -1
  65. package/colorpicker/colorpicker.esm.js +15 -9
  66. package/colorpicker/colorpicker.umd.js +4 -2
  67. package/columnpanel/columnpanel.d.ts +0 -1
  68. package/columnpanel/columnpanel.esm.js +15 -9
  69. package/columnpanel/columnpanel.umd.js +4 -2
  70. package/combobox/combobox.d.ts +0 -1
  71. package/combobox/combobox.esm.js +23 -11
  72. package/combobox/combobox.umd.js +12 -4
  73. package/countryinput/countryinput.d.ts +0 -1
  74. package/countryinput/countryinput.esm.js +15 -9
  75. package/countryinput/countryinput.umd.js +4 -2
  76. package/customizationdialog/customizationdialog.d.ts +0 -1
  77. package/customizationdialog/customizationdialog.esm.js +15 -9
  78. package/customizationdialog/customizationdialog.umd.js +4 -2
  79. package/dateinput/dateinput.d.ts +0 -1
  80. package/dateinput/dateinput.esm.js +15 -9
  81. package/dateinput/dateinput.umd.js +4 -2
  82. package/daterangeinput/daterangeinput.d.ts +0 -1
  83. package/daterangeinput/daterangeinput.esm.js +15 -9
  84. package/daterangeinput/daterangeinput.umd.js +4 -2
  85. package/datetimepicker/datetimepicker.d.ts +0 -1
  86. package/datetimepicker/datetimepicker.esm.js +15 -9
  87. package/datetimepicker/datetimepicker.umd.js +4 -2
  88. package/dialogwindow/dialogwindow.d.ts +0 -1
  89. package/dialogwindow/dialogwindow.esm.js +15 -9
  90. package/dialogwindow/dialogwindow.umd.js +4 -2
  91. package/dockinglayout/dockinglayout.d.ts +0 -1
  92. package/dockinglayout/dockinglayout.esm.js +15 -9
  93. package/dockinglayout/dockinglayout.umd.js +4 -2
  94. package/dropdownbutton/dropdownbutton.d.ts +0 -1
  95. package/dropdownbutton/dropdownbutton.esm.js +15 -9
  96. package/dropdownbutton/dropdownbutton.umd.js +4 -2
  97. package/dropdownlist/dropdownlist.d.ts +0 -1
  98. package/dropdownlist/dropdownlist.esm.js +23 -11
  99. package/dropdownlist/dropdownlist.umd.js +12 -4
  100. package/editor/editor.d.ts +0 -1
  101. package/editor/editor.esm.js +15 -9
  102. package/editor/editor.umd.js +4 -2
  103. package/element/element.d.ts +0 -1
  104. package/element/element.esm.js +15 -9
  105. package/element/element.umd.js +4 -2
  106. package/fileupload/fileupload.d.ts +0 -1
  107. package/fileupload/fileupload.esm.js +15 -9
  108. package/fileupload/fileupload.umd.js +4 -2
  109. package/filterbuilder/filterbuilder.d.ts +0 -1
  110. package/filterbuilder/filterbuilder.esm.js +15 -9
  111. package/filterbuilder/filterbuilder.umd.js +4 -2
  112. package/filterpanel/filterpanel.d.ts +0 -1
  113. package/filterpanel/filterpanel.esm.js +15 -9
  114. package/filterpanel/filterpanel.umd.js +4 -2
  115. package/filterpanel/multicolumnfilterpanel.d.ts +0 -1
  116. package/form/form.d.ts +0 -1
  117. package/form/form.esm.js +23 -11
  118. package/form/form.umd.js +12 -4
  119. package/form/formcontrol.d.ts +0 -1
  120. package/form/formgroup.d.ts +0 -1
  121. package/ganttchart/ganttchart.d.ts +0 -11
  122. package/ganttchart/ganttchart.esm.js +16 -32
  123. package/ganttchart/ganttchart.umd.js +5 -25
  124. package/gauge/gauge.d.ts +0 -1
  125. package/gauge/gauge.esm.js +15 -9
  126. package/gauge/gauge.umd.js +4 -2
  127. package/grid/grid.d.ts +0 -1
  128. package/grid/grid.esm.js +15 -9
  129. package/grid/grid.umd.js +4 -2
  130. package/grouppanel/grouppanel.d.ts +0 -1
  131. package/grouppanel/grouppanel.esm.js +15 -9
  132. package/grouppanel/grouppanel.umd.js +4 -2
  133. package/index.d.ts +1 -11
  134. package/input/checkinput.d.ts +0 -1
  135. package/input/colorinput.d.ts +0 -1
  136. package/input/countryinput.d.ts +0 -1
  137. package/input/dateinput.d.ts +0 -1
  138. package/input/daterangeinput.d.ts +0 -1
  139. package/input/input.d.ts +0 -1
  140. package/input/input.esm.js +15 -9
  141. package/input/input.umd.js +4 -2
  142. package/input/multicomboinput.d.ts +0 -1
  143. package/input/multiinput.d.ts +0 -1
  144. package/input/numberinput.d.ts +0 -1
  145. package/input/passwordinput.d.ts +0 -1
  146. package/input/phoneinput.d.ts +0 -1
  147. package/input/timeinput.d.ts +0 -1
  148. package/kanban/kanban.d.ts +0 -1
  149. package/kanban/kanban.esm.js +15 -9
  150. package/kanban/kanban.umd.js +4 -2
  151. package/layout/dockinglayout.d.ts +0 -1
  152. package/layout/layout.d.ts +0 -1
  153. package/layout/layout.esm.js +31 -13
  154. package/layout/layout.umd.js +20 -6
  155. package/layout/layoutgroup.d.ts +0 -1
  156. package/layout/layoutitem.d.ts +0 -1
  157. package/layout/tablayoutgroup.d.ts +0 -1
  158. package/layout/tablayoutitem.d.ts +0 -1
  159. package/led/led.d.ts +0 -1
  160. package/led/led.esm.js +15 -9
  161. package/led/led.umd.js +4 -2
  162. package/listbox/listbox.d.ts +0 -1
  163. package/listbox/listbox.esm.js +23 -11
  164. package/listbox/listbox.umd.js +12 -4
  165. package/listmenu/listmenu.d.ts +0 -1
  166. package/listmenu/listmenu.esm.js +23 -11
  167. package/listmenu/listmenu.umd.js +12 -4
  168. package/map/map.d.ts +0 -1
  169. package/map/map.esm.js +15 -9
  170. package/map/map.umd.js +4 -2
  171. package/maskedtextbox/maskedtextbox.d.ts +0 -1
  172. package/maskedtextbox/maskedtextbox.esm.js +15 -9
  173. package/maskedtextbox/maskedtextbox.umd.js +4 -2
  174. package/menu/listmenu.d.ts +0 -1
  175. package/menu/menu.d.ts +0 -1
  176. package/menu/menu.esm.js +23 -11
  177. package/menu/menu.umd.js +12 -4
  178. package/menu/menuitem.d.ts +0 -1
  179. package/menu/menuitemsgroup.d.ts +0 -1
  180. package/multicolumnfilterpanel/multicolumnfilterpanel.d.ts +0 -1
  181. package/multicolumnfilterpanel/multicolumnfilterpanel.esm.js +15 -9
  182. package/multicolumnfilterpanel/multicolumnfilterpanel.umd.js +4 -2
  183. package/multicomboinput/multicomboinput.d.ts +0 -1
  184. package/multicomboinput/multicomboinput.esm.js +15 -9
  185. package/multicomboinput/multicomboinput.umd.js +4 -2
  186. package/multiinput/multiinput.d.ts +0 -1
  187. package/multiinput/multiinput.esm.js +15 -9
  188. package/multiinput/multiinput.umd.js +4 -2
  189. package/multilinetextbox/multilinetextbox.d.ts +0 -1
  190. package/multilinetextbox/multilinetextbox.esm.js +23 -11
  191. package/multilinetextbox/multilinetextbox.umd.js +12 -4
  192. package/multilinewindow/multilinewindow.d.ts +0 -1
  193. package/multilinewindow/multilinewindow.esm.js +15 -9
  194. package/multilinewindow/multilinewindow.umd.js +4 -2
  195. package/multisplitbutton/multisplitbutton.d.ts +0 -1
  196. package/multisplitbutton/multisplitbutton.esm.js +23 -11
  197. package/multisplitbutton/multisplitbutton.umd.js +12 -4
  198. package/numberinput/numberinput.d.ts +0 -1
  199. package/numberinput/numberinput.esm.js +15 -9
  200. package/numberinput/numberinput.umd.js +4 -2
  201. package/numerictextbox/numerictextbox.d.ts +0 -1
  202. package/numerictextbox/numerictextbox.esm.js +15 -9
  203. package/numerictextbox/numerictextbox.umd.js +4 -2
  204. package/package.json +2 -1
  205. package/pager/pager.d.ts +0 -1
  206. package/pager/pager.esm.js +15 -9
  207. package/pager/pager.umd.js +4 -2
  208. package/passwordinput/passwordinput.d.ts +0 -1
  209. package/passwordinput/passwordinput.esm.js +15 -9
  210. package/passwordinput/passwordinput.umd.js +4 -2
  211. package/passwordtextbox/passwordtextbox.d.ts +0 -1
  212. package/passwordtextbox/passwordtextbox.esm.js +15 -9
  213. package/passwordtextbox/passwordtextbox.umd.js +4 -2
  214. package/path/path.d.ts +0 -1
  215. package/path/path.esm.js +15 -9
  216. package/path/path.umd.js +4 -2
  217. package/phoneinput/phoneinput.d.ts +0 -1
  218. package/phoneinput/phoneinput.esm.js +15 -9
  219. package/phoneinput/phoneinput.umd.js +4 -2
  220. package/pivottable/pivottable.d.ts +0 -1
  221. package/pivottable/pivottable.esm.js +15 -9
  222. package/pivottable/pivottable.umd.js +4 -2
  223. package/progressbar/circularprogressbar.d.ts +0 -1
  224. package/progressbar/progressbar.d.ts +0 -1
  225. package/progressbar/progressbar.esm.js +19 -10
  226. package/progressbar/progressbar.umd.js +8 -3
  227. package/progresswindow/progresswindow.d.ts +0 -1
  228. package/progresswindow/progresswindow.esm.js +15 -9
  229. package/progresswindow/progresswindow.umd.js +4 -2
  230. package/promptwindow/promptwindow.d.ts +0 -1
  231. package/promptwindow/promptwindow.esm.js +15 -9
  232. package/promptwindow/promptwindow.umd.js +4 -2
  233. package/qrcode/qrcode.d.ts +0 -1
  234. package/qrcode/qrcode.esm.js +15 -9
  235. package/qrcode/qrcode.umd.js +4 -2
  236. package/querybuilder/querybuilder.d.ts +0 -1
  237. package/querybuilder/querybuilder.esm.js +15 -9
  238. package/querybuilder/querybuilder.umd.js +4 -2
  239. package/radiobutton/radiobutton.d.ts +0 -1
  240. package/radiobutton/radiobutton.esm.js +15 -9
  241. package/radiobutton/radiobutton.umd.js +4 -2
  242. package/rating/rating.d.ts +0 -1
  243. package/rating/rating.esm.js +15 -9
  244. package/rating/rating.umd.js +4 -2
  245. package/ribbon/ribbon.d.ts +0 -1
  246. package/ribbon/ribbon.esm.js +27 -12
  247. package/ribbon/ribbon.umd.js +16 -5
  248. package/ribbon/ribbongroup.d.ts +0 -1
  249. package/ribbon/ribbonitem.d.ts +0 -1
  250. package/ribbon/ribbontab.d.ts +0 -1
  251. package/scheduler/scheduler.d.ts +0 -1
  252. package/scheduler/scheduler.esm.js +15 -9
  253. package/scheduler/scheduler.umd.js +4 -2
  254. package/scrollbar/scrollbar.d.ts +0 -1
  255. package/scrollbar/scrollbar.esm.js +15 -9
  256. package/scrollbar/scrollbar.umd.js +4 -2
  257. package/slider/slider.d.ts +0 -1
  258. package/slider/slider.esm.js +15 -9
  259. package/slider/slider.umd.js +4 -2
  260. package/sortable/sortable.d.ts +0 -1
  261. package/sortable/sortable.esm.js +15 -9
  262. package/sortable/sortable.umd.js +4 -2
  263. package/sortpanel/sortpanel.d.ts +0 -1
  264. package/sortpanel/sortpanel.esm.js +15 -9
  265. package/sortpanel/sortpanel.umd.js +4 -2
  266. package/source/modules/smart.3dchart.js +2 -2
  267. package/source/modules/smart.accordion.js +1 -1
  268. package/source/modules/smart.array.js +2 -2
  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 +2 -2
  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 +1 -1
  280. package/source/modules/smart.chip.js +1 -1
  281. package/source/modules/smart.colorinput.js +1 -1
  282. package/source/modules/smart.colorpanel.js +2 -2
  283. package/source/modules/smart.colorpicker.js +2 -2
  284. package/source/modules/smart.combobox.js +2 -2
  285. package/source/modules/smart.common.js +3 -3
  286. package/source/modules/smart.countryinput.js +1 -1
  287. package/source/modules/smart.dateinput.js +2 -2
  288. package/source/modules/smart.daterangeinput.js +3 -3
  289. package/source/modules/smart.datetimepicker.js +4 -4
  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 +2 -2
  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 +2 -2
  296. package/source/modules/smart.form.js +1 -1
  297. package/source/modules/smart.formulaparser.js +1 -1
  298. package/source/modules/smart.ganttchart.js +5 -5
  299. package/source/modules/smart.gauge.js +2 -2
  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 +1 -1
  303. package/source/modules/smart.kanban.js +6 -6
  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 +1 -1
  310. package/source/modules/smart.menu.js +1 -1
  311. package/source/modules/smart.multicomboinput.js +1 -1
  312. package/source/modules/smart.multiinput.js +1 -1
  313. package/source/modules/smart.multilinetextbox.js +2 -2
  314. package/source/modules/smart.multisplitbutton.js +2 -2
  315. package/source/modules/smart.numberinput.js +1 -1
  316. package/source/modules/smart.numerictextbox.js +2 -2
  317. package/source/modules/smart.pager.js +1 -1
  318. package/source/modules/smart.passwordinput.js +1 -1
  319. package/source/modules/smart.passwordtextbox.js +1 -1
  320. package/source/modules/smart.path.js +1 -1
  321. package/source/modules/smart.phoneinput.js +1 -1
  322. package/source/modules/smart.pivottable.js +4 -4
  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 +4 -4
  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 +6 -6
  331. package/source/modules/smart.scrollbar.js +1 -1
  332. package/source/modules/smart.slider.js +2 -2
  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 +2 -2
  339. package/source/modules/smart.textarea.js +1 -1
  340. package/source/modules/smart.textbox.js +2 -2
  341. package/source/modules/smart.timeinput.js +1 -1
  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 +1 -1
  346. package/source/modules/smart.validator.js +1 -1
  347. package/source/modules/smart.window.js +2 -2
  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 +1 -1
  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 +2 -2
  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 +2 -2
  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 +2 -2
  387. package/source/smart.editor.js +2 -2
  388. package/source/smart.element.js +1 -1
  389. package/source/smart.elements.js +17 -17
  390. package/source/smart.export.js +1 -1
  391. package/source/smart.fileupload.js +1 -1
  392. package/source/smart.filter.js +1 -1
  393. package/source/smart.filterbuilder.js +1 -1
  394. package/source/smart.filterpanel.js +1 -1
  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 +1 -1
  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 +1 -1
  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 +2 -2
  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 +2 -2
  413. package/source/smart.grid.resize.js +1 -1
  414. package/source/smart.grid.row.js +1 -1
  415. package/source/smart.grid.select.js +2 -2
  416. package/source/smart.grid.sort.js +2 -2
  417. package/source/smart.grid.toolbar.js +2 -2
  418. package/source/smart.grid.tree.js +1 -1
  419. package/source/smart.grid.view.js +2 -2
  420. package/source/smart.gridpanel.js +1 -1
  421. package/source/smart.input.js +1 -1
  422. package/source/smart.kanban.js +2 -2
  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 +2 -2
  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.splitter.js +1 -1
  457. package/source/smart.switchbutton.js +1 -1
  458. package/source/smart.table.js +1 -1
  459. package/source/smart.tabs.js +1 -1
  460. package/source/smart.tank.js +1 -1
  461. package/source/smart.textarea.js +1 -1
  462. package/source/smart.textbox.js +1 -1
  463. package/source/smart.tickintervalhandler.js +1 -1
  464. package/source/smart.timeinput.js +1 -1
  465. package/source/smart.timepicker.js +1 -1
  466. package/source/smart.toast.js +1 -1
  467. package/source/smart.tooltip.js +1 -1
  468. package/source/smart.tree.js +1 -1
  469. package/source/smart.validationpanel.js +1 -1
  470. package/source/smart.validator.js +1 -1
  471. package/source/smart.window.js +1 -1
  472. package/source/styles/components/smart.grid.css +1 -1
  473. package/source/styles/components/smart.kanban.css +1 -1
  474. package/source/styles/default/scss/smart.grid.scss +14 -3
  475. package/source/styles/default/scss/smart.kanban.scss +13 -2
  476. package/source/styles/default/smart.grid.css +15 -3
  477. package/source/styles/default/smart.kanban.css +1607 -1599
  478. package/source/styles/smart.default.css +2 -2
  479. package/source/typescript/smart.elements.d.ts +1 -11
  480. package/source/typescript/smart.ganttchart.d.ts +0 -10
  481. package/source/typescript/smart.ribbon.d.ts +1 -1
  482. package/splitter/splitter.d.ts +0 -1
  483. package/splitter/splitter.esm.js +23 -11
  484. package/splitter/splitter.umd.js +12 -4
  485. package/splitter/splitterbar.d.ts +0 -1
  486. package/splitter/splitteritem.d.ts +0 -1
  487. package/switchbutton/switchbutton.d.ts +0 -1
  488. package/switchbutton/switchbutton.esm.js +15 -9
  489. package/switchbutton/switchbutton.umd.js +4 -2
  490. package/table/pivottable.d.ts +0 -1
  491. package/table/sortable.d.ts +0 -1
  492. package/table/table.d.ts +0 -1
  493. package/table/table.esm.js +15 -9
  494. package/table/table.umd.js +4 -2
  495. package/tabs/tabs.d.ts +0 -1
  496. package/tabs/tabs.esm.js +23 -11
  497. package/tabs/tabs.umd.js +12 -4
  498. package/tabs/tabswindow.d.ts +0 -1
  499. package/tabswindow/tabswindow.d.ts +0 -1
  500. package/tabswindow/tabswindow.esm.js +15 -9
  501. package/tabswindow/tabswindow.umd.js +4 -2
  502. package/tank/tank.d.ts +0 -1
  503. package/tank/tank.esm.js +15 -9
  504. package/tank/tank.umd.js +4 -2
  505. package/textarea/textarea.d.ts +0 -1
  506. package/textarea/textarea.esm.js +15 -9
  507. package/textarea/textarea.umd.js +4 -2
  508. package/textbox/maskedtextbox.d.ts +0 -1
  509. package/textbox/multilinetextbox.d.ts +0 -1
  510. package/textbox/numerictextbox.d.ts +0 -1
  511. package/textbox/passwordtextbox.d.ts +0 -1
  512. package/textbox/textbox.d.ts +0 -1
  513. package/textbox/textbox.esm.js +23 -11
  514. package/textbox/textbox.umd.js +12 -4
  515. package/threedchart/threedchart.d.ts +0 -1
  516. package/threedchart/threedchart.esm.js +15 -9
  517. package/threedchart/threedchart.umd.js +4 -2
  518. package/timeinput/timeinput.d.ts +0 -1
  519. package/timeinput/timeinput.esm.js +15 -9
  520. package/timeinput/timeinput.umd.js +4 -2
  521. package/timepicker/datetimepicker.d.ts +0 -1
  522. package/timepicker/timepicker.d.ts +0 -1
  523. package/timepicker/timepicker.esm.js +15 -9
  524. package/timepicker/timepicker.umd.js +4 -2
  525. package/toast/toast.d.ts +0 -1
  526. package/toast/toast.esm.js +15 -9
  527. package/toast/toast.umd.js +4 -2
  528. package/tooltip/tooltip.d.ts +0 -1
  529. package/tooltip/tooltip.esm.js +15 -9
  530. package/tooltip/tooltip.umd.js +4 -2
  531. package/tree/tree.d.ts +0 -1
  532. package/tree/tree.esm.js +23 -11
  533. package/tree/tree.umd.js +12 -4
  534. package/tree/treeitem.d.ts +0 -1
  535. package/tree/treeitemsgroup.d.ts +0 -1
  536. package/validator/validator.d.ts +0 -1
  537. package/validator/validator.esm.js +15 -9
  538. package/validator/validator.umd.js +4 -2
  539. package/waitwindow/waitwindow.d.ts +0 -1
  540. package/waitwindow/waitwindow.esm.js +15 -9
  541. package/waitwindow/waitwindow.umd.js +4 -2
  542. package/window/alertwindow.d.ts +0 -1
  543. package/window/dialogwindow.d.ts +0 -1
  544. package/window/multilinewindow.d.ts +0 -1
  545. package/window/progresswindow.d.ts +0 -1
  546. package/window/promptwindow.d.ts +0 -1
  547. package/window/tabswindow.d.ts +0 -1
  548. package/window/waitwindow.d.ts +0 -1
  549. package/window/window.d.ts +0 -1
  550. package/window/window.esm.js +15 -9
  551. package/window/window.umd.js +4 -2
@@ -1,6 +1,6 @@
1
1
 
2
- /* Smart UI v17.0.3 (2023-10-20)
2
+ /* Smart UI v17.0.17 (2023-11-08)
3
3
  Copyright (c) 2011-2023 jQWidgets.
4
4
  License: https://htmlelements.com/license/ */ //
5
5
 
6
- Smart("smart-grid-toolbar",class extends Smart.DataView{template(){return'<div id="container" role="presentation">\n <div id="header" class="smart-data-view-header" role="toolbar">\n <div id="viewStatesButton" class="smart-data-view-header-button smart-data-view-states-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="ViewStates"><div class="smart-tool-label" role="presentation"></div></div>\n <div id="viewsButton" class="smart-data-view-header-button smart-data-view-views-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="Views"><div class="smart-tool-label" role="presentation"></div></div>\n <div id="customizeButton" class="smart-data-view-header-button smart-data-view-customize-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="Customize cards"><div class="smart-tool-label" role="presentation"></div></div>\n <div id="filterButton" class="smart-data-view-header-button smart-data-view-filter-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="Filter"><div class="smart-tool-label" role="presentation"></div></div>\n <div id="sortButton" class="smart-data-view-header-button smart-data-view-sort-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="Sort"><div class="smart-tool-label" role="presentation"></div></div>\n <div id="groupButton" class="smart-data-view-header-button smart-data-view-group-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="Group"><div class="smart-tool-label" role="presentation"></div></div>\n <div id="formatButton" class="smart-data-view-header-button smart-data-view-format-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="Format"><div class="smart-tool-label" role="presentation"></div></div>\n <div id="deleteButton" class="smart-data-view-header-button smart-data-view-delete-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="Delete"><div class="smart-tool-label" role="presentation"></div></div>\n <div id="customButton" class="smart-data-view-header-button smart-data-view-custom-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="Custom"><div class="smart-tool-label" role="presentation"></div></div>\n <div id="downloadButton" class="smart-data-view-header-button smart-data-view-download-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="Download"><div class="smart-tool-label" role="presentation"></div></div>\n <div id="searchButton" class="smart-data-view-header-button smart-data-view-search-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="Search"></div>\n <div id="headerDropDown" owner class="smart-data-view-header-drop-down smart-visibility-hidden" role="dialog">\n <div id="customize" class="smart-hidden" role="presentation"></div>\n <div id="filter" class="smart-hidden" role="presentation"></div>\n <div id="sort" class="smart-hidden" role="presentation"></div>\n <div id="group" class="smart-hidden" role="presentation"></div>\n <div id="format" class="smart-hidden" role="presentation"></div>\n <div id="search" class="smart-data-view-search-box smart-hidden" role="presentation">\n <input type="text" id="searchInput" spellcheck="false" aria-label="Search" />\n <div id="searchLabel" class="smart-data-view-search-label smart-unselectable"></div>\n <div id="searchPrev" class="smart-data-view-search-prev" role="button" aria-label="Previous"></div>\n <div id="searchNext" class="smart-data-view-search-next" role="button" aria-label="Next"></div>\n <div id="searchClose" class="smart-data-view-search-close" role="button" aria-label="Close search box"></div>\n </div>\n </div>\n </div>\n </div>'}_refreshMobileViewTools(){const e=this;e.grid.offsetWidth<600?e.querySelectorAll(".smart-tool-label").forEach((e=>{e.classList.add("smart-hidden")})):e.querySelectorAll(".smart-tool-label").forEach((e=>{e.classList.remove("smart-hidden")}))}refreshTools(){const e=this;if(e.isRendered&&e.grid&&(e._refreshMobileViewTools(),e.refreshHeaderDropDownPosition(),e.grid)){const t=e.grid;if(t.dataSource&&t.dataSource.boundSource){const a=t.dataSource&&t.dataSource.virtualDataSource&&!t.dataSource.virtualDataSourceOnExpand&&t.dataSource.length>t.virtualModeCachedRowsCount&&"infinite"!==t.scrolling;if(e.dataSource&&t.dataSource&&e.dataSource.length!==t.dataSource.length||a)if(a){const a=Array.isArray(t.dataSource.boundSource)?t.dataSource.boundSource:t.dataSource.boundSource.toArray();e.dataSource=new Smart.DataAdapter({observable:!1,dataSource:[...a],dataFields:t.dataSource.dataFields})}else e.dataSource=t.dataSource;const s=t=>{const a=t?"add":"remove";e.$.filterButton.classList[a]("smart-disabled"),e.$.sortButton.classList[a]("smart-disabled"),e.$.groupButton.classList[a]("smart-disabled"),e.$.formatButton.classList[a]("smart-disabled"),e.$.searchButton.classList[a]("smart-disabled"),e.$.downloadButton.classList[a]("smart-disabled")};s(e.dataSource&&0===e.dataSource.length),t.dataSource&&t.dataSource.virtualDataSource&&!t.dataSource.virtualDataSourceOnExpand&&"infinite"!==t.scrolling&&s(!1),0===t.columns.length?e.$.customizeButton.classList.add("smart-disabled"):e.$.customizeButton.classList.remove("smart-disabled")}}}get hasStyleObserver(){return!1}render(){const e=this;e._appliedFiltering={filters:[],operator:"and"},e._appliedSorting={dataFields:[],dataTypes:[],orderBy:[]},e._localizeHeader(),e._getInnerElementMessages(),super.render()}openFormatPanel(){const e=this,t=e.dataSource;if(!t||0===t.length||e.disabled||"none"===e.headerPosition)return;let a;if(e._refreshColumns("format"),e.grid.closeMenu(),e._editInfo&&e._editInfo.window.close(),e._closeDownloadMenu(),e._closeViewsMenu(),e.$.headerDropDown.classList.add("format-panel"),e.$.headerDropDown.classList.remove("customize-panel","sort-panel","search-panel","filter-panel"),e.$.format.classList.remove("smart-hidden"),e.$.customize.classList.add("smart-hidden"),e.$.sort.classList.add("smart-hidden"),e.$.filter.classList.add("smart-hidden"),e.$.group&&e.$.group.classList.add("smart-hidden"),e.$.search.classList.add("smart-hidden"),e._closeSearchPanel(),e._formatPartCreated)a=e.$.format.firstElementChild,a.columns=e.columns,a.dataSource=e.dataSource,a.locale=e.locale,a.messages=e._innerElementMessages.formattingPanel,a.rightToLeft=e.rightToLeft;else{a=document.createElement("smart-formatting-panel"),a.animation=e.animation,a.columns=e.columns,a.dataSource=e.dataSource,a.locale=e.locale,a.messages=e._innerElementMessages.formattingPanel,a.rightToLeft=e.rightToLeft,a.theme=e.theme,a.unfocusable=!1,a.ownerElement=e,a.dropDownAppendTo="body",e._formattingPanel=a,e.$.format.appendChild(a);const t=document.createElement("div");t.className="smart-format-panel smart-grid-panel-container-footer",t.setAttribute("role","presentation"),t.innerHTML=`<div id="buttonsContainer" class="smart-grid-panel-buttons-container smart-unselectable" role="presentation"><span class="smart-grid-panel-cancel-button" role="button">${e.localize("cancel")}</span><span class="smart-grid-panel-apply-button" role="button">${e.localize("apply")}</span></div>`,e._formattingPanel.$.apply=t.querySelector(".smart-grid-panel-apply-button"),e._formattingPanel.$.cancel=t.querySelector(".smart-grid-panel-cancel-button"),e.$.format.appendChild(t),e._formatPartCreated=!0,t.applyButton=t.querySelector(".smart-grid-panel-apply-button"),t.cancelButton=t.querySelector(".smart-grid-panel-cancel-button"),t.applyButton.onclick=()=>{a.$.fireEvent("apply"),e.grid._conditionalFormattingChanged=!0,e.grid._conditionalFormatting=a.apply(),e.grid.conditionalFormatting=a.getItems(),e.grid._recycle(!1),e.grid._conditionalFormattingChanged=!1},t.cancelButton.onclick=()=>{a.$.fireEvent("cancel")},e.grid.conditionalFormatting&&(a.items=e.grid.conditionalFormatting)}a.focus(),e._openHeaderDropDown(e.$.formatButton)}_openHeaderDropDown(e){const t=this;t.$.headerDropDown.parentElement!==document.body&&(document.body.appendChild(t.$.headerDropDown),t.$.headerDropDown.addEventListener("apply",(e=>{const a=t._getDropDownType();t._applyHandler(e),t.grid.$.fireEvent("batchChange",{type:a})})),t.$.headerDropDown.addEventListener("cancel",(()=>{const e=t._getDropDownType();t.closePanel(),t.grid.$.fireEvent("batchCancel",{type:e})}))),super._openHeaderDropDown(e),t.refreshHeaderDropDownPosition(e)}refreshHeaderDropDownPosition(e){const t=this;if(!t.$.headerDropDown||t.$.headerDropDown&&!t.$.headerDropDown.classList.contains("open"))return void(t._dropDownTarget=e);e?t._dropDownTarget=e:t._dropDownTarget&&(e=t._dropDownTarget);const a=t.grid.parentElement,s=a?a.scrollTop:0;t.$.headerDropDown.style.top=t.grid.offset(t.grid).top+t.grid.$.header.offsetHeight-s+"px";const o=()=>{if(e){const a=t.grid.offset(e);if(a.left+t.$.headerDropDown.offsetWidth<document.body.scrollLeft+document.body.offsetWidth?t.$.headerDropDown.style.left=a.left+"px":t.$.headerDropDown.style.left=document.body.scrollLeft+document.body.offsetWidth-t.$.headerDropDown.offsetWidth+"px",a.top+t.$.headerDropDown.offsetHeight>=document.documentElement.clientHeight-40){let e=t.grid.offset(t.grid).top-t.$.headerDropDown.offsetHeight;e<0&&(e=0),t.$.headerDropDown.style.top=e+"px"}}else t.$.headerDropDown.style.left=t.grid.offset(t.grid).left+"px"};t.grid.offsetWidth<600&&t.$.headerDropDown.offsetWidth>t.grid.offsetWidth?(t.$.headerDropDown.style.width="90%",t.$.headerDropDown.style.left=t.grid.offset(t.grid).left+"px"):(t.$.headerDropDown.style.width="",o())}openFilterPanel(e){const t=this,a=t.dataSource;t._refreshColumns("filter");const s=this.columns.map((e=>{const t=Object.assign({},e),s=a.dataFields.find((e=>e.name===t.dataField));return s&&(t.dataType=s.dataType),t})).filter((e=>e.allowFilter));if(super.openFilterPanel(s,null),t._closeDownloadMenu(),t._closeViewsMenu(),t.grid.closeMenu(),e){const a=t.$.headerDropDown.querySelector("smart-multi-column-filter-panel");a.$.itemsContainer.appendChild(a._createItem(t.columns.find((t=>t.dataField===e.dataField)),"string"===e.dataType?"CONTAINS":"EQUAL",""));const s=a.querySelectorAll(".smart-grid-panel-item");setTimeout((()=>{s[s.length-1].querySelector(".editor").focus()}),350)}}openSortPanel(e){const t=this,a=t.dataSource;t._refreshColumns("sort");const s=t.columns.map((e=>{const s=Object.assign({},e),o=t._appliedSorting.dataFields.indexOf(s.dataField),n=a.dataFields.find((e=>e.name===s.dataField));return n&&(s.dataType=n.dataType,s.sortIndex=o,-1!==o&&(s.sortDirection=t._appliedSorting.orderBy[o])),s})).filter((e=>e.allowSort));if(e&&t._appliedSorting&&-1===t._appliedSorting.dataFields.indexOf(e.dataField)){const a=s.find((t=>t.dataField===e.dataField));a.sortDirection="ascending",a.sortIndex=t._appliedSorting.dataFields.length}super.openSortPanel(s),t._closeDownloadMenu(),t._closeViewsMenu();const o=t.grid;o.closeMenu();const n=t.$.headerDropDown.querySelector("smart-sort-panel");if(!n)return;n.grid=o,n.$.maintainSortContainer.classList.remove("smart-hidden"),o.sorting.maintainSort?n.$.maintainSortContainer.firstElementChild.setAttribute("active",""):n.$.maintainSortContainer.firstElementChild.removeAttribute("active"),n._changeApplyButtonText();const i=n.$.inputNotSorted,r=()=>{const e=n.querySelectorAll(".smart-grid-panel-item");"many"===t.grid.sorting.mode||e.length<1?i.classList.remove("smart-visibility-hidden"):e.length>=1&&i.classList.add("smart-visibility-hidden")};n.onDataSourceChange=()=>{r()},r()}openCustomizePanel(){const e=this;if(e.disabled||"none"===e.headerPosition)return;e._closeDownloadMenu(),e._closeViewsMenu(),e._refreshColumns("customize");let t=e.columns;const a=e.grid;a.closeMenu(),a.appearance.showColumnGroupsInColumnPanel&&(t=[],a.columns.forEach((e=>{if(!e.columnGroup){const a={label:e.label,dataField:e.dataField,level:0,parentDataField:null,dataType:e.dataType||"string",columnGroup:e.columnGroup||null,allowHide:void 0===e.allowHide||e.allowHide,allowSort:void 0===e.allowSort||e.allowSort,allowFilter:void 0===e.allowFilter||e.allowFilter,allowGroup:void 0===e.allowGroup||e.allowGroup,visible:void 0===e.visible||e.visible};t.push(a)}})),a._columnGroups.forEach((e=>{const a={dataField:e.name,label:e.label,level:0,disableDrag:!0,disableToggle:!1,allowHide:!0};if(t.push(a),e.columns){let s=e.columns.length,o=0,n=[],i=[];e.columns.forEach((a=>{const r={label:a.label,dataField:a.dataField,level:1,parentDataField:e.name,dataType:a.dataType||"string",columnGroup:a.columnGroup||null,allowHide:void 0===a.allowHide||a.allowHide,allowSort:void 0===a.allowSort||a.allowSort,allowFilter:void 0===a.allowFilter||a.allowFilter,allowGroup:void 0===a.allowGroup||a.allowGroup,visible:void 0===a.visible||a.visible};!1===r.allowHide&&(s--,i.push(r.dataField)),r.visible||(o++,n.push(r.dataField)),t.push(r)})),s<=0&&(a.allowHide=!1,a.disableToggle=!0),e.columns.length===o||s===o&&i.toString()!==n.toString()?a.visible=!1:a.visible=!0}})));const s=e.$.customize,o=t.map((t=>{const a={};return a.visible=t.visible,a.label=t.label,a.dataField=t.dataField,-1!==[e.coverField,e.titleField].indexOf(a.dataField)?a.disableToggle=!0:a.disableToggle=!1,void 0!==t.level&&(a.level=t.level),t.disableDrag&&(a.disableDrag=!0),t.parentDataField&&(a.parentDataField=t.parentDataField),t.allowHide||(a.disableToggle=!0),a}));let n;if(e._closeDialog(),e.$.headerDropDown.classList.add("customize-panel"),e.$.headerDropDown.classList.remove("filter-panel","sort-panel","search-panel","group-panel","format-panel"),s.classList.remove("smart-hidden"),e.$.filter.classList.add("smart-hidden"),e.$.sort.classList.add("smart-hidden"),e.$.search.classList.add("smart-hidden"),e.$.group.classList.add("smart-hidden"),e.$.format.classList.add("smart-hidden"),e._closeSearchPanel(),e._customizePartCreated)n=s.querySelector("smart-column-panel"),n.locale=e.locale,n.messages=e._innerElementMessages.columnPanel,n.set("dataSource",o),n.propertyChangedHandler("dataSource",void 0,o),n.rightToLeft=e.rightToLeft;else{const t=document.createDocumentFragment(),a=document.createElement("smart-column-panel");a.rightToLeft=e.rightToLeft,a.animation=e.animation,a.dataSource=o,a.locale=e.locale,a.messages=e._innerElementMessages.columnPanel,a.theme=e.theme,t.appendChild(a),e.$.customize.appendChild(t),e._customizePartCreated=!0}e._changedVisibility=new Map,e._openHeaderDropDown(e.$.customizeButton)}_applyFilter(e,t){const a=this;a.grid.beginUpdate(),a.grid.context=a.grid,a.grid.clearFilter();for(let t=0;t<e.length;t++){const s=e[t],o=s[0],n=s[1];a.grid.columnByDataField[o].filter=n}a.grid._filterOperator=t,a.grid.endUpdate(),a.grid.refreshFilters(),a.grid.context=document,a.grid.autoSaveState()}_applySort(){const e=this,t=e._appliedSorting;e.grid.beginUpdate(),e.grid.sorting.maintainSort=t.maintainSort,e.grid.context=e.grid,e.grid.clearSort();for(let a=0;a<t.dataFields.length;a++)e.grid.sortBy(t.dataFields[a],t.orderBy[a]);e.grid.endUpdate(),e.grid.context=document,e.grid.autoSaveState()}_getDropDownType(){const e=this;let t=null;return e.$.headerDropDown.classList.contains("filter-panel")?t="filter":e.$.headerDropDown.classList.contains("sort-panel")?t="sort":e.$.headerDropDown.classList.contains("search-panel")?t="search":e.$.headerDropDown.classList.contains("group-panel")?t="group":e.$.headerDropDown.classList.contains("format-panel")?t="format":e.$.headerDropDown.classList.contains("customize-panel")&&(t="customize"),t}_applyHandler(e){const t=this,a=e.target,s=e.detail,o=t.$.customize;if(t.grid&&"kanban"===t.grid.view&&t.grid._kanban&&o.contains(a))return t.grid._kanban._applyHandler(e,"customize"),void t.closePanel();o.contains(a)?t._applyColumns(s.value,s.moves):t.$.filter.contains(a)?t.addFilter(s.filters,s.operator,s.value):t.$.sort.contains(a)&&t.addSort(s.sortByInfo),t.closePanel()}_documentUpHandler(e){const t=this;let a=e.originalEvent.target;const s=t.grid.$.header;t.shadowRoot&&a===t&&(a=e.originalEvent.composedPath()[0]);const o=e.originalEvent.composedPath();for(let e=0;e<o.length;e++){const t=o[e];if(t&&t.classList&&t.classList.contains("smart-menu-item")){const e=t.closest("smart-menu");if(e&&e.classList.contains("smart-grid-views-menu"))return;if(e&&e.classList.contains("smart-grid-download-menu"))return}}if(t._closeDownloadMenu(),t._closeViewsMenu(),!("none"===t.headerPosition||t.$.headerDropDown.classList.contains("smart-visibility-hidden")||a!==s&&s.contains(a))){const o=a.closest("smart-scroll-viewer"),n=a.closest(".smart-drop-down");if((!o||!s.contains(o.ownerElement))&&(!n||n.ownerElement&&!s.contains(n.ownerElement))){const a=e.originalEvent.composedPath();for(let e=0;e<a.length;e++){const t=a[e];if(t&&t.classList&&t.classList.contains("smart-data-view-header-drop-down"))return;if(t&&t.classList&&t.classList.contains("smart-formatting-panel-popup"))return}if(o&&o.ownerElement){const e=o.ownerElement.parents;for(let t=0;t<e.length;t++){const a=e[t];if(a&&a.classList&&a.classList.contains("smart-data-view-header-drop-down"))return}}if(n&&n.ownerElement){const e=n.ownerElement.parents;for(let t=0;t<e.length;t++){const a=e[t];if(a&&a.classList&&a.classList.contains("smart-data-view-header-drop-down"))return}}if(t.$.headerDropDown.querySelector("[open]"))return;t.closePanel()}}}_refreshColumns(e){const t=this,a=t.grid;let s,o=new Map;if("kanban"===a.view&&a._kanban&&"customize"===e)return s=a._kanban._getCustomizeColumnPanelDataSource(),s=JSON.parse(JSON.stringify(s)),t._refreshCustomizeButton(),void(t.columns=s);s=Array.isArray(a.columns)?[...a.columns]:[...a.columns.toArray()],s=s.filter((t=>!1!==t._visible&&!(("filter"===e||"sort"===e)&&("sort"===e&&!t.sortOrder||"filter"===e&&!t.filter)&&!1===t.visible))),s=s.map((e=>{let t=e.allowHide;return a.grouping&&a.grouping.autoHideGroupColumn&&a.dataSource.groupBy.indexOf(e.dataField)>=0&&(t=!1),{label:e.label,dataField:e.dataField,dataType:e.dataType||"string",columnGroup:e.columnGroup||null,allowHide:void 0===e.allowHide||t,allowSort:void 0===e.allowSort||e.allowSort,allowFilter:void 0===e.allowFilter||e.allowFilter,allowGroup:void 0===e.allowGroup||e.allowGroup,visible:void 0===e.visible||e.visible,sortIndex:void 0!==e.sortIndex&&null!==e.sortIndex?e.sortIndex:-1,sortDirection:void 0!==e.sortOrder?e.sortOrder:null,options:e.editor&&e.editor.dataSource?e.editor.dataSource:null}})),s=JSON.parse(JSON.stringify(s)),s.forEach((e=>{let t=e.columnGroup?e.columnGroup+"."+e.label:e.label,a=1;for(;o.get(t);)t=e.columnGroup?e.columnGroup+"."+e.label+` (${a})`:e.label+` (${a})`,a++;o.set(t,e),e.label=t})),t.columns=s,t._refreshCustomizeButton()}_init(e){const t=this;if(t.grid=e,e.dataSource&&e.dataSource.boundSource){t._refreshColumns("init");const a=Array.isArray(e.dataSource.boundSource)?e.dataSource.boundSource:e.dataSource.boundSource.toArray();t.dataSource=new Smart.DataAdapter({observable:!1,dataSource:[...a],dataFields:e.dataSource.dataFields})}t.grid._openRowSettingsDialog=t._openRowSettingsDialog,t.rightToLeft=t.grid.rightToLeft,t.refreshTools(),t.$.headerDropDown.onclick=e=>{t.grid._headerClickHandler(e),e.stopPropagation(),e.preventDefault()},t.grid.removeEventListener("change",t._refreshFromSelection),t.grid.addEventListener("change",t._refreshFromSelection),t._updateViews(),e.header.onInit&&e.header.onInit(t)}_removeMenu(){const e=this;if(e.downloadMenu){const t=e.downloadMenu.querySelector("smart-menu");t&&e.downloadMenu.removeChild(t)}}_removeViewsMenu(){const e=this;if(e.viewsMenu){const t=e.viewsMenu.querySelector("smart-menu");t&&e.viewsMenu.removeChild(t);const a=e.viewsMenu.querySelector(".label");a&&e.viewsMenu.removeChild(a)}}_createViewsMenuItems(){const e=this,t=e.grid;e._removeViewsMenu();const a=document.createElement("smart-menu"),s=document.createDocumentFragment();a.classList.add("smart-grid-views-menu"),a.checkable=!0,a.checkboxes=!0,a.style.width="100%",a.mode="vertical",a.dropDownAppendTo="body",a.rightToLeft=t.rightToLeft,a.style.minWidth="150px";const o=(e,a,s)=>{const o=document.createElement("smart-menu-item");let n="#D50000",i="smart-icon-table-alt";switch(a){case"grid":n="#3f51b5",i="smart-icon-table-alt","grid"===t.view&&s&&(o.setAttribute("focus",""),o.checked=!0),o.title=t.localize("gridView");break;case"kanban":n="#C40093",i="smart-icon-kanban","kanban"===t.view&&s&&(o.setAttribute("focus",""),o.checked=!0),o.title=t.localize("kanbanView")}return o.label='<span style="color: '+n+'" class="smart-grid-icon '+i+'"></span>'+e,o.value=a,o};s.appendChild(o(t.localize("viewGrid"),"grid",!0)),s.appendChild(o(t.localize("viewKanban"),"kanban",!0)),a.appendChild(s),e.viewsMenu.insertBefore(a,e.viewsMenu.children[e.viewsMenu.children.length-1]),e.viewsMenu.onpointerup=()=>!1,a.onItemClick=a=>{e._setView(a.detail.value),e._closeViewsMenu(),t.autoSaveState(),e._updateViews()}}_updateViews(){const e=this,t=e.grid;if(e.$.viewStatesButton.removeAttribute("aria-expanded"),t.stateSettings.enabled&&t.appearance.showViewBar){if(e.$.viewStatesButton.setAttribute("aria-expanded",!0),!t.$.viewBar.querySelector(".smart-grid-view-chooser-container")){const a=document.createElement("div");a.classList.add("smart-grid-view-chooser-container");const s=document.createElement("div");s.classList.add("new-view"),!1===t.editing.enabled&&s.classList.add("smart-hidden");const o=(a,s)=>{a.stopPropagation(),a.preventDefault(),t.beginUpdate(),t.stateSettings.current||(t.stateSettings.current=t.$.viewBar._input.value),t.saveState(),t.stateSettings.current=t.$.viewBar._input.value,e._closeViewsMenu(),t.resetState(),t._kanban&&t._kanban._reset(),delete t.columnByDataField.taskStatus,"kanban"===s&&e._setView("kanban"),t.saveState(),t.endUpdate(),e._updateViews(),t.$.fireEvent("viewChanged",{view})},n=document.createElement("smart-button");n.classList.add("selected"),n.classList.add("view"),n.innerHTML='<span style="display: flex; align-items: center;"><span style="color: #3f51b5" class="show smart-grid-icon smart-icon-table-alt"></span>'+t.localize("newGrid")+'</span><span style="font-size: 12px; color: rgba(var(--smart-secondary-rgb), 0.6);" class="show smart-grid-icon smart-icon-plus"></span>',n.title=t.localize("gridView");const i=document.createElement("smart-button");i.innerHTML='<span style="display: flex; align-items: center;"><span style="color: #C40093;" class="show smart-grid-icon smart-icon-kanban"></span>'+t.localize("newKanban")+'</span><span style="font-size: 12px; color: rgba(var(--smart-secondary-rgb), 0.6);" class="show smart-grid-icon smart-icon-plus"></span>',i.classList.add("view"),i.title=t.localize("kanbanView");const r=document.createElement("div");r.classList.add("smart-grid-view-storage"),a.appendChild(r);const l=document.createElement("smart-input");l.classList.add("underlined"),l.placeholder=t.localize("viewNamePlaceholder"),l.hint=t.localize("viewNamePlaceholder"),l.onselectstart=e=>{e.stopPropagation()};const d=document.createElement("div");d.innerHTML="<span>"+t.localize("settings")+"</span>",d.classList.add("view-label");const c=document.createElement("div");s.appendChild(c),c.classList.add("footer"),t.users&&t.users.length&&(!1!==t.currentUser&&null!==t.currentUser&&void 0!==t.currentUser||c.classList.add("smart-hidden")),c.appendChild(n),c.appendChild(i);const u=document.createElement("div");u.innerHTML='<span class="smart-grid-icon show smart-icon-plus"></span><span><a href="javascript:void();">'+t.localize("createView")+"</a></span>",u.classList.add("view-button"),u.onclick=e=>{const t=i.classList.contains("selected")?"kanban":"grid";o(e,t)},i.onpointerdown=()=>{i.classList.add("selected"),n.classList.remove("selected"),u.click()},n.onpointerdown=()=>{n.classList.add("selected"),i.classList.remove("selected"),u.click()};const p=()=>{t.stateSettings.storage&&!t.stateSettings.storage[l.value]||l.value&&!t.stateSettings.storage?u.classList.remove("disabled"):u.classList.add("disabled")};l.update=()=>p(),l.onkeyup=l.onchange=()=>{p()},p(),a.appendChild(s),t.$.viewBar._storage=r,t.$.viewBar._input=l,t.$.viewBar.appendChild(a)}let a=t.stateSettings.storage;(a&&0===Object.keys(a).length||!a)&&(t.$.viewBar._input.value||(t.$.viewBar._input.value=t.localize("view")+" 1"),t.stateSettings.current||(t.stateSettings.current=t.$.viewBar._input.value),t.saveState(),t.stateSettings.current=t.$.viewBar._input.value,a=t.stateSettings.storage);const s=t.$.viewBar._storage;if(s.innerHTML="",a){let o=1;const n=document.createDocumentFragment(),i=e=>{delete t.stateSettings.storage[e.valueName],t.stateSettings.current===e.valueName&&(t.stateSettings.current=""),t.stateSettings.onStateChange&&t.stateSettings.onStateChange(t.stateSettings.storage[t.stateSettings.current],e.valueName,t.stateSettings.storage,t.stringify_object),e.remove()},r=a=>{const s=document.createElement("input");s.value=a.valueName;const o=()=>{if(s.value){if(t.stateSettings.storage[s.value])return;const o=t.stateSettings.storage[a.valueName];t.stateSettings.current===a.valueName&&(t.stateSettings.current=s.value),o.name=s.value,t.stateSettings.storage[o.name]=o,t.stateSettings.onStateChange&&t.stateSettings.onStateChange(t.stateSettings.storage[t.stateSettings.current],o.name,t.stateSettings.storage,t.stringify_object),delete t.stateSettings.storage[a.valueName],e._updateViews()}};s.onselectstart=e=>{e.stopPropagation()},s.onpointerdown=s.onpointerup=e=>{e.stopPropagation()},s.onkeydown=e=>{e.stopPropagation()},s.onkeyup=e=>{"Escape"===e.key&&s.remove(),"Enter"===e.key&&o(),e.stopPropagation()},s.onchange=()=>{o()},s.style.width="100%",s.style.height="100%",s.style.position="absolute",s.style.left="0px",s.style.top="0px",s.style.zIndex=99,s.classList.add("smart-input"),s.classList.add("underlined"),a.querySelector(".smart-menu-item-label-element").appendChild(s),setTimeout((()=>{s.focus()}),50)},l=(e,a,s)=>{const o=document.createElement("smart-menu-item");let n="smart-icon-table-alt";switch(a){case"grid":n="smart-icon-table-alt";break;case"kanban":n="smart-icon-kanban"}return o.value=s,o.valueName=e,e===t.stateSettings.current?(o.checked=!0,o.label='<span class="show smart-grid-icon '+n+'"></span><span style="overflow: hidden; text-overflow: ellipsis;">'+e+'</span><span class="show smart-grid-icon smart-icon-mode-edit"></span>'):o.label='<span class="show smart-grid-icon '+n+'"></span><span style="overflow: hidden; text-overflow: ellipsis;">'+e+'</span><span class="show smart-grid-icon smart-icon-mode-edit"></span><span class="show smart-grid-icon smart-icon-delete"></span>',!1!==t.currentUser&&null!==t.currentUser&&void 0!==t.currentUser||(e===t.stateSettings.current?(o.checked=!0,o.label='<span class="show smart-grid-icon '+n+'"></span><span style="overflow: hidden; text-overflow: ellipsis;">'+e+'</span><span class="smart-grid-icon smart-icon-mode-edit"></span>'):o.label='<span class="show smart-grid-icon '+n+'"></span><span style="overflow: hidden; text-overflow: ellipsis;">'+e+'</span><span class="smart-grid-icon smart-icon-mode-edit"></span><span class="smart-grid-icon smart-icon-delete"></span>'),o.ondblclick=e=>{const t=e.target.closest("smart-menu-item");r(t)},o.onclick=e=>{if(e.target&&e.target.classList.contains("smart-icon-delete")){const t=e.target.closest("smart-menu-item");i(t),e.preventDefault(),e.stopPropagation()}else if(e.target&&e.target.classList.contains("smart-icon-mode-edit")){const t=e.target.closest("smart-menu-item");r(t),e.preventDefault(),e.stopPropagation()}else if("INPUT"===e.target.nodeName)return},o};let d=[],c=[];for(let e in a){const t=a[e];c[t.name]||(c[t.name]=t,d.push({name:e,value:t}))}d.sort(((e,t)=>{const a=new Date(e.value.date),s=new Date(t.value.date);return e.name<t.name?-1:e.name>t.name?1:e.name===t.name?0:e.value.date&&t.value.date?a<s?-1:a>s?1:a===s?0:void 0:-1}));for(let e in d){const t=d[e],a=t.name,s=t.value;o++,n.appendChild(l(a,s.view,s))}if(o){const a=document.createElement("smart-menu");a.style.width="100%",a.mode="vertical",a.classList.add("smart-grid-views-menu"),a.checkable=!0,a.checkboxes=!0,a.checkMode="radioButton",a.disableAutoCheck=!0,a.rightToLeft=t.rightToLeft,a.appendChild(n),a.onItemCheckChange=a=>{if(a.detail.checked){const s=a.detail.item;t.loadState(s.valueName),e._updateViews(),t.stateSettings.onStateChange&&t.stateSettings.onStateChange(t.stateSettings.storage[t.stateSettings.current],s.valueName,t.stateSettings.storage,t.stringify_object),setTimeout((()=>{t.querySelector(".smart-grid-views-menu").focus()}),50)}},a.onkeydown=e=>{const t=a.querySelector("smart-menu-item[checked]");t&&"F2"===e.key&&r(t)};const o=document.createElement("div");o.style.display="flex",o.style.marginTop="10px",o.innerHTML='<span class="smart-grid-icon show smart-icon-filter"></span><span>'+t.localize("noViews")+"</span>";const i=document.createElement("smart-input");i.classList.add("underlined"),i.prefix='<span class="smart-grid-icon smart-icon-search show"></span>',i.placeholder=t.localize("commandBarSearch"),i.value=t.$.viewBar.filterValue||"",i.onkeydown=e=>{e.stopPropagation()},i.onselectstart=e=>{e.stopPropagation()},i.onAffixClick=i.onkeyup=()=>{const e=a.querySelectorAll("smart-menu-item");let s=0;o.classList.add("smart-hidden"),a.classList.remove("smart-hidden"),t.$.viewBar.filterValue=i.value,e.forEach((e=>{i.value.length>0?e.valueName.toLowerCase().startsWith(i.value.toLowerCase())?e.classList.remove("smart-hidden"):(e.classList.add("smart-hidden"),s++):e.classList.remove("smart-hidden")})),s===[...e].length&&(o.classList.remove("smart-hidden"),a.classList.add("smart-hidden"))},i.value&&i.onAffixClick(),s.appendChild(i),s.appendChild(a),s.appendChild(o),o.classList.add("smart-hidden")}if(t.stateSettings.storage)for(;t.stateSettings.storage[t.localize("view")+" "+o];)o++;t.$.viewBar._input.value=t.localize("view")+" "+o,t.$.viewBar._input.update()}}}_setView(e,t){const a=this,s=a.grid;if(s.view!==e||!0===t){if("kanban"===e){const e=s.context;if(s.context=s,s.view="kanban",s.context=e,s._kanbanInitialized&&s.columnByDataField.taskStatus)if(s.columnByDataField.taskStatus&&s._stackedBy&&s.columnByDataField.taskStatus.dataField!==s._stackedBy){s.beginUpdate(),delete s.columnByDataField.taskStatus;const e=s.columnByDataField[s._stackedBy];s.columnByDataField.taskStatus=e,s._createKanban(e),s._refreshHeaderBar(),s.endUpdate(!1),s._showKanbanView(),a._refresh()}else s._showKanbanView(),a._refresh();else delete s._kanbanInitialized,s._initKanbanView("dynamic","grid")}else"grid"===e&&(s.view="grid",s._hideKanbanView(),a._refresh());s.$.fireEvent("viewChanged",{view:e}),a._refresh()}}_createMenuItems(){const e=this,t=e.grid;e._removeMenu();const a=document.createElement("smart-menu"),s=document.createDocumentFragment();a.mode="vertical",a.dropDownAppendTo="body",a.classList.add("smart-grid-download-menu"),a.rightToLeft=t.rightToLeft;const o=(e,t)=>{const a=document.createElement("smart-menu-item");let s="#D50000";switch(t){case"csv":s="#3f51b5";break;case"pdf":s="#f4511e";break;case"xlsx":s="#0b8043";break;case"json":s="#8e24aa"}const o='<span style="position: absolute; top: 0px; font-size: 10px; color: '+s+'">'+t+"</span>";return a.label='<span style="color: '+s+'" class="smart-grid-icon smart-icon-docs"></span>'+o+e,a.value=t,a};s.appendChild(o(t.localize("download")+" CSV","csv")),s.appendChild(o(t.localize("download")+" XLSX","xlsx")),s.appendChild(o(t.localize("download")+" JSON","json")),a.appendChild(s),e.downloadMenu.appendChild(a),a.onItemClick=e=>{const a=new Date;t.dataExport.fileName="data_"+a.getFullYear()+"-"+a.getMonth()+"-"+a.getDate(),t.exportData(e.detail.value)}}closePanel(){const e=this;super.closePanel(),e.grid&&e.grid.focus(),e.downloadMenu&&e.downloadMenu.classList.contains("open")?e._closeDownloadMenu():e.viewsMenu&&e.viewsMenu.classList.contains("open")&&e._closeViewsMenu()}_closeDownloadMenu(){const e=this,t=e.downloadMenu;t&&(t.parentNode&&(t.classList.remove("open"),setTimeout((()=>{t&&t.parentNode&&t.parentNode.removeChild(t)}),100)),e.$.downloadButton.classList.remove("selected"),e.$.downloadButton.removeAttribute("aria-expanded"),t.classList.remove("open"))}_openDownloadMenu(){const e=this;if(e.grid.editing.isEditing&&e.grid.cancelEdit(),e.downloadMenu&&e.downloadMenu.classList.contains("open"))return void e._closeDownloadMenu();e.$.headerDropDown.classList.remove("group-panel","customize-panel","filter-panel","sort-panel","search-panel","format-panel"),e.$.group.classList.add("smart-hidden"),e.$.filter.classList.add("smart-hidden"),e.$.customize.classList.add("smart-hidden"),e.$.sort.classList.add("smart-hidden"),e.$.search.classList.add("smart-hidden"),e.$.format.classList.add("smart-hidden"),e.closePanel(),e.$.downloadButton.classList.add("selected"),e.$.downloadButton.setAttribute("aria-expanded",!0),e.downloadMenu||(e.downloadMenu=document.createElement("div"),e.downloadMenu.classList.add("smart-grid-column-menu","smart-grid-download-menu"),e.downloadMenu.setAttribute("theme",e.getAttribute("theme")),e.downloadMenu.id=e.id+"_"+e.tagName.toLowerCase()+"_menu_"+Math.floor(65536*(1+Math.random())).toString(16).substring(1)),e.downloadMenu.classList.add("smart-animate"),e._createMenuItems(),e.downloadMenu.style.height="auto",e.isInShadowDOM?e.getRootNode().appendChild(e.downloadMenu):document.body.appendChild(e.downloadMenu);const t=e.$.downloadButton.getBoundingClientRect();let a=t.left+window.pageXOffset,s=t.bottom+window.pageYOffset;a+e.downloadMenu.offsetWidth>window.innerWidth&&(a=t.right+window.pageXOffset-e.downloadMenu.offsetWidth,a+e.downloadMenu.offsetWidth>window.innerWidth&&(a=window.innerWidth-e.downloadMenu.offsetWidth)),e.downloadMenu.style.left=a+"px",e.downloadMenu.style.top=s+"px",e.downloadMenu.classList.remove("smart-hidden"),e.downloadMenu.classList.add("open")}_closeViewsMenu(){const e=this,t=e.viewsMenu;t&&(t.parentNode&&(t.classList.remove("open"),setTimeout((()=>{t&&t.parentNode&&t.parentNode.removeChild(t)}),100)),t.classList.remove("open"),e.$.viewsButton.classList.remove("selected"),e.$.viewsButton.removeAttribute("aria-expanded"))}_openViewsMenu(){const e=this;if(e.grid.editing.isEditing&&e.grid.cancelEdit(),e.viewsMenu&&e.viewsMenu.classList.contains("open"))return void e._closeViewsMenu();e.$.headerDropDown.classList.remove("group-panel","customize-panel","filter-panel","sort-panel","search-panel","format-panel"),e.$.group.classList.add("smart-hidden"),e.$.filter.classList.add("smart-hidden"),e.$.customize.classList.add("smart-hidden"),e.$.sort.classList.add("smart-hidden"),e.$.search.classList.add("smart-hidden"),e.$.format.classList.add("smart-hidden"),e.closePanel(),e.$.viewsButton.classList.add("selected"),e.$.viewsButton.setAttribute("aria-expanded",!0),e.viewsMenu||(e.viewsMenu=document.createElement("div"),e.viewsMenu.classList.add("smart-grid-column-menu","smart-grid-download-menu","smart-grid-view-chooser"),e.viewsMenu.setAttribute("theme",e.getAttribute("theme")),e.viewsMenu.id=e.id+"_"+e.tagName.toLowerCase()+"_menu_"+Math.floor(65536*(1+Math.random())).toString(16).substring(1)),e.viewsMenu.classList.add("smart-animate"),e._createViewsMenuItems("views"),e.viewsMenu.style.height="auto",e.isInShadowDOM?e.getRootNode().appendChild(e.viewsMenu):document.body.appendChild(e.viewsMenu);const t=e.$.viewsButton.getBoundingClientRect();let a=t.left+window.pageXOffset,s=t.bottom+window.pageYOffset;a+e.viewsMenu.offsetWidth>window.innerWidth&&(a=t.right+window.pageXOffset-e.downloadMenu.offsetWidth,a+e.viewsMenu.offsetWidth>window.innerWidth&&(a=window.innerWidth-e.viewsMenu.offsetWidth)),e.viewsMenu.style.left=a+"px",e.viewsMenu.style.top=s+"px",e.viewsMenu.classList.remove("smart-hidden"),e.viewsMenu.classList.add("open")}_refresh(){const e=this,t=e.grid;e._refreshColumns("refresh");let a=!1;for(let t=0;t<e.columns.length;t++)if("number"===e.columns[t].dataType){a=!0;break}if(t.header.buttons.indexOf("sort")>=0&&t.sorting.enabled?e.$.sortButton.classList.remove("smart-hidden"):e.$.sortButton.classList.add("smart-hidden"),t.header.buttons.indexOf("filter")>=0&&t.filtering.enabled?e.$.filterButton.classList.remove("smart-hidden"):e.$.filterButton.classList.add("smart-hidden"),t.header.buttons.indexOf("group")>=0&&t.grouping.enabled?e.$.groupButton.classList.remove("smart-hidden"):e.$.groupButton.classList.add("smart-hidden"),t.header.buttons.indexOf("columns")>=0?e.$.customizeButton.classList.remove("smart-hidden"):e.$.customizeButton.classList.add("smart-hidden"),t.header.buttons.indexOf("search")>=0?e.$.searchButton.classList.remove("smart-hidden"):e.$.searchButton.classList.add("smart-hidden"),t.header.buttons.indexOf("format")>=0&&a?e.$.formatButton.classList.remove("smart-hidden"):e.$.formatButton.classList.add("smart-hidden"),t.header.buttons.indexOf("delete")>=0&&t.editing.enabled?e.$.deleteButton.classList.remove("smart-hidden"):e.$.deleteButton.classList.add("smart-hidden"),t.header.buttons.indexOf("download")>=0?e.$.downloadButton.classList.remove("smart-hidden"):e.$.downloadButton.classList.add("smart-hidden"),t.header.buttons.indexOf("views")>=0?e.$.viewsButton.classList.remove("smart-hidden"):e.$.viewsButton.classList.add("smart-hidden"),t.header.buttons.indexOf("views")>=0&&t.stateSettings.enabled?e.$.viewStatesButton.classList.remove("smart-hidden"):e.$.viewStatesButton.classList.add("smart-hidden"),e.$.downloadButton.onpointerup=a=>{t.closeMenu(),e._openDownloadMenu(),a.stopPropagation()},e.$.viewsButton.onpointerup=a=>{t.closeMenu(),e._openViewsMenu(),a.stopPropagation()},e.$.viewStatesButton.onpointerup=a=>{t.closeMenu(),e._closeDownloadMenu(),e._closeViewsMenu(),t.appearance.showViewBar=!t.appearance.showViewBar,"kanban"===t.view&&t._refreshContentHeight(),a.stopPropagation(),e._updateViews()},t._sortedColumns){const a=[],s=[],o=[];for(let e=0;e<t._sortedColumns.length;e++){const n=t._sortedColumns[e];a.push(n.dataField),s.push(n.sortOrder),o.push(n.dataType)}e._appliedSorting={dataFields:a,dataTypes:o,orderBy:s},e._refreshSortButton()}if("grid"===t.view){const a={filters:[],operator:"and"},s=t.getFilteredColumns();if(s)for(let e in s){const t=s[e];for(let s=0;s<t.filters.length;s++){const o=t.filters[s];a.filters.push([e,o.condition,o.value])}}e._appliedFiltering&&(a.operator=e._appliedFiltering.operator),e._appliedFiltering=a,e._refreshFilterButton()}else e.$.sortButton.classList.add("smart-hidden"),e.$.filterButton.classList.add("smart-hidden");e._appliedGrouping?e._appliedGrouping.dataFields=t.dataSource.groupBy:e._appliedGrouping={dataFields:t.dataSource.groupBy,expandAll:!1,collapseAll:!1},e._refreshCustomButton(),e._refreshGroupButton(),e._refreshDeleteButton(),e._refreshDownloadButton(),e._refreshCustomizeButton(),e._refreshViewsButton(),e.refreshTools(),Smart.Utilities.Core.isMobile&&(e.$.searchButton.classList.add("smart-hidden"),e.$.formatButton.classList.add("smart-hidden"),e.$.customButton.classList.add("smart-hidden"),e.$.headerDropDown.classList.add("smart-mobile"),t.$.viewBar.classList.add("smart-mobile")),!1===t.editing.enabled&&(e.$.customButton.classList.add("smart-hidden"),e.$.downloadButton.classList.add("smart-hidden"),e.$.viewsButton.classList.add("smart-hidden"))}_refreshCustomButton(){const e=this,t=e.grid;t.header.customButton.visible?(e.$.customButton.style.paddingLeft="0px",e.$.customButton.classList.remove("smart-hidden")):e.$.customButton.classList.add("smart-hidden"),t.header.customButton.enabled?e.$.customButton.classList.remove("smart-disabled"):e.$.customButton.classList.add("smart-disabled"),e.$.customButton.innerHTML=`<span class="smart-grid-icon show ${t.header.customButton.icon}"></span><div class="smart-tool-label" role="presentation">${t.header.customButton.label}</div>`,e.$.customButton.onclick=()=>{t.header.customButton.command&&t.header.customButton.command()}}_refreshViewsButton(){const e=this;let t=e.grid.localize("viewGrid");switch(e.grid.view){case"kanban":t=e.grid.localize("viewKanban"),e.$.viewsButton.classList.add("kanban");break;case"grid":e.$.viewsButton.classList.remove("kanban"),t=e.grid.localize("viewGrid")}e.$.viewsButton.innerHTML='<div class="smart-tool-label" role="presentation">'+t+"</div>",e.$.viewStatesButton.innerHTML='<div class="smart-tool-label" role="presentation">'+this.grid.localize("views")+"</div>"}_refreshDownloadButton(){this.$.downloadButton.innerHTML='<div class="smart-tool-label" role="presentation">'+this.grid.localize("download")+"</div>"}_openRowSettingsDialog(e){let t=this;t.getSelectedRows||(t=t.grid);const a=t.editing.dialog.enabled,s=t.editing.mode,o=t.context;t.context=t,t.editing.dialog.enabled=!0,t.editing.mode="row",t._settingsDialogRowId=e;let n=t._isUpdating;"grid"!==t.view&&(t._isUpdating=0),t.beginEdit(e),t._isUpdating=n,t._endToolbarEdit?(t.removeEventListener("endEdit",t._endToolbarEdit,null),t.removeEventListener("cancelEdit",t._endToolbarEdit,null)):t._endToolbarEdit=()=>{t.context=t,t.editing.dialog.enabled=a,t.editing.mode=s,t.editing.isEditing=!1,t.context=o,delete t._settingsDialogRowId,delete t._dialogEdit},t.addEventListener("endEdit",t._endToolbarEdit),t.addEventListener("cancelEdit",t._endToolbarEdit)}_refreshDeleteButton(){let e=this;if(e.getSelectedRows||(e=e.grid),-1===e.header.buttons.indexOf("delete"))return;const t=e.getSelectedRows().length,a=e.querySelector("smart-grid-toolbar").$.deleteButton;0!==t?(!0===e.editing.enabled?a.classList.remove("smart-hidden"):a.classList.add("smart-hidden"),a.firstElementChild.innerHTML=1===t?e.localize("deleteByOne"):e.localize("deleteByMultiple",{n:t}),a.classList.add("selected"),a.onclick=()=>{const t=e.getSelectedRows().map((e=>e[0]));this.grid.removeRow(t)}):a.classList.add("smart-hidden")}_refreshFromSelection(){this.querySelector("smart-grid-toolbar")._refreshDeleteButton()}openGroupPanel(e){const t=this;let a;const s=t.grid;if("kanban"===s.view)return;t.$.headerDropDown.classList.add("group-panel"),t.$.headerDropDown.classList.remove("customize-panel","filter-panel","sort-panel","search-panel","format-panel"),t.$.group.classList.remove("smart-hidden"),t.$.filter.classList.add("smart-hidden"),t.$.customize.classList.add("smart-hidden"),t.$.sort.classList.add("smart-hidden"),t.$.search.classList.add("smart-hidden"),t.$.format.classList.add("smart-hidden"),t._closeDownloadMenu(),t._closeViewsMenu(),t._refreshColumns("group"),s.closeMenu();const o=t.columns.map((e=>{const a=Object.assign({},e);if(t._appliedGrouping&&t._appliedGrouping.dataFields){const e=t._appliedGrouping.dataFields.indexOf(a.dataField);a.groupIndex=e}return a})).filter((e=>e.allowGroup));e&&t._appliedGrouping&&-1===t._appliedGrouping.dataFields.indexOf(e.dataField)&&(o.find((t=>t.dataField===e.dataField)).groupIndex=t._appliedGrouping.dataFields.length),t._groupPartCreated?(a=t.$.group.firstElementChild,a.rightToLeft=t.rightToLeft,a.dataSource=o,a.locale=t.locale,a.messages=t._innerElementMessages.groupPanel):(a=document.createElement("smart-group-panel"),a.rightToLeft=t.rightToLeft,a.animation=t.animation,a.locale=t.locale,a.messages=t._innerElementMessages.groupPanel,a.theme=t.theme,a.dataSource=o,t.$.group.appendChild(a),t._groupPartCreated=!0,a.onExpandAll=()=>{if(t._appliedGrouping.expandAll)return t._appliedGrouping.expandAll=!1,void a.querySelector(".smart-group-panel-expand-button").removeAttribute("active");t._appliedGrouping.expandAll=!0,t._appliedGrouping.collapseAll=!1,a.querySelector(".smart-group-panel-expand-button").setAttribute("active",""),a.querySelector(".smart-group-panel-collapse-button").removeAttribute("active")},a.onCollapseAll=()=>{if(t._appliedGrouping.collapseAll)return t._appliedGrouping.collapseAll=!1,void a.querySelector(".smart-group-panel-collapse-button").removeAttribute("active");t._appliedGrouping.expandAll=!1,t._appliedGrouping.collapseAll=!0,a.querySelector(".smart-group-panel-collapse-button").setAttribute("active",""),a.querySelector(".smart-group-panel-expand-button").removeAttribute("active")},a.addEventListener("apply",(e=>{const a=e.detail.sortByInfo,o=t._appliedGrouping.dataFields;t._appliedGrouping.dataFields=a.dataFields;const n=s.onRowInserted;if(s.onRowInserted=null,s.beginUpdate(),s.grouping.autoHideGroupColumn&&o)for(let e=0;e<o.length;e++){const t=s.columnByDataField[o[e]];t&&(t.visible=!0)}s.clearGroups();for(let e=0;e<a.dataFields.length;e++){const t=a.dataFields[e];s.addGroup(t)}t._appliedGrouping.expandAll&&s.expandAllRows(),t._appliedGrouping.collapseAll&&s.collapseAllRows(),s.endUpdate(),s.autoSaveState();const i=[];for(let e=0;e<s.dataSource.groupBy.length;e++)i.push(s.dataSource.groupBy[e]);s.$.fireEvent("group",{groups:i}),s.paging.enabled&&s._refreshPagesCount(),s.onRowInserted=n}))),t._refreshGroupButton(),t._openHeaderDropDown(t.$.groupButton)}_refreshGroupButton(){const e=this,t=e._appliedGrouping.dataFields?e._appliedGrouping.dataFields.length:0;if(e.grid&&"kanban"===e.grid.view){e.$.groupButton.onclick=()=>{"kanban"===e.grid.view&&e.grid._initKanbanView("dynamic","kanban")};const t=e.grid.columnByDataField[e.grid._stackedBy];t?(e.$.groupButton.firstElementChild.innerHTML=e.localize("groupedBy",{column:t.label}),e.$.groupButton.classList.add("grouped")):e.$.groupButton.classList.remove("grouped")}else{if(0===t){const t=e.localize("group");return e.$.groupButton.firstElementChild.innerHTML!==t&&(e.$.groupButton.firstElementChild.innerHTML=t),void e.$.groupButton.classList.remove("grouped")}e.$.groupButton.firstElementChild.innerHTML=1===t?e.localize("groupedByOne"):e.localize("groupedByMultiple",{n:t}),e.$.groupButton.classList.add("grouped")}}openSearchPanel(){this._openSearchPanel()}_closeSearchPanel(){this._search(this.$.searchInput.value,!1),super._closeSearchPanel()}_openSearchPanel(){const e=this,t=e.grid;if(e.$.headerDropDown.classList.add("search-panel"),e.$.headerDropDown.classList.remove("customize-panel","filter-panel","sort-panel","group-panel","format-panel"),e.$.search.classList.remove("smart-hidden"),e.$.customize.classList.add("smart-hidden"),e.$.group.classList.add("smart-hidden"),e.$.filter.classList.add("smart-hidden"),e.$.sort.classList.add("smart-hidden"),e.$.format.classList.add("smart-hidden"),e._openHeaderDropDown(e.$.searchButton),e._closeDownloadMenu(),e._closeViewsMenu(),t.closeMenu(),"filter"===t.header.searchCommand){const t=e.$.headerDropDown.querySelector(".smart-data-view-search-prev"),a=e.$.headerDropDown.querySelector(".smart-data-view-search-next");t.classList.add("smart-hidden"),a.classList.add("smart-hidden")}const a=[],s=t.getVisibleRows();for(let e=0;e<s.length;e++)a.push(Object.assign(s[e].data));const o=new Smart.DataAdapter({id:"id",observable:!1,dataSource:a,dataFields:t.dataSource.dataFields});e._searchInfo={source:o,stringDataFields:e.dataSource.dataFields.filter((e=>"string"===e.dataType)).map((e=>e.name))},""!==e.$.searchInput.value&&e._search(e.$.searchInput.value,!1)}_search(e,t=!0){const a=this;if(!a._searchInfo)return;if(a._searchInfo.query=e,""===e)return a.$.search.classList.remove("matches","no-matches"),delete a._searchInfo.foundIdsArray,delete a._searchInfo.foundIdsObject,delete a._searchInfo.highlighted,a.grid.highlighted=null,a.grid._recycle(!1),void("filter"===a.grid.header.searchCommand&&a.grid.clearFilter());const s=a._searchInfo.source,o=[],n=[],i={};a._searchInfo.stringDataFields.forEach((t=>{const a=new Smart.Utilities.FilterGroup,s=a.createFilter("string",e,"CONTAINS");a.addFilter("or",s),o.push([t,a])})),s._filter(o,"or");for(let e=0;e<s.length;e++){const t=s[e];!1!==t.$.filtered&&(n.push(t.$.id),i[t.$.id]=!0)}if(a._searchInfo.foundIdsArray=n,a._searchInfo.foundIdsObject=i,a.grid.highlighted=null,"filter"===a.grid.header.searchCommand){a.grid.beginUpdate();const t=a.grid.filtering.operator;return a.grid.filtering.operator="or",a.grid.clearFilter(),a._searchInfo.stringDataFields.forEach((t=>{const s=new Smart.Utilities.FilterGroup,o=s.createFilter("string",e,"CONTAINS"),n=a.grid.columnByDataField[t];if(n&&n.editor&&n.editor.dataSource)return!1;n&&(s.addFilter("or",o),a.grid.addFilter(t,s),n._filterInfo&&(n._filterInfo.value=n.filter.filters[0].value,n._filterInfo.condition=n.filter.filters[0].condition))})),a.grid.endUpdate(),a.grid.refreshFilters(),void(a.grid.filtering.operator=t)}if(n.length>0)return a.$.search.classList.remove("no-matches"),a.$.search.classList.add("matches"),a.$.searchLabel.innerHTML=a.localize("found",{nth:t?1:0,n:n.length}),a._searchInfo.highlighted=n[0],a.grid.highlighted=a._searchInfo.highlighted,a.grid.ensureVisible(a._searchInfo.highlighted),void a.grid._recycle(!1);a.$.search.classList.remove("matches"),a.$.search.classList.add("no-matches"),a.$.searchLabel.innerHTML=a.localize("found",{nth:0,n:0})}_refreshCustomizeButton(){const e=this,t=e.grid;let a=0;if("kanban"===t.view&&t._kanban)return e.$.customizeButton.innerHTML='<div class="smart-tool-label" role="presentation">'+t._kanban.localize("customize")+"</div>",e.$.customizeButton.classList.remove("hidden"),void e.$.customizeButton.classList.add("smart-hidden");for(let e=0;e<t.columns.length;e++){const s=t.columns[e];s.autoGenerated||!1!==s._visible&&(t.grouping&&t.grouping.autoHideGroupColumn&&t.dataSource.groupBy.indexOf(s.dataField)>=0||s.visible||a++)}a>0?(e.$.customizeButton.innerHTML=1===a?'<div class="smart-tool-label" role="presentation">'+t.localize("customizeOne",{n:a})+"</div>":'<div class="smart-tool-label" role="presentation">'+t.localize("customizeHidden",{n:a})+"</div>",e.$.customizeButton.classList.add("hidden")):(e.$.customizeButton.innerHTML='<div class="smart-tool-label" role="presentation">'+t.localize("customize")+"</div>",e.$.customizeButton.classList.remove("hidden")),e._refreshMobileViewTools()}_applyColumns(e,t){const a=this,s=a.grid;s.beginUpdate();let o=0,n=[],i=[],r=[];const l=s.onColumnChange;s.onColumnChange=null;for(let t in e){const a=e[t],l=s.columnByDataField[a.dataField];l&&(l.visible!==a.visible&&(n.push(a),i.push(l.visible),r.push(a.visible)),l.visible=a.visible,a.visible||o++)}s.onColumnChange=l,s.onColumnChange?s.onColumnChange(n,"visible",i,r):s.$.fireEvent("columnChange",{column:n,propertyName:"visible",oldValue:i,value:r}),o>0?(a.$.customizeButton.innerHTML='<div class="smart-tool-label" role="presentation">'+s.localize("customizeHidden",{n:o})+"</div>",a.$.customizeButton.classList.add("hidden")):(a.$.customizeButton.innerHTML='<div class="smart-tool-label" role="presentation">'+s.localize("customize")+"</div>",a.$.customizeButton.classList.remove("hidden"));for(let e=0;e<t.length;e++){const a=t[e],o=a.oldIndex,n=a.newIndex,i=s.columns[n+1],r=s.columns[n-1],l=s.columns[o];i?l.columnGroup=i.columnGroup:r&&(l.columnGroup=r.columnGroup),s.reorderColumns(o,n,!0)}if(s.filtering.enabled&&s.filtering.filterRow)for(let e=0;e<s.columns.length;e++)s.columns[e]._filterEditorInitialized=!1;s.endUpdate();const d=s.grouping.enabled;d&&s._filters&&s.refreshFilters(d),s.autoSaveState()}});
6
+ Smart("smart-grid-toolbar",class extends Smart.DataView{template(){return'<div id="container" role="presentation">\n <div id="header" class="smart-data-view-header" role="toolbar">\n <div id="viewStatesButton" class="smart-data-view-header-button smart-data-view-states-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="ViewStates"><div class="smart-tool-label" role="presentation"></div></div>\n <div id="viewsButton" class="smart-data-view-header-button smart-data-view-views-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="Views"><div class="smart-tool-label" role="presentation"></div></div>\n <div id="customizeButton" class="smart-data-view-header-button smart-data-view-customize-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="Customize cards"><div class="smart-tool-label" role="presentation"></div></div>\n <div id="filterButton" class="smart-data-view-header-button smart-data-view-filter-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="Filter"><div class="smart-tool-label" role="presentation"></div></div>\n <div id="sortButton" class="smart-data-view-header-button smart-data-view-sort-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="Sort"><div class="smart-tool-label" role="presentation"></div></div>\n <div id="groupButton" class="smart-data-view-header-button smart-data-view-group-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="Group"><div class="smart-tool-label" role="presentation"></div></div>\n <div id="formatButton" class="smart-data-view-header-button smart-data-view-format-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="Format"><div class="smart-tool-label" role="presentation"></div></div>\n <div id="deleteButton" class="smart-data-view-header-button smart-data-view-delete-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="Delete"><div class="smart-tool-label" role="presentation"></div></div>\n <div id="customButton" class="smart-data-view-header-button smart-data-view-custom-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="Custom"><div class="smart-tool-label" role="presentation"></div></div>\n <div id="downloadButton" class="smart-data-view-header-button smart-data-view-download-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="Download"><div class="smart-tool-label" role="presentation"></div></div>\n <div id="searchButton" class="smart-data-view-header-button smart-data-view-search-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="Search"></div>\n <div id="headerDropDown" owner class="smart-data-view-header-drop-down smart-visibility-hidden" role="dialog">\n <div id="customize" class="smart-hidden" role="presentation"></div>\n <div id="filter" class="smart-hidden" role="presentation"></div>\n <div id="sort" class="smart-hidden" role="presentation"></div>\n <div id="group" class="smart-hidden" role="presentation"></div>\n <div id="format" class="smart-hidden" role="presentation"></div>\n <div id="search" class="smart-data-view-search-box smart-hidden" role="presentation">\n <input type="text" id="searchInput" spellcheck="false" aria-label="Search" />\n <div id="searchLabel" class="smart-data-view-search-label smart-unselectable"></div>\n <div id="searchPrev" class="smart-data-view-search-prev" role="button" aria-label="Previous"></div>\n <div id="searchNext" class="smart-data-view-search-next" role="button" aria-label="Next"></div>\n <div id="searchClose" class="smart-data-view-search-close" role="button" aria-label="Close search box"></div>\n </div>\n </div>\n </div>\n </div>'}_refreshMobileViewTools(){const e=this;e.grid.offsetWidth<600?e.querySelectorAll(".smart-tool-label").forEach((e=>{e.classList.add("smart-hidden")})):e.querySelectorAll(".smart-tool-label").forEach((e=>{e.classList.remove("smart-hidden")}))}refreshTools(){const e=this;if(e.isRendered&&e.grid&&(e._refreshMobileViewTools(),e.refreshHeaderDropDownPosition(),e.grid)){const t=e.grid;if(t.dataSource&&t.dataSource.boundSource){const a=t.dataSource&&t.dataSource.virtualDataSource&&!t.dataSource.virtualDataSourceOnExpand&&t.dataSource.length>t.virtualModeCachedRowsCount&&"infinite"!==t.scrolling;if(e.dataSource&&t.dataSource&&e.dataSource.length!==t.dataSource.length||a)if(a){const a=Array.isArray(t.dataSource.boundSource)?t.dataSource.boundSource:t.dataSource.boundSource.toArray();e.dataSource=new Smart.DataAdapter({observable:!1,dataSource:[...a],dataFields:t.dataSource.dataFields})}else e.dataSource=t.dataSource;const s=t=>{const a=t?"add":"remove";e.$.filterButton.classList[a]("smart-disabled"),e.$.sortButton.classList[a]("smart-disabled"),e.$.groupButton.classList[a]("smart-disabled"),e.$.formatButton.classList[a]("smart-disabled"),e.$.searchButton.classList[a]("smart-disabled"),e.$.downloadButton.classList[a]("smart-disabled")};s(e.dataSource&&0===e.dataSource.length),t.dataSource&&t.dataSource.virtualDataSource&&!t.dataSource.virtualDataSourceOnExpand&&"infinite"!==t.scrolling&&s(!1),0===t.columns.length?e.$.customizeButton.classList.add("smart-disabled"):e.$.customizeButton.classList.remove("smart-disabled")}}}get hasStyleObserver(){return!1}render(){const e=this;e._appliedFiltering={filters:[],operator:"and"},e._appliedSorting={dataFields:[],dataTypes:[],orderBy:[]},e._localizeHeader(),e._getInnerElementMessages(),super.render()}openFormatPanel(){const e=this,t=e.dataSource;if(!t||0===t.length||e.disabled||"none"===e.headerPosition)return;let a;if(e._refreshColumns("format"),e.grid.closeMenu(),e._editInfo&&e._editInfo.window.close(),e._closeDownloadMenu(),e._closeViewsMenu(),e.$.headerDropDown.classList.add("format-panel"),e.$.headerDropDown.classList.remove("customize-panel","sort-panel","search-panel","filter-panel"),e.$.format.classList.remove("smart-hidden"),e.$.customize.classList.add("smart-hidden"),e.$.sort.classList.add("smart-hidden"),e.$.filter.classList.add("smart-hidden"),e.$.group&&e.$.group.classList.add("smart-hidden"),e.$.search.classList.add("smart-hidden"),e._closeSearchPanel(),e._formatPartCreated)a=e.$.format.firstElementChild,a.columns=e.columns,a.dataSource=e.dataSource,a.locale=e.locale,a.messages=e._innerElementMessages.formattingPanel,a.rightToLeft=e.rightToLeft;else{a=document.createElement("smart-formatting-panel"),a.animation=e.animation,a.columns=e.columns,a.dataSource=e.dataSource,a.locale=e.locale,a.messages=e._innerElementMessages.formattingPanel,a.rightToLeft=e.rightToLeft,a.theme=e.theme,a.unfocusable=!1,a.ownerElement=e,a.dropDownAppendTo="body",e._formattingPanel=a,e.$.format.appendChild(a);const t=document.createElement("div");t.className="smart-format-panel smart-grid-panel-container-footer",t.setAttribute("role","presentation"),t.innerHTML=`<div id="buttonsContainer" class="smart-grid-panel-buttons-container smart-unselectable" role="presentation"><span class="smart-grid-panel-cancel-button" role="button">${e.localize("cancel")}</span><span class="smart-grid-panel-apply-button" role="button">${e.localize("apply")}</span></div>`,e._formattingPanel.$.apply=t.querySelector(".smart-grid-panel-apply-button"),e._formattingPanel.$.cancel=t.querySelector(".smart-grid-panel-cancel-button"),e.$.format.appendChild(t),e._formatPartCreated=!0,t.applyButton=t.querySelector(".smart-grid-panel-apply-button"),t.cancelButton=t.querySelector(".smart-grid-panel-cancel-button"),t.applyButton.onclick=()=>{a.$.fireEvent("apply"),e.grid._conditionalFormattingChanged=!0,e.grid._conditionalFormatting=a.apply(),e.grid.conditionalFormatting=a.getItems(),e.grid._recycle(!1),e.grid._conditionalFormattingChanged=!1},t.cancelButton.onclick=()=>{a.$.fireEvent("cancel")},e.grid.conditionalFormatting&&(a.items=e.grid.conditionalFormatting)}a.focus(),e._openHeaderDropDown(e.$.formatButton)}_openHeaderDropDown(e){const t=this;t.$.headerDropDown.parentElement!==document.body&&(document.body.appendChild(t.$.headerDropDown),t.$.headerDropDown.addEventListener("apply",(e=>{const a=t._getDropDownType();t._applyHandler(e),t.grid.$.fireEvent("batchChange",{type:a})})),t.$.headerDropDown.addEventListener("cancel",(()=>{const e=t._getDropDownType();t.closePanel(),t.grid.$.fireEvent("batchCancel",{type:e})}))),super._openHeaderDropDown(e),t.refreshHeaderDropDownPosition(e)}refreshHeaderDropDownPosition(e){const t=this;if(!t.$.headerDropDown||t.$.headerDropDown&&!t.$.headerDropDown.classList.contains("open"))return void(t._dropDownTarget=e);e?t._dropDownTarget=e:t._dropDownTarget&&(e=t._dropDownTarget);const a=t.grid.parentElement,s=a?a.scrollTop:0;t.$.headerDropDown.style.top=t.grid.offset(t.grid).top+t.grid.$.header.offsetHeight-s+"px";const o=()=>{if(e){const a=t.grid.offset(e);if(a.left+t.$.headerDropDown.offsetWidth<document.body.scrollLeft+document.body.offsetWidth?t.$.headerDropDown.style.left=a.left+"px":t.$.headerDropDown.style.left=document.body.scrollLeft+document.body.offsetWidth-t.$.headerDropDown.offsetWidth+"px",a.top+t.$.headerDropDown.offsetHeight>=document.documentElement.clientHeight-40){let e=t.grid.offset(t.grid).top-t.$.headerDropDown.offsetHeight;e<0&&(e=0),t.$.headerDropDown.style.top=e+"px"}}else t.$.headerDropDown.style.left=t.grid.offset(t.grid).left+"px"};t.grid.offsetWidth<600&&t.$.headerDropDown.offsetWidth>t.grid.offsetWidth?(t.$.headerDropDown.style.width="90%",t.$.headerDropDown.style.left=t.grid.offset(t.grid).left+"px"):(t.$.headerDropDown.style.width="",o())}openFilterPanel(e){const t=this,a=t.dataSource;t._refreshColumns("filter");const s=this.columns.map((e=>{const t=Object.assign({},e),s=a.dataFields.find((e=>e.name===t.dataField));return s&&(t.dataType=s.dataType),t})).filter((e=>e.allowFilter));if(super.openFilterPanel(s,null),t._closeDownloadMenu(),t._closeViewsMenu(),t.grid.closeMenu(),e){const a=t.$.headerDropDown.querySelector("smart-multi-column-filter-panel");a.$.itemsContainer.appendChild(a._createItem(t.columns.find((t=>t.dataField===e.dataField)),"string"===e.dataType?"CONTAINS":"EQUAL",""));const s=a.querySelectorAll(".smart-grid-panel-item");setTimeout((()=>{s[s.length-1].querySelector(".editor").focus()}),350)}}openSortPanel(e){const t=this,a=t.dataSource;t._refreshColumns("sort");const s=t.columns.map((e=>{const s=Object.assign({},e),o=t._appliedSorting.dataFields.indexOf(s.dataField),n=a.dataFields.find((e=>e.name===s.dataField));return n&&(s.dataType=n.dataType,s.sortIndex=o,-1!==o&&(s.sortDirection=t._appliedSorting.orderBy[o])),s})).filter((e=>e.allowSort));if(e&&t._appliedSorting&&-1===t._appliedSorting.dataFields.indexOf(e.dataField)){const a=s.find((t=>t.dataField===e.dataField));a.sortDirection="ascending",a.sortIndex=t._appliedSorting.dataFields.length}super.openSortPanel(s),t._closeDownloadMenu(),t._closeViewsMenu();const o=t.grid;o.closeMenu();const n=t.$.headerDropDown.querySelector("smart-sort-panel");if(!n)return;n.grid=o,n.$.maintainSortContainer.classList.remove("smart-hidden"),o.sorting.maintainSort?n.$.maintainSortContainer.firstElementChild.setAttribute("active",""):n.$.maintainSortContainer.firstElementChild.removeAttribute("active"),n._changeApplyButtonText();const i=n.$.inputNotSorted,r=()=>{const e=n.querySelectorAll(".smart-grid-panel-item");"many"===t.grid.sorting.mode||e.length<1?i.classList.remove("smart-visibility-hidden"):e.length>=1&&i.classList.add("smart-visibility-hidden")};n.onDataSourceChange=()=>{r()},r()}openCustomizePanel(){const e=this;if(e.disabled||"none"===e.headerPosition)return;e._closeDownloadMenu(),e._closeViewsMenu(),e._refreshColumns("customize");let t=e.columns;const a=e.grid;a.closeMenu(),a.appearance.showColumnGroupsInColumnPanel&&(t=[],a.columns.forEach((e=>{if(!e.columnGroup){const a={label:e.label,dataField:e.dataField,level:0,parentDataField:null,dataType:e.dataType||"string",columnGroup:e.columnGroup||null,allowHide:void 0===e.allowHide||e.allowHide,allowSort:void 0===e.allowSort||e.allowSort,allowFilter:void 0===e.allowFilter||e.allowFilter,allowGroup:void 0===e.allowGroup||e.allowGroup,visible:void 0===e.visible||e.visible};t.push(a)}})),a._columnGroups.forEach((e=>{const a={dataField:e.name,label:e.label,level:0,disableDrag:!0,disableToggle:!1,allowHide:!0};if(t.push(a),e.columns){let s=e.columns.length,o=0,n=[],i=[];e.columns.forEach((a=>{const r={label:a.label,dataField:a.dataField,level:1,parentDataField:e.name,dataType:a.dataType||"string",columnGroup:a.columnGroup||null,allowHide:void 0===a.allowHide||a.allowHide,allowSort:void 0===a.allowSort||a.allowSort,allowFilter:void 0===a.allowFilter||a.allowFilter,allowGroup:void 0===a.allowGroup||a.allowGroup,visible:void 0===a.visible||a.visible};!1===r.allowHide&&(s--,i.push(r.dataField)),r.visible||(o++,n.push(r.dataField)),t.push(r)})),s<=0&&(a.allowHide=!1,a.disableToggle=!0),e.columns.length===o||s===o&&i.toString()!==n.toString()?a.visible=!1:a.visible=!0}})));const s=e.$.customize,o=t.map((t=>{const a={};return a.visible=t.visible,a.label=t.label,a.dataField=t.dataField,-1!==[e.coverField,e.titleField].indexOf(a.dataField)?a.disableToggle=!0:a.disableToggle=!1,void 0!==t.level&&(a.level=t.level),t.disableDrag&&(a.disableDrag=!0),t.parentDataField&&(a.parentDataField=t.parentDataField),t.allowHide||(a.disableToggle=!0),a}));let n;if(e._closeDialog(),e.$.headerDropDown.classList.add("customize-panel"),e.$.headerDropDown.classList.remove("filter-panel","sort-panel","search-panel","group-panel","format-panel"),s.classList.remove("smart-hidden"),e.$.filter.classList.add("smart-hidden"),e.$.sort.classList.add("smart-hidden"),e.$.search.classList.add("smart-hidden"),e.$.group.classList.add("smart-hidden"),e.$.format.classList.add("smart-hidden"),e._closeSearchPanel(),e._customizePartCreated)n=s.querySelector("smart-column-panel"),n.locale=e.locale,n.messages=e._innerElementMessages.columnPanel,n.set("dataSource",o),n.propertyChangedHandler("dataSource",void 0,o),n.rightToLeft=e.rightToLeft;else{const t=document.createDocumentFragment(),a=document.createElement("smart-column-panel");a.rightToLeft=e.rightToLeft,a.animation=e.animation,a.dataSource=o,a.locale=e.locale,a.messages=e._innerElementMessages.columnPanel,a.theme=e.theme,t.appendChild(a),e.$.customize.appendChild(t),e._customizePartCreated=!0}e._changedVisibility=new Map,e._openHeaderDropDown(e.$.customizeButton)}_applyFilter(e,t){const a=this;a.grid.beginUpdate(),a.grid.context=a.grid,a.grid.clearFilter();for(let t=0;t<e.length;t++){const s=e[t],o=s[0],n=s[1];a.grid.columnByDataField[o].filter=n}a.grid._filterOperator=t,a.grid.endUpdate(),a.grid.refreshFilters(),a.grid.context=document,a.grid.autoSaveState()}_applySort(){const e=this,t=e._appliedSorting;e.grid.beginUpdate(),e.grid.sorting.maintainSort=t.maintainSort,e.grid.context=e.grid,e.grid.clearSort();for(let a=0;a<t.dataFields.length;a++)e.grid.sortBy(t.dataFields[a],t.orderBy[a]);e.grid.endUpdate(),e.grid.context=document,e.grid.autoSaveState()}_getDropDownType(){const e=this;let t=null;return e.$.headerDropDown.classList.contains("filter-panel")?t="filter":e.$.headerDropDown.classList.contains("sort-panel")?t="sort":e.$.headerDropDown.classList.contains("search-panel")?t="search":e.$.headerDropDown.classList.contains("group-panel")?t="group":e.$.headerDropDown.classList.contains("format-panel")?t="format":e.$.headerDropDown.classList.contains("customize-panel")&&(t="customize"),t}_applyHandler(e){const t=this,a=e.target,s=e.detail,o=t.$.customize;if(t.grid&&"kanban"===t.grid.view&&t.grid._kanban&&o.contains(a))return t.grid._kanban._applyHandler(e,"customize"),void t.closePanel();o.contains(a)?t._applyColumns(s.value,s.moves):t.$.filter.contains(a)?t.addFilter(s.filters,s.operator,s.value):t.$.sort.contains(a)&&t.addSort(s.sortByInfo),t.closePanel()}_documentUpHandler(e){const t=this;let a=e.originalEvent.target;const s=t.grid.$.header;t.shadowRoot&&a===t&&(a=e.originalEvent.composedPath()[0]);const o=e.originalEvent.composedPath();for(let e=0;e<o.length;e++){const t=o[e];if(t&&t.classList&&t.classList.contains("smart-menu-item")){const e=t.closest("smart-menu");if(e&&e.classList.contains("smart-grid-views-menu"))return;if(e&&e.classList.contains("smart-grid-download-menu"))return}}if(t._closeDownloadMenu(),t._closeViewsMenu(),!("none"===t.headerPosition||t.$.headerDropDown.classList.contains("smart-visibility-hidden")||a!==s&&s.contains(a))){const o=a.closest("smart-scroll-viewer"),n=a.closest(".smart-drop-down");if((!o||!s.contains(o.ownerElement))&&(!n||n.ownerElement&&!s.contains(n.ownerElement))){const a=e.originalEvent.composedPath();for(let e=0;e<a.length;e++){const t=a[e];if(t&&t.classList&&t.classList.contains("smart-data-view-header-drop-down"))return;if(t&&t.classList&&t.classList.contains("smart-formatting-panel-popup"))return}if(o&&o.ownerElement){const e=o.ownerElement.parents;for(let t=0;t<e.length;t++){const a=e[t];if(a&&a.classList&&a.classList.contains("smart-data-view-header-drop-down"))return}}if(n&&n.ownerElement){const e=n.ownerElement.parents;for(let t=0;t<e.length;t++){const a=e[t];if(a&&a.classList&&a.classList.contains("smart-data-view-header-drop-down"))return}}if(t.$.headerDropDown.querySelector("[open]"))return;t.closePanel()}}}_refreshColumns(e){const t=this,a=t.grid;let s,o=new Map;if("kanban"===a.view&&a._kanban&&"customize"===e)return s=a._kanban._getCustomizeColumnPanelDataSource(),s=JSON.parse(JSON.stringify(s)),t._refreshCustomizeButton(),void(t.columns=s);s=Array.isArray(a.columns)?[...a.columns]:[...a.columns.toArray()],s=s.filter((t=>!1!==t._visible&&!(("filter"===e||"sort"===e)&&("sort"===e&&!t.sortOrder||"filter"===e&&!t.filter)&&!1===t.visible))),s=s.map((e=>{let t=e.allowHide;return a.grouping&&a.grouping.autoHideGroupColumn&&a.dataSource.groupBy.indexOf(e.dataField)>=0&&(t=!1),{label:e.label,dataField:e.dataField,dataType:e.dataType||"string",columnGroup:e.columnGroup||null,allowHide:void 0===e.allowHide||t,allowSort:void 0===e.allowSort||e.allowSort,allowFilter:void 0===e.allowFilter||e.allowFilter,allowGroup:void 0===e.allowGroup||e.allowGroup,visible:void 0===e.visible||e.visible,sortIndex:void 0!==e.sortIndex&&null!==e.sortIndex?e.sortIndex:-1,sortDirection:void 0!==e.sortOrder?e.sortOrder:null,options:e.editor&&e.editor.dataSource?e.editor.dataSource:null}})),s=JSON.parse(JSON.stringify(s)),s.forEach((e=>{let t=e.columnGroup?e.columnGroup+"."+e.label:e.label,a=1;for(;o.get(t);)t=e.columnGroup?e.columnGroup+"."+e.label+` (${a})`:e.label+` (${a})`,a++;o.set(t,e),e.label=t})),t.columns=s,t._refreshCustomizeButton()}_init(e){const t=this;if(t.grid=e,e.dataSource&&e.dataSource.boundSource){t._refreshColumns("init");const a=Array.isArray(e.dataSource.boundSource)?e.dataSource.boundSource:e.dataSource.boundSource.toArray();t.dataSource=new Smart.DataAdapter({observable:!1,dataSource:[...a],dataFields:e.dataSource.dataFields})}t.grid._openRowSettingsDialog=t._openRowSettingsDialog,t.rightToLeft=t.grid.rightToLeft,t.refreshTools(),t.$.headerDropDown.onclick=e=>{t.grid._headerClickHandler(e),e.stopPropagation(),e.preventDefault()},t.grid.removeEventListener("change",t._refreshFromSelection),t.grid.addEventListener("change",t._refreshFromSelection),t._updateViews(),e.header.onInit&&e.header.onInit(t)}_removeMenu(){const e=this;if(e.downloadMenu){const t=e.downloadMenu.querySelector("smart-menu");t&&e.downloadMenu.removeChild(t)}}_removeViewsMenu(){const e=this;if(e.viewsMenu){const t=e.viewsMenu.querySelector("smart-menu");t&&e.viewsMenu.removeChild(t);const a=e.viewsMenu.querySelector(".label");a&&e.viewsMenu.removeChild(a)}}_createViewsMenuItems(){const e=this,t=e.grid;e._removeViewsMenu();const a=document.createElement("smart-menu"),s=document.createDocumentFragment();a.classList.add("smart-grid-views-menu"),a.checkable=!0,a.checkboxes=!0,a.style.width="100%",a.mode="vertical",a.dropDownAppendTo="body",a.rightToLeft=t.rightToLeft,a.style.minWidth="150px";const o=(e,a,s)=>{const o=document.createElement("smart-menu-item");let n="#D50000",i="smart-icon-table-alt";switch(a){case"grid":n="#3f51b5",i="smart-icon-table-alt","grid"===t.view&&s&&(o.setAttribute("focus",""),o.checked=!0),o.title=t.localize("gridView");break;case"kanban":n="#C40093",i="smart-icon-kanban","kanban"===t.view&&s&&(o.setAttribute("focus",""),o.checked=!0),o.title=t.localize("kanbanView")}return o.label='<span style="color: '+n+'" class="smart-grid-icon '+i+'"></span>'+e,o.value=a,o};s.appendChild(o(t.localize("viewGrid"),"grid",!0)),s.appendChild(o(t.localize("viewKanban"),"kanban",!0)),a.appendChild(s),e.viewsMenu.insertBefore(a,e.viewsMenu.children[e.viewsMenu.children.length-1]),e.viewsMenu.onpointerup=()=>!1,a.onItemClick=a=>{e._setView(a.detail.value),e._closeViewsMenu(),t.autoSaveState(),e._updateViews()}}_updateViews(){const e=this,t=e.grid;if(e.$.viewStatesButton.removeAttribute("aria-expanded"),t.stateSettings.enabled&&t.appearance.showViewBar){if(e.$.viewStatesButton.setAttribute("aria-expanded",!0),!t.$.viewBar.querySelector(".smart-grid-view-chooser-container")){const a=document.createElement("div");a.classList.add("smart-grid-view-chooser-container");const s=document.createElement("div");s.classList.add("new-view"),!1===t.editing.enabled&&s.classList.add("smart-hidden");const o=(a,s)=>{a.stopPropagation(),a.preventDefault(),t.beginUpdate(),t.stateSettings.current||(t.stateSettings.current=t.$.viewBar._input.value),t.saveState(),t.stateSettings.current=t.$.viewBar._input.value,e._closeViewsMenu(),t.resetState(),t._kanban&&t._kanban._reset(),delete t.columnByDataField.taskStatus,"kanban"===s&&e._setView("kanban"),t.saveState(),t.endUpdate(),e._updateViews(),t.$.fireEvent("viewChanged",{view:t.view})},n=document.createElement("smart-button");n.classList.add("selected"),n.classList.add("view"),n.innerHTML='<span style="display: flex; align-items: center;"><span style="color: #3f51b5" class="show smart-grid-icon smart-icon-table-alt"></span>'+t.localize("newGrid")+'</span><span style="font-size: 12px; color: rgba(var(--smart-secondary-rgb), 0.6);" class="show smart-grid-icon smart-icon-plus"></span>',n.title=t.localize("gridView");const i=document.createElement("smart-button");i.innerHTML='<span style="display: flex; align-items: center;"><span style="color: #C40093;" class="show smart-grid-icon smart-icon-kanban"></span>'+t.localize("newKanban")+'</span><span style="font-size: 12px; color: rgba(var(--smart-secondary-rgb), 0.6);" class="show smart-grid-icon smart-icon-plus"></span>',i.classList.add("view"),i.title=t.localize("kanbanView");const r=document.createElement("div");r.classList.add("smart-grid-view-storage"),a.appendChild(r);const l=document.createElement("smart-input");l.classList.add("underlined"),l.placeholder=t.localize("viewNamePlaceholder"),l.hint=t.localize("viewNamePlaceholder"),l.onselectstart=e=>{e.stopPropagation()};const d=document.createElement("div");d.innerHTML="<span>"+t.localize("settings")+"</span>",d.classList.add("view-label");const c=document.createElement("div");s.appendChild(c),c.classList.add("footer"),t.users&&t.users.length&&(!1!==t.currentUser&&null!==t.currentUser&&void 0!==t.currentUser||c.classList.add("smart-hidden")),c.appendChild(n),c.appendChild(i);const u=document.createElement("div");u.innerHTML='<span class="smart-grid-icon show smart-icon-plus"></span><span><a href="javascript:void();">'+t.localize("createView")+"</a></span>",u.classList.add("view-button"),u.onclick=e=>{const t=i.classList.contains("selected")?"kanban":"grid";o(e,t)},i.onpointerdown=()=>{i.classList.add("selected"),n.classList.remove("selected"),u.click()},n.onpointerdown=()=>{n.classList.add("selected"),i.classList.remove("selected"),u.click()};const p=()=>{t.stateSettings.storage&&!t.stateSettings.storage[l.value]||l.value&&!t.stateSettings.storage?u.classList.remove("disabled"):u.classList.add("disabled")};l.update=()=>p(),l.onkeyup=l.onchange=()=>{p()},p(),a.appendChild(s),t.$.viewBar._storage=r,t.$.viewBar._input=l,t.$.viewBar.appendChild(a)}let a=t.stateSettings.storage;(a&&0===Object.keys(a).length||!a)&&(t.$.viewBar._input.value||(t.$.viewBar._input.value=t.localize("view")+" 1"),t.stateSettings.current||(t.stateSettings.current=t.$.viewBar._input.value),t.saveState(),t.stateSettings.current=t.$.viewBar._input.value,a=t.stateSettings.storage);const s=t.$.viewBar._storage;if(s.innerHTML="",a){let o=1;const n=document.createDocumentFragment(),i=e=>{delete t.stateSettings.storage[e.valueName],t.stateSettings.current===e.valueName&&(t.stateSettings.current=""),t.stateSettings.onStateChange&&t.stateSettings.onStateChange(t.stateSettings.storage[t.stateSettings.current],e.valueName,t.stateSettings.storage,t.stringify_object),e.remove()},r=a=>{const s=document.createElement("input");s.value=a.valueName;const o=()=>{if(s.value){if(t.stateSettings.storage[s.value])return;const o=t.stateSettings.storage[a.valueName];t.stateSettings.current===a.valueName&&(t.stateSettings.current=s.value),o.name=s.value,t.stateSettings.storage[o.name]=o,t.stateSettings.onStateChange&&t.stateSettings.onStateChange(t.stateSettings.storage[t.stateSettings.current],o.name,t.stateSettings.storage,t.stringify_object),delete t.stateSettings.storage[a.valueName],e._updateViews()}};s.onselectstart=e=>{e.stopPropagation()},s.onpointerdown=s.onpointerup=e=>{e.stopPropagation()},s.onkeydown=e=>{e.stopPropagation()},s.onkeyup=e=>{"Escape"===e.key&&s.remove(),"Enter"===e.key&&o(),e.stopPropagation()},s.onchange=()=>{o()},s.style.width="100%",s.style.height="100%",s.style.position="absolute",s.style.left="0px",s.style.top="0px",s.style.zIndex=99,s.classList.add("smart-input"),s.classList.add("underlined"),a.querySelector(".smart-menu-item-label-element").appendChild(s),setTimeout((()=>{s.focus()}),50)},l=(e,a,s)=>{const o=document.createElement("smart-menu-item");let n="smart-icon-table-alt";switch(a){case"grid":n="smart-icon-table-alt";break;case"kanban":n="smart-icon-kanban"}return o.value=s,o.valueName=e,e===t.stateSettings.current?(o.checked=!0,o.label='<span class="show smart-grid-icon '+n+'"></span><span style="overflow: hidden; text-overflow: ellipsis;">'+e+'</span><span class="show smart-grid-icon smart-icon-mode-edit"></span>'):o.label='<span class="show smart-grid-icon '+n+'"></span><span style="overflow: hidden; text-overflow: ellipsis;">'+e+'</span><span class="show smart-grid-icon smart-icon-mode-edit"></span><span class="show smart-grid-icon smart-icon-delete"></span>',!1!==t.currentUser&&null!==t.currentUser&&void 0!==t.currentUser||(e===t.stateSettings.current?(o.checked=!0,o.label='<span class="show smart-grid-icon '+n+'"></span><span style="overflow: hidden; text-overflow: ellipsis;">'+e+'</span><span class="smart-grid-icon smart-icon-mode-edit"></span>'):o.label='<span class="show smart-grid-icon '+n+'"></span><span style="overflow: hidden; text-overflow: ellipsis;">'+e+'</span><span class="smart-grid-icon smart-icon-mode-edit"></span><span class="smart-grid-icon smart-icon-delete"></span>'),o.ondblclick=e=>{const t=e.target.closest("smart-menu-item");r(t)},o.onclick=e=>{if(e.target&&e.target.classList.contains("smart-icon-delete")){const t=e.target.closest("smart-menu-item");i(t),e.preventDefault(),e.stopPropagation()}else if(e.target&&e.target.classList.contains("smart-icon-mode-edit")){const t=e.target.closest("smart-menu-item");r(t),e.preventDefault(),e.stopPropagation()}else if("INPUT"===e.target.nodeName)return},o};let d=[],c=[];for(let e in a){const t=a[e];c[t.name]||(c[t.name]=t,d.push({name:e,value:t}))}d.sort(((e,t)=>{const a=new Date(e.value.date),s=new Date(t.value.date);return e.name<t.name?-1:e.name>t.name?1:e.name===t.name?0:e.value.date&&t.value.date?a<s?-1:a>s?1:a===s?0:void 0:-1}));for(let e in d){const t=d[e],a=t.name,s=t.value;o++,n.appendChild(l(a,s.view,s))}if(o){const a=document.createElement("smart-menu");a.style.width="100%",a.mode="vertical",a.classList.add("smart-grid-views-menu"),a.checkable=!0,a.checkboxes=!0,a.checkMode="radioButton",a.disableAutoCheck=!0,a.rightToLeft=t.rightToLeft,a.appendChild(n),a.onItemCheckChange=a=>{if(a.detail.checked){const s=a.detail.item;t.loadState(s.valueName),e._updateViews(),t.stateSettings.onStateChange&&t.stateSettings.onStateChange(t.stateSettings.storage[t.stateSettings.current],s.valueName,t.stateSettings.storage,t.stringify_object),setTimeout((()=>{t.querySelector(".smart-grid-views-menu").focus()}),50)}},a.onkeydown=e=>{const t=a.querySelector("smart-menu-item[checked]");t&&"F2"===e.key&&r(t)};const o=document.createElement("div");o.style.display="flex",o.style.marginTop="10px",o.innerHTML='<span class="smart-grid-icon show smart-icon-filter"></span><span>'+t.localize("noViews")+"</span>";const i=document.createElement("smart-input");i.classList.add("underlined"),i.prefix='<span class="smart-grid-icon smart-icon-search show"></span>',i.placeholder=t.localize("commandBarSearch"),i.value=t.$.viewBar.filterValue||"",i.onkeydown=e=>{e.stopPropagation()},i.onselectstart=e=>{e.stopPropagation()},i.onAffixClick=i.onkeyup=()=>{const e=a.querySelectorAll("smart-menu-item");let s=0;o.classList.add("smart-hidden"),a.classList.remove("smart-hidden"),t.$.viewBar.filterValue=i.value,e.forEach((e=>{i.value.length>0?e.valueName.toLowerCase().startsWith(i.value.toLowerCase())?e.classList.remove("smart-hidden"):(e.classList.add("smart-hidden"),s++):e.classList.remove("smart-hidden")})),s===[...e].length&&(o.classList.remove("smart-hidden"),a.classList.add("smart-hidden"))},i.value&&i.onAffixClick(),s.appendChild(i),s.appendChild(a),s.appendChild(o),o.classList.add("smart-hidden")}if(t.stateSettings.storage)for(;t.stateSettings.storage[t.localize("view")+" "+o];)o++;t.$.viewBar._input.value=t.localize("view")+" "+o,t.$.viewBar._input.update()}}}_setView(e,t){const a=this,s=a.grid;if(s.view!==e||!0===t){if("kanban"===e){const e=s.context;if(s.context=s,s.view="kanban",s.context=e,s._kanbanInitialized&&s.columnByDataField.taskStatus)if(s.columnByDataField.taskStatus&&s._stackedBy&&s.columnByDataField.taskStatus.dataField!==s._stackedBy){s.beginUpdate(),delete s.columnByDataField.taskStatus;const e=s.columnByDataField[s._stackedBy];s.columnByDataField.taskStatus=e,s._createKanban(e),s._refreshHeaderBar(),s.endUpdate(!1),s._showKanbanView(),a._refresh()}else s._showKanbanView(),a._refresh();else delete s._kanbanInitialized,s._initKanbanView("dynamic","grid")}else"grid"===e&&(s.view="grid",s._hideKanbanView(),a._refresh());s.$.fireEvent("viewChanged",{view:e}),a._refresh()}}_createMenuItems(){const e=this,t=e.grid;e._removeMenu();const a=document.createElement("smart-menu"),s=document.createDocumentFragment();a.mode="vertical",a.dropDownAppendTo="body",a.classList.add("smart-grid-download-menu"),a.rightToLeft=t.rightToLeft;const o=(e,t)=>{const a=document.createElement("smart-menu-item");let s="#D50000";switch(t){case"csv":s="#3f51b5";break;case"pdf":s="#f4511e";break;case"xlsx":s="#0b8043";break;case"json":s="#8e24aa"}const o='<span style="position: absolute; top: 0px; font-size: 10px; color: '+s+'">'+t+"</span>";return a.label='<span style="color: '+s+'" class="smart-grid-icon smart-icon-docs"></span>'+o+e,a.value=t,a};s.appendChild(o(t.localize("download")+" CSV","csv")),s.appendChild(o(t.localize("download")+" XLSX","xlsx")),s.appendChild(o(t.localize("download")+" JSON","json")),a.appendChild(s),e.downloadMenu.appendChild(a),a.onItemClick=e=>{const a=new Date;t.dataExport.fileName="data_"+a.getFullYear()+"-"+a.getMonth()+"-"+a.getDate(),t.exportData(e.detail.value)}}closePanel(){const e=this;super.closePanel(),e.grid&&e.grid.focus(),e.downloadMenu&&e.downloadMenu.classList.contains("open")?e._closeDownloadMenu():e.viewsMenu&&e.viewsMenu.classList.contains("open")&&e._closeViewsMenu()}_closeDownloadMenu(){const e=this,t=e.downloadMenu;t&&(t.parentNode&&(t.classList.remove("open"),setTimeout((()=>{t&&t.parentNode&&t.parentNode.removeChild(t)}),100)),e.$.downloadButton.classList.remove("selected"),e.$.downloadButton.removeAttribute("aria-expanded"),t.classList.remove("open"))}_openDownloadMenu(){const e=this;if(e.grid.editing.isEditing&&e.grid.cancelEdit(),e.downloadMenu&&e.downloadMenu.classList.contains("open"))return void e._closeDownloadMenu();e.$.headerDropDown.classList.remove("group-panel","customize-panel","filter-panel","sort-panel","search-panel","format-panel"),e.$.group.classList.add("smart-hidden"),e.$.filter.classList.add("smart-hidden"),e.$.customize.classList.add("smart-hidden"),e.$.sort.classList.add("smart-hidden"),e.$.search.classList.add("smart-hidden"),e.$.format.classList.add("smart-hidden"),e.closePanel(),e.$.downloadButton.classList.add("selected"),e.$.downloadButton.setAttribute("aria-expanded",!0),e.downloadMenu||(e.downloadMenu=document.createElement("div"),e.downloadMenu.classList.add("smart-grid-column-menu","smart-grid-download-menu"),e.downloadMenu.setAttribute("theme",e.getAttribute("theme")),e.downloadMenu.id=e.id+"_"+e.tagName.toLowerCase()+"_menu_"+Math.floor(65536*(1+Math.random())).toString(16).substring(1)),e.downloadMenu.classList.add("smart-animate"),e._createMenuItems(),e.downloadMenu.style.height="auto",e.isInShadowDOM?e.getRootNode().appendChild(e.downloadMenu):document.body.appendChild(e.downloadMenu);const t=e.$.downloadButton.getBoundingClientRect();let a=t.left+window.pageXOffset,s=t.bottom+window.pageYOffset;a+e.downloadMenu.offsetWidth>window.innerWidth&&(a=t.right+window.pageXOffset-e.downloadMenu.offsetWidth,a+e.downloadMenu.offsetWidth>window.innerWidth&&(a=window.innerWidth-e.downloadMenu.offsetWidth)),e.downloadMenu.style.left=a+"px",e.downloadMenu.style.top=s+"px",e.downloadMenu.classList.remove("smart-hidden"),e.downloadMenu.classList.add("open")}_closeViewsMenu(){const e=this,t=e.viewsMenu;t&&(t.parentNode&&(t.classList.remove("open"),setTimeout((()=>{t&&t.parentNode&&t.parentNode.removeChild(t)}),100)),t.classList.remove("open"),e.$.viewsButton.classList.remove("selected"),e.$.viewsButton.removeAttribute("aria-expanded"))}_openViewsMenu(){const e=this;if(e.grid.editing.isEditing&&e.grid.cancelEdit(),e.viewsMenu&&e.viewsMenu.classList.contains("open"))return void e._closeViewsMenu();e.$.headerDropDown.classList.remove("group-panel","customize-panel","filter-panel","sort-panel","search-panel","format-panel"),e.$.group.classList.add("smart-hidden"),e.$.filter.classList.add("smart-hidden"),e.$.customize.classList.add("smart-hidden"),e.$.sort.classList.add("smart-hidden"),e.$.search.classList.add("smart-hidden"),e.$.format.classList.add("smart-hidden"),e.closePanel(),e.$.viewsButton.classList.add("selected"),e.$.viewsButton.setAttribute("aria-expanded",!0),e.viewsMenu||(e.viewsMenu=document.createElement("div"),e.viewsMenu.classList.add("smart-grid-column-menu","smart-grid-download-menu","smart-grid-view-chooser"),e.viewsMenu.setAttribute("theme",e.getAttribute("theme")),e.viewsMenu.id=e.id+"_"+e.tagName.toLowerCase()+"_menu_"+Math.floor(65536*(1+Math.random())).toString(16).substring(1)),e.viewsMenu.classList.add("smart-animate"),e._createViewsMenuItems("views"),e.viewsMenu.style.height="auto",e.isInShadowDOM?e.getRootNode().appendChild(e.viewsMenu):document.body.appendChild(e.viewsMenu);const t=e.$.viewsButton.getBoundingClientRect();let a=t.left+window.pageXOffset,s=t.bottom+window.pageYOffset;a+e.viewsMenu.offsetWidth>window.innerWidth&&(a=t.right+window.pageXOffset-e.downloadMenu.offsetWidth,a+e.viewsMenu.offsetWidth>window.innerWidth&&(a=window.innerWidth-e.viewsMenu.offsetWidth)),e.viewsMenu.style.left=a+"px",e.viewsMenu.style.top=s+"px",e.viewsMenu.classList.remove("smart-hidden"),e.viewsMenu.classList.add("open")}_refresh(){const e=this,t=e.grid;e._refreshColumns("refresh");let a=!1;for(let t=0;t<e.columns.length;t++)if("number"===e.columns[t].dataType){a=!0;break}if(t.header.buttons.indexOf("sort")>=0&&t.sorting.enabled?e.$.sortButton.classList.remove("smart-hidden"):e.$.sortButton.classList.add("smart-hidden"),t.header.buttons.indexOf("filter")>=0&&t.filtering.enabled?e.$.filterButton.classList.remove("smart-hidden"):e.$.filterButton.classList.add("smart-hidden"),t.header.buttons.indexOf("group")>=0&&t.grouping.enabled?e.$.groupButton.classList.remove("smart-hidden"):e.$.groupButton.classList.add("smart-hidden"),t.header.buttons.indexOf("columns")>=0?e.$.customizeButton.classList.remove("smart-hidden"):e.$.customizeButton.classList.add("smart-hidden"),t.header.buttons.indexOf("search")>=0?e.$.searchButton.classList.remove("smart-hidden"):e.$.searchButton.classList.add("smart-hidden"),t.header.buttons.indexOf("format")>=0&&a?e.$.formatButton.classList.remove("smart-hidden"):e.$.formatButton.classList.add("smart-hidden"),t.header.buttons.indexOf("delete")>=0&&t.editing.enabled?e.$.deleteButton.classList.remove("smart-hidden"):e.$.deleteButton.classList.add("smart-hidden"),t.header.buttons.indexOf("download")>=0?e.$.downloadButton.classList.remove("smart-hidden"):e.$.downloadButton.classList.add("smart-hidden"),t.header.buttons.indexOf("views")>=0?e.$.viewsButton.classList.remove("smart-hidden"):e.$.viewsButton.classList.add("smart-hidden"),t.header.buttons.indexOf("views")>=0&&t.stateSettings.enabled?e.$.viewStatesButton.classList.remove("smart-hidden"):e.$.viewStatesButton.classList.add("smart-hidden"),e.$.downloadButton.onpointerup=a=>{t.closeMenu(),e._openDownloadMenu(),a.stopPropagation()},e.$.viewsButton.onpointerup=a=>{t.closeMenu(),e._openViewsMenu(),a.stopPropagation()},e.$.viewStatesButton.onpointerup=a=>{t.closeMenu(),e._closeDownloadMenu(),e._closeViewsMenu(),t.appearance.showViewBar=!t.appearance.showViewBar,"kanban"===t.view&&t._refreshContentHeight(),a.stopPropagation(),e._updateViews()},t._sortedColumns){const a=[],s=[],o=[];for(let e=0;e<t._sortedColumns.length;e++){const n=t._sortedColumns[e];a.push(n.dataField),s.push(n.sortOrder),o.push(n.dataType)}e._appliedSorting={dataFields:a,dataTypes:o,orderBy:s},e._refreshSortButton()}if("grid"===t.view){const a={filters:[],operator:"and"},s=t.getFilteredColumns();if(s)for(let e in s){const t=s[e];for(let s=0;s<t.filters.length;s++){const o=t.filters[s];a.filters.push([e,o.condition,o.value])}}e._appliedFiltering&&(a.operator=e._appliedFiltering.operator),e._appliedFiltering=a,e._refreshFilterButton()}else e.$.sortButton.classList.add("smart-hidden"),e.$.filterButton.classList.add("smart-hidden");e._appliedGrouping?e._appliedGrouping.dataFields=t.dataSource.groupBy:e._appliedGrouping={dataFields:t.dataSource.groupBy,expandAll:!1,collapseAll:!1},e._refreshCustomButton(),e._refreshGroupButton(),e._refreshDeleteButton(),e._refreshDownloadButton(),e._refreshCustomizeButton(),e._refreshViewsButton(),e.refreshTools(),Smart.Utilities.Core.isMobile&&(e.$.searchButton.classList.add("smart-hidden"),e.$.formatButton.classList.add("smart-hidden"),e.$.customButton.classList.add("smart-hidden"),e.$.headerDropDown.classList.add("smart-mobile"),t.$.viewBar.classList.add("smart-mobile")),!1===t.editing.enabled&&(e.$.customButton.classList.add("smart-hidden"),e.$.downloadButton.classList.add("smart-hidden"),e.$.viewsButton.classList.add("smart-hidden"))}_refreshCustomButton(){const e=this,t=e.grid;t.header.customButton.visible?(e.$.customButton.style.paddingLeft="0px",e.$.customButton.classList.remove("smart-hidden")):e.$.customButton.classList.add("smart-hidden"),t.header.customButton.enabled?e.$.customButton.classList.remove("smart-disabled"):e.$.customButton.classList.add("smart-disabled"),e.$.customButton.innerHTML=`<span class="smart-grid-icon show ${t.header.customButton.icon}"></span><div class="smart-tool-label" role="presentation">${t.header.customButton.label}</div>`,e.$.customButton.onclick=()=>{t.header.customButton.command&&t.header.customButton.command()}}_refreshViewsButton(){const e=this;let t=e.grid.localize("viewGrid");switch(e.grid.view){case"kanban":t=e.grid.localize("viewKanban"),e.$.viewsButton.classList.add("kanban");break;case"grid":e.$.viewsButton.classList.remove("kanban"),t=e.grid.localize("viewGrid")}e.$.viewsButton.innerHTML='<div class="smart-tool-label" role="presentation">'+t+"</div>",e.$.viewStatesButton.innerHTML='<div class="smart-tool-label" role="presentation">'+this.grid.localize("views")+"</div>"}_refreshDownloadButton(){this.$.downloadButton.innerHTML='<div class="smart-tool-label" role="presentation">'+this.grid.localize("download")+"</div>"}_openRowSettingsDialog(e){let t=this;t.getSelectedRows||(t=t.grid);const a=t.editing.dialog.enabled,s=t.editing.mode,o=t.context;t.context=t,t.editing.dialog.enabled=!0,t.editing.mode="row",t._settingsDialogRowId=e;let n=t._isUpdating;"grid"!==t.view&&(t._isUpdating=0),t.beginEdit(e),t._isUpdating=n,t._endToolbarEdit?(t.removeEventListener("endEdit",t._endToolbarEdit,null),t.removeEventListener("cancelEdit",t._endToolbarEdit,null)):t._endToolbarEdit=()=>{t.context=t,t.editing.dialog.enabled=a,t.editing.mode=s,t.editing.isEditing=!1,t.context=o,delete t._settingsDialogRowId,delete t._dialogEdit},t.addEventListener("endEdit",t._endToolbarEdit),t.addEventListener("cancelEdit",t._endToolbarEdit)}_refreshDeleteButton(){let e=this;if(e.getSelectedRows||(e=e.grid),-1===e.header.buttons.indexOf("delete"))return;const t=e.getSelectedRows().length,a=e.querySelector("smart-grid-toolbar").$.deleteButton;0!==t?(!0===e.editing.enabled?a.classList.remove("smart-hidden"):a.classList.add("smart-hidden"),a.firstElementChild.innerHTML=1===t?e.localize("deleteByOne"):e.localize("deleteByMultiple",{n:t}),a.classList.add("selected"),a.onclick=()=>{const t=e.getSelectedRows().map((e=>e[0]));this.grid.removeRow(t)}):a.classList.add("smart-hidden")}_refreshFromSelection(){this.querySelector("smart-grid-toolbar")._refreshDeleteButton()}openGroupPanel(e){const t=this;let a;const s=t.grid;if("kanban"===s.view)return;t.$.headerDropDown.classList.add("group-panel"),t.$.headerDropDown.classList.remove("customize-panel","filter-panel","sort-panel","search-panel","format-panel"),t.$.group.classList.remove("smart-hidden"),t.$.filter.classList.add("smart-hidden"),t.$.customize.classList.add("smart-hidden"),t.$.sort.classList.add("smart-hidden"),t.$.search.classList.add("smart-hidden"),t.$.format.classList.add("smart-hidden"),t._closeDownloadMenu(),t._closeViewsMenu(),t._refreshColumns("group"),s.closeMenu();const o=t.columns.map((e=>{const a=Object.assign({},e);if(t._appliedGrouping&&t._appliedGrouping.dataFields){const e=t._appliedGrouping.dataFields.indexOf(a.dataField);a.groupIndex=e}return a})).filter((e=>e.allowGroup));e&&t._appliedGrouping&&-1===t._appliedGrouping.dataFields.indexOf(e.dataField)&&(o.find((t=>t.dataField===e.dataField)).groupIndex=t._appliedGrouping.dataFields.length),t._groupPartCreated?(a=t.$.group.firstElementChild,a.rightToLeft=t.rightToLeft,a.dataSource=o,a.locale=t.locale,a.messages=t._innerElementMessages.groupPanel):(a=document.createElement("smart-group-panel"),a.rightToLeft=t.rightToLeft,a.animation=t.animation,a.locale=t.locale,a.messages=t._innerElementMessages.groupPanel,a.theme=t.theme,a.dataSource=o,t.$.group.appendChild(a),t._groupPartCreated=!0,a.onExpandAll=()=>{if(t._appliedGrouping.expandAll)return t._appliedGrouping.expandAll=!1,void a.querySelector(".smart-group-panel-expand-button").removeAttribute("active");t._appliedGrouping.expandAll=!0,t._appliedGrouping.collapseAll=!1,a.querySelector(".smart-group-panel-expand-button").setAttribute("active",""),a.querySelector(".smart-group-panel-collapse-button").removeAttribute("active")},a.onCollapseAll=()=>{if(t._appliedGrouping.collapseAll)return t._appliedGrouping.collapseAll=!1,void a.querySelector(".smart-group-panel-collapse-button").removeAttribute("active");t._appliedGrouping.expandAll=!1,t._appliedGrouping.collapseAll=!0,a.querySelector(".smart-group-panel-collapse-button").setAttribute("active",""),a.querySelector(".smart-group-panel-expand-button").removeAttribute("active")},a.addEventListener("apply",(e=>{const a=e.detail.sortByInfo,o=t._appliedGrouping.dataFields;t._appliedGrouping.dataFields=a.dataFields;const n=s.onRowInserted;if(s.onRowInserted=null,s.beginUpdate(),s.grouping.autoHideGroupColumn&&o)for(let e=0;e<o.length;e++){const t=s.columnByDataField[o[e]];t&&(t.visible=!0)}s.clearGroups();for(let e=0;e<a.dataFields.length;e++){const t=a.dataFields[e];s.addGroup(t)}t._appliedGrouping.expandAll&&s.expandAllRows(),t._appliedGrouping.collapseAll&&s.collapseAllRows(),s.endUpdate(),s.autoSaveState();const i=[];for(let e=0;e<s.dataSource.groupBy.length;e++)i.push(s.dataSource.groupBy[e]);s.$.fireEvent("group",{groups:i}),s.paging.enabled&&s._refreshPagesCount(),s.onRowInserted=n}))),t._refreshGroupButton(),t._openHeaderDropDown(t.$.groupButton)}_refreshGroupButton(){const e=this,t=e._appliedGrouping.dataFields?e._appliedGrouping.dataFields.length:0;if(e.grid&&"kanban"===e.grid.view){e.$.groupButton.onclick=()=>{"kanban"===e.grid.view&&e.grid._initKanbanView("dynamic","kanban")};const t=e.grid.columnByDataField[e.grid._stackedBy];t?(e.$.groupButton.firstElementChild.innerHTML=e.localize("groupedBy",{column:t.label}),e.$.groupButton.classList.add("grouped")):e.$.groupButton.classList.remove("grouped")}else{if(0===t){const t=e.localize("group");return e.$.groupButton.firstElementChild.innerHTML!==t&&(e.$.groupButton.firstElementChild.innerHTML=t),void e.$.groupButton.classList.remove("grouped")}e.$.groupButton.firstElementChild.innerHTML=1===t?e.localize("groupedByOne"):e.localize("groupedByMultiple",{n:t}),e.$.groupButton.classList.add("grouped")}}openSearchPanel(){this._openSearchPanel()}_closeSearchPanel(){this._search(this.$.searchInput.value,!1),super._closeSearchPanel()}_openSearchPanel(){const e=this,t=e.grid;if(e.$.headerDropDown.classList.add("search-panel"),e.$.headerDropDown.classList.remove("customize-panel","filter-panel","sort-panel","group-panel","format-panel"),e.$.search.classList.remove("smart-hidden"),e.$.customize.classList.add("smart-hidden"),e.$.group.classList.add("smart-hidden"),e.$.filter.classList.add("smart-hidden"),e.$.sort.classList.add("smart-hidden"),e.$.format.classList.add("smart-hidden"),e._openHeaderDropDown(e.$.searchButton),e._closeDownloadMenu(),e._closeViewsMenu(),t.closeMenu(),"filter"===t.header.searchCommand){const t=e.$.headerDropDown.querySelector(".smart-data-view-search-prev"),a=e.$.headerDropDown.querySelector(".smart-data-view-search-next");t.classList.add("smart-hidden"),a.classList.add("smart-hidden")}const a=[],s=t.getVisibleRows();for(let e=0;e<s.length;e++)a.push(Object.assign(s[e].data));const o=new Smart.DataAdapter({id:"id",observable:!1,dataSource:a,dataFields:t.dataSource.dataFields});e._searchInfo={source:o,stringDataFields:e.dataSource.dataFields.filter((e=>"string"===e.dataType)).map((e=>e.name))},""!==e.$.searchInput.value&&e._search(e.$.searchInput.value,!1)}_search(e,t=!0){const a=this;if(!a._searchInfo)return;if(a._searchInfo.query=e,""===e)return a.$.search.classList.remove("matches","no-matches"),delete a._searchInfo.foundIdsArray,delete a._searchInfo.foundIdsObject,delete a._searchInfo.highlighted,a.grid.highlighted=null,a.grid._recycle(!1),void("filter"===a.grid.header.searchCommand&&a.grid.clearFilter());const s=a._searchInfo.source,o=[],n=[],i={};a._searchInfo.stringDataFields.forEach((t=>{const a=new Smart.Utilities.FilterGroup,s=a.createFilter("string",e,"CONTAINS");a.addFilter("or",s),o.push([t,a])})),s._filter(o,"or");for(let e=0;e<s.length;e++){const t=s[e];!1!==t.$.filtered&&(n.push(t.$.id),i[t.$.id]=!0)}if(a._searchInfo.foundIdsArray=n,a._searchInfo.foundIdsObject=i,a.grid.highlighted=null,"filter"===a.grid.header.searchCommand){a.grid.beginUpdate();const t=a.grid.filtering.operator;return a.grid.filtering.operator="or",a.grid.clearFilter(),a._searchInfo.stringDataFields.forEach((t=>{const s=new Smart.Utilities.FilterGroup,o=s.createFilter("string",e,"CONTAINS"),n=a.grid.columnByDataField[t];if(n&&n.editor&&n.editor.dataSource)return!1;n&&(s.addFilter("or",o),a.grid.addFilter(t,s),n._filterInfo&&(n._filterInfo.value=n.filter.filters[0].value,n._filterInfo.condition=n.filter.filters[0].condition))})),a.grid.endUpdate(),a.grid.refreshFilters(),void(a.grid.filtering.operator=t)}if(n.length>0)return a.$.search.classList.remove("no-matches"),a.$.search.classList.add("matches"),a.$.searchLabel.innerHTML=a.localize("found",{nth:t?1:0,n:n.length}),a._searchInfo.highlighted=n[0],a.grid.highlighted=a._searchInfo.highlighted,a.grid.ensureVisible(a._searchInfo.highlighted),void a.grid._recycle(!1);a.$.search.classList.remove("matches"),a.$.search.classList.add("no-matches"),a.$.searchLabel.innerHTML=a.localize("found",{nth:0,n:0})}_refreshCustomizeButton(){const e=this,t=e.grid;let a=0;if("kanban"===t.view&&t._kanban)return e.$.customizeButton.innerHTML='<div class="smart-tool-label" role="presentation">'+t._kanban.localize("customize")+"</div>",e.$.customizeButton.classList.remove("hidden"),void e.$.customizeButton.classList.add("smart-hidden");for(let e=0;e<t.columns.length;e++){const s=t.columns[e];s.autoGenerated||!1!==s._visible&&(t.grouping&&t.grouping.autoHideGroupColumn&&t.dataSource.groupBy.indexOf(s.dataField)>=0||s.visible||a++)}a>0?(e.$.customizeButton.innerHTML=1===a?'<div class="smart-tool-label" role="presentation">'+t.localize("customizeOne",{n:a})+"</div>":'<div class="smart-tool-label" role="presentation">'+t.localize("customizeHidden",{n:a})+"</div>",e.$.customizeButton.classList.add("hidden")):(e.$.customizeButton.innerHTML='<div class="smart-tool-label" role="presentation">'+t.localize("customize")+"</div>",e.$.customizeButton.classList.remove("hidden")),e._refreshMobileViewTools()}_applyColumns(e,t){const a=this,s=a.grid;s.beginUpdate();let o=0,n=[],i=[],r=[];const l=s.onColumnChange;s.onColumnChange=null;for(let t in e){const a=e[t],l=s.columnByDataField[a.dataField];l&&(l.visible!==a.visible&&(n.push(a),i.push(l.visible),r.push(a.visible)),l.visible=a.visible,a.visible||o++)}s.onColumnChange=l,s.onColumnChange?s.onColumnChange(n,"visible",i,r):s.$.fireEvent("columnChange",{column:n,propertyName:"visible",oldValue:i,value:r}),o>0?(a.$.customizeButton.innerHTML='<div class="smart-tool-label" role="presentation">'+s.localize("customizeHidden",{n:o})+"</div>",a.$.customizeButton.classList.add("hidden")):(a.$.customizeButton.innerHTML='<div class="smart-tool-label" role="presentation">'+s.localize("customize")+"</div>",a.$.customizeButton.classList.remove("hidden"));for(let e=0;e<t.length;e++){const a=t[e],o=a.oldIndex,n=a.newIndex,i=s.columns[n+1],r=s.columns[n-1],l=s.columns[o];i?l.columnGroup=i.columnGroup:r&&(l.columnGroup=r.columnGroup),s.reorderColumns(o,n,!0)}if(s.filtering.enabled&&s.filtering.filterRow)for(let e=0;e<s.columns.length;e++)s.columns[e]._filterEditorInitialized=!1;s.endUpdate();const d=s.grouping.enabled;d&&s._filters&&s.refreshFilters(d),s.autoSaveState()}});
@@ -1,5 +1,5 @@
1
1
 
2
- /* Smart UI v17.0.3 (2023-10-20)
2
+ /* Smart UI v17.0.17 (2023-11-08)
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 v17.0.3 (2023-10-20)
2
+ /* Smart UI v17.0.17 (2023-11-08)
3
3
  Copyright (c) 2011-2023 jQWidgets.
4
4
  License: https://htmlelements.com/license/ */ //
5
5
 
6
- Smart.Utilities.Assign("Grid.View",class{createBasicKanban(){this._initKanbanView("basic")}createBlankKanban(){this._initKanbanView("blank")}_getStatusColumn(e){const t=this;let a=!e||e&&"blank"===e?t.localize("dialogNewColumn"):t.localize("status");return t.columnByDataField.taskStatus&&(a=t.columnByDataField.taskStatus.label),new Smart.Grid.Column({label:a,description:t.localize("dialogAddColumnStatusDescription"),dataField:"taskStatus",showDescriptionButton:!0,dataType:"string",defaultValue:"",editor:{template:"multiComboInput",readonly:!0,dropDownButtonPosition:"right",colorItems:!0,autoOpen:!0,pills:!0,singleSelect:!0,dataSource:[{color:"#DD5347",label:"",value:""},{color:"#33B679",label:t.localize("toDo"),value:"To Do"},{color:"#039BE5",label:t.localize("inProgress"),value:"In Progress"},{color:"#8E24AA",label:t.localize("done"),value:"Done"}]},template:"tags",cellsAlign:"left",align:"left",grid:t,visible:!0,_visible:!0,_view:!0})}_initKanbanView(e,t){const a=this;a._kanbanInitialized=!0;let i=null;for(let e=0;e<a.columns.length;e++){const t=a.columns[e];t._dataField&&!a.columnByDataField[t._dataField]&&(a.columnByDataField[t._dataField]=t),a._stackedBy||(t.statusColumn||"taskStatus"===t._dataField)&&(i=t),a._stackedBy&&a._stackedBy===t.dataField&&(i=t,a.columnByDataField.taskStatus=t,i.statusColumn=!0)}(()=>{if(!a.columnByDataField.taskText)for(let e=0;e<a.columns.length;e++){const t=a.columns[e];if("string"===t.dataType&&t.editor&&"input"===t.editor.template){a.columnByDataField.taskText=t,t._dataField="taskText";break}}if(!a.columnByDataField.taskDescription)for(let e=0;e<a.columns.length;e++){const t=a.columns[e];if("string"===t.dataType&&t.editor&&"textarea"===t.editor.template){a.columnByDataField.taskDescription=t,t._dataField="taskDescription";break}}})();const l=a._getStatusColumn(e);a._onColumnUpdated=(e,t)=>{if(!e._view)return;delete e._view,delete e._state,delete a._onColumnUpdated,e.allowSort=e.allowEdit=e.allowFilter=!0;const i=Math.floor(9e4*Math.random()+1e4);if(delete a.columnByDataField.taskStatus,"blank"===t.kanban?(e.displayField=e.dataField="dataField"+i,e.editor={template:"multiComboInput",readonly:!0,dropDownButtonPosition:"right",colorItems:!0,autoOpen:!0,pills:!0,defaultValue:"",singleSelect:!0,dataSource:[{color:"#DD5347",label:"",value:""}]},a.columnByDataField.taskStatus=e):"basic"===t.kanban?(e.displayField=e.dataField="dataField"+i,a.columnByDataField.taskStatus=e):(e=a.columnByDataField[t.kanban],a.columnByDataField.taskStatus=e),e.statusColumn=!0,a._stackedBy===e.dataField&&a._kanban)a._showKanbanView();else{if(a._stackedBy=e.dataField,""===e.editor.dataSource[0])e.editor.dataSource[0]={label:"",value:""};else{let t=!1;for(let a=0;a<e.editor.dataSource.length;a++)if(""===e.editor.dataSource[a].value){t=!0;break}t||(e.editor.dataSource[0].value="")}a.beginUpdate(),a._createKanban(e),a._refreshHeaderBar(),a.endUpdate(!1),a.autoSaveState(),a._showKanbanView(),a.$.headerBar&&a.$.headerBar._refresh()}};const o=()=>{let e=!0;a.beginUpdate(),a._kanban?a.columnByDataField[l.dataField]||(a.columns.push(l),a._updateKanbanView(l)):(a._createKanban(i),e=!1),a._resetCachedLayout(),a._refreshHeaderBar(),a.endUpdate(),a.$.headerBar&&a.$.headerBar._refresh(),e&&a._showKanbanView()};if(a.stateSettings.loading&&i&&"dynamic"===e)return void o();const n=a.getCurrentState();if(i&&"dynamic"!==e){if(l.statusColumn=!0,a._stackedBy===l.dataField&&a._kanban)return;return a._stackedBy=i.dataField,delete l._view,void o()}return i&&"dynamic"===e&&a.stateSettings.storage&&n&&n.kanban&&n.kanban.stackedBy===i.dataField&&!a._kanban?(delete l._view,void o()):e&&"blank"===e?(delete l._view,l.editor={template:"multiComboInput",readonly:!0,dropDownButtonPosition:"right",colorItems:!0,autoOpen:!0,pills:!0,singleSelect:!0,dataSource:[]},l.allowSort=l.allowEdit=l.allowFilter=!0,l.label="New Column",a.beginUpdate(),a._createKanban(l),a._resetCachedLayout(),a._refreshHeaderBar(),void a.endUpdate()):e&&"basic"===e?(delete l._view,a.beginUpdate(),a._createKanban(l),a._resetCachedLayout(),a._refreshHeaderBar(),void a.endUpdate()):void a._openAddStackColumnDialog(l,!0,(e=>{e||"grid"!==t||(delete a._kanbanInitialized,a.view="grid",a._hideKanbanView(),a._refresh(),a.autoSaveState())}))}_showKanbanView(e){const t=this;if(t.classList.contains("smart-kanban-view"))return t._updateKanbanView(),void t._kanban.refresh();t.beginUpdate(),t.$.viewContent.classList.remove("smart-hidden"),t.$.content.classList.add("smart-hidden"),t.$.footerPager.classList.add("smart-hidden"),t._showAddNewRowButton("float"),t.$.viewContent.appendChild(t._kanban),t.classList.add("smart-kanban-view"),!1!==e&&t._updateKanbanView(),requestAnimationFrame((()=>{t._kanban.refresh();const a=t.getCurrentState();a&&a.kanban&&t._kanban.isInitialized&&(e=t._kanban.loadState(a.kanban))})),t._onFilter=t._onSort=()=>{if("kanban"===t.view){if(t._isUpdating)return;t._updateKanbanView(),t._kanban.refresh()}}}_hideKanbanView(){const e=this;e.classList.contains("smart-kanban-view")&&(e.$.viewContent.classList.add("smart-hidden"),e.$.content.classList.remove("smart-hidden"),e.$.footerPager.classList.remove("smart-hidden"),e._kanban._closeAllLists(),e._kanban.remove(),e.classList.remove("smart-kanban-view"),e._resetCachedLayout(),e.dataSource.boundHierarchy&&(e.dataSource.refreshHierarchy(),e._refreshRowHierarchy(!0,!0)),e.endUpdate(),e.dataSource.boundHierarchy&&e._recycle())}_getPriorityDataSource(){const e=this;return[{color:"#F4511E",label:"",value:""},{color:"#33B679",label:e.localize("priority_low"),value:"Low"},{color:"#039BE5",label:e.localize("priority_average"),value:"Average"},{color:"#DD5347",label:e.localize("priority_high"),value:"High"},{color:"#AF0020",label:e.localize("priority_critical"),value:"Critical"}]}_updateKanbanTaskFields(){const e=this;for(let t=0;t<e.columns.length;t++){const a=e.columns[t];if(a.dataField.startsWith("taskStartDate")){const t=e._getKanbanTaskField("startDate");a.editor=t.editor}else if(a.dataField.startsWith("taskDueDate")){const t=e._getKanbanTaskField("dueDate");a.editor=t.editor}else if("checklist"===a.template){const t=e._getKanbanTaskField("checklist");a.editor=t.editor}}}_getKanbanTaskField(e){const t=this;switch(e){case"startDate":return new Smart.Grid.Column({label:t.localize("dialogAddColumnTypeStartDate"),dataField:"taskStartDate",cellsFormat:"d",showDescriptionButton:!0,dataType:"date",allowDelete:!0,editor:{template:"dateInput",autoOpen:!0,onValidate:(e,a)=>!(e>a.taskDueDate&&a.taskDueDate&&e)||t.localize("invalidMaxValue",{value:t.localize("dialogAddColumnTypeStartDate"),max:a.taskDueDate.toLocaleDateString()})},template:"startDate",visible:!0,_visible:!0,grid:t});case"dueDate":return new Smart.Grid.Column({label:t.localize("dialogAddColumnTypeDueDate"),dataField:"taskDueDate",cellsFormat:"d",showDescriptionButton:!0,allowDelete:!0,dataType:"date",editor:{template:"dateInput",autoOpen:!0,onValidate:(e,a)=>!(e<a.taskStartDate&&a.taskStartDate&&e)||t.localize("invalidMinValue",{value:t.localize("dialogAddColumnTypeDueDate"),min:a.taskStartDate.toLocaleDateString()})},template:"dueDate",visible:!0,_visible:!0,grid:t});case"progress":return new Smart.Grid.Column({label:t.localize("dialogAddColumnTypeProgress"),dataField:"taskProgress",showDescriptionButton:!0,allowDelete:!0,visible:!0,_visible:!0,disabledDialogOptions:["numberFormat","minValue","maxValue"],dataType:"number",cellsFormat:"p0",template:"progress",editor:{disabledDialogOptions:!0,template:"numberInput",min:0,max:1},grid:t});case"checklist":return new Smart.Grid.Column({label:t.localize("dialogAddColumnTypeChecklist"),dataField:"taskChecklist",allowGroup:!1,showDescriptionButton:!0,allowSort:!1,allowDelete:!0,allowFilter:!1,visible:!0,_visible:!0,disabledDialogOptions:["allowFilter","allowSort","allowColorItems","options"],template:"checklist",editor:{template:"<smart-multi-combo-input></smart-multi-combo-input>",settings:{inputTagsMode:"one",readonly:!0,allowItemsAdd:!0,allowItemsRemove:!0},onRender:function(e,a,i,l){const o="string"==typeof l[a]&&l[a]?JSON.parse(l[a]):l[a],n=[],s=i.firstElementChild;if(s.isInitialized&&t._kanban&&t._kanban.messages[t.locale]&&(s.messages[t.locale].tagLabel=t._kanban.messages[t.locale].taskCompleted,s.messages[t.locale].tagLabelOne=t._kanban.messages[t.locale].taskCompleted),o){const e=o.map((e=>{const t={label:e.text,value:e.text};return e.completed&&n.push(t),t}));s.dataSource=e}else s.dataSource=[];s.selectedItems=n,!t.editing.editRow&&s.open&&s.open()},setValue:function(){},getValue:function(){const e=this.firstElementChild;return e.dataSource.map((t=>{const a=e.selectedItems.find((e=>t.value===e.value));return{text:t.label,completed:void 0!==a}}))}},dataType:"any",grid:t});case"priority":return new Smart.Grid.Column({label:t.localize("dialogAddColumnTypePriority"),dataField:"taskPriority",showDescriptionButton:!0,dataType:"string",visible:!0,_visible:!0,allowDelete:!0,disabledDialogOptions:[],editor:{template:"multiComboInput",readonly:!0,allowEmptyItem:!1,dropDownButtonPosition:"right",colorItems:!0,autoOpen:!0,pills:!0,singleSelect:!0,dataSource:t._getPriorityDataSource()},template:"tags",grid:t});case"tags":return new Smart.Grid.Column({label:t.localize("dialogAddColumnTypeTags"),dataField:"taskTags",allowDelete:!0,allowGroup:!1,visible:!0,_visible:!0,allowTypeChange:!1,editor:{template:"multiComboInput",readonly:!0,allowEmptyItem:!1,dropDownButtonPosition:"right",colorItems:!0,autoOpen:!0,pills:!0,singleSelect:!1,dataSource:[]},showDescriptionButton:!0,dataType:"string",template:"tags",grid:t});case"name":return new Smart.Grid.Column({label:t.localize("dialogAddColumnTypeName"),allowDelete:!0,allowGroup:!1,dataField:"taskText",showDescriptionButton:!0,dataType:"string",_visible:!0,visible:!0,grid:t});case"description":return new Smart.Grid.Column({label:t.localize("dialogAddColumnTypeDescription"),dataField:"taskDescription",allowGroup:!1,allowDelete:!0,showDescriptionButton:!0,editor:{template:"textarea"},dataType:"string",_visible:!0,visible:!0,grid:t});case"assigned":{let e=[{label:"",value:"",color:"#DD5347"}];for(let a=0;a<t.users.length;a++)e.push({label:t.users[a].name,value:t.users[a].id,id:t.users[a].id,image:t.users[a].image,color:t.users[a].color||""});return new Smart.Grid.Column({label:t.localize("dialogAddColumnTypeAssigned"),allowDelete:!0,dataField:"taskUserId",showDescriptionButton:!0,disabledDialogOptions:["allowColorItems","options"],editor:{template:"multiComboInput",readonly:!0,collaborator:!0,disabledDialogOptions:!0,colorItems:!0,dropDownButtonPosition:"right",autoOpen:!0,pills:!0,singleSelect:!0,dataSource:e},dataType:"string",visible:!0,_visible:!0,template:"tags",grid:t})}case"color":return new Smart.Grid.Column({label:t.localize("dialogAddColumnTypeColor"),allowDelete:!0,dataField:"taskColor",showDescriptionButton:!0,dataType:"string",disabledDialogOptions:["minLength","maxLength"],editor:{template:"colorInput"},template:"color",width:80,visible:!0,_visible:!0,grid:t});case"status":return t._getStatusColumn("basic")}}_getKanbanTaskFields(e){const t=this,a=[],i=t._getKanbanTaskField("startDate"),l=t._getKanbanTaskField("dueDate"),o=t._getKanbanTaskField("priority"),n=t._getKanbanTaskField("tags"),s=t._getKanbanTaskField("progress"),d=t._getKanbanTaskField("description"),r=t._getKanbanTaskField("name"),u=t._getKanbanTaskField("color"),c=t._getKanbanTaskField("checklist");let m=!0;for(let e=0;e<t.columns.length;e++){const a=t.columns[e];if(a.editor&&a.editor.collaborator){m=!1;break}}if(a.push(r),a.push(d),a.push(e),a.push(i),a.push(l),a.push(s),a.push(o),a.push(n),a.push(c),a.push(u),m){let e=[""];for(let a=0;a<t.users.length;a++)e.push({label:t.users[a].name,value:t.users[a].id,id:t.users[a].id,image:t.users[a].image,color:t.users[a].color||""});const l=t._getKanbanTaskField("assigned");a.push(l),t._kanbanViewColumns=[i,l,s,o,n,c,u]}else t._kanbanViewColumns=[i,s,o,n,c,u];return a}getKanbanState(){const e=this;if(e._kanban){const t=e._kanban.getState(["order","sorting","filtering","columnOrder","collapsed"]);return e._stackedBy&&(t.stackedBy=e._stackedBy),t}return{}}getKanbanProperties(){const e=this;if(e._kanbanProperties)return e._kanbanProperties;e._kanbanProperties={};const t={taskColorEntireSurface:!1,collapsible:!0,addNewButton:!0,addNewButtonDisplayMode:"both",addNewColumn:!0,allowCustomTags:!1,allowColumnRemove:!0,editable:!0,editMode:"singleClick",columnActions:!0,columnEditMode:"headerAndMenu",allowColumnEdit:!0,allowColumnReorder:!0,taskActions:!0,taskDue:!0,taskTags:!1,tags:[],taskColor:!0,autoColumnHeight:!0,columnWidth:270,taskComments:!0,taskProgress:!0,columnSummary:!0,columnColors:!0,taskPriority:!0,disableAddNewDialog:!0,taskUserIcon:!0,taskSubTasks:"none",taskCustomFieldsHide:!0,columnColorEntireSurface:!0,columnFooter:!0,userList:!0,allowDropPlaceholder:!0};return!1===e.editing.enabled&&(t.allowDrag=!1,t.allowDrop=!1,t.allowColumnReorder=!1,t.allowColumnRemove=!1,t.allowColumnEdit=!1,t.addNewButton=!1,t.addNewColumn=!1,t.columnActions=!1,t.editable=!1),e._kanbanProperties=Object.assign({},t),e._kanbanProperties}setKanbanProperties(e){const t=this,a=t.getKanbanProperties();for(let t in e)void 0!==e[t]&&void 0!==a[t]&&(a[t]=e[t]);t.columnByDataField.taskTags&&(t.columnByDataField.taskTags.editor.dataSource=a.tags),t._kanbanProperties=a,t.classList.contains("smart-kanban-view")&&(t._updateKanbanView(),t._kanban.refresh())}_updateKanbanView(e){const t=this;if(!t._kanban)return;if(!t.isInitialized)return;if(!e&&!(e=t.columnByDataField.taskStatus))return;const a=t._kanban,i=a.context;a.context=a;const l=e.editor.dataSource&&e.editor.dataSource.length>0?e.editor.dataSource:[{label:e.label,value:e.value,color:"#DD5347"}];a.users=t.users,a.currentUser=t.currentUser;const o=t.getKanbanProperties();for(let e in o)a[e]=o[e];let n=[];for(let e=0;e<t.columns.length;e++){const a=t.columns[e];let i=a.dataField;if(a._dataField&&(i=a._dataField),i.startsWith("task")){let e=i.replace("task","");e=e.substring(0,1).toLowerCase()+e.substring(1),-1===n.indexOf(e)&&n.push(e)}}a.$.scrollViewer&&(a.$.scrollViewer.scrollLeft=0),a.dialogEditors=n;let s=[];for(let e=0;e<l.length;e++){const a=l[e];let i=a.label;""===a.label&&(i=a.labelAlt?a.labelAlt:t.localize("uncategorized")),s.push({label:i,value:a.value,status:a.value,dataField:a.value,color:a.color})}a.columns=s;let d=[];for(let e=0;e<t.columns.length;e++){const a=t.columns[e];if(a.dataField.startsWith("task"))continue;if(t._stackedBy===a.dataField)continue;if(a._dataField&&("taskStatus"!==a._dataField||a._dataField===t._stackedBy))continue;if(!1===a.allowEdit)continue;if("any"===a.dataType)continue;d.push({label:a.label||"",dataField:a.dataField,dataType:a.dataType,visible:a.visible,editor:a.editor.template});const i=d[d.length-1];a.editor.dataSource&&(i.dataSource=[...a.editor.dataSource]),a.editor.colorItems&&(i.colorItems=a.editor.colorItems),a.editor.colorItems&&(i.pills=a.editor.pills),a.editor.colorItems&&(i.singleSelect=a.editor.singleSelect),a.editor.dropDownButtonPosition&&(i.dropDownButtonPosition=a.editor.dropDownButtonPosition),["min","max","minLength","maxLength","minDate","maxDate"].forEach((e=>{void 0!==a.editor[e]&&(i[e]=a.editor[e])}))}a.taskCustomFields=d;const r=[];for(let e=0;e<t.dataSource.length;e++){const a=t.dataSource[e],i=a.$.id;if(!1===a.$.filtered)continue;const l=t._getTaskDataByRow(i,a);r.push(l)}a.dataSource=r,t.columnByDataField.taskPriority&&(a.priority=t.columnByDataField.taskPriority.editor.dataSource),t.columnByDataField.taskTags&&(a.tags=t.columnByDataField.taskTags.editor.dataSource),a.context=i}_getTaskDataByRow(e,t){const a=this,i={},l=a._kanban,o=a.rowById[e];o&&(o.history?i.history=JSON.parse(JSON.stringify(o.history)):i.history=[],o.comments?i.comments=JSON.parse(JSON.stringify(o.comments)):i.comments=[]),a.columnByDataField.taskStatus||void 0===t.taskStatus&&(t.taskStatus="");for(let e in t){if(e.startsWith("$"))continue;let l=t[e];const o=a.columnByDataField[e];if(o&&o._dataField&&(e=o._dataField),"taskStatus"===e&&o&&a._stackedBy!==o.dataField&&(e=o.dataField),a._stackedBy===e&&(e="taskStatus"),e.startsWith("task")){let t=e.replace("task","");if(t=t.substring(0,1).toLowerCase()+t.substring(1),"progress"===t&&(l=100*parseFloat(l)),"checklist"===t)if(l&&l.length){if("string"==typeof l)try{l=JSON.parse(l)}catch(e){console.log(e),l=[]}}else l=[];i[t]=l}else i[e]=l}return i.id=t.$.id,void 0===i.status?i.status="":l.columns.find((e=>e.value===i.status))||(i.status=""),i}_getTaskData(e){const t=this,a={},i=t._kanban;if(e.checklist&&e.checklist.length>0&&!t.columnByDataField.taskChecklist){const e=t._getKanbanTaskField("checklist");e.visible=e._visible=!1,t.columns.push(e)}if(e.priority&&i.taskPriority&&!t.columnByDataField.taskPriority){const e=t._getKanbanTaskField("priority");e.visible=e._visible=!1,t.columns.push(e)}if(null!==e.userId&&i.taskUserIcon&&!t.columnByDataField.taskUserId){const e=t._getKanbanTaskField("assigned");t.columns.push(e)}for(let l=0;l<t.columns.length;l++){const o=t.columns[l];let n=o.dataField,s=o.dataField;if(o._dataField&&(n=o._dataField),"taskStatus"===n&&t._stackedBy!==o.dataField&&(n=o.dataField),t._stackedBy===o.dataField&&(n="taskStatus"),n.startsWith("task")){let t=n.replace("task","");if(t=t.substring(0,1).toLowerCase()+t.substring(1),"checklist"===t){e.checklist?a[s]=e.checklist:a[s]="";continue}if("history"===t&&(a[s]=e.history),void 0===e[t])continue;if("priority"===t){const i=e[t];a[s]=i}else a[s]="progress"===t?parseFloat(e[t])/100:e[t]}else i.taskCustomFields&&i.taskCustomFields.length&&i.taskCustomFields.find((e=>e.dataField===s))&&(a[s]=e[s])}return a}_createKanban(e){const t=this;if(t._kanban)return void(t.columnByDataField[e.dataField]||(t.columns.push(e),t._updateKanbanView(e)));t.columnByDataField[e.dataField]||(t.columns.push(e),t._updateKanbanView(e));const a=document.createElement("smart-kanban");t._kanban=a,t.onViewInit&&t.onViewInit(a),t._updateKanbanView(e),a.style.width="100%",a.style.height="100%",a.style.borderTopColor="transparent",a.style.borderLeftColor="transparent",a.style.borderRightColor="transparent",a.style.borderBottomColor="transparent",a.style.background="inherit","kanban"===t.view&&(t.$.viewContent.classList.remove("smart-hidden"),t.$.content.classList.add("smart-hidden"),t.$.footerPager.classList.add("smart-hidden")),t.$.viewContent.appendChild(a),"kanban"===t.view&&t.classList.add("smart-kanban-view"),t.editing.addNewColumn._addButton&&t.editing.addNewColumn._addButton.classList.remove("show");const i=t.getCurrentState();i&&i.kanban&&a.isInitialized&&a.loadState(i.kanban);const l=()=>{const e=this,t=e.columnByDataField.taskStatus,a=e._kanban,i=[];for(let e=0;e<a.columns.length;e++){const t=a.columns[e],l={label:t.dataField?t.label:"",labelAlt:t.label,value:t.dataField,color:t.color};i.push(l)}if(t.editor.isDirty=!0,t.editor.dataSource=i,t._state&&(t._state.editor=t.editor),delete t.editor._items,e.onColumnUpdated){const a=e.viewColumns.indexOf(t);e.onColumnUpdated(a,t)}};a.addEventListener("columnCollapse",(()=>{t.autoSaveState()})),a.addEventListener("columnExpand",(()=>{t.autoSaveState()})),a.addEventListener("columnReorder",(()=>{t.autoSaveState()})),a.addEventListener("taskReorder",(()=>{t.autoSaveState()})),a.addEventListener("columnUpdate",(()=>{l()})),a.addEventListener("columnAdd",(()=>{l()})),a.addEventListener("columnRemove",(()=>{l()})),a.addEventListener("taskAdd",(e=>{const i=e.detail.value,l=t._getTaskData(i);t._onRowInserted=e=>{const t=a.querySelector('[data-id="'+i.id+'"]');t&&t.setAttribute("data-id",e.id),i.id=e.id},t.addRow(l,!0,(e=>{const t=a.querySelector('[data-id="'+i.id+'"]');t&&t.setAttribute("data-id",e.id),i.id=e.id})),t._refreshHeaderBar(),delete t._onRowInserted})),a.addEventListener("taskRemove",(e=>{t.removeRow(e.detail.id),t._refreshHeaderBar()})),a.addEventListener("taskDoubleClick",(e=>{const i=e.detail.value;t._isUpdating=0,t.showDetail(i.id),t._isUpdating=1,t._endKanbanEdit?(t.removeEventListener("endEdit",t._endKanbanEdit,null),t.removeEventListener("cancelEdit",t._endKanbanEdit,null)):t._endKanbanEdit=e=>{if("kanban"===t.view){const i=e.detail.id,l=t.rowById[i];if(l){const e=t._getTaskDataByRow(i,l.data);a.updateTask(i,e)}}},t.addEventListener("endEdit",t._endKanbanEdit),t.addEventListener("cancelEdit",t._endKanbanEdit),e.preventDefault()})),t._onRowRemoved=(e,t)=>{for(let t=0;t<e.length;t++)a.removeTask(e[t])},a._beginEdit=a.beginEdit=e=>{const i=e.data;t._isUpdating=0,t.showDetail(i.id),t._isUpdating=1,t.onEndEdit=e=>{if("grid"===t.view)return;const i=e.detail.id,l=t.rowById[i];if(l){const e=t._getTaskDataByRow(i,l.data);a.updateTask(i,e)}}},t._onSaveRowData=e=>{if("grid"===t.view)return;const i=e.id,l=t._getTaskDataByRow(i,e.data);a.updateTask(i,l)},a.addEventListener("taskUpdate",(e=>{if("grid"===t.view)return;const i=e.detail.value,l=e.detail.oldValue,o=t._getTaskData(i),n=t._getTaskData(l);if(JSON.stringify(o)!==JSON.stringify(n)){const a=t.rowById[e.detail.id];a&&(i.history&&(a.history=JSON.parse(JSON.stringify(i.history))),i.comments&&(a.comments=JSON.parse(JSON.stringify(i.comments)))),t.updateRow(e.detail.id,o)}for(let e=0;e<a.taskCustomFields.length;e++){const i=a.taskCustomFields[e],l=t.columnByDataField[i.dataField];l&&(l.visible=i.visible)}const s=t.rowById[e.detail.id];s&&(s.history=i.history,i.comments&&(s.comments&&JSON.stringify(s.comments)===JSON.stringify(i.comments)||(s.comments=JSON.parse(JSON.stringify(i.comments)),t.onComment&&t.onComment(e.detail.id,s.comments))))}))}});
6
+ Smart.Utilities.Assign("Grid.View",class{createBasicKanban(){this._initKanbanView("basic")}createBlankKanban(){this._initKanbanView("blank")}_getStatusColumn(e){const t=this;let a=!e||e&&"blank"===e?t.localize("dialogNewColumn"):t.localize("status");return t.columnByDataField.taskStatus&&(a=t.columnByDataField.taskStatus.label),new Smart.Grid.Column({label:a,description:t.localize("dialogAddColumnStatusDescription"),dataField:"taskStatus",showDescriptionButton:!0,dataType:"string",defaultValue:"",editor:{template:"multiComboInput",readonly:!0,dropDownButtonPosition:"right",colorItems:!0,autoOpen:!0,pills:!0,singleSelect:!0,dataSource:[{color:"#DD5347",label:"",value:""},{color:"#33B679",label:t.localize("toDo"),value:"To Do"},{color:"#039BE5",label:t.localize("inProgress"),value:"In Progress"},{color:"#8E24AA",label:t.localize("done"),value:"Done"}]},template:"tags",cellsAlign:"left",align:"left",grid:t,visible:!0,_visible:!0,_view:!0})}_initKanbanView(e,t){const a=this;a._kanbanInitialized=!0;let i=null;for(let e=0;e<a.columns.length;e++){const t=a.columns[e];t._dataField&&!a.columnByDataField[t._dataField]&&(a.columnByDataField[t._dataField]=t),a._stackedBy||(t.statusColumn||"taskStatus"===t._dataField)&&(i=t),a._stackedBy&&a._stackedBy===t.dataField&&(i=t,a.columnByDataField.taskStatus=t,i.statusColumn=!0)}(()=>{if(!a.columnByDataField.taskText)for(let e=0;e<a.columns.length;e++){const t=a.columns[e];if("string"===t.dataType&&t.editor&&"input"===t.editor.template){a.columnByDataField.taskText=t,t._dataField="taskText";break}}if(!a.columnByDataField.taskDescription)for(let e=0;e<a.columns.length;e++){const t=a.columns[e];if("string"===t.dataType&&t.editor&&"textarea"===t.editor.template){a.columnByDataField.taskDescription=t,t._dataField="taskDescription";break}}})();const l=a._getStatusColumn(e);a._onColumnUpdated=(e,t)=>{if(!e._view)return;delete e._view,delete e._state,delete a._onColumnUpdated,e.allowSort=e.allowEdit=e.allowFilter=!0;const i=Math.floor(9e4*Math.random()+1e4);if(delete a.columnByDataField.taskStatus,"blank"===t.kanban?(e.displayField=e.dataField="dataField"+i,e.editor={template:"multiComboInput",readonly:!0,dropDownButtonPosition:"right",colorItems:!0,autoOpen:!0,pills:!0,defaultValue:"",singleSelect:!0,dataSource:[{color:"#DD5347",label:"",value:""}]},a.columnByDataField.taskStatus=e):"basic"===t.kanban?(e.displayField=e.dataField="dataField"+i,a.columnByDataField.taskStatus=e):(e=a.columnByDataField[t.kanban],a.columnByDataField.taskStatus=e),e.statusColumn=!0,a._stackedBy===e.dataField&&a._kanban)a._showKanbanView();else{if(a._stackedBy=e.dataField,""===e.editor.dataSource[0])e.editor.dataSource[0]={label:"",value:""};else{let t=!1;for(let a=0;a<e.editor.dataSource.length;a++)if(""===e.editor.dataSource[a].value){t=!0;break}t||(e.editor.dataSource[0].value="")}a.beginUpdate(),a._createKanban(e),a._refreshHeaderBar(),a.endUpdate(!1),a.autoSaveState(),a._showKanbanView(),a.$.headerBar&&a.$.headerBar._refresh()}};const o=()=>{let e=!0;a.beginUpdate(),a._kanban?a.columnByDataField[l.dataField]||(a.columns.push(l),a._updateKanbanView(l)):(a._createKanban(i),e=!1),a._resetCachedLayout(),a._refreshHeaderBar(),a.endUpdate(),a.$.headerBar&&a.$.headerBar._refresh(),e&&a._showKanbanView()};if(a.stateSettings.loading&&i&&"dynamic"===e)return void o();const n=a.getCurrentState();if(i&&"dynamic"!==e){if(l.statusColumn=!0,a._stackedBy===l.dataField&&a._kanban)return;return a._stackedBy=i.dataField,delete l._view,void o()}return i&&"dynamic"===e&&a.stateSettings.storage&&n&&n.kanban&&n.kanban.stackedBy===i.dataField&&!a._kanban?(delete l._view,void o()):e&&"blank"===e?(delete l._view,l.editor={template:"multiComboInput",readonly:!0,dropDownButtonPosition:"right",colorItems:!0,autoOpen:!0,pills:!0,singleSelect:!0,dataSource:[]},l.allowSort=l.allowEdit=l.allowFilter=!0,l.label="New Column",a.beginUpdate(),a._createKanban(l),a._resetCachedLayout(),a._refreshHeaderBar(),void a.endUpdate()):e&&"basic"===e?(delete l._view,a.beginUpdate(),a._createKanban(l),a._resetCachedLayout(),a._refreshHeaderBar(),void a.endUpdate()):void a._openAddStackColumnDialog(l,!0,(e=>{e||"grid"!==t||(delete a._kanbanInitialized,a.view="grid",a._hideKanbanView(),a._refresh(),a.autoSaveState())}))}_showKanbanView(e){const t=this;if(t.classList.contains("smart-kanban-view"))return t._updateKanbanView(),void t._kanban.refresh();t.beginUpdate(),t.$.viewContent.classList.remove("smart-hidden"),t.$.content.classList.add("smart-hidden"),t.$.footerPager.classList.add("smart-hidden"),t._showAddNewRowButton("float"),t.$.viewContent.appendChild(t._kanban),t.classList.add("smart-kanban-view"),!1!==e&&t._updateKanbanView(),requestAnimationFrame((()=>{t._kanban.refresh();const a=t.getCurrentState();a&&a.kanban&&t._kanban.isInitialized&&(e=t._kanban.loadState(a.kanban))})),t._onFilter=t._onSort=()=>{if("kanban"===t.view){if(t._isUpdating)return;t._updateKanbanView(),t._kanban.refresh()}}}_hideKanbanView(){const e=this;e.classList.contains("smart-kanban-view")&&(e.$.viewContent.classList.add("smart-hidden"),e.$.content.classList.remove("smart-hidden"),e.$.footerPager.classList.remove("smart-hidden"),e._kanban._closeAllLists(),e._kanban.remove(),e.classList.remove("smart-kanban-view"),e._resetCachedLayout(),e.dataSource.boundHierarchy&&(e.dataSource.refreshHierarchy(),e._refreshRowHierarchy(!0,!0)),e.endUpdate(),e.dataSource.boundHierarchy&&e._recycle())}_getPriorityDataSource(){const e=this;return[{color:"#F4511E",label:"",value:""},{color:"#33B679",label:e.localize("priority_low"),value:"Low"},{color:"#039BE5",label:e.localize("priority_average"),value:"Average"},{color:"#DD5347",label:e.localize("priority_high"),value:"High"},{color:"#AF0020",label:e.localize("priority_critical"),value:"Critical"}]}_updateKanbanTaskFields(){const e=this;for(let t=0;t<e.columns.length;t++){const a=e.columns[t];if(a.dataField.startsWith("taskStartDate")){const t=e._getKanbanTaskField("startDate");a.editor=t.editor}else if(a.dataField.startsWith("taskDueDate")){const t=e._getKanbanTaskField("dueDate");a.editor=t.editor}else if("checklist"===a.template){const t=e._getKanbanTaskField("checklist");a.editor=t.editor}}}_getKanbanTaskField(e){const t=this;switch(e){case"startDate":return new Smart.Grid.Column({label:t.localize("dialogAddColumnTypeStartDate"),dataField:"taskStartDate",cellsFormat:"d",showDescriptionButton:!0,dataType:"date",allowDelete:!0,editor:{template:"dateInput",autoOpen:!0,onValidate:(e,a)=>!(e>a.taskDueDate&&a.taskDueDate&&e)||t.localize("invalidMaxValue",{value:t.localize("dialogAddColumnTypeStartDate"),max:a.taskDueDate.toLocaleDateString()})},template:"startDate",visible:!0,_visible:!0,grid:t});case"dueDate":return new Smart.Grid.Column({label:t.localize("dialogAddColumnTypeDueDate"),dataField:"taskDueDate",cellsFormat:"d",showDescriptionButton:!0,allowDelete:!0,dataType:"date",editor:{template:"dateInput",autoOpen:!0,onValidate:(e,a)=>!(e<a.taskStartDate&&a.taskStartDate&&e)||t.localize("invalidMinValue",{value:t.localize("dialogAddColumnTypeDueDate"),min:a.taskStartDate.toLocaleDateString()})},template:"dueDate",visible:!0,_visible:!0,grid:t});case"progress":return new Smart.Grid.Column({label:t.localize("dialogAddColumnTypeProgress"),dataField:"taskProgress",showDescriptionButton:!0,allowDelete:!0,visible:!0,_visible:!0,disabledDialogOptions:["numberFormat","minValue","maxValue"],dataType:"number",cellsFormat:"p0",template:"progress",editor:{disabledDialogOptions:!0,template:"numberInput",min:0,max:1},grid:t});case"checklist":return new Smart.Grid.Column({label:t.localize("dialogAddColumnTypeChecklist"),dataField:"taskChecklist",allowGroup:!1,showDescriptionButton:!0,allowSort:!1,allowDelete:!0,allowFilter:!1,visible:!0,_visible:!0,disabledDialogOptions:["allowFilter","allowSort","allowColorItems","options"],template:"checklist",editor:{template:"<smart-multi-combo-input></smart-multi-combo-input>",settings:{inputTagsMode:"one",readonly:!0,allowItemsAdd:!0,allowItemsRemove:!0},onRender:function(e,a,i,l){const o="string"==typeof l[a]&&l[a]?JSON.parse(l[a]):l[a],n=[],s=i.firstElementChild;if(s.isInitialized&&t._kanban&&t._kanban.messages[t.locale]&&(s.messages[t.locale].tagLabel=t._kanban.messages[t.locale].taskCompleted,s.messages[t.locale].tagLabelOne=t._kanban.messages[t.locale].taskCompleted),o){const e=o.map((e=>{const t={label:e.text,value:e.text};return e.completed&&n.push(t),t}));s.dataSource=e}else s.dataSource=[];s.selectedItems=n,!t.editing.editRow&&s.open&&s.open()},setValue:function(){},getValue:function(){const e=this.firstElementChild;return e.dataSource.map((t=>{const a=e.selectedItems.find((e=>t.value===e.value));return{text:t.label,completed:void 0!==a}}))}},dataType:"any",grid:t});case"priority":return new Smart.Grid.Column({label:t.localize("dialogAddColumnTypePriority"),dataField:"taskPriority",showDescriptionButton:!0,dataType:"string",visible:!0,_visible:!0,allowDelete:!0,disabledDialogOptions:[],editor:{template:"multiComboInput",readonly:!0,allowEmptyItem:!1,dropDownButtonPosition:"right",colorItems:!0,autoOpen:!0,pills:!0,singleSelect:!0,dataSource:t._getPriorityDataSource()},template:"tags",grid:t});case"tags":return new Smart.Grid.Column({label:t.localize("dialogAddColumnTypeTags"),dataField:"taskTags",allowDelete:!0,allowGroup:!1,visible:!0,_visible:!0,allowTypeChange:!1,editor:{template:"multiComboInput",readonly:!0,allowEmptyItem:!1,dropDownButtonPosition:"right",colorItems:!0,autoOpen:!0,pills:!0,singleSelect:!1,dataSource:[]},showDescriptionButton:!0,dataType:"string",template:"tags",grid:t});case"name":return new Smart.Grid.Column({label:t.localize("dialogAddColumnTypeName"),allowDelete:!0,allowGroup:!1,dataField:"taskText",showDescriptionButton:!0,dataType:"string",_visible:!0,visible:!0,grid:t});case"description":return new Smart.Grid.Column({label:t.localize("dialogAddColumnTypeDescription"),dataField:"taskDescription",allowGroup:!1,allowDelete:!0,showDescriptionButton:!0,editor:{template:"textarea"},dataType:"string",_visible:!0,visible:!0,grid:t});case"assigned":{let e=[{label:"",value:"",color:"#DD5347"}];for(let a=0;a<t.users.length;a++)e.push({label:t.users[a].name,value:t.users[a].id,id:t.users[a].id,image:t.users[a].image,color:t.users[a].color||""});return new Smart.Grid.Column({label:t.localize("dialogAddColumnTypeAssigned"),allowDelete:!0,dataField:"taskUserId",showDescriptionButton:!0,disabledDialogOptions:["allowColorItems","options"],editor:{template:"multiComboInput",readonly:!0,collaborator:!0,disabledDialogOptions:!0,colorItems:!0,dropDownButtonPosition:"right",autoOpen:!0,pills:!0,singleSelect:!0,dataSource:e},dataType:"string",visible:!0,_visible:!0,template:"tags",grid:t})}case"color":return new Smart.Grid.Column({label:t.localize("dialogAddColumnTypeColor"),allowDelete:!0,dataField:"taskColor",showDescriptionButton:!0,dataType:"string",disabledDialogOptions:["minLength","maxLength"],editor:{template:"colorInput"},template:"color",width:80,visible:!0,_visible:!0,grid:t});case"status":return t._getStatusColumn("basic")}}_getKanbanTaskFields(e){const t=this,a=[],i=t._getKanbanTaskField("startDate"),l=t._getKanbanTaskField("dueDate"),o=t._getKanbanTaskField("priority"),n=t._getKanbanTaskField("tags"),s=t._getKanbanTaskField("progress"),d=t._getKanbanTaskField("description"),r=t._getKanbanTaskField("name"),u=t._getKanbanTaskField("color"),c=t._getKanbanTaskField("checklist");let m=!0;for(let e=0;e<t.columns.length;e++){const a=t.columns[e];if(a.editor&&a.editor.collaborator){m=!1;break}}if(a.push(r),a.push(d),a.push(e),a.push(i),a.push(l),a.push(s),a.push(o),a.push(n),a.push(c),a.push(u),m){let e=[""];for(let a=0;a<t.users.length;a++)e.push({label:t.users[a].name,value:t.users[a].id,id:t.users[a].id,image:t.users[a].image,color:t.users[a].color||""});const l=t._getKanbanTaskField("assigned");a.push(l),t._kanbanViewColumns=[i,l,s,o,n,c,u]}else t._kanbanViewColumns=[i,s,o,n,c,u];return a}getKanbanState(){const e=this;if(e._kanban){const t=e._kanban.getState(["order","sorting","filtering","columnOrder","collapsed"]);return e._stackedBy&&(t.stackedBy=e._stackedBy),t}return{}}getKanbanProperties(){const e=this;if(e._kanbanProperties)return e._kanbanProperties;e._kanbanProperties={};const t={taskColorEntireSurface:!1,collapsible:!0,addNewButton:!0,addNewButtonDisplayMode:"both",addNewColumn:!0,allowCustomTags:!1,allowColumnRemove:!0,editable:!0,editMode:"singleClick",columnActions:!0,columnEditMode:"headerAndMenu",allowColumnEdit:!0,allowColumnReorder:!0,taskActions:!0,taskDue:!0,taskTags:!1,tags:[],taskColor:!0,autoColumnHeight:!0,columnWidth:270,taskComments:!0,taskProgress:!0,columnSummary:!0,columnColors:!0,taskPriority:!0,disableAddNewDialog:!0,taskUserIcon:!0,taskSubTasks:"none",taskCustomFieldsHide:!1,columnColorEntireSurface:!0,columnFooter:!0,userList:!0,allowDropPlaceholder:!0};return!1===e.editing.enabled&&(t.allowDrag=!1,t.allowDrop=!1,t.allowColumnReorder=!1,t.allowColumnRemove=!1,t.allowColumnEdit=!1,t.addNewButton=!1,t.addNewColumn=!1,t.columnActions=!1,t.editable=!1),e._kanbanProperties=Object.assign({},t),e._kanbanProperties}setKanbanProperties(e){const t=this,a=t.getKanbanProperties();for(let t in e)void 0!==e[t]&&void 0!==a[t]&&(a[t]=e[t]);t.columnByDataField.taskTags&&(t.columnByDataField.taskTags.editor.dataSource=a.tags),t._kanbanProperties=a,t.classList.contains("smart-kanban-view")&&(t._updateKanbanView(),t._kanban.refresh())}_updateKanbanView(e){const t=this;if(!t._kanban)return;if(!t.isInitialized)return;if(!e&&!(e=t.columnByDataField.taskStatus))return;const a=t._kanban,i=a.context;a.context=a;const l=e.editor.dataSource&&e.editor.dataSource.length>0?e.editor.dataSource:[{label:e.label,value:e.value,color:"#DD5347"}];a.users=t.users,a.currentUser=t.currentUser;const o=t.getKanbanProperties();for(let e in o)a[e]=o[e];let n=[];for(let e=0;e<t.columns.length;e++){const a=t.columns[e];let i=a.dataField;if(a._dataField&&(i=a._dataField),i.startsWith("task")){let e=i.replace("task","");e=e.substring(0,1).toLowerCase()+e.substring(1),-1===n.indexOf(e)&&n.push(e)}}a.$.scrollViewer&&(a.$.scrollViewer.scrollLeft=0),a.dialogEditors=n;let s=[];for(let e=0;e<l.length;e++){const a=l[e];let i=a.label;""===a.label&&(i=a.labelAlt?a.labelAlt:t.localize("uncategorized")),s.push({label:i,value:a.value,status:a.value,dataField:a.value,color:a.color})}a.columns=s;let d=[];for(let e=0;e<t.columns.length;e++){const a=t.columns[e];if(a.dataField.startsWith("task"))continue;if(t._stackedBy===a.dataField)continue;if(a._dataField&&("taskStatus"!==a._dataField||a._dataField===t._stackedBy))continue;if(!1===a.allowEdit)continue;if("any"===a.dataType)continue;d.push({label:a.label||"",dataField:a.dataField,dataType:a.dataType,visible:a.visible,editor:a.editor.template});const i=d[d.length-1];a.editor.dataSource&&(i.dataSource=[...a.editor.dataSource]),a.editor.colorItems&&(i.colorItems=a.editor.colorItems),a.editor.colorItems&&(i.pills=a.editor.pills),a.editor.colorItems&&(i.singleSelect=a.editor.singleSelect),a.editor.dropDownButtonPosition&&(i.dropDownButtonPosition=a.editor.dropDownButtonPosition),["min","max","minLength","maxLength","minDate","maxDate"].forEach((e=>{void 0!==a.editor[e]&&(i[e]=a.editor[e])}))}a.taskCustomFields=d;const r=[];for(let e=0;e<t.dataSource.length;e++){const a=t.dataSource[e],i=a.$.id;if(!1===a.$.filtered)continue;const l=t._getTaskDataByRow(i,a);r.push(l)}a.dataSource=r,t.columnByDataField.taskPriority&&(a.priority=t.columnByDataField.taskPriority.editor.dataSource),t.columnByDataField.taskTags&&(a.tags=t.columnByDataField.taskTags.editor.dataSource),a.context=i}_getTaskDataByRow(e,t){const a=this,i={},l=a._kanban,o=a.rowById[e];o&&(o.history?i.history=JSON.parse(JSON.stringify(o.history)):i.history=[],o.comments?i.comments=JSON.parse(JSON.stringify(o.comments)):i.comments=[]),a.columnByDataField.taskStatus||void 0===t.taskStatus&&(t.taskStatus="");for(let e in t){if(e.startsWith("$"))continue;let l=t[e];const o=a.columnByDataField[e];if(o&&o._dataField&&(e=o._dataField),"taskStatus"===e&&o&&a._stackedBy!==o.dataField&&(e=o.dataField),a._stackedBy===e&&(e="taskStatus"),e.startsWith("task")){let t=e.replace("task","");if(t=t.substring(0,1).toLowerCase()+t.substring(1),"progress"===t&&(l=100*parseFloat(l)),"checklist"===t)if(l&&l.length){if("string"==typeof l)try{l=JSON.parse(l)}catch(e){console.log(e),l=[]}}else l=[];i[t]=l}else i[e]=l}return i.id=t.$.id,void 0===i.status?i.status="":l.columns.find((e=>e.value===i.status))||(i.status=""),i}_getTaskData(e){const t=this,a={},i=t._kanban;if(e.checklist&&e.checklist.length>0&&!t.columnByDataField.taskChecklist){const e=t._getKanbanTaskField("checklist");e.visible=e._visible=!1,t.columns.push(e)}if(e.priority&&i.taskPriority&&!t.columnByDataField.taskPriority){const e=t._getKanbanTaskField("priority");e.visible=e._visible=!1,t.columns.push(e)}if(null!==e.userId&&i.taskUserIcon&&!t.columnByDataField.taskUserId){const e=t._getKanbanTaskField("assigned");t.columns.push(e)}for(let l=0;l<t.columns.length;l++){const o=t.columns[l];let n=o.dataField,s=o.dataField;if(o._dataField&&(n=o._dataField),"taskStatus"===n&&t._stackedBy!==o.dataField&&(n=o.dataField),t._stackedBy===o.dataField&&(n="taskStatus"),n.startsWith("task")){let t=n.replace("task","");if(t=t.substring(0,1).toLowerCase()+t.substring(1),"checklist"===t){e.checklist?a[s]=e.checklist:a[s]="";continue}if("history"===t&&(a[s]=e.history),void 0===e[t])continue;if("priority"===t){const i=e[t];a[s]=i}else a[s]="progress"===t?parseFloat(e[t])/100:e[t]}else i.taskCustomFields&&i.taskCustomFields.length&&i.taskCustomFields.find((e=>e.dataField===s))&&(a[s]=e[s])}return a}_createKanban(e){const t=this;if(t._kanban)return void(t.columnByDataField[e.dataField]||(t.columns.push(e),t._updateKanbanView(e)));t.columnByDataField[e.dataField]||(t.columns.push(e),t._updateKanbanView(e));const a=document.createElement("smart-kanban");t._kanban=a,t.onViewInit&&t.onViewInit(a),t._updateKanbanView(e),a.style.width="100%",a.style.height="100%",a.style.borderTopColor="transparent",a.style.borderLeftColor="transparent",a.style.borderRightColor="transparent",a.style.borderBottomColor="transparent",a.style.background="inherit","kanban"===t.view&&(t.$.viewContent.classList.remove("smart-hidden"),t.$.content.classList.add("smart-hidden"),t.$.footerPager.classList.add("smart-hidden")),t.$.viewContent.appendChild(a),"kanban"===t.view&&t.classList.add("smart-kanban-view"),t.editing.addNewColumn._addButton&&t.editing.addNewColumn._addButton.classList.remove("show");const i=t.getCurrentState();i&&i.kanban&&a.isInitialized&&a.loadState(i.kanban);const l=()=>{const e=this,t=e.columnByDataField.taskStatus,a=e._kanban,i=[];for(let e=0;e<a.columns.length;e++){const t=a.columns[e],l={label:t.dataField?t.label:"",labelAlt:t.label,value:t.dataField,color:t.color};i.push(l)}if(t.editor.isDirty=!0,t.editor.dataSource=i,t._state&&(t._state.editor=t.editor),delete t.editor._items,e.onColumnUpdated){const a=e.viewColumns.indexOf(t);e.onColumnUpdated(a,t)}};a.addEventListener("columnCollapse",(()=>{t.autoSaveState()})),a.addEventListener("columnExpand",(()=>{t.autoSaveState()})),a.addEventListener("columnReorder",(()=>{t.autoSaveState()})),a.addEventListener("taskReorder",(()=>{t.autoSaveState()})),a.addEventListener("columnUpdate",(()=>{l()})),a.addEventListener("columnAdd",(()=>{l()})),a.addEventListener("columnRemove",(()=>{l()})),a.addEventListener("taskAdd",(e=>{const i=e.detail.value,l=t._getTaskData(i);t._onRowInserted=e=>{const t=a.querySelector('[data-id="'+i.id+'"]');t&&t.setAttribute("data-id",e.id),i.id=e.id},t.addRow(l,!0,(e=>{const t=a.querySelector('[data-id="'+i.id+'"]');t&&t.setAttribute("data-id",e.id),i.id=e.id})),t._refreshHeaderBar(),delete t._onRowInserted})),a.addEventListener("taskRemove",(e=>{t.removeRow(e.detail.id),t._refreshHeaderBar()})),a.addEventListener("taskDoubleClick",(e=>{const i=e.detail.value;t._isUpdating=0,t.showDetail(i.id),t._isUpdating=1,t._endKanbanEdit?(t.removeEventListener("endEdit",t._endKanbanEdit,null),t.removeEventListener("cancelEdit",t._endKanbanEdit,null)):t._endKanbanEdit=e=>{if("kanban"===t.view){const i=e.detail.id,l=t.rowById[i];if(l){const e=t._getTaskDataByRow(i,l.data);a.updateTask(i,e)}}},t.addEventListener("endEdit",t._endKanbanEdit),t.addEventListener("cancelEdit",t._endKanbanEdit),e.preventDefault()})),t._onRowRemoved=(e,t)=>{for(let t=0;t<e.length;t++)a.removeTask(e[t])},a._beginEdit=a.beginEdit=e=>{const i=e.data;t._isUpdating=0,t.showDetail(i.id),t._isUpdating=1,t.onEndEdit=e=>{if("grid"===t.view)return;const i=e.detail.id,l=t.rowById[i];if(l){const e=t._getTaskDataByRow(i,l.data);a.updateTask(i,e)}}},t._onSaveRowData=e=>{if("grid"===t.view)return;const i=e.id,l=t._getTaskDataByRow(i,e.data);a.updateTask(i,l)},a.addEventListener("taskUpdate",(e=>{if("grid"===t.view)return;const i=e.detail.value,l=e.detail.oldValue,o=t._getTaskData(i),n=t._getTaskData(l);if(JSON.stringify(o)!==JSON.stringify(n)){const a=t.rowById[e.detail.id];a&&(i.history&&(a.history=JSON.parse(JSON.stringify(i.history))),i.comments&&(a.comments=JSON.parse(JSON.stringify(i.comments)))),t.updateRow(e.detail.id,o)}for(let e=0;e<a.taskCustomFields.length;e++){const i=a.taskCustomFields[e],l=t.columnByDataField[i.dataField];l&&(l.visible=i.visible)}const s=t.rowById[e.detail.id];s&&(s.history=i.history,i.comments&&(s.comments&&JSON.stringify(s.comments)===JSON.stringify(i.comments)||(s.comments=JSON.parse(JSON.stringify(i.comments)),t.onComment&&t.onComment(e.detail.id,s.comments))))}))}});
@@ -1,5 +1,5 @@
1
1
 
2
- /* Smart UI v17.0.3 (2023-10-20)
2
+ /* Smart UI v17.0.17 (2023-11-08)
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 v17.0.3 (2023-10-20)
2
+ /* Smart UI v17.0.17 (2023-11-08)
3
3
  Copyright (c) 2011-2023 jQWidgets.
4
4
  License: https://htmlelements.com/license/ */ //
5
5