smart-webcomponents-react 19.1.28 → 19.1.33

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 (302) hide show
  1. package/accordion/accordion.esm.js +2 -1
  2. package/alertwindow/alertwindow.esm.js +2 -1
  3. package/array/array.esm.js +2 -1
  4. package/barcode/barcode.esm.js +2 -1
  5. package/breadcrumb/breadcrumb.esm.js +2 -1
  6. package/button/button.esm.js +2 -1
  7. package/buttongroup/buttongroup.esm.js +2 -1
  8. package/calendar/calendar.esm.js +2 -1
  9. package/card/card.esm.js +2 -1
  10. package/cardview/cardview.esm.js +2 -1
  11. package/carousel/carousel.esm.js +2 -1
  12. package/chart/chart.esm.js +2 -1
  13. package/checkbox/checkbox.esm.js +2 -1
  14. package/checkinput/checkinput.esm.js +2 -1
  15. package/chip/chip.esm.js +2 -1
  16. package/colorinput/colorinput.esm.js +2 -1
  17. package/colorpanel/colorpanel.esm.js +2 -1
  18. package/colorpicker/colorpicker.esm.js +2 -1
  19. package/columnpanel/columnpanel.esm.js +2 -1
  20. package/combobox/combobox.esm.js +2 -1
  21. package/countryinput/countryinput.esm.js +2 -1
  22. package/customizationdialog/customizationdialog.esm.js +2 -1
  23. package/dateinput/dateinput.esm.js +2 -1
  24. package/daterangeinput/daterangeinput.esm.js +2 -1
  25. package/datetimepicker/datetimepicker.esm.js +2 -1
  26. package/dialogwindow/dialogwindow.esm.js +2 -1
  27. package/dockinglayout/dockinglayout.esm.js +2 -1
  28. package/dropdownbutton/dropdownbutton.esm.js +2 -1
  29. package/dropdownlist/dropdownlist.esm.js +2 -1
  30. package/editor/editor.esm.js +2 -1
  31. package/element/element.esm.js +2 -1
  32. package/fileupload/fileupload.esm.js +2 -1
  33. package/filterbuilder/filterbuilder.esm.js +2 -1
  34. package/filterpanel/filterpanel.esm.js +2 -1
  35. package/form/form.esm.js +2 -1
  36. package/ganttchart/ganttchart.esm.js +2 -1
  37. package/gauge/gauge.esm.js +2 -1
  38. package/grid/grid.esm.js +2 -1
  39. package/grouppanel/grouppanel.esm.js +2 -1
  40. package/input/input.esm.js +2 -1
  41. package/kanban/kanban.esm.js +2 -1
  42. package/layout/layout.esm.js +2 -1
  43. package/led/led.esm.js +2 -1
  44. package/listbox/listbox.esm.js +2 -1
  45. package/listmenu/listmenu.esm.js +2 -1
  46. package/map/map.esm.js +2 -1
  47. package/maskedtextbox/maskedtextbox.esm.js +2 -1
  48. package/menu/menu.esm.js +2 -1
  49. package/multicolumnfilterpanel/multicolumnfilterpanel.esm.js +2 -1
  50. package/multicomboinput/multicomboinput.esm.js +2 -1
  51. package/multiinput/multiinput.esm.js +2 -1
  52. package/multilinetextbox/multilinetextbox.esm.js +2 -1
  53. package/multilinewindow/multilinewindow.esm.js +2 -1
  54. package/multisplitbutton/multisplitbutton.esm.js +2 -1
  55. package/numberinput/numberinput.esm.js +2 -1
  56. package/numerictextbox/numerictextbox.esm.js +2 -1
  57. package/package.json +1 -1
  58. package/pager/pager.esm.js +2 -1
  59. package/passwordinput/passwordinput.esm.js +2 -1
  60. package/passwordtextbox/passwordtextbox.esm.js +2 -1
  61. package/path/path.esm.js +2 -1
  62. package/phoneinput/phoneinput.esm.js +2 -1
  63. package/pivottable/pivottable.esm.js +2 -1
  64. package/progressbar/progressbar.esm.js +2 -1
  65. package/progresswindow/progresswindow.esm.js +2 -1
  66. package/promptwindow/promptwindow.esm.js +2 -1
  67. package/qrcode/qrcode.esm.js +2 -1
  68. package/querybuilder/querybuilder.esm.js +2 -1
  69. package/radiobutton/radiobutton.esm.js +2 -1
  70. package/rating/rating.esm.js +2 -1
  71. package/ribbon/ribbon.esm.js +2 -1
  72. package/scheduler/scheduler.esm.js +2 -1
  73. package/scrollbar/scrollbar.esm.js +2 -1
  74. package/slider/slider.esm.js +2 -1
  75. package/sortable/sortable.esm.js +2 -1
  76. package/sortpanel/sortpanel.esm.js +2 -1
  77. package/source/modules/smart.3dchart.js +2 -2
  78. package/source/modules/smart.accordion.js +2 -2
  79. package/source/modules/smart.array.js +2 -2
  80. package/source/modules/smart.barcode.js +2 -2
  81. package/source/modules/smart.breadcrumb.js +2 -2
  82. package/source/modules/smart.button.js +2 -2
  83. package/source/modules/smart.buttongroup.js +2 -2
  84. package/source/modules/smart.calendar.js +2 -2
  85. package/source/modules/smart.card.js +2 -2
  86. package/source/modules/smart.cardview.js +2 -2
  87. package/source/modules/smart.carousel.js +2 -2
  88. package/source/modules/smart.chart.js +2 -2
  89. package/source/modules/smart.checkbox.js +2 -2
  90. package/source/modules/smart.checkinput.js +2 -2
  91. package/source/modules/smart.chip.js +2 -2
  92. package/source/modules/smart.colorinput.js +2 -2
  93. package/source/modules/smart.colorpanel.js +2 -2
  94. package/source/modules/smart.colorpicker.js +2 -2
  95. package/source/modules/smart.combobox.js +2 -2
  96. package/source/modules/smart.common.js +2 -2
  97. package/source/modules/smart.countryinput.js +2 -2
  98. package/source/modules/smart.dateinput.js +2 -2
  99. package/source/modules/smart.daterangeinput.js +2 -2
  100. package/source/modules/smart.datetimepicker.js +2 -2
  101. package/source/modules/smart.dockinglayout.js +2 -2
  102. package/source/modules/smart.dropdownbutton.js +2 -2
  103. package/source/modules/smart.dropdownlist.js +2 -2
  104. package/source/modules/smart.editor.js +2 -2
  105. package/source/modules/smart.element.js +2 -2
  106. package/source/modules/smart.fileupload.js +2 -2
  107. package/source/modules/smart.form.js +2 -2
  108. package/source/modules/smart.formulaparser.js +2 -2
  109. package/source/modules/smart.ganttchart.js +2 -2
  110. package/source/modules/smart.gauge.js +2 -2
  111. package/source/modules/smart.grid.js +7 -7
  112. package/source/modules/smart.gridpanel.js +2 -2
  113. package/source/modules/smart.input.js +2 -2
  114. package/source/modules/smart.kanban.js +2 -2
  115. package/source/modules/smart.layout.js +2 -2
  116. package/source/modules/smart.led.js +2 -2
  117. package/source/modules/smart.listbox.js +2 -2
  118. package/source/modules/smart.listmenu.js +2 -2
  119. package/source/modules/smart.map.js +2 -2
  120. package/source/modules/smart.maskedtextbox.js +2 -2
  121. package/source/modules/smart.menu.js +2 -2
  122. package/source/modules/smart.multicomboinput.js +2 -2
  123. package/source/modules/smart.multiinput.js +2 -2
  124. package/source/modules/smart.multilinetextbox.js +2 -2
  125. package/source/modules/smart.multisplitbutton.js +2 -2
  126. package/source/modules/smart.numberinput.js +2 -2
  127. package/source/modules/smart.numerictextbox.js +2 -2
  128. package/source/modules/smart.pager.js +2 -2
  129. package/source/modules/smart.passwordinput.js +2 -2
  130. package/source/modules/smart.passwordtextbox.js +2 -2
  131. package/source/modules/smart.path.js +2 -2
  132. package/source/modules/smart.phoneinput.js +2 -2
  133. package/source/modules/smart.pivottable.js +2 -2
  134. package/source/modules/smart.progressbar.js +2 -2
  135. package/source/modules/smart.qrcode.js +2 -2
  136. package/source/modules/smart.querybuilder.js +2 -2
  137. package/source/modules/smart.radiobutton.js +2 -2
  138. package/source/modules/smart.rating.js +2 -2
  139. package/source/modules/smart.ribbon.js +2 -2
  140. package/source/modules/smart.router.js +2 -2
  141. package/source/modules/smart.scheduler.js +2 -2
  142. package/source/modules/smart.scrollbar.js +2 -2
  143. package/source/modules/smart.slider.js +2 -2
  144. package/source/modules/smart.sortable.js +2 -2
  145. package/source/modules/smart.splitter.js +2 -2
  146. package/source/modules/smart.switchbutton.js +2 -2
  147. package/source/modules/smart.table.js +2 -2
  148. package/source/modules/smart.tabs.js +2 -2
  149. package/source/modules/smart.tank.js +2 -2
  150. package/source/modules/smart.textarea.js +2 -2
  151. package/source/modules/smart.textbox.js +2 -2
  152. package/source/modules/smart.timeinput.js +2 -2
  153. package/source/modules/smart.timeline.js +2 -2
  154. package/source/modules/smart.timepicker.js +2 -2
  155. package/source/modules/smart.toast.js +2 -2
  156. package/source/modules/smart.tooltip.js +2 -2
  157. package/source/modules/smart.tree.js +2 -2
  158. package/source/modules/smart.validator.js +2 -2
  159. package/source/modules/smart.window.js +2 -2
  160. package/source/smart.3dchart.js +1 -1
  161. package/source/smart.accordion.js +1 -1
  162. package/source/smart.ajax.js +1 -1
  163. package/source/smart.array.js +1 -1
  164. package/source/smart.barcode.js +1 -1
  165. package/source/smart.bootstrap.js +1 -1
  166. package/source/smart.breadcrumb.js +1 -1
  167. package/source/smart.button.js +1 -1
  168. package/source/smart.buttongroup.js +1 -1
  169. package/source/smart.calendar.js +1 -1
  170. package/source/smart.card.js +1 -1
  171. package/source/smart.cardview.js +1 -1
  172. package/source/smart.carousel.js +1 -1
  173. package/source/smart.chart.annotations.js +1 -1
  174. package/source/smart.chart.api.js +1 -1
  175. package/source/smart.chart.core.js +1 -1
  176. package/source/smart.chart.js +1 -1
  177. package/source/smart.chart.rangeselector.js +1 -1
  178. package/source/smart.chart.waterfall.js +1 -1
  179. package/source/smart.checkbox.js +1 -1
  180. package/source/smart.checkinput.js +1 -1
  181. package/source/smart.chip.js +1 -1
  182. package/source/smart.colorinput.js +1 -1
  183. package/source/smart.colorpanel.js +1 -1
  184. package/source/smart.colorpicker.js +1 -1
  185. package/source/smart.combobox.js +1 -1
  186. package/source/smart.complex.js +1 -1
  187. package/source/smart.core.js +1 -1
  188. package/source/smart.countryinput.js +1 -1
  189. package/source/smart.data.js +1 -1
  190. package/source/smart.date.js +1 -1
  191. package/source/smart.dateformatpanel.js +1 -1
  192. package/source/smart.dateinput.js +1 -1
  193. package/source/smart.daterangeinput.js +1 -1
  194. package/source/smart.datetimepicker.js +1 -1
  195. package/source/smart.dockinglayout.js +1 -1
  196. package/source/smart.draw.js +1 -1
  197. package/source/smart.dropdownbutton.js +1 -1
  198. package/source/smart.dropdownlist.js +1 -1
  199. package/source/smart.editor.js +1 -1
  200. package/source/smart.element.js +1 -1
  201. package/source/smart.elements.js +5 -5
  202. package/source/smart.export.js +1 -1
  203. package/source/smart.fileupload.js +1 -1
  204. package/source/smart.filter.js +1 -1
  205. package/source/smart.filterbuilder.js +1 -1
  206. package/source/smart.filterpanel.js +1 -1
  207. package/source/smart.form.js +1 -1
  208. package/source/smart.format.js +1 -1
  209. package/source/smart.formulaparser.js +1 -1
  210. package/source/smart.ganttchart.js +1 -1
  211. package/source/smart.gauge.js +1 -1
  212. package/source/smart.grid.cell.js +2 -2
  213. package/source/smart.grid.chart.js +1 -1
  214. package/source/smart.grid.column.js +1 -1
  215. package/source/smart.grid.core.js +2 -2
  216. package/source/smart.grid.dialog.js +2 -2
  217. package/source/smart.grid.edit.js +1 -1
  218. package/source/smart.grid.export.js +1 -1
  219. package/source/smart.grid.filter.js +1 -1
  220. package/source/smart.grid.group.js +1 -1
  221. package/source/smart.grid.js +1 -1
  222. package/source/smart.grid.menu.js +1 -1
  223. package/source/smart.grid.pager.js +1 -1
  224. package/source/smart.grid.reorder.js +1 -1
  225. package/source/smart.grid.resize.js +1 -1
  226. package/source/smart.grid.row.js +1 -1
  227. package/source/smart.grid.select.js +1 -1
  228. package/source/smart.grid.sort.js +1 -1
  229. package/source/smart.grid.toolbar.js +2 -2
  230. package/source/smart.grid.tree.js +1 -1
  231. package/source/smart.grid.view.js +2 -2
  232. package/source/smart.gridpanel.js +1 -1
  233. package/source/smart.input.js +1 -1
  234. package/source/smart.kanban.js +1 -1
  235. package/source/smart.layout.js +1 -1
  236. package/source/smart.led.js +1 -1
  237. package/source/smart.listbox.js +1 -1
  238. package/source/smart.listmenu.js +1 -1
  239. package/source/smart.map.js +1 -1
  240. package/source/smart.maskedtextbox.js +1 -1
  241. package/source/smart.math.js +1 -1
  242. package/source/smart.menu.js +1 -1
  243. package/source/smart.multicomboinput.js +1 -1
  244. package/source/smart.multiinput.js +1 -1
  245. package/source/smart.multilinetextbox.js +1 -1
  246. package/source/smart.multisplitbutton.js +1 -1
  247. package/source/smart.numberformatpanel.js +1 -1
  248. package/source/smart.numberinput.js +1 -1
  249. package/source/smart.numeric.js +1 -1
  250. package/source/smart.numerictextbox.js +1 -1
  251. package/source/smart.pager.js +1 -1
  252. package/source/smart.passwordinput.js +1 -1
  253. package/source/smart.passwordtextbox.js +1 -1
  254. package/source/smart.path.js +1 -1
  255. package/source/smart.phoneinput.js +1 -1
  256. package/source/smart.pivottable.js +1 -1
  257. package/source/smart.powerbutton.js +1 -1
  258. package/source/smart.progressbar.js +1 -1
  259. package/source/smart.qrcode.js +1 -1
  260. package/source/smart.radiobutton.js +1 -1
  261. package/source/smart.rating.js +1 -1
  262. package/source/smart.ribbon.js +1 -1
  263. package/source/smart.router.js +1 -1
  264. package/source/smart.scheduler.js +1 -1
  265. package/source/smart.scrollbar.js +1 -1
  266. package/source/smart.slider.js +1 -1
  267. package/source/smart.sortable.js +1 -1
  268. package/source/smart.sparkline.js +1 -1
  269. package/source/smart.splitter.js +1 -1
  270. package/source/smart.switchbutton.js +1 -1
  271. package/source/smart.table.js +1 -1
  272. package/source/smart.tabs.js +1 -1
  273. package/source/smart.tank.js +1 -1
  274. package/source/smart.textarea.js +1 -1
  275. package/source/smart.textbox.js +1 -1
  276. package/source/smart.tickintervalhandler.js +1 -1
  277. package/source/smart.timeinput.js +1 -1
  278. package/source/smart.timeline.js +1 -1
  279. package/source/smart.timepicker.js +1 -1
  280. package/source/smart.toast.js +1 -1
  281. package/source/smart.tooltip.js +1 -1
  282. package/source/smart.tree.js +1 -1
  283. package/source/smart.validationpanel.js +1 -1
  284. package/source/smart.validator.js +1 -1
  285. package/source/smart.window.js +1 -1
  286. package/splitter/splitter.esm.js +2 -1
  287. package/switchbutton/switchbutton.esm.js +2 -1
  288. package/table/table.esm.js +2 -1
  289. package/tabs/tabs.esm.js +2 -1
  290. package/tabswindow/tabswindow.esm.js +2 -1
  291. package/tank/tank.esm.js +2 -1
  292. package/textarea/textarea.esm.js +2 -1
  293. package/textbox/textbox.esm.js +2 -1
  294. package/threedchart/threedchart.esm.js +2 -1
  295. package/timeinput/timeinput.esm.js +2 -1
  296. package/timepicker/timepicker.esm.js +2 -1
  297. package/toast/toast.esm.js +2 -1
  298. package/tooltip/tooltip.esm.js +2 -1
  299. package/tree/tree.esm.js +2 -1
  300. package/validator/validator.esm.js +2 -1
  301. package/waitwindow/waitwindow.esm.js +2 -1
  302. package/window/window.esm.js +2 -1
@@ -1,5 +1,5 @@
1
1
 
2
- /* Smart UI v19.1.28 (2024-06-13)
2
+ /* Smart UI v19.1.33 (2024-06-15)
3
3
  Copyright (c) 2011-2024 jQWidgets.
4
4
  License: https://htmlelements.com/license/ */ //
5
5
 
@@ -1425,7 +1425,7 @@ Smart.Utilities.Assign("ConditionalFormatter",class{constructor(e){const t=this;
1425
1425
  /***/ 9719:
1426
1426
  /***/ (() => {
1427
1427
 
1428
- (()=>{Smart.Utilities.Assign("Grid.Cell",class{constructor(e,t){const l=this;if(l.row=e,l.column=t,l.grid=e.grid,l.rowSpan=1,l.colSpan=1,l.value=void 0,l.fontSize=null,l.fontWeight=null,l.fontFamily=null,l.fontStyle=null,l.color=null,l.background=null,l.textDecoration=null,l.tooltip=null,l.align=null,l.verticalAlign=null,l.readonly=!1,l.oldValue=void 0,l._updating=!1,l.styleChanged=!0,l.editor=null,l.template=null,l.isEditing=!1,l.canNotify=!0,l.selected=!1,l.focused=!1,l.error=!1,l.format=null,l.formula=null,e._style){const t=e._style;l.color=t.color,l.background=t.background,l.fontFamily=t.fontFamily,l.fontSize=t.fontSize,l.fontStyle=t.fontStyle,l.textDecoration=t.textDecoration,l.fontWeight=t.fontWeight}if(l.grid&&l.grid.formulas){let a=e.data[t.dataField];t.formula&&(l.formula=l._parseFormula(t.formula)),a&&(""+a).startsWith("=")&&(l.formula=l._parseFormula(""+a))}return new Proxy(l,{deleteProperty:function(e,t){return delete e[t],!0},get:function(e,t){if("value"===t){const e=l.column.displayField?l.row.data[l.column.displayField]:l.row.data[l.column.dataField];if(l.grid&&l.grid.formulas&&l.formula){const e=l.grid._formulaParser;if(e){return e.parse(l.formula.slice(1))}}return e}if("editor"===t||"template"===t)return e[t]||l.column[t];if("focused"===t){if(l.grid.selection.allowCellSelection&&l.grid._selection.focusedCell&&l.grid._selection.focusedCell.id===l.row.id&&l.grid._selection.focusedCell.dataField===l.column.dataField)return!(l.grid&&l.grid.dataSource.virtualDataSource&&!l.grid.dataSource.id)||l.grid._selection.focusedCell.id===l.row.index;if(l.grid.selection.allowRowSelection&&l.grid._selection.focusedCell&&l.grid._selection.focusedCell.id===l.row.id&&l.grid._selection.focusedCell.dataField===l.column.dataField)return!(l.grid&&l.grid.dataSource.virtualDataSource&&!l.grid.dataSource.id)||l.grid._selection.focusedCell.id===l.row.index;const e=l.parent();return!!(e&&l.grid.selection.allowCellSelection&&l.grid._selection.focusedCell&&l.grid._selection.focusedCell.id===e.row.id&&l.grid._selection.focusedCell.dataField===e.column.dataField)}if("selected"===t)return!0===l.row.getProperty("selected")||(!0===l.column.getProperty("selected")||!!l.grid._selection.cells["row"+l.row.id]&&l.grid._selection.cells["row"+l.row.id][l.column.dataField]);if("modifiedValue"===t){l.grid._cellsUpdatedValues||(l.grid._cellsUpdatedValues=[]);const t=l.grid._cellsUpdatedValues[l.row.id+"_"+l.column.dataField];return void 0!==t?t:e.value}return e[t]},set:function(e,a,i){const r=this.get(e,a);if(r===i)return!0;if(e[a]=i,"element"===a||"isEditing"===a||"oldValue"===a||"_updating"===a||"notifyFn"===a||a.startsWith("_")||"canNotify"===a)return!0;if("error"===a)return!0;if("focused"===a&&(l.grid._selection.focusedCell={id:l.row.id,dataField:l.column.dataField,value:l.value,index:l.row.index}),"colSpan"!==a&&"rowSpan"!==a||i>=0&&-1===l.grid._cellsMerge.indexOf(l)&&l.grid._cellsMerge.push(l),"row"===a||"column"===a||"grid"===a||"styleChanged"===a||"formula"===a)return"formula"===a&&(l.formula=l._parseFormula(l.formula)),!0;if("background"!==a&&"fontSize"!==a&&"fontWeight"!==a&&"fontFamily"!==a&&"textDecoration"!==a&&"color"!==a&&"fontStyle"!==a||(l.grid._cellStyles["row"+l.row.id]=!0,l.grid._cellStyles.length++,l._styleChanged=!0),"value"===a){void 0===l.oldValue&&(l.oldValue=r);(()=>{l.grid.dataSource.boundSource.canNotify=!1,null===i&&(l.column.allowNull||(i="number"===l.column.dataType||"int"===l.column.dataType||"float"===l.column.dataType||"integer"===l.column.dataType?0:"date"===l.column.dataType?new Date:"boolean"!==l.column.dataType&&"bool"!==t.dataType&&"")),void 0===i&&(i=null),null!==i&&i.label&&i.value?(l.row.data[l.column.displayField]=i.label,l.row.data[l.column.dataField]=i.value):(l.column.valueField&&(l.row.data[l.column.valueField]=i),l.row.data[l.column.dataField]=i);const e=l.grid.dataSource.dataItemById[l.row.id];if(e){const t=e.$.index;l.grid.dataSource&&i!==l.grid.dataSource.boundSource[t][l.column.dataField]&&(l.grid._sortedColumns&&l.grid._sortedColumns.length>0?e[l.column.dataField]=i:l.grid.dataSource.boundSource[t][l.column.dataField]=i)}l.grid.dataSource.boundSource.canNotify=!0})()}return"selected"===a?(l.grid._selection.cells["row"+l.row.id]&&(delete l.grid._selection.cells["row"+l.row.id][l.column.dataField],1===Object.getOwnPropertyNames(l.grid._selection.cells["row"+l.row.id]).length&&delete l.grid._selection.cells["row"+l.row.id]),l.grid._selection.cells["column"+l.column.dataField]&&(delete l.grid._selection.cells["column"+l.column.dataField][l.row.id],1===Object.getOwnPropertyNames(l.grid._selection.cells["column"+l.column.dataField]).length&&delete l.grid._selection.cells["column"+l.column.dataField]),i&&(l.grid._selection.cells["row"+l.row.id]||(l.grid._selection.cells["row"+l.row.id]=[]),l.grid._selection.cells["column"+l.column.dataField]||(l.grid._selection.cells["column"+l.column.dataField]=[]),l.grid._selection.cells["row"+l.row.id][l.column.dataField]=!0,l.grid._selection.cells["column"+l.column.dataField][l.row.id]=!0),l.grid._recycle(!1,!0,!1),l.propertyChanged&&l.propertyChanged(name.substring(1),r),!0):!(!l._updating&&l.canNotify)||(l.grid._recycle(),!l.row.canNotify||(l.propertyChanged&&l.propertyChanged(name.substring(1),r),!0))}})}_parseFormula(e){let t=0;const l=this.row;if(!e)return e;for("string"!=typeof e&&(e=""+e),!1===e.startsWith("=")&&(e="="+e);e.indexOf("COL")>=0;){const a=e.indexOf("COL"),i=a+e.substring(a).indexOf(")"),r=e.substring(a,i+2),n=e.substring(i+2,i+3);let s="";if(s=isNaN(parseInt(n))?r.replace("COL(","").replace(")",1+l.index):r.replace("COL(","").replace(")",""),e=e.replace(r,s),t++,t>10)break}return e}setStyle(e){this.setProperties(e)}_setStyle(e){const t=this;if(t._styleChanged){if(!t.grid._cellStyles.length)return;let l="";const a={background:"background",color:"color",fontSize:"font-size",fontFamily:"font-family",fontWeight:"font-weight",fontStyle:"font-style",textDecoration:"text-decoration"},i=e=>{const i=t[e];if(""===i||null===i)return;const r=a[e];l+=`${r}: ${i};`},r=["background","color","fontSize","fontFamily","fontWeight","fontStyle","textDecoration"];for(let e=0;e<r.length;e++)i(r[e]);e.getAttribute("style")!==l&&(""===l?e.removeAttribute("style"):e.setAttribute("style",l)),""!==e.style.paddingBottom&&(e.style.paddingBottom=""),t._styleChanged=!1}t.grid&&!t.grid.appearance.showSelectionOnTop||t.selected&&(t.background||t.color)&&(e.style.background="",e.style.color="")}getFormattedValue(e,t){const l=this;if(null==e||""===e)return e;if(!t)return""+e;if(l.column._cellsCachedValues||(l.column._cellsCachedValues=[]),l.column._cellsCachedValues[""+e+t+l.column.grid.locale])return l.column._cellsCachedValues[""+e+t+l.column.grid.locale];if("date"===l.column.dataType||"datetime"===l.column.dataType||"time"===l.column.dataType){if("dateRangeInput"===l.column.editor.template){if(Array.isArray(e)){const a=l.formatDate(e[0],t)+" - "+l.formatDate(e[1],t);return l.column._cellsCachedValues[""+e+t+l.column.grid.locale]=a,a}{const a=l.formatDate(e,t);return l.column._cellsCachedValues[""+e+t+l.column.grid.locale]=a,a}}let a=l.formatDate(e,t);return"1/1/0001 12:00 AM"===a&&(a=""),l.column._cellsCachedValues[""+e+t+l.column.grid.locale]=a,a}if("int"===l.column.dataType||"int64"===l.column.dataType||"float"===l.column.dataType||"number"===l.column.dataType){let a=l.formatNumber(e,t);return"NaN"===a&&(a=""),l.column._cellsCachedValues[""+e+t+l.column.grid.locale]=a,a}if("any"===l.column.dataType||"string"===l.column.dataType&&t&&t.length){let a=!1;if(t.indexOf("d")>=0&&t.indexOf("M")>=0&&(a=!0),(t.indexOf("d")>=0||t.indexOf("M")>=0||t.indexOf("y")>=0||t.indexOf("h")>=0||t.indexOf("H")>=0||t.indexOf("m")>=0)&&(a=!0),a){let a=l.formatDate(e,t);return"1/1/0001 12:00 AM"===a&&(a=""),l.column._cellsCachedValues[""+e+t+l.column.grid.locale]=a,a}{"string"==typeof e&&(e=parseFloat(e));let a=l.formatNumber(e,t);return"NaN"===a&&(a=""),l.column._cellsCachedValues[""+e+t+l.column.grid.locale]=a,a}}return e}formatDate(e,t){if(!Smart.Utilities.DateTime)return e;const l=this,a=l.grid;if(l.column.formatSettings.Intl&&l.column.formatSettings.Intl.DateTimeFormat){return new Intl.DateTimeFormat(this.grid.locale,l.column.formatSettings.Intl.DateTimeFormat).format(e)}!t&&l.column.formatSettings.dateFormat&&(t=l.column.formatSettings.dateFormat);try{const l=new Smart.Utilities.DateTime(e);l.calendar.locale=a.locale,a.messages[a.locale]&&a.messages[a.locale].calendar&&(a.messages[a.locale].calendar.months&&(l.calendar.months=a.messages[a.locale].calendar.months),a.messages[a.locale].calendar.days&&(l.calendar.days=a.messages[a.locale].calendar.days),void 0!==a.messages[a.locale].calendar.firstDay&&(l.calendar.firstDay=a.messages[a.locale].calendar.firstDay),void 0!==a.messages[a.locale].calendar.eras&&(l.calendar.eras=a.messages[a.locale].calendar.eras),void 0!==a.messages[a.locale].calendar.AM&&(l.calendar.AM=a.messages[a.locale].calendar.AM),void 0!==a.messages[a.locale].calendar.PM&&(l.calendar.PM=a.messages[a.locale].calendar.PM),void 0!==a.messages[a.locale].calendar["/"]&&(l.calendar["/"]=a.messages[a.locale].calendar["/"]),void 0!==a.messages[a.locale].calendar[":"]&&(l.calendar[":"]=a.messages[a.locale].calendar[":"]),l.calendar.today=a.messages[a.locale].today);let i=l.toString(t);return i!==a.messages[a.locale].today||a.showTodayDateAsString||(l.showTodayDateAsString=!1,i=l.toString(t),delete l.showTodayDateAsString),i}catch(t){return e}}formatNumber(e,t){if(!Smart.Utilities.NumberRenderer)return e;const l=this,a=l.grid;if(l.column.formatSettings.Intl&&l.column.formatSettings.Intl.NumberFormat){if(l.column.formatSettings.Intl.NumberFormat.currency&&Smart.Utilities.CurrencyFormatter){const t=void 0!==l.column.formatSettings.Intl.NumberFormat.maximumFractionDigits?l.column.formatSettings.Intl.NumberFormat.maximumFractionDigits:2,a=(new Smart.Utilities.CurrencyFormatter).format(e,{decimalPlaces:t,currency:l.column.formatSettings.Intl.NumberFormat.currency});return"accounting"===l.column.formatSettings.Intl.NumberFormat.currency.currencySign&&e<0?"("+a.replace("-","")+")":a}if(l.column.formatSettings.Intl.NumberFormat.locale){return new Intl.NumberFormat(l.column.formatSettings.Intl.NumberFormat.locale,l.column.formatSettings.Intl.NumberFormat).format(e)}{const t=new Intl.NumberFormat(this.grid.locale,l.column.formatSettings.Intl.NumberFormat).format(e);return"squaremeter"===l.column.formatSettings.Intl.NumberFormat.type?t+" m²":"cubicmeter"===l.column.formatSettings.Intl.NumberFormat.type?t+" m³":t}}const i=new Smart.Utilities.NumberRenderer;if(i.localizationObject){const e=l.column.formatSettings,t=a.messages[a.locale]?a.messages[a.locale].calendar:{};e.decimalPlaces&&(i.localizationObject.decimalPlaces=e.decimalPlaces),(e.decimalSeparator||t.decimalSeparator)&&(i.localizationObject.decimalSeparator=e.decimalSeparator||t.decimalSeparator,i.localizationObject.decimalseparator=i.localizationObject.decimalSeparator),(e.thousandsSeparator||t.thousandsSeparator)&&(i.localizationObject.thousandsSeparator=e.thousandsSeparator||t.thousandsSeparator,i.localizationObject.thousandsseparator=i.localizationObject.thousandsSeparator),i.localizationObject.currencysymbol=t.currencySymbol,i.localizationObject.currencysymbolposition=t.currencySymbolPosition,e.prefix&&(i.localizationObject.currencysymbol=e.prefix),e.sufix&&(i.localizationObject.currencysymbol=e.sufix,i.localizationObject.currencysymbolposition="after")}const r=i.formatNumber(e,t);return void 0===r?e:e<0&&l.column.formatSettings.negativeWithBrackets?"("+r+")":r}refresh(){const e=this;if(e.element){const t=e.element.firstChild;e._setStyle(t)}}autoWrap(){const e=this;e.element&&e.element._autoWrap()}setProperties(e){const t=this;t._updating=!0;for(let l in e)t[l]=e[l];t._updating=!1,t.grid._recycle()}createElement(){const e=document.createElement("smart-grid-cell");return e.setAttribute("role","gridcell"),this.element=e,e._initialize(this),e}render(){this.element&&this.element._render()}parent(e){const t=this,l=t.row,a=t.column.dataField,i=t.grid;if(!i._cellsMerge.length)return null;if(t.__parentCells&&void 0!==t.__parentCells["row"+l.id+"_column_"+a])return t.__parentCells["row"+l.id+"_column_"+a];let r=i.getVisibleRows();i.paging.enabled&&"page"===i.selection.selectAllMode&&(r=r.slice(i.paging.pageIndex*i.paging.pageSize,(i.paging.pageIndex+1)*i.paging.pageSize)),t.__parentCells||(t.__parentCells=[]);for(let n=0;n<i._cellsMerge.length;n++){const s=i._cellsMerge[n];let o=[],d=[];if(o.push(s.row),s.rowspan>1){const e=r.indexOf(s.row);if(e>=0)for(let t=e;t<e+s.rowSpan;t++)r[t]&&-1===o.indexOf(r[t])&&o.push(r[t])}if(d.push(s.column.dataField),s.colspan>1){const e=i.columns.indexOf(i.columnByDataField[s.column.dataField]);for(let t=e;t<e+s.colSpan;t++)i.columns[t]&&-1===d.indexOf(i.columns[t].dataField)&&d.push(i.columns[t].dataField)}if(o.indexOf(l)>=0&&d.indexOf(a)>=0){if(e){const e={cell:s.row.getCell(s.column.dataField),rows:o,columns:d,row:s.row,column:s.column,endRow:o[o.length-1],endColumn:i.columnByDataField[d[d.length-1]]};return t.__parentCells["row"+l.id+"_column_"+a]=e,e}const r=s.row.getCell(s.column.dataField);return t.__parentCells["row"+l.id+"_column_"+a]=r,r}}return t.__parentCells["row"+l.id+"_column_"+a]=null,null}}),Smart("smart-grid-cell",class extends Smart.BaseElement{static get properties(){return{}}get hasStyleObserver(){return!1}get enableShadowDOM(){return!1}addThemeClass(){}addDefaultClass(){}get isUtilityElement(){return!0}_refresh(){const e=this;e.innerHTML="",e._initialize(e.cell)}_createToggleButton(e,t){const l=this,a=document.createElement("div"),i=document.createElement("button"),r=document.createElement("div"),n=document.createElement("div"),s=document.createElement("div"),o=document.createElement("span"),d=t.grid;t.row.expanded?i.setAttribute("toggled",""):i.removeAttribute("toggled",""),i.tabIndex=-1,l.toggleButton=i,l.checkbox=s,e.appendChild(a),e.appendChild(n),n.setAttribute("content",""),a.setAttribute("indent",""),r.setAttribute("label",""),i.setAttribute("toggle-button",""),s.setAttribute("checkbox",""),s.setAttribute("role","checkbox"),l.setAttribute("has-toggle-button",""),n.appendChild(i),n.appendChild(s),o.classList.add("smart-input"),s.appendChild(o),d.checkBoxes.visible?o.classList.remove("smart-hidden"):o.classList.add("smart-hidden"),n.appendChild(r),l.content=r}_initialize(e){const t=this,l=document.createElement("div"),a=e.column,i=e.grid;t._properties=[],t.cell=e,t.appendChild(l);let r=!1;if(a&&a._treeColumn&&i.dataSource.boundHierarchy&&(r=!0,e.row.filterRow&&(r=!1),!i.grouping.enabled&&i.dataSource.groupBy&&i.dataSource.groupBy.length>0&&(r=!1),i.grouping.enabled&&i.dataSource.groupBy&&0===i.dataSource.groupBy.length&&(r=!1)),r)return t._createToggleButton(l,e),void(t.isRendered=!0);{const e=document.createElement("div");l.appendChild(e)}t.content=l,t.isRendered=!0}_renderCommands(){const e=this,t=e.cell.grid;if(t.__cellsCommandTemplate)return e.firstChild.innerHTML=t.__cellsCommandTemplate,void t._updateCommandColumnCommandsVisibility(e.firstChild,e.cell.row);const l=t._getCommandColumnCommandsTemplate();e.firstChild.innerHTML=l,t._updateCommandColumnCommandsVisibility(e.firstChild,e.cell.row),t.__cellsCommandTemplate=l}_renderGroupCell(){const e=this,t=e.cell.grid,l=e.cell.column,a=e.cell.row;[...e.attributes].forEach((t=>e.removeAttribute(t.name))),e.setAttribute("group","");const i=l===t._firstRenderedColumn;e.style.width!==l.computedWidth+"px"&&(e.style.width=l.computedWidth+"px"),i||(t.rightToLeft?e.style.right!==l.left+"px"&&(e.style.right=l.left+"px"):e.style.left!==l.left+"px"&&(e.style.left=l.left+"px")),e.classList.contains("smart-hidden")&&e.classList.remove("smart-hidden"),l===t._firstRenderedColumn||a.summaryRow||e.classList.add("smart-hidden"),l.autoGenerated&&(e.style.width="0px");let r=a.label;const n=function(e,t,l){if(!t)return[];for(let a=0;a<t.length;a++){const i=t[a];i.$&&!1===i.$.filtered||(void 0!==i[e]&&l.push(i),i.summaryRow||(i.children||i.data&&i.data.children)&&n(e,i.children,l))}return l};if(void 0!==a.label){let s="",o=[];if(t.grouping.summaryRow.visible){let r=[];const d={},c=i?l.summary.length>0?l.summary:["count"]:l.summary;c.length&&(r=n(l.dataField,a.summaryRow?a.parent.data.children:a.data.children,[])),d[l.dataField]=c;const m=c.length>0?t.dataSource.summarize([d],r):null;if(m)for(let r=0;r<c.length;r++){const n=c[r];r>0&&(s+=", ");let u=m[l.dataField][n];const p=l.cellsFormat;if(p&&(u=e.cell.getFormattedValue(u,p)),i){const i=t.columnByDataField[a.groupDataField];if(i){d[i.dataField]=c,m[i.dataField]=m[l.dataField],u=m[i.dataField][n];const t=i.cellsFormat;t&&(u=e.cell.getFormattedValue(u,t))}}s+=t.localize(n,{value:u}),o.push(m[l.dataField][n])}}if(t.dataSource.virtualDataSourceOnExpand&&(s=""),i){const l=t.columnByDataField[a.groupDataField],i=l?l.label:"";if("advanced"===t.grouping.renderMode){if(a.summaryRow)r="<div header group-advanced><span group></span><span value></span>",s&&(r+="<div summary>",r+=s,r+="</div>");else{let e=a.label?a.label:t.localize("blankSummary");a.label||"taskStatus"!==a.groupDataField||(e="");let n="";if(l&&l.editor&&l.editor.dataSource){const t=l.editor.dataSource.find((t=>t.value===e||t.label===e));t&&t.color?(n=`--smart-primary: ${t.color}`,t.label&&(e=t.label)):t&&t.label&&(e=t.label)}if(a.label||"taskStatus"!==a.groupDataField||(e=t.localize("uncategorized")),"object"==typeof e&&l.cellsFormat){const t=a.getCell(l.dataField);e=t.getFormattedValue(e,l.cellsFormat)}else if("object"==typeof e&&e&&e instanceof Date){const t=a.getCell(l.dataField);e=t.getFormattedValue(e,"d")}r=`<div style="${n}" header group-advanced><span group>${t.editing.addNewRow.visible?'<span add-row class="smart-grid-icon smart-icon-plus-circled show"></span>':""}${i}: </span><span value>${e}</span>`,s&&t.grouping.summaryRow.inline&&(r+="<span summary>",r+=""+s,r+="</span>")}r+="</div>",e.classList.add("smart-grid-column-border-collapse")}else if("compact"===t.grouping.renderMode){if(a.summaryRow)r="<div header><span group></span><span value></span>",s&&(r+="<div summary>",r+=s,r+="</div>");else{let e=a.label;if(l.displayField!==l.dataField&&a.data.data&&(e=a.data.data[l.displayField]),"object"==typeof e&&l.cellsFormat){e=a.getCell(l.dataField).getFormattedValue(e,l.cellsFormat)}r="<div header><span group>"+i+": </span><span value>"+e+"</span>",s&&t.grouping.summaryRow.inline&&(r+="<span summary>",r+=" ("+o+")",r+="</span>")}r+="</div>",e.classList.add("smart-grid-column-border-collapse")}else if("basic"===t.grouping.renderMode){if(r=a.label,l.displayField!==l.dataField&&a.data.data&&(r=a.data.data[l.displayField]),"object"==typeof r&&l.cellsFormat){r=a.getCell(l.dataField).getFormattedValue(r,l.cellsFormat)}a.summaryRow?s&&(r+="<div summary>",r+=s,r+="</div>"):s&&t.grouping.summaryRow.inline&&(r+="<span summary>",r+=" ("+o+")",r+="</span>"),e.classList.add("smart-grid-column-border-collapse")}else if("multipleColumns"===t.grouping.renderMode){if(r=a.label,"object"==typeof r&&l.cellsFormat){r=a.getCell(l.dataField).getFormattedValue(r,l.cellsFormat)}a.summaryRow?s&&(r+="<div summary>",r+=s,r+="</div>"):s&&t.grouping.summaryRow.inline&&(r+="<span summary>",r+=" ("+o+")",r+="</span>"),e.classList.add("smart-grid-column-border-collapse")}e.setAttribute("has-toggle-button","")}else e.removeAttribute("has-toggle-button",""),r=s}let s=e.firstChild;if(t.dataSource.boundHierarchy&&i){s.children.length<=1&&(e.innerHTML="<div></div>",s=e.firstChild,e._createToggleButton(s,e.cell),s=e.firstChild);const n=s.children[0],o=s.children[1].children[0],d=s.children[1].children[1].firstChild,c=s.children[1].children[2];n.setAttribute("indent",""),a.checked?d.setAttribute("checked",""):!1===a.checked?d.removeAttribute("checked"):null===a.checked&&d.setAttribute("checked","indeterminate"),a.leaf?o.classList.add("smart-visibility-hidden"):(o.classList.remove("smart-visibility-hidden"),a.expanded?o.setAttribute("toggled",""):o.removeAttribute("toggled",""));let m="";if(!l._treeColumn||a.summaryRow||a.filterRow?e.toggleButton.classList.add("smart-hidden"):e.toggleButton.classList.remove("smart-hidden"),l._treeColumn)if(t.grouping.enabled){let e=a.level-1;if(1+e===0)m+="",n.classList.add("smart-hidden");else{if("multipleColumns"===t.grouping.renderMode){let l=0;for(let a=0;a<t.columns.length;a++)a<1+e&&(l+=t.columns[a].computedWidth);m+='<div style="width: '+l+'px;"></div>'}else m+='<div style="width: '+(1+e)*t.grouping.groupIndent+'px;"></div>';n.classList.remove("smart-hidden")}}else for(let e=0;e<a.level;e++)m+="<div class='smart-indent'></div>";if(void 0===a.label||a.summaryRow||a.filterRow?o.classList.add("smart-hidden"):(o.classList.remove("smart-hidden"),o.style.marginLeft=""),n.innerHTML=m,c.innerHTML=r,i&&t.grouping.formatFunction){const i={row:a,column:l,groupDataField:a.groupDataField,cell:e.cell,value:r,template:null};t.grouping.formatFunction(i),i.value!==r?c.innerHTML=i.value:i.template&&(c.innerHTML=i.template)}t.appearance.showTooltips?c.setAttribute("title",a.label?a.label:t._unescapeString(r)):c.hasAttribute("title")&&c.removeAttribute("title")}else void 0!==a.label&&t.grouping.enabled&&!i&&(s.innerHTML=r);let o="smart-label";e.style.zIndex="";const d=t.editing.addNewColumn.visible?t._addNewColumn.width-1:0;if(i){const l=t.columnByDataField[a.groupDataField];l.cellsAlign&&(o+=" align-"+l.cellsAlign),l.cellsVerticalAlign&&(o+=" align-"+l.cellsVerticalAlign),e.setAttribute("header",""),a.summaryRow||(e.style.width="calc(100% - "+d+"px)"),void 0!==a.label&&(e.style.zIndex=11)}else l===t._firstRenderedColumn&&(e.style.zIndex=4),e.setAttribute("header",""),a.summaryRow||(e.style.width="calc(100% - "+d+"px)");if(a.summaryRow&&(e.setAttribute("header",""),e.classList.add("smart-grid-column-border-collapse"),l.cellsAlign&&(o+=" align-"+l.cellsAlign),l.cellsVerticalAlign&&(o+=" align-"+l.cellsVerticalAlign)),s.className!==o&&(s.className=o),l.formatFunction){const t={row:a,column:l,cell:e.cell,value:null,template:null,group:{value:r,template:null}};if(l.formatFunction(t),t.group.value!==r)if(l._treeColumn){s.children[1].children[2].innerHTML=t.group.value}else s.innerHTML=t.group.value;null!==t.group.template&&(s.innerHTML=t.group.template)}}_renderFilterCell(e){const t=this,l=t.cell.grid,a=t.cell.column;let i;const r=(e,t)=>{l._handleFilterMenuClick(e,t)};l._filterInfo||(l._filterInfo={},l._filterInfo.stringConditions=[{icon:"smart-icon-contains",command:r,value:"CONTAINS",label:l.localize("CONTAINS")},{icon:"smart-icon-does-not-contain",command:r,value:"DOES_NOT_CONTAIN",label:l.localize("DOES_NOT_CONTAIN")},{icon:"smart-icon-starts-with",command:r,value:"STARTS_WITH",label:l.localize("STARTS_WITH")},{icon:"smart-icon-ends-with",command:r,value:"ENDS_WITH",label:l.localize("ENDS_WITH")},{icon:"smart-icon-equals",command:r,value:"EQUAL",label:l.localize("EQUAL")},{icon:"smart-icon-delete",command:r,value:"CLEAR_FILTER",label:l.localize("CLEAR_FILTER")}],l._filterInfo.numberAndDateConditions=[{icon:"smart-icon-equals",command:r,value:"EQUAL",label:l.localize("EQUAL")},{icon:"smart-icon-not-equal",command:r,value:"NOT_EQUAL",label:l.localize("NOT_EQUAL")},{icon:"smart-icon-less-than",command:r,value:"LESS_THAN",label:l.localize("LESS_THAN")},{icon:"smart-icon-less-than-equal",command:r,value:"LESS_THAN_OR_EQUAL",label:l.localize("LESS_THAN_OR_EQUAL")},{icon:"smart-icon-greater-than",command:r,value:"GREATER_THAN",label:l.localize("GREATER_THAN")},{icon:"smart-icon-greater-than-equal",command:r,value:"GREATER_THAN_OR_EQUAL",label:l.localize("GREATER_THAN_OR_EQUAL")},{icon:"smart-icon-between",command:r,value:"RANGE",label:l.localize("RANGE")},{icon:"smart-icon-delete",command:r,value:"CLEAR_FILTER",label:l.localize("CLEAR_FILTER")}]),i="string"===a.dataType?l._filterInfo.stringConditions:l._filterInfo.numberAndDateConditions;let n="smart-icon-search";if(a._filterInfo||(a._filterInfo={condition:""}),a.filterEditor&&a.filterEditor.condition&&(a._filterInfo.condition=a.filterEditor.condition),a.filterEditor&&a.filterEditor.value&&(a._filterInfo.value=a.filterEditor.value),a._filterInfo.dataSource=i,null===a._filterInfo.condition||void 0===a._filterInfo.condition)a._filterInfo.condition="",n="smart-icon-search";else switch(a._filterInfo.condition.toLowerCase()){case"equal":n="smart-icon-equals";break;case"starts_with":n="smart-icon-starts-with";break;case"ends_with":n="smart-icon-ends-with";break;case"not_equal":n="smart-icon-not-equal";break;case"less_than":n="smart-icon-less-than";break;case"less_than_or_equal":n="smart-icon-less-than-or-equal";break;case"greater_than":n="smart-icon-greater-than";break;case"greater_than_or_equal":n="smart-icon-greater-than-or-equal";break;case"contains":n="smart-icon-contains";break;case"does_not_contain":n="smart-icon-does-not-contain";break;case"range":n="smart-icon-between";break;default:n="smart-icon-search"}let s=`<div class="smart-filter-input-type"><i class="smart-grid-icon ${n} show"></i></div> `;if("string"===a.dataType)s+=`<input class="smart-filter-input-value" data-type="${a.dataType}" /> `,e.innerHTML=s;else if("date"===a.dataType){const i=new Smart.Utilities.DateTime;s+=`<input placeholder = "${i.expandFormat(i.calendar,a.cellsFormat||"d")}" class="smart-filter-input-value" data-type="${a.dataType}"/><div class="smart-filter-input-type"><i class="smart-grid-icon smart-icon-calendar show"></i></div>`,e.innerHTML=s,e.lastElementChild.onpointerdown=function(){l._handleFilterCalendarCellClick(t.cell)}}else if("number"===a.dataType)s+='<div class="smart-grid-cell-editor smart-filter-input-value smart-grid-number-input-cell-editor"><input class="smart-input" type="number"><div tabindex="-1" class="nav"><div tabindex="-1" class="up"></div><div tabindex="-1" class="down"></div></div></div>',e.innerHTML=s,l._handleFilterNumberCellEditor(this.cell,e);else if("boolean"===a.dataType||"bool"===a.dataType){const i=document.createElement("div");i.classList.add("smart-input"),i.classList.add("smart-grid-check-box-cell-editor"),i.classList.add("smart-filter-input-value"),e.tabIndex=0,e.style.outline="none",t.setAttribute("template","checkBox"),i.setAttribute("checked","indeterminate"),a._filterInfo&&a._filterInfo.value?i.setAttribute("checked",""):a._filterInfo&&!1===a._filterInfo.value&&i.removeAttribute("checked"),s=i.outerHTML,e.innerHTML=s,e.classList.add("align-center"),e.classList.add("smart-label"),e.onfocus=()=>{e.setAttribute("focus","")},e.onblur=()=>{e.removeAttribute("focus","")},e.onclick=e=>{e.target.classList.contains("smart-input")&&l._handleFilterCellCheckBoxClick(this.cell)}}const o=e.querySelector("input");if(o&&(e.firstElementChild.onpointerdown=function(){l._handleFilterCellIconClick(this.cell)}.bind(this),o.onpaste=function(e){setTimeout((()=>{l._handleFilterCellKeyUp(this.cell,e)}))}.bind(this),o.onfocus=function(){l._handleFilterCellFocus(this.cell)}.bind(this),o.onblur=function(){l._handleFilterCellBlur(this.cell)}.bind(this),o.onkeyup=function(e){l._handleFilterCellKeyUp(this.cell,e)}.bind(this),o.onkeydown=function(e){l._handleFilterCellKeyDown(this.cell,e)}.bind(this)),e.classList.add("smart-filter-input-container"),a._filterInfo.input=o,a._filterInfo.cell=t.cell,a._filterInfo.editor=e,a._filterInfo.value&&o&&(o.value=a._filterInfo.value,"date"===a.dataType&&(o.value=t.cell.getFormattedValue(a._filterInfo.value,a.cellsFormat))),a.allowFilter||(o.disabled=!0),a.filterEditor)if(a.filterEditor.template){const t=a.filterEditor.template,l=document.createElement("div");a.filterTemplate instanceof HTMLTemplateElement?l.appendChild(t.content.cloneNode(!0)):t instanceof HTMLElement?l.appendChild(t):l.innerHTML=t,e.innerHTML="",e.appendChild(l),l.style.height="100%",l.style.width="100%";const i=e.querySelector("input");i&&(i.onfocus=()=>{e.setAttribute("focus","")},i.onblur=()=>{e.removeAttribute("focus","")}),a.filterEditor.onInit&&a.filterEditor.onInit(a,l)}else void 0!==a.filterEditor.min&&(o.min=a.filterEditor.min),void 0!==a.filterEditor.max&&(o.max=a.filterEditor.max),void 0!==a.filterEditor.minLength&&(o.minLength=a.filterEditor.minLength),void 0!==a.filterEditor.maxLength&&(o.maxLength=a.filterEditor.maxLength),void 0!==a.filterEditor.placeholder&&(o.placeholder=a.filterEditor.placeholder),void 0!==a.filterEditor.value&&(o.value=a.filterEditor.value),void 0!==a.filterEditor.step&&(o.step=a.filterEditor.step),void 0!==a.filterEditor.disabled&&(o.disabled=a.filterEditor.disabled),void 0!==a.filterEditor.condition&&(a._filterInfo.condition=a.filterEditor.condition),a.filterEditor.onInit&&a.filterEditor.onInit(a,e)}_setTemplate(t,l,a){const i=this,r=i.cell.grid,n=i.cell.column;let s=null;switch((!r.editing.enabled||!n.allowEdit||i.cell.readonly||"none"===r.editing.action||r.editing.enabled&&r.editing.commandColumn.visible&&r.editing.editRow!==i.cell.row)&&i.setAttribute("readonly",""),l){case"checkBox":case"radioButton":case"switchButton":if(a.firstElementChild&&a.firstElementChild.classList.contains("smart-input"))return s=a.firstElementChild,t?s.setAttribute("checked",""):null===t?s.setAttribute("checked","indeterminate"):s.removeAttribute("checked"),void i.setAttribute("template",i.cell.template);s=document.createElement("span"),s.className="smart-input",t?s.setAttribute("checked",""):null===t?s.setAttribute("checked","indeterminate"):s.removeAttribute("checked"),i.setAttribute("template",i.cell.template),a.innerHTML="",a.appendChild(s),i.cell._setStyle(a);break;case"checklist":if(t&&t.indexOf("[")>=0&&(t=JSON.parse(t)),a.firstElementChild&&a.firstElementChild.hasAttribute("value")){const e=a.firstElementChild.getAttribute("value");if(t&&e===t.length)return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}if(t&&Array.isArray(t)&&t.length>0){const e=t.filter((e=>e.completed)).length,l=["#D50000","#F4511E","#F6BF26","#33B679"],a=e+"/"+t.length;let i=l[0];e===t.length?i=l[3]:e>0&&e<t.length&&(i=l[2]),t=`<div style="display: grid; grid-template-columns: 25px auto"><div style="margin-left: 4px; align-self: center; border-radius: 50%; display: flex; align-content: center; background: ${i}; width:16px; height: 16px;"><span title="${a}" style="align-content: center; font-size: 13px; color: white;" class="smart-grid-icon show smart-icon-check"></span></div>${a}</span></div>`}else t="";s=document.createElement("span"),s.innerHTML=t,i.setAttribute("template",i.cell.template),s.setAttribute("value",t.length);break;case"createdBy":case"updatedBy":{const e=i.cell.row;let t=null,o=null;if(t="createdBy"===l?e.createdBy:e.updatedBy,a.firstElementChild&&a.firstElementChild.hasAttribute("user-id")){if(t===parseInt(a.firstElementChild.getAttribute("user-id")))return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template);if(null!=t&&-1!==t){o=r.users.find((e=>e.id===t));const e=o;if(e){const l=a.firstElementChild.firstElementChild&&a.firstElementChild.firstElementChild.firstElementChild?a.firstElementChild.firstElementChild.firstElementChild.firstElementChild:null;if(l){a.firstElementChild.setAttribute("user-id",t);const i="string"==typeof e?e:e.name,r="string"==typeof e?null:e.color;if(("string"==typeof e?null:e.image)&&(l.firstElementChild.style.backgroundImage=`url('${e.image}')`),r){const e=new Smart.Color(r).getInvertedColor();l.setAttribute("data-item",i),l.setAttribute("title",i),l.setAttribute("backgroundColor",r),l.setAttribute("color",e),l.lastElementChild.textContent=i}else l.setAttribute("data-item",i),l.setAttribute("title",i),l.setAttribute("backgroundColor",""),l.setAttribute("color","");return}}}}const d=document.createElement("div");d.classList.add("smart-multi-combo-input"),d.setAttribute("data-field",n.dataField),d.setAttribute("row-id",i.cell.row.id),d.style.width="100%",d.style.paddingRight="6px";let c='<div class="smart-flex smart-flex-auto smart-tokens-layout">';if(null!=t&&-1!==t){o=r.users.find((e=>e.id===t));const e=o;if(e){const t="string"==typeof e?e:e.name,l="string"==typeof e?null:e.color,a="string"==typeof e?null:e.image,i=document.createElement("span");if(a&&(i.style.backgroundImage=`url('${e.image}')`,i.className="smart-drop-down-list-selection-image"),l){c+='<span title="'+t+'" data-item="'+t+'" style="background: '+l+"; color: "+new Smart.Color(l).getInvertedColor()+'; overflow: visible;" class="smart-truncate smart-token">'+i.outerHTML+"<span class='smart-drop-down-list-selection-label' role=\"presentation\">"+t+"</span></span>"}else c+='<span title="'+t+'" data-item="'+t+'" class="smart-truncate smart-token">'+i.outerHTML+"<span class='smart-drop-down-list-selection-label' role=\"presentation\">"+t+"</span></span>"}else c=""}d.innerHTML=c+"</div>";const m=document.createElement("div");m.classList.add("smart-multi-combo-input-container","tokens","smart-flex","smart-flex-auto"),d.classList.add("smart-flex-auto"),m.appendChild(d),s=m,s.setAttribute("user-id",t),i.setAttribute("template",i.cell.template);break}case"collaborator":case"tags":{let e=[];"number"==typeof t&&(t=""+t);let o=!1===r.editing.enabled?"smart-visibility-hidden":"",d=n.editor.dataSource&&n.editor.dataSource.length;if(n.editor.collaborator&&(d=r.users&&r.users.length),d||(o="smart-visibility-hidden"),""===t||null===t||"uncategorized"===t){let e=`\n <div class="smart-multi-combo-input-container tokens smart-flex smart-flex-auto" data-field="${n.dataField}" row-id="${i.cell.row.id}"> \n <div class="smart-multi-combo-input" data-field="${n.dataField}" row-id="${i.cell.row.id}" class="tokens smart-flex smart-flex-auto">\n <div class=" smart-flex-auto smart-flex"></div>\n </div>\n <span class="smart-arrow-down arrowbtn ${o}"></span>\n </div>\n `;a.innerHTML!==e&&(a.firstElementChild&&a.firstElementChild.firstElementChild&&a.firstElementChild.firstElementChild.firstElementChild&&""===a.firstElementChild.firstElementChild.firstElementChild.textContent?(a.firstElementChild.setAttribute("row-id",i.cell.row.id),a.firstElementChild.firstElementChild.setAttribute("row-id",i.cell.row.id)):a.innerHTML=e);const t=a.querySelector(".smart-arrow-down");return t&&(t.onpointerdown=e=>{if(r.editing.enabled){const t=e.target.previousElementSibling,l=t.getAttribute("data-field"),a=t.closest("smart-grid-row").getAttribute("data-id");r.beginEdit(a,l)}e.stopPropagation(),e.preventDefault()}),i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}if(null!==t&&(e=Array.isArray(t)?e.map((e=>e.trim())):t.indexOf("{")>=0||"[]"===t?JSON.parse(t):t.split(",").map((e=>e.trim()))),a.firstElementChild&&a.firstElementChild.hasAttribute("value")&&n.editor._items){if(a.firstElementChild.getAttribute("value")===t){if(i.cell._setStyle(a),i.setAttribute("template",i.cell.template),a.firstElementChild&&a.firstElementChild.firstElementChild&&a.firstElementChild.firstElementChild.firstElementChild)if(a.firstElementChild.firstElementChild.firstElementChild.classList.remove("smart-flex-wrap"),i.cell.row.height>45){a.firstElementChild.firstElementChild.firstElementChild.classList.add("smart-flex-wrap");const e=a.firstElementChild.firstElementChild.firstElementChild;if(e.children&&e.children.length>1)for(let t=0;t<e.children.length;t++)e.children[t].style.maxWidth&&(e.children[t].style.maxWidth="")}else if(r.layout.rowHeight<=45&&i.cell.row.height<=45){const e=a.firstElementChild.firstElementChild.firstElementChild;if(e.children&&e.children.length>1){const t=parseInt(n.computedWidth/e.children.length)-5;let l=0;for(let t=0;t<e.children.length;t++)l+=e.children[t].textContent.length,e.children[t].style.maxWidth="";if(14*l*.52+20*e.children.length>n.computedWidth)for(let l=0;l<e.children.length;l++)e.children[l].style.maxWidth=t+"px"}}return}}const c=document.createElement("div");c.classList.add("smart-multi-combo-input"),c.setAttribute("data-field",n.dataField),c.setAttribute("row-id",i.cell.row.id);let m='<div class="smart-tokens-layout smart-flex smart-flex-auto">';if(e.length>2&&i.cell.row.height>45){m='<div style="max-width: '+(n.computedWidth-10+"px")+'" class="smart-flex smart-flex-wrap">'}let u=0;if(t)for(let t=0;t<e.length;t++){const a=e[t];let i=null;if("collaborator"===l||n.editor&&n.editor.collaborator)i=r.users.find((e=>{if("string"==typeof a||"number"==typeof a){if(e.value===a||parseInt(e.value)===parseInt(a))return e;if(e.id===a||parseInt(e.id)===parseInt(a))return e}else if("object"==typeof a&&e.value===a.value)return e})),i&&(i.label=i.name);else if(n.editor.dataSource)if("string"==typeof a&&n.editor._items&&n.editor._items[a])i=n.editor._items[a];else for(let e=0;e<n.editor.dataSource.length;e++){const t=n.editor.dataSource[e];if(void 0!==t.value&&void 0!==a&&void 0!==a.value&&t.value===a.value){i=t,n.editor._items||(n.editor._items=[]),n.editor._items[a]=t;break}if(void 0===t.value&&t===a||void 0!==t.value&&""+t.value===a){i=t,n.editor._items||(n.editor._items=[]),n.editor._items[a]=t;break}}else i=a;if(!i)continue;const s="string"==typeof i?i:i.label,o="string"==typeof i?null:i.color,d="string"==typeof i?null:i.image;if(""===s)continue;const c=document.createElement("span");d&&(c.style.backgroundImage=`url('${i.image}')`,c.className="smart-drop-down-list-selection-image");const p="smart-truncate";if(o&&n.editor.colorItems){m+='<span title="'+s+'" data-item="'+s+'" style="background: '+o+"; color: "+new Smart.Color(o).getInvertedColor()+'; overflow: visible;" class="'+p+' smart-token">'+c.outerHTML+"<span class='smart-drop-down-list-selection-label' role=\"presentation\">"+s+"</span>"}else m+='<span title="'+s+'" data-item="'+s+'" class="'+p+' smart-token">'+c.outerHTML+"<span class='smart-drop-down-list-selection-label' role=\"presentation\">"+s+"</span>";if(u+=s.length,n.editor.dataSource){if(n.editor.singleSelect){m+="</span>";break}m+='<span class=\'smart-hidden smart-drop-down-list-unselect-button\' role="button" aria-label="Unselect"></span></span>'}else m+="</span>"}c.innerHTML=m+"</div>";const p=14*u*.52,g=c.firstElementChild;if(r.layout.rowHeight<=45&&i.cell.row.height<=45&&c&&g.children.length>1&&p+20*g.children.length>n.computedWidth){const e=parseInt(n.computedWidth/g.children.length)-5;for(let t=0;t<g.children.length;t++)g.children[t].style.maxWidth=e+"px"}if(c.style.width="100%",i.onmouseenter=()=>{c.style.width="calc(100% - 25px)"},i.onmouseleave=()=>{c.style.width="100%"},c.style.paddingRight="6px",c.onpointerdown=t=>{if(!r._mobile)if(t.target&&"#text"!==t.target.nodeName&&t.target.classList.contains("smart-drop-down-list-unselect-button")){let l=t.target.parentNode.getAttribute("data-item");if(n.editor.dataSource&&"string"==typeof l&&n.editor.dataSource)for(let e=0;e<n.editor.dataSource.length;e++)n.editor.dataSource[e].label===l&&(l=n.editor.dataSource[e],l.value&&(l=l.value));if(e[0]&&e[0].label){const a=e.map((e=>e.value)).indexOf(l);if(a>=0){e.splice(a,1);const l=i.cell.value,s=e.join(", ");r.setCellValue(i.cell.row.id,n.dataField,JSON.stringify(e)),r.onCellUpdate&&r.onCellUpdate([i.cell],[l],[s],(function(){}),i),t.preventDefault(),t.stopPropagation()}}else if(e.indexOf(l)>=0){e.splice(e.indexOf(l),1);const a=i.cell.value,s=e.join(", ");r.setCellValue(i.cell.row.id,n.dataField,s),r.onCellUpdate&&r.onCellUpdate([i.cell],[a],[s],(function(){}),i),t.preventDefault(),t.stopPropagation()}}else if(t.target.classList.contains("smart-drop-down-list-selection-label")){if(r.editing.enabled){const e=t.target.parentElement.parentElement,l=e.getAttribute("data-field"),a=e.getAttribute("row-id");r.beginEdit(a,l)}t.stopPropagation(),t.preventDefault()}},!n.cellsWrap&&n.allowEdit&&r.editing.enabled&&"card"!==r.view){const t=document.createElement("span");t.classList.add("smart-arrow-down","arrowbtn");let l=n.editor.dataSource&&n.editor.dataSource.length;n.editor.collaborator&&(l=r.users&&r.users.length),l||t.classList.add("smart-visibility-hidden");const a=document.createElement("div");a.classList.add("smart-multi-combo-input-container","tokens","smart-flex","smart-flex-auto"),c.classList.add("smart-flex-auto"),c.classList.remove("smart-flex-wrap"),e.length>2&&r.layout.rowHeight>45&&(c.classList.add("smart-flex-wrap"),c.style.maxWidth=n.computedWidth-10+"px"),r.rightToLeft&&(c.style.direction="rtl"),a.appendChild(c),"input"!==n.editor.template&&a.appendChild(t),s=a,t.onpointerdown=e=>{if(!r._mobile){if(r.editing.enabled){const t=e.target.previousElementSibling,l=t.getAttribute("data-field"),a=t.closest("smart-grid-row").getAttribute("data-id");r.beginEdit(a,l)}e.stopPropagation(),e.preventDefault()}}}else if(n.cellsWrap||n.allowEdit){const t=document.createElement("div");t.classList.add("smart-multi-combo-input-container","tokens","smart-flex","smart-flex-auto"),c.classList.add("smart-flex-auto"),c.classList.remove("smart-flex-wrap"),e.length>2&&r.layout.rowHeight>45&&(c.classList.add("smart-flex-wrap"),c.style.maxWidth=n.computedWidth-10+"px"),r.rightToLeft&&(c.style.direction="rtl"),t.appendChild(c),s=t}else c.classList.add("smart-flex-auto"),s=c;i.setAttribute("template",i.cell.template),s.setAttribute("value",t);break}case"dropdownGrid":case"dropDownList":case"dropdownlist":case"list":{const e=document.createElement("div");if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")){if(a.firstElementChild.getAttribute("value")===t)return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}if("dropdownGrid"===i.cell.template){const l=i.cell.column.templateSettings.dataFields,a=i.cell.editor.dataSource[t],r="#D0F0FD";e.classList.add("smart-flex","center"),e.style.setProperty("--smart-primary",r);const n=new Smart.Color(r).getInvertedColor();if(e.style.color=n,e.onmouseenter=()=>{e.querySelectorAll("i").forEach((e=>e.classList.add("show")))},e.onmouseleave=()=>{e.querySelectorAll("i").forEach((e=>e.classList.remove("show")))},a){e.style.justifyContent="space-between";let t="";for(let e=0;e<l.length;e++){t+='<span style="color: inherit;" class="smart-truncate smart-token smart-flex middle center ">'+a[l[e]]+"</span>"}e.innerHTML=t}else e.style.justifyContent="",e.innerHTML='<span class="smart-truncate"></span>'}else"card"===r.view?e.textContent=t:e.innerHTML='<span class="smart-truncate">'+t+"</span>";if(n.allowEdit&&r.editing.enabled&&"card"!==r.view){const t=document.createElement("span");t.classList.add("smart-arrow-down","arrowbtn");const l=document.createElement("div");l.classList.add("smart-multi-combo-input-container","tokens","smart-flex","smart-flex-auto"),e.classList.add("smart-flex-auto","smart-multi-combo-input"),l.appendChild(e),l.appendChild(t),l.classList.add(i.cell.template.toLowerCase()),s=l,t.onpointerdown=e=>{if(!r._mobile){if(r.editing.enabled){const t=e.target.closest("smart-grid-cell"),l=e.target.closest("smart-grid-row"),a=t.getAttribute("data-field"),n=l.getAttribute("data-id");if(r.beginEdit(n,a),i.cell.column.editor&&i.cell.column.editor.instance){const e=i.cell.column.editor,t=e.instance.element;!e.autoOpen&&t.open?t.open():!e.autoOpen&&t.firstElementChild&&t.firstElementChild.open&&setTimeout((()=>{t.firstElementChild.open()}),250)}}e.stopPropagation(),e.preventDefault()}}}else s=e;i.setAttribute("template",i.cell.template.toLowerCase()),s.setAttribute("value",t);break}case"password":a.innerHTML=t?'<span class="smart-truncate">'+t.replace(/./g,"*")+"</span>":"",i.setAttribute("template",i.cell.template);break;case"richText":if(a.innerHTML=t?'<div class="textwrap" style="height: 100%; padding-left: 5px;">'+r._unescapeString(t)+"</div>":"",r.layout.autoWrap&&i.cell.row.height>40&&1===i.cell.colSpan&&"string"===n.dataType){null==t&&(t="");if(14*t.length*.52>n.computedWidth){const e=parseInt(i.cell.row.height/20);a.firstElementChild.style["-webkit-line-clamp"]=e}}i.setAttribute("template",i.cell.template);break;case"color":a.innerHTML=`<span style="left: calc(50% - 12px); top: calc(50% - 12px); position: absolute; border-radius: 50%; width: 24px; height: 24px; display: block; background:${t};"></span>`,i.setAttribute("template",i.cell.template);break;case"autoNumber":s=document.createElement("span"),s.innerHTML=1+i.cell.row.visibleIndex,i.setAttribute("template",i.cell.template);break;case"uuid":{if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")){const e=a.firstElementChild.getAttribute("value");if(t===e)return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}s=document.createElement("span"),s.style.paddingLeft="7px";const e=r._generateUUID(),l=i.cell.canNotify;i.cell.canNotify=!1,t||(i.cell.value=e,r.onCellUpdate&&!r.editing.editRow&&r.onCellUpdate([i.cell],[e],[e],(function(){r.onCellUpdated&&r.onCellUpdated([i.cell.row.index],[i.cell.row],[i.cell.column],[i.cell.row.data],[i.cell.value],[i.cell.value],i)}),i)),s.textContent=i.cell.value,i.cell.canNotify=l,i.setAttribute("template",i.cell.template),s.setAttribute("value",e);break}case"ai":{if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")){const e=a.firstElementChild.getAttribute("value");if(t===e)return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}const e=(e,t)=>{const l=r.ai.url,a=r.ai.key;e.stopPropagation(),e.preventDefault();const i=e.target.closest("smart-grid-cell"),n=e.target.closest("smart-grid-row"),o=i.getAttribute("data-field"),d=n.getAttribute("data-id");t?(e.target.classList.remove("smart-icon-reload"),e.target.classList.add("smart-grid-loading")):e.target.classList.add("smart-grid-loading");let c=""+r.columnByDataField[o].AIQuery;r.columnByDataField[c]&&(c=""+r.getCellValue(d,c)),c?async function(e){const t=await fetch(l,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a}`},body:JSON.stringify({model:r.ai.model,prompt:e,max_tokens:r.ai.tokens,temperature:r.ai.temperature})});if(!t.ok)throw new Error(`Error: ${t.statusText}`);return(await t.json()).choices[0].text.trim()}(c).then((e=>{const t=e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;");r.setCellValue(d,o,t),s.setAttribute("value",t)})).catch((e=>{console.error("Error:",e)})):(r.setCellValue(d,o,r.localize("noResults")),s.setAttribute("value",r.localize("noResults")))};if(t){s=document.createElement("span"),s.style.paddingLeft="7px";const l=i.cell.canNotify;i.cell.canNotify=!1,s.textContent=i.cell.value,i.cell.canNotify=l;const a=document.createElement("span");s.appendChild(a),a.classList.add("smart-grid-icon","show","smart-icon-reload","smart-visibility-hidden"),a.style.position="absolute",a.style.right=a.style.top="0px",s.onmouseenter=()=>{a.classList.remove("smart-visibility-hidden")},s.onmouseleave=()=>{a.classList.add("smart-visibility-hidden")},a.onpointerdown=t=>{e(t,!0)},i.setAttribute("template",i.cell.template),s.setAttribute("value",t)}else s=document.createElement("div"),s.classList.add("smart-flex","center","middle"),s.style.height="100%",s.innerHTML=`<button style="height: 24px; padding-inline: 24px; padding-block: 2px;" class="smart-button" type="button">${r.localize("generate")}</button\n `,s.onpointerdown=t=>{e(t)},i.setAttribute("template",i.cell.template);break}case"createdDate":case"createdTime":{const e=i.cell.getFormattedValue(i.cell.row.createdDate,"d"),t=i.cell.getFormattedValue(i.cell.row.createdDate,"t");if(a.firstElementChild&&a.firstElementChild.hasAttribute("created-date")){const l=e+" "+t;l!==a.firstElementChild.textContent&&(a.firstElementChild.textContent=l)}else a.innerHTML='<span created-date class="align-left smart-truncate">'+e+" "+t+"</span>";i.cell._setStyle(a),i.setAttribute("template",i.cell.template);break}case"updatedDate":case"updatedTime":if(i.cell.row.updatedDate){const e=i.cell.getFormattedValue(i.cell.row.updatedDate,"d"),t=i.cell.getFormattedValue(i.cell.row.updatedDate,"t");if(a.firstElementChild&&a.firstElementChild.hasAttribute("updated-date")){const l=e+" "+t;l!==a.firstElementChild.textContent&&(a.firstElementChild.textContent=l)}else a.innerHTML='<span updated-date class="align-left smart-truncate">'+i.cell.getFormattedValue(i.cell.row.updatedDate,"d")+" "+i.cell.getFormattedValue(i.cell.row.updatedDate,"t")+"</span>"}else a.innerHTML="";i.cell._setStyle(a),i.setAttribute("template",i.cell.template);break;case"progress":{const e=t?parseInt(100*t)+"%":"0%";if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")){if(e===a.firstElementChild.getAttribute("value"))return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}const l="white",r=["#D50000","#F4511E","#F6BF26","#33B679"];let n=r[0];n=t<.25?r[0]:t<.5?r[1]:t<.75?r[2]:r[3],a.innerHTML='<div value="'+e+'" style="padding-left: 5px; padding-right: 5px; display: grid; grid-template-columns: 1fr auto"><div style="height: 100%; display: flex; align-items: center; width: '+e+';"><div title="'+e+'" style="width: 100%; height: 4px; background: '+n+"; color: "+l+';" class="smart-truncate smart-token"></div></div><span>'+e+"</span></div>",i.setAttribute("template",i.cell.template);break}case"rating":{const e=i.cell.column.editor.max?i.cell.column.editor.max:5,l=t?parseInt(t):0;if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")){if(l===parseInt(a.firstElementChild.getAttribute("value")))return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template);a.firstElementChild.setAttribute("value",l);for(let t=0;t<e;t++){const e=a.firstElementChild.children[t];let i="";l>0&&l>t&&(i="value"),i?e.classList.add("value"):e.classList.remove("value")}return void i.setAttribute("template",i.cell.template)}const n=t=>{let l="";for(let a=0;a<e;a++){let e="";t>0&&t>a&&(e="value"),l+=`<div rating-value title="${a+1}" value="${a+1}" class="smart-grid-icon show smart-icon-star ${e}"></div>`}return l};a.innerHTML=`<div value="${l}" class="rating">${n(l)}</div>`;const s=e=>{if(!r._mobile&&e.hasAttribute("rating-value")){const t=e.getAttribute("value"),l=e.closest("smart-grid-cell"),a=e.closest("smart-grid-row");if(l&&a){const e=l.querySelector(".rating"),s=a.getAttribute("data-id"),o=l.getAttribute("data-field"),d=r.rowById[s],c=r.getCellValue(s,o),m=l.cell;let u=null;r.storeHistory&&(u=r._stringifyRow(d)),c===t?(a.row.data[o]=0,e.innerHTML=n(0),e.setAttribute("value",0)):(a.row.data[o]=parseInt(t),e.innerHTML=n(parseInt(t)),e.setAttribute("value",t));const p=a.row.data[o];r._setCellUndoRedo(m,c,p),r.onCellUpdate&&r.onCellUpdate([m],[c],[p],(function(e){r.onCellUpdated&&r.onCellUpdated([m.row.index],[m.row],[m.column],[m.row.data],[c],[p],i),r._onCellUpdated&&r._onCellUpdated(m.row.index,m.row,m.column,m.row.data,c,p)}),i);const g=e=>{if(e!==c&&(d.updatedDate=new Date,d.updatedBy=i.currentUser,r.storeHistory)){const t=r._stringifyRow(d);t[m.column.dataField]=e,r._updateRowHistory(d,u,t)}};if(r.onCellUpdate&&r.onRowHistory){const e=r.onRowHistory;r.onRowHistory=null,g(p),setTimeout((()=>{r.onRowHistory=e}),100)}else g(p);const h=l.querySelector(".rating"),f=parseInt(t)-1;h.children[f].classList.add("down"),setTimeout((()=>{h.children[f].classList.remove("down")}),1e3)}}},o=(e,t=!0)=>{if(e&&[...e.querySelectorAll(".smart-icon-star")].forEach((e=>{e.classList.remove("hover")})),e.hasAttribute("value")){const l=[...e.parentElement.children],a=l.indexOf(e);l.forEach(((e,l)=>{e.classList.remove("hover"),l<=a&&t&&e.classList.add("hover")}))}};r.handleRatingClick||(r._handleRatingMove=o,r._handleRatingClick=s),a.firstElementChild.onpointerdown=e=>{s(e.target)},a.firstElementChild.onpointermove=e=>{o(e.target)},a.firstElementChild.onpointerleave=e=>{o(e.target)},i.setAttribute("template",i.cell.template);break}case"duration":{const e=t;if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")){if(e===a.firstElementChild.getAttribute("value"))return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}if(t){const e=864e5;let l="MMM dd",n="MMM dd";if("string"==typeof t[0]&&(Array.isArray(t)?(t[0]=new Date(t[0]),t[1]=new Date(t[1])):((t=t.split(","))[0]=new Date(t[0]),t[1]=new Date(t[1]))),Array.isArray(t)){t[0]&&"string"==typeof t[0]&&(t[0]=new Date(t[0])),t[1]&&"string"==typeof t[1]&&(t[1]=new Date(t[1])),t[1]&&t[1].getMonth()===t[0].getMonth()&&(n="dd"),t[0]&&t[0].getFullYear()!==(new Date).getFullYear()&&(l+=", yyyy","dd"===n?(l="MMM dd",n+=", yyyy"):n=l);let s=!1;t[0]&&(0===t[0].getHours()&&0===t[0].getHours()||(l+=" hh:mm","dd"===n?n=l:n+=" hh:mm",s=!0));let o=null;o=Math.round(t[1].getTime()-t[0].getTime())/e;const d=o?parseInt(Math.abs(o).toFixed(0)):0;if(d>0){const e=i.cell.getFormattedValue(t[0],l)+" - "+i.cell.getFormattedValue(t[1],n);let s="";s=r.localize("days",{value:d}),a.innerHTML=`<div style="display: grid; grid-template-columns: 5px auto 25px"><span></span><span>${e}</span><span style="font-size: 11px;" class="smart-quiet">${s}</span></div>`}else{let e="";if(s){const r=t[1]-t[0],n=Math.floor(r%864e5/36e5);let s=Math.round(r%864e5%36e5/6e4);s<10&&(s+="0"+s),e=n+":"+s;const o=i.cell.getFormattedValue(t[0],l)+" - "+i.cell.getFormattedValue(t[1],"hh:mm");a.innerHTML=`<div style="display: grid; grid-template-columns: 5px auto 25px"><span></span><span>${o}</span><span style="font-size: 11px;" class="smart-quiet">${e}</span></div>`}else{const r=i.cell.getFormattedValue(t[0],l);a.innerHTML=`<div style="display: grid; grid-template-columns: 5px auto 25px"><span></span><span>${r}</span><span style="font-size: 11px;" class="smart-quiet">${e}</span></div>`}}}}else a.innerHTML="";i.setAttribute("template",i.cell.template),a.firstElementChild&&a.firstElementChild.setAttribute("value",e);break}case"startDate":{const e=t;if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")){if(e===a.firstElementChild.getAttribute("value"))return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}let l=t;if(n.cellsFormat?l=i.cell.getFormattedValue(t,n.cellsFormat):n.formatSettings&&n.formatSettings.Intl&&(l=i.cell.getFormattedValue(t,n.formatSettings.Intl)),t){const e=864e5,s="string"==typeof t?new Date(t):t;let o=r.columnByDataField.taskDueDate;n.editor.boundDateField&&(o=r.columnByDataField[n.editor.boundDateField]);const d=o?i.cell.row.data[o.dataField]:"";let c=null;d&&(c=Math.round(s.getTime()-d.getTime())/e);const m=c?parseInt(Math.abs(c).toFixed(0)):0;if(m>0){let e="";e=r.localize("days",{value:m}),a.innerHTML=`<div style="display: grid; grid-template-columns: 25px auto 25px"><span style="color: var(--smart-primary);" title="${e}" class="smart-icon-clock smart-grid-icon show"></span><span>${l}</span><span style="font-size: 11px;" class="smart-quiet">${e}</span></div>`}else a.innerHTML='<div style="padding-left: 6px;">'+l+"</div>"}else a.innerHTML="";i.setAttribute("template",i.cell.template),i.setAttribute("value",e);break}case"dueDate":{const e=t;if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")){if(e===a.firstElementChild.getAttribute("value"))return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}const l=["#D50000","#F4511E","#F6BF26","#33B679"],s=new Date;s.setHours(0,0,0);let o=t;n.cellsFormat?o=i.cell.getFormattedValue(t,n.cellsFormat):n.formatSettings&&n.formatSettings.Intl&&(o=i.cell.getFormattedValue(t,n.formatSettings.Intl));const d=(e,t)=>{const l=e<=8?e/8:1;return`<div title="${t}" class="smart-element smart-circular-progress-bar" style="background: inherit; padding-left:4px; position: relative; top: calc(50% - 12px); padding-top:4px; width: 20px; height: 20px;">\n <div class="smart-container">\n <svg style="background: var(--smart-background);"width="100%" height="100%" viewPort="0 0 100 100" viewBox="0 0 100 100" role="presentation" aria-hidden="true">\n <circle id="value" class="smart-value-path" r="50" cx="50" cy="50" transform="rotate(270 50 50)"></circle>\n <circle id="value" style="stroke-dashoffset: ${100*Math.PI-(1-l)*Math.PI*100}; stroke-width: 100%;" class="smart-value" r="50" cx="50" cy="50" transform="rotate(270 50 50)"></circle>\n </svg>\n </div>\n </div>\n `};if(t){const c=864e5,m="string"==typeof t?new Date(t):t,u=Math.round(m.getTime()-s.getTime())/c,p=parseInt(Math.abs(u).toFixed(0));let g=r.columnByDataField.taskStatus;n.editor.boundDataField&&(g=r.columnByDataField[n.editor.boundDataField]);const h=g?i.cell.row.data[g.dataField]:"";if("done"===h||"complete"===h||"completed"===h||"finished"===h){let e=r.localize("done");a.innerHTML=`<div style="display: grid; grid-template-columns: 25px auto"><div style="margin-left: 4px; align-self: center; border-radius: 50%; display: flex; align-content: center; background: ${l[3]}; width:16px; height: 16px;"><span title="${e}" style="align-content: center; font-size: 13px; color: white;" class="smart-grid-icon show smart-icon-check"></span></div>${o}</span></div>`}else{let t="";t=0===p?r.localize("today"):1===p?e<s?r.localize("yesterday"):r.localize("tomorrow"):e<s?r.localize("daysOverdue",{value:p}):r.localize("daysLeft",{value:p}),a.innerHTML=e>=s?`<div style="display: grid; grid-template-columns: 25px auto">${d(p,t)}<span>${o}</span></div>`:`<div style="display: grid; grid-template-columns: 25px auto"><span title="${t}" style="font-size: 16px; color: ${l[0]}" class="smart-grid-icon show smart-icon-attention-circled"></span>${o}</span></div>`}}else a.innerHTML="";i.setAttribute("template",i.cell.template),i.setAttribute("value",e);break}case"attachments":{if(""===t||"[]"===t){const e=`<div class="file-container"><div class="attachments"><div title="${r.localize("addFiles")}" class="smart-grid-icon show smart-icon-plus"></div></div></div>`;return a.innerHTML!==e&&(a.innerHTML=e,a.onpointerdown=e=>{if(e.target.classList.contains("smart-icon-plus")){if(r._mobile)return;if(r.editing.enabled){const t=e.target.closest("smart-grid-cell"),l=t.getAttribute("data-field"),a=t.closest("smart-grid-row").getAttribute("data-id");r.beginEdit(a,l),t.querySelector(".smart-icon-plus").onpointerdown()}e.stopPropagation(),e.preventDefault()}}),i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")){const e=a.firstElementChild.getAttribute("value");if(t&&t.indexOf(e)>=0)return i.cell._setStyle(a),i.setAttribute("template",i.cell.template),void(a.firstElementChild.evaluateScroll&&a.firstElementChild.evaluateScroll());if(e&&t&&Array.isArray(t)&&t[0]&&t[0].value&&e.length===t[0].value.length)return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}const e=document.createElement("div"),l=document.createElement("div");e.classList.add("file-container"),l.classList.add("attachments");let n=t;if(r._findIsFile(n)){let e="";if(n)try{e=JSON.parse(n)}catch(e){console.log(e)}n=e}if("string"==typeof n&&(n.indexOf("[{")>=0||n.indexOf("}]")>=0)){let e="";if(n)try{e=JSON.parse(n)}catch(e){console.log(e)}n=e}Array.isArray(n)&&n.forEach((t=>{const l=document.createElement("div");l.title=t.label,l.classList.add("item"),l.innerHTML="<div></div>",l.firstElementChild.classList.add("smart-grid-icon","show","attachment"),t.label.indexOf("png")>=0||t.label.indexOf("jpg")>=0||t.label.indexOf("jpeg")>=0||t.label.indexOf("gif")>=0?l.firstElementChild.classList.add("smart-icon-image"):t.label.indexOf(".pdf")>=0?l.firstElementChild.classList.add("smart-icon-pdf"):t.label.indexOf(".tsv")>=0||t.label.indexOf(".txt")>=0||t.label.indexOf(".csv")>=0?l.firstElementChild.classList.add("smart-icon-text"):t.label.indexOf(".xls")>=0||t.label.indexOf(".xlsx")>=0?l.firstElementChild.classList.add("smart-icon-excel"):t.label.indexOf(".ppt")>=0?l.firstElementChild.classList.add("smart-icon-powerpoint"):t.label.indexOf(".zip")>=0||t.label.indexOf(".rar")>=0||t.label.indexOf(".7z")>=0?l.firstElementChild.classList.add("smart-icon-archive"):t.label.indexOf(".doc")>=0||t.label.indexOf(".docx")>=0?l.firstElementChild.classList.add("smart-icon-word"):l.firstElementChild.classList.add("smart-icon-file"),e.appendChild(l)}));const o=document.createElement("div");o.classList.add("smart-arrow-left","arrowbtn","smart-hidden");const d=document.createElement("div");d.classList.add("smart-arrow-right","arrowbtn");const c=document.createElement("div");if(c.classList.add("smart-icon-plus","smart-grid-icon","show"),c.title=r.localize("addFiles"),"card"!==r.view&&l.appendChild(c),l.onpointerdown=t=>{if(t.target.classList.contains("attachment")){const e=JSON.parse(i.cell.value),a=[...l.children[1].children].indexOf(t.target.parentNode);if(e[a]){const t=document.createElement("a");if(e[a].value.indexOf(window.location.host)>=0)fetch(e[a].value).then((e=>e.blob())).then((l=>{const i=URL.createObjectURL(l);t.download=e[a].label,t.href=i,t.click()}));else{if(e[a].value.indexOf("base64")>=0){const l=r._getFileFromBase64(e[a].value);t.href=URL.createObjectURL(l)}else t.href=e[a].value;t.target="_blank",t.click()}}t.stopPropagation(),t.preventDefault()}else if("DIV"===t.target.nodeName&&t.target.classList.contains("arrowbtn")){let l=parseInt(e.style.marginLeft);isNaN(l)&&(l=0);const a=o===t.target,r=e.scrollWidth-i.offsetWidth+30;e.style.marginLeft=a?Math.min(0,l+25)+"px":Math.max(-r,l-25)+"px",l=parseInt(e.style.marginLeft),0===l?o.classList.add("smart-hidden"):o.classList.remove("smart-hidden"),t.stopPropagation(),t.preventDefault()}else if(t.target.classList.contains("smart-icon-plus")){if(r._mobile)return;if(r.editing.enabled){const e=t.target.closest("smart-grid-cell"),l=e.getAttribute("data-field"),a=e.closest("smart-grid-row").getAttribute("data-id");r.beginEdit(a,l),e.querySelector(".smart-icon-plus").onpointerdown()}t.stopPropagation(),t.preventDefault()}},e.children.length){if(l.appendChild(e),"card"!==r.view){const t=25*n.length;t-i.offsetWidth+30>30&&(l.appendChild(o),l.appendChild(d)),l.evaluateScroll=()=>{const a=t-i.offsetWidth+30;e.style.marginLeft="0px",o.classList.add("smart-hidden"),a<0?d.classList.add("smart-hidden"):d.classList.remove("smart-hidden"),a>30&&(l.appendChild(o),l.appendChild(d))}}s=l}else s=document.createElement("div");i.setAttribute("template",i.cell.template),t&&t[0]&&t[0].value?s.setAttribute("value",t[0].value):n&&n[0]&&n[0].label?s.setAttribute("value",n[0].label):s.setAttribute("value",t);break}case"images":{if(""===t||"[]"===t){const e=`<div class="file-container"><div class="images"><div title="${r.localize("addImages")}" class="smart-grid-icon show smart-icon-plus"></div></div></div>`;return e!==a.innerHTML&&(a.innerHTML=e,a.onpointerdown=e=>{if(e.target.classList.contains("smart-icon-plus")){if(r._mobile)return;if(r.editing.enabled){const t=e.target.closest("smart-grid-cell"),l=t.getAttribute("data-field"),a=t.closest("smart-grid-row").getAttribute("data-id");r.beginEdit(a,l),t.querySelector(".smart-icon-plus").onpointerdown()}e.stopPropagation(),e.preventDefault()}}),i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}if(!r._recycleFiles&&a.firstElementChild&&a.firstElementChild.hasAttribute("value")){const e=a.firstElementChild.getAttribute("value");if(t&&t.indexOf(e)>=0)return i.cell._setStyle(a),i.setAttribute("template",i.cell.template),void(a.firstElementChild.evaluateScroll&&a.firstElementChild.evaluateScroll());if(e&&t&&Array.isArray(t)&&t[0]&&t[0].value&&e.length===t[0].value.length)return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}const e=document.createElement("div"),l=document.createElement("div");e.classList.add("file-container"),l.classList.add("images");let o=t;if(r._findIsFile(o)){let e="";if(o&&o.indexOf("{")>=0)try{e=JSON.parse(o)}catch(e){console.log(e)}else e=o.split(","),e=e.map((e=>({label:e,value:e})));o=e}if("string"==typeof o&&(o.indexOf("[{")>=0||o.indexOf("}]")>=0)){let e="";if(o)try{e=JSON.parse(o)}catch(e){console.log(e)}o=e}else"string"==typeof o&&o.indexOf("./")>=0&&(o=o.split(","),o=o.map((e=>({label:e,value:e}))));Array.isArray(o)&&o.forEach((t=>{const l=document.createElement("img");l.style.display="none";let a="";a=t.small?t.small:t.medium?t.medium:t.large?t.large:t.value,l.onload=()=>{l.style.display=""},a.indexOf("base64")>=0?l.src=a:(r._imagesCache||(r._imagesCache=[]),r.uploadSettings.url?r._imagesCache[a]?r._findUserFile(t)&&(l.src=a):(r._imagesCache[a]=!0,l.style.display="none",r._findUserFile(t)?(l.src=a,l.style.display=""):a&&a.startsWith("https://")&&(l.src=a)):l.src=a,l.onerror=()=>{l.style.display="none"}),l.title=t.label,l.setAttribute("data-url",t.large||t.value),e.appendChild(l)}));const d=document.createElement("div");d.classList.add("smart-arrow-left","arrowbtn","smart-hidden");const c=document.createElement("div");c.classList.add("smart-arrow-right","arrowbtn");const m=document.createElement("div");m.classList.add("smart-icon-plus","smart-grid-icon","show"),m.title=r.localize("addImages");const u=document.createElement("div");if(u.classList.add("smart-navigation"),"card"!==r.view&&r.editing.enabled&&n.allowEdit&&l.appendChild(m),l.onpointerdown=t=>{if("IMG"===t.target.nodeName)"card"!==r.view&&[...e.children].forEach((e=>e.classList.remove("smart-hidden"))),r._openImagePreviewDialog(t.target),t.stopPropagation(),t.preventDefault();else if("DIV"===t.target.nodeName&&t.target.classList.contains("smart-navigation-item")){[...u.children].forEach((e=>e.classList.remove("active"))),t.target.classList.add("active"),[...e.children].forEach((e=>e.classList.add("smart-hidden")));const l=[...u.children].indexOf(t.target);e.children[l].classList.remove("smart-hidden"),t.stopPropagation(),t.preventDefault()}else if("DIV"===t.target.nodeName&&t.target.classList.contains("arrowbtn")){let l=parseInt(e.style.marginLeft);isNaN(l)&&(l=0);const a=d===t.target,r=e.scrollWidth-i.offsetWidth+30;e.style.marginLeft=a?Math.min(0,l+25)+"px":Math.max(-r,l-25)+"px",l=parseInt(e.style.marginLeft),0===l?d.classList.add("smart-hidden"):d.classList.remove("smart-hidden"),t.stopPropagation(),t.preventDefault()}else if(t.target.classList.contains("smart-icon-plus")){if(r._mobile)return;if(r.editing.enabled){const e=t.target.closest("smart-grid-cell"),l=e.getAttribute("data-field"),a=e.closest("smart-grid-row").getAttribute("data-id");r.beginEdit(a,l),e.querySelector(".smart-icon-plus").onpointerdown()}t.stopPropagation(),t.preventDefault()}},e.children.length){if(l.appendChild(e),"card"===r.view&&l.appendChild(u),"card"!==r.view){const t=25*o.length;t-i.offsetWidth+30>30&&(l.appendChild(d),l.appendChild(c)),l.evaluateScroll=()=>{const a=t-i.offsetWidth+30;e.style.marginLeft="0px",d.classList.add("smart-hidden"),a<0?c.classList.add("smart-hidden"):c.classList.remove("smart-hidden"),a>30&&(l.appendChild(d),l.appendChild(c))}}else{for(let t=0;t<e.children.length;t++){const l=document.createElement("div");l.classList.add("smart-navigation-item"),0===t?l.classList.add("active"):e.children[t].classList.add("smart-hidden"),u.appendChild(l)}1===e.children.length&&u.classList.add("smart-visibility-hidden")}s=l}else s=document.createElement("div");i.setAttribute("template",i.cell.template),t&&t[0]&&t[0].value?s.setAttribute("value",t[0].value):o&&o[0]&&o[0].label?s.setAttribute("value",o[0].label):s.setAttribute("value",t);break}case"email":if(Smart.Validator){const e=a.firstElementChild?a.firstElementChild.getAttribute("value"):null;if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")&&e===t)return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template);s=document.createElement("span"),null===t||""===t?s.innerHTML="":Smart.Validator.email(t)?s.innerHTML=t:(s.className="url",s.innerHTML='<a href="mailto:'+t+'" target="_blank" contenteditable="false" rel="noreferrer noopener">'+t+"</a>",s.firstElementChild&&(s.firstElementChild.onpointerdown=e=>{e.stopPropagation(),e.preventDefault(),s.firstElementChild.click()}))}i.setAttribute("template",i.cell.template),s.setAttribute("value",t);break;case"url":if(Smart.Validator){const e=a.firstElementChild?a.firstElementChild.getAttribute("value"):null;if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")&&e===t)return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template);const l=e=>{null===t||""===t?e.classList.add("smart-hidden"):Smart.Validator.url(t)?(e.firstElementChild&&"A"===e.firstElementChild.nodeName?(e.firstElementChild.setAttribute("href",t),e.firstElementChild.textContent=t):e.innerHTML='<a href="https://'+t+'" target="_blank" contenteditable="false" rel="noreferrer noopener">'+t+"</a>",e.classList.remove("smart-hidden")):(e.firstElementChild&&"A"===e.firstElementChild.nodeName?(e.firstElementChild.setAttribute("href",t),e.firstElementChild.textContent=t):e.innerHTML='<a href="'+t+'" target="_blank" contenteditable="false" rel="noreferrer noopener">'+t+"</a>",e.classList.remove("smart-hidden"))};a.firstElementChild&&a.firstElementChild.classList.contains("url")?(s=a.firstElementChild,l(s)):(s=document.createElement("span"),s.className="url",l(s)),s.firstElementChild&&(s.firstElementChild.onpointerdown=e=>{e.stopPropagation(),e.preventDefault(),s.firstElementChild.click()})}i.setAttribute("template",i.cell.template),s.setAttribute("value",t);break;case"sparklines":{const l=t,s=""+n.computedWidth;if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")){const e=a.firstElementChild.getAttribute("value"),t=a.firstElementChild.getAttribute("width"),n=a.firstElementChild.getAttribute("height"),o=i.cell.row.cellHeight||r.layout.rowMinHeight;if(l===e&&t===s&&o===n)return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}const o=new e,d=i.cell.row.cellHeight||r.layout.rowMinHeight,c=n.templateSettings;if(d>=7)if(i._sparklinesRender&&cancelAnimationFrame(i._sparklinesRender),t){const e=o.render({width:s-10,height:Math.max(0,d-7),points:t,colors:c.colors,type:c.type,gap:c.gap,max:c.max,min:c.min,strokeWidth:c.strokeWidth,colorFunction:c.colorFunction,tooltipFormatFunction:c.tooltipFormatFunction});a.innerHTML=`<div height="${d}" width="${s}" value="${l}" style="padding-top: 5px; padding-left: 5px; padding-right: 5px;">${e}</div>`;const i=(e,t,l)=>{if(!1===c.tooltip)return;const a=e.pageX,i=e.pageY-10;if(!r._sparklineTooltip){const e=document.createElement("smart-button");e.classList.add("secondary"),e.style.boxShadow="var(--smart-elevation-4)",e.style.opacity=.9,e.style.transition="all cubic-bezier(0.6, 0.2, 0, 0.8) 0.2s",document.body.appendChild(e),e.style.position="absolute",e.style.zIndex=999,r._sparklineTooltip=e}const n=r._sparklineTooltip;n.innerHTML===t&&n.element===l||(n.style.top=i+25+"px",n.style.left=a-15+"px"),n.innerHTML=t,n.style.display=""};a.onmousemove=e=>{if("column"!==c.type&&"bar"!==c.type||a.querySelectorAll("rect").forEach((t=>{var l=t.getBoundingClientRect();t.removeAttribute("highlight"),l.left<=e.clientX&&e.clientX<=l.right&&l.top<=e.clientY&&e.clientY<=l.bottom&&(t.setAttribute("highlight",""),i(e,t.getAttribute("data-title"),t))})),"pie"===c.type){let t=!1;a.querySelectorAll("path").forEach((l=>{var a=l.getBoundingClientRect();l.removeAttribute("highlight"),t||a.left<=e.clientX&&e.clientX<=a.right&&a.top<=e.clientY&&e.clientY<=a.bottom&&(l.setAttribute("highlight",""),t=!0,i(e,l.getAttribute("data-title"),l))}))}"line"===c.type&&a.querySelectorAll("line").forEach((t=>{var l=t.getBoundingClientRect();t.removeAttribute("highlight"),l.left<=e.clientX&&e.clientX<=l.right&&(t.previousElementSibling&&(t.previousElementSibling.style.display="none"),t.nextElementSibling&&(t.nextElementSibling.style.display="none"),t.setAttribute("highlight",""),l.left+l.width/2>=e.clientX?t.previousElementSibling&&(t.previousElementSibling.style.display="",i(e,t.previousElementSibling.getAttribute("data-title"),t.previousElementSibling)):t.nextElementSibling&&(t.nextElementSibling.style.display="",i(e,t.nextElementSibling.getAttribute("data-title"),t.nextElementSibling)))}))},a.onmouseleave=()=>{r._sparklineTooltip&&(r._sparklineTooltip.style.display="none"),a.querySelectorAll("rect").forEach((e=>{e.removeAttribute("highlight")})),a.querySelectorAll("path").forEach((e=>{e.removeAttribute("highlight")})),a.querySelectorAll("line").forEach((e=>{e.removeAttribute("highlight")})),a.querySelectorAll("circle").forEach((e=>{e.style.display="none"}))}}else a.innerHTML="",a.onmousemove=a.onmouseleave=null;i.setAttribute("template",i.cell.template);break}default:{let e=null;i.setAttribute("template","");const l=i.cell.row,s=a;let o=i.cell.getFormattedValue(t,n.cellsFormat);if(s.style.lineHeight="","function"==typeof i.cell.template){const e={row:l,column:n,cell:i.cell,oldValue:i.cell.oldValue,value:t,template:null};let a=s.querySelector(".smart-grid-cell-template");const d=l.id;r.isHScrolling&&(r._cachedTemplates||(r._cachedTemplates=[]),a&&0===a.innerHTML.length&&(a=null),!a&&r._cachedTemplates&&r._cachedTemplates[n.dataField+"_"+d]&&(0===r._cachedTemplates[n.dataField+"_"+d].innerHTML.length?delete r._cachedTemplates[n.dataField+"_"+d]:e.template=r._cachedTemplates[n.dataField+"_"+d])),a&&a.getAttribute("column")===n.dataField?e.template=a.firstElementChild:a=null,i.formattedValue!==o&&(a=null),i.cell.canNotify=!1,l.canNotify=!1;const c=Object.assign({},{background:i.cell.background,color:i.cell.color,fontSize:i.cell.fontSize,fontFamily:i.cell.fontFamily,fontWeight:i.cell.fontWeight,textDecoration:i.cell.textDecoration,fontStyle:i.cell.fontStyle});if(i.cell.template(e),!a&&e.template)if(e.template instanceof HTMLElement){const t=document.createElement("div");t.classList.add("smart-grid-cell-template"),t.setAttribute("column",n.dataField),s.innerHTML="",s.appendChild(t),t.appendChild(e.template)}else s.innerHTML='<div column="'+n.dataField+'" class="smart-grid-cell-template">'+e.template+"</div>";else a||null!==e.template||(s.innerHTML=t);if(r.isHScrolling&&!r._cachedTemplates[n.dataField+"_"+d]&&s.firstElementChild.firstElementChild){const e=s.firstElementChild.firstElementChild;e&&(r._cachedTemplates[n.dataField+"_"+d]=e)}s.style.background===c.background&&s.style.color===c.color&&s.style.fontSize===c.fontSize&&s.style.fontWeight===c.fontWeight&&s.style.fontStyle===c.fontStyle||(i.cell._styleChanged=!0,i.cell._setStyle(s)),i.cell.background!==c.background||i.cell.color!==c.color||i.cell.fontSize!==c.fontSize||i.cell.fontWeight!==c.fontWeight||i.cell.fontStyle!==c.fontStyle?(i.cell._styleChanged=!0,i.cell._setStyle(s)):i.cell._styleChanged&&i.cell._setStyle(s),void 0===i.cell.oldValue&&(i.cell.oldValue=t),i.formattedValue=o,i.cell.canNotify=!0,l.canNotify=!0}else if(Array.isArray(i.cell.template)){const e=document.createElement("div");if(s.firstElementChild&&s.firstElementChild.classList.contains("smart-grid-cell-template"))for(let e=0;e<i.cell.template.length;e++){const t=s.firstElementChild.children[e].firstElementChild,a=i.cell.template[e];if(a.length>1&&t){let e=l.data[a[1]];a[2]&&(e=a[2].length>2?a[2].replaceAll("{{value}}",e):i.cell.getFormattedValue(e,a[2])),t.src&&t.src!==e?(i._imageUpdateTimer&&clearTimeout(i._imageUpdateTimer),i._imageUpdateTimer=setTimeout((()=>{t.src=e}),50)):t.textContent!==e&&(t.textContent=e)}}else{e.classList.add("smart-grid-cell-template"),e.setAttribute("column",n.dataField),s.innerHTML="",s.appendChild(e);let t="";for(let e=0;e<i.cell.template.length;e++){const a=i.cell.template[e];if(a.length>1){let e=l.data[a[1]];a[2]&&(e=a[2].length>2?a[2].replaceAll("{{value}}",e):i.cell.getFormattedValue(e,a[2])),t+='<span class="smart-template-part">'+a[0].replaceAll("{{value}}",e)+"</span>"}}e.innerHTML=t}}else{if(""!==s.textContent&&(s.textContent=""),i.cell.template instanceof HTMLTemplateElement)e=i.cell.template;else if(i.cell.template instanceof HTMLElement){const e=i.cell.template.innerHTML.replace(/{{value}}/gi,t).replace(/{{id}}/gi,l.id);s.innerHTML!==e&&(s.innerHTML=e)}if(i.cell.template.startsWith&&i.cell.template.startsWith("#")&&(e=document.querySelector(i.cell.template)),e){let a=e.content.cloneNode(!0).firstElementChild;const d=t;if(t=(t=(t=t.toString()).replace(/'/gi,"\\'")).replace(/"/gi,'\\"'),a.querySelector("[smart-if]")){const e=a.querySelector("[smart-else]"),l=a.querySelectorAll("[smart-if]");let i=!1;for(let e=0;e<l.length;e++){const r=l[e],s=r.getAttribute("smart-if"),o=s.split(" "),c=o[1].trim();let m=o[2].trim();s.indexOf("'")>=0&&(m=s.substring(s.indexOf("'")+1),m=m.replaceAll("'",""));let u=t;switch("Today"===m&&(m=new Date),"date"===n.dataType&&(t=new Date(d).getTime(),m=new Date(m).getTime()),c){case">":t>parseFloat(m)&&(a=r,i=!0);break;case">=":t>=parseFloat(m)&&(a=r,i=!0);break;case"=":case"==":case"===":t===m&&(a=r,i=!0);break;case"<":t<parseFloat(m)&&(a=r,i=!0);break;case"<=":t<=parseFloat(m)&&(a=r,i=!0)}if(t=u,i)break}!i&&e&&(a=e)}let c=a.outerHTML.replace(/{{value}}/gi,t).replace(/{{id}}/gi,l.id);for(c.indexOf("{{value=")>=0&&(t?(c=c.substring(0,c.indexOf("{{value="))+t+c.substring(c.indexOf("}")),c=c.replace(/}/gi,""),c=c.replace(/{/gi,"")):(c=c.replace(/{{value=/gi,""),c=c.replace(/}}/gi,"")));c.indexOf("{{value::")>=0;){const e=c.indexOf("{{value::"),l=c.substring(e+9,c.indexOf("}}")),a=i.cell.getFormattedValue(t,l);c=c.replace(`{{value::${l}}}`,a)}if(n._treeColumn){const e=s.firstChild;if(e&&e.classList&&i.toggleButton&&n._treeColumn&&s.children[1]){const e=s.children[0],t=s.children[1].children[0],a=s.children[1].children[1].firstChild,i=s.children[1].children[2];let n="";if(r.grouping.enabled){let e=l.level-1;"multipleColumns"!==r.grouping.renderMode&&(n+='<div style="width: '+(1+e)*r.grouping.groupIndent+'px;"></div>')}else for(let e=0;e<l.level;e++)n+="<div class='smart-indent'></div>";l.checked?a.setAttribute("checked",""):!1===l.checked?a.removeAttribute("checked"):null===l.checked&&a.setAttribute("checked","indeterminate"),l.leaf?l.allowCheck?a.classList.remove("smart-visibility-hidden"):a.classList.add("smart-visibility-hidden"):l.allowCheck?a.classList.remove("smart-hidden"):a.classList.add("smart-hidden"),l.allowCheck?r.checkBoxes.visible?a.classList.remove("smart-hidden"):a.classList.add("smart-hidden"):r.checkBoxes.visible||a.classList.add("smart-hidden"),e.innerHTML=n,t.classList.add("smart-visibility-hidden"),l.leaf?t.classList.add("smart-visibility-hidden"):(t.classList.remove("smart-visibility-hidden"),l.expanded?t.setAttribute("toggled",""):t.removeAttribute("toggled","")),l.data.isEmpty&&t.classList.add("smart-visibility-hidden"),i.innerHTML=c,r.appearance.showTooltips?i.setAttribute("title",r._unescapeString(o)):i.hasAttribute("title")&&i.removeAttribute("title")}}else s.innerHTML!==c&&(s.innerHTML=c)}else if("string"==typeof i.cell.template){""===t&&(t="&nbsp;");let e=i.cell.template.replace(/{{value}}/gi,t).replace(/{{id}}/gi,l.id);if(e.indexOf("{{"))for(let t=0;t<r.dataSource.dataFields.length;t++){const a=r.dataSource.dataFields[t].name;if(e.indexOf("{{"+a+"}}")>=0&&(e=e.replace("{{"+a+"}}",l.data[a]),-1===e.indexOf("{{")))break}s.innerHTML!==e&&(s.innerHTML=e)}}if("auto"===i.cell.row.height||r.layout.allowCellsWrap||"auto"===r.layout.rowHeight){const e=s.querySelector(".smart-grid-cell-template");if(e){l._templatesHeight||(l._templatesHeight=[]);const t=(e,t)=>{if(e){const l=r.rowById[e.getAttribute("data-id")];l._templatesHeight[n.dataField]=t,l._isDirty=!0;const a=l.canNotify;l.canNotify=!1,l.autoSize(),l.canNotify=a,delete l._isDirty}};if(e.firstElementChild){if(!e.firstElementChild.resizeObserver){const l=new ResizeObserver((function(){const e=this.target.closest("smart-grid-row");this.target.offsetHeight&&(t(e,this.target.offsetHeight),r.$.scrollView.scrollTop=0)}));e.firstElementChild.resizeObserver=l,l.target=e.firstElementChild,l.observe(e.firstElementChild)}e.firstElementChild.onblur=e.firstElementChild.onchange=function(){const e=this.closest("smart-grid-row");t(e,this.offsetHeight)}}else{const l=this.closest("smart-grid-row");t(l,e.offsetHeight)}}}}}if(s)return a.innerHTML="",a.appendChild(s),i.cell._setStyle(a),s}async _render(){const e=this,t=e.cell.grid,l=e.cell.column,a=e.cell.row,i=a.data,r=a._isMeasureRow?null:e.cell.format||l.cellsFormat,n=t.grouping.enabled&&t.dataSource.groupBy.length>0;if(!(!1!==t._recycleValues||n||l.formatFunction||l._treeColumn||a.summaryRow||"grid"!==t.view)){if(e.cell.selected?(e.setAttribute("selected",""),e.setAttribute("aria-selected",!0)):(e.removeAttribute("selected"),e.removeAttribute("aria-selected")),e.classList.contains("smart-hidden")&&e.classList.remove("smart-hidden"),e.cell.focused?(t.selection.allowCellSelection&&e.setAttribute("focus",""),a.element.setAttribute("focus",""),a.element.toggleDetailButton&&(a.element.toggleDetailButton.classList.remove("smart-visibility-hidden"),a.element.star&&a.element.star.classList.add("smart-hidden")),e.cell.id||(e.id="gridcell_"+Math.floor(65536*(1+Math.random())).toString(16).substring(1)),t.setAttribute("aria-activedescendant",e.id)):(e.removeAttribute("focus"),a.element&&a.element.star&&t._selection.focusedCell&&t._selection.focusedCell.id!==a.id?a.element.star.classList.remove("smart-hidden"):t.appearance.showRowComments&&!a.element.hasAttribute("focus")&&a.element.toggleDetailButton&&a.element.toggleDetailButton.classList.add("smart-visibility-hidden")),e.cell.background||e.cell.color){e.cell._styleChanged=!0;const t=e.firstChild;e.cell._setStyle(t)}return}if(t.grouping.enabled&&t.dataSource.groupBy.length>0&&"card"!==t.view){if(void 0!==a.label){let t=l.displayField?i[l.displayField]:i[l.dataField];return void 0===t&&i.data&&(t=l.displayField?i.data[l.displayField]:i.data[l.dataField]),e._renderGroupCell(t),void(a.summaryRow&&(e.cell.canNotify=!1,a.canNotify=!1,e.cell._styleChanged=!0,e.cell.background=null,e.cell.color=null,e.cell.fontFamily=null,e.cell.fontSize=null,e.cell.element&&e.cell.element.firstElementChild&&e.cell._setStyle(e.cell.element.firstElementChild),e.cell.canNotify=!0,a.canNotify=!0))}e.style.zIndex=""}else if(t.appearance.showTreeRowHeader&&t.rowHierarchy&&!1===a.leaf&&!l.autoGenerated){let t=i[a.groupDataField];return a.label=t,void e._renderGroupCell(t)}if(t.appearance.showTreeRowHeader&&e.removeAttribute("header"),t.grouping.enabled&&t.dataSource.groupBy.length>0&&e.toggleButton&&(e.toggleButton.classList.remove("smart-hidden"),e.toggleButton.classList.remove("smart-visibility-hidden"),e.toggleButton.style.marginLeft="",l._treeColumn&&t.grouping.enabled&&t.grouping.toggleButtonIndent>0&&(e.toggleButton.style.marginLeft=a.level*(t.grouping.toggleButtonIndent-t.grouping.groupIndent)+"px")),t.grouping.enabled&&t.dataSource.groupBy.length>0&&(e.removeAttribute("header"),e.removeAttribute("group")),!l.visible)return void(e.style.width="0px");t.appearance.showSortColumnBackground&&t.sorting.maintainSort&&!a.summaryRow?l.sorted?e.setAttribute("sort",""):e.removeAttribute("sort"):l.sorted&&e.hasAttribute("sort")&&e.removeAttribute("sort"),t.appearance.showFilterColumnBackground?l.filtered?e.setAttribute("filter",""):e.removeAttribute("filter"):l.filtered&&e.hasAttribute("filter")&&e.removeAttribute("filter"),t.dataSource.boundHierarchy&&e.hasAttribute("has-toggle-button")&&!l._treeColumn&&e.removeAttribute("has-toggle-button");let s=l.displayField?i[l.displayField]:i[l.dataField];if(null!==s||l.allowNull||("int"!==l.dataType&&"number"!==l.dataType||(s=0),"string"===l.dataType&&(s=""),"boolean"!==l.dataType&&"bool"!==l.dataType||(s=!1),"date"===l.dataType&&(s=new Date)),t.formulas&&e.cell.formula&&"string"==typeof e.cell.formula&&/=.+/.test(e.cell.formula)){const l=t._formulaParser;if(l){const t=l.parse(e.cell.formula.slice(1));s=isNaN(t)?"#VALUE!"===t?"":"#ERROR!"===t?"#ERROR!":t:t}}t.grouping.enabled&&"multipleColumns"===t.grouping.renderMode&&t.dataSource&&t.dataSource.groupBy.length>0&&t.dataSource.groupBy.indexOf(l.dataField)>=0&&(s="",e.setAttribute("header","")),e.removeAttribute("highlight"),t.highlighted!==a.id||l.autoGenerated||e.setAttribute("highlight",""),t.editing.addNewRow.visible&&e.classList.remove("smart-add-new-row"),t.editing.enabled&&(e.cell.readonly||!l.allowEdit?e.classList.add("smart-readonly"):e.classList.remove("smart-readonly"));const o=t=>{if(t){if(t.startsWith("off_"))return e.classList.remove(t.substring(4)),!1;if(e.classList.add(t),e.hasAttribute("customCSS")){t=t+" "+e.getAttribute("customCSS")}return e.setAttribute("customCSS",t),!0}return e.setAttribute("highlight",""),!0};if((t.highlightedRows||t.highlightedCells)&&e.hasAttribute("customCSS")){const t=e.getAttribute("customCSS");e.removeAttribute("customCSS");const l=t.split(" ");for(let t=0;t<l.length;t++)e.classList.remove(l[t])}if(l.highlight&&!a.summaryRow&&(o(l._highlightCSS||""),e.setAttribute("highlight-data-field",l.dataField)),t.highlightedCells&&t.highlightedCells[a.id]&&!a.summaryRow&&void 0!==t.highlightedCells[a.id][l.dataField]){o(t.highlightedCells[a.id][l.dataField])}if(t.highlightedRows&&!a.summaryRow&&void 0!==t.highlightedRows[a.id]){o(t.highlightedRows[a.id])}if(t.editing.batch){if(t._cellsUpdatedValues){e.removeAttribute("update");const i=t._cellsUpdatedValues[a.id+"_"+l.dataField];void 0!==i&&(e.setAttribute("update",""),s=i)}t._rowsDeleted&&(t._rowsDeleted.indexOf(a.id)>=0?e.setAttribute("delete",""):e.removeAttribute("delete")),t._rowsAdded&&(t._rowsAdded.indexOf(a.id)>=0?e.setAttribute("add",""):e.removeAttribute("add"))}!t.onCellValue||l.rowHeaderColumn||l.selectionColumn||(e.cell._updating=!0,t.onCellValue(e.cell,t),e.cell._updating=!1,s=e.cell.value),void 0===s&&(s="");let d=s;r?d=e.cell.getFormattedValue(s,r):l.formatSettings&&l.formatSettings.Intl?d=e.cell.getFormattedValue(s,l.formatSettings.Intl):l.formatSettings&&l.formatSettings.formatString&&(d=e.cell.getFormattedValue(s,l.formatSettings.formatString));const c=e.firstChild;if(e.content=c,l._isDirty&&(c.innerHTML=""),c.hasAttribute("data-field")&&c.getAttribute("data-field")!==l.dataField&&(c.innerHTML="",a.filterRow&&(l._filterEditorInitialized=!1)),c.setAttribute("data-field",l.dataField),t.onCellRender||l.onCellRender)if(l._cellsCachedValues||(l._cellsCachedValues=[]),l._cellsCachedValues[a.index]){const t=l._cellsCachedValues[a.index];c.firstChild&&c.removeChild(c.firstChild),e.cell.template instanceof HTMLTemplateElement||"string"==typeof e.cell.template?c.appendChild(t):c.innerHTML=t.innerHTML}else{if(e.cell._updating=!0,t.onCellRender?t.onCellRender(e.cell,a.visibleIndex,l.dataField,a.data,e):l.onCellRender(e.cell,a.visibleIndex,l.dataField,a.data,e),e.cell._updating=!1,e.cell.template!==l.template){const t=document.createElement("div");return c.firstChild&&c.removeChild(c.firstChild),e.cell.template instanceof HTMLTemplateElement?(t.appendChild(e.cell.template.content.cloneNode(!0)),l._cellsCachedValues[a.index]=t):t.appendChild(e.cell.template),void c.appendChild(t)}e.cell.value!==s&&(d=e.cell.value)}if(l.autoGenerated||e.setAttribute("data-field",l.dataField),e.cell.focused?(t.selection.allowCellSelection&&e.setAttribute("focus",""),a.element.setAttribute("focus",""),a.element.toggleDetailButton&&(a.element.toggleDetailButton.classList.remove("smart-visibility-hidden"),a.element.star&&a.element.star.classList.add("smart-hidden")),e.cell.id||(e.id="gridcell_"+Math.floor(65536*(1+Math.random())).toString(16).substring(1)),t.setAttribute("aria-activedescendant",e.id)):e.removeAttribute("focus"),e.cell.selected?(e.setAttribute("selected",""),e.setAttribute("aria-selected",!0)):(e.removeAttribute("selected"),e.removeAttribute("aria-selected")),t.dragDrop&&t.dragDrop.row===a?e.classList.add("dragged"):e.classList.remove("dragged"),e._classNames)for(let t=0;t<e._classNames.length;t++)e.classList.remove(e._classNames[t]);if(a._classNames||e._rowClassNames){if(e._rowClassNames)for(let t=0;t<e._rowClassNames.length;t++)e.classList.remove(e._rowClassNames[t]);for(let t=0;t<a._classNames.length;t++)e.classList.add(a._classNames[t]);e._rowClassNames=a._classNames}if(t.onCellClass){const i=t.onCellClass(a.visibleIndex,l.dataField,s,a.data,a,t);if(e.___classNames)for(let t=0;t<e.___classNames.length;t++)e.classList.remove(e.___classNames[t]);if(i){const t=i.trim().split(" ");for(let l=0;l<t.length;l++)e.classList.add(t[l]);e.___classNames=t}}if(l.cellsClassName)if("string"==typeof l.cellsClassName){const t=l.cellsClassName.trim().split(" ");for(let l=0;l<t.length;l++)e.classList.add(t[l]);e._classNames=t}else{const t=l.cellsClassName(a.visibleIndex,l.dataField,s,a.data,a);if(e._classNames)for(let t=0;t<e._classNames.length;t++)e.classList.remove(e._classNames[t]);if(t){const l=t.trim().split(" ");for(let t=0;t<l.length;t++)e.classList.add(l[t]);e._classNames=l}}if(l.cellsCSSRules){if(e.__classNames)for(let t=0;t<e.__classNames.length;t++)e.classList.remove(e.__classNames[t]);const i=Object.keys(l.cellsCSSRules);let r=[];for(let n=0;n<i.length;n++){let o=i[n];const d={index:a.visibleIndex,value:s,dataField:l.dataField,row:a,api:t};l.cellsCSSRules[o](d)&&(e.classList.add(o),r.push(o))}e.__classNames=r}t.rowDetail.enabled&&a.showDetail&&!1===t.rowDetail.dialog.enabled&&(e.style.height=a.cellHeight+"px",e.style.lineHeight=a.cellHeight+"px"),a.expanded&&a.expandHeight>0&&(e.style.height=a.cellHeight+"px",e.style.lineHeight=a.cellHeight+"px");const m=e._getCellAlignment(a,l),u=""!==e.cell.template&&t.isInitialized&&!a._isMeasureRow;let p="";if(m.align&&(p+=m.align+" "),m.verticalAlign&&(p+=m.verticalAlign+" "),l.cellsWrap)p+="wrap ";else if(t.layout.autoWrap&&a.height>40&&1===e.cell.colSpan&&"string"===l.dataType){if(14*(d||"").length*.52>l.computedWidth){p+="textwrap ";const e=parseInt(a.height/20);c.style["-webkit-line-clamp"]=e}}if(p+="smart-label",e.style.width!==l.computedWidth+"px"){const a=t._isLastVisibleColumn(l);l.autoGenerated||a?e.style.width=l.computedWidth+"px":e.style.width=l.computedWidth-t._columnGap+"px"}l.grid.appearance.showRowComments&&l.rowHeaderColumn&&(e.style.width=l.computedWidth+t.rowDetailColumn.width+"px",e.classList.add("row-number")),l===t._firstVisibleColumn?e.classList.add("smart-grid-column-border-collapse"):e.classList.remove("smart-grid-column-border-collapse"),t.appearance.showColumnGroupCellLines||l.parent&&!l.element.hasAttribute("column-group-first-child")&&e.classList.add("smart-grid-column-border-collapse"),t.grouping.enabled&&"multipleColumns"===t.grouping.renderMode&&t.dataSource&&t.dataSource.groupBy.length>0&&t.dataSource.groupBy.indexOf(l.dataField)>=0&&e.classList.add("smart-grid-column-border-collapse"),t._columnGap>0&&t.appearance.showColumnLines&&e.classList.add("smart-grid-column-border"),t._rowGap>0&&e.classList.add("smart-grid-row-border"),t.appearance.showColumnLines?e.classList.remove("smart-grid-vertical-border-collapse"):e.classList.add("smart-grid-vertical-border-collapse"),t.appearance.showRowLines?e.classList.remove("smart-grid-horizontal-border-collapse"):e.classList.add("smart-grid-horizontal-border-collapse");let g=l.left;if(t.rightToLeft?e.style.right!==g+"px"&&(e.style.right=g+"px"):e.style.left!==g+"px"&&(e.style.left=g+"px"),e.classList.contains("smart-hidden")&&e.classList.remove("smart-hidden"),e.hasAttribute("template")&&e.removeAttribute("template"),e.hasAttribute("freeze")&&e.removeAttribute("freeze"),e.hasAttribute("detail")&&e.removeAttribute("detail"),e.hasAttribute("error")&&e.removeAttribute("error"),e.cell.error&&e.setAttribute("error",e.cell.error),a.filterRow?e.classList.add("smart-grid-filter-row-cell"):a.summaryRow?e.classList.add("smart-grid-summary-row-cell"):(l.freeze||a.freeze)&&(l.selectionColumn&&(e.setAttribute("checkbox",""),p+=" smart-input",l.grid.selection.checkBoxes.enabled&&l.grid.selection.checkBoxes.autoShow?e.setAttribute("auto-show",""):e.removeAttribute("auto-show")),(l.rowHeaderColumn||l.selectionColumn)&&(e.setAttribute("header",""),e.setAttribute("role","rowheader")),t.appearance.showFrozenColumnBackground&&l.freeze&&e.setAttribute("freeze",""),t.appearance.showFrozenRowBackground&&a.freeze&&e.setAttribute("freeze",""),l.rowDetailColumn&&(e.setAttribute("header",""),e.setAttribute("detail",""),e.setAttribute("has-toggle-button",""),e.classList.add("smart-grid-column-border-collapse")),l.commandColumn&&e.setAttribute("command","")),t.appearance.showRowComments&&(a.comments&&a.comments.length>0&&l===t._firstVisibleUserColumn?e.classList.add("row-comments"):e.classList.remove("row-comments")),l.cellsRotationAngle){if(!e._rotateCellContent(c,l,s))return}else if(a.filterRow){if(!l.toggleColumn&&!l.rowHeaderColumn)return t.grouping.enabled&&t.dataSource&&t.dataSource.groupBy.length>0&&(l._filterEditorInitialized=!1),l._filterEditorInitialized||l.autoGenerated?void("boolean"===l.dataType||"bool"===l.dataType?e.setAttribute("template","checkBox"):e.removeAttribute("template")):(l._filterEditorInitialized=!0,void e._renderFilterCell(c));c.innerHTML=""}else if(a.summaryRow){if(l.toggleColumn||l.rowHeaderColumn)""!==c.innerHTML&&(c.innerHTML="");else if(l.autoGenerated&&""!==c.innerHTML&&(c.innerHTML=""),t.dataSource.boundHierarchy&&e.hasAttribute("has-toggle-button")&&e.removeAttribute("has-toggle-button"),!l.autoGenerated){if(l.summary.length>0&&t._summaryItems){const a=t._summaryItems[l.dataField],i=[];for(let r in a){if("status"===r)continue;const n=l.cellsFormat;let s=a[r];n&&n.indexOf("p")>=0&&"count"===r?s=a[r]:n&&"date"!==l.dataType&&(s=e.cell.getFormattedValue(s,n)),i.push(t.localize(r,{value:s}))}let r=[],n="";if(a&&a.status&&l.editor){n+='<div style="margin-right: 5px; display: flex; border-radius: 8px; align-items: center;">';const e=l.editor.dataSource,i=a.status,s=t.rows.length,o=l.computedWidth;let d=0;if(e)for(let l=0;l<e.length;l++){const a=e[l];if(i[a.value]){const e=a.label?a.label:t.localize("blankSummary"),l=i[a.value].length,c=new Number(l/s*100).toFixed(2),m=e+" "+l+"/"+s+" "+c+"%",u=o*c/100/2;r.push(m);const p=["#D50000","#F6BF26","#33B679","#039BE5","#3F51B5","#8E24AA"];d>p.length-1&&(d=0);n+='<span class="summary-value-part" title="'+m+'" style="width: '+u+"px; font-size: 11px; padding: 5px; background:"+(a.color||p[d++])+'; color: white;"></span>'}}n+="</div>"}const s=i.join(", "),o=t.summaryRow.editing?'<span class="smart-arrow-down"></span>':"";let d=`<div title = "${s}" class="smart-truncate summary-value" > <span class="label">${s}</span>${o}</div> `;r.length&&(d=`<div title = "${s}" class="smart-truncate summary-value" > <span style="align-items: center; display: flex;" class="label">${n}${s}</span>${o}</div> `);if(t.columns[0].dataField===l.dataField&&i.length<3){const e=t._recyclingRows.length;d=`<div title = "${s}" class="smart-truncate summary-value" > ${`<span style = "justify-content: flex-start" class="smart-truncate summary-value" > ${1===e?t.localize("oneRow"):t.localize("rows",{value:e})}</span> `} <span class="label">${s}</span>${o}</div> `}c.innerHTML!==d&&(c.innerHTML=d)}else if(t.summaryRow.editing&&l.allowSummary){if(t.columns[0].dataField===l.dataField){const e=t._recyclingRows.length,l=`<div class="smart-truncate summary-value"><span style="justify-content: flex-start" class="smart-truncate summary-value">${1===e?t.localize("oneRow"):t.localize("rows",{value:e})}</span><span class="smart-summary-placeholder label">${t.localize("summary")}</span><span class="smart-arrow-down"></span></div>`;c.innerHTML!==l&&(c.innerHTML=l)}else{const e=`<div class="smart-truncate summary-value"><span class="smart-summary-placeholder label">${t.localize("summary")}</span><span class="smart-arrow-down"></span></div>`;c.innerHTML!==e&&(c.innerHTML=e)}}t.summaryRow.editing&&l.allowSummary&&(t._selection&&t._selection.focusedCell&&t._selection.focusedCell.dataField===l.dataField?c.firstElementChild.setAttribute("has-summary",""):c.firstElementChild.removeAttribute("has-summary"),c.onpointerdown=e=>{e.preventDefault(),e.stopPropagation(),c._clickTarget=e.target},c.onpointerup=l=>{!0!==t._mobile&&c._clickTarget!==l.target||(l.preventDefault(),l.stopPropagation(),t._summaryRowDialog&&t._summaryRowDialog.classList.contains("open")&&t._summaryRowDialog.dataField===e.cell.column.dataField?t._summaryRowDialog.confirm():t._openSummaryRowDialog(e.cell,(()=>{})))})}}else if(t.rowDetail.enabled&&l.rowDetailColumn){let l="",i=t.appearance.showRowStatus||t.appearance.showRowComments?"smart-visibility-hidden":"";if(a.showDetail){l='<button tabindex="-1" class="'+i+' smart-animate" toggled toggle-button="" title="'+t.localize(a.showDetail?"collapseRow":"expandRow",{elementType:"Grid"})+'"></button>'}else{l='<button tabindex="-1" class="'+i+" smart-animate"+(t.rowDetail.dialog.enabled?" row-detail":"")+'" toggle-button="" title="'+t.localize(a.showDetail?"collapseRow":"expandRow",{elementType:"Grid"})+'"></button>'}if(t.appearance.showRowStatus){l=a._style&&a._style.status?`<span class="row-status custom" style = "color: ${a._style.status};" ></span> `+l:'<span class="row-status"></span>'+l,c.innerHTML===l||a.element.star?(a.element.star.classList.remove("smart-hidden"),a.element.star.classList.remove("custom"),a._style&&a._style.status?(a.element.star.style.color=a._style.status,a.element.star.classList.add("custom")):a.element.star.style.color=""):c.innerHTML=l;const i=()=>{if(a.comments&&a.comments.length>0){const e=a.comments.length;a.element.star.classList.add("comments"),a.element.star.setAttribute("title",t.localize(a.starred?"starred":"notStarred",{elementType:"Grid"})+", "+e+" "+t.localize("comments"))}else a.comments&&0===a.comments.length&&a.element.star.classList.remove("comments")};a.element.star=e.querySelector("span"),a.element.star||(c.innerHTML=l,a.element.star=e.querySelector("span")),a.element.star.onpointerdown=e=>{a.canNotify=!1,a.starred=!a.starred,a.canNotify=!0,a.data.$&&(a.data.$.starred=a.starred),a.starred?a.element.star.classList.add("starred"):a.element.star.classList.remove("starred"),a.element.star.setAttribute("title",t.localize(a.starred?"starred":"notStarred",{elementType:"Grid"})),i(),e.stopPropagation(),e.preventDefault(),t.$.fireEvent("rowStarred",{id:a.id,originalEvent:e,row:a,value:a.starred})},a.element.star.setAttribute("title",t.localize(a.starred?"starred":"notStarred",{elementType:"Grid"})),a.starred?a.element.star.classList.add("starred"):a.element.star.classList.remove("starred"),i()}else c.innerHTML!==l&&(c.innerHTML=l);if(a.element.toggleDetailButton=e.querySelector("button"),a.element.toggleDetailButton.setAttribute("title",t.localize(a.showDetail?"collapseRow":"expandRow",{elementType:"Grid"})),(t.rowDetail.template||t.onRowDetailInit)&&a.element.toggleDetailButton.classList.remove("smart-visibility-hidden"),a.comments&&a.comments.length>0){const e=a.comments.length;a.element.toggleDetailButton.classList.remove("smart-visibility-hidden"),t.appearance.showRowStatus?a.element.toggleDetailButton.querySelector(".comments-length")?a.element.toggleDetailButton.querySelector(".comments-length").innerHTML=e:a.element.toggleDetailButton.innerHTML+=`<div class="comments-length'>${e}</div>`:a.element.toggleDetailButton.innerHTML=`<div class="comments-length'>${e}</div>`,a.starred&&a.element.toggleDetailButton.classList.add("starred"),a.element.toggleDetailButton.classList.add("row-comments"),a.element.toggleDetailButton.setAttribute("title",t.localize(a.showDetail?"collapseRow":"expandRowComments",{value:e,elementType:"Grid"}))}else a.comments&&0===a.comments.length&&a.element.toggleDetailButton.classList.remove("row-comments");t.rowDetail.dialog.enabled&&a.element.toggleDetailButton.classList.add("row-detail")}else if(l.commandColumn)e._renderCommands();else if(t.appearance.showRowHeaderNumber&&l.rowHeaderColumn)if(a.addNewRow)c.textContent="";else{const l=l=>{if(e.cell.value)return e.cell.value;if("number"===t.appearance.autoGenerateRowLabelMode)return l.visibleIndex+1;{const e=l.visibleIndex%26,t=Math.floor(l.visibleIndex/26),a="A".charCodeAt(0),i=String.fromCharCode(a+e);let r="";for(let e=0;e<t;e++)r+="A";return r+i}};t._rowsAdded&&t._rowsAdded.indexOf(a.id)>=0?c.textContent="":c.textContent=l(a)}else if(u)if(e.removeAttribute("readonly"),t.appearance.displayLoadingIndicator&&!l.autoGenerated)c.innerHTML='<div class="smart-grid-cell-loading"></div>';else if(a._isMeasureRow)c.innerHTML=s;else switch(c.removeAttribute("title"),e.cell.template){case"checkBox":case"switchButton":case"radioButton":e._setTemplate(s,e.cell.template,c);break;case"tags":case"checklist":case"collaborator":case"updatedBy":case"createdBy":case"multiComboInput":e._setTemplate(s,e.cell.template,c);break;case"attachment":e._setTemplate(s,"attachments",c);break;case"image":e._setTemplate(s,"images",c);break;case"email":e._setTemplate(s,"email",c);break;case"url":e._setTemplate(s,"url",c);break;case"richText":e._setTemplate(s,"richText",c);break;default:e._setTemplate(s,e.cell.template,c)}else{const i=c.firstChild;if(i&&i.classList&&e.toggleButton&&l._treeColumn&&c.children[1]){const e=c.children[0],i=c.children[1].children[0],r=c.children[1].children[1].firstChild,n=c.children[1].children[2];let s="";if(l._treeColumn){if(t.grouping.enabled){let e=a.level-1;t.appearance.showRowHeaderNumber&&e--,t.rowDetail.enabled&&e--,e<-1?s="":"multipleColumns"!==t.grouping.renderMode&&(s+='<div style="width: '+(1+e)*t.grouping.groupIndent+'px;"></div>')}else for(let e=0;e<a.level;e++)s+="<div class='smart-indent'></div>";if(a.checked?r.setAttribute("checked",""):!1===a.checked?r.removeAttribute("checked"):null===a.checked&&r.setAttribute("checked","indeterminate"),a.leaf?a.allowCheck?r.classList.remove("smart-visibility-hidden"):r.classList.add("smart-visibility-hidden"):a.allowCheck?r.classList.remove("smart-hidden"):r.classList.add("smart-hidden"),!l.autoGenerated){const e=a["column_"+l.dataField];e&&e._setStyle(c)}}a.allowCheck?t.checkBoxes.visible?r.classList.remove("smart-hidden"):r.classList.add("smart-hidden"):t.checkBoxes.visible||r.classList.add("smart-hidden"),"card"===t.view&&(r.classList.add("smart-hidden"),i.classList.add("smart-hidden")),e.innerHTML=s,i.classList.add("smart-visibility-hidden"),a.leaf?i.classList.add("smart-visibility-hidden"):(i.classList.remove("smart-visibility-hidden"),a.expanded?i.setAttribute("toggled",""):i.removeAttribute("toggled","")),t.grouping.enabled&&i.classList.add("smart-hidden"),a.data.isEmpty&&i.classList.add("smart-visibility-hidden"),n.innerHTML=d,t.appearance.showTooltips?n.setAttribute("title",t._unescapeString(d)):n.hasAttribute("title")&&n.removeAttribute("title")}else{const i=a["column_"+l.dataField];if(e.getAttribute("rowspan")&&(e.removeAttribute("rowspan"),e.removeAttribute("aria-rowspan"),e.style.height=""),e.getAttribute("colspan")&&(e.removeAttribute("colspan"),e.removeAttribute("aria-colspan")),i){if(i.colSpan>1){const a=t.columns.indexOf(l);let r=0;for(let e=a;e<a+i.colSpan;e++){const l=t.columns[e];l&&l.visible&&(r+=l.computedWidth)}e.style.width=r+"px",e.setAttribute("colspan",""),e.setAttribute("aria-colspan",i.colSpan),i._styleChanged=!0}let r=i.rowSpan;if(i.rowSpan>1){const l=t.rows.indexOf(a);let r=0;a.element.setAttribute("rowspan","");for(let e=l;e<=l+i.rowSpan-1;e++){const l=t.rows[e];l&&l.visible&&l.filtered&&(r+=l.cellHeight)}e.style.height=r+"px",e.setAttribute("rowspan",""),e.setAttribute("aria-rowspan",i.rowSpan),i._styleChanged=!0}else if(l.rowSpan&&!a._isMeasureRow){const n="number"==typeof l.rowSpan?l.rowSpan:l.rowSpan(s,a.visibleIndex,a.data),o=a.visibleIndex;let d=!1;for(let e=0;e<t._cellRowSpan.length;e++){const l=t._cellRowSpan[e];if(o>l[0]&&o<l[1]){d=!0;break}}if(a._rowSpan=n,n&&!d){let s=0;t._cellRowSpan.push([o,o+n,l.dataField]),t._cellRowSpan.maxSpan||(t._cellRowSpan.maxSpan=1),t._cellRowSpan.maxSpan=Math.max(n,t._cellRowSpan.maxSpan),a.element.setAttribute("rowspan","");for(let e=o;e<=o+n-1;e++){const l=t.rows[e];l&&l.visible&&l.filtered&&(s+=l.cellHeight)}e.style.height=s+"px",e.setAttribute("rowspan",""),e.setAttribute("aria-rowspan",n),i._styleChanged=!0,r=n}}if(1===i.colSpan&&e.hasAttribute("colspan")&&(e.style.width="",e.removeAttribute("colspan"),e.removeAttribute("aria-colspan"),i._styleChanged=!0),e.hasAttribute("rowspan")&&1===r&&(e.style.height="",e.removeAttribute("rowspan"),e.removeAttribute("aria-rowspan"),i._styleChanged=!0),c.textContent===d||l.formatFunction||("string"==typeof d&&d.indexOf("&")>=0?"card"===t.view?c.innerHTML=d:t.isScrolling?requestAnimationFrame((()=>{c.innerHTML=d})):c.innerHTML=d:c.textContent=d),i.column.autoGenerated||i._setStyle(c),t.appearance.showTooltips?c.setAttribute("title",i.tooltip||t._unescapeString(d)):c.hasAttribute("title")&&c.removeAttribute("title"),t.appearance.showTooltipsOverflow&&(!t.appearance.showTooltips&&c.hasAttribute("title")&&c.removeAttribute("title"),d&&d.length)){14*(d||"").length*.52>l.computedWidth?c.setAttribute("title",i.tooltip||t._unescapeString(d)):!t.appearance.showTooltips&&c.hasAttribute("title")&&c.removeAttribute("title")}}else c.textContent=d}}if(c.className!==p&&(c.className=p),!t.appearance.displayLoadingIndicator||l.autoGenerated||t.dataSource.boundHierarchy?t.appearance.displayLoadingIndicator&&l.selectionColumn?e.removeAttribute("selected"):!l.autoGenerated&&c.firstChild&&c.firstChild.classList&&c.firstChild.classList.contains("smart-grid-cell-loading")&&(c.firstChild.classList.remove("smart-grid-cell-loading"),e.removeAttribute("selected")):(a.element.removeAttribute("focus"),e.removeAttribute("selected"),c.innerHTML='<div class="smart-grid-cell-loading"></div>'),l.formatFunction&&!a.data.isEmpty&&t.isInitialized&&!a.summaryRow){const i={row:a,column:l,cell:e.cell,oldValue:e.cell.oldValue,value:s,formattedValue:d,template:null};e.cell.canNotify=!1,a.canNotify=!1;const r=Object.assign({},{background:e.cell.background,color:e.cell.color,fontSize:e.cell.fontSize,fontFamily:e.cell.fontFamily,textDecoration:e.cell.textDecoration,fontWeight:e.cell.fontWeight,fontStyle:e.cell.fontStyle});t.hasAttribute("smart-blazor")?await l.formatFunction(i):l.formatFunction(i),c.style.background===r.background&&c.style.color===r.color&&c.style.fontSize===r.fontSize&&c.style.fontFamily===r.fontFamily&&c.style.textDecoration===r.textDecoration&&c.style.fontWeight===r.fontWeight&&c.style.fontStyle===r.fontStyle||(e.cell._styleChanged=!0,e.cell._setStyle(c)),e.cell.background===r.background&&e.cell.color===r.color&&e.cell.fontSize===r.fontSize&&e.cell.fontWeight===r.fontWeight&&e.cell.textDecoration===r.textDecoration&&e.cell.fontFamily===r.fontFamily&&e.cell.fontStyle===r.fontStyle||(e.cell._styleChanged=!0,e.cell._setStyle(c));let n=!0;if(i.value!==s){if(e.toggleButton){c.children[1].children[2].innerHTML=i.value}else c.innerHTML=i.value;n=!1}if(null!==i.template){if(e.toggleButton){if(c.children[1]){const e=c.children[1].children[2];e.innerHTML!==i.template&&(e.innerHTML=i.template)}}else if(c.innerHTML!==i.template){const e=document.createElement("div");e.innerHTML=i.template,e.innerHTML!==c.innerHTML&&(c.innerHTML=i.template)}n=!1}n&&(l.cellsFormat?c.textContent=d:c.textContent=s),e.cell.canNotify=!0,a.canNotify=!0}if(!a.data.isEmpty&&t.isInitialized&&e._applyConditionalFormattingToCell(e.cell,t,c),t.grouping.enabled&&t.dataSource&&t.dataSource.groupBy.length>0&&l===t._firstVisibleColumn&&t.rowDetail.enabled&&t.rowDetail.visible&&c.querySelector("[toggle-button]")){const e=c.querySelector("[toggle-button]");e.classList.remove("smart-visibility-hidden"),e.classList.add("row-detail"),a.element.toggleDetailButton=e,a.element.toggleDetailButton.setAttribute("title",t.localize(a.showDetail?"collapseRow":"expandRow",{elementType:"Grid"})),e.onpointerdown=function(e){a.showDetail=!a.showDetail,e.stopPropagation(),e.preventDefault()}}}_autoWrap(){const e=this,t=e.firstChild,l=e.cell.grid;l.layout.allowCellsWrapShortcut&&e.hasAttribute("focus")&&e.hasAttribute("selected")&&(t.offsetWidth<t.scrollWidth?e._popupCellContent(t.innerHTML,e.cell):l._cellContentPopup&&l._cellContentPopup.remove())}_popupCellContent(e,t){const l=this,a=t.grid;let i=a._cellContentPopup;if(!a._cellContentPopup){i=document.createElement("div");const t=document.createElement("span"),l=document.createElement("div"),r=document.createElement("div");i.style.minHeight="0px",i.style.minWidth="0px",i.setAttribute("theme",a.theme),i.classList.add("smart-grid-cell-content-popup"),r.appendChild(l),r.classList.add("smart-grid-text-area-container"),l.innerHTML=e,l.classList.add("smart-grid-cell-content-popup-content"),t.classList.add("smart-hidden"),t.classList.add("close-button"),t.classList.add("smart-grid-icon"),t.classList.add("smart-icon-cancel-circled"),t.onclick=function(){a._cellContentPopup.parentNode.removeChild(a._cellContentPopup)},i.classList.add("smart-grid-text-area-dialog"),i.appendChild(r),i.appendChild(t),a._cellContentPopup=i}i.querySelector(".smart-grid-cell-content-popup-content").innerHTML=e;const r=a.offset(a.$.scrollView);i.style.top=a._offsetTop(l)-r.top+"px",i.style.left=a._offsetLeft(l)-r.left+"px",i.style.width=l.offsetWidth-4+"px",a.$.scrollView.appendChild(i)}_applyConditionalFormattingToCell(e,t,l){const a=this,i=e.column.dataField,r=e.row,n=e.row.index,s=r._style,o=r.data&&r.data.$?r.data.$.id:null;if(e.column.autoGenerated){const l=t._conditionalColors;if(l&&e.column.rowHeaderColumn)if("border"===l.decorate){const t=l.colors;t&&t[o]?(e.element.classList.add("smart-decorate"),e.element.style.setProperty("--smart-decorate-color",t[o].color)):e.element.classList.remove("smart-decorate")}else e.element.classList.remove("smart-decorate")}else{if(t._conditionalColors){const n=t._conditionalColors;if("border"!==n.decorate){const t=n.colors;if(t&&t[o]){const s="cell"===n.decorate?t[o][i]:t[o].color;if(s){const t=new Smart.Color(s).getInvertedColor();a.cell.canNotify=!1,r.canNotify=!1,e.background=s,e.color=t,a.cell._setStyle(l),a.cell.canNotify=!0,r.canNotify=!0}else e.background&&e.color&&(a.cell.canNotify=!1,r.canNotify=!1,e.background=null,e.color=null,a.cell._setStyle(l),a.cell.canNotify=!0,r.canNotify=!0)}else e.background&&e.color&&(a.cell.canNotify=!1,r.canNotify=!1,e.background=null,e.color=null,a.cell._setStyle(l),a.cell.canNotify=!0,r.canNotify=!0)}else e.background&&e.color&&(a.cell.canNotify=!1,r.canNotify=!1,e.background=null,e.color=null,a.cell._setStyle(l),a.cell.canNotify=!0,r.canNotify=!0)}if(t._conditionalFormatting&&t._conditionalFormatting[i]){const e=t._conditionalFormatting[i][n];a.cell.canNotify=!1,r.canNotify=!1,e?(a.cell._styleChanged=!0,a.cell.background=e.background,a.cell.color=e.color,a.cell.fontFamily=e.fontFamily,a.cell.fontSize=e.fontSize,a.cell._setStyle(l)):a.cell._styleChanged||(s&&s._changed?(a.cell._styleChanged=!0,a.cell.background=s.background,a.cell.color=s.color,a.cell.fontFamily=s.fontFamily,a.cell.fontSize=s.fontSize,a.cell._setStyle(l)):(a.cell._styleChanged=!0,a.cell.background=null,a.cell.color=null,a.cell.fontFamily=null,a.cell.fontSize=null,a.cell._setStyle(l))),a.cell.canNotify=!0,r.canNotify=!0}else t._conditionalFormattingChanged&&!a.cell._styleChanged&&(a.cell.canNotify=!1,r.canNotify=!1,s&&s._changed?(a.cell._styleChanged=!0,a.cell.background=s.background,a.cell.color=s.color,a.cell.fontFamily=s.fontFamily,a.cell.fontSize=s.fontSize,a.cell._setStyle(l)):(a.cell._styleChanged=!0,a.cell.background=null,a.cell.color=null,a.cell.fontFamily=null,a.cell.fontSize=null,a.cell._setStyle(l)),a.cell.canNotify=!0,r.canNotify=!0)}}_rotateCellContent(e,t,l){const a=document.createElement("span");return e.innerHTML="",a.innerHTML=l,e.appendChild(a),a.className="rotate",a.style.transform="rotate("+t.cellsRotationAngle+"deg)",this.grid._recycleRotate(e,a,t.cellsAlign,t.cellsVerticalAlign,l)}_getCellAlignment(e,t){const l=e["column_"+t.dataField],a=l&&l.verticalAlign||t.cellsVerticalAlign;let i=l&&l.align||t.cellsAlign;const r={align:"",verticalAlign:""};if(!l)return{align:"align-left",verticalAlign:"align-middle"};switch(l.grid.rightToLeft&&("left"===i?i="right":"right"===i&&(i="left")),i){case"left":r.align="align-left";break;case"center":case"middle":r.align="align-center";break;case"right":r.align="align-right"}switch(a){case"top":r.verticalAlign="align-top";break;case"center":case"middle":r.verticalAlign="align-middle";break;case"bottom":r.verticalAlign="align-bottom"}return r}template(){return""}_detach(){this.element=null,this.cell=null}onDetached(){this._detach()}});class e{render(e){const t=this,l={svg:null,width:e.width||100,height:e.height||30,gap:e.gap||5,strokeWidth:e.strokeWidth||2,type:e.type||"column",colors:e.colors||["var(--smart-primary)"],points:e.points,labels:e.labels,colorFunction:e.colorFunction,tooltipFormatFunction:e.tooltipFormatFunction,min:e.min,max:e.max};switch(l.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),l.svg.setAttribute("width",l.width),l.svg.setAttribute("height",l.height),function(e){Array.isArray(e.colors)||(e.colors=t.colors.split(",")),e.points&&(e.points=e.points.split(",").map((e=>parseInt(e,10))))}(l),l.type){case"column":return t.column(l);case"bar":return t.bar(l);case"line":return t.line(l);case"pie":return t.pie(l);case"stacked":return t.stacked(l)}}colorFunction(e,t){const l=function(e,t){e===t&&(t=e+100);const l=(t-e)/5;return[e+l,e+2*l,e+3*l,e+4*l]}(e,t),a=["#D50000","#F4511E","#F6BF26","#039BE5","#33B679"];return e=>e<l[0]?a[0]:e<l[1]?a[1]:e<l[2]?a[2]:e<l[3]?a[3]:a[4]}column(e){const t=e.gap/e.points.length+e.width/e.points.length-e.gap,l=e.max||Math.max(...e.points),a=e.min||Math.min(...e.points),i=e.height/(Math.abs(a)+Math.abs(l)),r=Math.abs(a)*i;return e.colorFunction||(e.colorFunction=this.colorFunction(a,l)),e.points.forEach(((n,s)=>{const o=document.createElementNS("http://www.w3.org/2000/svg","rect"),d=Math.abs(n)*i;o.setAttribute("x",s*t+s*e.gap),o.setAttribute("point",n);let c=n>=0?"var(--smart-primary)":"var(--smart-error)";if(l>0&&a<0?n>=0?o.setAttribute("y",e.height-r-1-d):o.setAttribute("y",e.height-r-1):l>=0&&a>=0?o.setAttribute("y",e.height-d):a<=0&&l<=0&&o.setAttribute("y",d),o.setAttribute("width",t),o.setAttribute("height",d),e.colorFunction){const t=e.colorFunction(n);t&&(c=t)}o.setAttribute("fill",c);const m=e.tooltipFormatFunction?e.tooltipFormatFunction(n):n;o.setAttribute("data-title",m),e.svg.appendChild(o)})),e.svg.outerHTML}bar(e){const t=e.height-3,l=Math.max(5,e.gap/e.points.length+t/e.points.length-e.gap),a=e.max||Math.max(...e.points),i=e.min||Math.min(...e.points);let r=e.width/(Math.abs(i)+Math.abs(a));const n=Math.abs(i)*r;return e.colorFunction||(e.colorFunction=this.colorFunction(i,a)),e.points.forEach(((t,s)=>{const o=document.createElementNS("http://www.w3.org/2000/svg","rect"),d=Math.abs(t)*r;o.setAttribute("y",s*l+s*e.gap),o.setAttribute("point",t);let c=t>=0?"var(--smart-primary)":"var(--smart-error)";if(a>0&&i<0?t>=0?o.setAttribute("x",n):o.setAttribute("x",n-d):(a>=0&&i>=0||i<=0&&a<=0)&&o.setAttribute("x",0),o.setAttribute("width",d),o.setAttribute("height",l),e.colorFunction){const l=e.colorFunction(t);l&&(c=l)}o.setAttribute("fill",c);const m=e.tooltipFormatFunction?e.tooltipFormatFunction(t):t;o.setAttribute("data-title",m),e.svg.appendChild(o)})),e.svg.outerHTML}line(e){const t=e.width/(e.points.length-1),l=e.max||Math.max(...e.points),a=e.min||Math.min(...e.points),i=e.height/(Math.abs(a)+Math.abs(l)),r=Math.abs(a)*i;e.colorFunction||(e.colorFunction=this.colorFunction(a,l));let n="var(--smart-primary)",s=[],o=[];e.svg.setAttribute("overflow","visible");for(let l=0;l<e.points.length;l++){const a=e.points[l],n=l*t,d=e.height-r-a*i;o.push({x:n,y:d,point:a}),2===o.length&&(s.push(o),o=[]),s.length>0&&0===o.length&&o.push(s[s.length-1][1])}for(let t=0;t<s.length;t++){const l=s[t];if(e.colorFunction){const t=e.colorFunction(l[0].point);t&&(n=t)}if(0===t){const t=document.createElementNS("http://www.w3.org/2000/svg","circle");e.svg.appendChild(t),t.setAttribute("cx",l[0].x),t.setAttribute("cy",l[0].y),t.setAttribute("r",3),t.setAttribute("fill",n);const a=e.tooltipFormatFunction?e.tooltipFormatFunction(l[0].point):l[0].point;t.setAttribute("data-title",a),t.style.display="none"}const a=document.createElementNS("http://www.w3.org/2000/svg","line");e.svg.appendChild(a),a.setAttribute("x1",l[0].x),a.setAttribute("y1",l[0].y),a.setAttribute("x2",l[1].x),a.setAttribute("y2",l[1].y);const i=document.createElementNS("http://www.w3.org/2000/svg","circle");e.svg.appendChild(i),i.setAttribute("cx",l[1].x),i.setAttribute("cy",l[1].y),i.setAttribute("r",3),i.setAttribute("fill",n);const r=e.tooltipFormatFunction?e.tooltipFormatFunction(l[1].point):l[1].point;i.setAttribute("data-title",r),i.style.display="none",a.setAttribute("fill","none"),a.setAttribute("stroke-width",e.strokeWidth),a.setAttribute("stroke",n)}return e.svg.outerHTML}pie(e){const t=Math.min(e.width,e.height)/2,l=e.width/2,a=e.height/2,i=e.points.reduce(((e,t)=>e+Math.abs(t)),0);let r=0;const n=e.max||Math.max(...e.points),s=e.min||Math.min(...e.points);return e.colorFunction||(e.colorFunction=this.colorFunction(s,n)),e.points.forEach((n=>{let s=e.color;if(e.colorFunction){const t=e.colorFunction(n);t&&(s=t)}const o=Math.abs(n)/i*2*Math.PI,d=r+o,c=l+t*Math.cos(r),m=a+t*Math.sin(r),u=l+t*Math.cos(d),p=a+t*Math.sin(d),g=document.createElementNS("http://www.w3.org/2000/svg","path"),h=o>Math.PI?1:0,f=`M ${l},${a} L ${c},${m} A ${t},${t} 0 ${h} 1 ${u},${p} Z`;g.setAttribute("d",f),g.setAttribute("fill",s);const b=e.tooltipFormatFunction?e.tooltipFormatFunction(n):`${(n/i*100).toFixed(2)}%`;g.setAttribute("data-title",b),e.svg.appendChild(g),r=d})),e.svg.outerHTML}stacked(e){let t=e.points.reduce(((e,t)=>e+t),0),l=(e.points.length-1)*e.gap,a=e.width-l;const i=e.max||Math.max(...e.points),r=e.min||Math.min(...e.points);e.colorFunction||(e.colorFunction=this.colorFunction(r,i));let n=0;return e.points.forEach(((l,i)=>{let r=e.colors[i%e.colors.length];if(e.colorFunction){const t=e.colorFunction(l);t&&(r=t)}const s=l/t*a,o=document.createElementNS("http://www.w3.org/2000/svg","rect");o.setAttribute("x",n),o.setAttribute("y",0),o.setAttribute("width",s),o.setAttribute("height",e.height),o.setAttribute("fill",r);const d=document.createElementNS("http://www.w3.org/2000/svg","title");d.textContent=l,o.appendChild(d),e.svg.appendChild(o),n+=s+e.gap})),e.svg.outerHTML}}})();
1428
+ (()=>{Smart.Utilities.Assign("Grid.Cell",class{constructor(e,t){const l=this;if(l.row=e,l.column=t,l.grid=e.grid,l.rowSpan=1,l.colSpan=1,l.value=void 0,l.fontSize=null,l.fontWeight=null,l.fontFamily=null,l.fontStyle=null,l.color=null,l.background=null,l.textDecoration=null,l.tooltip=null,l.align=null,l.verticalAlign=null,l.readonly=!1,l.oldValue=void 0,l._updating=!1,l.styleChanged=!0,l.editor=null,l.template=null,l.isEditing=!1,l.canNotify=!0,l.selected=!1,l.focused=!1,l.error=!1,l.format=null,l.formula=null,e._style){const t=e._style;l.color=t.color,l.background=t.background,l.fontFamily=t.fontFamily,l.fontSize=t.fontSize,l.fontStyle=t.fontStyle,l.textDecoration=t.textDecoration,l.fontWeight=t.fontWeight}if(l.grid&&l.grid.formulas){let a=e.data[t.dataField];t.formula&&(l.formula=l._parseFormula(t.formula)),a&&(""+a).startsWith("=")&&(l.formula=l._parseFormula(""+a))}return new Proxy(l,{deleteProperty:function(e,t){return delete e[t],!0},get:function(e,t){if("value"===t){const e=l.column.displayField?l.row.data[l.column.displayField]:l.row.data[l.column.dataField];if(l.grid&&l.grid.formulas&&l.formula){const e=l.grid._formulaParser;if(e){return e.parse(l.formula.slice(1))}}return e}if("editor"===t||"template"===t)return e[t]||l.column[t];if("focused"===t){if(l.grid.selection.allowCellSelection&&l.grid._selection.focusedCell&&l.grid._selection.focusedCell.id===l.row.id&&l.grid._selection.focusedCell.dataField===l.column.dataField)return!(l.grid&&l.grid.dataSource.virtualDataSource&&!l.grid.dataSource.id)||l.grid._selection.focusedCell.id===l.row.index;if(l.grid.selection.allowRowSelection&&l.grid._selection.focusedCell&&l.grid._selection.focusedCell.id===l.row.id&&l.grid._selection.focusedCell.dataField===l.column.dataField)return!(l.grid&&l.grid.dataSource.virtualDataSource&&!l.grid.dataSource.id)||l.grid._selection.focusedCell.id===l.row.index;const e=l.parent();return!!(e&&l.grid.selection.allowCellSelection&&l.grid._selection.focusedCell&&l.grid._selection.focusedCell.id===e.row.id&&l.grid._selection.focusedCell.dataField===e.column.dataField)}if("selected"===t)return!0===l.row.getProperty("selected")||(!0===l.column.getProperty("selected")||!!l.grid._selection.cells["row"+l.row.id]&&l.grid._selection.cells["row"+l.row.id][l.column.dataField]);if("modifiedValue"===t){l.grid._cellsUpdatedValues||(l.grid._cellsUpdatedValues=[]);const t=l.grid._cellsUpdatedValues[l.row.id+"_"+l.column.dataField];return void 0!==t?t:e.value}return e[t]},set:function(e,a,i){const r=this.get(e,a);if(r===i)return!0;if(e[a]=i,"element"===a||"isEditing"===a||"oldValue"===a||"_updating"===a||"notifyFn"===a||a.startsWith("_")||"canNotify"===a)return!0;if("error"===a)return!0;if("focused"===a&&(l.grid._selection.focusedCell={id:l.row.id,dataField:l.column.dataField,value:l.value,index:l.row.index}),"colSpan"!==a&&"rowSpan"!==a||i>=0&&-1===l.grid._cellsMerge.indexOf(l)&&l.grid._cellsMerge.push(l),"row"===a||"column"===a||"grid"===a||"styleChanged"===a||"formula"===a)return"formula"===a&&(l.formula=l._parseFormula(l.formula)),!0;if("background"!==a&&"fontSize"!==a&&"fontWeight"!==a&&"fontFamily"!==a&&"textDecoration"!==a&&"color"!==a&&"fontStyle"!==a||(l.grid._cellStyles["row"+l.row.id]=!0,l.grid._cellStyles.length++,l._styleChanged=!0),"value"===a){void 0===l.oldValue&&(l.oldValue=r);(()=>{l.grid.dataSource.boundSource.canNotify=!1,null===i&&(l.column.allowNull||(i="number"===l.column.dataType||"int"===l.column.dataType||"float"===l.column.dataType||"integer"===l.column.dataType?0:"date"===l.column.dataType?new Date:"boolean"!==l.column.dataType&&"bool"!==t.dataType&&"")),void 0===i&&(i=null),null!==i&&i.label&&i.value?(l.row.data[l.column.displayField]=i.label,l.row.data[l.column.dataField]=i.value):(l.column.valueField&&(l.row.data[l.column.valueField]=i),l.row.data[l.column.dataField]=i);const e=l.grid.dataSource.dataItemById[l.row.id];if(e){const t=e.$.index;l.grid.dataSource&&i!==l.grid.dataSource.boundSource[t][l.column.dataField]&&(l.grid._sortedColumns&&l.grid._sortedColumns.length>0?e[l.column.dataField]=i:l.grid.dataSource.boundSource[t][l.column.dataField]=i)}l.grid.dataSource.boundSource.canNotify=!0})()}return"selected"===a?(l.grid._selection.cells["row"+l.row.id]&&(delete l.grid._selection.cells["row"+l.row.id][l.column.dataField],1===Object.getOwnPropertyNames(l.grid._selection.cells["row"+l.row.id]).length&&delete l.grid._selection.cells["row"+l.row.id]),l.grid._selection.cells["column"+l.column.dataField]&&(delete l.grid._selection.cells["column"+l.column.dataField][l.row.id],1===Object.getOwnPropertyNames(l.grid._selection.cells["column"+l.column.dataField]).length&&delete l.grid._selection.cells["column"+l.column.dataField]),i&&(l.grid._selection.cells["row"+l.row.id]||(l.grid._selection.cells["row"+l.row.id]=[]),l.grid._selection.cells["column"+l.column.dataField]||(l.grid._selection.cells["column"+l.column.dataField]=[]),l.grid._selection.cells["row"+l.row.id][l.column.dataField]=!0,l.grid._selection.cells["column"+l.column.dataField][l.row.id]=!0),l.grid._recycle(!1,!0,!1),l.propertyChanged&&l.propertyChanged(name.substring(1),r),!0):!(!l._updating&&l.canNotify)||(l.grid._recycle(),!l.row.canNotify||(l.propertyChanged&&l.propertyChanged(name.substring(1),r),!0))}})}_parseFormula(e){let t=0;const l=this.row;if(!e)return e;for("string"!=typeof e&&(e=""+e),!1===e.startsWith("=")&&(e="="+e);e.indexOf("COL")>=0;){const a=e.indexOf("COL"),i=a+e.substring(a).indexOf(")"),r=e.substring(a,i+2),n=e.substring(i+2,i+3);let s="";if(s=isNaN(parseInt(n))?r.replace("COL(","").replace(")",1+l.index):r.replace("COL(","").replace(")",""),e=e.replace(r,s),t++,t>10)break}return e}setStyle(e){this.setProperties(e)}_setStyle(e){const t=this;if(t._styleChanged){if(!t.grid._cellStyles.length)return;let l="";const a={background:"background",color:"color",fontSize:"font-size",fontFamily:"font-family",fontWeight:"font-weight",fontStyle:"font-style",textDecoration:"text-decoration"},i=e=>{const i=t[e];if(""===i||null===i)return;const r=a[e];l+=`${r}: ${i};`},r=["background","color","fontSize","fontFamily","fontWeight","fontStyle","textDecoration"];for(let e=0;e<r.length;e++)i(r[e]);e.getAttribute("style")!==l&&(""===l?e.removeAttribute("style"):e.setAttribute("style",l)),""!==e.style.paddingBottom&&(e.style.paddingBottom=""),t._styleChanged=!1}t.grid&&!t.grid.appearance.showSelectionOnTop||t.selected&&(t.background||t.color)&&(e.style.background="",e.style.color="")}getFormattedValue(e,t){const l=this;if(null==e||""===e)return e;if(!t)return""+e;if(l.column._cellsCachedValues||(l.column._cellsCachedValues=[]),l.column._cellsCachedValues[""+e+t+l.column.grid.locale])return l.column._cellsCachedValues[""+e+t+l.column.grid.locale];if("date"===l.column.dataType||"datetime"===l.column.dataType||"time"===l.column.dataType){if("dateRangeInput"===l.column.editor.template){if(Array.isArray(e)){const a=l.formatDate(e[0],t)+" - "+l.formatDate(e[1],t);return l.column._cellsCachedValues[""+e+t+l.column.grid.locale]=a,a}{const a=l.formatDate(e,t);return l.column._cellsCachedValues[""+e+t+l.column.grid.locale]=a,a}}let a=l.formatDate(e,t);return"1/1/0001 12:00 AM"===a&&(a=""),l.column._cellsCachedValues[""+e+t+l.column.grid.locale]=a,a}if("int"===l.column.dataType||"int64"===l.column.dataType||"float"===l.column.dataType||"number"===l.column.dataType){let a=l.formatNumber(e,t);return"NaN"===a&&(a=""),l.column._cellsCachedValues[""+e+t+l.column.grid.locale]=a,a}if("any"===l.column.dataType||"string"===l.column.dataType&&t&&t.length){let a=!1;if(t.indexOf("d")>=0&&t.indexOf("M")>=0&&(a=!0),(t.indexOf("d")>=0||t.indexOf("M")>=0||t.indexOf("y")>=0||t.indexOf("h")>=0||t.indexOf("H")>=0||t.indexOf("m")>=0)&&(a=!0),a){let a=l.formatDate(e,t);return"1/1/0001 12:00 AM"===a&&(a=""),l.column._cellsCachedValues[""+e+t+l.column.grid.locale]=a,a}{"string"==typeof e&&(e=parseFloat(e));let a=l.formatNumber(e,t);return"NaN"===a&&(a=""),l.column._cellsCachedValues[""+e+t+l.column.grid.locale]=a,a}}return e}formatDate(e,t){if(!Smart.Utilities.DateTime)return e;const l=this,a=l.grid;if(l.column.formatSettings.Intl&&l.column.formatSettings.Intl.DateTimeFormat){return new Intl.DateTimeFormat(this.grid.locale,l.column.formatSettings.Intl.DateTimeFormat).format(e)}!t&&l.column.formatSettings.dateFormat&&(t=l.column.formatSettings.dateFormat);try{const l=new Smart.Utilities.DateTime(e);l.calendar.locale=a.locale,a.messages[a.locale]&&a.messages[a.locale].calendar&&(a.messages[a.locale].calendar.months&&(l.calendar.months=a.messages[a.locale].calendar.months),a.messages[a.locale].calendar.days&&(l.calendar.days=a.messages[a.locale].calendar.days),void 0!==a.messages[a.locale].calendar.firstDay&&(l.calendar.firstDay=a.messages[a.locale].calendar.firstDay),void 0!==a.messages[a.locale].calendar.eras&&(l.calendar.eras=a.messages[a.locale].calendar.eras),void 0!==a.messages[a.locale].calendar.AM&&(l.calendar.AM=a.messages[a.locale].calendar.AM),void 0!==a.messages[a.locale].calendar.PM&&(l.calendar.PM=a.messages[a.locale].calendar.PM),void 0!==a.messages[a.locale].calendar["/"]&&(l.calendar["/"]=a.messages[a.locale].calendar["/"]),void 0!==a.messages[a.locale].calendar[":"]&&(l.calendar[":"]=a.messages[a.locale].calendar[":"]),l.calendar.today=a.messages[a.locale].today);let i=l.toString(t);return i!==a.messages[a.locale].today||a.showTodayDateAsString||(l.showTodayDateAsString=!1,i=l.toString(t),delete l.showTodayDateAsString),i}catch(t){return e}}formatNumber(e,t){if(!Smart.Utilities.NumberRenderer)return e;const l=this,a=l.grid;if(l.column.formatSettings.Intl&&l.column.formatSettings.Intl.NumberFormat){if(l.column.formatSettings.Intl.NumberFormat.currency&&Smart.Utilities.CurrencyFormatter){const t=void 0!==l.column.formatSettings.Intl.NumberFormat.maximumFractionDigits?l.column.formatSettings.Intl.NumberFormat.maximumFractionDigits:2,a=(new Smart.Utilities.CurrencyFormatter).format(e,{decimalPlaces:t,currency:l.column.formatSettings.Intl.NumberFormat.currency});return"accounting"===l.column.formatSettings.Intl.NumberFormat.currency.currencySign&&e<0?"("+a.replace("-","")+")":a}if(l.column.formatSettings.Intl.NumberFormat.locale){return new Intl.NumberFormat(l.column.formatSettings.Intl.NumberFormat.locale,l.column.formatSettings.Intl.NumberFormat).format(e)}{const t=new Intl.NumberFormat(this.grid.locale,l.column.formatSettings.Intl.NumberFormat).format(e);return"squaremeter"===l.column.formatSettings.Intl.NumberFormat.type?t+" m²":"cubicmeter"===l.column.formatSettings.Intl.NumberFormat.type?t+" m³":t}}const i=new Smart.Utilities.NumberRenderer;if(i.localizationObject){const e=l.column.formatSettings,t=a.messages[a.locale]?a.messages[a.locale].calendar:{};e.decimalPlaces&&(i.localizationObject.decimalPlaces=e.decimalPlaces),(e.decimalSeparator||t.decimalSeparator)&&(i.localizationObject.decimalSeparator=e.decimalSeparator||t.decimalSeparator,i.localizationObject.decimalseparator=i.localizationObject.decimalSeparator),(e.thousandsSeparator||t.thousandsSeparator)&&(i.localizationObject.thousandsSeparator=e.thousandsSeparator||t.thousandsSeparator,i.localizationObject.thousandsseparator=i.localizationObject.thousandsSeparator),i.localizationObject.currencysymbol=t.currencySymbol,i.localizationObject.currencysymbolposition=t.currencySymbolPosition,e.prefix&&(i.localizationObject.currencysymbol=e.prefix),e.sufix&&(i.localizationObject.currencysymbol=e.sufix,i.localizationObject.currencysymbolposition="after")}const r=i.formatNumber(e,t);return void 0===r?e:e<0&&l.column.formatSettings.negativeWithBrackets?"("+r+")":r}refresh(){const e=this;if(e.element){const t=e.element.firstChild;e._setStyle(t)}}autoWrap(){const e=this;e.element&&e.element._autoWrap()}setProperties(e){const t=this;t._updating=!0;for(let l in e)t[l]=e[l];t._updating=!1,t.grid._recycle()}createElement(){const e=document.createElement("smart-grid-cell");return e.setAttribute("role","gridcell"),this.element=e,e._initialize(this),e}render(){this.element&&this.element._render()}parent(e){const t=this,l=t.row,a=t.column.dataField,i=t.grid;if(!i._cellsMerge.length)return null;if(t.__parentCells&&void 0!==t.__parentCells["row"+l.id+"_column_"+a])return t.__parentCells["row"+l.id+"_column_"+a];let r=i.getVisibleRows();i.paging.enabled&&"page"===i.selection.selectAllMode&&(r=r.slice(i.paging.pageIndex*i.paging.pageSize,(i.paging.pageIndex+1)*i.paging.pageSize)),t.__parentCells||(t.__parentCells=[]);for(let n=0;n<i._cellsMerge.length;n++){const s=i._cellsMerge[n];let o=[],d=[];if(o.push(s.row),s.rowspan>1){const e=r.indexOf(s.row);if(e>=0)for(let t=e;t<e+s.rowSpan;t++)r[t]&&-1===o.indexOf(r[t])&&o.push(r[t])}if(d.push(s.column.dataField),s.colspan>1){const e=i.columns.indexOf(i.columnByDataField[s.column.dataField]);for(let t=e;t<e+s.colSpan;t++)i.columns[t]&&-1===d.indexOf(i.columns[t].dataField)&&d.push(i.columns[t].dataField)}if(o.indexOf(l)>=0&&d.indexOf(a)>=0){if(e){const e={cell:s.row.getCell(s.column.dataField),rows:o,columns:d,row:s.row,column:s.column,endRow:o[o.length-1],endColumn:i.columnByDataField[d[d.length-1]]};return t.__parentCells["row"+l.id+"_column_"+a]=e,e}const r=s.row.getCell(s.column.dataField);return t.__parentCells["row"+l.id+"_column_"+a]=r,r}}return t.__parentCells["row"+l.id+"_column_"+a]=null,null}}),Smart("smart-grid-cell",class extends Smart.BaseElement{static get properties(){return{}}get hasStyleObserver(){return!1}get enableShadowDOM(){return!1}addThemeClass(){}addDefaultClass(){}get isUtilityElement(){return!0}_refresh(){const e=this;e.innerHTML="",e._initialize(e.cell)}_createToggleButton(e,t){const l=this,a=document.createElement("div"),i=document.createElement("button"),r=document.createElement("div"),n=document.createElement("div"),s=document.createElement("div"),o=document.createElement("span"),d=t.grid;t.row.expanded?i.setAttribute("toggled",""):i.removeAttribute("toggled",""),i.tabIndex=-1,l.toggleButton=i,l.checkbox=s,e.appendChild(a),e.appendChild(n),n.setAttribute("content",""),a.setAttribute("indent",""),r.setAttribute("label",""),i.setAttribute("toggle-button",""),s.setAttribute("checkbox",""),s.setAttribute("role","checkbox"),l.setAttribute("has-toggle-button",""),n.appendChild(i),n.appendChild(s),o.classList.add("smart-input"),s.appendChild(o),d.checkBoxes.visible?o.classList.remove("smart-hidden"):o.classList.add("smart-hidden"),n.appendChild(r),l.content=r}_initialize(e){const t=this,l=document.createElement("div"),a=e.column,i=e.grid;t._properties=[],t.cell=e,t.appendChild(l);let r=!1;if(a&&a._treeColumn&&i.dataSource.boundHierarchy&&(r=!0,e.row.filterRow&&(r=!1),!i.grouping.enabled&&i.dataSource.groupBy&&i.dataSource.groupBy.length>0&&(r=!1),i.grouping.enabled&&i.dataSource.groupBy&&0===i.dataSource.groupBy.length&&(r=!1)),r)return t._createToggleButton(l,e),void(t.isRendered=!0);{const e=document.createElement("div");l.appendChild(e)}t.content=l,t.isRendered=!0}_renderCommands(){const e=this,t=e.cell.grid;if(t.__cellsCommandTemplate)return e.firstChild.innerHTML=t.__cellsCommandTemplate,void t._updateCommandColumnCommandsVisibility(e.firstChild,e.cell.row);const l=t._getCommandColumnCommandsTemplate();e.firstChild.innerHTML=l,t._updateCommandColumnCommandsVisibility(e.firstChild,e.cell.row),t.__cellsCommandTemplate=l}_renderGroupCell(){const e=this,t=e.cell.grid,l=e.cell.column,a=e.cell.row;[...e.attributes].forEach((t=>e.removeAttribute(t.name))),e.setAttribute("group","");const i=l===t._firstRenderedColumn;e.style.width!==l.computedWidth+"px"&&(e.style.width=l.computedWidth+"px"),i||(t.rightToLeft?e.style.right!==l.left+"px"&&(e.style.right=l.left+"px"):e.style.left!==l.left+"px"&&(e.style.left=l.left+"px")),e.classList.contains("smart-hidden")&&e.classList.remove("smart-hidden"),l===t._firstRenderedColumn||a.summaryRow||e.classList.add("smart-hidden"),l.autoGenerated&&(e.style.width="0px");let r=a.label;const n=function(e,t,l){if(!t)return[];for(let a=0;a<t.length;a++){const i=t[a];i.$&&!1===i.$.filtered||(void 0!==i[e]&&l.push(i),i.summaryRow||(i.children||i.data&&i.data.children)&&n(e,i.children,l))}return l};if(void 0!==a.label){let s="",o=[];if(t.grouping.summaryRow.visible){let r=[];const d={},c=i?l.summary.length>0?l.summary:["count"]:l.summary;c.length&&(r=n(l.dataField,a.summaryRow?a.parent.data.children:a.data.children,[])),d[l.dataField]=c;const m=c.length>0?t.dataSource.summarize([d],r):null;if(m)for(let r=0;r<c.length;r++){const n=c[r];r>0&&(s+=", ");let u=m[l.dataField][n];const p=l.cellsFormat;if(p&&(u=e.cell.getFormattedValue(u,p)),i){const i=t.columnByDataField[a.groupDataField];if(i){d[i.dataField]=c,m[i.dataField]=m[l.dataField],u=m[i.dataField][n];const t=i.cellsFormat;t&&(u=e.cell.getFormattedValue(u,t))}}s+=t.localize(n,{value:u}),o.push(m[l.dataField][n])}}if(t.dataSource.virtualDataSourceOnExpand&&(s=""),i){const l=t.columnByDataField[a.groupDataField],i=l?l.label:"";if("advanced"===t.grouping.renderMode){if(a.summaryRow)r="<div header group-advanced><span group></span><span value></span>",s&&(r+="<div summary>",r+=s,r+="</div>");else{let e=a.label?a.label:t.localize("blankSummary");a.label||"taskStatus"!==a.groupDataField||(e="");let n="";if(l&&l.editor&&l.editor.dataSource){const t=l.editor.dataSource.find((t=>t.value===e||t.label===e));t&&t.color?(n=`--smart-primary: ${t.color}`,t.label&&(e=t.label)):t&&t.label&&(e=t.label)}if(a.label||"taskStatus"!==a.groupDataField||(e=t.localize("uncategorized")),"object"==typeof e&&l.cellsFormat){const t=a.getCell(l.dataField);e=t.getFormattedValue(e,l.cellsFormat)}else if("object"==typeof e&&e&&e instanceof Date){const t=a.getCell(l.dataField);e=t.getFormattedValue(e,"d")}r=`<div style="${n}" header group-advanced><span group>${t.editing.addNewRow.visible?'<span add-row class="smart-grid-icon smart-icon-plus-circled show"></span>':""}${i}: </span><span value>${e}</span>`,s&&t.grouping.summaryRow.inline&&(r+="<span summary>",r+=""+s,r+="</span>")}r+="</div>",e.classList.add("smart-grid-column-border-collapse")}else if("compact"===t.grouping.renderMode){if(a.summaryRow)r="<div header><span group></span><span value></span>",s&&(r+="<div summary>",r+=s,r+="</div>");else{let e=a.label;if(l.displayField!==l.dataField&&a.data.data&&(e=a.data.data[l.displayField]),"object"==typeof e&&l.cellsFormat){e=a.getCell(l.dataField).getFormattedValue(e,l.cellsFormat)}r="<div header><span group>"+i+": </span><span value>"+e+"</span>",s&&t.grouping.summaryRow.inline&&(r+="<span summary>",r+=" ("+o+")",r+="</span>")}r+="</div>",e.classList.add("smart-grid-column-border-collapse")}else if("basic"===t.grouping.renderMode){if(r=a.label,l.displayField!==l.dataField&&a.data.data&&(r=a.data.data[l.displayField]),"object"==typeof r&&l.cellsFormat){r=a.getCell(l.dataField).getFormattedValue(r,l.cellsFormat)}a.summaryRow?s&&(r+="<div summary>",r+=s,r+="</div>"):s&&t.grouping.summaryRow.inline&&(r+="<span summary>",r+=" ("+o+")",r+="</span>"),e.classList.add("smart-grid-column-border-collapse")}else if("multipleColumns"===t.grouping.renderMode){if(r=a.label,"object"==typeof r&&l.cellsFormat){r=a.getCell(l.dataField).getFormattedValue(r,l.cellsFormat)}a.summaryRow?s&&(r+="<div summary>",r+=s,r+="</div>"):s&&t.grouping.summaryRow.inline&&(r+="<span summary>",r+=" ("+o+")",r+="</span>"),e.classList.add("smart-grid-column-border-collapse")}e.setAttribute("has-toggle-button","")}else e.removeAttribute("has-toggle-button",""),r=s}let s=e.firstChild;if(t.dataSource.boundHierarchy&&i){s.children.length<=1&&(e.innerHTML="<div></div>",s=e.firstChild,e._createToggleButton(s,e.cell),s=e.firstChild);const n=s.children[0],o=s.children[1].children[0],d=s.children[1].children[1].firstChild,c=s.children[1].children[2];n.setAttribute("indent",""),a.checked?d.setAttribute("checked",""):!1===a.checked?d.removeAttribute("checked"):null===a.checked&&d.setAttribute("checked","indeterminate"),a.leaf?o.classList.add("smart-visibility-hidden"):(o.classList.remove("smart-visibility-hidden"),a.expanded?o.setAttribute("toggled",""):o.removeAttribute("toggled",""));let m="";if(!l._treeColumn||a.summaryRow||a.filterRow?e.toggleButton.classList.add("smart-hidden"):e.toggleButton.classList.remove("smart-hidden"),l._treeColumn)if(t.grouping.enabled){let e=a.level-1;if(1+e===0)m+="",n.classList.add("smart-hidden");else{if("multipleColumns"===t.grouping.renderMode){let l=0;for(let a=0;a<t.columns.length;a++)a<1+e&&(l+=t.columns[a].computedWidth);m+='<div style="width: '+l+'px;"></div>'}else m+='<div style="width: '+(1+e)*t.grouping.groupIndent+'px;"></div>';n.classList.remove("smart-hidden")}}else for(let e=0;e<a.level;e++)m+="<div class='smart-indent'></div>";if(void 0===a.label||a.summaryRow||a.filterRow?o.classList.add("smart-hidden"):(o.classList.remove("smart-hidden"),o.style.marginLeft=""),n.innerHTML=m,c.innerHTML=r,i&&t.grouping.formatFunction){const i={row:a,column:l,groupDataField:a.groupDataField,cell:e.cell,value:r,template:null};t.grouping.formatFunction(i),i.value!==r?c.innerHTML=i.value:i.template&&(c.innerHTML=i.template)}t.appearance.showTooltips?c.setAttribute("title",a.label?a.label:t._unescapeString(r)):c.hasAttribute("title")&&c.removeAttribute("title")}else void 0!==a.label&&t.grouping.enabled&&!i&&(s.innerHTML=r);let o="smart-label";e.style.zIndex="";const d=t.editing.addNewColumn.visible?t._addNewColumn.width-1:0;if(i){const l=t.columnByDataField[a.groupDataField];l.cellsAlign&&(o+=" align-"+l.cellsAlign),l.cellsVerticalAlign&&(o+=" align-"+l.cellsVerticalAlign),e.setAttribute("header",""),a.summaryRow||(e.style.width="calc(100% - "+d+"px)"),void 0!==a.label&&(e.style.zIndex=11)}else l===t._firstRenderedColumn&&(e.style.zIndex=4),e.setAttribute("header",""),a.summaryRow||(e.style.width="calc(100% - "+d+"px)");if(a.summaryRow&&(e.setAttribute("header",""),e.classList.add("smart-grid-column-border-collapse"),l.cellsAlign&&(o+=" align-"+l.cellsAlign),l.cellsVerticalAlign&&(o+=" align-"+l.cellsVerticalAlign)),s.className!==o&&(s.className=o),l.formatFunction){const t={row:a,column:l,cell:e.cell,value:null,template:null,group:{value:r,template:null}};if(l.formatFunction(t),t.group.value!==r)if(l._treeColumn){s.children[1].children[2].innerHTML=t.group.value}else s.innerHTML=t.group.value;null!==t.group.template&&(s.innerHTML=t.group.template)}}_renderFilterCell(e){const t=this,l=t.cell.grid,a=t.cell.column;let i;const r=(e,t)=>{l._handleFilterMenuClick(e,t)};l._filterInfo||(l._filterInfo={},l._filterInfo.stringConditions=[{icon:"smart-icon-contains",command:r,value:"CONTAINS",label:l.localize("CONTAINS")},{icon:"smart-icon-does-not-contain",command:r,value:"DOES_NOT_CONTAIN",label:l.localize("DOES_NOT_CONTAIN")},{icon:"smart-icon-starts-with",command:r,value:"STARTS_WITH",label:l.localize("STARTS_WITH")},{icon:"smart-icon-ends-with",command:r,value:"ENDS_WITH",label:l.localize("ENDS_WITH")},{icon:"smart-icon-equals",command:r,value:"EQUAL",label:l.localize("EQUAL")},{icon:"smart-icon-delete",command:r,value:"CLEAR_FILTER",label:l.localize("CLEAR_FILTER")}],l._filterInfo.numberAndDateConditions=[{icon:"smart-icon-equals",command:r,value:"EQUAL",label:l.localize("EQUAL")},{icon:"smart-icon-not-equal",command:r,value:"NOT_EQUAL",label:l.localize("NOT_EQUAL")},{icon:"smart-icon-less-than",command:r,value:"LESS_THAN",label:l.localize("LESS_THAN")},{icon:"smart-icon-less-than-equal",command:r,value:"LESS_THAN_OR_EQUAL",label:l.localize("LESS_THAN_OR_EQUAL")},{icon:"smart-icon-greater-than",command:r,value:"GREATER_THAN",label:l.localize("GREATER_THAN")},{icon:"smart-icon-greater-than-equal",command:r,value:"GREATER_THAN_OR_EQUAL",label:l.localize("GREATER_THAN_OR_EQUAL")},{icon:"smart-icon-between",command:r,value:"RANGE",label:l.localize("RANGE")},{icon:"smart-icon-delete",command:r,value:"CLEAR_FILTER",label:l.localize("CLEAR_FILTER")}]),i="string"===a.dataType?l._filterInfo.stringConditions:l._filterInfo.numberAndDateConditions;let n="smart-icon-search";if(a._filterInfo||(a._filterInfo={condition:""}),a.filterEditor&&a.filterEditor.condition&&(a._filterInfo.condition=a.filterEditor.condition),a.filterEditor&&a.filterEditor.value&&(a._filterInfo.value=a.filterEditor.value),a._filterInfo.dataSource=i,null===a._filterInfo.condition||void 0===a._filterInfo.condition)a._filterInfo.condition="",n="smart-icon-search";else switch(a._filterInfo.condition.toLowerCase()){case"equal":n="smart-icon-equals";break;case"starts_with":n="smart-icon-starts-with";break;case"ends_with":n="smart-icon-ends-with";break;case"not_equal":n="smart-icon-not-equal";break;case"less_than":n="smart-icon-less-than";break;case"less_than_or_equal":n="smart-icon-less-than-or-equal";break;case"greater_than":n="smart-icon-greater-than";break;case"greater_than_or_equal":n="smart-icon-greater-than-or-equal";break;case"contains":n="smart-icon-contains";break;case"does_not_contain":n="smart-icon-does-not-contain";break;case"range":n="smart-icon-between";break;default:n="smart-icon-search"}let s=`<div class="smart-filter-input-type"><i class="smart-grid-icon ${n} show"></i></div> `;if("string"===a.dataType)s+=`<input class="smart-filter-input-value" data-type="${a.dataType}" /> `,e.innerHTML=s;else if("date"===a.dataType){const i=new Smart.Utilities.DateTime;s+=`<input placeholder = "${i.expandFormat(i.calendar,a.cellsFormat||"d")}" class="smart-filter-input-value" data-type="${a.dataType}"/><div class="smart-filter-input-type"><i class="smart-grid-icon smart-icon-calendar show"></i></div>`,e.innerHTML=s,e.lastElementChild.onpointerdown=function(){l._handleFilterCalendarCellClick(t.cell)}}else if("number"===a.dataType)s+='<div class="smart-grid-cell-editor smart-filter-input-value smart-grid-number-input-cell-editor"><input class="smart-input" type="number"><div tabindex="-1" class="nav"><div tabindex="-1" class="up"></div><div tabindex="-1" class="down"></div></div></div>',e.innerHTML=s,l._handleFilterNumberCellEditor(this.cell,e);else if("boolean"===a.dataType||"bool"===a.dataType){const i=document.createElement("div");i.classList.add("smart-input"),i.classList.add("smart-grid-check-box-cell-editor"),i.classList.add("smart-filter-input-value"),e.tabIndex=0,e.style.outline="none",t.setAttribute("template","checkBox"),i.setAttribute("checked","indeterminate"),a._filterInfo&&a._filterInfo.value?i.setAttribute("checked",""):a._filterInfo&&!1===a._filterInfo.value&&i.removeAttribute("checked"),s=i.outerHTML,e.innerHTML=s,e.classList.add("align-center"),e.classList.add("smart-label"),e.onfocus=()=>{e.setAttribute("focus","")},e.onblur=()=>{e.removeAttribute("focus","")},e.onclick=e=>{e.target.classList.contains("smart-input")&&l._handleFilterCellCheckBoxClick(this.cell)}}const o=e.querySelector("input");if(o&&(e.firstElementChild.onpointerdown=function(){l._handleFilterCellIconClick(this.cell)}.bind(this),o.onpaste=function(e){setTimeout((()=>{l._handleFilterCellKeyUp(this.cell,e)}))}.bind(this),o.onfocus=function(){l._handleFilterCellFocus(this.cell)}.bind(this),o.onblur=function(){l._handleFilterCellBlur(this.cell)}.bind(this),o.onkeyup=function(e){l._handleFilterCellKeyUp(this.cell,e)}.bind(this),o.onkeydown=function(e){l._handleFilterCellKeyDown(this.cell,e)}.bind(this)),e.classList.add("smart-filter-input-container"),a._filterInfo.input=o,a._filterInfo.cell=t.cell,a._filterInfo.editor=e,a._filterInfo.value&&o&&(o.value=a._filterInfo.value,"date"===a.dataType&&(o.value=t.cell.getFormattedValue(a._filterInfo.value,a.cellsFormat))),a.allowFilter||(o.disabled=!0),a.filterEditor)if(a.filterEditor.template){const t=a.filterEditor.template,l=document.createElement("div");a.filterTemplate instanceof HTMLTemplateElement?l.appendChild(t.content.cloneNode(!0)):t instanceof HTMLElement?l.appendChild(t):l.innerHTML=t,e.innerHTML="",e.appendChild(l),l.style.height="100%",l.style.width="100%";const i=e.querySelector("input");i&&(i.onfocus=()=>{e.setAttribute("focus","")},i.onblur=()=>{e.removeAttribute("focus","")}),a.filterEditor.onInit&&a.filterEditor.onInit(a,l)}else void 0!==a.filterEditor.min&&(o.min=a.filterEditor.min),void 0!==a.filterEditor.max&&(o.max=a.filterEditor.max),void 0!==a.filterEditor.minLength&&(o.minLength=a.filterEditor.minLength),void 0!==a.filterEditor.maxLength&&(o.maxLength=a.filterEditor.maxLength),void 0!==a.filterEditor.placeholder&&(o.placeholder=a.filterEditor.placeholder),void 0!==a.filterEditor.value&&(o.value=a.filterEditor.value),void 0!==a.filterEditor.step&&(o.step=a.filterEditor.step),void 0!==a.filterEditor.disabled&&(o.disabled=a.filterEditor.disabled),void 0!==a.filterEditor.condition&&(a._filterInfo.condition=a.filterEditor.condition),a.filterEditor.onInit&&a.filterEditor.onInit(a,e)}_setTemplate(t,l,a){const i=this,r=i.cell.grid,n=i.cell.column;let s=null;switch((!r.editing.enabled||!n.allowEdit||i.cell.readonly||"none"===r.editing.action||r.editing.enabled&&r.editing.commandColumn.visible&&r.editing.editRow!==i.cell.row)&&i.setAttribute("readonly",""),l){case"checkBox":case"radioButton":case"switchButton":if(a.firstElementChild&&a.firstElementChild.classList.contains("smart-input"))return s=a.firstElementChild,t?s.setAttribute("checked",""):null===t?s.setAttribute("checked","indeterminate"):s.removeAttribute("checked"),void i.setAttribute("template",i.cell.template);s=document.createElement("span"),s.className="smart-input",t?s.setAttribute("checked",""):null===t?s.setAttribute("checked","indeterminate"):s.removeAttribute("checked"),i.setAttribute("template",i.cell.template),a.innerHTML="",a.appendChild(s),i.cell._setStyle(a);break;case"checklist":if(t&&t.indexOf("[")>=0&&(t=JSON.parse(t)),a.firstElementChild&&a.firstElementChild.hasAttribute("value")){const e=a.firstElementChild.getAttribute("value");if(t&&e===t.length)return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}if(t&&Array.isArray(t)&&t.length>0){const e=t.filter((e=>e.completed)).length,l=["#D50000","#F4511E","#F6BF26","#33B679"],a=e+"/"+t.length;let i=l[0];e===t.length?i=l[3]:e>0&&e<t.length&&(i=l[2]),t=`<div style="display: grid; grid-template-columns: 25px auto"><div style="margin-left: 4px; align-self: center; border-radius: 50%; display: flex; align-content: center; background: ${i}; width:16px; height: 16px;"><span title="${a}" style="align-content: center; font-size: 13px; color: white;" class="smart-grid-icon show smart-icon-check"></span></div>${a}</span></div>`}else t="";s=document.createElement("span"),s.innerHTML=t,i.setAttribute("template",i.cell.template),s.setAttribute("value",t.length);break;case"createdBy":case"updatedBy":{const e=i.cell.row;let t=null,o=null;if(t="createdBy"===l?e.createdBy:e.updatedBy,a.firstElementChild&&a.firstElementChild.hasAttribute("user-id")){if(t===parseInt(a.firstElementChild.getAttribute("user-id")))return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template);if(null!=t&&-1!==t){o=r.users.find((e=>e.id===t));const e=o;if(e){const l=a.firstElementChild.firstElementChild&&a.firstElementChild.firstElementChild.firstElementChild?a.firstElementChild.firstElementChild.firstElementChild.firstElementChild:null;if(l){a.firstElementChild.setAttribute("user-id",t);const i="string"==typeof e?e:e.name,r="string"==typeof e?null:e.color;if(("string"==typeof e?null:e.image)&&(l.firstElementChild.style.backgroundImage=`url('${e.image}')`),r){const e=new Smart.Color(r).getInvertedColor();l.setAttribute("data-item",i),l.setAttribute("title",i),l.setAttribute("backgroundColor",r),l.setAttribute("color",e),l.lastElementChild.textContent=i}else l.setAttribute("data-item",i),l.setAttribute("title",i),l.setAttribute("backgroundColor",""),l.setAttribute("color","");return}}}}const d=document.createElement("div");d.classList.add("smart-multi-combo-input"),d.setAttribute("data-field",n.dataField),d.setAttribute("row-id",i.cell.row.id),d.style.width="100%",d.style.paddingRight="6px";let c='<div class="smart-flex smart-flex-auto smart-tokens-layout">';if(null!=t&&-1!==t){o=r.users.find((e=>e.id===t));const e=o;if(e){const t="string"==typeof e?e:e.name,l="string"==typeof e?null:e.color,a="string"==typeof e?null:e.image,i=document.createElement("span");if(a&&(i.style.backgroundImage=`url('${e.image}')`,i.className="smart-drop-down-list-selection-image"),l){c+='<span title="'+t+'" data-item="'+t+'" style="background: '+l+"; color: "+new Smart.Color(l).getInvertedColor()+'; overflow: visible;" class="smart-truncate smart-token">'+i.outerHTML+"<span class='smart-drop-down-list-selection-label' role=\"presentation\">"+t+"</span></span>"}else c+='<span title="'+t+'" data-item="'+t+'" class="smart-truncate smart-token">'+i.outerHTML+"<span class='smart-drop-down-list-selection-label' role=\"presentation\">"+t+"</span></span>"}else c=""}d.innerHTML=c+"</div>";const m=document.createElement("div");m.classList.add("smart-multi-combo-input-container","tokens","smart-flex","smart-flex-auto"),d.classList.add("smart-flex-auto"),m.appendChild(d),s=m,s.setAttribute("user-id",t),i.setAttribute("template",i.cell.template);break}case"collaborator":case"tags":{let e=[];"number"==typeof t&&(t=""+t);let o=!1===r.editing.enabled?"smart-visibility-hidden":"",d=n.editor.dataSource&&n.editor.dataSource.length;if(n.editor.collaborator&&(d=r.users&&r.users.length),d||(o="smart-visibility-hidden"),""===t||null===t||"uncategorized"===t){let e=`\n <div class="smart-multi-combo-input-container tokens smart-flex smart-flex-auto" data-field="${n.dataField}" row-id="${i.cell.row.id}"> \n <div class="smart-multi-combo-input" data-field="${n.dataField}" row-id="${i.cell.row.id}" class="tokens smart-flex smart-flex-auto">\n <div class=" smart-flex-auto smart-flex"></div>\n </div>\n <span class="smart-arrow-down arrowbtn ${o}"></span>\n </div>\n `;a.innerHTML!==e&&(a.firstElementChild&&a.firstElementChild.firstElementChild&&a.firstElementChild.firstElementChild.firstElementChild&&""===a.firstElementChild.firstElementChild.firstElementChild.textContent?(a.firstElementChild.setAttribute("row-id",i.cell.row.id),a.firstElementChild.firstElementChild.setAttribute("row-id",i.cell.row.id)):a.innerHTML=e);const t=a.querySelector(".smart-arrow-down");return t&&(t.onpointerdown=e=>{if(r.editing.enabled){const t=e.target.previousElementSibling,l=t.getAttribute("data-field"),a=t.closest("smart-grid-row").getAttribute("data-id");r.beginEdit(a,l)}e.stopPropagation(),e.preventDefault()}),i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}if(null!==t&&(e=Array.isArray(t)?e.map((e=>e.trim())):t.indexOf("{")>=0||"[]"===t?JSON.parse(t):t.split(",").map((e=>e.trim()))),a.firstElementChild&&a.firstElementChild.hasAttribute("value")&&n.editor._items){if(a.firstElementChild.getAttribute("value")===t){if(i.cell._setStyle(a),i.setAttribute("template",i.cell.template),a.firstElementChild&&a.firstElementChild.firstElementChild&&a.firstElementChild.firstElementChild.firstElementChild)if(a.firstElementChild.firstElementChild.firstElementChild.classList.remove("smart-flex-wrap"),i.cell.row.height>45){a.firstElementChild.firstElementChild.firstElementChild.classList.add("smart-flex-wrap");const e=a.firstElementChild.firstElementChild.firstElementChild;if(e.children&&e.children.length>1)for(let t=0;t<e.children.length;t++)e.children[t].style.maxWidth&&(e.children[t].style.maxWidth="")}else if(r.layout.rowHeight<=45&&i.cell.row.height<=45){const e=a.firstElementChild.firstElementChild.firstElementChild;if(e.children&&e.children.length>1){const t=parseInt(n.computedWidth/e.children.length)-5;let l=0;for(let t=0;t<e.children.length;t++)l+=e.children[t].textContent.length,e.children[t].style.maxWidth="";if(14*l*.52+20*e.children.length>n.computedWidth)for(let l=0;l<e.children.length;l++)e.children[l].style.maxWidth=t+"px"}}return}}const c=document.createElement("div");c.classList.add("smart-multi-combo-input"),c.setAttribute("data-field",n.dataField),c.setAttribute("row-id",i.cell.row.id);let m='<div class="smart-tokens-layout smart-flex smart-flex-auto">';if(e.length>2&&i.cell.row.height>45){m='<div style="max-width: '+(n.computedWidth-10+"px")+'" class="smart-flex smart-flex-wrap">'}let u=0;if(t)for(let t=0;t<e.length;t++){const a=e[t];let i=null;if("collaborator"===l||n.editor&&n.editor.collaborator)i=r.users.find((e=>{if("string"==typeof a||"number"==typeof a){if(e.value===a||parseInt(e.value)===parseInt(a))return e;if(e.id===a||parseInt(e.id)===parseInt(a))return e}else if("object"==typeof a&&e.value===a.value)return e})),i&&(i.label=i.name);else if(n.editor.dataSource)if("string"==typeof a&&n.editor._items&&n.editor._items[a])i=n.editor._items[a];else for(let e=0;e<n.editor.dataSource.length;e++){const t=n.editor.dataSource[e];if(void 0!==t.value&&void 0!==a&&void 0!==a.value&&t.value===a.value){i=t,n.editor._items||(n.editor._items=[]),n.editor._items[a]=t;break}if(void 0===t.value&&t===a||void 0!==t.value&&""+t.value===a){i=t,n.editor._items||(n.editor._items=[]),n.editor._items[a]=t;break}}else i=a;if(!i)continue;const s="string"==typeof i?i:i.label,o="string"==typeof i?null:i.color,d="string"==typeof i?null:i.image;if(""===s)continue;const c=document.createElement("span");d&&(c.style.backgroundImage=`url('${i.image}')`,c.className="smart-drop-down-list-selection-image");const p="smart-truncate";if(o&&n.editor.colorItems){m+='<span title="'+s+'" data-item="'+s+'" style="background: '+o+"; color: "+new Smart.Color(o).getInvertedColor()+'; overflow: visible;" class="'+p+' smart-token">'+c.outerHTML+"<span class='smart-drop-down-list-selection-label' role=\"presentation\">"+s+"</span>"}else m+='<span title="'+s+'" data-item="'+s+'" class="'+p+' smart-token">'+c.outerHTML+"<span class='smart-drop-down-list-selection-label' role=\"presentation\">"+s+"</span>";if(u+=s.length,n.editor.dataSource){if(n.editor.singleSelect){m+="</span>";break}m+='<span class=\'smart-hidden smart-drop-down-list-unselect-button\' role="button" aria-label="Unselect"></span></span>'}else m+="</span>"}c.innerHTML=m+"</div>";const p=14*u*.52,g=c.firstElementChild;if(r.layout.rowHeight<=45&&i.cell.row.height<=45&&c&&g.children.length>1&&p+20*g.children.length>n.computedWidth){const e=parseInt(n.computedWidth/g.children.length)-5;for(let t=0;t<g.children.length;t++)g.children[t].style.maxWidth=e+"px"}if(c.style.width="100%",i.onmouseenter=()=>{c.style.width="calc(100% - 25px)"},i.onmouseleave=()=>{c.style.width="100%"},c.style.paddingRight="6px",c.onpointerdown=t=>{if(!r._mobile)if(t.target&&"#text"!==t.target.nodeName&&t.target.classList.contains("smart-drop-down-list-unselect-button")){let l=t.target.parentNode.getAttribute("data-item");if(n.editor.dataSource&&"string"==typeof l&&n.editor.dataSource)for(let e=0;e<n.editor.dataSource.length;e++)n.editor.dataSource[e].label===l&&(l=n.editor.dataSource[e],l.value&&(l=l.value));if(e[0]&&e[0].label){const a=e.map((e=>e.value)).indexOf(l);if(a>=0){e.splice(a,1);const l=i.cell.value,s=e.join(", ");r.setCellValue(i.cell.row.id,n.dataField,JSON.stringify(e)),r.onCellUpdate&&r.onCellUpdate([i.cell],[l],[s],(function(){}),i),t.preventDefault(),t.stopPropagation()}}else if(e.indexOf(l)>=0){e.splice(e.indexOf(l),1);const a=i.cell.value,s=e.join(", ");r.setCellValue(i.cell.row.id,n.dataField,s),r.onCellUpdate&&r.onCellUpdate([i.cell],[a],[s],(function(){}),i),t.preventDefault(),t.stopPropagation()}}else if(t.target.classList.contains("smart-drop-down-list-selection-label")){if(r.editing.enabled){const e=t.target.parentElement.parentElement,l=e.getAttribute("data-field"),a=e.getAttribute("row-id");r.beginEdit(a,l)}t.stopPropagation(),t.preventDefault()}},!n.cellsWrap&&n.allowEdit&&r.editing.enabled&&"card"!==r.view){const t=document.createElement("span");t.classList.add("smart-arrow-down","arrowbtn");let l=n.editor.dataSource&&n.editor.dataSource.length;n.editor.collaborator&&(l=r.users&&r.users.length),l||t.classList.add("smart-visibility-hidden");const a=document.createElement("div");a.classList.add("smart-multi-combo-input-container","tokens","smart-flex","smart-flex-auto"),c.classList.add("smart-flex-auto"),c.classList.remove("smart-flex-wrap"),e.length>2&&r.layout.rowHeight>45&&(c.classList.add("smart-flex-wrap"),c.style.maxWidth=n.computedWidth-10+"px"),r.rightToLeft&&(c.style.direction="rtl"),a.appendChild(c),"input"!==n.editor.template&&a.appendChild(t),s=a,t.onpointerdown=e=>{if(!r._mobile){if(r.editing.enabled){const t=e.target.previousElementSibling,l=t.getAttribute("data-field"),a=t.closest("smart-grid-row").getAttribute("data-id");r.beginEdit(a,l)}e.stopPropagation(),e.preventDefault()}}}else if(n.cellsWrap||n.allowEdit){const t=document.createElement("div");t.classList.add("smart-multi-combo-input-container","tokens","smart-flex","smart-flex-auto"),c.classList.add("smart-flex-auto"),c.classList.remove("smart-flex-wrap"),e.length>2&&r.layout.rowHeight>45&&(c.classList.add("smart-flex-wrap"),c.style.maxWidth=n.computedWidth-10+"px"),r.rightToLeft&&(c.style.direction="rtl"),t.appendChild(c),s=t}else c.classList.add("smart-flex-auto"),s=c;i.setAttribute("template",i.cell.template),s.setAttribute("value",t);break}case"dropdownGrid":case"dropDownList":case"dropdownlist":case"list":{const e=document.createElement("div");if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")){if(a.firstElementChild.getAttribute("value")===t)return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}if("dropdownGrid"===i.cell.template){const l=i.cell.column.templateSettings.dataFields,a=i.cell.editor.dataSource[t],r="#D0F0FD";e.classList.add("smart-flex","center"),e.style.setProperty("--smart-primary",r);const n=new Smart.Color(r).getInvertedColor();if(e.style.color=n,e.onmouseenter=()=>{e.querySelectorAll("i").forEach((e=>e.classList.add("show")))},e.onmouseleave=()=>{e.querySelectorAll("i").forEach((e=>e.classList.remove("show")))},a){e.style.justifyContent="space-between";let t="";for(let e=0;e<l.length;e++){t+='<span style="color: inherit;" class="smart-truncate smart-token smart-flex middle center ">'+a[l[e]]+"</span>"}e.innerHTML=t}else e.style.justifyContent="",e.innerHTML='<span class="smart-truncate"></span>'}else"card"===r.view?e.textContent=t:e.innerHTML='<span class="smart-truncate">'+t+"</span>";if(n.allowEdit&&r.editing.enabled&&"card"!==r.view){const t=document.createElement("span");t.classList.add("smart-arrow-down","arrowbtn");const l=document.createElement("div");l.classList.add("smart-multi-combo-input-container","tokens","smart-flex","smart-flex-auto"),e.classList.add("smart-flex-auto","smart-multi-combo-input"),l.appendChild(e),l.appendChild(t),l.classList.add(i.cell.template.toLowerCase()),s=l,t.onpointerdown=e=>{if(!r._mobile){if(r.editing.enabled){const t=e.target.closest("smart-grid-cell"),l=e.target.closest("smart-grid-row"),a=t.getAttribute("data-field"),n=l.getAttribute("data-id");if(r.beginEdit(n,a),i.cell.column.editor&&i.cell.column.editor.instance){const e=i.cell.column.editor,t=e.instance.element;!e.autoOpen&&t.open?t.open():!e.autoOpen&&t.firstElementChild&&t.firstElementChild.open&&setTimeout((()=>{t.firstElementChild.open()}),250)}}e.stopPropagation(),e.preventDefault()}}}else s=e;i.setAttribute("template",i.cell.template.toLowerCase()),s.setAttribute("value",t);break}case"password":a.innerHTML=t?'<span class="smart-truncate">'+t.replace(/./g,"*")+"</span>":"",i.setAttribute("template",i.cell.template);break;case"richText":if(a.innerHTML=t?'<div class="textwrap" style="height: 100%; padding-left: 5px;">'+r._unescapeString(t)+"</div>":"",r.layout.autoWrap&&i.cell.row.height>40&&1===i.cell.colSpan&&"string"===n.dataType){null==t&&(t="");if(14*t.length*.52>n.computedWidth){const e=parseInt(i.cell.row.height/20);a.firstElementChild.style["-webkit-line-clamp"]=e}}i.setAttribute("template",i.cell.template);break;case"color":a.innerHTML=`<span style="left: calc(50% - 12px); top: calc(50% - 12px); position: absolute; border-radius: 50%; width: 24px; height: 24px; display: block; background:${t};"></span>`,i.setAttribute("template",i.cell.template);break;case"autoNumber":s=document.createElement("span"),s.innerHTML=1+i.cell.row.visibleIndex,i.setAttribute("template",i.cell.template);break;case"uuid":{if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")){const e=a.firstElementChild.getAttribute("value");if(t===e)return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}s=document.createElement("span"),s.style.paddingLeft="7px";const e=r._generateUUID(),l=i.cell.canNotify;i.cell.canNotify=!1,t||(i.cell.value=e,r.onCellUpdate&&!r.editing.editRow&&r.onCellUpdate([i.cell],[e],[e],(function(){r.onCellUpdated&&r.onCellUpdated([i.cell.row.index],[i.cell.row],[i.cell.column],[i.cell.row.data],[i.cell.value],[i.cell.value],i)}),i)),s.textContent=i.cell.value,i.cell.canNotify=l,i.setAttribute("template",i.cell.template),s.setAttribute("value",e);break}case"ai":{if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")){const e=a.firstElementChild.getAttribute("value");if(t===e)return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}const e=(e,t)=>{const l=r.ai.url,a=r.ai.key;e.stopPropagation(),e.preventDefault();const i=e.target.closest("smart-grid-cell"),n=e.target.closest("smart-grid-row"),o=i.getAttribute("data-field"),d=n.getAttribute("data-id");t?(e.target.classList.remove("smart-icon-reload"),e.target.classList.add("smart-grid-loading")):e.target.classList.add("smart-grid-loading");let c=""+r.columnByDataField[o].AIQuery;r.columnByDataField[c]&&(c=""+r.getCellValue(d,c)),c&&l&&a?async function(e){const t=await fetch(l,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a}`},body:JSON.stringify({model:r.ai.model,prompt:e,max_tokens:r.ai.tokens,temperature:r.ai.temperature})});if(!t.ok)throw new Error(`Error: ${t.statusText}`);return(await t.json()).choices[0].text.trim()}(c).then((e=>{const t=e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;");r.setCellValue(d,o,t),s.setAttribute("value",t)})).catch((e=>{console.error("Error:",e)})):(r.setCellValue(d,o,r.localize("noResults")),s.setAttribute("value",r.localize("noResults")))};if(t){s=document.createElement("span"),s.style.paddingLeft="7px";const l=i.cell.canNotify;i.cell.canNotify=!1,s.textContent=i.cell.value,i.cell.canNotify=l;const a=document.createElement("span");s.appendChild(a),a.classList.add("smart-grid-icon","show","smart-icon-reload","smart-visibility-hidden"),a.style.position="absolute",a.style.right=a.style.top="0px",s.onmouseenter=()=>{a.classList.remove("smart-visibility-hidden")},s.onmouseleave=()=>{a.classList.add("smart-visibility-hidden")},a.onpointerdown=t=>{e(t,!0)},i.setAttribute("template",i.cell.template),s.setAttribute("value",t)}else s=document.createElement("div"),s.classList.add("smart-flex","center","middle"),s.style.height="100%",s.innerHTML=`<button style="height: 24px; padding-inline: 24px; padding-block: 2px;" class="smart-button" type="button">${r.localize("generate")}</button\n `,s.onpointerdown=t=>{e(t)},i.setAttribute("template",i.cell.template);break}case"createdDate":case"createdTime":{const e=i.cell.getFormattedValue(i.cell.row.createdDate,"d"),t=i.cell.getFormattedValue(i.cell.row.createdDate,"t");if(a.firstElementChild&&a.firstElementChild.hasAttribute("created-date")){const l=e+" "+t;l!==a.firstElementChild.textContent&&(a.firstElementChild.textContent=l)}else a.innerHTML='<span created-date class="align-left smart-truncate">'+e+" "+t+"</span>";i.cell._setStyle(a),i.setAttribute("template",i.cell.template);break}case"updatedDate":case"updatedTime":if(i.cell.row.updatedDate){const e=i.cell.getFormattedValue(i.cell.row.updatedDate,"d"),t=i.cell.getFormattedValue(i.cell.row.updatedDate,"t");if(a.firstElementChild&&a.firstElementChild.hasAttribute("updated-date")){const l=e+" "+t;l!==a.firstElementChild.textContent&&(a.firstElementChild.textContent=l)}else a.innerHTML='<span updated-date class="align-left smart-truncate">'+i.cell.getFormattedValue(i.cell.row.updatedDate,"d")+" "+i.cell.getFormattedValue(i.cell.row.updatedDate,"t")+"</span>"}else a.innerHTML="";i.cell._setStyle(a),i.setAttribute("template",i.cell.template);break;case"progress":{const e=t?parseInt(100*t)+"%":"0%";if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")){if(e===a.firstElementChild.getAttribute("value"))return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}const l="white",r=["#D50000","#F4511E","#F6BF26","#33B679"];let n=r[0];n=t<.25?r[0]:t<.5?r[1]:t<.75?r[2]:r[3],a.innerHTML='<div value="'+e+'" style="padding-left: 5px; padding-right: 5px; display: grid; grid-template-columns: 1fr auto"><div style="height: 100%; display: flex; align-items: center; width: '+e+';"><div title="'+e+'" style="width: 100%; height: 4px; background: '+n+"; color: "+l+';" class="smart-truncate smart-token"></div></div><span>'+e+"</span></div>",i.setAttribute("template",i.cell.template);break}case"rating":{const e=i.cell.column.editor.max?i.cell.column.editor.max:5,l=t?parseInt(t):0;if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")){if(l===parseInt(a.firstElementChild.getAttribute("value")))return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template);a.firstElementChild.setAttribute("value",l);for(let t=0;t<e;t++){const e=a.firstElementChild.children[t];let i="";l>0&&l>t&&(i="value"),i?e.classList.add("value"):e.classList.remove("value")}return void i.setAttribute("template",i.cell.template)}const n=t=>{let l="";for(let a=0;a<e;a++){let e="";t>0&&t>a&&(e="value"),l+=`<div rating-value title="${a+1}" value="${a+1}" class="smart-grid-icon show smart-icon-star ${e}"></div>`}return l};a.innerHTML=`<div value="${l}" class="rating">${n(l)}</div>`;const s=e=>{if(!r._mobile&&e.hasAttribute("rating-value")){const t=e.getAttribute("value"),l=e.closest("smart-grid-cell"),a=e.closest("smart-grid-row");if(l&&a){const e=l.querySelector(".rating"),s=a.getAttribute("data-id"),o=l.getAttribute("data-field"),d=r.rowById[s],c=r.getCellValue(s,o),m=l.cell;let u=null;r.storeHistory&&(u=r._stringifyRow(d)),c===t?(a.row.data[o]=0,e.innerHTML=n(0),e.setAttribute("value",0)):(a.row.data[o]=parseInt(t),e.innerHTML=n(parseInt(t)),e.setAttribute("value",t));const p=a.row.data[o];r._setCellUndoRedo(m,c,p),r.onCellUpdate&&r.onCellUpdate([m],[c],[p],(function(e){r.onCellUpdated&&r.onCellUpdated([m.row.index],[m.row],[m.column],[m.row.data],[c],[p],i),r._onCellUpdated&&r._onCellUpdated(m.row.index,m.row,m.column,m.row.data,c,p)}),i);const g=e=>{if(e!==c&&(d.updatedDate=new Date,d.updatedBy=i.currentUser,r.storeHistory)){const t=r._stringifyRow(d);t[m.column.dataField]=e,r._updateRowHistory(d,u,t)}};if(r.onCellUpdate&&r.onRowHistory){const e=r.onRowHistory;r.onRowHistory=null,g(p),setTimeout((()=>{r.onRowHistory=e}),100)}else g(p);const h=l.querySelector(".rating"),f=parseInt(t)-1;h.children[f].classList.add("down"),setTimeout((()=>{h.children[f].classList.remove("down")}),1e3)}}},o=(e,t=!0)=>{if(e&&[...e.querySelectorAll(".smart-icon-star")].forEach((e=>{e.classList.remove("hover")})),e.hasAttribute("value")){const l=[...e.parentElement.children],a=l.indexOf(e);l.forEach(((e,l)=>{e.classList.remove("hover"),l<=a&&t&&e.classList.add("hover")}))}};r.handleRatingClick||(r._handleRatingMove=o,r._handleRatingClick=s),a.firstElementChild.onpointerdown=e=>{s(e.target)},a.firstElementChild.onpointermove=e=>{o(e.target)},a.firstElementChild.onpointerleave=e=>{o(e.target)},i.setAttribute("template",i.cell.template);break}case"duration":{const e=t;if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")){if(e===a.firstElementChild.getAttribute("value"))return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}if(t){const e=864e5;let l="MMM dd",n="MMM dd";if("string"==typeof t[0]&&(Array.isArray(t)?(t[0]=new Date(t[0]),t[1]=new Date(t[1])):((t=t.split(","))[0]=new Date(t[0]),t[1]=new Date(t[1]))),Array.isArray(t)){t[0]&&"string"==typeof t[0]&&(t[0]=new Date(t[0])),t[1]&&"string"==typeof t[1]&&(t[1]=new Date(t[1])),t[1]&&t[1].getMonth()===t[0].getMonth()&&(n="dd"),t[0]&&t[0].getFullYear()!==(new Date).getFullYear()&&(l+=", yyyy","dd"===n?(l="MMM dd",n+=", yyyy"):n=l);let s=!1;t[0]&&(0===t[0].getHours()&&0===t[0].getHours()||(l+=" hh:mm","dd"===n?n=l:n+=" hh:mm",s=!0));let o=null;o=Math.round(t[1].getTime()-t[0].getTime())/e;const d=o?parseInt(Math.abs(o).toFixed(0)):0;if(d>0){const e=i.cell.getFormattedValue(t[0],l)+" - "+i.cell.getFormattedValue(t[1],n);let s="";s=r.localize("days",{value:d}),a.innerHTML=`<div style="display: grid; grid-template-columns: 5px auto 25px"><span></span><span>${e}</span><span style="font-size: 11px;" class="smart-quiet">${s}</span></div>`}else{let e="";if(s){const r=t[1]-t[0],n=Math.floor(r%864e5/36e5);let s=Math.round(r%864e5%36e5/6e4);s<10&&(s+="0"+s),e=n+":"+s;const o=i.cell.getFormattedValue(t[0],l)+" - "+i.cell.getFormattedValue(t[1],"hh:mm");a.innerHTML=`<div style="display: grid; grid-template-columns: 5px auto 25px"><span></span><span>${o}</span><span style="font-size: 11px;" class="smart-quiet">${e}</span></div>`}else{const r=i.cell.getFormattedValue(t[0],l);a.innerHTML=`<div style="display: grid; grid-template-columns: 5px auto 25px"><span></span><span>${r}</span><span style="font-size: 11px;" class="smart-quiet">${e}</span></div>`}}}}else a.innerHTML="";i.setAttribute("template",i.cell.template),a.firstElementChild&&a.firstElementChild.setAttribute("value",e);break}case"startDate":{const e=t;if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")){if(e===a.firstElementChild.getAttribute("value"))return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}let l=t;if(n.cellsFormat?l=i.cell.getFormattedValue(t,n.cellsFormat):n.formatSettings&&n.formatSettings.Intl&&(l=i.cell.getFormattedValue(t,n.formatSettings.Intl)),t){const e=864e5,s="string"==typeof t?new Date(t):t;let o=r.columnByDataField.taskDueDate;n.editor.boundDateField&&(o=r.columnByDataField[n.editor.boundDateField]);const d=o?i.cell.row.data[o.dataField]:"";let c=null;d&&(c=Math.round(s.getTime()-d.getTime())/e);const m=c?parseInt(Math.abs(c).toFixed(0)):0;if(m>0){let e="";e=r.localize("days",{value:m}),a.innerHTML=`<div style="display: grid; grid-template-columns: 25px auto 25px"><span style="color: var(--smart-primary);" title="${e}" class="smart-icon-clock smart-grid-icon show"></span><span>${l}</span><span style="font-size: 11px;" class="smart-quiet">${e}</span></div>`}else a.innerHTML='<div style="padding-left: 6px;">'+l+"</div>"}else a.innerHTML="";i.setAttribute("template",i.cell.template),i.setAttribute("value",e);break}case"dueDate":{const e=t;if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")){if(e===a.firstElementChild.getAttribute("value"))return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}const l=["#D50000","#F4511E","#F6BF26","#33B679"],s=new Date;s.setHours(0,0,0);let o=t;n.cellsFormat?o=i.cell.getFormattedValue(t,n.cellsFormat):n.formatSettings&&n.formatSettings.Intl&&(o=i.cell.getFormattedValue(t,n.formatSettings.Intl));const d=(e,t)=>{const l=e<=8?e/8:1;return`<div title="${t}" class="smart-element smart-circular-progress-bar" style="background: inherit; padding-left:4px; position: relative; top: calc(50% - 12px); padding-top:4px; width: 20px; height: 20px;">\n <div class="smart-container">\n <svg style="background: var(--smart-background);"width="100%" height="100%" viewPort="0 0 100 100" viewBox="0 0 100 100" role="presentation" aria-hidden="true">\n <circle id="value" class="smart-value-path" r="50" cx="50" cy="50" transform="rotate(270 50 50)"></circle>\n <circle id="value" style="stroke-dashoffset: ${100*Math.PI-(1-l)*Math.PI*100}; stroke-width: 100%;" class="smart-value" r="50" cx="50" cy="50" transform="rotate(270 50 50)"></circle>\n </svg>\n </div>\n </div>\n `};if(t){const c=864e5,m="string"==typeof t?new Date(t):t,u=Math.round(m.getTime()-s.getTime())/c,p=parseInt(Math.abs(u).toFixed(0));let g=r.columnByDataField.taskStatus;n.editor.boundDataField&&(g=r.columnByDataField[n.editor.boundDataField]);const h=g?i.cell.row.data[g.dataField]:"";if("done"===h||"complete"===h||"completed"===h||"finished"===h){let e=r.localize("done");a.innerHTML=`<div style="display: grid; grid-template-columns: 25px auto"><div style="margin-left: 4px; align-self: center; border-radius: 50%; display: flex; align-content: center; background: ${l[3]}; width:16px; height: 16px;"><span title="${e}" style="align-content: center; font-size: 13px; color: white;" class="smart-grid-icon show smart-icon-check"></span></div>${o}</span></div>`}else{let t="";t=0===p?r.localize("today"):1===p?e<s?r.localize("yesterday"):r.localize("tomorrow"):e<s?r.localize("daysOverdue",{value:p}):r.localize("daysLeft",{value:p}),a.innerHTML=e>=s?`<div style="display: grid; grid-template-columns: 25px auto">${d(p,t)}<span>${o}</span></div>`:`<div style="display: grid; grid-template-columns: 25px auto"><span title="${t}" style="font-size: 16px; color: ${l[0]}" class="smart-grid-icon show smart-icon-attention-circled"></span>${o}</span></div>`}}else a.innerHTML="";i.setAttribute("template",i.cell.template),i.setAttribute("value",e);break}case"attachments":{if(""===t||"[]"===t){const e=`<div class="file-container"><div class="attachments"><div title="${r.localize("addFiles")}" class="smart-grid-icon show smart-icon-plus"></div></div></div>`;return a.innerHTML!==e&&(a.innerHTML=e,a.onpointerdown=e=>{if(e.target.classList.contains("smart-icon-plus")){if(r._mobile)return;if(r.editing.enabled){const t=e.target.closest("smart-grid-cell"),l=t.getAttribute("data-field"),a=t.closest("smart-grid-row").getAttribute("data-id");r.beginEdit(a,l),t.querySelector(".smart-icon-plus").onpointerdown()}e.stopPropagation(),e.preventDefault()}}),i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")){const e=a.firstElementChild.getAttribute("value");if(t&&t.indexOf(e)>=0)return i.cell._setStyle(a),i.setAttribute("template",i.cell.template),void(a.firstElementChild.evaluateScroll&&a.firstElementChild.evaluateScroll());if(e&&t&&Array.isArray(t)&&t[0]&&t[0].value&&e.length===t[0].value.length)return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}const e=document.createElement("div"),l=document.createElement("div");e.classList.add("file-container"),l.classList.add("attachments");let n=t;if(r._findIsFile(n)){let e="";if(n)try{e=JSON.parse(n)}catch(e){console.log(e)}n=e}if("string"==typeof n&&(n.indexOf("[{")>=0||n.indexOf("}]")>=0)){let e="";if(n)try{e=JSON.parse(n)}catch(e){console.log(e)}n=e}Array.isArray(n)&&n.forEach((t=>{const l=document.createElement("div");l.title=t.label,l.classList.add("item"),l.innerHTML="<div></div>",l.firstElementChild.classList.add("smart-grid-icon","show","attachment"),t.label.indexOf("png")>=0||t.label.indexOf("jpg")>=0||t.label.indexOf("jpeg")>=0||t.label.indexOf("gif")>=0?l.firstElementChild.classList.add("smart-icon-image"):t.label.indexOf(".pdf")>=0?l.firstElementChild.classList.add("smart-icon-pdf"):t.label.indexOf(".tsv")>=0||t.label.indexOf(".txt")>=0||t.label.indexOf(".csv")>=0?l.firstElementChild.classList.add("smart-icon-text"):t.label.indexOf(".xls")>=0||t.label.indexOf(".xlsx")>=0?l.firstElementChild.classList.add("smart-icon-excel"):t.label.indexOf(".ppt")>=0?l.firstElementChild.classList.add("smart-icon-powerpoint"):t.label.indexOf(".zip")>=0||t.label.indexOf(".rar")>=0||t.label.indexOf(".7z")>=0?l.firstElementChild.classList.add("smart-icon-archive"):t.label.indexOf(".doc")>=0||t.label.indexOf(".docx")>=0?l.firstElementChild.classList.add("smart-icon-word"):l.firstElementChild.classList.add("smart-icon-file"),e.appendChild(l)}));const o=document.createElement("div");o.classList.add("smart-arrow-left","arrowbtn","smart-hidden");const d=document.createElement("div");d.classList.add("smart-arrow-right","arrowbtn");const c=document.createElement("div");if(c.classList.add("smart-icon-plus","smart-grid-icon","show"),c.title=r.localize("addFiles"),"card"!==r.view&&l.appendChild(c),l.onpointerdown=t=>{if(t.target.classList.contains("attachment")){const e=JSON.parse(i.cell.value),a=[...l.children[1].children].indexOf(t.target.parentNode);if(e[a]){const t=document.createElement("a");if(e[a].value.indexOf(window.location.host)>=0)fetch(e[a].value).then((e=>e.blob())).then((l=>{const i=URL.createObjectURL(l);t.download=e[a].label,t.href=i,t.click()}));else{if(e[a].value.indexOf("base64")>=0){const l=r._getFileFromBase64(e[a].value);t.href=URL.createObjectURL(l)}else t.href=e[a].value;t.target="_blank",t.click()}}t.stopPropagation(),t.preventDefault()}else if("DIV"===t.target.nodeName&&t.target.classList.contains("arrowbtn")){let l=parseInt(e.style.marginLeft);isNaN(l)&&(l=0);const a=o===t.target,r=e.scrollWidth-i.offsetWidth+30;e.style.marginLeft=a?Math.min(0,l+25)+"px":Math.max(-r,l-25)+"px",l=parseInt(e.style.marginLeft),0===l?o.classList.add("smart-hidden"):o.classList.remove("smart-hidden"),t.stopPropagation(),t.preventDefault()}else if(t.target.classList.contains("smart-icon-plus")){if(r._mobile)return;if(r.editing.enabled){const e=t.target.closest("smart-grid-cell"),l=e.getAttribute("data-field"),a=e.closest("smart-grid-row").getAttribute("data-id");r.beginEdit(a,l),e.querySelector(".smart-icon-plus").onpointerdown()}t.stopPropagation(),t.preventDefault()}},e.children.length){if(l.appendChild(e),"card"!==r.view){const t=25*n.length;t-i.offsetWidth+30>30&&(l.appendChild(o),l.appendChild(d)),l.evaluateScroll=()=>{const a=t-i.offsetWidth+30;e.style.marginLeft="0px",o.classList.add("smart-hidden"),a<0?d.classList.add("smart-hidden"):d.classList.remove("smart-hidden"),a>30&&(l.appendChild(o),l.appendChild(d))}}s=l}else s=document.createElement("div");i.setAttribute("template",i.cell.template),t&&t[0]&&t[0].value?s.setAttribute("value",t[0].value):n&&n[0]&&n[0].label?s.setAttribute("value",n[0].label):s.setAttribute("value",t);break}case"images":{if(""===t||"[]"===t){const e=`<div class="file-container"><div class="images"><div title="${r.localize("addImages")}" class="smart-grid-icon show smart-icon-plus"></div></div></div>`;return e!==a.innerHTML&&(a.innerHTML=e,a.onpointerdown=e=>{if(e.target.classList.contains("smart-icon-plus")){if(r._mobile)return;if(r.editing.enabled){const t=e.target.closest("smart-grid-cell"),l=t.getAttribute("data-field"),a=t.closest("smart-grid-row").getAttribute("data-id");r.beginEdit(a,l),t.querySelector(".smart-icon-plus").onpointerdown()}e.stopPropagation(),e.preventDefault()}}),i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}if(!r._recycleFiles&&a.firstElementChild&&a.firstElementChild.hasAttribute("value")){const e=a.firstElementChild.getAttribute("value");if(t&&t.indexOf(e)>=0)return i.cell._setStyle(a),i.setAttribute("template",i.cell.template),void(a.firstElementChild.evaluateScroll&&a.firstElementChild.evaluateScroll());if(e&&t&&Array.isArray(t)&&t[0]&&t[0].value&&e.length===t[0].value.length)return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}const e=document.createElement("div"),l=document.createElement("div");e.classList.add("file-container"),l.classList.add("images");let o=t;if(r._findIsFile(o)){let e="";if(o&&o.indexOf("{")>=0)try{e=JSON.parse(o)}catch(e){console.log(e)}else e=o.split(","),e=e.map((e=>({label:e,value:e})));o=e}if("string"==typeof o&&(o.indexOf("[{")>=0||o.indexOf("}]")>=0)){let e="";if(o)try{e=JSON.parse(o)}catch(e){console.log(e)}o=e}else"string"==typeof o&&o.indexOf("./")>=0&&(o=o.split(","),o=o.map((e=>({label:e,value:e}))));Array.isArray(o)&&o.forEach((t=>{const l=document.createElement("img");l.style.display="none";let a="";a=t.small?t.small:t.medium?t.medium:t.large?t.large:t.value,l.onload=()=>{l.style.display=""},a.indexOf("base64")>=0?l.src=a:(r._imagesCache||(r._imagesCache=[]),r.uploadSettings.url?r._imagesCache[a]?r._findUserFile(t)&&(l.src=a):(r._imagesCache[a]=!0,l.style.display="none",r._findUserFile(t)?(l.src=a,l.style.display=""):a&&a.startsWith("https://")&&(l.src=a)):l.src=a,l.onerror=()=>{l.style.display="none"}),l.title=t.label,l.setAttribute("data-url",t.large||t.value),e.appendChild(l)}));const d=document.createElement("div");d.classList.add("smart-arrow-left","arrowbtn","smart-hidden");const c=document.createElement("div");c.classList.add("smart-arrow-right","arrowbtn");const m=document.createElement("div");m.classList.add("smart-icon-plus","smart-grid-icon","show"),m.title=r.localize("addImages");const u=document.createElement("div");if(u.classList.add("smart-navigation"),"card"!==r.view&&r.editing.enabled&&n.allowEdit&&l.appendChild(m),l.onpointerdown=t=>{if("IMG"===t.target.nodeName)"card"!==r.view&&[...e.children].forEach((e=>e.classList.remove("smart-hidden"))),r._openImagePreviewDialog(t.target),t.stopPropagation(),t.preventDefault();else if("DIV"===t.target.nodeName&&t.target.classList.contains("smart-navigation-item")){[...u.children].forEach((e=>e.classList.remove("active"))),t.target.classList.add("active"),[...e.children].forEach((e=>e.classList.add("smart-hidden")));const l=[...u.children].indexOf(t.target);e.children[l].classList.remove("smart-hidden"),t.stopPropagation(),t.preventDefault()}else if("DIV"===t.target.nodeName&&t.target.classList.contains("arrowbtn")){let l=parseInt(e.style.marginLeft);isNaN(l)&&(l=0);const a=d===t.target,r=e.scrollWidth-i.offsetWidth+30;e.style.marginLeft=a?Math.min(0,l+25)+"px":Math.max(-r,l-25)+"px",l=parseInt(e.style.marginLeft),0===l?d.classList.add("smart-hidden"):d.classList.remove("smart-hidden"),t.stopPropagation(),t.preventDefault()}else if(t.target.classList.contains("smart-icon-plus")){if(r._mobile)return;if(r.editing.enabled){const e=t.target.closest("smart-grid-cell"),l=e.getAttribute("data-field"),a=e.closest("smart-grid-row").getAttribute("data-id");r.beginEdit(a,l),e.querySelector(".smart-icon-plus").onpointerdown()}t.stopPropagation(),t.preventDefault()}},e.children.length){if(l.appendChild(e),"card"===r.view&&l.appendChild(u),"card"!==r.view){const t=25*o.length;t-i.offsetWidth+30>30&&(l.appendChild(d),l.appendChild(c)),l.evaluateScroll=()=>{const a=t-i.offsetWidth+30;e.style.marginLeft="0px",d.classList.add("smart-hidden"),a<0?c.classList.add("smart-hidden"):c.classList.remove("smart-hidden"),a>30&&(l.appendChild(d),l.appendChild(c))}}else{for(let t=0;t<e.children.length;t++){const l=document.createElement("div");l.classList.add("smart-navigation-item"),0===t?l.classList.add("active"):e.children[t].classList.add("smart-hidden"),u.appendChild(l)}1===e.children.length&&u.classList.add("smart-visibility-hidden")}s=l}else s=document.createElement("div");i.setAttribute("template",i.cell.template),t&&t[0]&&t[0].value?s.setAttribute("value",t[0].value):o&&o[0]&&o[0].label?s.setAttribute("value",o[0].label):s.setAttribute("value",t);break}case"email":if(Smart.Validator){const e=a.firstElementChild?a.firstElementChild.getAttribute("value"):null;if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")&&e===t)return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template);s=document.createElement("span"),null===t||""===t?s.innerHTML="":Smart.Validator.email(t)?s.innerHTML=t:(s.className="url",s.innerHTML='<a href="mailto:'+t+'" target="_blank" contenteditable="false" rel="noreferrer noopener">'+t+"</a>",s.firstElementChild&&(s.firstElementChild.onpointerdown=e=>{e.stopPropagation(),e.preventDefault(),s.firstElementChild.click()}))}i.setAttribute("template",i.cell.template),s.setAttribute("value",t);break;case"url":if(Smart.Validator){const e=a.firstElementChild?a.firstElementChild.getAttribute("value"):null;if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")&&e===t)return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template);const l=e=>{null===t||""===t?e.classList.add("smart-hidden"):Smart.Validator.url(t)?(e.firstElementChild&&"A"===e.firstElementChild.nodeName?(e.firstElementChild.setAttribute("href",t),e.firstElementChild.textContent=t):e.innerHTML='<a href="https://'+t+'" target="_blank" contenteditable="false" rel="noreferrer noopener">'+t+"</a>",e.classList.remove("smart-hidden")):(e.firstElementChild&&"A"===e.firstElementChild.nodeName?(e.firstElementChild.setAttribute("href",t),e.firstElementChild.textContent=t):e.innerHTML='<a href="'+t+'" target="_blank" contenteditable="false" rel="noreferrer noopener">'+t+"</a>",e.classList.remove("smart-hidden"))};a.firstElementChild&&a.firstElementChild.classList.contains("url")?(s=a.firstElementChild,l(s)):(s=document.createElement("span"),s.className="url",l(s)),s.firstElementChild&&(s.firstElementChild.onpointerdown=e=>{e.stopPropagation(),e.preventDefault(),s.firstElementChild.click()})}i.setAttribute("template",i.cell.template),s.setAttribute("value",t);break;case"sparklines":{const l=t,s=""+n.computedWidth;if(a.firstElementChild&&a.firstElementChild.hasAttribute("value")){const e=a.firstElementChild.getAttribute("value"),t=a.firstElementChild.getAttribute("width"),n=a.firstElementChild.getAttribute("height"),o=i.cell.row.cellHeight||r.layout.rowMinHeight;if(l===e&&t===s&&o===n)return i.cell._setStyle(a),void i.setAttribute("template",i.cell.template)}const o=new e,d=i.cell.row.cellHeight||r.layout.rowMinHeight,c=n.templateSettings;if(d>=7)if(i._sparklinesRender&&cancelAnimationFrame(i._sparklinesRender),t){const e=o.render({width:s-10,height:Math.max(0,d-7),points:t,colors:c.colors,type:c.type,gap:c.gap,max:c.max,min:c.min,strokeWidth:c.strokeWidth,colorFunction:c.colorFunction,tooltipFormatFunction:c.tooltipFormatFunction});a.innerHTML=`<div height="${d}" width="${s}" value="${l}" style="padding-top: 5px; padding-left: 5px; padding-right: 5px;">${e}</div>`;const i=(e,t,l)=>{if(!1===c.tooltip)return;const a=e.pageX,i=e.pageY-10;if(!r._sparklineTooltip){const e=document.createElement("smart-button");e.classList.add("secondary"),e.style.boxShadow="var(--smart-elevation-4)",e.style.opacity=.9,e.style.transition="all cubic-bezier(0.6, 0.2, 0, 0.8) 0.2s",document.body.appendChild(e),e.style.position="absolute",e.style.zIndex=999,r._sparklineTooltip=e}const n=r._sparklineTooltip;n.innerHTML===t&&n.element===l||(n.style.top=i+25+"px",n.style.left=a-15+"px"),n.innerHTML=t,n.style.display=""};a.onmousemove=e=>{if("column"!==c.type&&"bar"!==c.type||a.querySelectorAll("rect").forEach((t=>{var l=t.getBoundingClientRect();t.removeAttribute("highlight"),l.left<=e.clientX&&e.clientX<=l.right&&l.top<=e.clientY&&e.clientY<=l.bottom&&(t.setAttribute("highlight",""),i(e,t.getAttribute("data-title"),t))})),"pie"===c.type){let t=!1;a.querySelectorAll("path").forEach((l=>{var a=l.getBoundingClientRect();l.removeAttribute("highlight"),t||a.left<=e.clientX&&e.clientX<=a.right&&a.top<=e.clientY&&e.clientY<=a.bottom&&(l.setAttribute("highlight",""),t=!0,i(e,l.getAttribute("data-title"),l))}))}"line"===c.type&&a.querySelectorAll("line").forEach((t=>{var l=t.getBoundingClientRect();t.removeAttribute("highlight"),l.left<=e.clientX&&e.clientX<=l.right&&(t.previousElementSibling&&(t.previousElementSibling.style.display="none"),t.nextElementSibling&&(t.nextElementSibling.style.display="none"),t.setAttribute("highlight",""),l.left+l.width/2>=e.clientX?t.previousElementSibling&&(t.previousElementSibling.style.display="",i(e,t.previousElementSibling.getAttribute("data-title"),t.previousElementSibling)):t.nextElementSibling&&(t.nextElementSibling.style.display="",i(e,t.nextElementSibling.getAttribute("data-title"),t.nextElementSibling)))}))},a.onmouseleave=()=>{r._sparklineTooltip&&(r._sparklineTooltip.style.display="none"),a.querySelectorAll("rect").forEach((e=>{e.removeAttribute("highlight")})),a.querySelectorAll("path").forEach((e=>{e.removeAttribute("highlight")})),a.querySelectorAll("line").forEach((e=>{e.removeAttribute("highlight")})),a.querySelectorAll("circle").forEach((e=>{e.style.display="none"}))}}else a.innerHTML="",a.onmousemove=a.onmouseleave=null;i.setAttribute("template",i.cell.template);break}default:{let e=null;i.setAttribute("template","");const l=i.cell.row,s=a;let o=i.cell.getFormattedValue(t,n.cellsFormat);if(s.style.lineHeight="","function"==typeof i.cell.template){const e={row:l,column:n,cell:i.cell,oldValue:i.cell.oldValue,value:t,template:null};let a=s.querySelector(".smart-grid-cell-template");const d=l.id;r.isHScrolling&&(r._cachedTemplates||(r._cachedTemplates=[]),a&&0===a.innerHTML.length&&(a=null),!a&&r._cachedTemplates&&r._cachedTemplates[n.dataField+"_"+d]&&(0===r._cachedTemplates[n.dataField+"_"+d].innerHTML.length?delete r._cachedTemplates[n.dataField+"_"+d]:e.template=r._cachedTemplates[n.dataField+"_"+d])),a&&a.getAttribute("column")===n.dataField?e.template=a.firstElementChild:a=null,i.formattedValue!==o&&(a=null),i.cell.canNotify=!1,l.canNotify=!1;const c=Object.assign({},{background:i.cell.background,color:i.cell.color,fontSize:i.cell.fontSize,fontFamily:i.cell.fontFamily,fontWeight:i.cell.fontWeight,textDecoration:i.cell.textDecoration,fontStyle:i.cell.fontStyle});if(i.cell.template(e),!a&&e.template)if(e.template instanceof HTMLElement){const t=document.createElement("div");t.classList.add("smart-grid-cell-template"),t.setAttribute("column",n.dataField),s.innerHTML="",s.appendChild(t),t.appendChild(e.template)}else s.innerHTML='<div column="'+n.dataField+'" class="smart-grid-cell-template">'+e.template+"</div>";else a||null!==e.template||(s.innerHTML=t);if(r.isHScrolling&&!r._cachedTemplates[n.dataField+"_"+d]&&s.firstElementChild.firstElementChild){const e=s.firstElementChild.firstElementChild;e&&(r._cachedTemplates[n.dataField+"_"+d]=e)}s.style.background===c.background&&s.style.color===c.color&&s.style.fontSize===c.fontSize&&s.style.fontWeight===c.fontWeight&&s.style.fontStyle===c.fontStyle||(i.cell._styleChanged=!0,i.cell._setStyle(s)),i.cell.background!==c.background||i.cell.color!==c.color||i.cell.fontSize!==c.fontSize||i.cell.fontWeight!==c.fontWeight||i.cell.fontStyle!==c.fontStyle?(i.cell._styleChanged=!0,i.cell._setStyle(s)):i.cell._styleChanged&&i.cell._setStyle(s),void 0===i.cell.oldValue&&(i.cell.oldValue=t),i.formattedValue=o,i.cell.canNotify=!0,l.canNotify=!0}else if(Array.isArray(i.cell.template)){const e=document.createElement("div");if(s.firstElementChild&&s.firstElementChild.classList.contains("smart-grid-cell-template"))for(let e=0;e<i.cell.template.length;e++){const t=s.firstElementChild.children[e].firstElementChild,a=i.cell.template[e];if(a.length>1&&t){let e=l.data[a[1]];a[2]&&(e=a[2].length>2?a[2].replaceAll("{{value}}",e):i.cell.getFormattedValue(e,a[2])),t.src&&t.src!==e?(i._imageUpdateTimer&&clearTimeout(i._imageUpdateTimer),i._imageUpdateTimer=setTimeout((()=>{t.src=e}),50)):t.textContent!==e&&(t.textContent=e)}}else{e.classList.add("smart-grid-cell-template"),e.setAttribute("column",n.dataField),s.innerHTML="",s.appendChild(e);let t="";for(let e=0;e<i.cell.template.length;e++){const a=i.cell.template[e];if(a.length>1){let e=l.data[a[1]];a[2]&&(e=a[2].length>2?a[2].replaceAll("{{value}}",e):i.cell.getFormattedValue(e,a[2])),t+='<span class="smart-template-part">'+a[0].replaceAll("{{value}}",e)+"</span>"}}e.innerHTML=t}}else{if(""!==s.textContent&&(s.textContent=""),i.cell.template instanceof HTMLTemplateElement)e=i.cell.template;else if(i.cell.template instanceof HTMLElement){const e=i.cell.template.innerHTML.replace(/{{value}}/gi,t).replace(/{{id}}/gi,l.id);s.innerHTML!==e&&(s.innerHTML=e)}if(i.cell.template.startsWith&&i.cell.template.startsWith("#")&&(e=document.querySelector(i.cell.template)),e){let a=e.content.cloneNode(!0).firstElementChild;const d=t;if(t=(t=(t=t.toString()).replace(/'/gi,"\\'")).replace(/"/gi,'\\"'),a.querySelector("[smart-if]")){const e=a.querySelector("[smart-else]"),l=a.querySelectorAll("[smart-if]");let i=!1;for(let e=0;e<l.length;e++){const r=l[e],s=r.getAttribute("smart-if"),o=s.split(" "),c=o[1].trim();let m=o[2].trim();s.indexOf("'")>=0&&(m=s.substring(s.indexOf("'")+1),m=m.replaceAll("'",""));let u=t;switch("Today"===m&&(m=new Date),"date"===n.dataType&&(t=new Date(d).getTime(),m=new Date(m).getTime()),c){case">":t>parseFloat(m)&&(a=r,i=!0);break;case">=":t>=parseFloat(m)&&(a=r,i=!0);break;case"=":case"==":case"===":t===m&&(a=r,i=!0);break;case"<":t<parseFloat(m)&&(a=r,i=!0);break;case"<=":t<=parseFloat(m)&&(a=r,i=!0)}if(t=u,i)break}!i&&e&&(a=e)}let c=a.outerHTML.replace(/{{value}}/gi,t).replace(/{{id}}/gi,l.id);for(c.indexOf("{{value=")>=0&&(t?(c=c.substring(0,c.indexOf("{{value="))+t+c.substring(c.indexOf("}")),c=c.replace(/}/gi,""),c=c.replace(/{/gi,"")):(c=c.replace(/{{value=/gi,""),c=c.replace(/}}/gi,"")));c.indexOf("{{value::")>=0;){const e=c.indexOf("{{value::"),l=c.substring(e+9,c.indexOf("}}")),a=i.cell.getFormattedValue(t,l);c=c.replace(`{{value::${l}}}`,a)}if(n._treeColumn){const e=s.firstChild;if(e&&e.classList&&i.toggleButton&&n._treeColumn&&s.children[1]){const e=s.children[0],t=s.children[1].children[0],a=s.children[1].children[1].firstChild,i=s.children[1].children[2];let n="";if(r.grouping.enabled){let e=l.level-1;"multipleColumns"!==r.grouping.renderMode&&(n+='<div style="width: '+(1+e)*r.grouping.groupIndent+'px;"></div>')}else for(let e=0;e<l.level;e++)n+="<div class='smart-indent'></div>";l.checked?a.setAttribute("checked",""):!1===l.checked?a.removeAttribute("checked"):null===l.checked&&a.setAttribute("checked","indeterminate"),l.leaf?l.allowCheck?a.classList.remove("smart-visibility-hidden"):a.classList.add("smart-visibility-hidden"):l.allowCheck?a.classList.remove("smart-hidden"):a.classList.add("smart-hidden"),l.allowCheck?r.checkBoxes.visible?a.classList.remove("smart-hidden"):a.classList.add("smart-hidden"):r.checkBoxes.visible||a.classList.add("smart-hidden"),e.innerHTML=n,t.classList.add("smart-visibility-hidden"),l.leaf?t.classList.add("smart-visibility-hidden"):(t.classList.remove("smart-visibility-hidden"),l.expanded?t.setAttribute("toggled",""):t.removeAttribute("toggled","")),l.data.isEmpty&&t.classList.add("smart-visibility-hidden"),i.innerHTML=c,r.appearance.showTooltips?i.setAttribute("title",r._unescapeString(o)):i.hasAttribute("title")&&i.removeAttribute("title")}}else s.innerHTML!==c&&(s.innerHTML=c)}else if("string"==typeof i.cell.template){""===t&&(t="&nbsp;");let e=i.cell.template.replace(/{{value}}/gi,t).replace(/{{id}}/gi,l.id);if(e.indexOf("{{"))for(let t=0;t<r.dataSource.dataFields.length;t++){const a=r.dataSource.dataFields[t].name;if(e.indexOf("{{"+a+"}}")>=0&&(e=e.replace("{{"+a+"}}",l.data[a]),-1===e.indexOf("{{")))break}s.innerHTML!==e&&(s.innerHTML=e)}}if("auto"===i.cell.row.height||r.layout.allowCellsWrap||"auto"===r.layout.rowHeight){const e=s.querySelector(".smart-grid-cell-template");if(e){l._templatesHeight||(l._templatesHeight=[]);const t=(e,t)=>{if(e){const l=r.rowById[e.getAttribute("data-id")];l._templatesHeight[n.dataField]=t,l._isDirty=!0;const a=l.canNotify;l.canNotify=!1,l.autoSize(),l.canNotify=a,delete l._isDirty}};if(e.firstElementChild){if(!e.firstElementChild.resizeObserver){const l=new ResizeObserver((function(){const e=this.target.closest("smart-grid-row");this.target.offsetHeight&&(t(e,this.target.offsetHeight),r.$.scrollView.scrollTop=0)}));e.firstElementChild.resizeObserver=l,l.target=e.firstElementChild,l.observe(e.firstElementChild)}e.firstElementChild.onblur=e.firstElementChild.onchange=function(){const e=this.closest("smart-grid-row");t(e,this.offsetHeight)}}else{const l=this.closest("smart-grid-row");t(l,e.offsetHeight)}}}}}if(s)return a.innerHTML="",a.appendChild(s),i.cell._setStyle(a),s}async _render(){const e=this,t=e.cell.grid,l=e.cell.column,a=e.cell.row,i=a.data,r=a._isMeasureRow?null:e.cell.format||l.cellsFormat,n=t.grouping.enabled&&t.dataSource.groupBy.length>0;if(!(!1!==t._recycleValues||n||l.formatFunction||l._treeColumn||a.summaryRow||"grid"!==t.view)){if(e.cell.selected?(e.setAttribute("selected",""),e.setAttribute("aria-selected",!0)):(e.removeAttribute("selected"),e.removeAttribute("aria-selected")),e.classList.contains("smart-hidden")&&e.classList.remove("smart-hidden"),e.cell.focused?(t.selection.allowCellSelection&&e.setAttribute("focus",""),a.element.setAttribute("focus",""),a.element.toggleDetailButton&&(a.element.toggleDetailButton.classList.remove("smart-visibility-hidden"),a.element.star&&a.element.star.classList.add("smart-hidden")),e.cell.id||(e.id="gridcell_"+Math.floor(65536*(1+Math.random())).toString(16).substring(1)),t.setAttribute("aria-activedescendant",e.id)):(e.removeAttribute("focus"),a.element&&a.element.star&&t._selection.focusedCell&&t._selection.focusedCell.id!==a.id?a.element.star.classList.remove("smart-hidden"):t.appearance.showRowComments&&!a.element.hasAttribute("focus")&&a.element.toggleDetailButton&&a.element.toggleDetailButton.classList.add("smart-visibility-hidden")),e.cell.background||e.cell.color){e.cell._styleChanged=!0;const t=e.firstChild;e.cell._setStyle(t)}return}if(t.grouping.enabled&&t.dataSource.groupBy.length>0&&"card"!==t.view){if(void 0!==a.label){let t=l.displayField?i[l.displayField]:i[l.dataField];return void 0===t&&i.data&&(t=l.displayField?i.data[l.displayField]:i.data[l.dataField]),e._renderGroupCell(t),void(a.summaryRow&&(e.cell.canNotify=!1,a.canNotify=!1,e.cell._styleChanged=!0,e.cell.background=null,e.cell.color=null,e.cell.fontFamily=null,e.cell.fontSize=null,e.cell.element&&e.cell.element.firstElementChild&&e.cell._setStyle(e.cell.element.firstElementChild),e.cell.canNotify=!0,a.canNotify=!0))}e.style.zIndex=""}else if(t.appearance.showTreeRowHeader&&t.rowHierarchy&&!1===a.leaf&&!l.autoGenerated){let t=i[a.groupDataField];return a.label=t,void e._renderGroupCell(t)}if(t.appearance.showTreeRowHeader&&e.removeAttribute("header"),t.grouping.enabled&&t.dataSource.groupBy.length>0&&e.toggleButton&&(e.toggleButton.classList.remove("smart-hidden"),e.toggleButton.classList.remove("smart-visibility-hidden"),e.toggleButton.style.marginLeft="",l._treeColumn&&t.grouping.enabled&&t.grouping.toggleButtonIndent>0&&(e.toggleButton.style.marginLeft=a.level*(t.grouping.toggleButtonIndent-t.grouping.groupIndent)+"px")),t.grouping.enabled&&t.dataSource.groupBy.length>0&&(e.removeAttribute("header"),e.removeAttribute("group")),!l.visible)return void(e.style.width="0px");t.appearance.showSortColumnBackground&&t.sorting.maintainSort&&!a.summaryRow?l.sorted?e.setAttribute("sort",""):e.removeAttribute("sort"):l.sorted&&e.hasAttribute("sort")&&e.removeAttribute("sort"),t.appearance.showFilterColumnBackground?l.filtered?e.setAttribute("filter",""):e.removeAttribute("filter"):l.filtered&&e.hasAttribute("filter")&&e.removeAttribute("filter"),t.dataSource.boundHierarchy&&e.hasAttribute("has-toggle-button")&&!l._treeColumn&&e.removeAttribute("has-toggle-button");let s=l.displayField?i[l.displayField]:i[l.dataField];if(null!==s||l.allowNull||("int"!==l.dataType&&"number"!==l.dataType||(s=0),"string"===l.dataType&&(s=""),"boolean"!==l.dataType&&"bool"!==l.dataType||(s=!1),"date"===l.dataType&&(s=new Date)),t.formulas&&e.cell.formula&&"string"==typeof e.cell.formula&&/=.+/.test(e.cell.formula)){const l=t._formulaParser;if(l){const t=l.parse(e.cell.formula.slice(1));s=isNaN(t)?"#VALUE!"===t?"":"#ERROR!"===t?"#ERROR!":t:t}}t.grouping.enabled&&"multipleColumns"===t.grouping.renderMode&&t.dataSource&&t.dataSource.groupBy.length>0&&t.dataSource.groupBy.indexOf(l.dataField)>=0&&(s="",e.setAttribute("header","")),e.removeAttribute("highlight"),t.highlighted!==a.id||l.autoGenerated||e.setAttribute("highlight",""),t.editing.addNewRow.visible&&e.classList.remove("smart-add-new-row"),t.editing.enabled&&(e.cell.readonly||!l.allowEdit?e.classList.add("smart-readonly"):e.classList.remove("smart-readonly"));const o=t=>{if(t){if(t.startsWith("off_"))return e.classList.remove(t.substring(4)),!1;if(e.classList.add(t),e.hasAttribute("customCSS")){t=t+" "+e.getAttribute("customCSS")}return e.setAttribute("customCSS",t),!0}return e.setAttribute("highlight",""),!0};if((t.highlightedRows||t.highlightedCells)&&e.hasAttribute("customCSS")){const t=e.getAttribute("customCSS");e.removeAttribute("customCSS");const l=t.split(" ");for(let t=0;t<l.length;t++)e.classList.remove(l[t])}if(l.highlight&&!a.summaryRow&&(o(l._highlightCSS||""),e.setAttribute("highlight-data-field",l.dataField)),t.highlightedCells&&t.highlightedCells[a.id]&&!a.summaryRow&&void 0!==t.highlightedCells[a.id][l.dataField]){o(t.highlightedCells[a.id][l.dataField])}if(t.highlightedRows&&!a.summaryRow&&void 0!==t.highlightedRows[a.id]){o(t.highlightedRows[a.id])}if(t.editing.batch){if(t._cellsUpdatedValues){e.removeAttribute("update");const i=t._cellsUpdatedValues[a.id+"_"+l.dataField];void 0!==i&&(e.setAttribute("update",""),s=i)}t._rowsDeleted&&(t._rowsDeleted.indexOf(a.id)>=0?e.setAttribute("delete",""):e.removeAttribute("delete")),t._rowsAdded&&(t._rowsAdded.indexOf(a.id)>=0?e.setAttribute("add",""):e.removeAttribute("add"))}!t.onCellValue||l.rowHeaderColumn||l.selectionColumn||(e.cell._updating=!0,t.onCellValue(e.cell,t),e.cell._updating=!1,s=e.cell.value),void 0===s&&(s="");let d=s;r?d=e.cell.getFormattedValue(s,r):l.formatSettings&&l.formatSettings.Intl?d=e.cell.getFormattedValue(s,l.formatSettings.Intl):l.formatSettings&&l.formatSettings.formatString&&(d=e.cell.getFormattedValue(s,l.formatSettings.formatString));const c=e.firstChild;if(e.content=c,l._isDirty&&(c.innerHTML=""),c.hasAttribute("data-field")&&c.getAttribute("data-field")!==l.dataField&&(c.innerHTML="",a.filterRow&&(l._filterEditorInitialized=!1)),c.setAttribute("data-field",l.dataField),t.onCellRender||l.onCellRender)if(l._cellsCachedValues||(l._cellsCachedValues=[]),l._cellsCachedValues[a.index]){const t=l._cellsCachedValues[a.index];c.firstChild&&c.removeChild(c.firstChild),e.cell.template instanceof HTMLTemplateElement||"string"==typeof e.cell.template?c.appendChild(t):c.innerHTML=t.innerHTML}else{if(e.cell._updating=!0,t.onCellRender?t.onCellRender(e.cell,a.visibleIndex,l.dataField,a.data,e):l.onCellRender(e.cell,a.visibleIndex,l.dataField,a.data,e),e.cell._updating=!1,e.cell.template!==l.template){const t=document.createElement("div");return c.firstChild&&c.removeChild(c.firstChild),e.cell.template instanceof HTMLTemplateElement?(t.appendChild(e.cell.template.content.cloneNode(!0)),l._cellsCachedValues[a.index]=t):t.appendChild(e.cell.template),void c.appendChild(t)}e.cell.value!==s&&(d=e.cell.value)}if(l.autoGenerated||e.setAttribute("data-field",l.dataField),e.cell.focused?(t.selection.allowCellSelection&&e.setAttribute("focus",""),a.element.setAttribute("focus",""),a.element.toggleDetailButton&&(a.element.toggleDetailButton.classList.remove("smart-visibility-hidden"),a.element.star&&a.element.star.classList.add("smart-hidden")),e.cell.id||(e.id="gridcell_"+Math.floor(65536*(1+Math.random())).toString(16).substring(1)),t.setAttribute("aria-activedescendant",e.id)):e.removeAttribute("focus"),e.cell.selected?(e.setAttribute("selected",""),e.setAttribute("aria-selected",!0)):(e.removeAttribute("selected"),e.removeAttribute("aria-selected")),t.dragDrop&&t.dragDrop.row===a?e.classList.add("dragged"):e.classList.remove("dragged"),e._classNames)for(let t=0;t<e._classNames.length;t++)e.classList.remove(e._classNames[t]);if(a._classNames||e._rowClassNames){if(e._rowClassNames)for(let t=0;t<e._rowClassNames.length;t++)e.classList.remove(e._rowClassNames[t]);for(let t=0;t<a._classNames.length;t++)e.classList.add(a._classNames[t]);e._rowClassNames=a._classNames}if(t.onCellClass){const i=t.onCellClass(a.visibleIndex,l.dataField,s,a.data,a,t);if(e.___classNames)for(let t=0;t<e.___classNames.length;t++)e.classList.remove(e.___classNames[t]);if(i){const t=i.trim().split(" ");for(let l=0;l<t.length;l++)e.classList.add(t[l]);e.___classNames=t}}if(l.cellsClassName)if("string"==typeof l.cellsClassName){const t=l.cellsClassName.trim().split(" ");for(let l=0;l<t.length;l++)e.classList.add(t[l]);e._classNames=t}else{const t=l.cellsClassName(a.visibleIndex,l.dataField,s,a.data,a);if(e._classNames)for(let t=0;t<e._classNames.length;t++)e.classList.remove(e._classNames[t]);if(t){const l=t.trim().split(" ");for(let t=0;t<l.length;t++)e.classList.add(l[t]);e._classNames=l}}if(l.cellsCSSRules){if(e.__classNames)for(let t=0;t<e.__classNames.length;t++)e.classList.remove(e.__classNames[t]);const i=Object.keys(l.cellsCSSRules);let r=[];for(let n=0;n<i.length;n++){let o=i[n];const d={index:a.visibleIndex,value:s,dataField:l.dataField,row:a,api:t};l.cellsCSSRules[o](d)&&(e.classList.add(o),r.push(o))}e.__classNames=r}t.rowDetail.enabled&&a.showDetail&&!1===t.rowDetail.dialog.enabled&&(e.style.height=a.cellHeight+"px",e.style.lineHeight=a.cellHeight+"px"),a.expanded&&a.expandHeight>0&&(e.style.height=a.cellHeight+"px",e.style.lineHeight=a.cellHeight+"px");const m=e._getCellAlignment(a,l),u=""!==e.cell.template&&t.isInitialized&&!a._isMeasureRow;let p="";if(m.align&&(p+=m.align+" "),m.verticalAlign&&(p+=m.verticalAlign+" "),l.cellsWrap)p+="wrap ";else if(t.layout.autoWrap&&a.height>40&&1===e.cell.colSpan&&"string"===l.dataType){if(14*(d||"").length*.52>l.computedWidth){p+="textwrap ";const e=parseInt(a.height/20);c.style["-webkit-line-clamp"]=e}}if(p+="smart-label",e.style.width!==l.computedWidth+"px"){const a=t._isLastVisibleColumn(l);l.autoGenerated||a?e.style.width=l.computedWidth+"px":e.style.width=l.computedWidth-t._columnGap+"px"}l.grid.appearance.showRowComments&&l.rowHeaderColumn&&(e.style.width=l.computedWidth+t.rowDetailColumn.width+"px",e.classList.add("row-number")),l===t._firstVisibleColumn?e.classList.add("smart-grid-column-border-collapse"):e.classList.remove("smart-grid-column-border-collapse"),t.appearance.showColumnGroupCellLines||l.parent&&!l.element.hasAttribute("column-group-first-child")&&e.classList.add("smart-grid-column-border-collapse"),t.grouping.enabled&&"multipleColumns"===t.grouping.renderMode&&t.dataSource&&t.dataSource.groupBy.length>0&&t.dataSource.groupBy.indexOf(l.dataField)>=0&&e.classList.add("smart-grid-column-border-collapse"),t._columnGap>0&&t.appearance.showColumnLines&&e.classList.add("smart-grid-column-border"),t._rowGap>0&&e.classList.add("smart-grid-row-border"),t.appearance.showColumnLines?e.classList.remove("smart-grid-vertical-border-collapse"):e.classList.add("smart-grid-vertical-border-collapse"),t.appearance.showRowLines?e.classList.remove("smart-grid-horizontal-border-collapse"):e.classList.add("smart-grid-horizontal-border-collapse");let g=l.left;if(t.rightToLeft?e.style.right!==g+"px"&&(e.style.right=g+"px"):e.style.left!==g+"px"&&(e.style.left=g+"px"),e.classList.contains("smart-hidden")&&e.classList.remove("smart-hidden"),e.hasAttribute("template")&&e.removeAttribute("template"),e.hasAttribute("freeze")&&e.removeAttribute("freeze"),e.hasAttribute("detail")&&e.removeAttribute("detail"),e.hasAttribute("error")&&e.removeAttribute("error"),e.cell.error&&e.setAttribute("error",e.cell.error),a.filterRow?e.classList.add("smart-grid-filter-row-cell"):a.summaryRow?e.classList.add("smart-grid-summary-row-cell"):(l.freeze||a.freeze)&&(l.selectionColumn&&(e.setAttribute("checkbox",""),p+=" smart-input",l.grid.selection.checkBoxes.enabled&&l.grid.selection.checkBoxes.autoShow?e.setAttribute("auto-show",""):e.removeAttribute("auto-show")),(l.rowHeaderColumn||l.selectionColumn)&&(e.setAttribute("header",""),e.setAttribute("role","rowheader")),t.appearance.showFrozenColumnBackground&&l.freeze&&e.setAttribute("freeze",""),t.appearance.showFrozenRowBackground&&a.freeze&&e.setAttribute("freeze",""),l.rowDetailColumn&&(e.setAttribute("header",""),e.setAttribute("detail",""),e.setAttribute("has-toggle-button",""),e.classList.add("smart-grid-column-border-collapse")),l.commandColumn&&e.setAttribute("command","")),t.appearance.showRowComments&&(a.comments&&a.comments.length>0&&l===t._firstVisibleUserColumn?e.classList.add("row-comments"):e.classList.remove("row-comments")),l.cellsRotationAngle){if(!e._rotateCellContent(c,l,s))return}else if(a.filterRow){if(!l.toggleColumn&&!l.rowHeaderColumn)return t.grouping.enabled&&t.dataSource&&t.dataSource.groupBy.length>0&&(l._filterEditorInitialized=!1),l._filterEditorInitialized||l.autoGenerated?void("boolean"===l.dataType||"bool"===l.dataType?e.setAttribute("template","checkBox"):e.removeAttribute("template")):(l._filterEditorInitialized=!0,void e._renderFilterCell(c));c.innerHTML=""}else if(a.summaryRow){if(l.toggleColumn||l.rowHeaderColumn)""!==c.innerHTML&&(c.innerHTML="");else if(l.autoGenerated&&""!==c.innerHTML&&(c.innerHTML=""),t.dataSource.boundHierarchy&&e.hasAttribute("has-toggle-button")&&e.removeAttribute("has-toggle-button"),!l.autoGenerated){if(l.summary.length>0&&t._summaryItems){const a=t._summaryItems[l.dataField],i=[];for(let r in a){if("status"===r)continue;const n=l.cellsFormat;let s=a[r];n&&n.indexOf("p")>=0&&"count"===r?s=a[r]:n&&"date"!==l.dataType&&(s=e.cell.getFormattedValue(s,n)),i.push(t.localize(r,{value:s}))}let r=[],n="";if(a&&a.status&&l.editor){n+='<div style="margin-right: 5px; display: flex; border-radius: 8px; align-items: center;">';const e=l.editor.dataSource,i=a.status,s=t.rows.length,o=l.computedWidth;let d=0;if(e)for(let l=0;l<e.length;l++){const a=e[l];if(i[a.value]){const e=a.label?a.label:t.localize("blankSummary"),l=i[a.value].length,c=new Number(l/s*100).toFixed(2),m=e+" "+l+"/"+s+" "+c+"%",u=o*c/100/2;r.push(m);const p=["#D50000","#F6BF26","#33B679","#039BE5","#3F51B5","#8E24AA"];d>p.length-1&&(d=0);n+='<span class="summary-value-part" title="'+m+'" style="width: '+u+"px; font-size: 11px; padding: 5px; background:"+(a.color||p[d++])+'; color: white;"></span>'}}n+="</div>"}const s=i.join(", "),o=t.summaryRow.editing?'<span class="smart-arrow-down"></span>':"";let d=`<div title = "${s}" class="smart-truncate summary-value" > <span class="label">${s}</span>${o}</div> `;r.length&&(d=`<div title = "${s}" class="smart-truncate summary-value" > <span style="align-items: center; display: flex;" class="label">${n}${s}</span>${o}</div> `);if(t.columns[0].dataField===l.dataField&&i.length<3){const e=t._recyclingRows.length;d=`<div title = "${s}" class="smart-truncate summary-value" > ${`<span style = "justify-content: flex-start" class="smart-truncate summary-value" > ${1===e?t.localize("oneRow"):t.localize("rows",{value:e})}</span> `} <span class="label">${s}</span>${o}</div> `}c.innerHTML!==d&&(c.innerHTML=d)}else if(t.summaryRow.editing&&l.allowSummary){if(t.columns[0].dataField===l.dataField){const e=t._recyclingRows.length,l=`<div class="smart-truncate summary-value"><span style="justify-content: flex-start" class="smart-truncate summary-value">${1===e?t.localize("oneRow"):t.localize("rows",{value:e})}</span><span class="smart-summary-placeholder label">${t.localize("summary")}</span><span class="smart-arrow-down"></span></div>`;c.innerHTML!==l&&(c.innerHTML=l)}else{const e=`<div class="smart-truncate summary-value"><span class="smart-summary-placeholder label">${t.localize("summary")}</span><span class="smart-arrow-down"></span></div>`;c.innerHTML!==e&&(c.innerHTML=e)}}t.summaryRow.editing&&l.allowSummary&&(t._selection&&t._selection.focusedCell&&t._selection.focusedCell.dataField===l.dataField?c.firstElementChild.setAttribute("has-summary",""):c.firstElementChild.removeAttribute("has-summary"),c.onpointerdown=e=>{e.preventDefault(),e.stopPropagation(),c._clickTarget=e.target},c.onpointerup=l=>{!0!==t._mobile&&c._clickTarget!==l.target||(l.preventDefault(),l.stopPropagation(),t._summaryRowDialog&&t._summaryRowDialog.classList.contains("open")&&t._summaryRowDialog.dataField===e.cell.column.dataField?t._summaryRowDialog.confirm():t._openSummaryRowDialog(e.cell,(()=>{})))})}}else if(t.rowDetail.enabled&&l.rowDetailColumn){let l="",i=t.appearance.showRowStatus||t.appearance.showRowComments?"smart-visibility-hidden":"";if(a.showDetail){l='<button tabindex="-1" class="'+i+' smart-animate" toggled toggle-button="" title="'+t.localize(a.showDetail?"collapseRow":"expandRow",{elementType:"Grid"})+'"></button>'}else{l='<button tabindex="-1" class="'+i+" smart-animate"+(t.rowDetail.dialog.enabled?" row-detail":"")+'" toggle-button="" title="'+t.localize(a.showDetail?"collapseRow":"expandRow",{elementType:"Grid"})+'"></button>'}if(t.appearance.showRowStatus){l=a._style&&a._style.status?`<span class="row-status custom" style = "color: ${a._style.status};" ></span> `+l:'<span class="row-status"></span>'+l,c.innerHTML===l||a.element.star?(a.element.star.classList.remove("smart-hidden"),a.element.star.classList.remove("custom"),a._style&&a._style.status?(a.element.star.style.color=a._style.status,a.element.star.classList.add("custom")):a.element.star.style.color=""):c.innerHTML=l;const i=()=>{if(a.comments&&a.comments.length>0){const e=a.comments.length;a.element.star.classList.add("comments"),a.element.star.setAttribute("title",t.localize(a.starred?"starred":"notStarred",{elementType:"Grid"})+", "+e+" "+t.localize("comments"))}else a.comments&&0===a.comments.length&&a.element.star.classList.remove("comments")};a.element.star=e.querySelector("span"),a.element.star||(c.innerHTML=l,a.element.star=e.querySelector("span")),a.element.star.onpointerdown=e=>{a.canNotify=!1,a.starred=!a.starred,a.canNotify=!0,a.data.$&&(a.data.$.starred=a.starred),a.starred?a.element.star.classList.add("starred"):a.element.star.classList.remove("starred"),a.element.star.setAttribute("title",t.localize(a.starred?"starred":"notStarred",{elementType:"Grid"})),i(),e.stopPropagation(),e.preventDefault(),t.$.fireEvent("rowStarred",{id:a.id,originalEvent:e,row:a,value:a.starred})},a.element.star.setAttribute("title",t.localize(a.starred?"starred":"notStarred",{elementType:"Grid"})),a.starred?a.element.star.classList.add("starred"):a.element.star.classList.remove("starred"),i()}else c.innerHTML!==l&&(c.innerHTML=l);if(a.element.toggleDetailButton=e.querySelector("button"),a.element.toggleDetailButton.setAttribute("title",t.localize(a.showDetail?"collapseRow":"expandRow",{elementType:"Grid"})),(t.rowDetail.template||t.onRowDetailInit)&&a.element.toggleDetailButton.classList.remove("smart-visibility-hidden"),a.comments&&a.comments.length>0){const e=a.comments.length;a.element.toggleDetailButton.classList.remove("smart-visibility-hidden"),t.appearance.showRowStatus?a.element.toggleDetailButton.querySelector(".comments-length")?a.element.toggleDetailButton.querySelector(".comments-length").innerHTML=e:a.element.toggleDetailButton.innerHTML+=`<div class="comments-length'>${e}</div>`:a.element.toggleDetailButton.innerHTML=`<div class="comments-length'>${e}</div>`,a.starred&&a.element.toggleDetailButton.classList.add("starred"),a.element.toggleDetailButton.classList.add("row-comments"),a.element.toggleDetailButton.setAttribute("title",t.localize(a.showDetail?"collapseRow":"expandRowComments",{value:e,elementType:"Grid"}))}else a.comments&&0===a.comments.length&&a.element.toggleDetailButton.classList.remove("row-comments");t.rowDetail.dialog.enabled&&a.element.toggleDetailButton.classList.add("row-detail")}else if(l.commandColumn)e._renderCommands();else if(t.appearance.showRowHeaderNumber&&l.rowHeaderColumn)if(a.addNewRow)c.textContent="";else{const l=l=>{if(e.cell.value)return e.cell.value;if("number"===t.appearance.autoGenerateRowLabelMode)return l.visibleIndex+1;{const e=l.visibleIndex%26,t=Math.floor(l.visibleIndex/26),a="A".charCodeAt(0),i=String.fromCharCode(a+e);let r="";for(let e=0;e<t;e++)r+="A";return r+i}};t._rowsAdded&&t._rowsAdded.indexOf(a.id)>=0?c.textContent="":c.textContent=l(a)}else if(u)if(e.removeAttribute("readonly"),t.appearance.displayLoadingIndicator&&!l.autoGenerated)c.innerHTML='<div class="smart-grid-cell-loading"></div>';else if(a._isMeasureRow)c.innerHTML=s;else switch(c.removeAttribute("title"),e.cell.template){case"checkBox":case"switchButton":case"radioButton":e._setTemplate(s,e.cell.template,c);break;case"tags":case"checklist":case"collaborator":case"updatedBy":case"createdBy":case"multiComboInput":e._setTemplate(s,e.cell.template,c);break;case"attachment":e._setTemplate(s,"attachments",c);break;case"image":e._setTemplate(s,"images",c);break;case"email":e._setTemplate(s,"email",c);break;case"url":e._setTemplate(s,"url",c);break;case"richText":e._setTemplate(s,"richText",c);break;default:e._setTemplate(s,e.cell.template,c)}else{const i=c.firstChild;if(i&&i.classList&&e.toggleButton&&l._treeColumn&&c.children[1]){const e=c.children[0],i=c.children[1].children[0],r=c.children[1].children[1].firstChild,n=c.children[1].children[2];let s="";if(l._treeColumn){if(t.grouping.enabled){let e=a.level-1;t.appearance.showRowHeaderNumber&&e--,t.rowDetail.enabled&&e--,e<-1?s="":"multipleColumns"!==t.grouping.renderMode&&(s+='<div style="width: '+(1+e)*t.grouping.groupIndent+'px;"></div>')}else for(let e=0;e<a.level;e++)s+="<div class='smart-indent'></div>";if(a.checked?r.setAttribute("checked",""):!1===a.checked?r.removeAttribute("checked"):null===a.checked&&r.setAttribute("checked","indeterminate"),a.leaf?a.allowCheck?r.classList.remove("smart-visibility-hidden"):r.classList.add("smart-visibility-hidden"):a.allowCheck?r.classList.remove("smart-hidden"):r.classList.add("smart-hidden"),!l.autoGenerated){const e=a["column_"+l.dataField];e&&e._setStyle(c)}}a.allowCheck?t.checkBoxes.visible?r.classList.remove("smart-hidden"):r.classList.add("smart-hidden"):t.checkBoxes.visible||r.classList.add("smart-hidden"),"card"===t.view&&(r.classList.add("smart-hidden"),i.classList.add("smart-hidden")),e.innerHTML=s,i.classList.add("smart-visibility-hidden"),a.leaf?i.classList.add("smart-visibility-hidden"):(i.classList.remove("smart-visibility-hidden"),a.expanded?i.setAttribute("toggled",""):i.removeAttribute("toggled","")),t.grouping.enabled&&i.classList.add("smart-hidden"),a.data.isEmpty&&i.classList.add("smart-visibility-hidden"),n.innerHTML=d,t.appearance.showTooltips?n.setAttribute("title",t._unescapeString(d)):n.hasAttribute("title")&&n.removeAttribute("title")}else{const i=a["column_"+l.dataField];if(e.getAttribute("rowspan")&&(e.removeAttribute("rowspan"),e.removeAttribute("aria-rowspan"),e.style.height=""),e.getAttribute("colspan")&&(e.removeAttribute("colspan"),e.removeAttribute("aria-colspan")),i){if(i.colSpan>1){const a=t.columns.indexOf(l);let r=0;for(let e=a;e<a+i.colSpan;e++){const l=t.columns[e];l&&l.visible&&(r+=l.computedWidth)}e.style.width=r+"px",e.setAttribute("colspan",""),e.setAttribute("aria-colspan",i.colSpan),i._styleChanged=!0}let r=i.rowSpan;if(i.rowSpan>1){const l=t.rows.indexOf(a);let r=0;a.element.setAttribute("rowspan","");for(let e=l;e<=l+i.rowSpan-1;e++){const l=t.rows[e];l&&l.visible&&l.filtered&&(r+=l.cellHeight)}e.style.height=r+"px",e.setAttribute("rowspan",""),e.setAttribute("aria-rowspan",i.rowSpan),i._styleChanged=!0}else if(l.rowSpan&&!a._isMeasureRow){const n="number"==typeof l.rowSpan?l.rowSpan:l.rowSpan(s,a.visibleIndex,a.data),o=a.visibleIndex;let d=!1;for(let e=0;e<t._cellRowSpan.length;e++){const l=t._cellRowSpan[e];if(o>l[0]&&o<l[1]){d=!0;break}}if(a._rowSpan=n,n&&!d){let s=0;t._cellRowSpan.push([o,o+n,l.dataField]),t._cellRowSpan.maxSpan||(t._cellRowSpan.maxSpan=1),t._cellRowSpan.maxSpan=Math.max(n,t._cellRowSpan.maxSpan),a.element.setAttribute("rowspan","");for(let e=o;e<=o+n-1;e++){const l=t.rows[e];l&&l.visible&&l.filtered&&(s+=l.cellHeight)}e.style.height=s+"px",e.setAttribute("rowspan",""),e.setAttribute("aria-rowspan",n),i._styleChanged=!0,r=n}}if(1===i.colSpan&&e.hasAttribute("colspan")&&(e.style.width="",e.removeAttribute("colspan"),e.removeAttribute("aria-colspan"),i._styleChanged=!0),e.hasAttribute("rowspan")&&1===r&&(e.style.height="",e.removeAttribute("rowspan"),e.removeAttribute("aria-rowspan"),i._styleChanged=!0),c.textContent===d||l.formatFunction||("string"==typeof d&&d.indexOf("&")>=0?"card"===t.view?c.innerHTML=d:t.isScrolling?requestAnimationFrame((()=>{c.innerHTML=d})):c.innerHTML=d:c.textContent=d),i.column.autoGenerated||i._setStyle(c),t.appearance.showTooltips?c.setAttribute("title",i.tooltip||t._unescapeString(d)):c.hasAttribute("title")&&c.removeAttribute("title"),t.appearance.showTooltipsOverflow&&(!t.appearance.showTooltips&&c.hasAttribute("title")&&c.removeAttribute("title"),d&&d.length)){14*(d||"").length*.52>l.computedWidth?c.setAttribute("title",i.tooltip||t._unescapeString(d)):!t.appearance.showTooltips&&c.hasAttribute("title")&&c.removeAttribute("title")}}else c.textContent=d}}if(c.className!==p&&(c.className=p),!t.appearance.displayLoadingIndicator||l.autoGenerated||t.dataSource.boundHierarchy?t.appearance.displayLoadingIndicator&&l.selectionColumn?e.removeAttribute("selected"):!l.autoGenerated&&c.firstChild&&c.firstChild.classList&&c.firstChild.classList.contains("smart-grid-cell-loading")&&(c.firstChild.classList.remove("smart-grid-cell-loading"),e.removeAttribute("selected")):(a.element.removeAttribute("focus"),e.removeAttribute("selected"),c.innerHTML='<div class="smart-grid-cell-loading"></div>'),l.formatFunction&&!a.data.isEmpty&&t.isInitialized&&!a.summaryRow){const i={row:a,column:l,cell:e.cell,oldValue:e.cell.oldValue,value:s,formattedValue:d,template:null};e.cell.canNotify=!1,a.canNotify=!1;const r=Object.assign({},{background:e.cell.background,color:e.cell.color,fontSize:e.cell.fontSize,fontFamily:e.cell.fontFamily,textDecoration:e.cell.textDecoration,fontWeight:e.cell.fontWeight,fontStyle:e.cell.fontStyle});t.hasAttribute("smart-blazor")?await l.formatFunction(i):l.formatFunction(i),c.style.background===r.background&&c.style.color===r.color&&c.style.fontSize===r.fontSize&&c.style.fontFamily===r.fontFamily&&c.style.textDecoration===r.textDecoration&&c.style.fontWeight===r.fontWeight&&c.style.fontStyle===r.fontStyle||(e.cell._styleChanged=!0,e.cell._setStyle(c)),e.cell.background===r.background&&e.cell.color===r.color&&e.cell.fontSize===r.fontSize&&e.cell.fontWeight===r.fontWeight&&e.cell.textDecoration===r.textDecoration&&e.cell.fontFamily===r.fontFamily&&e.cell.fontStyle===r.fontStyle||(e.cell._styleChanged=!0,e.cell._setStyle(c));let n=!0;if(i.value!==s){if(e.toggleButton){c.children[1].children[2].innerHTML=i.value}else c.innerHTML=i.value;n=!1}if(null!==i.template){if(e.toggleButton){if(c.children[1]){const e=c.children[1].children[2];e.innerHTML!==i.template&&(e.innerHTML=i.template)}}else if(c.innerHTML!==i.template){const e=document.createElement("div");e.innerHTML=i.template,e.innerHTML!==c.innerHTML&&(c.innerHTML=i.template)}n=!1}n&&(l.cellsFormat?c.textContent=d:c.textContent=s),e.cell.canNotify=!0,a.canNotify=!0}if(!a.data.isEmpty&&t.isInitialized&&e._applyConditionalFormattingToCell(e.cell,t,c),t.grouping.enabled&&t.dataSource&&t.dataSource.groupBy.length>0&&l===t._firstVisibleColumn&&t.rowDetail.enabled&&t.rowDetail.visible&&c.querySelector("[toggle-button]")){const e=c.querySelector("[toggle-button]");e.classList.remove("smart-visibility-hidden"),e.classList.add("row-detail"),a.element.toggleDetailButton=e,a.element.toggleDetailButton.setAttribute("title",t.localize(a.showDetail?"collapseRow":"expandRow",{elementType:"Grid"})),e.onpointerdown=function(e){a.showDetail=!a.showDetail,e.stopPropagation(),e.preventDefault()}}}_autoWrap(){const e=this,t=e.firstChild,l=e.cell.grid;l.layout.allowCellsWrapShortcut&&e.hasAttribute("focus")&&e.hasAttribute("selected")&&(t.offsetWidth<t.scrollWidth?e._popupCellContent(t.innerHTML,e.cell):l._cellContentPopup&&l._cellContentPopup.remove())}_popupCellContent(e,t){const l=this,a=t.grid;let i=a._cellContentPopup;if(!a._cellContentPopup){i=document.createElement("div");const t=document.createElement("span"),l=document.createElement("div"),r=document.createElement("div");i.style.minHeight="0px",i.style.minWidth="0px",i.setAttribute("theme",a.theme),i.classList.add("smart-grid-cell-content-popup"),r.appendChild(l),r.classList.add("smart-grid-text-area-container"),l.innerHTML=e,l.classList.add("smart-grid-cell-content-popup-content"),t.classList.add("smart-hidden"),t.classList.add("close-button"),t.classList.add("smart-grid-icon"),t.classList.add("smart-icon-cancel-circled"),t.onclick=function(){a._cellContentPopup.parentNode.removeChild(a._cellContentPopup)},i.classList.add("smart-grid-text-area-dialog"),i.appendChild(r),i.appendChild(t),a._cellContentPopup=i}i.querySelector(".smart-grid-cell-content-popup-content").innerHTML=e;const r=a.offset(a.$.scrollView);i.style.top=a._offsetTop(l)-r.top+"px",i.style.left=a._offsetLeft(l)-r.left+"px",i.style.width=l.offsetWidth-4+"px",a.$.scrollView.appendChild(i)}_applyConditionalFormattingToCell(e,t,l){const a=this,i=e.column.dataField,r=e.row,n=e.row.index,s=r._style,o=r.data&&r.data.$?r.data.$.id:null;if(e.column.autoGenerated){const l=t._conditionalColors;if(l&&e.column.rowHeaderColumn)if("border"===l.decorate){const t=l.colors;t&&t[o]?(e.element.classList.add("smart-decorate"),e.element.style.setProperty("--smart-decorate-color",t[o].color)):e.element.classList.remove("smart-decorate")}else e.element.classList.remove("smart-decorate")}else{if(t._conditionalColors){const n=t._conditionalColors;if("border"!==n.decorate){const t=n.colors;if(t&&t[o]){const s="cell"===n.decorate?t[o][i]:t[o].color;if(s){const t=new Smart.Color(s).getInvertedColor();a.cell.canNotify=!1,r.canNotify=!1,e.background=s,e.color=t,a.cell._setStyle(l),a.cell.canNotify=!0,r.canNotify=!0}else e.background&&e.color&&(a.cell.canNotify=!1,r.canNotify=!1,e.background=null,e.color=null,a.cell._setStyle(l),a.cell.canNotify=!0,r.canNotify=!0)}else e.background&&e.color&&(a.cell.canNotify=!1,r.canNotify=!1,e.background=null,e.color=null,a.cell._setStyle(l),a.cell.canNotify=!0,r.canNotify=!0)}else e.background&&e.color&&(a.cell.canNotify=!1,r.canNotify=!1,e.background=null,e.color=null,a.cell._setStyle(l),a.cell.canNotify=!0,r.canNotify=!0)}if(t._conditionalFormatting&&t._conditionalFormatting[i]){const e=t._conditionalFormatting[i][n];a.cell.canNotify=!1,r.canNotify=!1,e?(a.cell._styleChanged=!0,a.cell.background=e.background,a.cell.color=e.color,a.cell.fontFamily=e.fontFamily,a.cell.fontSize=e.fontSize,a.cell._setStyle(l)):a.cell._styleChanged||(s&&s._changed?(a.cell._styleChanged=!0,a.cell.background=s.background,a.cell.color=s.color,a.cell.fontFamily=s.fontFamily,a.cell.fontSize=s.fontSize,a.cell._setStyle(l)):(a.cell._styleChanged=!0,a.cell.background=null,a.cell.color=null,a.cell.fontFamily=null,a.cell.fontSize=null,a.cell._setStyle(l))),a.cell.canNotify=!0,r.canNotify=!0}else t._conditionalFormattingChanged&&!a.cell._styleChanged&&(a.cell.canNotify=!1,r.canNotify=!1,s&&s._changed?(a.cell._styleChanged=!0,a.cell.background=s.background,a.cell.color=s.color,a.cell.fontFamily=s.fontFamily,a.cell.fontSize=s.fontSize,a.cell._setStyle(l)):(a.cell._styleChanged=!0,a.cell.background=null,a.cell.color=null,a.cell.fontFamily=null,a.cell.fontSize=null,a.cell._setStyle(l)),a.cell.canNotify=!0,r.canNotify=!0)}}_rotateCellContent(e,t,l){const a=document.createElement("span");return e.innerHTML="",a.innerHTML=l,e.appendChild(a),a.className="rotate",a.style.transform="rotate("+t.cellsRotationAngle+"deg)",this.grid._recycleRotate(e,a,t.cellsAlign,t.cellsVerticalAlign,l)}_getCellAlignment(e,t){const l=e["column_"+t.dataField],a=l&&l.verticalAlign||t.cellsVerticalAlign;let i=l&&l.align||t.cellsAlign;const r={align:"",verticalAlign:""};if(!l)return{align:"align-left",verticalAlign:"align-middle"};switch(l.grid.rightToLeft&&("left"===i?i="right":"right"===i&&(i="left")),i){case"left":r.align="align-left";break;case"center":case"middle":r.align="align-center";break;case"right":r.align="align-right"}switch(a){case"top":r.verticalAlign="align-top";break;case"center":case"middle":r.verticalAlign="align-middle";break;case"bottom":r.verticalAlign="align-bottom"}return r}template(){return""}_detach(){this.element=null,this.cell=null}onDetached(){this._detach()}});class e{render(e){const t=this,l={svg:null,width:e.width||100,height:e.height||30,gap:e.gap||5,strokeWidth:e.strokeWidth||2,type:e.type||"column",colors:e.colors||["var(--smart-primary)"],points:e.points,labels:e.labels,colorFunction:e.colorFunction,tooltipFormatFunction:e.tooltipFormatFunction,min:e.min,max:e.max};switch(l.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),l.svg.setAttribute("width",l.width),l.svg.setAttribute("height",l.height),function(e){Array.isArray(e.colors)||(e.colors=t.colors.split(",")),e.points&&(e.points=e.points.split(",").map((e=>parseInt(e,10))))}(l),l.type){case"column":return t.column(l);case"bar":return t.bar(l);case"line":return t.line(l);case"pie":return t.pie(l);case"stacked":return t.stacked(l)}}colorFunction(e,t){const l=function(e,t){e===t&&(t=e+100);const l=(t-e)/5;return[e+l,e+2*l,e+3*l,e+4*l]}(e,t),a=["#D50000","#F4511E","#F6BF26","#039BE5","#33B679"];return e=>e<l[0]?a[0]:e<l[1]?a[1]:e<l[2]?a[2]:e<l[3]?a[3]:a[4]}column(e){const t=e.gap/e.points.length+e.width/e.points.length-e.gap,l=e.max||Math.max(...e.points),a=e.min||Math.min(...e.points),i=e.height/(Math.abs(a)+Math.abs(l)),r=Math.abs(a)*i;return e.colorFunction||(e.colorFunction=this.colorFunction(a,l)),e.points.forEach(((n,s)=>{isNaN(n)&&(n=0);const o=document.createElementNS("http://www.w3.org/2000/svg","rect"),d=Math.abs(n)*i;o.setAttribute("x",s*t+s*e.gap),o.setAttribute("point",n);let c=n>=0?"var(--smart-primary)":"var(--smart-error)";if(l>0&&a<0?n>=0?o.setAttribute("y",e.height-r-1-d):o.setAttribute("y",e.height-r-1):l>=0&&a>=0?o.setAttribute("y",e.height-d):a<=0&&l<=0&&o.setAttribute("y",d),o.setAttribute("width",t),o.setAttribute("height",d),e.colorFunction){const t=e.colorFunction(n);t&&(c=t)}o.setAttribute("fill",c);const m=e.tooltipFormatFunction?e.tooltipFormatFunction(n):n;o.setAttribute("data-title",m),e.svg.appendChild(o)})),e.svg.outerHTML}bar(e){const t=e.height-3,l=Math.max(5,e.gap/e.points.length+t/e.points.length-e.gap),a=e.max||Math.max(...e.points),i=e.min||Math.min(...e.points);let r=e.width/(Math.abs(i)+Math.abs(a));const n=Math.abs(i)*r;return e.colorFunction||(e.colorFunction=this.colorFunction(i,a)),e.points.forEach(((t,s)=>{isNaN(t)&&(t=0);const o=document.createElementNS("http://www.w3.org/2000/svg","rect"),d=Math.abs(t)*r;o.setAttribute("y",s*l+s*e.gap),o.setAttribute("point",t);let c=t>=0?"var(--smart-primary)":"var(--smart-error)";if(a>0&&i<0?t>=0?o.setAttribute("x",n):o.setAttribute("x",n-d):(a>=0&&i>=0||i<=0&&a<=0)&&o.setAttribute("x",0),o.setAttribute("width",d),o.setAttribute("height",l),e.colorFunction){const l=e.colorFunction(t);l&&(c=l)}o.setAttribute("fill",c);const m=e.tooltipFormatFunction?e.tooltipFormatFunction(t):t;o.setAttribute("data-title",m),e.svg.appendChild(o)})),e.svg.outerHTML}line(e){const t=e.width/(e.points.length-1),l=e.max||Math.max(...e.points),a=e.min||Math.min(...e.points),i=e.height/(Math.abs(a)+Math.abs(l)),r=Math.abs(a)*i;e.colorFunction||(e.colorFunction=this.colorFunction(a,l));let n="var(--smart-primary)",s=[],o=[];e.svg.setAttribute("overflow","visible");for(let l=0;l<e.points.length;l++){let a=e.points[l];isNaN(a)&&(a=0);const n=l*t,d=e.height-r-a*i;o.push({x:n,y:d,point:a}),2===o.length&&(s.push(o),o=[]),s.length>0&&0===o.length&&o.push(s[s.length-1][1])}for(let t=0;t<s.length;t++){const l=s[t];if(e.colorFunction){const t=e.colorFunction(l[0].point);t&&(n=t)}if(0===t){const t=document.createElementNS("http://www.w3.org/2000/svg","circle");e.svg.appendChild(t),t.setAttribute("cx",l[0].x),t.setAttribute("cy",l[0].y),t.setAttribute("r",3),t.setAttribute("fill",n);const a=e.tooltipFormatFunction?e.tooltipFormatFunction(l[0].point):l[0].point;t.setAttribute("data-title",a),t.style.display="none"}const a=document.createElementNS("http://www.w3.org/2000/svg","line");e.svg.appendChild(a),a.setAttribute("x1",l[0].x),a.setAttribute("y1",l[0].y),a.setAttribute("x2",l[1].x),a.setAttribute("y2",l[1].y);const i=document.createElementNS("http://www.w3.org/2000/svg","circle");e.svg.appendChild(i),i.setAttribute("cx",l[1].x),i.setAttribute("cy",l[1].y),i.setAttribute("r",3),i.setAttribute("fill",n);const r=e.tooltipFormatFunction?e.tooltipFormatFunction(l[1].point):l[1].point;i.setAttribute("data-title",r),i.style.display="none",a.setAttribute("fill","none"),a.setAttribute("stroke-width",e.strokeWidth),a.setAttribute("stroke",n)}return e.svg.outerHTML}pie(e){const t=Math.min(e.width,e.height)/2,l=e.width/2,a=e.height/2,i=e.points.reduce(((e,t)=>e+Math.abs(t)),0);let r=0;const n=e.max||Math.max(...e.points),s=e.min||Math.min(...e.points);return e.colorFunction||(e.colorFunction=this.colorFunction(s,n)),e.points.forEach((n=>{isNaN(n)&&(n=0);let s=e.color;if(e.colorFunction){const t=e.colorFunction(n);t&&(s=t)}const o=Math.abs(n)/i*2*Math.PI,d=r+o,c=l+t*Math.cos(r),m=a+t*Math.sin(r),u=l+t*Math.cos(d),p=a+t*Math.sin(d),g=document.createElementNS("http://www.w3.org/2000/svg","path"),h=o>Math.PI?1:0,f=`M ${l},${a} L ${c},${m} A ${t},${t} 0 ${h} 1 ${u},${p} Z`;g.setAttribute("d",f),g.setAttribute("fill",s);const b=e.tooltipFormatFunction?e.tooltipFormatFunction(n):`${(n/i*100).toFixed(2)}%`;g.setAttribute("data-title",b),e.svg.appendChild(g),r=d})),e.svg.outerHTML}stacked(e){let t=e.points.reduce(((e,t)=>e+t),0),l=(e.points.length-1)*e.gap,a=e.width-l;const i=e.max||Math.max(...e.points),r=e.min||Math.min(...e.points);e.colorFunction||(e.colorFunction=this.colorFunction(r,i));let n=0;return e.points.forEach(((l,i)=>{isNaN(l)&&(l=0);let r=e.colors[i%e.colors.length];if(e.colorFunction){const t=e.colorFunction(l);t&&(r=t)}const s=l/t*a,o=document.createElementNS("http://www.w3.org/2000/svg","rect");o.setAttribute("x",n),o.setAttribute("y",0),o.setAttribute("width",s),o.setAttribute("height",e.height),o.setAttribute("fill",r);const d=document.createElementNS("http://www.w3.org/2000/svg","title");d.textContent=l,o.appendChild(d),e.svg.appendChild(o),n+=s+e.gap})),e.svg.outerHTML}}})();
1429
1429
 
1430
1430
  /***/ }),
1431
1431
 
@@ -1446,14 +1446,14 @@ Smart.Utilities.Assign("Grid.Column",class{constructor(t){const e=this;"string"!
1446
1446
  /***/ 5306:
1447
1447
  /***/ (() => {
1448
1448
 
1449
- Smart("smart-grid",class extends Smart.ScrollViewer{static get properties(){return{ai:{type:"any",reflectToAttribute:!1,value:{model:{value:"gpt-3.5-turbo-instruct",type:"string"},maxTokens:{value:150,type:"number"},temperature:{value:.7,type:"number"},url:{value:"https://api.openai.com/v1/completions",type:"string"},key:{value:"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",type:"string"}}},appearance:{value:{alternationStart:{value:0,type:"int"},alternationEnd:{value:0,type:"int"},alternationCount:{value:0,type:"int"},allowHover:{value:!1,type:"boolean",defaultReflectToAttribute:!0},allowHeaderHover:{value:!0,type:"boolean",defaultReflectToAttribute:!0},allowRowToggleAnimation:{value:!1,type:"boolean"},allowRowDetailToggleAnimation:{value:!1,type:"boolean"},allowSortAnimation:{value:!1,type:"boolean"},allowColumnLabelAnimation:{value:!0,type:"boolean"},allowCheckBoxesSelectionAnimation:{value:!0,type:"boolean"},allowColumnMenuAnimation:{value:!0,type:"boolean"},allowColumnSortButtonAnimation:{value:!0,type:"boolean"},allowColumnActionButtonAnimation:{value:!0,type:"boolean"},allowColumnFilterButtonAnimation:{value:!0,type:"boolean"},allowColumnStickyPosition:{value:!1,type:"boolean"},autoShowColumnSortButton:{value:!0,type:"boolean"},autoShowColumnActionButton:{value:!0,type:"boolean"},autoGenerateRowLabelMode:{value:"number",type:"string"},autoGenerateColumnLabelMode:{value:"letter",type:"string"},autoShowColumnFilterButton:{value:!0,type:"boolean"},cardTitleField:{value:"",type:"string"},displayLoadingIndicator:{value:!1,type:"boolean"},loadingIndicatorPlaceholder:{value:"Loading...",type:"string"},placeholder:{value:"No Rows",type:"string"},sortAnimationDuration:{value:500,type:"number"},showRowHeader:{value:!1,type:"boolean"},showRowStatus:{value:!1,type:"boolean"},showRowComments:{value:!1,type:"boolean"},showRowHeaderNumber:{value:!1,type:"boolean"},showRowHeaderEditIcon:{value:!0,type:"boolean",defaultReflectToAttribute:!0},showRowHeaderDragIcon:{value:!1,type:"boolean"},showColumnHeaderDragIcon:{value:!1,type:"boolean"},showRowHeaderSelectIcon:{value:!1,type:"boolean"},showRowHeaderFocusIcon:{value:!1,type:"boolean"},showColumnHeaderLines:{value:!0,type:"boolean",defaultReflectToAttribute:!0},showColumnGroupLines:{value:!0,type:"boolean",defaultReflectToAttribute:!0},showColumnGroupCellLines:{value:!0,type:"boolean",defaultReflectToAttribute:!0},showColumnLines:{value:!0,type:"boolean",defaultReflectToAttribute:!0},showRowLines:{value:!0,type:"boolean",defaultReflectToAttribute:!0},showFilterColumnBackground:{value:!1,type:"boolean"},showSortColumnBackground:{value:!1,type:"boolean"},showFrozenColumnBackground:{value:!0,type:"boolean"},showFrozenRowBackground:{value:!0,type:"boolean"},showSelectionOnTop:{value:!0,type:"boolean"},showColumnSortButton:{value:!0,type:"boolean"},showColumnFilterButton:{value:!0,type:"boolean"},showColumnDescriptionButton:{value:!1,type:"boolean"},showColumnIcon:{value:!1,type:"boolean"},showColumnCustomButton:{value:!1,type:"boolean"},showColumnActionButton:{value:!0,type:"boolean"},showColumnGroupsInColumnPanel:{value:!1,type:"boolean"},showTooltips:{value:!1,type:"boolean"},showTooltipsOverflow:{value:!0,type:"boolean"},showResizeTooltips:{value:!0,type:"boolean"},showHorizontalScrollBarOnFixedColumns:{value:!1,type:"boolean"},showVerticalScrollBarOnFixedColumns:{value:!1,type:"boolean"},showTreeRowHeader:{value:!1,type:"boolean"},showTodayDateAsString:{value:!0,type:"boolean"},showViewBar:{value:!1,type:"boolean"},showViewBarAsDropdown:{value:!1,type:"boolean"},viewBarAppendTo:{value:null,type:"any"}},type:"object"},behavior:{value:{autoDestroy:{value:!0,type:"boolean"},allowColumnAutoSizeOnDoubleClick:{value:!0,type:"boolean"},allowRowAutoSizeOnDoubleClick:{value:!0,type:"boolean"},allowColumnReorder:{value:!1,type:"boolean"},allowColumnFreeze:{value:!0,type:"boolean"},allowRowReorder:{value:!1,type:"boolean"},allowMouseWheel:{value:!0,type:"boolean"},doubleClickTimingDelay:{value:300,type:"number"},columnResizeMode:{value:"none",type:"string",allowedValues:["none","split","growAndShrink"]},rowResizeMode:{value:"none",type:"string",allowedValues:["none","split","growAndShrink"]}},type:"object"},layout:{value:{autoWrap:{value:!0,type:"boolean"},autoWidth:{value:!1,type:"boolean"},autoHeight:{value:!1,type:"boolean"},allowCellsWrap:{value:!1,type:"boolean"},allowCellsWrapShortcut:{value:!0,type:"boolean"},autoGenerateColumnWidth:{value:null,type:"number?"},autoSizeNewColumn:{value:!1,type:"boolean",reflectToAttribute:!1},autoSizeNewColumnMinWidth:{value:180,type:"number",reflectToAttribute:!1},cardMinWidth:{value:250,type:"any",reflectToAttribute:!1},cardRowMinHeight:{value:45,type:"any",reflectToAttribute:!1},cardsPerRow:{value:"auto",type:"any",reflectToAttribute:!1},cardVertical:{value:!0,type:"boolean",reflectToAttribute:!1},columnWidth:{value:null,type:"any",reflectToAttribute:!1},columnHeight:{value:null,type:"any",reflectToAttribute:!1},columnMinHeight:{value:30,type:"any",reflectToAttribute:!1},dropDownWidth:{value:700,type:"any",reflectToAttribute:!1},dropDownHeight:{value:500,type:"any",reflectToAttribute:!1},isDirty:{value:!1,type:"boolean"},loadingIndicatorPosition:{value:"center",allowedValues:["bottom","center","top"],type:"string"},rowMinHeight:{value:30,type:"number"},rowHeight:{value:null,type:"any",reflectToAttribute:!1},viewBarWidth:{value:200,type:"number"}},type:"object"},dataExport:{value:{header:{value:!0,type:"boolean"},filterBy:{value:null,type:"object"},groupBy:{value:null,type:"object"},style:{value:null,type:"object"},fileName:{value:"smartGrid",type:"string?"},pageOrientation:{value:"portrait",type:"string"},expandChar:{value:"+",type:"string"},collapseChar:{value:"-",type:"string"},view:{value:!1,type:"boolean"},viewStart:{value:null,type:"number?"},viewEnd:{value:null,type:"number?"},rowIds:{value:null,type:"array?"}},type:"object"},clipboard:{value:{enabled:{value:!0,type:"boolean"},autoFillMode:{value:"copy",allowedValues:["none","copy","fillSeries"],type:"string"},onPasteValue:{value:null,type:"any"}},type:"object"},conditionalFormatting:{value:null,type:"array?",reflectToAttribute:!1},columns:{value:[],type:"any",reflectToAttribute:!1},contextMenu:{value:{selector:{value:"",type:"string"},enabled:{value:!1,type:"boolean"},width:{value:150,type:"number"},height:{value:null,type:"number?"},customContextMenuItems:{value:null,type:"any"},dataSource:{value:{contextMenuItemDelete:{value:{command:{value:"contextMenuItemDeleteCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:!0,type:"boolean"},icon:{value:"smart-icon-delete",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},contextMenuItemEdit:{value:{command:{value:"contextMenuItemEditCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:!0,type:"boolean"},icon:{value:"smart-icon-mode-edit",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},contextMenuItemCustom:{value:{command:{value:null,type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:!1,type:"boolean"},icon:{value:"smart-icon-settings",type:"string"},label:{value:"",type:"string"}},type:"object",reflectToAttribute:!1}},type:"object",reflectToAttribute:!1}},type:"object",reflectToAttribute:!1},columnMenu:{value:{autoClose:{value:!0,type:"boolean"},dataSource:{value:{columnMenuCustomizeType:{value:{command:{value:"customizeTypeCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:!1,type:"any"},icon:{value:"smart-icon-settings",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemClone:{value:{command:{value:"duplicateCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:!1,type:"any"},icon:{value:"smart-icon-duplicate",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemInsertLeft:{value:{command:{value:"insertLeftCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:!1,type:"any"},icon:{value:"smart-icon-insert-left",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemInsertRight:{value:{command:{value:"insertRightCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:!1,type:"any"},icon:{value:"smart-icon-insert-right",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemSortAsc:{value:{command:{value:"sortAscCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:"auto",type:"any"},icon:{value:"smart-icon-sort-name-up",type:"string"},iconAlt:{value:"smart-icon-sort-number-up",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemSortDesc:{value:{command:{value:"sortDescCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:"auto",type:"any"},icon:{value:"smart-icon-sort-name-down",type:"string"},iconAlt:{value:"smart-icon-sort-number-down",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemRemoveSort:{value:{command:{value:"removeSortCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:"auto",type:"any"},icon:{value:"smart-icon-cancel-circled",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemSort:{value:{command:{value:"addSortCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:"auto",type:"any"},icon:{value:"smart-icon-sort",type:"string"},iconAlt:{value:"smart-icon-sort",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemFilter:{value:{command:{value:"addFilterCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:"auto",type:"any"},icon:{value:"smart-icon-add-filter",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemRemoveFilter:{value:{command:{value:"removeFilterCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:"auto",type:"any"},icon:{value:"smart-icon-cancel-circled",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemGroupBy:{value:{command:{value:"groupByCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:"auto",type:"any"},icon:{value:"smart-icon-group",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemRemoveGroupBy:{value:{command:{value:"removeGroupByCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:"auto",type:"any"},icon:{value:"smart-icon-ungroup",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemHide:{value:{command:{value:"hideColumnCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:!1,type:"any"},icon:{value:"smart-icon-visibility-off",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemDelete:{value:{command:{value:"deleteColumnCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:!1,type:"any"},icon:{value:"smart-icon-delete",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1}},type:"object",reflectToAttribute:!1},visible:{value:!1,type:"boolean"},enabled:{value:!0,type:"boolean"},width:{value:250,type:"number"},height:{value:null,type:"number?"}},type:"object",reflectToAttribute:!1},columnGroups:{value:[],type:"array",reflectToAttribute:!1},charting:{value:{appendTo:{value:null,type:"any"},enabled:{value:!1,type:"boolean"},colorScheme:{value:"scheme01",type:"string"},description:{value:"",type:"string"},dialog:{value:{header:{value:"{{message}}",type:"string"},height:{value:400,type:"any"},width:{value:400,type:"any"},left:{value:"center",type:"any"},top:{value:"center",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:!1,type:"boolean"}},type:"object"},formatSettings:{value:{},type:"object"}},type:"object"},view:{value:"grid",allowedValues:["grid","kanban","card","scheduler","timeline"],type:"string"},currentUser:{value:null,type:"any",reflectToAttribute:!1},dropDownMode:{value:!1,type:"boolean",reflectToAttribute:!1},dataSource:{value:null,type:"any",reflectToAttribute:!1},dataSourceMap:{value:{checklist:"checklist",color:"color",comments:"comments",dueDate:"dueDate",id:"id",priority:"priority",progress:"progress",startDate:"startDate",status:"status",swimlane:"swimlane",tags:"tags",text:"text",description:"description",userId:"userId",history:"history",createdUserId:"createdUserId",createdDate:"createdDate",updatedUserId:"updatedUserId",updatedDate:"updatedDate"},type:"any",reflectToAttribute:!1},dataSourceSettings:{value:{autoGenerateColumns:{value:!1,type:"boolean"},sanitizeHTML:{value:"blackList",allowedValues:["all","blackList","none"],type:"string"},root:{value:"",type:"string"},record:{value:"",type:"string"},keyDataField:{value:"",type:"string"},parentDataField:{value:"",type:"string"},childrenDataField:{value:"",type:"string"},groupBy:{value:[],type:"array"},dataFields:{value:[],type:"array"},mapChar:{value:".",type:"string"},id:{value:"",type:"string"},relations:{value:[],type:"any",reflectToAttribute:!1},virtualDataSource:{value:null,type:"any"},virtualDataSourceOnExpand:{value:null,type:"any"}},type:"object"},formulas:{value:!1,type:"boolean"},highlighted:{value:-1,type:"any"},uploadSettings:{value:{url:{value:"",type:"string",reflectToAttribute:!1},removeUrl:{value:"",type:"string",reflectToAttribute:!1},existsUrl:{value:"",type:"string",reflectToAttribute:!1},name:{value:"userfile[]",type:"string",reflectToAttribute:!1},uploadMaxCount:{value:5,type:"number",reflectToAttribute:!1},uploadMaxSize:{value:2097152,type:"number",reflectToAttribute:!1},data:{value:null,type:"object",reflectToAttribute:!1},onUploadStarted:{value:null,type:"any",reflectToAttribute:!1},onUploadCompleted:{value:null,type:"any",reflectToAttribute:!1},onUploadRemove:{value:null,type:"any",reflectToAttribute:!1},onUploadError:{value:null,type:"any",reflectToAttribute:!1},onChange:{value:null,type:"any",reflectToAttribute:!1},onProgress:{value:null,type:"any",reflectToAttribute:!1},onAbort:{value:null,type:"any",reflectToAttribute:!1},onError:{value:null,type:"any",reflectToAttribute:!1},onSetHeaders:{value:null,type:"any",reflectToAttribute:!1},singleFilePost:{value:!0,type:"boolean",reflectToAttribute:!1},userFiles:{value:[],type:"array",reflectToAttribute:!1}},reflectToAttribute:!1,type:"object"},grouping:{value:{enabled:{value:!1,type:"boolean",reflectToAttribute:!1},allowCollapse:{value:!1,type:"boolean",reflectToAttribute:!1},autoHideGroupColumn:{value:!1,type:"boolean",reflectToAttribute:!1},autoExpandAll:{value:!1,type:"boolean",reflectToAttribute:!1},autoExpandToLevel:{value:0,type:"number",reflectToAttribute:!1},onGroupDefaultExpanded:{value:null,type:"any",reflectToAttribute:!1},expandMode:{value:"buttonClick",type:"string",allowedValues:["buttonClick","rowClick"],reflectToAttribute:!1},renderMode:{type:"string",value:"advanced",allowedValues:["basic","compact","advanced","multipleColumns"]},groupBy:{value:[],type:"array",reflectToAttribute:!1},groupRowHeight:{value:50,type:"any",reflectToAttribute:!1},toggleButtonIndent:{value:27,type:"number",reflectToAttribute:!1},groupIndent:{value:27,type:"number",reflectToAttribute:!1},groupBar:{value:{visible:{value:!1,type:"boolean",reflectToAttribute:!1},allowColumnDragDrop:{value:!0,type:"boolean",reflectToAttribute:!0},allowColumnCloseButtons:{value:!0,type:"boolean",reflectToAttribute:!0}},type:"object"},formatFunction:{value:null,type:"any",reflectToAttribute:!1},summaryRow:{value:{inline:{value:!0,type:"boolean"},visible:{value:!0,type:"boolean"}},type:"object"}},type:"object"},messages:{extend:!0,value:{en:{invalidColumnProperty:'{{elementType}}: Invalid property name "{{propertyName}}" set for Column: "{{type}}"',invalidRowProperty:'{{elementType}}: Invalid property name "{{propertyName}}" set for Row"',invalidCellValue:'Invalid cell value "{{value}}", Validation rule: "{{validationRule}}"',invalidValue:"Invalid value",invalidMinValue:"{{value}} above {{min}} must be filled out",invalidMaxValue:"{{value}} below {{max}} must be filled out",invalidMinLengthValue:"{{value}} is shorter than the minimum length of {{min}} characters",invalidMaxLengthValue:"{{value}} is longer than the maximum length of {{max}} characters",requiredValue:"{{value}} must be filled out",frozenColumns:"{{elementType}}: To Pin/Freeze a column group, all columns within it should be frozen.",frozenRows:"{{elementType}}: To Pin/Freeze a special cell, all rows within it should be frozen.",columnGroups:"{{elementType}}: Please, check the initialization of the smartGrid's columns array. The columns in a column group are expected to be siblings in the columns array.",viewGrid:"Grid",viewKanban:"Kanban",viewCard:"Cards",viewScheduler:"Scheduler",viewTimeline:"Timeline",kanbanNone:"Blank",schedulerDescription:"Which date column would you like to use for this view? Your data would be placed based on the dates in this column.",schedulerDescriptionInfo:"A range of data would be displayed when a start date field has an asosciated due date field.",kanbanDescription:'Start from a project board with columns generated by the "{{column}}" column options.',kanbanNoneDescription:"Create a new column and start from scratch with a completely blank project board. You can add columns and configure settings yourself.",kanbanBasic:"Template",kanbanBasicDescription:'Create a new column and start from a project board with columns for "To do", "in progress" and "Done".',uncategorized:"Uncategorized",toDo:"To do",inProgress:"In progress",done:"Done",min:"Min: {{value}}",max:"Max: {{value}} ",sum:"Sum: {{value}} ",avg:"Avg: {{value}} ",cells:"{{value}} cells selected",rows:"{{value}} rows",oneRow:"1 row",unique:"Unique: {{value}}",blank:"Empty: {{value}}",filled:"Filled: {{value}}",summary:"Summary",countSummary:"Count",minSummary:"Min",maxSummary:"Max",avgSummary:"Avg",blankSummary:"Empty",uniqueSummary:"Unique",filledSummary:"Filled",statusSummary:"Status",sumSummary:"Sum",completed:"Tasks Completed: {{value}}",count:"Count: {{value}} ",pagerFirstButton:"First",pagerLastButton:"Last",pagerPreviousButton:"Previous",pagerNextButton:"Next",pagerNavigateToLabel:"Go to:",pagerPageSizeLabel:"Show:",pagerNavigateToInputPlaceholder:"",pagerEllipsis:"...",pagerSummaryString:"of",pagerSummaryPrefix:"of",pagerSummarySuffix:"",columnMenuCustomizeType:"Column settings",columnMenuItemClone:"Clone column",columnMenuItemInsertLeft:"Insert left",columnMenuItemInsertRight:"Insert right",columnMenuItemSortAsc:"Sort {{mode}}",columnMenuItemSortDesc:"Sort {{mode}}",columnMenuItemRemoveSort:"Remove Sort",columnMenuItemFilter:"Filter column",columnMenuItemSort:"Sort column",columnMenuItemRemoveFilter:"Remove Filter",columnMenuItemGroupBy:"Group column",columnMenuItemRemoveGroupBy:"Remove Group",columnMenuItemHide:"Hide column",columnMenuItemShow:"Show column",columnMenuItemDelete:"Delete column",columnResizeTooltip:"width: {{value}}px",rowResizeTooltip:"height: {{value}}px",commandBarAddRow:"Add",commandBarDeleteRow:"Delete row",commandBarBatchRevert:"Revert",commandBarBatchSave:"Save",commandBarFilter:"Filter",commandBarSort:"Sort",commandBarSearch:"Search",commandBarCustomize:"Customize",commandBarGroup:"Group",commandColumnEdit:"Edit",commandColumnDelete:"Delete",commandColumnCancel:"Cancel",commandColumnUpdate:"Update",contextMenuItemDelete:"Delete row",contextMenuItemEditCell:"Edit cell",contextMenuItemEditRow:"Edit row",commandColumnMenu:"",expandRow:"Expand row (Shift + Enter)",expandRowComments:"Expand row and see {{value}} comments",collapseRow:"Collapse row",addNewRow:"Click here to add a new row",addNewRowAlt:"<span>Add new empty row</span> <code>Ctrl</code> + <code>Space</code>",addNewRowAltSmall:"Add new empty row",addNewColumn:"Click here to add a new column",dialogChartHeader:"{{value}} Chart",dialogRowDetailHeader:"Row Id: {{value}}",dialogDescriptionHeader:"Column: {{value}}",dialogRowDetailButtonConfirm:"OK",dialogRowDetailButtonCancel:"CANCEL",dialogEditHeaderDisabled:"Row: {{value}}",dialogEditHeader:"Row: {{value}}",dialogEditHeaderMenu:"Toggle Sidebar",dialogExpandRowHeader:"Edit Record",dialogAddButtonConfirm:"ADD",dialogAddButtonCancel:"CANCEL",dialogEditButtonConfirm:"OK",dialogEditButtonSave:"Save",dialogEditButtonAutoSave:"Auto Save",dialogEditButtonCancel:"Cancel",dialogFilterButtonConfirm:"FILTER",dialogFilterButtonCancel:"CLEAR",dialogDeleteButtonConfirm:"DELETE",dialogDeleteButtonCancel:"CANCEL",dialogEditColumn:"Column: {{value}}",dialogNewColumn:"New column",dialogAddColumn:"Add Column",dialogAddColumnDate:"Choose a date column",dialogAddColumnStatus:"Choose a grouping column",dialogAddColumnStatusDescription:"Represent the status of each record",dialogAddColumnStatusNotes:"Your records will be grouped based on this column",dialogAddHeader:"Add Row",dialogDeleteHeader:"Delete Row",dialogFilterHeader:"Filter by",dialogFilterMinLabel:"Min",dialogFilterMaxLabel:"Max",dialogFileHeader:"File",dialogImageFileHeader:"Image",dialogFileDrop:"or drag and drop file(s) to upload",dialogFileUpload:"Select Files(s) to Upload",dialogFileURL:"You can also provide the URL to a file",dialogFileURLUpload:"Upload",dialogFileLink:"Link (URL)",dialogFileDevice:"My Device",dialogMyFiles:"My Files",dialogMyFilesTitle:"Select files from your already uploaded files.",dialogFileSize:'No file currently added. The "{{value}}" file cannot be uploaded. Maximum file size is {{fileSize}}.',dialogFileCount:'The following files cannot be added "{{files}}". Maximum files allowed is {{fileCount}}.',dialogFileFileUpload:"No files currently selected",dialogAddColumnName:"Name",dialogAddColumnNameInfo:"Name of the column. The name of the column will be displayed in the column header.",dialogAddColumnDescription:"Description",dialogAddColumnDescriptionInfo:"Description of the column. When the description is set, an icon will be displayed in the column header. A tooltip with the description will be displayed when you point at the icon.",dialogAddColumnNamePlaceholder:"Column name (optional)",dialogAddColumnDescriptionPlaceholder:"Describe this column (optional)",dialogAddColumnType:"Type",dialogAddColumnTypeInfo:'Type of the data in the column. Unlike a spreadsheet, Columns have specific "types" that allow you to store rich content in each record. For example, a table can contain records (rows) with images, long texts, checkboxes.',dialogAddColumnTypeText:"Text",dialogAddColumnTypeMultilineText:"Multiline text",dialogAddColumnTypeAIQuery:"AI Button",dialogAddColumnTypeSparklines:"Sparklines",dialogAddColumnAIQuery:"AI Query",dialogAddColumnTypeAIQueryInfo:"Example: Write a short description for an article or choose a column to query by it",dialogAddColumnTypeUUID:"UUID",dialogAddColumnTypeImage:"Image",dialogAddColumnTypeNumber:"Number",dialogAddColumnTypeSelect:"Select",dialogAddColumnTypeMultipleSelect:"Multiple select",dialogAddColumnTypeDate:"Date",dialogAddColumnTypeTime:"Time",dialogAddColumnTypeRating:"Rating",dialogAddColumnTypeDuration:"Duration",dialogAddColumnTypeCheckBox:"CheckBox",dialogAddColumnTypeCreatedTime:"Created time",dialogAddColumnTypeLastUpdatedTime:"Last modified time",dialogAddColumnTypeCreatedBy:"Created by",dialogAddColumnTypeLastUpdatedBy:"Last modified by",dialogAddColumnTypeCollaborator:"User",dialogAddColumnTypeFormula:"Formula",dialogAddColumnTypeFormulaInfo:'Example: COL(Name) & "-" & COL(Price) or IF(COL(Price) * COL(Quantity) > 5, "Yes", "No")',dialogAddColumnTypeSlider:"Slider",dialogAddColumnTypeStatus:"Choose a status column",dialogAddColumnTypeStatusInfo:"Connect with the relevant status column",dialogAddColumnTypeAutoNumber:"Auto number",dialogAddColumnTypeRowLink:"Link to table",dialogAddColumnTypeURL:"URL",dialogAddColumnTypeEmail:"Email",dialogAddColumnTypePassword:"Password",dialogAddColumnTypePhone:"Phone",dialogAddColumnTypeNone:"None",dialogAddColumnTypeStartDate:"Start Date",dialogAddColumnTypeDueDate:"Due Date",dialogAddColumnTypeDueDateSettings:"Set as a deadline",dialogAddColumnTypeDueDateSettingsInfo:"Set a deadline with start date or due date templates.",dialogAddColumnTypeProgress:"Progress",dialogAddColumnTypePriority:"Priority",dialogAddColumnTypeDescription:"Description",dialogAddColumnTypeTags:"Tags",dialogAddColumnTypeName:"Name",dialogAddColumnTypeColor:"Color",dialogAddColumnTypeChecklist:"Checklist",dialogAddColumnTypeAssigned:"Assignee",dialogAddColumnTypeAttachment:"Attachment",dialogAddColumnDateFormat:"Date format",dialogAddColumnDateFormatInfo:"Choose the dates display format",dialogAddColumnDateFormatShort:"Short",dialogAddColumnDateFormatLong:"Long",dialogAddColumnDateFormatEU:"EU",dialogAddColumnDateFormatISO:"ISO",dialogAddColumnDateFormatAS:"AS",dialogAddColumnDateFormatFull:"Full",dialogAddColumnDateFormatSlash:"Slash",dialogAddColumnDateFormatHyphen:"Hyphen",dialogAddColumnDateFormatDot:"Dot",dialogAddColumnTimeFormat:"Time format",dialogAddColumnTimeFormatInfo:"Choose the time display format",dialogAddColumnTimeFormatHour:"hour",dialogAddColumnAllowTimeFormat:"Include a time field",dialogAddColumnCustomDateSeparator:"Set a custom separator",dialogAddColumnNumberFormat:"Number format",dialogAddColumnNumberFormatInfo:"Choose the number display format",dialogAddColumnNumberFormatInteger:"Integer",dialogAddColumnNumberFormatNumber:"Number",dialogAddColumnNumberFormatPercent:"Percent",dialogAddColumnNumberFormatPercentRounded:"Percent(rounded)",dialogAddColumnNumberFormatScientific:"Scientific",dialogAddColumnNumberFormatEngineering:"Engineering",dialogAddColumnNumberFormatAccounting:"Accounting",dialogAddColumnNumberFormatUnit:"Unit",dialogAddColumnNumberFormatUnitInfo:"Units of measurement",dialogAddColumnNumberFormatUnitAcre:"Acre",dialogAddColumnNumberFormatUnitCelsius:"Celsius",dialogAddColumnNumberFormatUnitFahrenheit:"Fahrenheit",dialogAddColumnNumberFormatUnitPercent:"Percent",dialogAddColumnNumberFormatUnitDegree:"Degree",dialogAddColumnNumberFormatUnitMegaByte:"Mega byte",dialogAddColumnNumberFormatUnitCentimeter:"Centimeter",dialogAddColumnNumberFormatUnitMeter:"Meter",dialogAddColumnNumberFormatUnitKilometer:"Kilometer",dialogAddColumnNumberFormatUnitMile:"Mile",dialogAddColumnNumberFormatUnitKilogram:"Kilogram",dialogAddColumnNumberFormatUnitPound:"Pound",dialogAddColumnNumberFormatUnitLiter:"Liter",dialogAddColumnNumberFormatUnitGallon:"Gallon",dialogAddColumnNumberFormatUnitSecond:"Second",dialogAddColumnNumberFormatUnitMinute:"Minute",dialogAddColumnNumberFormatUnitHour:"Hour",dialogAddColumnNumberFormatUnitDay:"Day",dialogAddColumnNumberFormatUnitWeek:"Week",dialogAddColumnNumberFormatUnitMonth:"Month",dialogAddColumnNumberFormatUnitYear:"Year",dialogAddColumnNumberFormatCurrency:"Currency",dialogAddColumnNumberFormatCurrencyRounded:"Currency(rounded)",dialogAddColumnNumberFormatCurrencyInfo:"Choose the currency display format",dialogAddColumnNumberFormatSeparator:"Use 1000 Separator (,)",dialogAddColumnMinLength:"Minimum length",dialogAddColumnMinLengthInfo:"Minimum text length",dialogAddColumnMaxLength:"Maximum length",dialogAddColumnMaxLengthInfo:"Maximum text length",dialogAddColumnMinValue:"Minimum value",dialogAddColumnMinValueInfo:"Minimum number",dialogAddColumnMaxValue:"Maximum value",dialogAddColumnMaxValueInfo:"Maximum number",dialogAddColumnMinDate:"Minimum date",dialogAddColumnMinDateInfo:"Minimum date",dialogAddColumnMaxDate:"Maximum date",dialogAddColumnMaxDateInfo:"Maximum date",dialogAddColumnColorItems:"Color items",dialogAddColumnListItems:"List items",dialogAddColumnLinkListItems:"Choose a table to link to",dialogAddColumnLinkField:"Choose a lookup field",dialogAddColumnLinkFieldMore:"Cascading readonly fields",dialogAddColumnLinkSelect:"Allow linking to multiple rows",dialogAddColumnFormula:"Please enter a formula",dialogAddColumnListItemsError:"You cannot delete an item while in use.",dialogAddColumnDefault:"Default value",dialogAddColumnDefaultDateCurrent:"Current Date",dialogAddColumnDefaultDateSpecific:"Specific Date",dialogAddColumnAlign:"Align",dialogAddColumnAlignLeft:"Left",dialogAddColumnAlignRight:"Right",dialogAddColumnAlignCenter:"Center",dialogAddColumnAlignInfo:"Table cells text alignment",dialogAddColumnResizable:"Resizable",dialogAddColumnResizableInfo:"Select if you want to make the column resizable",dialogAddColumnRequired:"Required",dialogAddColumnRequiredInfo:"Select if you want to make the column required",dialogAddColumnSortable:"Sortable",dialogAddColumnSortableInfo:"Select if you want to sort by this column",dialogAddColumnFilterable:"Filterable",dialogAddColumnFilterableInfo:"Select if you want to filter by this column",dialogAddColumnEditable:"Editable",dialogAddColumnEditableInfo:"Select if you want to edit by this column",dialogAddColumnMultipleCollaborators:"Multiple Collaborators",dialogAddColumnMultipleCollaboratorsInfo:"Select if you want to allow multiple collaborators",dialogAddColumnCheckItems:"Show Checkbox",dialogAddColumnFormatting:"Rich Formatting",priority_low:"Low",priority_average:"Average",priority_high:"High",priority_critical:"Critical",bold:"Bold",fontStyle:"Font Style",italic:"Italic",send:"Send",copy:"copy",status:"Status",underline:"Underline",comments:"Comments",comment:"Comment",commentPlaceholder:"Leave a comment",noComments:"Leave a comment and collaborate with your team.",guestUser:"Guest",background:"Background",starred:"Starred",resetFormat:"Reset Format",notStarred:"Not starred",color:"Color",coloredItems:"Colored items",conditionalFormatting:"Conditional Formatting",groupBarLabel:"Drag a column header here to group by that column",dialogDeleteContent:"Are you sure you want to delete this row?",detailsTab:"Format",commentsTab:"Comments",historyTab:"History",historyEvent:"Event",historyAuthor:"Author",historyDetails:"Details",range:"Changed {{column}} from {{oldValue}} to {{newValue}}",nullRange:"Changed {{column}} to {{newValue}}",rowCreated:"Row Created",propertyUpdated:"{{value}} updated",propertyRemoved:"{{value}} removed",dropImages:"Drop images here",addImages:"Add images",dropFiles:"Drop files here",addFiles:"Add files",unassigned:"Unassigned",historyDate:"Date",copyURL:"Copy row URL",calendar:{"/":"/",":":":",firstDay:0,days:{names:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],namesAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],namesShort:["Su","Mo","Tu","We","Th","Fr","Sa"]},months:{names:["January","February","March","April","May","June","July","August","September","October","November","December",""],namesAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""]},AM:["AM","am","AM"],PM:["PM","pm","PM"],eras:[{name:"A.D.",start:null,offset:0}],currencySymbol:"$",currency:"USD",currencySymbolPosition:"before",decimalSeparator:".",thousandsSeparator:","},CONTAINS:"Contains",DOES_NOT_CONTAIN:"Does not contain",ENDS_WITH:"Ends with",EQUAL:"Equal",GREATER_THAN:"Greater than",GREATER_THAN_OR_EQUAL:"Greater than or equal",LESS_THAN:"Less than",LESS_THAN_OR_EQUAL:"Less than or equal",NOT_EQUAL:"Not equal",RANGE:"Range",CLEAR_FILTER:"Clear Filter",STARTS_WITH:"Starts with",addFilter:"+ Add filter",and:"And",apply:"Apply",applyOnce:"Apply once",booleanFirst:"☐",booleanLast:"☑",cancel:"Cancel",CONTAINS_CASE_SENSITIVE:"Contains (case sensitive)",dateFirst:"1",dateLast:"9",DOES_NOT_CONTAIN_CASE_SENSITIVE:"does not contain (case sensitive)",EMPTY:"empty",ENDS_WITH_CASE_SENSITIVE:"ends with (case sensitive)",EQUAL_CASE_SENSITIVE:"equal (case sensitive)",filter:"Filter",customize:"Hide columns",customizeOne:"1 hidden column",customizeHidden:"{{n}} hidden columns",filteredByMultiple:"{{n}} filters",filteredByOne:"1 filter",filterValuePlaceholder:"Value",find:"Find a field",findInView:"Find in view",firstBy:"Sort by",found:"{{nth}} of {{n}}",from:"from",noFilters:"No filters applied",noResults:"No results",noSorting:"No sorting applied",noOptions:"No options",NOT_EMPTY:"not empty",NOT_NULL:"not null",NULL:"null",numberFirst:"1",numberLast:"9",ok:"OK",or:"Or",pickAnother:"Pick another field to sort by",maintainSort:"Maintain sort",sort:"Sort",group:"Group",sortedByMultiple:"Sorted by {{n}} columns",sortedByOne:"Sorted by 1 column",STARTS_WITH_CASE_SENSITIVE:"starts with (case sensitive)",stringFirst:"A",stringLast:"Z",thenBy:"then by",where:"Where",collapseAll:"Collapse all",expandAll:"Expand all",noGrouping:"No grouping",groupedByMultiple:"{{n}} groups",groupedByOne:"1 group",groupedBy:"Grouped by {{column}}",deleteByMultiple:"Delete {{n}} rows",deleteByOne:"Delete 1 row",download:"Download",firstByGroup:"Group by",expandRecord:"Expand row",expandCell:"Expand cell",pickAnotherGroupBy:"Pick another field to group by",add:"Add condition",all:"All columns",between:"Between",close:"Close",column:"Column:",condition:"Condition:",equal:"equal",fontFamily:"Font family:",fontSize:"Font size:",format:"Format:",greaterThan:"greater than",highlight:"Highlight",lessThan:"less than",notEqual:"not equal",remove:"Remove condition",secondValue:"Second value:",text:"Text",value:"Value:",addCondition:"Add Condition",addGroup:"Add Group",blanks:"(Blanks)",clear:"Clear",contains:"contains",containsCaseSensitive:"contains (case sensitive)",dateTabLabel:"DATE",doesNotContain:"does not contain",doesNotContainCaseSensitive:"does not contain (case sensitive)",empty:"empty",endsWith:"ends with",endsWithCaseSensitive:"ends with (case sensitive)",equalCaseSensitive:"equal (case sensitive)",greaterThanOrEqual:"greater than or equal",lessThanOrEqual:"less than or equal",mismatchedProperties:'smartFilterPanel: The "filterType" and the data type of the selected "dataField" are mismatched.',missingProperty:'smartFilterPanel: When mode is \'excel\', either "data" and "dataField" or "dataSource" of type Array have to be set.',notEmpty:"not empty",notNull:"not null",null:"null ",placeholderBoolean:"Select value",placeholderDate:"Enter date",placeholderNumber:"Enter number",placeholderTime:"Enter time",placeholderValue:"Enter value",selectAll:"(Select All)",showRows:"Show rows where:",startsWith:"starts with",startsWithCaseSensitive:"starts with (case sensitive)",matchCase:"Match Case",timeTabLabel:"TIME",today:"Today",tomorrow:"Tomorrow",yesterday:"Yesterday",formatColumn:"Format Column",formating:"Colors",formatingByMultiple:"{{n}} Colors",formatingOne:"1 color",reset:"Reset",filteredRecords:"All rows are filtered",duplicateCells:"Clone column cells and settings",duplicateSettings:"Clone column settings",views:"Views",createView:"New View",newGrid:"Grid",newKanban:"Kanban",newCard:"Cards",newScheduler:"Scheduler",newTimeline:"Timeline",layout:"Layout",settings:"Create view",viewNamePlaceholder:"View name",view:"View",noViews:"Found no views",kanbanView:"View your records as cards on a Kanban board",gridView:"View your records in a Table",cardView:"View your records in a Card view",schedulerView:"View your records in a Scheduler view",timelineView:"View your records in a Timeline view",days:"{{value}}d",daysOverdue:"{{value}} days overdue",daysLeft:"{{value}} days left",true:"true",false:"false",TOMORROW:"Tomorrow",TODAY:"Today",YESTERDAY:"Yesterday",NEXT_WEEK:"Next week",THIS_WEEK:"This week",LAST_WEEK:"Last week",NEXT_MONTH:"Next month",THIS_MONTH:"This month",LAST_MONTH:"Last month",hideHiddenColumns:"Hide {{value}} hidden columns",showHiddenColumns:"Show {{value}} hidden columns",less:"Less",more:"More",conditions:"Conditions",colorsSingleSelect:"Which single select field should the row be colored by?",colorRows:"Color rows when they match the conditions",colorSelect:"Color rows the same as a single select value",colorLeftBorderLabel:"Left border",colorRowLabel:"Row",colorCellLabel:"Cell",colorLeftBorder:"Color the left border of a row",colorRow:"Color the background of a row",colorCell:"Color the background of a cell",loadingIndicatorPlaceholder:"Loading...",dropDownPlaceholder:"Please select...",placeholder:"No Rows",pieChart:"Pie",columnChart:"Column",barChart:"Bar",stackedChart:"Stacked",lineChart:"Line",projectStatus:"Project Status",reviewStatus:"Review Status",taskStatus:"Task Status",priority:"Priority",size:"Size",yesNo:"Yes/No",notStarted:"Not Started",underReview:"Under review",approved:"Approved",blocked:"Blocked",completedStatus:"Completed",generate:"Generate",aiPrompt:"Enter your prompt for the AI:"}},type:"object"},onCellValue:{value:null,type:"any",reflectToAttribute:!1},onCellEditRequest:{value:null,type:"any",reflectToAttribute:!1},onCellUpdate:{value:null,type:"any",reflectToAttribute:!1},onCellRender:{value:null,type:"any",reflectToAttribute:!1},onBeforeInit:{value:null,type:"any",reflectToAttribute:!1},onInit:{value:null,type:"any",reflectToAttribute:!1},onAfterInit:{value:null,type:"any",reflectToAttribute:!1},onKey:{value:null,type:"any",reflectToAttribute:!1},onKeyUp:{value:null,type:"any",reflectToAttribute:!1},onRender:{value:null,type:"any",reflectToAttribute:!1},onLoad:{value:null,type:"any",reflectToAttribute:!1},onChartInit:{value:null,type:"any",reflectToAttribute:!1},onComment:{value:null,type:"any",reflectToAttribute:!1},onRowInit:{value:null,type:"any",reflectToAttribute:!1},onRowClass:{value:null,type:"any",reflectToAttribute:!1},onRowChange:{value:null,type:"any",reflectToAttribute:!1},onRowDetailInit:{value:null,type:"any",reflectToAttribute:!1},onRowDetailUpdated:{value:null,type:"any",reflectToAttribute:!1},onRowInserted:{value:null,type:"any",reflectToAttribute:!1},onRowRemoved:{value:null,type:"any",reflectToAttribute:!1},onRowUpdate:{value:null,type:"any",reflectToAttribute:!1},onRowUpdated:{value:null,type:"any",reflectToAttribute:!1},onRowStarred:{value:null,type:"any",reflectToAttribute:!1},onRowHistory:{value:null,type:"any",reflectToAttribute:!1},onRowStyle:{value:null,type:"any",reflectToAttribute:!1},onRowResize:{value:null,type:"any",reflectToAttribute:!1},onColumnInit:{value:null,type:"any",reflectToAttribute:!1},onColumnInserted:{value:null,type:"any",reflectToAttribute:!1},onColumnRemoved:{value:null,type:"any",reflectToAttribute:!1},onColumnResize:{value:null,type:"any",reflectToAttribute:!1},onColumnReorder:{value:null,type:"any",reflectToAttribute:!1},onColumnSummaryChange:{value:null,type:"any",reflectToAttribute:!1},onColumnUpdated:{value:null,type:"any",reflectToAttribute:!1},onColumnClone:{value:null,type:"any",reflectToAttribute:!1},onColumnChange:{value:null,type:"any",reflectToAttribute:!1},onCommand:{value:null,reflectToAttribute:!1,type:"any"},onViewInit:{value:null,type:"any",reflectToAttribute:!1},filtering:{value:{enabled:{value:!1,type:"boolean"},operator:{value:"and",type:"string"},filter:{value:[],type:"array",reflectToAttribute:!1},filterRow:{value:{visible:{value:!1,type:"boolean"},menuVisible:{value:!1,type:"boolean"},applyMode:{value:"auto",type:"string",allowedValues:["auto","click"]},autoApplyModeDelay:{value:800,type:"number"}},type:"object"},filterMenu:{value:{visible:{value:!0,type:"boolean"},buttons:{value:["cancel","clear","filter"],type:"array"},dataSource:{value:null,type:"any"},width:{value:250,type:"number"},height:{value:200,type:"number"},mode:{value:"default",allowedValues:["default","excel"],type:"string"},messages:{value:null,type:"object"}},type:"object"}},type:"object"},editing:{value:{allowRowHeaderEdit:{value:!1,type:"boolean"},allowColumnHeaderEdit:{value:!1,type:"boolean"},autoUpdateFilterAndSort:{value:!0,type:"boolean"},active:{value:!1,readonly:!0,type:"boolean"},enabled:{value:!1,type:"boolean"},batch:{value:!1,type:"boolean"},readOnlyEdit:{value:!1,type:"boolean"},action:{value:"click",type:"string",allowedValues:["none","click","doubleClick"]},commandKeys:{value:{commandKeyCancel:{value:{command:"commandKeyCancelCommand",key:"Escape"},type:"object"},commandKeyUpdate:{value:{command:"commandKeyUpdateCommand",key:"Enter | Tab"},type:"object"}},type:"object"},commandBar:{value:{visible:{value:!1,type:"boolean"},position:{value:"near",allowedValues:["near","far","both"],type:"string"},displayMode:{value:"labelAndIcon",allowedValues:["label","icon","labelAndIcon"],type:"string"},dataSource:{value:{commandBarAddRow:{value:{command:{value:"commandBarAddRowCommand",type:"any"},icon:{value:"smart-icon-plus",type:"string"},label:{value:"{{messages}}",type:"string"},visible:{value:!1,type:"any"}},type:"object"},commandBarDeleteRow:{value:{command:{value:"commandBarDeleteRowCommand",type:"any"},icon:{value:"smart-icon-delete",type:"string"},label:{value:"{{messages}}",type:"string"},visible:{value:!1,type:"any"}},type:"object"},commandBarBatchSave:{value:{command:{value:"commandBarBatchSaveCommand",type:"any"},icon:{value:"smart-icon-ok-squared",type:"string"},label:{value:"{{messages}}",type:"string"},visible:{value:!0,type:"any"}},type:"object"},commandBarBatchRevert:{value:{command:{value:"commandBarBatchRevertCommand",type:"any"},icon:{value:"smart-icon-reload",type:"string"},label:{value:"{{messages}}",type:"string"},visible:{value:!0,type:"any"}},type:"object"},commandBarCustom:{value:{command:{value:"",type:"any"},icon:{value:"smart-icon-ellipsis-vert",type:"string"},label:{value:"",type:"string"},visible:{value:!1,type:"any"}},type:"object"}},type:"object"}},type:"object"},commandColumn:{value:{visible:{value:!1,type:"boolean"},inline:{value:!1,type:"boolean"},position:{value:"far",allowedValues:["near","far"],type:"string"},displayMode:{value:"icon",allowedValues:["label","icon","labelAndIcon"],type:"string"},dataSource:{value:{commandColumnMenu:{value:{command:{value:"commandColumnMenuCommand",type:"any"},icon:{value:"smart-icon-menu",type:"string"},label:{value:"{{messages}}",type:"string"},visible:{value:!1,type:"any"}},type:"object"},commandColumnEdit:{value:{command:{value:"commandColumnEditCommand",type:"any"},icon:{value:"smart-icon-mode-edit",type:"string"},label:{value:"{{messages}}",type:"string"},visible:{value:"auto",type:"any"}},type:"object"},commandColumnDelete:{value:{command:{value:"commandColumnDeleteCommand",type:"any"},icon:{value:"smart-icon-delete",type:"string"},label:{value:"{{messages}}",type:"string"},visible:{value:!0,type:"any"}},type:"object"},commandColumnUpdate:{value:{command:{value:"commandColumnUpdateCommand",type:"any"},icon:{value:"smart-icon-ok-squared",type:"string"},label:{value:"{{messages}}",type:"string"},visible:{value:"auto",type:"any"}},type:"object"},commandColumnCancel:{value:{command:{value:"commandColumnCancelCommand",type:"any"},icon:{value:"smart-icon-cancel-circled",type:"string"},label:{value:"{{messages}}",type:"string"},visible:{value:"auto",type:"any"}},type:"object"},commandColumnRowMenu:{value:{command:{value:"commandColumnRowMenuCommand",type:"any",reflectToAttribute:!1},icon:{value:"smart-icon-ellipsis-vert",type:"string"},label:{value:"{{messages}}",type:"string"},visible:{value:!1,type:"any"}},type:"object"},commandColumnCustom:{value:{command:{value:"",type:"any",reflectToAttribute:!1},icon:{value:"smart-icon-ellipsis-vert",type:"string"},label:{value:"",type:"string"},visible:{value:!1,type:"any"}},type:"object"}},type:"object"},width:{value:null,type:"number?"}},reflectToAttribute:!1,type:"object"},mode:{value:"cell",allowedValues:["cell","row"],type:"string"},addNewColumn:{value:{visible:{value:!1,type:"boolean"}},type:"object"},addNewRow:{value:{position:{value:"both",allowedValues:["near","far","both"],type:"string"},visible:{value:!1,type:"boolean"},autoEdit:{value:!0,type:"boolean"},autoCreate:{value:!1,type:"boolean"},autoSave:{value:!0,type:"boolean"},label:{value:"{{message}}",type:"string"},displayMode:{value:"row",allowedValues:["row","button"],type:"string"}},type:"object"},dialog:{value:{header:{value:"{{message}}",type:"string"},height:{value:"auto",type:"any"},width:{value:"auto",type:"any"},left:{value:"center",type:"any"},top:{value:"center",type:"any"},enabled:{value:!1,type:"boolean"},visible:{value:!1,type:"boolean"}},type:"object"},addDialog:{value:{header:{value:"{{message}}",type:"string"},height:{value:"auto",type:"any"},width:{value:"auto",type:"any"},left:{value:"center",type:"any"},top:{value:"center",type:"any"},enabled:{value:!1,type:"boolean"},visible:{value:!1,type:"boolean"}},type:"object"},addColumnDialog:{value:{header:{value:"{{message}}",type:"string"},height:{value:"auto",type:"any"},width:{value:430,type:"any"},left:{value:"center",type:"any"},top:{value:"center",type:"any"},enabled:{value:!1,type:"boolean"},visible:{value:!1,type:"boolean"}},type:"object"},deleteDialog:{value:{header:{value:"{{message}}",type:"string"},height:{value:"auto",type:"any"},width:{value:"auto",type:"any"},left:{value:"center",type:"any"},top:{value:"center",type:"any"},enabled:{value:!1,type:"boolean"},visible:{value:!1,type:"boolean"}},type:"object"}},type:"object"},paging:{value:{enabled:{value:!1,type:"boolean"},spinner:{value:{enabled:{value:!1,type:"boolean"},step:{value:1,type:"number"}},type:"object"},pageHierarchySize:{value:2,type:"int"},pageSize:{value:10,type:"int"},pageIndex:{value:0,type:"int",validator:"pageIndexValidator"}},type:"object"},pager:{value:{autoEllipsis:{value:"both",allowedValues:["none","before","after","both"],type:"string"},position:{value:"far",allowedValues:["near","far","both"],type:"string"},template:{value:"",type:"string"},pageSizeSelector:{value:{visible:{value:!1,type:"boolean"},dataSource:{value:[10,20,50],type:"object"},position:{value:"far",allowedValues:["near","far"],type:"string"}},type:"object"},summary:{value:{position:{value:"far",allowedValues:["near","far"],type:"string"},visible:{value:!1,type:"boolean"}},type:"object"},navigationButtons:{value:{position:{value:"both",allowedValues:["near","far","both"],type:"string"},prevNextButtons:{value:{visible:{value:!0,type:"boolean"}},type:"object"},firstLastButtons:{value:{visible:{value:!0,type:"boolean"}},type:"object"},labels:{value:{visible:{value:!1,type:"boolean"}},type:"object"}},type:"object"},navigationInput:{value:{position:{value:"far",allowedValues:["near","far"],type:"string"},visible:{value:!1,type:"boolean"}},type:"object"},pageIndexSelectors:{value:{visible:{value:!0,type:"boolean"},dataSource:{value:10,type:"any"}},type:"object"},visible:{value:!1,type:"boolean"}},type:"object",reflectToAttribute:!1},rowDetail:{value:{enabled:{value:!1,type:"boolean"},inline:{value:!1,type:"boolean"},height:{value:200,type:"number"},position:{value:"near",allowedValues:["near","far"],type:"string"},template:{value:"",type:"any",reflectToAttribute:!1},visible:{value:!0,type:"boolean"},dialog:{value:{header:{value:"{{message}}",type:"string"},height:{value:300,type:"any"},width:{value:360,type:"any"},left:{value:"center",type:"any"},top:{value:"center",type:"any"},enabled:{value:!1,type:"boolean"},visible:{value:!1,type:"boolean"}},type:"object"}},type:"object"},rowCSSRules:{value:null,type:"any"},summaryRow:{value:{position:{value:"far",allowedValues:["near","far"],type:"string"},visible:{value:!1,type:"boolean"},editing:{value:!1,type:"boolean"},template:{value:"",type:"string"}},type:"object"},scrolling:{value:"physical",allowedValues:["physical","virtual","infinite","deferred"],type:"string"},columnHeader:{value:{visible:{value:!0,type:"boolean"}},type:"object"},groupHeader:{value:{visible:{value:!1,type:"boolean"},template:{value:"",type:"string"}},type:"object"},header:{value:{visible:{value:!1,type:"boolean"},template:{value:"",type:"any"},appendTo:{value:"",type:"any"},buttons:{value:["columns","filter","group","sort","format","search"],type:"array"},searchCommand:{value:"search",allowedValues:["search","filter"],type:"string"},customButton:{value:{command:{value:null,type:"any",reflectToAttribute:!1},enabled:{value:!0,type:"boolean"},visible:{value:!1,type:"boolean"},icon:{value:"smart-icon-settings",type:"string"},label:{value:"",type:"string"}},type:"object",reflectToAttribute:!1},onInit:{value:null,reflectToAttribute:!1,type:"any"}},type:"object"},footer:{value:{visible:{value:!1,type:"boolean"},template:{value:"",type:"any"}},type:"object"},stateSettings:{value:{enabled:{value:!0,type:"boolean",reflectToAttribute:!1},current:{value:"",type:"string",reflectToAttribute:!1},storage:{value:null,type:"any",reflectToAttribute:!1},autoSave:{value:!1,type:"boolean",reflectToAttribute:!1},autoLoad:{value:!1,type:"boolean",reflectToAttribute:!1},allowLocalStorage:{value:!0,type:"boolean",reflectToAttribute:!1},options:{value:[],type:"array",reflectToAttribute:!1},onStateChange:{value:null,type:"any",reflectToAttribute:!1}},type:"object",reflectToAttribute:!1},checkBoxes:{value:{visible:{value:!1,type:"boolean"},hasThreeStates:{value:!1,type:"boolean"}},type:"object"},selection:{value:{enabled:{value:!1,type:"boolean"},allowRowHeaderSelection:{value:!1,type:"boolean"},allowColumnHeaderSelection:{value:!1,type:"boolean"},allowRowSelection:{value:!0,type:"boolean"},allowCellSelection:{value:!1,type:"boolean"},allowDragSelection:{value:!0,type:"boolean"},allowDragSelectionAutoScroll:{value:!0,type:"boolean"},allowCellDragSelectionHandle:{value:!0,type:"boolean"},allowCellDragDropSelectionHandle:{value:!0,type:"boolean"},allowCellDragSelectionAutoFill:{value:!0,type:"boolean"},selectAllMode:{value:"page",allowedValues:["none","page","all"],type:"string"},mode:{value:"many",type:"string",allowedValues:["one","many","extended"]},action:{value:"click",type:"string",allowedValues:["none","click","doubleClick"]},checkBoxes:{value:{enabled:{value:!1,type:"boolean"},autoShow:{value:!1,type:"boolean"},action:{value:"click",type:"string",allowedValues:["none","click","doubleClick"]},selectAllMode:{value:"page",allowedValues:["none","page","all"],type:"string"},position:{value:"near",allowedValues:["near","far"],type:"string"}},type:"object"},selected:{value:"",type:"string"},tabKeyBehavior:{value:"default",allowedValues:["none","default"],type:"string"},defaultSelection:{value:!1,type:"boolean"}},type:"object"},sorting:{value:{enabled:{value:!1,type:"boolean"},sort:{value:[],type:"array"},mode:{value:"one",allowedValues:["one","many"],type:"string"},maintainSort:{value:!0,type:"boolean"},commandKey:{value:"",allowedValues:["","Shift","Control","Alt"],type:"string"},sortToggleThreeStates:{value:!0,type:"boolean"},sortToggleOnClick:{value:!0,type:"boolean"},sortToggleOnClickAndCommandKey:{value:!1,type:"boolean"}},type:"object"},storeHistory:{value:!1,type:"boolean"},storeHistoryItems:{value:20,type:"number"},users:{value:[],type:"array",reflectToAttribute:!1},virtualModeCachedRowsCount:{value:100,type:"int"}}}static get requires(){return{}}static get styleUrls(){return["smart.menu.css","smart.filterpanel.css","smart.pager.css","smart.grid.css","smart.textbox.css"]}template(){return"<div class='smart-container'id='container' disabled='[[disabled]]' role='grid'>\n <div id='header' role=\"toolbar\" class='smart-grid-header smart-hidden'>\n </div>\n <div id='groupHeader' role=\"presentation\" class='smart-grid-group-header smart-hidden'></div>\n <div id='headerPager' top class='smart-grid-pager smart-hidden'></div>\n <div id='headerCommandBar' header top class='smart-grid-header smart-grid-command-bar smart-hidden'></div>\n <div id='content' class='smart-grid-content'>\n <div id='columnHeader' role=\"rowgroup\" class='smart-grid-column-header'>\n <div id='columnNearContainer' role=\"row\" class='near smart-hidden smart-grid-column-header-cell-container'>\n </div>\n <div id='columnContainer' role=\"row\" class='center smart-grid-column-header-cell-container'>\n </div>\n <div id='columnFarContainer' role=\"row\" class='far smart-hidden smart-grid-column-header-cell-container'>\n </div>\n </div>\n <div id='scrollView' role=\"rowgroup\" class ='smart-grid-scroll-view'>\n <div id='rowNearContainer' role=\"presentation\" class='near smart-hidden smart-grid-row-container'>\n </div>\n <div id='rowContainer' role=\"presentation\" class='center smart-grid-row-container'>\n </div>\n <div id='rowFarContainer' role=\"presentation\" class='far smart-hidden smart-grid-row-container'>\n </div>\n <div id='placeholder' class ='smart-hidden smart-placeholder smart-grid-placeholder'></div>\n <smart-scroll-bar right-to-left=\"[[rightToLeft]]\" theme=\"[[theme]]\" id='verticalScrollBar' class='smart-grid-scroll-bar' wait disabled='[[disabled]]' orientation='vertical'></smart-scroll-bar>\n <smart-scroll-bar right-to-left=\"[[rightToLeft]]\" theme=\"[[theme]]\" id='horizontalScrollBar' class='smart-grid-scroll-bar' wait disabled='[[disabled]]'></smart-scroll-bar>\n </div>\n <div id='filterFooter' class='smart-grid-filter-footer smart-hidden'></div>\n </div>\n <div class=\"smart-grid-view-content smart-hidden\" id=\"viewContent\"></div>\n <div viewbar class=\"smart-grid-view-bar smart-hidden\" id=\"viewBar\"></div>\n <div id='loadingIndicatorContainer' class='smart-loader-container'>\n <span id='loadingIndicator' class='smart-grid-loader smart-loader'></span>\n <span id='loadingIndicatorPlaceholder' class ='smart-loader-label smart-hidden'></span>\n </div>\n <div id='footerCommandBar' footer class='smart-grid-footer smart-grid-command-bar smart-hidden'></div>\n <div id='footerPager' class='smart-grid-pager smart-hidden'></div>\n <div id='footer' class='smart-grid-footer smart-hidden'></div>\n </div>"}static get listeners(){return{focus:"_focusHandler",blur:"_blurHandler",wheel:"_mouseWheelHandler","document.up":"_upHandler","document.down":"_downHandler","document.move":"_moveHandler","document.scroll":"_scrollHandler",keydown:"_keyDownHandler",keyup:"_keyUpHandler",resize:"_resizeHandler","header.click":"_headerClickHandler","columnHeader.down":"_columnDownHandler","columnHeader.click":"_columnClickHandler","columnHeader.move":"_columnMoveHandler","columnHeader.mouseleave":"_columnMouseLeaveHandler","rowNearContainer.down":"_rowDownHandler","rowContainer.down":"_rowDownHandler","rowFarContainer.down":"_rowDownHandler","container.selectstart":"_selectStartHandler",styleChanged:"_styleChangedHandler",swipeleft:"_swipeLeftHandler",swiperight:"_swipeRightHandler",contextmenu:"_contextMenuHandler","document.paste":"_clipboardPasteHandler"}}_clipboardPasteHandler(e){if("paste"===e.type){const t=this;if(document.activeElement!==t)return;if(t._selection&&t._selection.focusedCell){const o=t._selection.focusedCell.id,l=t._selection.focusedCell.dataField,a=t.columnByDataField[l];if(!a)return;if(a&&("image"===a.template||"attachment"===a.template)){e.preventDefault();let a=(e.clipboardData||e.originalEvent.clipboardData).items,n=null,i=0,r=0,s=[];for(let e=0;e<a.length;e++)if(0===a[e].type.indexOf("image")&&(n=a[e].getAsFile(),i++,null!==n)){let e={label:n.name,size:n.size},a=new FileReader;a.onload=function(a){r++;const n=a.target.result;e.value=n;let d=!1;for(let o=0;o<t.uploadSettings.userFiles.length;o++){const l=t.uploadSettings.userFiles[o];if(l.name===e.label||l.label===e.label){d=!0;break}}if(d||t.uploadSettings.userFiles.push(e),s.push(e),r===i){let e=t.getCellValue(o,l);e||(e=[]),"string"==typeof e&&(e=JSON.parse(e)),e=[...e,...s],t.setCellValue(o,l,e)}},a.readAsDataURL(n)}}}}}_contextMenuHandler(e){if(this.contextMenu.enabled)return e.preventDefault(),e.stopPropagation(),!1}get _tabindex(){return this.disabled||this.unfocusable?"":' tabindex="0"'}pageIndexValidator(e,t){const o=this;if(t<0)return 0;if(o.dataSource){if(o.dataSource.virtualDataSource)return t;const e=Math.ceil(o.dataSource.length/o._pageSize);if(t>e-1)return e-1}}_offsetTop(e){return e?e.offsetTop+this._offsetTop(e.offsetParent):0}_offsetLeft(e){return e?e.offsetLeft+this._offsetLeft(e.offsetParent):0}offset(e){return{left:this._offsetLeft(e),top:this._offsetTop(e)}}getBoundingRect(e){const t=this;let o=window.pageXOffset,l=window.pageYOffset,a=e.getBoundingClientRect();if(e!==document.body){let a=e.parentNode;for(;a!==document.body&&a;){a&&(o+=a.scrollLeft,l+=a.scrollTop);let e=a;a?(a=a.parentNode,t.enableShadowDOM&&a===t.shadowRoot?a=t:!t.isInShadowDOM||a!==t.getRootNode()&&e!==t.getRootNode()||(a=t.getRootNode().host)):t.isInShadowDOM&&(a=t.getRootNode().host)}}return{bottom:a.bottom+l,height:a.height,left:a.left+o,right:a.right+o,top:a.top+l,width:a.width}}_downHandler(e){this._downTarget=e.originalEvent.target}_removeCellContentPopup(){const e=this;e._cellContentPopup&&(e._cellContentPopup.remove(),e._cellContentPopup=null),e._cellContentPopupTimer&&(clearTimeout(e._cellContentPopupTimer),e._cellContentPopupTimer=null)}_upHandler(e){const t=this,o=t.getBoundingRect(t);super._upHandler(),t._tapTimer&&clearTimeout(t._tapTimer);const l=()=>{t.editing.isEditing&&!t.editing.dialog.enabled&&setTimeout((()=>{if(!e.defaultPrevented){if(t.editing.editCell&&t.editing.editCell.editor.instance){const o=t.editing.editCell.editor.instance;if(o.element&&o.element.hasAttribute("aria-owns")){const t=o.element.getAttribute("aria-owns"),l=document.getElementById(t);if(l&&l.contains(e.originalEvent.target))return}if(t.editing.editCell.editor.instance.blur(e),e.defaultPrevented)return}t.isAttached&&t.endEdit()}}),50)};if(e.originalEvent&&(e.originalEvent.target===t.$.scrollView&&t._downTarget===e.originalEvent.target&&l(),e.originalEvent.target.closest(".smart-grid-dialog")))t._dialogDragDetails&&(t._dialogDragDetails.started=!1);else{if(e.pageX<o.left||e.pageX>o.right||e.pageY<o.top||e.pageY>o.bottom){let o=!1,a=e.originalEvent.target;for(;a;){if(a=a.parentNode,a===t){o=!0;break}if(t.dropDownMode&&t.$.dropDownElement===a){o=!0;break}}if(o)return t._dragSelectionEnd(e),t._endResize(e),void t._endDrag(e);if(t._summaryRowDialog&&t._summaryRowDialog.classList.contains("open")&&t._summaryRowDialog.confirm(),t._inputOverlay&&(t._inputOverlay.classList.remove("smart-input-overlay-on"),setTimeout((()=>{t._inputOverlay&&(t._inputOverlay.parentNode&&t._inputOverlay.parentNode.removeChild(t._inputOverlay),t._inputOverlay=null)}),t.behavior.doubleClickTimingDelay)),l(),t.closeDropDown(),t.menu){let o,l,a,n;if(t.enableShadowDOM||t.isInShadowDOM?(o=e.originalEvent.composedPath()[0],l=function(){let e=o.getRootNode().host;for(;e;){if(e===t)return e;e=e.getRootNode().host}}(),a=t.menu.contains(o)||t.menu.firstElementChild.shadowRoot.contains(o),n=t.menu.firstElementChild.shadowRoot):(o=e.originalEvent.target,l=t.contains(o),a=t.menu.contains(o),n=t.menu),!l&&!a){const e=n.querySelectorAll("smart-drop-down-list"),l=n.querySelectorAll("smart-date-time-picker"),a=n.querySelectorAll("smart-date-input"),i=n.querySelectorAll("smart-input");for(let t=0;t<e.length;t++)if(e[t].$.dropDownContainer.contains(o))return;for(let e=0;e<l.length;e++)if(l[e].$.dropDownContainer.contains(o))return;for(let e=0;e<a.length;e++)if(a[e].$.scrollView.contains(o))return;for(let e=0;e<i.length;e++)if(i[e].$.scrollView.contains(o))return;return void t.closeMenu()}}}t._summaryRowDialog&&t._summaryRowDialog.classList.contains("open")&&t._summaryRowDialog.confirm(),t._dragSelectionEnd(e),t._endResize(e),t._endDrag(e)}}_nextColumn(e){const t=this;for(let o=0;o<t.viewColumns.length;o++){const l=t.viewColumns[o];if(l.visibleIndex===e.visibleIndex+1)return l}return null}_nextRow(e){const t=this._recyclingRows,o=t.indexOf(e);return o>=0?t[o+1]:null}_moveHandler(e){const t=this;if(t.isInitialized&&t._selection){if(t.selection.enabled&&t.selection.allowDragSelection&&!t.editing.isEditing&&(!t._selection.selectionRect||t._selection.selectionRect&&!t._selection.selectionRect.captured)&&(!0!==t._mobile&&t._dragSelection(e),e.originalEvent)){const o=e.originalEvent.target.closest?e.originalEvent.target:void 0;Smart.Utilities.Core.isMobile&&o&&o.closest("smart-grid")===t&&e.originalEvent.preventDefault()}t.isScrolling||("none"===t.behavior.columnResizeMode||t.classList.contains("smart-grid-row-resize-mode")||t._columnMoveResizeHandler(e),"none"===t.behavior.rowResizeMode||t.classList.contains("smart-grid-column-resize-mode")||t._rowMoveResizeHandler(e),t._drag(e))}}_hideActionButtons(){const e=this;if(e._columnElements){for(let t=0;t<e._columnElements.length;t++){const o=e._columnElements[t],l=o.column;l&&l.autoShowActionButton&&o._hideActionButton()}for(let t=0;t<e._frozenNearColumns.length;t++){const o=e._frozenNearColumns[t],l=o.element;o&&o.autoShowActionButton&&l._hideActionButton()}}}_columnMouseLeaveHandler(){this._mobile||this._hideActionButtons()}_columnMoveHandler(e){const t=this;if(!t.isInitialized)return;if(t._columnResizeStartLine||t._rowResizeStartLine)return;if(t._mobile)return;const o=(o,l)=>{if(o&&o.autoShowActionButton){const a=l.getBoundingClientRect(),n=t.offset(l),i=t.parentElement,r=i?i.scrollTop:0;if(n.left<=e.pageX&&n.left+a.width-6>=e.pageX)if(n.top-r<=e.pageY&&n.top-r+a.height>=e.pageY){if(!t.hasColumnMenu(o))return;l._showActionButton()}else l._hideActionButton();else l._hideActionButton()}};for(let e=0;e<t._columnElements.length;e++){const l=t._columnElements[e];o(l.column,l)}for(let e=0;e<t._frozenNearColumns.length;e++){const l=t._frozenNearColumns[e];o(l,l.element)}}_headerClickHandler(e){const t=this;if(t.$.headerBar){const o=t.isInShadowDOM||t.shadowRoot?e.composedPath()[0]:e.target;t.$.headerBar._headerClickHandler(o,t)}}_columnClickHandler(e){const t=this;if(t._overlay)return;if(void 0===e.clientX)return;const o=(t.enableShadowDOM?t.shadowRoot:t.getRootNode()).elementsFromPoint(e.clientX,e.clientY);let l=null,a=null;const n=new Date-t._columnClickTime<t.behavior.doubleClickTimingDelay;t._columnClickTime=new Date;for(let e=0;e<o.length;e++){const t=o[e];if(t.classList.contains("smart-action-button"))return;if(t.getAttribute("data-field")){l=t.getAttribute("data-field"),a=t;break}}if(l){const o=a.column;if(!o)return;if(e.srcElement.classList.contains("smart-filter-button"))return;if("_addNewColumn"===o.dataField)return void t._openAddColumnDialog();if(Smart.Utilities.Core.isMobile)n&&t.sorting.sortToggleOnClick&&o.allowSortToggleOnClick&&t.sorting.enabled&&(t.sortBy(l),t.autoSaveState()),t._columnMoveHandler(e),e.originalEvent&&e.originalEvent.preventDefault();else if(!n&&t.sorting.sortToggleOnClick&&o.allowSortToggleOnClick&&t.sorting.enabled){if("none"!==t.behavior.columnResizeMode&&"col-resize"===o.element.style.cursor)return;if(t._canSort=!0,""!==t.sorting.commandKey){if("Alt"===t.sorting.commandKey&&!1===e.altKey&&(t._canSort=!1),"Shift"===t.sorting.commandKey&&!1===e.shiftKey&&(t._canSort=!1),"Control"===t.sorting.commandKey&&!1===e.metaKey&&!1===e.ctrlKey&&(t._canSort=!1),"Control"!==t.sorting.commandKey&&e.ctrlKey)return;if(!0===t.sorting.sortToggleOnClickAndCommandKey&&!t._canSort)return}t.sortBy(l),t.autoSaveState()}}}_columnDownHandler(e){const t=this,o=(t.enableShadowDOM?t.shadowRoot:t.getRootNode()).elementsFromPoint(e.clientX,e.clientY);let l=null,a=null;const n=new Date-t._clickTime<t.behavior.doubleClickTimingDelay;t.$.headerBar&&t.$.headerBar.closePanel(),t._doubleClickHandler(e);for(let e=0;e<o.length;e++){const t=o[e];if(t.classList.contains("smart-action-button"))return;if(t.getAttribute("data-field")){l=t.getAttribute("data-field"),a=t;break}}if(l){const o=a.column;if(!o)return;if("_commandColumn"===l)return void(t.editing.commandColumn.dataSource.commandColumnMenu.visible&&t._applyCommand(t.editing.commandColumn.dataSource.commandColumnMenu.command));const i=function(a){const n=o.selectionColumn?t.selection.checkBoxes.action===a&&t.selection.enabled:t.selection.action===a&&t.selection.enabled;if("col-resize"!==o.element.style.cursor&&(!t.appearance.showColumnHeaderDragIcon||!e.originalEvent.target.classList.contains("smart-drag-handle"))&&n){if(t.editing.enabled&&t.editing.editColumn===o)return;if(e.shiftKey||e.ctrlKey||e.metaKey?t._dragSelectionStartDataField=null:t._dragSelectionStartDataField=l,"_checkBoxColumn"===l)return void t._toggleColumnSelection(o);"_rowHeaderColumn"===l&&t.selection.enabled&&t.selection.allowRowHeaderSelection&&t.appearance.showRowHeaderSelectIcon&&(delete t._areAllRowsSelected,t.areAllRowsSelected()?t.clearSelection():t.selectAllRows(),o.refresh()),t.selection.allowColumnHeaderSelection&&o.allowSelect&&t._setSelection(null,o.dataField,e)}};if(t.editing.isEditing&&t.endEdit(),i("click"),t._mobile){t._hideActionButtons();const o=(o,l)=>{if(o&&o.autoShowActionButton){const a=l.getBoundingClientRect(),n=t.offset(l);if(n.left<=e.pageX&&n.left+a.width-6>=e.pageX){if(!t.hasColumnMenu(o))return;l._showActionButton()}else l._hideActionButton()}};for(let e=0;e<t._columnElements.length;e++){const l=t._columnElements[e];o(l.column,l)}}if(t.$.fireEvent("columnClick",{column:o,dataField:o.dataField}),n&&(t.$.fireEvent("columnDoubleClick",{column:o,dataField:o.dataField}),i("doubleClick"),t._onColumnDoubleClick(o,e)),Smart.Utilities.Core.isMobile){const o=t.rightToLeft?a.getBoundingClientRect().left:a.getBoundingClientRect().right,n=10;if(o-n<=e.clientX&&e.clientX<=o+n){const o=t.columnByDataField[l];if(!o||o&&!o.allowResize)return;const n=t._isLastVisibleColumn(o);if("split"===t.behavior.columnResizeMode&&n)return;a.style.cursor="col-resize",a.sortButton.style.cursor="col-resize",a.filterButton.style.cursor="col-resize",t._columnToResizeRect=t.getBoundingRect(a),t._columnToResizeElement=a,t._columnToResizeDataField=l,e.preventDefault(),e.originalEvent&&e.originalEvent.preventDefault()}}if(t._columnToResizeElement&&!t._columnResizeLine)return t._columnDownResizeHandler(e),void(t._clickTime=new Date);if(t._beginDrag(e,o),o.menu)return void(t._clickTime=new Date)}t.closeMenu(),t._clickTime=new Date}addTransformMoveStyle(e,t,o,l,a,n){e.style.opacity=n,e.style["transition-duration"]=t,e.style.transform="translate3d("+o+"px,"+l+"px,"+a+"px)"}removeTransformMoveStyle(e){e.style.opacity="",e.style["transition-duration"]="",e.style.transform=""}_rowDownHandler(e){const t=this;if(t._inputOverlay&&t._inputOverlay.classList.remove("smart-input-overlay-on"),t._doubleClickHandler(e),t._closeMenu(t.menu),t._rowResizeHandler(e),t._removeCellContentPopup(),t._toggledRow&&t.appearance.allowRowToggleAnimation)return;if(e.target&&!e.target.classList.contains("smart-grid-row-container")&&!e.target.classList.contains("smart-grid-selection-overlay")&&!e.target.classList.contains("smart-selection-overlay-content"))return;let o=e.clientX,l=e.clientY;e.touches&&(o=e.touches[0].clientX,l=e.touches[0].clientY);const a=(t.enableShadowDOM?t.shadowRoot:t.getRootNode()).elementsFromPoint(o,l);let n=null,i=null,r=null,s=null,d=null,u=null,c=null;t._lastPointerDownTime=new Date;for(let e=0;e<a.length;e++){const t=a[e];if(t.hasAttribute("toggle-button")&&(i=t),t.hasAttribute("add-row")&&(d=t),t.hasAttribute("checkbox")&&(r=t),t.hasAttribute("rating-value")&&(u=t),s||"smart-grid-cell"!==t.nodeName.toLowerCase()||(s=t),!c&&t.classList.contains("smart-card")&&(c=t),!n&&"smart-grid-row"===t.nodeName.toLowerCase()){n=t;break}}if("card"!==t.view){if(u&&(t._ratingElement=u),n&&s){const o=s?s.cell:null;if(o.row.filterRow||t._closeMenu(t.filterRowMenu),i&&o&&!o.column.rowDetailColumn&&i!==o.row.toggleDetailButton&&!i.classList.contains("row-detail"))n.row.toggle(e);else if(t.rowDetail.enabled&&t.rowDetail.visible&&i&&o&&o.column.rowDetailColumn){const e=n.row;t.editing.isEditing&&t.cancelEdit(),e.showDetail?t.hideDetail(e.id):t.showDetail(e.id)}else if(d){const e=n.row,o=e.data;let l=o.parent;const a={};for(a[o.groupDataField]=null!==e.label?e.label:null,void 0!==e.labelValue&&(a[o.groupDataField]=e.labelValue);l;){let e=null!==l.label?l.label:null;l.labelValue&&void 0!==e&&(e=l.labelValue),a[l.groupDataField]=e,l=l.parent}t.addRow(a),setTimeout((()=>{t._conditionalColors&&t._conditionalColors.update&&t._conditionalColors.update()}),100)}else{const o=n.row,l=s?s.cell:null;if(l.column._treeColumn&&r)return void(o.checked=!o.checked);l.element===o.header&&t.behavior.allowRowReorder&&t._beginDrag(e,o),t._tapTimer&&clearTimeout(t._tapTimer),t._tapTimer=setTimeout((function(){t._clickedRow===n&&t.$.fireEvent("rowTap",{row:o,id:o.id,originalEvent:e.originalEvent}),t._clickedCell===s&&t.$.fireEvent("cellTap",{cell:l,id:o.id,dataField:l.column.dataField,originalEvent:e.originalEvent})}),t.behavior.doubleClickTimingDelay);const a=function(a){if(!t.selection.enabled||o.autoGenerated||!0!==o.allowSelect)return void delete t.__selectionStarted;if(o.header&&"row-resize"===o.header.style.cursor){const a=t.offset(o.header);if(t._rowToResize&&a.left<=e.originalEvent.pageX&&e.originalEvent.pageX<=a.left+o.header.offsetWidth)return o.header.style.cursor="",void(t._rowToResize.onpointerup=()=>{const a=t.editing.isEditing;t._rowToResize&&(t._rowToResize.onpointerup=null),t._clickedRow===n&&!a&&!t._rowResizeLine&&l.column.rowHeaderColumn&&t.selection.allowRowHeaderSelection&&t._setSelection(o.id,l.column.dataField,e)});o.header.style.cursor=""}const i=t.editing.isEditing;if(i&&t.editing.editCell&&t.editing.editCell.row.id===o.id&&t.editing.editCell.column.dataField===l.column.dataField)return;if(i&&t.editing.editRow&&t.editing.editRow.id===o.id)return;const r=()=>{t.focus(),setTimeout((function(){t.focus()}),50)};if(t.selection.action===a){if(e.shiftKey||e.ctrlKey||e.metaKey||!t.selection.allowRowHeaderSelection&&l.column.autoGenerated?t._dragSelectionStartRow=null:t._dragSelectionStartRow=n.row,e.shiftKey||e.ctrlKey||e.metaKey?t._dragSelectionStartDataField=null:t._dragSelectionStartDataField=l.column.dataField,l.column.rowHeaderColumn&&!t.selection.allowRowHeaderSelection)return t._dragSelectionStartRow=null,void r();t._setSelection(o.id,l.column.dataField,e),r()}else(l.column.selectionColumn&&t.selection.checkBoxes.enabled&&t.selection.checkBoxes.action===a||l.column.rowHeaderColumn&&t.selection.allowRowHeaderSelection)&&(t._setSelection(o.id,l.column.dataField,e),r())},i=l.selected;t._clickTime||(t._clickTime=new Date);const d=t._clickedCell===s&&new Date-t._clickTime<t.behavior.doubleClickTimingDelay,u=e.originalEvent?e.originalEvent:e,c=3===u.which;if(c||"_commandColumn"===l.column.dataField||a("click"),t.$.fireEvent("rowClick",{row:o,id:o.id,data:t.getRowData(o.id),isRightClick:c,originalEvent:u,pageX:parseInt(u.pageX),pageY:parseInt(u.pageY)}),t.$.fireEvent("cellClick",{cell:l,id:o.id,dataField:l.column.dataField,value:l.value,isRightClick:c,originalEvent:u,pageX:parseInt(u.pageX),pageY:parseInt(u.pageY)}),c&&t.contextMenu.enabled)return t.contextMenu.id=o.id,t.contextMenu.dataField=l.column.dataField,t._focusCell(o.id,l.column.dataField),t.openContextMenu(u.pageX+10,u.pageY+10),void(t.contextMenu.selector&&(u.stopPropagation(),u.preventDefault()));if(o.autoGenerated||l.column.autoGenerated||"checkBox"===l.template&&e.originalEvent&&e.originalEvent.target&&e.originalEvent.target.classList.contains("smart-input"))t._onRowClick(o.index,o,e),t._onCellClick(l,e);else if(t.selection.enabled)if(t.selection.allowCellSelection)if("extended"===t.selection.mode){if(!0===i&&i===l.selected&&!t.selection.isDragging){const a=t._selection.focusedCell;a&&t._clickedCell&&a.id===l.row.id&&a.dataField===l.column.dataField&&a.id===t._clickedCell.cell.row.id&&a.dataField===t._clickedCell.cell.column.dataField&&(t._onRowClick(o.index,o,e),t._onCellClick(l,e))}}else d||(t._onRowClick(o.index,o,e),t._onCellClick(l,e));else if(t.selection.allowRowSelection)if("extended"===t.selection.mode){if(!0===i&&i===l.selected&&!t.selection.isDragging){const a=t._selection.focusedCell;t._clickedCell&&a.id===l.row.id&&a.id===t._clickedCell.cell.row.id&&(t._onRowClick(o.index,o,e),t._onCellClick(l,e))}}else d||(t._onRowClick(o.index,o,e),t._onCellClick(l,e));else t._onRowClick(o.index,o,e),t._onCellClick(l,e);else t._onRowClick(o.index,o,e),t._onCellClick(l,e);new Date-t._clickTime<t.behavior.doubleClickTimingDelay&&(t._clickedRow===n&&(t._onRowDoubleClick(o.index,o,e,e),t.$.fireEvent("rowDoubleClick",{row:o,id:o.id,data:t.getRowData(o.id),isRightClick:c,originalEvent:e.originalEvent,pageX:parseInt(u.pageX),pageY:parseInt(u.pageY)}),a("doubleClick")),t._clickedCell===s&&(t._onCellDoubleClick(l,e),t.$.fireEvent("cellDoubleClick",{cell:l,id:o.id,dataField:l.column.dataField,value:l.value,isRightClick:c,originalEvent:e.originalEvent,pageX:parseInt(u.pageX),pageY:parseInt(u.pageY)}))),t._clickedRow=n,t._clickedCell=s,t._clickTime=new Date,t.layout.allowCellsWrapShortcut&&t._clickedCell.hasAttribute("focus")&&t._clickedCell.hasAttribute("selected")&&e.shiftKey&&(t._cellContentPopupTimer&&clearTimeout(t._cellContentPopupTimer),t.selection.isDragging?t._removeCellContentPopup():l.autoWrap())}}}else if(c){const o=c.getAttribute("row-id"),l=t.rowById[o];if(l){const a=e.originalEvent?e.originalEvent:e,n=3===a.which;if(l.element||l.createElement(),t.$.fireEvent("rowClick",{row:l,id:l.id,data:t.getRowData(l.id),isRightClick:n,originalEvent:a,pageX:parseInt(a.pageX),pageY:parseInt(a.pageY)}),s){const e=s.getAttribute("data-field");if(e){const o=t.columnByDataField[e],i=new Smart.Grid.Cell(l,o,this);s.cell=i,i.element=s,i&&t.$.fireEvent("cellClick",{cell:i,id:l.id,dataField:i.column.dataField,value:i.value,isRightClick:n,originalEvent:a,pageX:parseInt(a.pageX),pageY:parseInt(a.pageY)})}}const i=e.originalEvent.target;if(c.classList.contains("smart-card-header"))l.element&&l.element.row!==l&&(l.element.row=l),l.toggle();else if(l.children&&l.children.length>0&&(i.classList.contains("smart-icon-ungroup")||i.classList.contains("smart-icon-group")))l.element&&l.element.row!==l&&(l.element.row=l),l.toggle();else if(t.editing.enabled){const l=t.editing.dialog.enabled,a=t.editing.mode;if(i.scrollHeight>i.offsetHeight){const o=t.offset(i);if(e.originalEvent.pageX>=o.left+i.offsetWidth-15)return}const n=t.context;t.context=t,t.editing.dialog.enabled=!0,t.editing.mode="row",t._settingsDialogRowId=o;let r=t._isUpdating;c.setAttribute("edit",""),t.beginEdit(o),t._isUpdating=r,t._endCardRowEdit?(t.removeEventListener("endEdit",t._endCardRowEdit,null),t.removeEventListener("cancelEdit",t._endCardRowEdit,null)):t._endCardRowEdit=()=>{t.context=t,t.editing.dialog.enabled=l,t.editing.mode=a,t.editing.isEditing=!1,t.context=n,delete t._settingsDialogRowId,delete t._dialogEdit},t.addEventListener("endEdit",t._endCardRowEdit),t.addEventListener("cancelEdit",t._endCardRowEdit)}}}}showDetail(e){const t=this.rowById[e];t&&(t.showDetail=!0)}hideDetail(e){const t=this.rowById[e];t&&(t.showDetail=!1)}_focusHandler(){this._focused=!0,this.setAttribute("focus","")}_blurHandler(){this._focused=!1,this.removeAttribute("focus")}_notify(e,t,o){const l=this;if(l.notifyFn)for(let a=0;a<l.notifyFn.length;a++)l.notifyFn[a](e,t,o)}notify(e){const t=this;e&&(t.notifyFn||(t.notifyFn=[]),t.notifyFn.push(e))}_applyTemplate(e,t){let o=null;if(null!==e&&""!==e)if(e&&"function"==typeof e)e(t);else if((e.startsWith("#")||e.startsWith("."))&&(o=document.querySelector(e)),o)t.innerHTML="",o instanceof HTMLElement&&!(o instanceof HTMLTemplateElement)?t.appendChild(o):t.appendChild(o.content.cloneNode(!0).firstElementChild);else{const o=function(e){const t=document.createElement("template");return e=e.trim(),t.innerHTML=e,t.content.firstChild}(e);o&&(t.innerHTML="",t.appendChild(o))}else t.innerHTML=""}propertyChangedHandler(e,t,o){const l=this;if(l.isInitialized){switch(l._notify(e,t,o),e){case"onRowHistory":case"onRowInserted":case"stateSettings_current":return;case"highlighted":"kanban"===l.view&&l._kanban&&(l._kanban.selectTask(o),l._kanban.ensureVisible(o));break;case"view":return void(l.$.headerBar&&l.$.headerBar._setView&&l.$.headerBar._setView(o,!0));case"users":case"currentUser":l._refreshCurrentUser(),l._recycle();break;case"summaryRow_visible":{for(let e=0;e<l.columns.length;e++)l._summaryRowCount=Math.max(l._summaryRowCount,l.columns[e].summary.length);const e=l.onRowInserted;l.onRowInserted=null,l._renderRows(!0),l.onRowInserted=e;break}case"conditionalFormatting":return l._renderConditionalFormatting(),void l.refresh();case"appearance_displayLoadingIndicator":return void l._setLoadingIndicatorVisibility();case"appearance_placeholder":return void(l.$.placeholder.innerHTML=o);case"appearance_showColumnHeaderLines":case"appearance_showColumnGroupLines":case"appearance_showColumnLines":case"appearance_showRowLines":return void l._recycle();case"appearance_allowColumnStickyPosition":o?l._stickHeader():l._unstickHeader();break;case"appearance_showColumnIcon":for(let e=0;e<l.columns.length;e++)l.columns[e].setProperty("showIcon",l.appearance.showColumnIcon);l._recycle();break;case"appearance_showRowHeaderNumber":case"appearance_showRowHeader":{l._initializeRowNumberColumn();const e=l._frozenNearColumns[0];e.rowHeaderColumn&&e.element&&!e.element.parentNode&&l.$.columnNearContainer.appendChild(e.element),l.refresh();break}case"header_visible":if(l.header.visible&&""===l.header.template){let e=l.$.header;l.header.appendTo&&(e=document.querySelector(l.header.appendTo),e?e.onclick=e=>{l._headerClickHandler(e)}:e=l.$.header),e.innerHTML='<smart-grid-toolbar header-position="top"></smart-grid-toolbar>',l.$.headerBar=e.firstElementChild,l.$.headerBar._init(l),l.header.onInit&&l.header.onInit(l.$.headerBar)}break;case"header_buttons":l.header.visible&&""===l.header.template&&l._refreshHeaderBar();break;case"header_template":l._applyTemplate(o,l.$.header);break;case"footer_template":l._applyTemplate(o,l.$.footer);break;case"layout_columnWidth":case"columnWidth":{l.columns.canNotify=!1;let e=parseInt(o);if(isNaN(e)&&(e=null),e>=30||null===e)for(let t=0;t<l.columns.length;t++)l.columns[t].width=e;l.columns.canNotify=!0,l.refresh();break}case"checkBoxes_visible":return void l._recycle();case"checkBoxes_hasThreeStates":return l.rows.canNotify=!1,l._applyThreeStates(l.rowHierarchy),l.rows.canNotify=!0,void l._recycle();case"columnHeader_visible":l.__columnHeaderHeight=null,l.refresh();break;case"selection_checkBoxes_enabled":l._selectionColumn.visible=o;break;case"selection_checkBoxes_autoShow":l._selectionColumn.element&&(o?l._selectionColumn.element.setAttribute("auto-show",""):l._selectionColumn.element.removeAttribute("auto-show"));break;case"selection_checkBoxes_position":{let e=l.viewColumns.indexOf(l._selectionColumn);l.viewColumns.canNotify=!1,l.viewColumns.splice(e,1);const t=l._frozenNearColumns.indexOf(l._selectionColumn),a=l._frozenFarColumns.indexOf(l._selectionColumn);if(t>=0&&l._frozenNearColumns.splice(t,1),a>=0&&l._frozenFarColumns.splice(a,1),"far"===o)l._selectionColumn.canNotify=!1,l._selectionColumn.freeze="far",l._selectionColumn.canNotify=!0,l._frozenFarColumns.splice(0,0,l._selectionColumn),l.viewColumns.push(l._selectionColumn),l.$.columnFarContainer.appendChild(l._selectionColumn.element);else{let e=0,t=0;for(let o=0;o<l.viewColumns.length&&(l.viewColumns[o].autoGenerated||l.viewColumns[o].dataField!==l.columns[t++].dataField);o++)l.viewColumns[o].autoGenerated&&e++;l._selectionColumn.canNotify=!1,l._selectionColumn.freeze="near",l._selectionColumn.canNotify=!0,l._frozenNearColumns.splice(e,0,l._selectionColumn),l.viewColumns.splice(e,0,l._selectionColumn),l.$.columnNearContainer.appendChild(l._selectionColumn.element)}l.viewColumns.canNotify=!0;break}case"selection_mode":if(l._selection&&(l._selection.focusedCell=null),l.selection.allowCellSelection)l.clearSelection();else if("one"===o){const e=l.getSelection();if(l.clearSelection(),e.rows&&e.rows[0]){e.rows[0].row.selected=!0;const t=l.rowById[e.rows[0].row.id].getCell(l.columns[0].dataField);l._selection.focusedCell={id:t.row.id,dataField:t.column.dataField,value:t.value,index:t.row.index}}}break;case"grouping_groupBy":return l.dataSource&&l.dataSource.groupBy&&(l.dataSource.groupBy=o),void l.refresh();case"sorting_enabled":return void l.refresh();case"sorting_maintainSort":return void l._recycle(!1);case"filtering_enabled":return o&&0===l._filterPanels.length&&l._createFilterPanels(),void(l.header.visible&&l.refresh());case"filtering_filterRow_visible":return l._initializeRows(),l._initializeRowElements(),void l.refresh();case"filtering_operator":return void l.refreshFilters();case"filtering_filter":for(let e=0;e<l.columns.length;e++){const t=l.columns[e];t.canNotify=!1,t.setProperty("filter",null),t.canNotify=!0}for(let e=0;e<l.filtering.filter.length;e++){const t=l.filtering.filter[e];if(t&&t.splice){const e=t[0],o=t.splice(1);let a=null;if(o instanceof Smart.FilterGroup)a=o;else{const t=l.columnByDataField[e];t&&(a=l.dataSource._createFilter(t.dataType,o))}a&&l.addFilter(e,a,!1)}}return void l.refreshFilters();case"messages":case"locale":{if(l.columns)for(let e=0;e<l.columns.length;e++)l.columns[e]._cellsCachedValues=[];l._dialogEdit&&(l._dialogEdit.close(),l._dialogEdit=null),l._dialogDelete&&(l._dialogDelete.close(),l._dialogDelete=null),l._dialogAddRow&&(l._dialogAddRow.close(),l._dialogAddRow=null);const e=l.$.headerPager.querySelector("smart-pager"),t=l.$.footerPager.querySelector("smart-pager");e&&(e.locale=l.locale),t&&(t.locale=l.locale);const o=(e,t)=>{l._handleFilterMenuClick(e,t)};l._filterInfo||(l._filterInfo={}),l._filterInfo.stringConditions=[{icon:"smart-icon-contains",command:o,value:"CONTAINS",label:l.localize("CONTAINS")},{icon:"smart-icon-does-not-contain",command:o,value:"DOES_NOT_CONTAIN",label:l.localize("DOES_NOT_CONTAIN")},{icon:"smart-icon-starts-with",command:o,value:"STARTS_WITH",label:l.localize("STARTS_WITH")},{icon:"smart-icon-ends-with",command:o,value:"ENDS_WITH",label:l.localize("ENDS_WITH")},{icon:"smart-icon-equals",command:o,value:"EQUAL",label:l.localize("EQUAL")},{icon:"smart-icon-delete",command:o,value:"CLEAR_FILTER",label:l.localize("CLEAR_FILTER")}],l._filterInfo.numberAndDateConditions=[{icon:"smart-icon-equals",command:o,value:"EQUAL",label:l.localize("EQUAL")},{icon:"smart-icon-not-equal",command:o,value:"NOT_EQUAL",label:l.localize("NOT_EQUAL")},{icon:"smart-icon-less-than",command:o,value:"LESS_THAN",label:l.localize("LESS_THAN")},{icon:"smart-icon-less-than-equal",command:o,value:"LESS_THAN_OR_EQUAL",label:l.localize("LESS_THAN_OR_EQUAL")},{icon:"smart-icon-greater-than",command:o,value:"GREATER_THAN",label:l.localize("GREATER_THAN")},{icon:"smart-icon-greater-than-equal",command:o,value:"GREATER_THAN_OR_EQUAL",label:l.localize("GREATER_THAN_OR_EQUAL")},{icon:"smart-icon-between",command:o,value:"RANGE",label:l.localize("RANGE")},{icon:"smart-icon-delete",command:o,value:"CLEAR_FILTER",label:l.localize("CLEAR_FILTER")}],l._refreshHeaderBar(),l.$.headerBar&&(l.$.headerBar.messages=l.messages,l.$.headerBar.locale=l.locale,l.$.headerBar._localizeHeader(),l.$.headerBar._getInnerElementMessages()),l.grouping.groupBar.visible&&l._renderGroupBar(),l._recycle();break}case"paging_spinner_enabled":l._refresh();break;case"pager_visible":return l._renderPagers(),void l._refreshPaging(!1);case"paging_pageIndex":case"pager_position":case"paging_enabled":return void l._refreshPaging(!0);case"paging_pageSize":return void l._refreshPaging(!1);case"columns":{l.__measuredColumnHeight=null,l.editing&&l.editing.isEditing&&l.cancelEdit(),l._cellEditors=[];let e=!1;if(t&&t.length)for(let o=0;o<t.length;o++)if(t[o].freeze){e=!0;break}if(l.columns&&l.columns.length)for(let t=0;t<l.columns.length;t++)if(l.columns[t].freeze){e=!0;break}if(e&&l._initializeRowElements(),l.columns&&l._sortedColumns){const e=[];l.columns.forEach((t=>{t.sortOrder&&e.push(t)})),l._sortedColumns=JSON.parse(JSON.stringify(e))}l._renderColumns(),l._refreshHeaderBar();const o=l._sortedColumns;if(o){l.clearSort();for(let e=0;e<l.columns.length;e++)delete l.columns[e]._cellsCachedValues;l._refreshSort(o)}if(l.columns&&l.filtering.enabled){l.beginUpdate();for(let e=0;e<l.columns.length;e++){const t=l.columns[e];if(t.canNotify=!1,l.removeFilter(t.dataField),t.filtered=!1,t.canNotify=!0,t.filter){let e=null,o=t.filter;e=o instanceof Smart.FilterGroup?o:l.dataSource._createFilter(t.dataType||"string",o),e&&l.addFilter(t.dataField,e,!1)}}l.refreshFilters(),l.endUpdate()}return l.layout.isDirty=!0,l._resetCachedLayout(),void l._refreshLayout()}case"columnGroups":if(l._columnGroups=[],l._columnHeights=0,l.viewColumns)for(let e=0;e<l.viewColumns.length;e++){const t=l.viewColumns[e],o=t.element;t.top=0,t.level=0,o&&(o.style.top="",o.style.height="",o.style.lineHeight="")}return l.columns.canNotify=!1,l.columns=l._initColumns,l._renderColumns(),l.columns.canNotify=!0,l.__columnHeaderHeight=null,void l.refresh();case"dataSource":if(delete l._isFirstVirtualDataSourceRequest,"dataSource"===e&&t&&o){const e=l.dataSource&&l.dataSource.virtualDataSource&&!l.dataSource.virtualDataSourceOnExpand&&"infinite"!==l.scrolling;if(t instanceof Smart.DataAdapter&&!e&&t.length===o.length&&t.length>0&&o.length>0&&!l.dataSourceSettings.childrenDataField&&!l.dataSourceSettings.parentDataField&&!t.parentDataField){if(l.dataSource=t,l._cachedDataSource===o)return;return setTimeout((()=>{let e=null;if(t&&l.dataSource&&l.dataSource._expandedRowIds){let t={};for(let e in l.dataSource._expandedRowIds){let o=""+e;o=o.replace("Item","").replace(/_/gi,"."),t[o]=!0}e=t}if(l.beginUpdate(),l._sortedColumns&&l._sortedColumns.length>0&&void 0===l._getId())for(let e=0;e<o.length;e++){const t=l.dataSource[e],a=o[e];l._updateRow(t,a,!0)}else for(let e=0;e<o.length;e++){const t=o[e],a=l.dataSource[e].$.id;l._updateRow(a,t,!0)}delete l.__autoRowHeight,l._virtualOnExpandCache=[],l._cellsMerge=[],l._cellStyles=[];const a=l._filters,n=l._sortedColumns;if(l.clearSort(),l.filtering.filterRow)for(let e=0;e<l.columns.length;e++)l.columns[e]._filterEditorInitialized=!1;for(let e=0;e<l.columns.length;e++)delete l.columns[e]._cellsCachedValues;if(n&&l._refreshSort(n),a&&a.length>0&&(l._filters=null,l.refreshFilters()),l.grouping.enabled)for(let t in e)l._expandCollapseGroup(t,!0);l.endUpdate()})),l._cachedDataSource=o,void(l.header.visible&&""===l.header.template&&l.$.headerBar._init(l))}}return l.dataSource.length>1e4?(l.appearance.displayLoadingIndicator=!0,l._setLoadingIndicatorVisibility(),setTimeout((()=>{l.dataBind()}),100),setTimeout((()=>{l.appearance.displayLoadingIndicator=!1,l._setLoadingIndicatorVisibility(),l._recycle(!1)}),200)):(l.dataSource&&l.dataSource instanceof Smart.DataAdapter&&l.columns&&l.dataSource.dataFields&&l.dataSource.dataFields.forEach((e=>{const t=l.columnByDataField[e.name];t&&(t.dataType=e.dataType)})),l.dataBind()),void(l.header.visible&&""===l.header.template&&l.$.headerBar._init(l));case"rowDetail_dialog_width":case"rowDetail_dialog_height":case"rowDetail_dialog_enabled":case"rowDetail_dialog_visible":return;case"rowDetail_height":case"rowDetail_enabled":{l.beginUpdate(),l.rows.canNotify=!1;const e=l.appearance.allowRowDetailToggleAnimation;l.appearance.allowRowDetailToggleAnimation=!1;for(let e=0;e<l._recyclingRows.length;e++){const t=l._recyclingRows[e];t.height=null,t.setProperty("showDetail",!1),t.detailHeight=l.rowDetail.height}if(l.rows.canNotify=!0,l.rowDetail.enabled){let t=!1;for(let e=0;e<l.viewColumns.length;e++)if(l.viewColumns[e].rowDetailColumn){t=!0;break}if(!t)return l.appearance.allowRowDetailToggleAnimation=e,l.endUpdate(),void l._renderColumns(!0)}else for(let e=0;e<l.viewColumns.length;e++){const t=l.viewColumns[e];if(t.rowDetailColumn){t.visible=!1;break}}return l.appearance.allowRowDetailToggleAnimation=e,void l.endUpdate()}case"rowDetail_visible":for(let e=0;e<l.viewColumns.length;e++){const t=l.viewColumns[e];if(t.rowDetailColumn){t.visible=o;break}}return;case"displayLoadingIndicator":return void l._setLoadingIndicatorVisibility();case"filterable":return void l._refreshLayout();case"layout_allowCellsWrap":{const e=l.columns.canNotify;l.columns.canNotify=!1;for(let e=0;e<l.columns.length;e++)l.columns[e].cellsWrap=o;return l.layout.isDirty=!0,l._resetCachedLayout(),l._refreshLayout(),l.refresh(),void(l.columns.canNotify=e)}case"showViewBar":return l.layout.isDirty=!0,l._resetCachedLayout(),l._refreshLayout(),void l.refresh();case"layout_autoHeight":case"layout_autoWidth":case"layout_columnMinHeight":case"layout_rowMinHeight":case"layout_columnHeight":case"layout_rowHeight":return l.layout.isDirty=!0,l._resetCachedLayout(),l._refreshLayout(),void l.refresh();case"rightToLeft":return void l.refresh();case"selectionMode":return;case"editing_addNewColumn_visible":l._addNewColumn?(l._addNewColumn.visible=o,l.refresh()):l._renderColumns();break;case"editing_addNewRow_displayMode":{"row"===l.editing.addNewRow.displayMode&&l.editing.addNewRow._addButton&&(l.editing.addNewRow._addButton.remove(),delete l.editing.addNewRow._addButton);const e=l._scrollView.vScrollBar;return e.style.height="",e.style.top="",e.style.setProperty("--smart-scroll-bar-near-size","0px"),l._renderAddNewRow(),void l.refresh(!0)}case"editing_addNewRow_label":case"editing_addNewRow_visible":case"editing_addNewRow_position":return!1===l.editing.addNewRow.visible&&"button"===l.editing.addNewRow.displayMode&&(l.editing.addNewRow._addButton&&l.editing.addNewRow._addButton.remove(),l._newRow&&l._newRow.element.classList.add("smart-hidden")),l._renderAddNewRow(),void l.refresh();case"editing_enabled":o?l.removeAttribute("aria-readonly"):l.setAttribute("aria-readonly",!0);break;case"editing_dialog_visible":return;case"editing_commandBar_dataSource_commandBarAddRow_visible":case"editing_commandBar_dataSource_commandBarDeleteRow_visible":case"editing_commandBar_dataSource_commandBarBatchSave_visible":case"editing_commandBar_dataSource_commandBarBatchRevert_visible":case"editing_commandBar_visible":case"editing_commandBar_displayMode":case"editing_commandBar_position":l._renderCommandBar();break;case"editing_commandColumn_position":l._renderColumns(!0);break;case"editing_commandColumn_visible":return void l.refresh(!0);case"editing_commandColumn_inline":return l._commandColumn.visible=l.editing.commandColumn.visible&&!l.editing.commandColumn.inline,void l.refresh(!0);case"layout_isDirty":return;case"editing_commandColumn_dataSource_commandColumnCustom_label":case"editing_commandColumn_dataSource_commandColumnCustom_icon":case"editing_commandColumn_dataSource_commandColumnCustom_visible":case"editing_commandColumn_dataSource_commandColumnUpdate_label":case"editing_commandColumn_dataSource_commandColumnUpdate_icon":case"editing_commandColumn_dataSource_commandColumnUpdate_visible":case"editing_commandColumn_dataSource_commandColumnEdit_label":case"editing_commandColumn_dataSource_commandColumnEdit_icon":case"editing_commandColumn_dataSource_commandColumnEdit_visible":case"editing_commandColumn_dataSource_commandColumnDelete_label":case"editing_commandColumn_dataSource_commandColumnDelete_icon":case"editing_commandColumn_dataSource_commandColumnDelete_visible":case"editing_commandColumn_displayMode":return delete l.__cellsCommandTemplate,void l.refresh(!0)}l.refresh()}}ready(){super.ready();const e=this;e._renderInDropDown();const t=e._scrollView.vScrollBar,o=e._scrollView.hScrollBar;t.hasStyleObserver=!1,o.hasStyleObserver=!1,t.hasResizeObserver=!1,o.hasResizeObserver=!1,t.wait=!1,o.wait=!1,t.onChange=e._verticalScrollbarHandler.bind(e),o.onChange=e._horizontalScrollbarHandler.bind(e),e.setFocusable(!0),e.$.loadingIndicatorPlaceholder.innerHTML=e.messages[e.locale]&&e.messages[e.locale].loadingIndicatorPlaceholder?e.localize("loadingIndicatorPlaceholder"):e.appearance.loadingIndicatorPlaceholder,e.$.placeholder.innerHTML=e.messages[e.locale]&&e.messages[e.locale].placeholder?e.localize("placeholder"):e.appearance.placeholder,e._setLoadingIndicatorVisibility(),e._cellsMerge=[],e._cellStyles=[],e.checkLicense()}_createFilterPanels(){const e=this;if(e._filterPanels){if(e._filterPanels.length>0)return}else e._filterPanels=[];if(e.filtering.enabled&&0===e._filterPanels.length){if(e.header.visible)return;requestAnimationFrame((()=>{const t=document.createElement("smart-filter-panel"),o=document.createElement("smart-filter-panel"),l=document.createElement("smart-filter-panel"),a=document.createElement("smart-filter-panel");o.filterType="boolean",l.filterType="numeric",a.filterType="date",e._filterPanels.bool=o,e._filterPanels.date=a,e._filterPanels.numeric=l,e._filterPanels.string=t;for(let t in e._filterPanels){const o=e._filterPanels[t];o.rightToLeft=e.rightToLeft,o.classList.add("smart-hidden"),e.$.content.appendChild(o),o.parentNode.removeChild(o)}}))}}_applyScrolling(){const e=this,t=e._scrollView.vScrollBar;requestAnimationFrame((()=>{switch(t.largeStep=e.$.scrollView.offsetHeight,e.scrolling){case"physical":case"infinite":case"virtual":t.step=e.layout.rowMinHeight,t.mechanicalAction="switchWhileDragging";break;case"deferred":t.step=10,t.mechanicalAction="switchWhenReleased";break;case"logical":t.step=e.layout.rowMinHeight,t.mechanicalAction="switchWhileDragging"}}))}_measureRowElement(e){const t=new Smart.Grid.Row({data:e,index:999999,grid:this});if(!t)return null;const o=t.createElement();return o.classList.add("smart-grid-measure-row"),this.$.scrollView.appendChild(o),o.style.height="",o.style.lineHeight="",o.style.height="",o.style.lineHeight="",t._isMeasureRow=!0,t.render(),o}get _autoRowHeight(){const e=this;if(e.__autoRowHeight)return e.__autoRowHeight;let t=e.layout.rowMinHeight;if(!e.dataSource||e.dataSource&&0===e.dataSource.length)return t;const o=new Smart.Grid.Row({index:0,grid:e}),l=o.createElement();e.$.scrollView.appendChild(l),e.removeAttribute("grouped"),e.removeAttribute("tree"),e.grouping.enabled&&e.dataSource.groupBy&&e.dataSource.groupBy.length>0?e.setAttribute("grouped",""):e.dataSource.boundHierarchy&&e.setAttribute("tree","");const a={};for(let t=0;t<e.dataSource.dataFields.length;t++)a[e.dataSource.dataFields[t].name]="ABCDEFHIJLMNOPQRSTUVWXYZ1234567910|";o.data=a,o._isMeasureRow=!0,o.render(),l.style.height="",l.style.lineHeight="",t=Math.max(l.offsetHeight,t);for(let e=0;e<l.children.length;e++)l.children[e].style.height="";for(let a=0;a<l.children[1].children.length;a++){if(l.children[1].children[a].style.height="auto",e.columns[0]){const t=o.getCell(e.columns[0].dataField);t&&t.render()}t=Math.max(t,8+l.children[1].children[a].offsetHeight);break}return e.$.scrollView.removeChild(l),e.__autoRowHeight=t,e.layout.rowMinHeight&&t<e.layout.rowMinHeight&&(e.__autoRowHeight=e.layout.rowMinHeight),t}get _scrollHeight(){const e=this,t="card"===e.view;let o=e._recyclingRows,l=0,a=e._autoRowHeight,n=0,i=0;if(e.__scrollHeight)return e.__scrollHeight;if(0===o.length||0===e.columns.length||!e.hasVisibleColumn())return 0;let r=40,s=1,d=0;if(t){for(let t=0;t<e.viewColumns.length;t++){const o=e.viewColumns[t];o.visible&&!o.autoGenerated&&(r+=e.layout.cardRowMinHeight,d++,o.cardHeight&&(r-=e.layout.cardRowMinHeight,r+=o.cardHeight*e.layout.cardRowMinHeight))}let t=e.offsetWidth;!e.appearance.showViewBar||e.appearance.viewBarAppendTo||e.appearance.showViewBarAsDropdown||(t-=e.layout.viewBarWidth+5),s=t<e.layout.cardMinWidth?1:"auto"===e.layout.cardsPerRow?Math.floor(t/e.layout.cardMinWidth):e.layout.cardsPerRow,1===s&&(r+=5*d),e._cardHeight=r}e._cardsPerRow=s,e.rows.canNotify=!1;const u=e._measureRowElement(o[0].data),c=o.length;for(let s=0;s<c;s++){let d=o[s];if(!d.visible||!1===d.filtered){d.height=0,d.cellHeight=0,d.top=l;continue}const c=e.rowDetail.enabled&&d.showDetail&&!e.rowDetail.dialog.enabled;let m=!d.height||!d.cellHeight||c||"auto"===d.height||"auto"===d._height||"auto"===e.layout.rowHeight||e.layout.isDirty;if(t&&d.height!==r&&(d.height=d.cellHeight=r),m&&!d.expandHeight){if(d.detailHeight||(d.detailHeight=200),t)d.height=d.cellHeight=r;else if(e.layout.rowHeight){if(e.layout.rowHeight)if("number"==typeof e.layout.rowHeight)e.layout.rowHeight<e.layout.rowMinHeight&&(e.layout.rowHeight=e.layout.rowMinHeight),d.height=e.layout.rowHeight,d.computedHeight&&(d.height=d.computedHeight),d.minHeight>d.height&&(d.height=d.minHeight),void 0!==d.label&&"advanced"===e.grouping.renderMode&&(d.height=e.grouping.groupRowHeight),d.cellHeight=d.height,e.rowDetail.enabled&&d.showDetail&&!e.rowDetail.dialog.enabled&&(d.height+=d.detailHeight);else if("auto"===e.layout.rowHeight){e.layout.rowHeight<e.layout.rowMinHeight&&(e.layout.rowHeight=e.layout.rowMinHeight),d.element=u,d.grid=e,d.element&&d.element.classList.contains("smart-hidden")&&d.element.classList.remove("smart-hidden");const t=d.data&&e.isRendered?d._autoSize(d):a,o=d.canNotify;d.canNotify=!1,d.height=t,d.computedHeight&&(d.height=d.computedHeight),void 0!==d.label&&"advanced"===e.grouping.renderMode&&(d.height=e.grouping.groupRowHeight),d.cellHeight=d.height,e.rowDetail.enabled&&d.showDetail&&!e.rowDetail.dialog.enabled&&(d.height+=d.detailHeight),d.canNotify=o}else e.layout.rowHeight(s,d),d.height||(d.height=a),d.cellHeight=d.height,e.rowDetail.enabled&&d.showDetail&&!e.rowDetail.dialog.enabled&&(d.height+=d.detailHeight)}else{if("auto"===d.height||"auto"===d._height){d.element=u,d.element&&d.element.classList.contains("smart-hidden")&&d.element.classList.remove("smart-hidden");const t=d.data&&e.isRendered?d._autoSize(d):a;d.height=t,d._height="auto"}else d.height=a;void 0===d.label||d.summaryRow||"advanced"!==e.grouping.renderMode||(d.height=e.grouping.groupRowHeight),d.computedHeight&&(d.height=d.computedHeight),d.cellHeight=d.height,e.rowDetail.enabled&&d.showDetail&&!e.rowDetail.dialog.enabled&&(d.height+=d.detailHeight)}e._rowGap&&s<e.rows.length-1&&(d.height+=e._rowGap)}!t&&(!0===d.freeze||"near"===d.freeze?d.visible&&(n+=d.height):"far"===d.freeze&&d.visible&&(i+=d.height),d.freeze&&d.visible)?d.top=l:(d.top!==l&&(d.top=l),d.expandHeight?l+=d.cellHeight:l+=d.height)}if(e._summaryRowCount&&e.summaryRow.visible&&(l+=1*a),e.editing.addNewRow&&"button"===e.editing.addNewRow.displayMode&&(l+=1*a),e.filtering&&e.filtering.filterRow.visible&&(n+=a),e.editing.addNewRow&&"button"!==e.editing.addNewRow.displayMode&&e.rowHierarchy&&e.editing.addNewRow.visible&&(l+=a,"far"!==e.editing.addNewRow.position&&(n+=a)),e.dataSource&&e.dataSource.virtualDataSource&&!1===e.paging.enabled){let t=e.dataSource.length>e.virtualModeCachedRowsCount?e.virtualModeCachedRowsCount:e.dataSource.length;"infinite"===e.scrolling&&(t=e.dataSource.length),"virtual"===e.scrolling&&t>=e.virtualModeCachedRowsCount&&(l=e.rows[0]?e.rows[0].height*e.dataSource.length:e.layout.rowMinHeight*e.dataSource.length)}return t&&(l=r*Math.ceil(o.length/s)),e.__scrollHeight=l,e.__frozenNearHeight=n,e.__frozenFarHeight=i,e._scrollView.scrollHeight=l-e.$.scrollView.offsetHeight+n+i,l=e.__scrollHeight+n+i-1,e.grouping.enabled&&e.dataSource.groupBy.length>0&&e.grouping.groupIndent>0&&"advanced"===e.grouping.renderMode&&(l+=parseInt(e.grouping.groupIndent/2)),e.__scrollHeight=l,u.remove(),o[0]&&delete o[0]._isMeasureRow,e.rows.canNotify=!0,l}_measureColumnHeight(){const e=this;if(e.__measuredColumnHeight)return e.__measuredColumnHeight;const t=document.createElement("smart-grid-column");t.style.height="auto",t.style.position="static";const o=document.createElement("div");o.classList.add("smart-label"),o.innerHTML="aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRwWxXyYzZ1234567890",t.appendChild(o),e.$.columnHeader.appendChild(t);let l=e.$.columnHeader.offsetHeight;return e.$.columnHeader.removeChild(t),e._columnHeights&&e._columnHeights.length>1&&(l=e._columnHeights[0]),l<e.layout.columnMinHeight&&(l=e.layout.columnMinHeight),e.__measuredColumnHeight=l,l}_initializeColumnGroupsHierarchy(){const e=this;let t=0;e.$.columnContainer.innerHTML="";const o=JSON.parse(JSON.stringify(e.columnGroups));if(o.length>0){for(let t=0;t<o.length;t++)o[t].parent=null,o[t].groups=null,o[t].labelTemplate=e.columnGroups[t].labelTemplate;for(let t=0;t<e.viewColumns.length;t++)e.viewColumns[t].parent=null,e.viewColumns[t].groups=null;const l=function(e){for(let t=0;t<o.length;t++){let l=o[t];if(l.name===e)return l}return null},a=function(e){let t=new Array;if(e.columnGroup&&t.push(e),e.groups)for(let o=0;o<e.groups.length;o++)if(e.groups[o].columnGroup)t.push(e.groups[o]);else if(e.groups[o].groups){let l=a(e.groups[o]);for(let e=0;e<l.length;e++)t.push(l[e])}return t};for(let e=0;e<o.length;e++){let t=o[e];if(t.groups||(t.groups=null),t.parentGroup){let e=l(t.parentGroup);e&&(t.parent=e,e.groups||(e.groups=new Array),-1===e.groups.indexOf(t)&&e.groups.push(t))}}for(let t=0;t<e.viewColumns.length;t++){let o=e.viewColumns[t];if(o.columnGroup){let e=l(o.columnGroup);e&&(e.groups||(e.groups=new Array),o.parent=e,-1===e.groups.indexOf(o)&&e.groups.push(o))}}for(let o=0;o<e.viewColumns.length;o++){const l=e.viewColumns[o];let a=l;for(l.level=0;a.parent;)a=a.parent,l.level++;a=l;let n=l.level;for(t=Math.max(t,l.level);a.parent;)a=a.parent,a&&(a.level=--n)}for(let t=0;t<o.length;t++){const l=o[t],n=a(l);l.columns=n;let i=new Array,r=0,s="near";0===n.length&&(r=-1,l.visible=!1);for(let t=0;t<n.length;t++)i.push(e.viewColumns.indexOf(n[t])),n[t].freeze&&("far"===n[t].freeze&&(s="far"),r++);r===n.length?l.freeze=s:r>0&&r<n.length&&(e.classList.add("smart-visibility-hidden"),e.error(e.localize("frozenColumns",{elementType:"Grid"}))),i.sort((function(e,t){return(e=parseInt(e))<(t=parseInt(t))?-1:e>t?1:0}));for(let t=1;t<i.length;t++)i[t]!==i[t-1]+1&&(e.classList.add("smart-visibility-hidden"),e.error(e.localize("columnGroups",{elementType:"Grid"})))}}e._columnGroupsLevel=1+t,e._columnGroups=o}_refreshColumnHeights(){const e=this;if("card"===e.view)return;e.$.columnHeader.style.height="",e._viewColumnsHeight=e._measureColumnHeight(),e._columnHeights=[];let t=0;for(let o=0;o<e._columnGroupsLevel;o++){let l=e._viewColumnsHeight;e.layout.columnHeight&&(l="number"==typeof e.layout.columnHeight?e.layout.columnHeight?e.layout.columnHeight:e._viewColumnsHeight:e.layout.columnHeight?e.columnHeight(o):e._viewColumnsHeight),l<e.layout.columnMinHeight&&(l=e.layout.columnMinHeight),l?(e._columnHeights.push(l),t+=l):(t+=e._viewColumnsHeight,e._columnHeights.push(e._viewColumnsHeight))}e._columnHeaderHeight=e._columnGroupsLevel*e._viewColumnsHeight,e._columnHeaderHeight=t,e.$.columnHeader.style.height=e._columnHeaderHeight+"px";const o=function(t){let o=0;for(let l=0;l<t.level;l++)o+=e._columnHeights[l];return o},l=function(t){let l=o(t),a=e._columnHeaderHeight-l;for(let o=t.level+1;o<e._columnHeights.length;o++){const l=o;for(let o=0;o<e.viewColumns.length;o++){const n=e.viewColumns[o];let i=!1;if(n.level===l){let o=n;for(;o.parent;){if(o.parent===t){a=e._columnHeights[l],i=!0;break}o=o.parent}if(i)break}}}return a};for(let t=0;t<e.viewColumns.length;t++){const a=e.viewColumns[t],n=l(a);a.computedHeight=n,a.top=o(a)}for(let t=0;t<e._columnGroupsLevel-1;t++)for(let a=0;a<e._columnGroups.length;a++){const n=e._columnGroups[a];if(n.level!==t)continue;if(n.groups){const e=l(n),t=o(n);n.top=t,n.computedHeight=e}const i=n.element;i&&(i.style.width=n.computedWidth+"px",e.rightToLeft?i.style.right=n.left+"px":i.style.left=n.left+"px",i.style.top=n.top+"px",i.style.height=n.computedHeight+"px",i.style.lineHeight=n.computedHeight+"px")}}_refreshColumnWidths(){const e=this;e.__clientSize=null;const t=e.$.verticalScrollBar.offsetWidth>0?e.$.verticalScrollBar.offsetWidth:0,o=e.dataSource.groupBy||[];let l=e.grouping.enabled&&"advanced"===e.grouping.renderMode?e.grouping.groupIndent*(1+o.length):0,a=0;e.selection.checkBoxes.enabled&&(a=e._selectionColumn.computedWidth?e._selectionColumn.computedWidth:e._selectionColumn.minWidth);const n=e._clientSize.width-t-l;let i=0,r=[],s=0,d=0,u=0;if(e.editing.enabled&&!e.editing.commandColumn.inline){const t=function(){const t=document.createElement("div"),o=document.createElement("div"),l=e.editing.commandColumn.dataSource;let a=0,n="",i=0;o.classList.add("smart-label");for(let t in l){const o=l[t];let a=!1;if("commandColumnMenu"===t)continue;let r=!1;a||(!0===o.visible?(i++,r=!0):"auto"===o.visible&&((e.editing.editRow||e.editing.editCell)&&!e.editing.dialog.enabled||"commandColumnEdit"!==t?!e.editing.editRow&&!e.editing.editCell||e.editing.dialog.enabled||("commandColumnUpdate"===t||"commandColumnCancel"===t)&&(i++,r=!0):(i++,r=!0)),a=!0),r&&"icon"!==e.editing.commandColumn.displayMode&&(n+="<span>"+("{{messages}}"===o.label?e.localize(t):o.label)+"</span>")}return o.innerHTML="<span>"+n+"</span>",t.appendChild(o),t.style.width="auto",t.style.position="static",e.$.columnHeader.appendChild(t),a=10+o.firstChild.offsetWidth,e.$.columnHeader.removeChild(t),"icon"===e.editing.commandColumn.displayMode?a=20+20*i:"labelAndIcon"===e.editing.commandColumn.displayMode?a+=25*i:a+=10*i,a};if(e._commandColumn.visible=e.editing.commandColumn.visible,e.editing.commandColumn.visible){const o=e.editing.commandColumn.width?e.editing.commandColumn.width:t();e.columns.canNotify=!1,e._commandColumn.width=o,e.columns.canNotify=!0}}for(let t=0;t<e.viewColumns.length;t++){const o=e.viewColumns[t];let l;"number"==typeof o.width?l=o.width:o.width&&o.width.toString().indexOf("%")>=0?(l=parseFloat(o.width)/100,l*=n-a):o.width&&(o.width.toString().indexOf("em")>=0||o.width.toString().indexOf("pt")>=0||o.width.toString().indexOf("fr")>=0)?(l=parseFloat(o.width),l*=16):"auto"===o.width?l=o._autoSize():o.visible&&(r.push(o),l=0),o.overflowWidth&&(l-=o.overflowWidth),o.visible&&(i+=l),l<o.minWidth&&(l=o.minWidth),o.computedWidth=l}if(r){let e=n-i,t=0;e<0&&(e=60*r.length);for(let o=0;o<r.length;o++){const l=r[o];let a;a=e/r.length,o===r.length-1&&(a=e-t),l.overflowWidth&&(a-=l.overflowWidth),a<l.minWidth&&(a=l.minWidth),l.computedWidth=a,t+=a}}for(let t=0;t<e.viewColumns.length;t++){let o=e.viewColumns[t];o.visible&&(l>0&&!o.autoGenerated&&(o.computedWidth+=l,l=0),o.freeze?!0===o.freeze||"near"===o.freeze?(o.left=s,u+=o.computedWidth,s+=o.computedWidth):"far"===o.freeze&&(o.left=d,d+=o.computedWidth):(o.left=u,u+=o.computedWidth))}for(let t=0;t<e._columnGroupsLevel-1;t++)for(let o=0;o<e._columnGroups.length;o++){const l=e._columnGroups[o];if(l.level!==t)continue;let a=99999;if(l.groups){const e=function(t){let o=0;for(let l=0;l<t.groups.length;l++){let n=t.groups[l];n.groups?o+=e(n):n.visible&&(a=Math.min(n.left,a),o+=n.computedWidth)}return o};l.computedWidth=e(l),l.left=a}}}_createColumnHeaderCellElements(){const e=this,t=e.$.columnContainer,o=document.createDocumentFragment();let l=0;e._columnElements=[],e.$.columnContainer.innerHTML="",e.$.columnNearContainer.innerHTML="",e.$.columnFarContainer.innerHTML="",e.rightToLeft?(e.$.columnNearContainer.classList.remove("near"),e.$.columnNearContainer.classList.add("far"),e.$.columnFarContainer.classList.remove("far"),e.$.columnFarContainer.classList.add("near")):(e.$.columnNearContainer.classList.remove("far"),e.$.columnNearContainer.classList.add("near"),e.$.columnFarContainer.classList.remove("near"),e.$.columnFarContainer.classList.add("far"));for(let t=0;t<e._frozenNearColumns.length;t++)e._frozenNearColumns[t].createElement();for(let t=0;t<e._frozenFarColumns.length;t++)e._frozenFarColumns[t].createElement();for(let t=0;t<e.viewColumns.length;t++){const a=e.viewColumns[t];if(a.freeze)continue;const n=a.createElement();void 0!==a.computedWidth?(a.parent&&n.setAttribute("column-group",a.parent.name),a.parent&&a.parent.columns&&a.parent.columns[0].dataField===a.dataField&&n.setAttribute("column-group-first-child",""),l+=a.computedWidth,e._columnElements.push(n),l<2*e._clientSize.width&&o.appendChild(n)):(e._columnElements.push(n),o.appendChild(n))}for(let t=0;t<e._columnGroups.length;t++){const l=e._columnGroups[t],a=new Smart.Grid.Column({visible:void 0===l.visible||l.visible,allowSort:!1,allowFilter:!1,allowSelect:!1,grid:e,dataField:l.name,label:l.label,labelTemplate:l.labelTemplate,align:l.align,verticalAlign:l.verticalAlign,showIcon:!1});l.column=a;const n=a.createElement();n.style.width=l.computedWidth+"px",e.rightToLeft?n.style.right=l.right+"px":n.style.left=l.left+"px",n.style.top=l.top+"px",n.style.height=l.computedHeight+"px",n.style.lineHeight=l.computedHeight+"px",o.appendChild(n),l.element=n,l.grid=this,n.onpointerdown=()=>{if(e.selection.allowColumnHeaderSelection){const t=function(e){let o=new Array;if(e.columnGroup&&o.push(e),e.groups)for(let l=0;l<e.groups.length;l++)if(e.groups[l].columnGroup)o.push(e.groups[l]);else if(e.groups[l].groups){let a=t(e.groups[l]);for(let e=0;e<a.length;e++)o.push(a[e])}return o},o=t(l);e._selectColumnsRange(o[0].dataField,o[o.length-1].dataField)}}}e.htmlColumnLastChild||(e.htmlColumnLastChild=document.createElement("smart-grid-column"),e.htmlColumnLastChild.classList.add("top-far-corner"),e.htmlColumnLastChild.onpointerdown=e=>{e.stopPropagation(),e.preventDefault()},e.$.columnHeader.appendChild(e.htmlColumnLastChild)),t.appendChild(o),t.style.width=e._computedColumnsWidth+"px",!1===e.appearance.showColumnGroupLines&&e.setAttribute("appearance_hide-column-group-lines",""),e._refreshFrozenColumns()}_refreshFrozenColumns(){const e=this;e.$.columnNearContainer.style.width=e._frozenColumnsNearWidth+"px",e.$.columnFarContainer.style.width=e._frozenColumnsFarWidth+"px";for(let t=0;t<e._columnGroups.length;t++){const o=e._columnGroups[t];o.freeze&&o.element&&(!0===o.freeze||"near"===o.freeze?e.$.columnNearContainer.appendChild(o.element):"far"===o.freeze&&e.$.columnFarContainer.appendChild(o.element))}for(let t=0;t<e.viewColumns.length;t++){const o=e.viewColumns[t];o.freeze&&o.element&&(!0===o.freeze||"near"===o.freeze?e.$.columnNearContainer.appendChild(o.element):"far"===o.freeze&&e.$.columnFarContainer.appendChild(o.element))}}get _clientSize(){const e=this;if(e.__clientSize)return e.__clientSize;const t=getComputedStyle(e.$.container),o=parseFloat(t.paddingLeft)+parseFloat(t.paddingRight),l=parseFloat(t.paddingTop)+parseFloat(t.paddingBottom),a=parseFloat(t.borderLeftWidth)+parseFloat(t.borderRightWidth),n=parseFloat(t.borderTopWidth)+parseFloat(t.borderBottomWidth);return e.__clientSize={width:e.$.container.offsetWidth-o-a,height:e.$.container.offsetHeight-l-n},e.__clientSize}_initializeRowElements(){const e=this;if(!e.rows)return;e.rows.canNotify=!1;let t=0,o=e._clientSize.height;e.$.rowNearContainer.innerHTML="",e.$.rowFarContainer.innerHTML="",e.$.rowContainer.innerHTML="",e._rowElements=[],e._overflowOffset=Math.max(o,300),e.rightToLeft?(e.$.rowNearContainer.classList.remove("near"),e.$.rowNearContainer.classList.add("far"),e.$.rowFarContainer.classList.remove("far"),e.$.rowFarContainer.classList.add("near")):(e.$.rowFarContainer.classList.remove("near"),e.$.rowFarContainer.classList.add("far"),e.$.rowNearContainer.classList.remove("far"),e.$.rowNearContainer.classList.add("near"));const l=e.offsetHeight;e.$.container.classList.add("smart-hidden");const a=e.offsetHeight;e.$.container.classList.remove("smart-hidden"),"hidden"!==e.verticalScrollBarVisibility&&l===a||(o=e._scrollHeight);const n=function(){const l=document.createDocumentFragment();if(e.rows&&0===e.rows.length)return;for(let a=0;a<e.rows.length;a++){const n=e.rows[a];if(n.freeze&&n.visible)continue;const i=n.createElement();if(l.appendChild(i),t+=e.layout.rowMinHeight,t>e._overflowOffset+o)break}e.$.rowContainer.appendChild(l);const a=e.$.rowContainer.children;for(let t=0;t<a.length;t++){const o=a[t];e.rows[t]&&(e.rows[t].element=o),e._rowElements[t]=o}};for(let t=0;t<e._frozenNearRows.length;t++){const o=e._frozenNearRows[t];o.grid=e;const l=o.createElement();o.element=l,e.$.rowNearContainer.appendChild(l)}for(let t=0;t<e._frozenFarRows.length;t++){const o=e._frozenFarRows[t];o.grid=e;const l=o.createElement();o.element=l,e.$.rowFarContainer.appendChild(l)}n();let i=0;for(;t<1.5*o&&++i<50;)n();e.rows.canNotify=!0}_refreshSummary(e){const t=this;t.summaryRow.visible&&(t._summaryUpdateTimer&&clearTimeout(t._summaryUpdateTimer),t._summaryUpdateTimer=setTimeout((()=>{!0!==t.editing.isEditing&&(t._calculateSummary(),!1!==e&&t._recycle(!1,!0,!1))}),100))}_initializeRows(){const e=this;let t=0;e._frozenNearDefaultRows=[],e._frozenFarDefaultRows=[],e.rows=[],e.rowById=[],e._frozenFarRows=[],e._frozenNearRows=[];let o=e._createdDate||new Date,l=void 0!==e._createdBy?e._createdBy:e.currentUser;const a=function(){let t=[],o=!1;for(let l=0;l<e.columns.length;l++){const a=e.columns[l];let n={};a.summary&&a.summary.length>0&&(o=!0,n[a.dataField]=a.summary,t.push(n))}if(!o)return void(e._summaryItems=[]);const l=e.getSelectedRowIds();if(l.length>=1){const o=[];for(let t=0;t<l.length;t++){const a=e.dataSource.dataItemById[l[t]];a&&o.push(a)}e._summaryItems=e.dataSource.summarize(t,o)}else if(e._selection&&e._selection.cells&&Object.keys(e._selection.cells).length>2){const o=e.getSelectedCells(!1),l=[],a=[];for(let t=0;t<o.length;t++){const n=o[t],i=n[0],r=e.dataSource.dataItemById[i];-1===l.indexOf(r)&&l.push(r),-1===a.indexOf(n[1])&&a.push(n[1])}e._summaryItems=e.dataSource.summarize(t,l);const n=Object.keys(e._summaryItems);for(let t=0;t<n.length;t++){const o=n[t];-1===a.indexOf(o)&&delete e._summaryItems[o]}}else e._summaryItems=e.dataSource.summarize(t)};e._calculateSummary=a;const n=e.columns?e.columns.filter((e=>void 0!==e.getCellValue)):[],i=function(a,i,r){let s=null;if(e.isInitialized&&(o=new Date),s=a?a.grid?a:new Smart.Grid.Row({data:a,index:i,grid:e,createdBy:l,createdDate:o}):new Smart.Grid.Row({data:{},index:i,grid:e,createdBy:l,createdDate:o}),n)for(let e=0;e<n.length;e++){const t=n[e],o=t.getCellValue(s.id,t.dataField,a);void 0!==o&&(s.data[t.dataField]=o)}if(e.rowById[s.id]&&(s.id=e.rows.length,e.rowById[s.id])){const e=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};s.id=e()}if(e.onRowInit){e.onRowInit(i,s,e),30!==s.height&&(s.cellHeight=s.height);for(let t in s)-1!==s.properties.indexOf(t)||t.startsWith("_")||e.error(e.localize("invalidRowProperty",{elementType:"Grid",propertyName:t}))}if(s.selected&&(e._selection.rows[s.id]=!0,e._selection.indexes[s.index]=s.index),s.freeze&&s.visible){if(!0===s.freeze||"near"===s.freeze){e.rows.splice(t++,0,s);const o=e.rows[t-1];-1===e._frozenNearRows.indexOf(o)&&e._frozenNearRows.push(o)}else if("far"===s.freeze){e.rows.push(s);const t=e.rows[e.rows.length-1];-1===e._frozenFarRows.indexOf(t)&&e._frozenFarRows.push(t)}}else e.rows[i]?e.rows.splice(i,0,s):e.rows.push(s),s.data&&s.data.$&&(s.data.$.history=s.history,s.data.$.starred=s.starred,s.data.$.comments=s.comments,s.data.$.style=s.style);if(!("virtual"===e.scrolling||e.paging.enabled&&e.dataSource&&e.dataSource.virtualDataSource))if(e.onRowInserted){const t=void 0===i?e.rows[e.rows.length-1]:e.rows[i],o=o=>{const l=t;if(void 0!==o&&Array.isArray(o)&&(o=o[0]),void 0===o){if(e.rowById[l.id]){const t=e.dataSource.dataItemById[l.id],o=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};l.id=o(),l.data&&l.data.$?l.data.$.id=l.id:l.data.id=l.id,e._getId()&&(l.data[e._getId()]=l.id),t&&(e.dataSource.dataItemById[l.id]=l.data)}e.rowById[l.id]=l}else{const t=e.dataSource.dataItemById[l.id];l.id=o,l.data&&l.data.$?l.data.$.id=l.id:l.data.id=l.id;const a=e._getId();a&&(l.data[e._getId()]=l.id),t&&(t[a]=o,e.dataSource.dataItemById[l.id]=t,l.data=t),e.rowById[l.id]=l}-1!==l.index&&void 0!==l.index||(l.index=e.rows.length),e._setAddUndoRedo(l),!e.editing.isEditing&&e.isInitialized&&(e._recycle(!1,!0),e.grouping.groupBy.length&&e.refresh()),e._onRowInserted&&e._onRowInserted(l),r&&r(l)};if(void 0===i&&(i=e.rows.length-1,void 0!==t.index&&-1!==t.index||(t.index=i)),e.isInitialized){e._rowInsertTimer&&clearTimeout(e._rowInsertTimer),e._rowInsert||(e._rowInsert=[]),e._rowInsert.push({row:t,index:i});const l=e._keyboardAdd?300:150;e._rowInsertTimer=setTimeout((()=>{if(1===e._rowInsert.length)e.onRowInserted([i],[t],o,e),delete e._rowInsert,delete e._undoRedoAction;else{let t=[],o=[];for(let l=0;l<e._rowInsert.length;l++)t.push(e._rowInsert[l].index),o.push(e._rowInsert[l].row);delete e._rowInsert,e.onRowInserted(t,o,(t=>{e.beginUpdate();for(let l=0;l<o.length;l++){const a=o[l],n=t?t[l]:void 0;if(void 0!==n){const t=e.dataSource.dataItemById[a.id];a.id=a.data.id=n;const o=e._getId();o&&(a.data[e._getId()]=a.id),e.rowById[a.id]=a,t&&(t[o]=n,e.dataSource.dataItemById[a.id]=t,a.data=t)}e._setAddUndoRedo(a),-1!==a.index&&void 0!==a.index||(a.index=e.rows.length),e._onRowInserted&&e._onRowInserted(a),r&&r(a)}delete e._undoRedoAction,e.endUpdate(!1)}),e)}}),l)}else e.onRowInserted([i],[t],o,e)}else{const t=void 0===i?e.rows[e.rows.length-1]:e.rows[i];void 0===i&&(i=e.rows.length-1,void 0!==t.index&&-1!==t.index||(t.index=i)),r&&r(t)}},r=function(){const t=e.rows[e.rows.length-1];e.rows.pop(),e.onRowRemoved&&e.onRowRemoved([t.id],[t.index],e),e._onRowRemoved&&e._onRowRemoved([t.id],[t.index],e),e._setRemoveUndoRedo(t)},s=function(t){const o=e.rows[t];o.selected&&o.setProperty("selected",!1),e.rows.splice(t,1),e.onRowRemoved&&e.onRowRemoved([o.id],[t],e),e._onRowRemoved&&e._onRowRemoved([o.id],[t],e),e._setRemoveUndoRedo(o)};e._add=i,e._removeLastRow=r,e._removeAt=s,e._rowHeight=e._autoRowHeight;const d=e.dataSource.length,u=e.onRowInserted;e.onRowInserted=null,e.setAttribute("aria-rowcount",d);const c=e.dataSource&&e.dataSource.virtualDataSource&&!e.dataSource.virtualDataSourceOnExpand&&e.dataSource.length>e.virtualModeCachedRowsCount&&"infinite"!==e.scrolling;if(e.dataSource&&e.dataSource.virtualDataSource&&e.paging.enabled&&!e.dataSource.virtualDataSourceOnExpand)for(let t=0;t<e.dataSource.boundSource.length;t++){const o=e.dataSource[t],l=t+e.paging.pageIndex*e.paging.pageSize;e.dataSource.id||(o.$.id=l),i(o,l)}else if(c){let t=e.dataSource.length>e.virtualModeCachedRowsCount?e.virtualModeCachedRowsCount:e.dataSource.length;"infinite"===e.scrolling&&(t=e.dataSource.length);for(let o=0;o<t;o++){const t=e.dataSource[o];i(t,o)}}else for(let t=0;t<e.dataSource.length;t++){const o=e.dataSource[t];i(o,t)}for(let t=0;t<e._frozenFarRows.length;t++){const o=e._frozenFarRows[t];e.rows.splice(e.rows.indexOf(o),1),e.rows.push(o)}if(a(),e.onRowInserted=u,e.dataSource.notify((function(t){if(e.dataSource._updating)return;const o=t.data;e.rows.canNotify=!1;let l=!1;switch(t.action){case"add":if(!o)return;if(void 0!==o.length)for(let t=0;t<o.length;t++)i(o[t],e.dataSource.length-o.length+t);else i(o,e.dataSource.length-1);break;case"update":if(o.length){let o=[],a=[],n=[];for(let r=0;r<n.length;r++){const s=t.index[r];e.rows[s]?(e.rows[s].data=n[r],o.push(s),a.push(e.rows[s]),n.push(e.rows[s].data)):(i(n[r],n[r].$.index),l=!0)}e.onRowUpdated&&e.onRowUpdated(o,a,n,e)}else{const l=t.index;e.rows[l]?e.rows[l].data=o:i(o,e.dataSource.length-1),e.onRowUpdated&&e.onRowUpdated([l],[e.rows[l]],[e.rows[l].data],e)}break;case"insert":i(o,t.index);for(let t=0;t<e.rows.length;t++)e.rows[t].index=t;break;case"remove":s(t.index);break;case"removeLast":r();break;case"bindingComplete":if(e.dataSource&&e.dataSource.url||e.dataSource&&!e.dataSource.virtualDataSource){if(e.appearance.displayLoadingIndicator=!1,e._setLoadingIndicatorVisibility(),e._toggledRow=null,e.dataSource.length!==d){if(e.paging.enabled){const t=e.$.headerPager.querySelector("smart-pager"),o=e.$.footerPager.querySelector("smart-pager");t&&(t.pagesCount=Math.ceil(e.dataSource.length/e._pageSize),t.$&&o.$.pageSizeSelector&&(t.$.pageSizeSelector.disabled=e.dataSource.length<e.pager.pageSizeSelector.dataSource[0])),o&&(o.pagesCount=Math.ceil(e.dataSource.length/e._pageSize),o.$&&o.$.pageSizeSelector&&(o.$.pageSizeSelector.disabled=e.dataSource.length<e.pager.pageSizeSelector.dataSource[0]))}if(0===d&&0===e.columns.length&&e.dataSource.dataFields.length>0){const t=e.context;e.context=e,e.columns.canNotify=!1,e.columns=[],e._renderColumns(),e._resetCachedLayout(),e.columns.canNotify=!0,e.context=t}e._initializeRows(),e._initializeRowElements(),e.refresh()}e._recycle(),e.onLoad&&(e.onLoad(),delete e.onLoad)}}a(),("update"!==t.action||l)&&e._refreshLayout(),e._recycle(),e.rows.canNotify=!0})),e._observeRows(),e.summaryRow.visible){const t=new Smart.Grid.Row({height:e.layout.rowMinHeight,freeze:"near",visible:"near"===e.summaryRow.position,summaryRowIndex:0,summaryRow:!0}),o=new Smart.Grid.Row({height:e.layout.rowMinHeight,freeze:"far",visible:"far"===e.summaryRow.position,summaryRowIndex:0,summaryRow:!0});"near"===e.summaryRow.position&&e._frozenNearRows.splice(0,0,t),"far"===e.summaryRow.position&&e._frozenFarRows.push(o)}if(e.filtering.enabled&&e.filtering.filterRow.visible){const t=new Smart.Grid.Row({freeze:!0,autoGenerated:!0,filterRow:!0});e._frozenNearRows.splice(0,0,t)}e._renderAddNewRow()}_observeRows(){const e=this;e._frozenNearRows=[],e._frozenFarRows=[],e.rows=new Smart.ObservableArray(e.rows,null,{allowToggle:!0,allowResize:!0,allowCheck:!0,allowSelect:!0,allowReorder:!0,expanded:!0,selected:!0,checked:!0,visible:!0,enabled:!0,minHeight:!0,height:!0,freeze:!0,showDetail:!0,data:!0,visibleIndex:!0,index:!0,comments:!0,style:!0,starred:!0,updatedBy:!0,updatedDate:!0,createdDate:!0,createdBy:!0,history:!0});for(let t=0;t<e.rows.length;t++){const o=e.rows[t];!0===o.freeze||"near"===o.freeze?e._frozenNearRows.push(o):"far"===o.freeze&&e._frozenFarRows.push(o),e.rowById[e.rows[t].id]=o}e.rows.notify((function(t){if(!e.rows.canNotify)return;const o=t.action;if("length"===o)return;if(t.path)return e.rows.canNotify=!1,(e.rowById[t.target.id]||"selected"===t.propertyName)&&(l=t.target,a=t.propertyName,n=t.oldValue,i=t.newValue,n===i&&"selected"!==a&&"showDetail"!==a||(l.propertyChanged(a,n,i),e.onRowChange&&l.properties.indexOf(a)>=0&&e.onRowChange(l,a,n,i,e))),void(e.rows.canNotify=!0);var l,a,n,i;if(e.rows.canNotify=!1,!e.dataSource)return;switch(e.dataSource.canNotify=!1,o){case"add":{const o=function(o){let l=e.rows[o];if(l instanceof Smart.Grid.Row==0){l=new Smart.Grid.Row(l);const a=e.rows.canNotify;e.rows.canNotify=!1,t.object[o]=l,l=t.object[o],e.rows.canNotify=a}if(l.grid=e,e.dataSource&&e.dataSource.virtualDataSource){e.rows.canNotify=!1;for(let t=0;t<e.rows.length;t++){const o=e.dataSource.boundSource[t],l=e.rows[t];o&&(l.data=o,l.id=o.$.id),e.rowById[l.id]=l}e.rows.canNotify=!0}else(()=>{if(0===e.dataSource.length&&e.dataSource.dataFields&&0===e.dataSource.dataFields.length&&e.columns&&e.columns.length){let t=[];for(let o=0;o<e.columns.length;o++){const l=e.columns[o];t.push({name:l.dataField,dataType:l.dataType||"string"}),l.displayField&&l.displayField!==l.dataField&&t.push({name:l.displayField,dataType:l.dataType||"string"})}e.dataSource.dataFields=t}if(o<e.dataSource.length?e.dataSource.insert(o,e.rows[o].data):e.dataSource.add(e.rows[o].data),e.dataSource[o]){l.data=e.dataSource[o];for(let t=0;t<e.dataSource.dataFields.length;t++){const o=e.dataSource.dataFields[t].name;e.columnByDataField[o]||delete l.data[o]}void 0!==e.dataSource[o].$.id&&(l.id=e.dataSource[o].$.id,e.rowById[l.id]=l),l.data.$&&l.history&&(l.data.$.history=l.history)}-1!==l.index&&void 0!==l.index||(l.index=o),l.selected&&(e._selection.rows[l.id]=!0,e._selection.indexes[l.index]=l.index),l.freeze&&(!0===l.freeze||"near"===l.freeze?e._frozenNearRows.push(l):"far"===l.freeze&&e._frozenFarRows.push(l)),e._conditionalColors&&e._conditionalColors.update&&setTimeout((()=>{e._conditionalColors.update(),e._recycle(!1)}),100)})()};for(let e=0;e<t.addedCount;e++)o(t.index+e);break}case"update":if(t.target){const o=e.rowById[t.target.id],l=e.rows.indexOf(o);e.dataSource.update(l,o)}else{const o=e.rows.indexOf(t.index);e.dataSource.update(t.index,o)}break;case"remove":{if(e.dataSource&&e.dataSource.virtualDataSource){e.rows.canNotify=!1;const o=t.removed&&t.removed.length>0?t.removed[0]:null;o&&delete e.rowById[o.id];for(let t=0;t<e.dataSource.boundSource.length;t++){const o=e.dataSource.boundSource[t],l=e.rows[t];l&&(l.data=o,l.id=o.$.id,e.rowById[l.id]=l)}return e.rows.canNotify=!0,e.refresh(),void e._refreshPaging(!1)}const o=t.removed&&t.removed.length>0?t.removed[0]:null;o&&delete e.rowById[o.id],e.dataSource.removeAt(t.index);break}}if(e.dataSource.canNotify=!0,e.rows.canNotify=!0,!o)return;let r=e.isInitialized&&e._rowElements&&e._rowElements.length<e.rows.length;"add"===o&&1===t.addedCount&&r&&e._rowElements.length>0&&e._rowElements[e._rowElements.length-1].classList.contains("smart-hidden")&&(r=!1),r&&e._initializeRowElements(),e.refresh(!1,o),e._refreshPagesCount(),e._sortedColumns&&e._sortedColumns.length>0&&e.refreshSort()}))}setDropDownLabel(e){const t=this;t.$.dropDownElement&&(t.$.dropDownElement.querySelector(".smart-action-button").innerHTML=e)}openDropDown(){const e=this;if(!e.dropDownMode)return;if(!e.$.dropDownPopup)return;const t=e.$.dropDownPopup,o=e.$.dropDownElement;o.setAttribute("active",""),o.querySelector(".smart-drop-down-button").setAttribute("active",""),(()=>{const l=0,a=0;if(e.layout.isDirty=!0,window.screen.availWidth<400)return t.open("left","top"),t.style.width=e.offsetWidth+"px",void(t.style.height=e.offsetHeight+"px");{const o={width:e.layout.dropDownWidth,height:e.layout.dropDownHeight};t.style.width="auto"===o.width?o.width:o.width+"px",t.style.height="auto"===o.height?o.height:o.height+"px"}const n=o;if(n){const o=e.offset(n),i=o.left-l,r=l,s=Math.max(r,i);t.open(s,o.top+n.offsetHeight-a)}else t.classList.add("center"),t.open("center","center");e.style.display=""})()}closeDropDown(){const e=this;e.dropDownMode&&e.$.dropDownPopup&&(e.$.dropDownElement.removeAttribute("active"),e.$.dropDownElement.querySelector(".smart-drop-down-button").removeAttribute("active"),e.$.dropDownPopup.close())}_renderInDropDown(){const e=this;if(e.dropDownMode&&(e.dropDownMode&&(e.style.display="none"),e.dropDownMode&&void 0===e._dropDownMode)){e._dropDownMode=!0;const t=document.createElement("div"),o=e._createPopup();o.allowDrag=!1,o.classList.add("smart-grid-drop-down-popup"),e.$.dropDownElement=t,e.$.dropDownPopup=o,t.onmouseenter=()=>{t.hasAttribute("active")||t.setAttribute("hover","")},t.onmouseleave=()=>{t.removeAttribute("hover")},t.classList.add("smart-grid-drop-down-button","smart-drop-down-box"),e.parentNode.insertBefore(t,e),t.innerHTML=`<div class="smart-container" role="presentation">\n <div class="smart-content" role="presentation">\n <div class="smart-buttons-container" role="presentation">\n <span class="smart-action-button">${e.localize("dropDownPlaceholder")}</span>\n <span class="smart-drop-down-button">\n <span class="smart-drop-down-button-icon" id="arrow" aria-hidden="true"></span>\n </span>\n </div>\n </div>\n </div>`,t.onclick=()=>{o.classList.contains("open")?e.closeDropDown():e.openDropDown()},e.style.height="100%",e.style.width="100%",o.content.appendChild(e),e._cellsMerge=[],e._cellStyles=[],e._popupDropDown||(e._popupDropDown=o,o._refreshPosition=()=>{const l=e.offset(t),a=t.offsetHeight,n=e.offset(e);if(o.style.maxHeight="",o.style.minHeight="",l.top+a+o.offsetHeight>window.innerHeight-n.top){const e=a+l.top+o.offsetHeight-window.innerHeight+n.top;o.style.maxHeight=Math.max(250,o.offsetHeight-e)+"px",o.style.minHeight="250px"}else o.style.maxHeight="",o.style.minHeight=""},o.onOpen=function(){e._popupDropDown._refreshPosition(),e.$.fireEvent("dropDownGridOpen")},o.onClose=function(){e.$.fireEvent("dropDownGridClose")},o.onkeydown=function(e){"Escape"===e.key&&(o.result=!1,o.close())})}}render(){const e=this,t=()=>0===e.offsetWidth||0===e.offsetHeight;if(t())return requestAnimationFrame((()=>{e.isInitialized||t()||(e._undoRedo=[],e._refreshCurrentUser(),e._render())})),e.setAttribute("role","grid"),e.editing.enabled||e.setAttribute("aria-readonly",!0),void super.render();const o=e.context;e.context=e,e.setAttribute("role","grid"),"grid"!==e.view&&e.setAttribute("view",e.view),e.editing.enabled||e.setAttribute("aria-readonly",!0),e._undoRedo=[],e._refreshCurrentUser(),e._render(),e.context=o,super.render()}_renderColumns(e){const t=this;t._initializeColumns(),t._initializeColumnGroupsHierarchy(),t._refreshColumnsResponsiveVisibility(),t._createColumnHeaderCellElements(),t._renderColumnGroupHeaders(),!1!==e&&t._refresh()}_renderRows(e){const t=this;t._initializeRows(),t._initializeRowElements(),!1!==e&&t._refresh()}_setupMobile(){const e=this;if(void 0===e._mobile&&(e._mobile=Smart.Utilities.Core.isMobile),e._mobile){e.editing.addNewColumn.visible=!1,e.layout.rowMinHeight=e.layout.rowHeight=e.layout.columnMinHeight=e.layout.columnHeight=25,e.layout.columnWidth=180,e.behavior.rowResizeMode="none",e.behavior.allowRowReorder=!1,e.editing.action="none",e._scrollView.vScrollBar.showButtons=!1,e._scrollView.hScrollBar.showButtons=!1,e.style.setProperty("--smart-scroll-bar-size","12px"),document.body.style.setProperty("--smart-data-view-sort-panel-width","345px"),e._scrollContent=document.createElement("div"),e._scrollContent.style.width="100%",e._scrollContent.style.height="100%",e._scrollContent.style.position="absolute",e._scrollContent.style.left="0px",e._scrollContent.style.top="0px",e._scrollContent.style.background="white",e._scrollContent.style.zIndex=9999,e._scrollContent.style.opacity=.1,e._scrollContent.style.overflow="auto",e.addEventListener("viewChange",(()=>{"grid"===e.view?e._scrollContent.classList.remove("smart-hidden"):e._scrollContent.classList.add("smart-hidden")})),e.addEventListener("beginEdit",(()=>{e._scrollContent.classList.add("smart-hidden")})),e.addEventListener("endEdit",(()=>{e._scrollContent.classList.remove("smart-hidden")})),e._scrollContent.ontouchmove=e=>{e.stopPropagation()},e._scrollContent.ontouchstart=e=>{e.stopPropagation()},e._scrollContent.onpointerdown=t=>{e._scrollContentScroll=!1,setTimeout((()=>{const o=e=>new PointerEvent(e,{bubbles:!0,cancelable:!0,composed:!0,pointerId:42,pointerType:"mouse",clientX:t.clientX,clientY:t.clientY,pageX:t.pageX,pageY:t.pageY});if(e._scrollContentScroll)e._hideActionButtons();else{const l=(e.enableShadowDOM?e.shadowRoot:e.getRootNode()).elementsFromPoint(t.clientX,t.clientY);if(l[2])if(l[2].classList.contains("smart-grid-add-row-button"))e._hideActionButtons(),l[2].dispatchEvent(o("click"));else if(l[2].classList.contains("smart-summary-placeholder")||l[2].classList.contains("summary-value-part"))e._hideActionButtons(),l[2].dispatchEvent(o("pointerup"));else if(l[2].closest("smart-menu-item")){e._hideActionButtons();const t=l[2].closest("smart-menu-item");l[2].closest("smart-menu")._menuItemSelectionHandler(t)}else{if(l[2].dispatchEvent(o("pointerdown")),e._lastMobileClickRange){const o=e._lastMobileClickRange;let l=!0;o.left<=t.pageX&&o.left+o.right>=t.pageX&&(l=!1),l&&e._hideActionButtons()}else e._hideActionButtons();const a=(o,l)=>{if(o&&o.autoShowActionButton){const a=l.getBoundingClientRect(),n=e.offset(l);if(n.left<=t.pageX&&n.left+a.width-6>=t.pageX){if(!e.hasColumnMenu(o))return;e._lastMobileClickRange={left:n.left,right:n.left+a.width-6},l._showActionButton()}else l._hideActionButton()}};for(let t=0;t<e._columnElements.length;t++){const o=e._columnElements[t];a(o.column,o)}}}}),300),t.stopPropagation()};let t=0;const o=()=>{const t=e._scrollContent.scrollLeft,o=e._scrollContent.scrollTop;e._scrollView.vScrollBar.value=o,e._scrollView.hScrollBar.value=t,e._scrollContentScroll=!0};e._scrollContent.onscroll=()=>{cancelAnimationFrame(t),t=0,t=requestAnimationFrame(o)},e._scrollContentView=document.createElement("div"),e._scrollContentView.style.width=e._scrollView.scrollWidth+"px",e._scrollContentView.style.height=e._scrollView.scrollHeight+"px",e._scrollContent.appendChild(e._scrollContentView),e.$.scrollView.appendChild(e._scrollContent)}}_render(){const e=this;if(e.isInitialized||(e.onBeforeInit&&(e.onBeforeInit(e),e.onBeforeInit=null),e.$.fireEvent("beforeInit",{grid:e}),e.header.visible&&(e.header.buttons.indexOf("views")>=0||e.header.buttons.indexOf("states")>=0)&&e._updateKanbanTaskFields()),e._setupMobile(),(()=>{if(null===e.dataSource)e.dataSource=new Smart.DataAdapter;else if(Array.isArray(e.dataSource)||"string"==typeof e.dataSource){let t=[];if(e.dataSourceSettings.dataFields&&e.dataSourceSettings.dataFields.length>0)e.dataSource=new Smart.DataAdapter({dataSource:e.dataSource,dataSourceType:e.dataSourceSettings.dataSourceType,dataFields:e.dataSourceSettings.dataFields,keyDataField:e.dataSourceSettings.keyDataField,parentDataField:e.dataSourceSettings.parentDataField,childrenDataField:e.dataSourceSettings.childrenDataField,groupBy:e.dataSourceSettings.groupBy||e.grouping.groupBy,mapChar:e.dataSourceSettings.mapChar,root:e.dataSourceSettings.root,record:e.dataSourceSettings.record,autoGenerateColumns:e.autoGenerateColumns,id:e.dataSourceSettings.id,virtualDataSource:e.dataSourceSettings.virtualDataSource,virtualDataSourceOnExpand:e.dataSourceSettings.virtualDataSourceOnExpand});else if(e.columns&&e.columns.length){for(let o=0;o<e.columns.length;o++){const l=e.columns[o];t.push({name:l.dataField,dataType:l.dataType||"string"}),l.displayField&&l.displayField!==l.dataField&&t.push({name:l.displayField,dataType:l.dataType||"string"})}e.dataSource=new Smart.DataAdapter({dataSource:e.dataSource,dataFields:t,dataSourceType:e.dataSourceSettings.dataSourceType,keyDataField:e.dataSourceSettings.keyDataField,parentDataField:e.dataSourceSettings.parentDataField,childrenDataField:e.dataSourceSettings.childrenDataField,groupBy:e.dataSourceSettings.groupBy||e.grouping.groupBy,mapChar:e.dataSourceSettings.mapChar,root:e.dataSourceSettings.root,record:e.dataSourceSettings.record,autoGenerateColumns:e.autoGenerateColumns,id:e.dataSourceSettings.id,virtualDataSource:e.dataSourceSettings.virtualDataSource,virtualDataSourceOnExpand:e.dataSourceSettings.virtualDataSourceOnExpand})}else e.dataSource=new Smart.DataAdapter({dataSource:e.dataSource})}})(),e._selection={rows:[],indexes:[],columns:[],cells:[]},e.dataSource&&e.dataSource.url&&(e.appearance.displayLoadingIndicator=!0,e._setLoadingIndicatorVisibility(),e.dataSource.data={sorting:e.getSortedColumns(),filtering:e.getFilteredColumns(),grouping:e.grouping.groupBy}),e.filtering.filterRow)for(let t=0;t<e.columns.length;t++)e.columns[t]._filterEditorInitialized&&(e.columns[t]._filterEditorInitialized=!1);const t=!e.isInitialized;if(t&&(e.onInit&&(e.onInit(e),e.onInit=null),e.$.fireEvent("init",{grid:e})),e._renderColumns(!1),e._renderRows(!1),e._renderPagers(),e._renderCommandBar(),e._renderConditionalFormatting(),e._initFormulaParser(),t&&e.grouping.enabled&&e.grouping.groupBy.length&&e.dataSource&&(e.dataSource.groupBy=e.grouping.groupBy),e.appearance.allowColumnStickyPosition&&e._stickHeader(),e.header.visible&&""===e.header.template){const t=document.createElement("smart-grid-toolbar");t.headerPosition="top",t.messages=e.messages,t.locale=e.locale;let o=e.$.header;e.header.appendTo&&(o=document.querySelector(e.header.appendTo),o?o.onclick=t=>{e._headerClickHandler(t)}:o=e.$.header),o.appendChild(t),e.$.headerBar&&e.$.headerBar.remove(),e.$.headerBar=o.firstElementChild,e.$.headerBar._init(e)}if(e.isInitialized)e.refreshFilters();else{let t=!1;if(e.stateSettings.autoLoad){let o=e.stateSettings.current;!o&&e.stateSettings.allowLocalStorage&&(e.stateSettings.current="View 1",o=e.stateSettings.current);let l=null;e.stateSettings.storage&&(l=e.stateSettings.storage[o]),l&&(t=!0),!l&&e.stateSettings.allowLocalStorage&&(l=window.localStorage.getItem(o),l&&(t=!0))}if(!t){const t=[];for(let o=0;o<e.viewColumns.length;o++){const l=e.viewColumns[o];l.allowSort&&l.sortOrder&&t.push(l)}if(0===t.length&&e.sorting.sort)for(let o=0;o<e.sorting.sort.length;o++){const l=e.sorting.sort[o],a=Object.keys(l)[0],n=l[a],i=e.columnByDataField[a];i&&(t.push(i),i.sortOrder=n||"asc")}t.sort(((e,t)=>e.sortIndex-t.sortIndex));for(let o=0;o<t.length;o++){const l=t[o],a=e.appearance.allowSortAnimation;e.appearance.allowSortAnimation=!1,e.sortBy(l.dataField,l.sortOrder),e.appearance.allowSortAnimation=a}if(e.filtering.filter.length>0){for(let t=0;t<e.filtering.filter.length;t++){const o=e.filtering.filter[t];if(o){if("string"==typeof o){const t=e.filtering.filter[0],o=e.columnByDataField[t],l=e.filtering.filter[1];let a=null;if(o&&(a=e.dataSource._createFilter(o.dataType,l)),a){if(e.filtering.filterRow.visible&&!o._filterInfo){let e=[];for(let t=0;t<a.filters.length;t++)e.push(a.filters[t].value),t<a.filters.length-1&&e.push(a.logicalOperators[t]);o._filterInfo={condition:a.filters[0].condition,value:e.join(" ")}}e.addFilter(t,a,!1)}break}const t=o[0],l=o.splice(1);let a=null;if(l instanceof Smart.FilterGroup)a=l;else{const o=e.columnByDataField[t];o&&(a=e.dataSource._createFilter(o.dataType,l))}if(a){if(e.filtering.filterRow.visible){const o=e.columnByDataField[t];if(!o._filterInfo){let e=[];for(let t=0;t<a.filters.length;t++)e.push(a.filters[t].value),t<a.filters.length-1&&e.push(a.logicalOperators[t]);o._filterInfo={condition:a.filters[0].condition,value:e.join(" ")}}}e.addFilter(t,a,!1)}}}e.refreshFilters()}else{for(let t=0;t<e.columns.length;t++){const o=e.columns[t];if(o.filter){let t=null,l=o.filter;if(t=l instanceof Smart.FilterGroup?l:e.dataSource._createFilter(o.dataType,l),t){if(e.filtering.filterRow.visible&&!o._filterInfo){let e=[];for(let o=0;o<t.filters.length;o++)e.push(t.filters[o].value),o<t.filters.length-1&&e.push(t.logicalOperators[o]);o._filterInfo={condition:t.filters[0].condition,value:e.join(" ")}}e.addFilter(o.dataField,t,!1)}}}e.refreshFilters()}}}if(e.viewColumns.canNotify=!0,e.isInitialized=!0,("virtual"===e.scrolling||e.paging.enabled&&e.dataSource&&e.dataSource.virtualDataSource||e.dataSource&&e.dataSource.virtualDataSource)&&e._virtualDataRequest("dataBind"),""!==e.header.template&&e._applyTemplate(e.header.template,e.$.header),""!==e.footer.template&&e._applyTemplate(e.footer.template,e.$.footer),e._createFilterPanels(),e._refresh(),e._applyScrolling(),e.grouping.enabled&&e.grouping.autoExpandAll&&e.rowHierarchy?e.expandAllRows():e.grouping.enabled&&e.grouping.autoExpandToLevel&&e.rowHierarchy&&e.expandRowsToGroupLevel(e.grouping.autoExpandToLevel),e.onRender&&(e.onRender(t),e.onRender=null),e.isRendered=!0,"auto"===e.layout.rowHeight&&(e._refreshLayout(),e._recycle()),t){if(e.stateSettings.autoLoad){let t=e.stateSettings.current,o=null;e.stateSettings.storage&&(o=e.stateSettings.storage[t]),!t&&e.stateSettings.allowLocalStorage&&(e.stateSettings.current="smartGrid"+e.id,t=e.stateSettings.current),!o&&e.stateSettings.allowLocalStorage&&(o=window.localStorage.getItem(t)),o&&("string"==typeof o&&(o=JSON.parse(o)),e._loadState(o))}if(e.onAfterInit&&(e.onAfterInit(e),e.onAfterInit=null),e.$.fireEvent("afterInit",{grid:e}),e.isRendering=!1,e.whenRenderedCallbacks){for(let t=0;t<e.whenRenderedCallbacks.length;t++)e.whenRenderedCallbacks[t]();e.whenRenderedCallbacks=[]}!e.dataSource||e.dataSource.url||e.dataSource.virtualDataSource||e.onLoad&&e.onLoad(e)}"kanban"===e.view&&e._initKanbanView()}_initFormulaParser(){const e=this;if(e.formulas){class t{constructor(e){const t=this;let o;try{o=new formulaParser.Parser}catch(e){throw new Error("Smart.FormulaParser: Missing reference to 'formula-parser.min.js'.")}o.on("callCellValue",t._callCellValue.bind(t)),o.on("callRangeValue",t._callRangeValue.bind(t)),t.dataTable=e,t.parser=o}_getFormula(e){const t=this,o="A".charCodeAt(0);let l=0,a="";const n=e;if(t.dataTable._formulas||(t.dataTable._formulas=[]),t.dataTable._formulas[e])return t.dataTable._formulas[e];for(let n=0;n<t.dataTable.columns.length;n++){const i=t.dataTable.columns[n],r=String.fromCharCode(o+l);l++,l>=26&&(l=0,a+="A"),e.indexOf(i.label)>=0?e=e.replaceAll(i.label,a+r):e.indexOf(i.dataField)>=0&&(e=e.replaceAll(i.dataField,a+r))}return t.dataTable._formulas[n]=e,e}_callCellValue(e,t){const o=this,l=o.dataTable,a=e.column.index,n=e.row.index,i=l.columns[a].dataField;let r=l.dataSource[n][i];const s=l.rows[n];if(s){const e=s.getCell(i);e&&e.formula&&(r=o._getFormula(e.formula))}"string"==typeof r&&/=.+/.test(r)&&(r=o.parse(r.slice(1))),t(r)}_callRangeValue(e,t,o){const l=this.dataTable,a=l.dataSource,n=[];for(let o=e.row.index;o<=t.row.index;o++){const i=a[o],r=[];for(let o=e.column.index;o<=t.column.index;o++){let e=i[l.columns[o].dataField];e=isNaN(e)?0:parseFloat(e),isNaN(e)&&(e=0),r.push(e)}n.push(r)}n&&o(n)}parse(e){const t=this.parser.parse(this._getFormula(e));return null!==t.result?t.result:t.error}}e._formulaParser=new t(e)}}get _viewRows(){const e=this;if(e.__viewRows)return e.__viewRows;e._nearRowsAdded||(e._nearRowsAdded=[],e._farRowsAdded=[]);const t=e.rows.toArray?e.rows.toArray():[],o=e.rowHierarchy?e.rowHierarchy:t,l=[].concat(e._frozenNearDefaultRows,e._nearRowsAdded,o,e._farRowsAdded,e._frozenFarDefaultRows);return e.__viewRows=l,l}_toHex(e){if(-1!==e.indexOf("#"))return e;const t=/rgb\((\d+), (\d+), (\d+)\)/g.exec(e);return t?"#"+(parseFloat(t[1]).toString(16).padStart(2,"0")+parseFloat(t[2]).toString(16).padStart(2,"0")+parseFloat(t[3]).toString(16).padStart(2,"0")).toUpperCase():"#FFFFFF"}_renderConditionalFormatting(e){const t=this,o=t.conditionalFormatting;if(!o||0===o.length)return;if(!t._defaults){const e=getComputedStyle(t);t._defaults={fontFamily:e.fontFamily,fontSize:e.fontSize,text:t._toHex(e.color),highlight:t._toHex(e.backgroundColor)}}t._formatter||(t._formatter=new Smart.Utilities.ConditionalFormatter(t.dataSource)),e&&(t._formatter=new Smart.Utilities.ConditionalFormatter(t.dataSource),delete t._conditionalFormatting);const l=t._defaults,a=t._formatter,n=[],i=function(e){if("all"===e){if(t.columns&&t.columns.map){const e=[];for(let o=0;o<t.columns.length;o++){const l=t.columns[o];l.dataField.startsWith("task")||l.autoGenerated||"number"!==l.dataType&&"date"!==l.dataType||e.push(l.dataField)}return e}return[]}return[e]};for(let e=0;e<o.length;e++){o[e]=Object.assign({column:"all",condition:"lessThan",firstValue:0,secondValue:1,fontFamily:l.fontFamily,fontSize:l.fontSize,text:l.text,highlight:l.highlight},o[e]);const t=o[e],r=i(t.column),s=t.condition;a.color=t.highlight,a.comparator=t.firstValue,a.min=t.firstValue,a.max=t.secondValue;const d=a.format(s,r);for(let e in d){const o=d[e];for(let e in o){const l=o[e];l.color=t.text,l.fontFamily=t.fontFamily,l.fontSize=t.fontSize}}n.push(d)}if(t._formattingPanel&&(t._formattingPanel.items=o),0===n.length)return n[0];const r={};for(let e=0;e<n.length;e++){const t=n[e];for(let e in t){const o=t[e];if(0!==Object.keys(o).length){r[e]||(r[e]={});for(let t in o)r[e][t]=Object.assign({},r[e][t],o[t])}}}t._conditionalFormatting=r,e&&t._recycle(!1)}_stickHeader(){const e=this;e._stickyHeaderHandler=function(){e._handleStickyHeader()},e.$.columnHeader.style.top="",e.$.columnHeader.classList.remove("smart-columns-sticky");let t=e.parentNode;for(e.isInShadowDOM&&t===e.getRootNode()&&(t=e.getRootNode().host);t!==document&&t;)t.addEventListener("scroll",e._stickyHeaderHandler),t=t.parentNode,e.isInShadowDOM&&t===e.getRootNode()&&(t=e.getRootNode().host);try{null!==window.top&&window.top!==window.self&&window.top.document.addEventListener("scroll",e._stickyHeaderHandler)}catch(e){}e._handleStickyHeader()}_unstickHeader(){const e=this;e.$.columnHeader.style.top="",e.$.columnHeader.classList.remove("smart-columns-sticky");let t=e.parentNode;for(;t!==document.body;)t.removeEventListener("scroll",e._stickyHeaderHandler),t=t.parentNode,e.isInShadowDOM&&t===e.getRootNode()&&(t=e.getRootNode().host);try{(""!==document.referrer||window.frameElement)&&null!==window.top&&window.top!==window.self&&window.top.document.removeEventListener("scroll",e._stickyHeaderHandler)}catch(e){}}_handleStickyHeader(){const e=this;if(e.appearance.allowColumnStickyPosition)if(e.$.columnHeader.classList.add("smart-columns-sticky"),0===document.scrollTop&&0===e.parentElement.scrollTop)e.$.columnHeader.style.top="";else{let t=e.parentNode,o=0;for(;t!==document.body;)o+=parseInt(t.scrollTop),t=t.parentNode,e.isInShadowDOM&&t===e.getRootNode()&&(t=e.getRootNode().host);const l=parseInt(e.clientTop+o);e.$.columnHeader.style.top=l+"px";let a=0;window.top!==window.self&&parseInt(window.top.scrollY)>parseInt(e._offsetTop(window.frameElement))&&(a=parseInt(window.top.scrollY)-parseInt(e._offsetTop(window.frameElement))),window.scrollY+a>e.offsetTop&&(e.$.columnHeader.style.top=parseInt(window.scrollY)-parseInt(e.offsetTop)+l+a+"px")}}_scrollHandler(){this._handleStickyHeader()}_initializeRowNumberColumn(){const e=this;if(e._frozenNearColumns&&e._frozenNearColumns.length>0&&e._frozenNearColumns[0].rowHeaderColumn)return void(e._frozenNearColumns[0].visible=e.appearance.showRowHeaderNumber||e.appearance.showRowHeader);const t=new Smart.Grid.Column({dataField:"_rowHeaderColumn",label:"",allowSelect:!1,freeze:!0,visible:!0,grid:e,autoGenerated:!0,rowHeaderColumn:!0,cellsAlign:"center"}),o=e.rows?e.rows.length:e.dataSource?e.dataSource.length:0;let l=e.appearance.showRowHeaderNumber?t._measureSize(o):30;e.layout.autoGenerateColumnWidth&&(l=e.layout.autoGenerateColumnWidth),e.appearance.showRowComments&&(l=25,t.minWidth=25),t.width=l,t.createElement();const a=new Smart.Observable(t,t.observables);e.viewColumns.splice(0,0,a),e._frozenNearColumns.splice(0,0,a)}_initializeColumns(){const e=this;if("number"==typeof e.columns){const t=[],o="A".charCodeAt(0);let l="",a=0;for(let n=0;n<e.columns;n++){let i=n+1;const r=String.fromCharCode(o+a);a++;const s=l+r;"number"!==e.appearance.autoGenerateColumnLabelMode&&(i=l+r),t.push({align:"center",label:i,dataField:s,width:100}),a>=26&&(a=0,l+="A")}e._boundColumns=t}else e._boundColumns=Array.isArray(e.columns)?[...e.columns]:[...e.columns.toArray()];e._initColumns=e.columns,e.columnByDataField=[],e.viewColumns=[],e.columns=new Smart.ObservableArray,e._frozenFarColumns=[],e._frozenNearColumns=[],e._summaryRowCount=1;let t=0;const o=function(t){if(e.dataSource.dataFields){const o=e.dataSource.dataFields.find((e=>{if(e.name===t.dataField)return e})),l=o&&o.dataType||"string";t.dataType||(t.dataType=l)}};if(0===e._boundColumns.length&&e.dataSource&&e.dataSource[0]&&!1!==e.dataSource.autoGenerateColumns){const t=e.dataSource[0];if(t.$&&t.$.isEmpty&&e.dataSource.dataFields)for(let t=0;t<e.dataSource.dataFields.length;t++){const o=e.dataSource.dataFields[t],l=e._boundColumns.length,a={index:l,visibleIndex:l,label:o.name,dataField:o.name,dataType:o.dataType};e._boundColumns.push(a)}else for(let l in t){if(l.startsWith("_")||"$"===l)continue;const t=e._boundColumns.length,a={index:t,visibleIndex:t,label:l,dataField:l};o(a),e._boundColumns.push(a)}}for(let l=0;l<e._boundColumns.length;l++){let a=e._boundColumns[l];if("string"==typeof a){if(e.dataSource.dataFields){const t=e.dataSource.dataFields.find((e=>{if(e.name===a)return e}));a={label:a,dataField:a,dataType:t&&t.dataType||"string"}}}else o(a);a.visibleIndex=l,a.index=l,a.grid=e,a.label&&/<.+?>/.test(a.label)&&a.label.replace&&("all"===e.dataSourceSettings.sanitizeHTML?a.label=a.label.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;"):"blackList"===e.dataSourceSettings.sanitizeHTML&&(a.label=window.Smart.Utilities.Core.escapeHTML(a.label)));const n=new Smart.Grid.Column(a);e.onColumnInit&&e.onColumnInit(l,n);for(let t in n)-1!==n.properties.indexOf(t)||t.startsWith("_")||e.error(e.localize("invalidColumnProperty",{elementType:"Grid",propertyName:t,type:n.dataField||"Column"}));delete a.grid,delete a.dataType,delete a.index,delete a.visibleIndex,n.grid=e,e.columns.push(n),n._dataField&&(e.columnByDataField[n._dataField]=n);const i=e.columns[e.columns.length-1];e._summaryRowCount=Math.max(e._summaryRowCount,n.summary.length),n.freeze?!0===n.freeze||"near"===n.freeze?(e.viewColumns.splice(t++,0,i),e._frozenNearColumns.push(i)):"far"===n.freeze&&e._frozenFarColumns.push(i):e.viewColumns.push(i),e.columnByDataField[n.dataField]?(i.parent=e.columnByDataField[n.dataField],e.columnByDataField[n.dataField].children||(e.columnByDataField[n.dataField].children=[]),e.columnByDataField[n.dataField].children.push(i),n.valueField=n.dataField,n.dataField+="_"+e.columnByDataField[n.dataField].children.length,n.displayField=n.valueField,e.columnByDataField[n.dataField]=i):e.columnByDataField[n.dataField]=i,e.onColumnInserted&&!e.isInitialized&&e.onColumnInserted(l,n.getState())}e.viewColumns=e.viewColumns.concat(e._frozenFarColumns),e.setAttribute("aria-colcount",e._boundColumns.length);let l=0;if((e.appearance.showRowHeaderNumber||e.appearance.showRowHeader)&&(e._initializeRowNumberColumn(),l++),e.rowDetail.enabled){const t=20,o=new Smart.Grid.Column({dataField:"_rowDetailColumn",allowSelect:!1,visible:e.rowDetail.visible,label:"",grid:e,freeze:!0,rowDetailColumn:!0,autoGenerated:!0,cellsAlign:"center",width:t,minWidth:t}),a=new Smart.Observable(o,o.observables);e.rowDetailColumn=a,"near"===e.rowDetail.position?(e.viewColumns.splice(l,0,a),o.freeze="near",a.freeze="near",e._frozenNearColumns.splice(l,0,a)):(e.viewColumns.push(a),e._frozenFarColumns.splice(0,0,a)),l++}const a=new Smart.Grid.Column({dataField:"_adaptiveColumn",allowSelect:!1,visible:!1,label:"",grid:e,freeze:"far",adaptiveColumn:!0,autoGenerated:!0,cellsAlign:"center",width:30});new Smart.Observable(a,a.observables).canNotify=!1;const n=new Smart.Grid.Column({dataField:"_commandColumn",allowSelect:!1,visible:e.editing.enabled&&e.editing.commandColumn.visible&&!e.editing.commandColumn.inline,label:"",grid:e,freeze:"far",commandColumn:!0,autoGenerated:!0,align:"center",cellsAlign:"center",width:""}),i=new Smart.Observable(n,n.observables);i.canNotify=!1,e.editing.commandColumn.visible&&("near"===e.editing.commandColumn.position?(n.freeze="near",i.freeze="near",e.viewColumns.splice(l,0,i),e._frozenNearColumns.splice(l,0,i)):(e.viewColumns.push(i),e._frozenFarColumns.splice(0,0,i))),e._commandColumn=i;const r=new Smart.Grid.Column({allowSelect:!1,visible:e.selection.enabled&&e.selection.checkBoxes.enabled,dataField:"_checkBoxColumn",label:"",freeze:e.selection.checkBoxes.position,grid:e,selectionColumn:!0,autoGenerated:!0,cellsAlign:"center",width:32}),s=new Smart.Observable(r,r.observables);if(e.selection.checkBoxes.enabled&&("near"===r.freeze?(e.viewColumns.splice(l,0,s),e._frozenNearColumns.splice(l,0,s)):(e.viewColumns.push(s),e._frozenFarColumns.splice(0,0,s))),e._selectionColumn=s,e._selectionColumn.canNotify=!1,e.editing.addNewColumn.visible){const t=new Smart.Grid.Column({dataField:"_addNewColumn",allowSelect:!1,visible:!0,title:e.localize("addNewColumn"),label:"",cellsClassName:"smart-add-new-column",className:"smart-add-new-column smart-icon smart-grid-icon show smart-icon-plus",grid:e,adaptiveColumn:!1,autoGenerated:!0,cellsAlign:"center",width:90}),o=new Smart.Observable(t,t.observables);e.viewColumns.push(o),e._addNewColumn=o,e._addNewColumn.canNotify=!1}e._observeColumns(),e._templateColumns()}get styleProperties(){return["grid-template-columns","--smart-grid-row-height","--smart-grid-column-header-height","--smart-grid-group-header-height","--smart-grid-filter-footer-height","--smart-grid-group-row-vertical","--smart-grid-group-row-horizontal-offset","--smart-grid-freeze-splitter-size","--smart-grid-resize-line-size","--smart-grid-footer-height","--smart-grid-header-height"]}_templateColumns(){const e=this,t=getComputedStyle(e),o=t.getPropertyValue("--smart-grid-template-columns").trim();if(e._rowGap=0,e._columnGap=0,e._maxHeight=parseInt(t.maxHeight),e._minHeight=parseInt(t.minHeight),"none"!==o){let t=0;for(let o=0;o<e.viewColumns.length;o++)e.viewColumns[o].autoGenerated&&(t+=e.viewColumns[o].visible?e.viewColumns[o].width:0);let l=[];const a=document.createElement("div");a.style.display="grid",a.style.gridTemplateColumns=o;for(let t=0;t<e.columns.length;t++)a.innerHTML+="<div></div>";a.style.width=e.clientWidth-t+"px",e.$.root.appendChild(a);const n=o.split(" ");for(let t=0;t<e.columns.length;t++)l[t]=a.children[t].offsetWidth,"auto"===n[t]&&(l[t]=null);a.parentNode.removeChild(a);let i=0;for(let t=0;t<e.viewColumns.length;t++){const o=e.viewColumns[t];o.autoGenerated||l[i]&&(o.width=o.templateWidth=l[i++])}}else for(let t=0;t<e.viewColumns.length;t++){const o=e.viewColumns[t];o.autoGenerated||o.templateWidth&&(o.width=o.templateWidth=null)}}setColumns(e){const t=this;if(null===e)return void(t.columns=[]);t.beginUpdate(),t.columns.canNotify=!1;let o=[],l=[];for(let l=0;l<e.length;l++){const a=e[l];let n=!0;for(let e=0;e<t.columns.length;e++)if(t.columns[e].dataField===a.dataField){n=!1;break}n&&o.push(a)}const a=e.map((e=>e.dataField));for(let e=0;e<t.columns.length;e++){const o=t.columns[e];-1===a.indexOf(o.dataField)&&l.push(o)}l.forEach((e=>{const o=t.columns.indexOf(e);o>=0&&t.columns.splice(o,1)}));for(let e=0;e<o.length;e++)t.columns.push(o[e]);if(t.columns.canNotify=!0,t.endUpdate(),t._columnGroups=[],t._columnHeights=0,t.viewColumns)for(let e=0;e<t.viewColumns.length;e++){const o=t.viewColumns[e],l=o.element;o.top=0,o.level=0,l&&(l.style.top="",l.style.height="",l.style.lineHeight="")}if(t._renderColumns(),t.__columnHeaderHeight=null,e){t.beginUpdate();const o=t.context;t.context=document;for(let o=0;o<e.length;o++){const l=e[o],a=t.columnByDataField[l.dataField];["allowExport","allowFreeze","allowNull","allowGroup","allowSelect","verticalAlign","columnGroup","cellsVerticalAlign","autoCloseMenu","autoShowActionButton","autoShowSortButton","autoShowFilterButton","allowLabelAnimation","allowActionButtonAnimation","allowSortButtonAnimation","allowHide","allowDelete","allowEdit","allowSummary","allowHeaderEdit","allowFilter","allowSort","allowSortToggleOnClick","allowResize","allowReorder","description","icon","menuItems","summary","cellsFormat","className","rowSpan","cellsClassName","cellsCSSRules","formatSettings","formatFunction","sortIndex","sortOrder","sortComparator","groups","group","filtered","filterEditor","filter","filterMenuMode","defaultValue","dataField","displayField","label","labelTemplate","dataType","align","cellsWrap","cellsAlign","minWidth","width","visible","_visible","freeze","showActionButton","selected","showIcon","highlight","showDescriptionButton","treeColumn","statusColumn","value","valueField","onAction","title","showCustomButton","showFilterButton","showSortButton","editor","template","visibleIndex","validationRules"].forEach((e=>{void 0!==l[e]&&(a[e]=l[e])}))}t.context=o,t.endUpdate(!1)}t.refresh()}onAttached(){const e=this;if(!e._scrollView){e._scrollView=new Smart.Utilities.Scroll(e,e.$.horizontalScrollBar,e.$.verticalScrollBar);const t=e._scrollView.hScrollBar;e._scrollView.vScrollBar.onChange=e._verticalScrollbarHandler.bind(e),t.onChange=e._horizontalScrollbarHandler.bind(e)}if(e.isRendered&&e.isCompleted&&(e._isDestroyed||e.behavior.autoDestroy)){if(e.header.visible&&""===e.header.template){let t=e.$.header;e.header.appendTo&&(t=document.querySelector(e.header.appendTo),t?t.onclick=t=>{e._headerClickHandler(t)}:t=e.$.header),t.innerHTML='<smart-grid-toolbar header-position="top"></smart-grid-toolbar>',e.$.headerBar=t.firstElementChild;const o=e.$.headerBar;o.messages=e.messages,o.locale=e.locale,e.$.headerBar._init(e),o.render(),e.header.onInit&&e.header.onInit(e.$.headerBar)}e._render()}}destroy(){const e=this;if(!e.isRendered)return;e._isDestroyed=!0,["_dialogChart","_dialogAddRow","_dialogEdit","_dialogDelete","_dialogRowDetail","_dialogAddColumn"].forEach((t=>{e[t]&&(e[t].close(),e[t]=null)})),e.menu&&(e.menu.ownerElement=null,e.menu.remove(),e.menu=null);const t=e.$.headerBar;if(t){const e=t.$.headerDropDown;e&&e.remove()}e._resetCachedLayout();const o=e._scrollView.hScrollBar,l=e._scrollView.vScrollBar;if(l.ownerElement=null,o.ownerElement=null,l.onChange=null,o.onChange=null,e._scrollView&&(e._scrollView.unlisten(),delete e._scrollView),e._columnElements)for(let t=0;t<e._columnElements.length;t++)e._columnElements[t]._detach();if(e._columnElements=null,e._rowElements)for(let t=0;t<e._rowElements.length;t++)e._rowElements[t]._detach();e._rowElements=null,e.rows=[],e.rowById=[],e._initColumns=[],e.columnByDataField=[],e.viewColumns=[],e._columnToResizeElement=null;let a=Array.isArray(e.columns)?[...e.columns]:[...e.columns.toArray()];a=a.map((e=>e.data?(void 0!==e.data.visibleIndex&&delete e.data.visibleIndex,void 0!==e.data.index&&delete e.data.index,void 0!==e.data.grid&&delete e.data.grid,e.data):e)),e.rows.notifyFn=null,e.columns.notifyFn=null,e.columns.notify=null,e.columns._array=[],e.columns=a,e._boundColumns=[],e._filterPanels=[],e._frozenFarColumns=[],e._frozenNearColumns=[],e._frozenNearDefaultRows=[],e._frozenFarDefaultRows=[],e._frozenFarRows=[],e._frozenNearRows=[],e._selection&&e._selection.selectionRect&&(e._selection.selectionRect.parentNode&&e._selection.selectionRect.parentNode.removeChild(e._selection.selectionRect),e._selection.selectionRect=null),e._selection={rows:[],indexes:[],columns:[],cells:[]},e.__autoHeightRows=null,e._visibleRows=null,e.__viewRows=null,e.__clientSize=null,e.__scrollHeight=null,e.__scrollWidth=null,e.__parentCells=null,e._selectionColumn=null,e._adaptiveColumn=null,e._commandColumn=null,delete e._columnFarContainerComputedStyle,delete e._columnContainerComputedStyle,delete e._columnNearContainerComputedStyle,e._inputOverlay&&(e._inputOverlay.parentNode&&e._inputOverlay.parentNode.removeChild(e._inputOverlay),e._inputOverlay=null),e._firstVisibleColumn=null,e._lastVisibleColumn=null,e._toggledRow=null,Smart(e._selector)&&(delete Smart(e._selector)._properties,Smart(e._selector)),delete e._selector,delete e._initProperties}onDetached(){const e=this;e.behavior.autoDestroy&&e.destroy()}_observeColumns(){const e=this,t=function(t,o,l,a){l===a&&"selected"!==o||(t.propertyChanged(o,l,a),e.onColumnChange?t.stateProps.indexOf(o)>=0&&e.onColumnChange(t,o,l,a):e.$.fireEvent("columnChange",{column:t,propertyName:o,oldValue:l,value:a}))};for(let o=0;o<e.viewColumns.length;o++){const l=e.viewColumns[o];l.rowHeaderColumn||(l.onAction=function(){e._openMenu(this)}),l.autoGenerated&&l.notify((function(e){l.canNotify=!1,t(l,e.propertyName,e.oldValue,e.newValue),l.canNotify=!0}))}e.columns.notify((function(o){let l=null;if(o.path)return e.columns.canNotify=!1,t(o.target,o.propertyName,o.oldValue,o.newValue),void(e.columns.canNotify=!0);e.columns.canNotify=!1;let a=0;switch(o.action){case"length":return void(e.columns.canNotify=!0);case"add":{const t=function(t){if(l=o.object[t],l instanceof Smart.Grid.Column==0){l.grid=e,l=new Smart.Grid.Column(l);const a=e.columns.canNotify;e.columns.canNotify=!1,o.object[t]=l,l=o.object[t],e.columns.canNotify=a}l.grid=e,l.onAction=function(){e._openMenu(this)},l.freeze?e._frozenNearColumns.push(l):"far"===l.freeze&&e._frozenFarColumns.push(l);let a=e.viewColumns.length-e._frozenFarColumns.length,n=0;if(e._frozenNearColumns.forEach((e=>{e.autoGenerated&&n++})),t<e.columns.length?e.viewColumns.splice(t+n,0,l):e.viewColumns.splice(a,0,l),e.columnByDataField[l.dataField]){e.columnByDataField[l.dataField].children.push(l),l.parent=e.columnByDataField[l.dataField],l.valueField=l.dataField;const t=l.dataField+"_"+l.parent.children.length;e.columnByDataField[t]=l,l.dataField=t}else e.columnByDataField[l.dataField]=l;if(e.dataSource&&e.dataSource.dataFields){let t=!1;for(let o=0;o<e.dataSource.dataFields.length;o++)e.dataSource.dataFields[o].name===l.dataField&&(t=!0);t||e.dataSource.dataFields.push({name:l.dataField,dataType:l.dataType||"string"})}if(!e._dragDrop&&e.onColumnInserted){e._onColumnInsertData||(e._onColumnInsertData=[],e._onColumnInsertIndexes=[]);const o=l.getState();o.dataField=l.dataField,e._onColumnInsertData.push(o),e._onColumnInsertIndexes.push(t),e._onColumnInsertTimer&&clearTimeout(e._onColumnInsertTimer),e._onColumnInsertTimer=setTimeout((()=>{e.onColumnInserted(e._onColumnInsertIndexes,e._onColumnInsertData),delete e._onColumnInsertIndexes,delete e._onColumnInsertData}),50)}};delete e.__measuredColumnHeight;for(let e=0;e<o.addedCount;e++)t(o.index+e);break}case"update":l=o.object[o.index],l instanceof Smart.Grid.Column==0&&(l=new Smart.Grid.Column(l)),l.grid=e;for(let t=0;t<o.index;t++)e.viewColumns[t].autoGenerated&&a++;e.viewColumns[a+o.index]=l,e.columnByDataField[l.dataField]=l,e.onColumnUpdated&&e.onColumnUpdated(o.index,l);break;case"remove":{l=o.removed[0];let t=o.index,n=e.viewColumns.indexOf(l);if(-1===n){for(let o=0;o<=t;o++)e.viewColumns[o].autoGenerated&&a++;e.viewColumns.splice(a+t,1)}else e.viewColumns.splice(n,1);if(l){if(l.filter&&e.removeFilter(l.dataField),l.sortOrder&&e.removeSort(l.dataField),e.removeGroup(l.dataField),l._dataField){const t=e.columnByDataField[l._dataField];t&&t.dataField===l.dataField&&delete e.columnByDataField[l._dataField]}delete e.columnByDataField[l.dataField]}if(e._dragDrop||e.onColumnRemoved&&e.onColumnRemoved(o.index,l),e.columnGroups&&(e._columnGroups=[],e._columnHeights=0,e.viewColumns))for(let t=0;t<e.viewColumns.length;t++){const o=e.viewColumns[t],l=o.element;o.top=0,o.level=0,l&&(l.style.top="",l.style.height="",l.style.lineHeight="")}break}}e._initializeColumnGroupsHierarchy(),e._refreshColumnsResponsiveVisibility(),e._createColumnHeaderCellElements(),e._templateColumns(),e.refresh(),e.columnGroups&&e._columnGroups.length>0&&e._renderColumnGroupHeaders(),e.columns.canNotify=!0}))}get _scrollWidth(){const e=this;if(e.__scrollWidth)return e.__scrollWidth;let t=0;for(let o=0;o<e.viewColumns.length;o++){const l=e.viewColumns[o];l.visible&&(t+=l.computedWidth)}return t=parseInt(t),"card"===e.view&&(t=0),e.__scrollWidth=t,e._scrollView.scrollWidth=t-e._clientSize.width,e.__scrollWidth}_horizontalScrollbarHandler(){const e=this;e.closeMenu(),e.isScrolling=!0,e.isHScrolling=!0,requestAnimationFrame((()=>{e._summaryRowDialog&&e._summaryRowDialog.classList.contains("open")&&e._summaryRowDialog.close(),e._recycle(),e.isScrolling=!1,e.isHScrolling=!1}))}_mouseWheelNative(e,t){const o=this;void 0===o._scrollWheelContent&&(o._scrollWheelContent=document.createElement("div"),o._scrollWheelContent.style.width="100%",o._scrollWheelContent.style.height="100%",o._scrollWheelContent.style.position="absolute",o._scrollWheelContent.style.left="0px",o._scrollWheelContent.style.top="0px",o._scrollWheelContent.style.background="white",o._scrollWheelContent.style.zIndex=9999,o._scrollWheelContent.style.opacity=0,o._scrollWheelContent.style.overflow="auto",o._scrollWheelContent.style.visibility="hidden");let l=0;const a=()=>{if(t){const t=o._scrollWheelContent.scrollLeft;o._scrollView.hScrollBar.value=t,t===e&&o._scrollWheelContent.remove()}else{const t=o._scrollWheelContent.scrollTop;o._scrollView.vScrollBar.value=t,t===e&&o._scrollWheelContent.remove()}};o._scrollWheelContent.onscroll=()=>{cancelAnimationFrame(l),l=0,l=requestAnimationFrame(a)},o._scrollWheelContentView||(o._scrollWheelContentView=document.createElement("div"),o._scrollWheelContent.appendChild(o._scrollWheelContentView)),o._scrollWheelContentView.style.width=o.offsetWidth+o._scrollView.scrollWidth+"px",o._scrollWheelContentView.style.height=o.offsetHeight+o._scrollView.scrollHeight+"px",o.$.scrollView.appendChild(o._scrollWheelContent),o._scrollWheelContent.scrollTop=o._scrollView.vScrollBar.value,o._scrollWheelContent.scrollLeft=o._scrollView.hScrollBar.value,!0===t?o._scrollWheelContent.scrollTo({top:o._scrollView.vScrollBar.value,left:e,behavior:"smooth"}):o._scrollWheelContent.scrollTo({top:e,left:o._scrollView.hScrollBar.value,behavior:"smooth"})}_mouseWheelHandler(e){const t=this;if(t._scrollView.hScrollBar.$.hasClass("smart-hidden")&&t._scrollView.vScrollBar.$.hasClass("smart-hidden"))return;if(42===e.pointerId)return;if(t._isUpdating)return;if(t.editing.isEditing)return;if(!t.behavior.allowMouseWheel)return;const o=t.querySelector("smart-grid-toolbar");if(o&&o.$.headerDropDown.classList.contains("open"))return;let l=!1;if(e.wheelDeltaY?120!==Math.abs(e.wheelDeltaY)&&240!==Math.abs(e.wheelDeltaY)&&360!==Math.abs(e.wheelDeltaY)&&(l=!0):0===e.deltaMode&&(l=!0),t.disabled||t._scrollView.vScrollBar.$.hasClass("smart-hidden")||e.shiftKey||!e.deltaY){if(!t.disabled&&(!t._scrollView.hScrollBar.$.hasClass("smart-hidden")||e.shiftKey)){e.stopPropagation(),e.preventDefault();let o=160;const a=0===e.deltaX?e.wheelDelta:e.deltaX;a<0&&(o=-160),Math.abs(a)>=100&&!l&&!Smart.Utilities.Core.Browser.Firefox?t._mouseWheelNative(t._scrollView.scrollLeft+o,!0):t._scrollView.scrollLeft+=a}}else{const o=t.scrollTop;if(0===o&&e.deltaY<0||o===t.scrollHeight&&e.deltaY>0)return;e.stopPropagation(),e.preventDefault();let a=7*t.layout.rowMinHeight;if(e.deltaY<=0&&(a=-7*t.layout.rowMinHeight),Math.abs(e.deltaY)>=100&&!l&&!Smart.Utilities.Core.Browser.Firefox)t._mouseWheelNative(t._scrollView.scrollTop+a);else{t._wheelrafId=0;const o=()=>{t._scrollView.scrollTop+=e.deltaY};cancelAnimationFrame(t._wheelrafId),t._wheelrafId=0,t._wheelrafId=requestAnimationFrame(o)}}}_refresh(e){const t=this;if(t._isUpdating)return;const o=t.$.verticalScrollBar.offsetWidth;t.removeAttribute("grouped"),t.removeAttribute("tree");let l=!0;t.__autoHeightRows&&(t.__autoHeightRows=null,t._refreshColumnsResponsiveVisibility(),t._recycle(),l=!1),t._groups||(t._groups=[]),t.grouping.enabled&&t.dataSource.groupBy&&t.dataSource.groupBy.length>=0&&("advanced"===t.grouping.renderMode?t.setAttribute("grouped",""):t.setAttribute("tree",""),t._groups||(t._groups=[].concat(t.dataSource.groupBy.toArray())||[]),t._renderGroupBar()),t.grouping.enabled&&t.dataSource.groupBy&&0===t.dataSource.groupBy.length?t.$.breadcrumb&&(t.$.breadcrumb.dataSource=[]):t.dataSource.boundHierarchy&&(t.setAttribute("tree",""),t.setAttribute("role","treegrid")),(t.isInitialized||l)&&t._refreshColumnsResponsiveVisibility(),t._refreshLayout(),o!==t.$.verticalScrollBar.offsetWidth&&(t.__scrollWidth=null,t._refreshColumnsResponsiveVisibility(),t._refreshScrollBars(),0===t.$.verticalScrollBar.offsetWidth&&t.isRendered&&requestAnimationFrame((()=>{t._refreshScrollBars()}))),t._refreshSelection(),t._conditionalColors&&t._conditionalColors.update&&t._conditionalColors.update(),"add"===e||"remove"===e||"update"===e?(t._rowChangeTimeout&&clearTimeout(t._rowChangeTimeout),t._rowChangeTimeout=setTimeout((()=>{t._recycle(!1),t._refreshHeaderBar()}),100)):(t._recycle(),t._refreshHeaderBar()),t._recyclingRows&&0===t._recyclingRows.length&&(t.$.placeholder.classList.remove("smart-hidden"),t.scrollHeight=0,t.$.placeholder.innerHTML=t.messages[t.locale]&&t.messages[t.locale].placeholder?t.localize("placeholder"):t.appearance.placeholder,t.filtering.filterRow.visible&&(t.$.placeholder.style.top="0px",t.$.placeholder.style.position="relative",t._filters&&t._filters.length&&(t.$.placeholder.style.top="12px")),t._filters&&t._filters.length&&(t.$.placeholder.innerHTML=`<span class="smart-grid-icon show smart-icon-filter" style="\n font-size: calc(2 * var(--smart-font-size));\n cursor: default;\n margin-right: 10px;\n "></span>${t.localize("filteredRecords")}`)),requestAnimationFrame((()=>{t._width=t.offsetWidth,t._height=t.offsetHeight}))}_refreshHeaderBar(){const e=this;e.$.headerBar&&e.header.visible&&e.$.headerBar._refresh()}_resizeHandler(e){const t=this;if((t.enableShadowDOM?e.composedPath()[0]:e.target)===t&&!t._isUpdatingScrollBars){if(!t.isInitialized)return t._undoRedo=[],t._refreshCurrentUser(),void t._render();if(!1===t._resizeHandling||!t.offsetHeight)return void(!1===t._resizeHandling&&(t.layout.isDirty=!0));t._isUpdatingScrollBars=!0,t._autoHeight=!1,t.$.content&&t.$.content.classList.remove("auto-height");const e=t._rowElements?t._rowElements.length*t.layout.rowMinHeight:0;(e>0||"grid"!==t.view&&"card"!==t.view)&&(t.offsetHeight>=e?(t._refreshLayout(),t._initializeRowElements()):"grid"!==t.view&&t._refreshLayout()),t.refresh(),t.$.headerBar&&t.$.headerBar.refreshTools(),t._dialogAddColumn&&t._dialogAddColumn.classList.contains("open")&&t._dialogAddColumn.refresh(),t._isUpdatingScrollBars=!1}}_refreshColumnsResponsiveVisibility(){const e=this,t=e.$.columnContainer,o=e.$.columnNearContainer,l=e.$.columnFarContainer;let a=0,n=0,i=0,r=!1;const s=e.columns.canNotify;e.columns.canNotify=!1;for(let t=0;t<e.viewColumns.length;t++){const o=e.viewColumns[t];o.setProperty("_treeColumn",!1,!1),e.grouping.enabled&&e.grouping.autoHideGroupColumn&&e.dataSource.groupBy&&e.dataSource.groupBy.indexOf(o.dataField)>=0&&o.setProperty("visible",!1,!1),o.visible&&!o.autoGenerated&&!r&&e.dataSource.boundHierarchy&&(o.setProperty("_treeColumn",!0,!1),r=!0)}e._refreshColumnWidths(),e.columns.canNotify=s;let d=0,u=0;for(let t=0;t<e.viewColumns.length;t++){const o=e.viewColumns[t];o.visible&&(o.freeze&&(!0===o.freeze||"near"===o.freeze?(a+=o.computedWidth,o.autoGenerated&&(d+=o.computedWidth)):"far"===o.freeze&&(n+=o.computedWidth,o.autoGenerated&&(u+=o.computedWidth))),i+=o.computedWidth)}t.style.width=i+"px",o.style.width=a+"px",l.style.width=n+"px",l.classList.remove("smart-hidden"),o.classList.remove("smart-hidden"),0===n&&l.classList.add("smart-hidden"),0===a&&o.classList.add("smart-hidden"),l.classList.remove("border-collapse"),n===u&&l.classList.add("border-collapse"),e._autoGeneratedColumnsNearWidth=d,e._autoGeneratedColumnsFarWidth=u,e._computedColumnsWidth=i,e._frozenColumnsNearWidth=a,e._frozenColumnsFarWidth=n}_selectStartHandler(e){const t=this;t.isScrolling||t.editing.isEditing||"grid"!==t.view||t.selection.defaultSelection||e.preventDefault()}setFocusable(e){const t=this;!t.disabled&&e?t.tabIndex=0:t.removeAttribute("tabindex")}_setLoadingIndicatorVisibility(){const e=this;e.appearance.displayLoadingIndicator?e.$.loadingIndicatorContainer.classList.remove("smart-visibility-hidden"):e.$.loadingIndicatorContainer.classList.add("smart-visibility-hidden")}_refreshElementsVisibility(){const e=this,t=function(e,t){e&&(t?e.classList.remove("smart-hidden"):e.classList.add("smart-hidden"))};if(t(e.$.placeholder,!e.rows||e.rows&&0===e.rows.length||0===e.columns.length),t(e.$.footer,e.footer.visible),t(e.$.header,e.header.visible&&!e.header.appendTo),t(e.$.groupHeader,e.groupHeader.visible||e.grouping.groupBar.visible),t(e.$.columnHeader,e.columnHeader.visible&&e.columns.length>0),t(e.$.headerCommandBar,e.editing.commandBar.visible&&"far"!==e.editing.commandBar.position),t(e.$.footerCommandBar,e.editing.commandBar.visible&&"near"!==e.editing.commandBar.position),t(e.$.breadcrumb,e.groupHeader.visible||e.grouping.groupBar.visible),e.htmlColumnLastChild.classList.add("smart-visibility-hidden"),e.pager&&e.pager.visible&&e.paging.enabled)switch(e.pager.position){case"near":t(e.$.headerPager,!0),t(e.$.footerPager,!1);break;case"far":t(e.$.headerPager,!1),t(e.$.footerPager,!0);break;case"both":t(e.$.headerPager,!0),t(e.$.footerPager,!0)}else t(e.$.footerPager,!1),t(e.$.headerPager,!1)}_getId(){const e=this;return e.dataSource&&e.dataSource.id?e.dataSource.id:e.dataSourceSettings.id?e.dataSourceSettings.id:void 0}_refreshRowHierarchy(e,t=!1){const o=this;o.rowHierarchy=null;let l=0,a=!1;if(!o.grouping.enabled&&o.dataSource.groupBy&&o.dataSource.groupBy.length>0&&(a=!0),o.grouping.enabled&&o.dataSource.groupBy&&0===o.dataSource.groupBy.length)return;let n=!1;if(o.grouping.enabled&&o.dataSource.groupBy&&o.dataSource.groupBy.length>0&&o.dataSource.virtualDataSourceOnExpand&&(n=!0),o.dataSource.boundHierarchy){const i=o.dataSource.reservedNames,r=function(e){return new Smart.Grid.Row({data:e,grid:o,index:o.rows.length})};let s=0;const d=function(t,l){for(let u=0;u<t.length;u++){const c=t[u];let m=o.rowById[c.$.id];if(n&&(m=o.rows[s],m||(m=r(c),o.rows.push(m)),c[i.leaf]?m.id=c.$.id:m.id="Group_"+c.$.id,o.rowById[m.id]=m),m||(m=r(c),o.rowById[m.id]=m),m.data=c,m.leaf=c[i.leaf]||!1,m.level=c[i.level],m.groupDataField=c.groupDataField,!m.groupDataField&&o.appearance.showTreeRowHeader&&(m.groupDataField=o.columns[m.level].dataField),m.label=c.label,m.groupDataField){const e=o.columnByDataField[m.groupDataField];if(e&&e.editor.dataSource)for(let t=0;t<e.editor.dataSource.length;t++){const o=e.editor.dataSource[t];if(""+o.value===m.label){void 0!==o.label?(m.label=o.label,m.labelValue=o.value):void 0!==o.name&&(m.label=o.name,m.labelValue=o.value);break}}}if(m.children=[],m.data&&(m.filtered=void 0===m.data.$.filtered||m.data.$.filtered),c.summaryRow&&(m.summaryRow=!0),(null===o._toggledRow||o._toggledRow&&o._toggledRow.id!==m.id)&&(m.expandHeight=0),c.parent?(m.parent=o.rowById[c.parent.$.id],m.parentId=c.parent.$.id):(m.parent=null,m.parentId=null),o.grouping.onGroupDefaultExpanded&&!o.isRendered){const e=o.grouping.onGroupDefaultExpanded(c);e&&(m.expanded=c[i.expanded]=e)}o.appearance.allowRowToggleAnimation||void 0!==c[i.expanded]&&(m.expanded=c[i.expanded]);let g=!!e||m.expanded;a&&(g=!0);const p=o.dataSource&&o.dataSource.id||o.dataSourceSettings.id;if(p&&!m.data[p]&&o.grouping.enabled&&o.dataSource&&o.dataSource.groupBy.length){const e=o.dataSource.groupBy[m.level];c.parent&&c.parent.expanded&&(""===m.data[e]&&o.dataSource.id&&!m.data.data[o.dataSource.id]||m.leaf&&!m.data[p])&&(s++,m.filtered=!1)}if(!0===m.visible&&!1!==m.filtered)if(s++,g||c[i.leaf])if(l.push(m),c.children&&c.children.length>0){const e=d(c.children,new Array);0===e.length&&(m.leaf=!0);for(let t=0;t<e.length;t++)l.push(e[t]);m.children=e}else c.children&&0===c.children.length&&(o.dataSource.virtualDataSource&&o.dataSource.virtualDataSourceOnExpand?m.data._loaded&&(m.leaf=!0):m.leaf=!0);else if(l.push(m),c.children&&c.children.length>0){const e=d(c.children,new Array);0===e.length&&(m.leaf=!0),m.children=e}else c.children&&0===c.children.length&&(o.dataSource.virtualDataSource&&o.dataSource.virtualDataSourceOnExpand?m.data._loaded&&(m.leaf=!0):m.leaf=!0)}return l};let u=o.dataSource.boundHierarchy;if(o.paging.enabled&&!t){let e=[];const t=e=>{let l=[];if(0===o.dataSource.groupBy.length)return e;for(let o=0;o<e.length;o++){const a=e[o];(!a.$||void 0===a.$.filtered||a.$.filtered)&&(l.push(a),a.children&&(l=l.concat(t(a.children))))}return l};if(o.dataSource&&!o.dataSource.virtualDataSource){for(let o=0;o<u.length;o++){let l=u[o],a=!l.$||void 0===l.$.filtered||l.$.filtered;!a&&null!==a||0!==l.level||l.parent||(t(l.children).length,e.push(l))}u=e.slice(o.paging.pageIndex*o._pageSize,(o.paging.pageIndex+1)*o._pageSize)}}const c=o.rows.canNotify;o.rows.canNotify=!1,o.rowHierarchy=d(u,new Array),o.rows.canNotify=c;let m=[];for(let e=0;e<o.rowHierarchy.length;e++){const t=o.rowHierarchy[e],a=t.canNotify;t.leaf&&m.push(t),t.canNotify=!1,o.grouping.enabled&&o.dataSource&&o.dataSource.groupBy.length?t.leaf?t.visibleIndex=l++:t.visibleIndex=-1:t.visibleIndex=l++,t.canNotify=a}if(a&&(o.rowHierarchy=m),o._rowElements.length<o.rowHierarchy.length&&!o._toggledRow&&o._initializeRowElements(),o.grouping.summaryRow.visible&&!o.grouping.summaryRow.inline){const e=function(t,o,l,a){if(0!==t&&o.length>0&&o[o.length-1]&&!o[o.length-1].summaryRow){let e={label:" ",boundSource:[],groupDataField:l.data.groupDataField,$:{},summaryRow:!0,leaf:!0,level:t,expandHeight:0,siblings:o};e.$.id="SubRow"+a+"_"+l.data.$.id,l&&(e.parent=l.data,e.parentId=l.data.$.id),e.data=Object.assign(e),o.push(e)}for(let t=0;t<o.length;t++)o[t]&&o[t].data&&o[t].data.children&&e(o[t].level+1,o[t].data.children,o[t],t)};e(0,o.rowHierarchy,null,0)}}}applyContent(){}_refreshContentHeight(){const e=this;let t=e._clientSize.height;const o=window.scrollY;let l,a,n=!1;if((!e._contentHeight||e._maxHeight||e._autoHeight||e.__autoHeight||"hidden"===e.verticalScrollBarVisibility)&&(n=!0),n&&(l=e.offsetHeight,e.$.container.classList.add("smart-hidden"),a=e.offsetHeight,e.$.container.classList.remove("smart-hidden")),window.scrollY!==o&&window.scrollTo(window.scrollX,o),"hidden"===e.verticalScrollBarVisibility||e.layout.autoHeight||l!==a||e._minHeight&&e._minHeight===l)return t=e._scrollHeight+e.$.columnHeader.offsetHeight+e.$.filterFooter.offsetHeight,e.header.visible&&!e.header.appendTo&&(t+=e.$.header.offsetHeight),e.summaryRow.visible&&(t+=e.layout.rowMinHeight),0===e._recyclingRows.length&&0===e._scrollHeight&&(t+=e.$.scrollView.offsetTop),e._minHeight>t&&(t=e._minHeight),e.$.content.style.height=t+"px",e._contentHeight=t,void(e._maxHeight<t?(e._autoHeight=!1,e.$.content.classList.remove("auto-height"),e.$.content.style.height=e._maxHeight+"px",e.header.visible&&!e.header.appendTo?(e.$.content.style.height=e._maxHeight-e.$.header.offsetHeight+"px",e._contentHeight=e._maxHeight-e.$.header.offsetHeight):e._contentHeight=e._maxHeight):(e._autoHeight=!0,e.__autoHeight=!0,e.$.content.classList.add("auto-height"),e.filtering.filterRow.visible&&(e.filtering.filterRow.visible,e._contentHeight=t,e.$.content.style.height=e._contentHeight+"px"),e.header.visible&&!e.header.appendTo?(e._contentHeight=t-e.$.header.offsetHeight,e.$.content.style.height=e._contentHeight+"px"):e.summaryRow.visible&&(e.$.content.style.height=e._contentHeight+"px")));if(e.header.visible&&!e.header.appendTo&&(t-=e.$.header.offsetHeight),(e.groupHeader.visible||e.grouping.groupBar.visible)&&(t-=e.$.groupHeader.offsetHeight),e.footer.visible&&(t-=e.$.footer.offsetHeight),e.pager.visible&&(t-=e.$.headerPager.offsetHeight,t-=e.$.footerPager.offsetHeight),e.editing.enabled&&e.editing.commandBar.visible&&(t-=e.$.headerCommandBar.offsetHeight,t-=e.$.footerCommandBar.offsetHeight),e.$.content.style.height!==t+"px"&&(e.$.content.style.height=t+"px"),e.$.viewContent.style.height!==t+"px"&&(e.$.viewContent.style.height=t+"px"),e._contentHeight=t,!e.appearance.showViewBar||e.appearance.viewBarAppendTo||e.appearance.showViewBarAsDropdown)e.$.viewBar.classList.add("smart-hidden"),e.$.content.style.width="",e.$.viewContent.style.width="",e.$.content.style.marginLeft="",e.$.viewContent.style.marginLeft="";else{const o=e.layout.viewBarWidth+5;e.$.viewBar.classList.remove("smart-hidden"),e._mobile||(e.$.content.style.width="calc(100% - "+o+"px)",e.$.viewContent.style.width="calc(100% - "+o+"px)",e.$.content.style.marginLeft=o+"px",e.$.viewContent.style.marginLeft=o+"px"),e.$.viewBar.style.width=o+"px";let l=0;e.header.visible&&!e.header.appendTo&&(l+=e.$.header.offsetHeight),(e.groupHeader.visible||e.grouping.groupBar.visible)&&(l+=e.$.groupHeader.offsetHeight),e.pager.visible&&(l+=e.$.headerPager.offsetHeight),e.$.viewBar.style.top=l+"px",e.$.viewBar.style.height=t+"px"}}appendChild(){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.appendChild.apply(this,e.concat(Array.prototype.slice.call(arguments)))}removeChild(){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.removeChild.apply(this,e.concat(Array.prototype.slice.call(arguments)))}get _contentBorder(){const e=this;if(e.__contentBorder)return e.__contentBorder;const t=getComputedStyle(e.$.content),o={left:parseFloat(t.borderLeftWidth)+parseFloat(t.borderRightWidth),top:parseFloat(t.borderTopWidth)+parseFloat(t.borderBottomWidth)};return e.__contentBorder=o,o}_refreshAutoSize(){const e=this;if(e.layout.autoWidth){const t=e._isUpdatingScrollBars;e._isUpdatingScrollBars=!0;let o=2;for(let t=0;t<e.viewColumns.length;t++){const l=e.viewColumns[t];l.visible&&(o+=l.computedWidth)}o+=e.$.verticalScrollBar.offsetWidth>0?e.$.verticalScrollBar.offsetWidth:0,e.style.width=o+"px",requestAnimationFrame((()=>{e._isUpdatingScrollBars=t}))}e.layout.autoHeight&&(e.style.height="auto")}_refreshLayout(){const e=this,t=e.rows;if(e._layoutSuspended)return;e._visibleRows=null,e.__viewRows=null,e.__clientSize=null,e.__scrollHeight=null,e.__scrollWidth=null,e.__parentCells=null,e.$.columnFarContainer.classList.remove("vscroll"),e.$.columnNearContainer.classList.remove("vscroll"),e.$.scrollView.classList.remove("hscroll"),e.$.scrollView.classList.remove("vscroll"),e._refreshAutoSize(),e._refreshElementsVisibility(),e._refreshRowHierarchy(),e._refreshColumnHeights(),e._refreshContentHeight();const o=()=>{e.$.placeholder.classList.remove("smart-hidden"),e.$.placeholder.innerHTML=e.messages[e.locale]&&e.messages[e.locale].placeholder?e.localize("placeholder"):e.appearance.placeholder,e._filters&&e._filters.length&&(e.$.placeholder.innerHTML=e.localize("filteredRecords")),e.__filterFooterOffsetHeight||(e.__filterFooterOffsetHeight=e.$.filterFooter.classList.contains("smart-hidden")?0:e.$.filterFooter.offsetHeight),!e.__columnHeaderHeight&&e.$.columnHeader.offsetHeight&&(e.__columnHeaderHeight=e.$.columnHeader.offsetHeight);let t=e._contentHeight-e.__filterFooterOffsetHeight-e.__columnHeaderHeight;e.$.scrollView.style.height=t+"px",e.scrollWidth=0,e.scrollHeight=0,e.clearSelection(),e._showAddNewRowButton("float"),e.$.content.classList.contains("auto-height")&&(e.$.placeholder.style.height=t+"px")};if(t&&t.url)e._showAddNewRowButton("float");else{if(!t||null===t||0===t.length||0===e.columns.length)return o(),0!==e.columns.length&&e.hasVisibleColumn()?e.editing.addNewColumn._addButton&&e.editing.addNewColumn._addButton.classList.remove("show"):(e._showAddNewColumnButton(),e.$.columnHeader.classList.add("smart-hidden"),e.__columnHeaderHeight=0),void e._refreshScrollBars();e._showAddNewRowButton("float"),e.editing.addNewColumn._addButton&&e.editing.addNewColumn._addButton.classList.remove("show")}0!==e.columns.length&&e.hasVisibleColumn()?e.editing.addNewColumn._addButton&&e.editing.addNewColumn._addButton.classList.remove("show"):(o(),0!==e.columns.length&&e.hasVisibleColumn()||(e._showAddNewColumnButton(),e.$.columnHeader.classList.add("smart-hidden"),e.__columnHeaderHeight=0),e._showAddNewColumnButton()),"card"===e.view&&(e.__columnHeaderHeight=0),!e.__columnHeaderHeight&&e.$.columnHeader.offsetHeight&&(e.__columnHeaderHeight=e.$.columnHeader.offsetHeight),e.__filterFooterOffsetHeight||(e.__filterFooterOffsetHeight=e.$.filterFooter.classList.contains("smart-hidden")?0:e.$.filterFooter.offsetHeight);let l=e._contentHeight-e.__filterFooterOffsetHeight-e.__columnHeaderHeight;if(e.$.scrollView.style.height=l+"px",e.htmlColumnLastChild.style.height=e.__columnHeaderHeight+"px",e.paging.spinner.enabled&&e.paging.enabled){if(!e.pageScroll){const t=document.createElement("smart-scroll-bar");t.orientation="vertical",t.style.height="100%",t.style.width="100%",t.max=Math.ceil(e.dataSource.length/e._pageSize),t.step=e.paging.spinner.step,t.largeStep=e.paging.spinner.step,t.setAttribute("spinner",""),t.setAttribute("smart-id","spinner"),t.ownerElement=e,e.addPropertyBinding("[[paging_spinner_step]]","step",t,e.$.columnHeader),t.addEventListener("change",(function(t){e.paging.pageIndex=t.detail.value,e._refreshLayout(),e._refreshSelection(),e.dataSource&&e.dataSource.virtualDataSource?e._virtualDataRequest("pageIndexChange"):(e._recycle(),e._scrollUpdate&&clearTimeout(e._scrollUpdate),e._scrollUpdate=setTimeout((function(){e.isScrolling||(e.$.rowContainer.style.top=parseInt(e.$.rowContainer.style.top)+.01+"px")}),50))})),e.pageScroll=t}e.htmlColumnLastChild.appendChild(e.pageScroll)}else e.htmlColumnLastChild.innerHTML="";e._refreshScrollBars()}_refreshScrollBars(){const e=this;if(!e._scrollView)return;const t=e._scrollView.vScrollBar,o=e._scrollView.hScrollBar,l=e._contentHeight-e.__filterFooterOffsetHeight-e.__columnHeaderHeight,a=e.$.scrollView.offsetWidth,n=e._scrollWidth-a-e._contentBorder.left,i=e._scrollHeight-l-e._contentBorder.top,r=e._columnNearContainerComputedStyle?e._columnNearContainerComputedStyle:getComputedStyle(e.$.columnNearContainer),s=e._columnFarContainerComputedStyle?e._columnFarContainerComputedStyle:getComputedStyle(e.$.columnFarContainer),d=parseInt(e.$.columnNearContainer.style.width)+parseInt(r.borderRightWidth),u=parseInt(e.$.columnFarContainer.style.width)+parseInt(s.borderLeftWidth);if(e.__frozenNearWidth=d,e.__frozenFarWidth=u,e._columnNearContainerComputedStyle=r,e._columnFarContainerComputedStyle=s,e._refreshHorizontalScrollBarVisibility(n),e._refreshVerticalScrollBarVisibility(i),t.style.height=l+"px",e.computedVerticalScrollBarVisibility?(e.__scrollBarSize||(e.__scrollBarSize=t.offsetWidth),e.__scrollWidth+=e.__scrollBarSize,e._refreshHorizontalScrollBarVisibility(e._scrollWidth-a-1),e.rightToLeft?e.$.columnNearContainer.classList.add("vscroll"):e.$.columnFarContainer.classList.add("vscroll"),e._refreshVerticalScrollBarVisibility(i),e.htmlColumnLastChild.classList.remove("smart-visibility-hidden"),e.$.scrollView.classList.add("has-vscroll")):e.$.scrollView.classList.remove("has-vscroll"),o.style.width=a+"px",e.rightToLeft?o.style.right="0px":o.style.left="0px",e.computedVerticalScrollBarVisibility&&e.computedHorizontalScrollBarVisibility&&(o.style.width=a-t.offsetWidth+"px",t.style.height=l-o.offsetHeight+"px"),e.computedHorizontalScrollBarVisibility?(e.$.scrollView.classList.add("hscroll"),e._autoHeight?(e.$.content.style.height="auto",e.$.scrollView.style.height="auto",e.$.scrollView.style.paddingBottom=o.offsetHeight+"px",e.$.placeholder.style.marginTop=o.offsetHeight+"px",e.summaryRow.visible&&(e.$.scrollView.style.paddingBottom=o.offsetHeight+e.layout.rowMinHeight+"px"),e.filtering.enabled&&e.filtering.filterRow.visible&&(e.$.scrollView.style.paddingBottom=o.offsetHeight+e.layout.rowMinHeight+"px")):(e.$.scrollView.style.paddingBottom="",e.$.placeholder.style.marginTop="")):e.$.scrollView.classList.remove("hscroll"),(e.__frozenNearHeight>0||e._frozenNearRows&&e._frozenNearRows.length>0)&&!e.appearance.showVerticalScrollBarOnFixedColumns){const o=getComputedStyle(e.$.rowNearContainer),l=e.__frozenNearHeight+parseInt(o.borderBottomWidth);t.style.height=parseInt(t.style.height)-l+"px",t.style.top=l+"px",t.style.setProperty("--smart-scroll-bar-near-size",l+"px")}else e.appearance.showVerticalScrollBarOnFixedColumns&&(t.style.top="0px");if((e.__frozenFarHeight>0||e._frozenFarRows&&e._frozenFarRows.length>0)&&!e.appearance.showVerticalScrollBarOnFixedColumns){const o=getComputedStyle(e.$.rowFarContainer),l=-2+e.__frozenFarHeight+parseInt(o.borderTopWidth);t.style.height=parseInt(t.style.height)-l+"px",t.style.setProperty("--smart-scroll-bar-far-size",l+"px"),0===e.__frozenNearHeight&&(t.style.top="0px")}(d>0||u>0)&&!e.appearance.showHorizontalScrollBarOnFixedColumns&&(o.style.width=parseInt(o.style.width)-d-u+"px",e.rightToLeft?o.style.right=d+"px":o.style.left=d+"px",o.style.setProperty("--smart-scroll-bar-near-size",d+parseInt(r.borderRightWidth)+"px"),o.style.setProperty("--smart-scroll-bar-far-size",u+parseInt(r.borderLeftWidth)+"px"),e.computedVerticalScrollBarVisibility&&(e.__scrollBarSize||(e.__scrollBarSize=t.offsetWidth),o.style.setProperty("--smart-scroll-bar-far-size",u+e.__scrollBarSize+"px"))),t.refresh(),o.refresh(),e._mobile&&(e._scrollContentView.style.width=e.$.scrollView.offsetWidth+e._scrollView.scrollWidth+"px",e._scrollContentView.style.height=e.$.scrollView.offsetHeight+e._scrollView.scrollHeight+"px")}_refreshHorizontalScrollBarVisibility(e){const t=this;t.scrollWidth=e,t.computedHorizontalScrollBarVisibility||(t.scrollLeft=0)}_refreshVerticalScrollBarVisibility(e){const t=this;if(t._autoHeight)return t.scrollTop=0,void(t.scrollHeight=0);t.computedHorizontalScrollBarVisibility&&(e+=t.$.horizontalScrollBar.offsetHeight),t.scrollHeight=e,t.paging.enabled&&t.paging.spinner.visible&&t.$.verticalScrollBarVisibility.classList.remove("smart-hidden"),t.computedVerticalScrollBarVisibility||(t.scrollTop=0)}_styleChangedHandler(e){const t=this;if(!e.detail.styleProperties.overflow&&!t.classList.contains("smart-grid-resize-mode")){if(e.detail.styleProperties["grid-template-columns"])return t._templateColumns(),void t.refresh();if(e.detail.styleProperties["font-size"])return t.layout.isDirty=!0,t._resetCachedLayout(),void t.refresh();(e.detail.styleProperties["--smart-grid-row-height"]||e.detail.styleProperties["--smart-font-size"]||e.detail.styleProperties["--smart-grid-column-header-height"]||e.detail.styleProperties["--smart-grid-group-header-height"]||e.detail.styleProperties["--smart-grid-filter-footer-height"]||e.detail.styleProperties["--smart-grid-group-row-vertical"]||e.detail.styleProperties["--smart-grid-group-row-horizontal-offset"]||e.detail.styleProperties["--smart-grid-freeze-splitter-size"]||e.detail.styleProperties["--smart-grid-resize-line-size"]||e.detail.styleProperties["--smart-grid-footer-height"]||e.detail.styleProperties["--smart-grid-header-height"])&&(t.layout.isDirty=!0),t.offsetWidth&&t.offsetHeight>0&&(t._resetCachedLayout(),t._refreshLayout(),t._recycle())}}_resetCachedLayout(){const e=this;delete e._columnHeights,e.__cellsCommandTemplate=null,e.__autoRowHeight=null,e.__autoHeightRows=null,e.__measuredColumnHeight=null,e.__columnHeaderHeight=null,e.__filterFooterOffsetHeight=null}_swipeLeftHandler(){}_swipeRightHandler(){}_getRowIndexByPosition(e){const t=this;return(o=>{let l=0,a=o.length-1;if(e<=0)return 0;const n=o[o.length-1];if(-1!==n.top&&n.top<=e)return o.length-1;for(;;){const n=Math.floor((l+a)/2),i=o[n];if(t._isRowInPosition(i,e))return n;i.top<e?l=n+1:i.top>e?a=n-1:l=n+1}})(t._recyclingRows)}_getVirtualRowIndexByPosition(e){let t=this.rows[0].height;const o=(e,o)=>0!==t&&e<=o&&e+t>o;return(l=>{let a=0,n=l.length-1;if(e<=0)return 0;const i=(l.length-1)*t;if(-1!==i&&i<=e)return l.length-1;for(;;){const l=Math.floor((a+n)/2),i=l*t;if(o(i,e))return l;i<e?a=l+1:i>e?n=l-1:a=l+1}})(this.dataSource)}getRows(){return this.getViewRows()}getViewRows(){const e=this;return e.rowHierarchy?e.rowHierarchy:e.getVisibleRows()}getData(){const e=this;if(!e.dataSource)return[];const t=[];for(let o=0;o<e.dataSource.length;o++){const l=e.dataSource[o];if(l.$){const o={};for(let t=0;t<e.dataSource.dataFields.length;t++){const a=e.dataSource.dataFields[t].name;o[a]=l[a]}t.push(o)}else t.push(l)}return t}getDataFields(){const e=this;return e.columns?e.columns.map((e=>e.dataField)):[]}getColumns(){const e=this,t=[];if(!e.isInitialized)return t;if(e.columns)for(let o=0;o<e.columns.length;o++){const l=e.columns[o].getState();t.push(l)}return t}resetState(){const e=this;e._isUpdating=0,e.beginUpdate(),e.clearSort(),e.clearFilter(),e.clearGroups(),e.clearSelection(),e._conditionalColors&&(e._conditionalColors.colors=[],e._conditionalColors.conditions=[],e._conditionalColors.type="conditions",e._conditionalColors.singleSelect="",e._conditionalColors.decorate="border"),e.$.headerBar&&delete e.$.headerBar._appliedColors,e.columns.canNotify=!1;let t=[],o=!1;for(let l=0;l<e.columns.length;l++){const a=e.columns[l];a.visible=!0,a.width=180,a.freeze=!1,a.index>=0?t[a.index]=a:t.push(a),a.index!==l&&(o=!0)}o&&(e.columns=t),"grid"!==e.view&&(e.view="grid",e._hideKanbanView()),e.columns.canNotify=!0,e._scrollView.scrollLeft=e._scrollView.scrollTop=0,e.paging.enabled&&(e.paging.pageIndex=0),e.$.headerBar&&e.$.headerBar._setView&&e.$.headerBar._setView("grid"),e._kanban&&e._kanban._reset(),e.layout.isDirty=!0,e.endUpdate(),o&&(e._renderColumns(),e._refreshHeaderBar())}_loadState(e){const t=this;let o=!1;t.stateSettings.loading=!0;let l=!1,a=!1;if("grid"===e.view||"card"===e.view||void 0===e.view){if(e.expandedRows&&Object.keys(e.expandedRows).length>0){o=!0,t.beginUpdate();const l=[];if(e.groups){t.dataSource.groupBy=e.groups,t._groups=[].concat(t.dataSource.groupBy.toArray())||[],t._refreshRowHierarchy();for(let o in e.expandedRows)l["Item"+o.replaceAll(".","_")]=!0,t._expandCollapseGroup(o,!0)}else if(t.grouping.enabled&&t.dataSource.groupBy.length)for(let o in e.expandedRows)l["Item"+o.replaceAll(".","_")]=!0,t._expandCollapseGroup(o,!0);t.dataSource&&(t.dataSource._expandedRowIds=l)}else if(e.groups&&e.groups.length){o=!0,t.beginUpdate();const l=[];t.dataSource&&(t.dataSource._expandedRowIds=l),e.groups&&(t.dataSource.groupBy=e.groups,t._refreshRowHierarchy())}else if(e.groups&&0===e.groups.length&&t.dataSource.groupBy.length>0){o=!0,t.beginUpdate();const e=[];t.dataSource&&(t.dataSource._expandedRowIds=e),t.dataSource.groupBy=[],t._refreshRowHierarchy(),a=!0}if(e.paging&&t.paging.enabled&&(t.paging.index=e.paging.index,t.paging.size=e.paging.size),e.colors&&(t._conditionalColors=JSON.parse(JSON.stringify(e.colors)),t.$.headerBar)){let l=[];if(e.colors.conditions)for(let t=0;t<e.colors.conditions.length;t++){let o=e.colors.conditions[t],a=[];for(let e in o)a.push(o[e]);l.push(a)}o||(o=!0,t.beginUpdate());const a={type:e.colors.type,singleSelect:e.colors.singleSelect,decorate:e.colors.decorate};t.$.headerBar._appliedColors=[l,a],t._conditionalColors.update=e=>{t.$.headerBar._updateConditionalColors(e,t,a)}}if(e.columns&&e.columns.length>0){o||(o=!0,t.beginUpdate());for(let o=0;o<e.columns.length;o++){const a=e.columns[o];if(a.dataField){const e=t.columnByDataField[a.dataField];if(e){const o=e.canNotify;e.canNotify=!1,a.width?e.width=a.width:e.width=180,e.visible=void 0===a.visible||a.visible,e._state&&(e._state.visible=void 0===a.visible||a.visible,e._state.freeze=void 0!==a.freeze&&a.freeze,e._state.width=a.width?a.width:180);const n=e.freeze;e.freeze=void 0!==a.freeze&&a.freeze,n!==e.freeze&&(l=!0,e.freeze||t._frozenNearColumns.indexOf(e)),e.canNotify=o}}}}}if(e.sort&&Object.keys(e.sort).length>0){o||(o=!0,t.beginUpdate());const l=t.appearance.allowSortAnimation;t.appearance.allowSortAnimation=!1;let a=t.columns.canNotify;t.columns.canNotify=!1;for(let e=0;e<t.columns.length;e++)t.columns[e].sortOrder="";t.columns.canNotify=a;for(let o in e.sort)if(e.sort[o]){const l=e.sort[o].sortOrder,a=t.columnByDataField[o];t.sortBy(a.dataField,l)}t.appearance.allowSortAnimation=l}if(e.filter&&Object.keys(e.filter).length>0){o||(o=!0,t.beginUpdate());for(let o in e.filter){const l=e.filter[o];if(l){t.addFilter(o,l,!1);const e=t.columnByDataField[o];e&&e._filterInfo&&e.filter&&e.filter.filters&&e.filter.filters[0]&&(e._filterInfo.value=e.filter.filters[0].value,e._filterInfo.condition=e.filter.filters[0].condition)}}if(t.filtering.filterRow)for(let e=0;e<t.columns.length;e++)t.columns[e]._filterEditorInitialized&&(t.columns[e]._filterEditorInitialized=!1)}if(o){t.endUpdate(!1,!1);let o=!1;e.view&&"kanban"===e.view&&(o=!0),l&&(o=!1,a=!0,t._renderColumns()),o||(a?t.refresh(!0):t._refresh())}let n=!1;e.kanban&&e.kanban.stackedBy&&(void 0===t._stackedBy&&(t._stackedBy=e.kanban.stackedBy),t._stackedBy!==e.kanban.stackedBy&&(n=!0),t._stackedBy=e.kanban.stackedBy),(n||e.view&&t.view!==e.view)&&t.$.headerBar&&t.$.headerBar._setView&&(e.name&&(t.stateSettings.current=e.name),t.$.headerBar._setView(e.view,!0)),e.filter&&Object.keys(e.filter).length>0&&t.refreshFilters(),e.name&&(t.stateSettings.current=e.name),t._refreshHeaderBar(),t.stateSettings.loading=!1}loadState(e){const t=this;if(e){if(t.stateSettings.loading=!0,t._isUpdating=0,t.beginUpdate(),t.clearSort(),t.clearFilter(),t.clearGroups(),t.clearSelection(),t._conditionalColors&&(t._conditionalColors.colors=[],t._conditionalColors.conditions=[],t._conditionalColors.type="conditions",t._conditionalColors.singleSelect="",t._conditionalColors.decorate="border"),t.$.headerBar&&delete t.$.headerBar._appliedColors,t._scrollView.scrollLeft=t._scrollView.scrollTop=0,t.paging.enabled&&(t.paging.pageIndex=0),t.endUpdate(!1,!1),"string"==typeof e){const o=t.stateSettings.storage[e];o&&t._loadState(o)}else t._loadState(e);t.stateSettings.loading=!1}else if(!t.stateSettings.autoSave){let e=t.getCurrentState();e&&t.loadState(e)}}saveState(e,t){const o=this;let l=o.getCurrentState(),a=t;!t&&o.stateSettings.options.length&&(t=o.stateSettings.options);const n=o.getState(t);let i;if(e?(i=e,o.stateSettings.current||(o.stateSettings.current=e)):i=o.stateSettings.current?o.stateSettings.current:o.stateSettings.current="View 1",l&&a)for(let e in a)l[a[e]]=n[a[e]];else l=n;function r(e,t=0,o=10){if(t>o)return"Object";const l={};if(e&&e instanceof Smart.FilterGroup)return e=e.toString();for(let a in e){let n=e[a];if(n instanceof Node)n={id:n.id};else if(n instanceof Window)n="Window";else if(n instanceof Date)n=n.toJSON();else{if(n&&Array.isArray(n)&&void 0!==n[0]&&("string"==typeof n[0]||"number"==typeof n[0]||n[0]instanceof Date||"boolean"==typeof n[0])){l[a]=n;continue}if(n&&Array.isArray(n)&&0===n.length){l[a]=n;continue}if(n&&n&&Array.isArray(n)&&void 0!==n[0]&&"object"==typeof n[0]&&"path"!==a&&!(n[0]instanceof HTMLElement))for(let e=0;e<n.length;e++)n[e]=r(n[e],t+1,o);else n instanceof Object&&(n=r(n,t+1,o))}l[a]=n}return t?l:JSON.stringify(l)}l.name=i,o.stringify_object=r;const s=r(l);return o.stateSettings.allowLocalStorage&&window.localStorage.setItem(i,s),o.stateSettings.storage||(o.stateSettings.storage={}),o.stateSettings.storage[o.stateSettings.current]&&!l.date&&o.stateSettings.storage[o.stateSettings.current].date?l.date=o.stateSettings.storage[o.stateSettings.current].date:l.date=(new Date).toJSON(),o.stateSettings.storage[o.stateSettings.current]=l,o.stateSettings.onStateChange&&(o._isUpdating<=0||void 0===this._isUpdating)&&o.isCompleted&&o.stateSettings.onStateChange(l,i,o.stateSettings.storage,r),l}autoSaveState(){const e=this;if(!e.stateSettings.current&&e.stateSettings.autoSave&&!e.stateSettings.loading){const t=e.stateSettings.storage;if(t&&0===Object.keys(t).length||!t){const t=e.localize("newGrid")+" "+e.localize("view");e.stateSettings.current=t}}e.stateSettings.autoSave&&e.stateSettings.current&&!e.stateSettings.loading&&e.saveState()}getCurrentState(){const e=this,t=e.stateSettings.current;return e.stateSettings.storage||(e.stateSettings.storage={}),e.stateSettings.storage[t]?e.stateSettings.storage[t]:null}setColors(e,t){const o=this;o._conditionalColors={type:t.type,decorate:t.decorate,conditions:e,singleSelect:t.singleSelect},o.$.headerBar.addColors(JSON.parse(JSON.stringify(e)),{type:t.type,singleSelect:t.singleSelect,decorate:t.decorate},[]),o._recycle(!1)}getColors(){const e=this;if(e._conditionalColors){const t=JSON.parse(JSON.stringify(e._conditionalColors));return{type:t.type,conditions:t.conditions,filters:t.filters,colors:t.colors,decorate:t.decorate,singleSelect:t.singleSelect}}return null}getState(e){const t=this;if(e&&!e.includes)return;const o=!e||e&&e.includes("sort")?t.getSortedColumns():null,l=!e||e&&e.includes("filter")?t.getFilteredColumns():null,a=!e||e&&e.includes("groups")?t.getGroups():null,n=!e||e&&e.includes("selection")?t.getSelectedCells():null,i=!e||e&&e.includes("selection")?t.getSelectedRows():null,r=!e||e&&e.includes("pager")?t.$.headerPager.querySelector("smart-pager"):null,s=!e||e&&e.includes("colors")?t.getColors():null;let d=0;r&&(d=r.pagesCount);const u={sort:o,filter:l,groups:a,paging:{count:d,index:t.paging.pageIndex,size:t._pageSize},selectedCells:n,selectedRows:i};s&&(delete s.colors,u.colors=s),(t.header.visible&&t.header.buttons.indexOf("views")>=0||t.header.buttons.indexOf("states")>=0)&&(u.kanban=t.getKanbanState(),u.view=t.view);const c=[];if(!e||e&&e.includes("columns")){for(let e=0;e<t.columns.length;e++){const o=t.columns[e];c.push({dataField:o.dataField,width:o.computedWidth,visible:o.visible,freeze:o.freeze})}u.columns=c}if((!e||e&&e.includes("expandedRows"))&&t.dataSource&&t.dataSource._expandedRowIds){let e={};for(let o in t.dataSource._expandedRowIds){let t=""+o;t=t.replace("Item","").replace(/_/gi,"."),e[t]=!0}u.expandedRows=e}if(e){const t={};for(let o in e){const l=e[o];u[l]&&(t[l]=u[l])}return t}return u}get _pageSize(){const e=this;return e.dataSource&&e.grouping.enabled&&e.dataSource.groupBy.length>0?e.paging.pageHierarchySize:e.paging.pageSize}get _recyclingRows(){const e=this;if(e.rowHierarchy)return e.rowHierarchy;let t=e.getVisibleRows();if(e.paging.enabled)if(e.dataSource.virtualDataSource)t=t.slice(0,e._pageSize);else if(t=t.slice(e.paging.pageIndex*e._pageSize,(e.paging.pageIndex+1)*e._pageSize),e.editing.addNewRow&&e.editing.addNewRow.visible&&"button"!==e.editing.addNewRow.displayMode){let t=e.getVisibleRows();return t=0===e.paging.pageIndex&&"far"!==e.editing.addNewRow.position?t.slice(1+e.paging.pageIndex*e._pageSize,1+(e.paging.pageIndex+1)*e._pageSize):0===e.paging.pageIndex&&"far"===e.editing.addNewRow.position?t.slice(e.paging.pageIndex*e._pageSize,1+(e.paging.pageIndex+1)*e._pageSize):t.slice(1+e.paging.pageIndex*e._pageSize,1+(e.paging.pageIndex+1)*e._pageSize),[].concat(e._frozenNearDefaultRows,t,e._frozenFarDefaultRows)}return t}_isRowInPosition(e,t){const o=e.top,l=e.top+e.height,a=o<=t&&l>t;return 0!==e.height&&a}_renderColumnGroupHeaders(){const e=this;for(let t=0;t<e._columnGroups.length;t++){const o=e._columnGroups[t];o.column.render(),o.column.allowReorder=!1,o.column.element.setAttribute("columnHeader",""),o.column.element.setAttribute("level",o.level),0===o.columns.length&&o.column.element.classList.add("smart-hidden"),0===t&&0===e.columns.indexOf(o.columns[0])&&o.column.element.classList.add("smart-grid-column-border-collapse")}}hasVisibleColumn(){const e=this;for(let t=e.viewColumns.length-1;t>=0;t--){const o=e.viewColumns[t];if(o.visible&&!o.autoGenerated)return!0}return!1}_isLastVisibleColumn(e){const t=this;for(let o=t.viewColumns.length-1;o>=0;o--){const l=t.viewColumns[o];if(l.visible)return l===e}return!1}_clearCachedTemplates(){const e=this;if(e._cachedTemplates&&Object.keys(e._cachedTemplates).length>0){e._tableCachedTemplates||(e._tableCachedTemplates=document.createElement("div"),e._tableCachedTemplates.style.display="none",document.body.appendChild(e._tableCachedTemplates));const t=document.createDocumentFragment();for(let o in e._cachedTemplates)t.appendChild(e._cachedTemplates[o]);e._tableCachedTemplates.appendChild(t)}}_recycle(e,t,o,l){const a=this;if(a._layoutSuspended||!1===a.isAttached)return;if(a._isUpdating)return;if(a.editing.isEditing&&(!0!==a._disableEndEdit&&a.endEdit(),a._isUpdating))return;a._recycleValues=void 0===o||o,a._removeCellContentPopup(),a._inputOverlay&&(a._inputOverlay.parentNode&&a._inputOverlay.parentNode.removeChild(a._inputOverlay),a._inputOverlay=null),a._selection.selectionRect&&a._refreshCellSelectionRect();const n=a._scrollView.scrollTop;let i,r=l||a._getRowIndexByPosition(n),s=a._recyclingRows,d=s[r],u=d?d.top:0,c=0,m=0,g=0,p=0;if(a._cellRowSpan&&a._cellRowSpan.maxSpan>0){let e=0;if(r>=5?e=5:r>=4?e=4:r>=3?e=3:r>=2?e=2:r>=1&&(e=1),e>0){const t=s[r-e];t&&(d=t,u=d?d.top:0,g=e*d.height,r-=e)}}a._cellRowSpan=[];for(let e=0;e<a._cellsMerge.length;e++){const t=a._cellsMerge[e],o=s.indexOf(t.row);if(r>o&&r<=o+t.rowSpan&&(r=o,d=t.row,g=Math.max(g,u-d.top),u=d.top,a.$.rowContainer.style.top=a.__frozenNearHeight-n+u+"px"),t.colSpan>1)for(let e=0;e<a.viewColumns.length;e++){const o=a.viewColumns[e];let l=o.autoGenerated?o:a.columnByDataField[o.dataField];if(l.visible&&l.left+l.computedWidth-a._scrollView.scrollLeft>=c&&l.left-l.computedWidth-a._scrollView.scrollLeft<a._clientSize.width){let e=a.columnByDataField[t.column.dataField];p=Math.max(p,l.left-e.left+l.computedWidth);break}}}a.isHScrolling&&a._clearCachedTemplates();let h=null;if(!1!==e||a._cellsMerge.length>0){if(a._columnElements)for(let e=0;e<a._columnElements.length;e++){const t=a._columnElements[e];if(!t.parentNode)break;t.set("column",null,!1),t.classList.add("smart-visibility-hidden")}for(let e=0;e<a._columnGroups.length;e++){const t=a._columnGroups[e],o=t.element;o&&(a.rightToLeft?o.style.right=t.right+"px":o.style.left=t.left+"px",o.style.width=t.computedWidth+"px")}a._firstVisibleColumn=null,a._firstVisibleUserColumn=null,a._lastVisibleColumn=null;for(let e=0;e<a.viewColumns.length;e++){let t=a.viewColumns[e];if(t.visible&&(a._firstVisibleColumn||(a._firstVisibleColumn=t),a._firstVisibleUserColumn||t.autoGenerated||(a._firstVisibleUserColumn=t),a._lastVisibleColumn=t),t.element&&(t===a._firstVisibleColumn||t.rowDetailColumn?t.element.classList.add("smart-grid-column-border-collapse"):t.element.classList.remove("smart-grid-column-border-collapse"),!1!==a.appearance.showColumnGroupCellLines&&!1!==a.appearance.showColumnGroupLines||(t.parent&&t.parent.columns&&t.parent.columns[0].dataField===t.dataField?t.element.setAttribute("column-group-first-child",""):t.parent&&t.element.removeAttribute("column-group-first-child")),t.element.removeAttribute("aria-colindex")),t.freeze){if(!0!==t.freeze&&"near"!==t.freeze||t.visible&&(c+=t.computedWidth),!t.element)continue;t.visible?(t.element.classList.remove("smart-visibility-hidden"),t.render()):t.element.classList.add("smart-visibility-hidden")}else if(t.visible&&t.left+t.computedWidth-a._scrollView.scrollLeft>=c-p&&t.left-t.computedWidth-a._scrollView.scrollLeft<a._clientSize.width){a._columnElements||(a._columnElements=[]);const o=a._columnElements[m++];o&&(o.set("column",t,!1),o.parentNode||a.$.columnContainer.appendChild(o),h||(h=t,a._firstRenderedColumn=t),t.element=o,t.render(),o.setAttribute("aria-colindex",e+1),void 0===i&&(i=t.left))}}}if(void 0===i&&(i=0),a.rightToLeft){const e=a._scrollView.scrollWidth-a._scrollView.scrollLeft-a._scrollView.vScrollBar.offsetWidth;a.$.columnContainer.style.right=e+"px",e<=0&&!a._scrollView.scrollWidth&&(a.$.columnContainer.style.right=-a.offsetWidth+a._computedColumnsWidth+"px")}else a.$.columnContainer.style.left=-a._scrollView.scrollLeft+"px";if(a.$.rowContainer.style.top=a.__frozenNearHeight-n+u+"px",a.isScrolling&&!a.isHScrolling&&(a._scrollUpdate&&clearTimeout(a._scrollUpdate),a._scrollUpdate=setTimeout((function(){a.isScrolling||(a.$.rowContainer.style.top=parseInt(a.$.rowContainer.style.top)+.01+"px")}),50)),!1===t)return;if(!a._rowElements)return;const f=a.dataSource&&a.dataSource.virtualDataSource&&!a.dataSource.virtualDataSourceOnExpand&&a.dataSource.length>a.virtualModeCachedRowsCount&&"infinite"!==a.scrolling;if(r>=0){m=0;let e=Math.max(a._clientSize.height,a._overflowOffset),t=0;f&&(a.rowById=[],a.rows&&a.rows.length>0&&void 0===a.rows[a.rows.length-1].top&&(a.rows[a.rows.length-1].top=(a.rows.length-1)*a.rows[0].height),a.rows&&a.rows.length>0&&(t=a._getVirtualRowIndexByPosition(n),u=t*a.rows[0].height,a.$.rowContainer.style.top=a.__frozenNearHeight-n+u+"px",a.paging.enabled||(r=0)),a.paging.enabled&&(t=a.paging.pageIndex*a._pageSize)),"card"===a.view&&a._cardHeight&&(e+=a._cardHeight);for(let o=r;o<s.length;o++){const l=s[o];if(0===l.height||!l.visible||!1===l.filtered||l.freeze&&l.visible)continue;const i=l.height;if(l.expandHeight&&(e+=a.offsetHeight+l.expandHeight),!(u+i>=n-g&&u<=n+e||a._autoHeight))break;{const e=a._rowElements[m++];if(!e)break;if(e.setAttribute("aria-rowindex",t+o+1),l.element=e,l.grid=a,f){if(l.index=o+t,l.visibleIndex=o+t,a.selection.enabled&&a._selection){const e=a._selection.indexes,t=l.canNotify;l.canNotify=!1,l.selected=e.indexOf(l.index)>=0,l.canNotify=t}a.paging.enabled?(l.data=a.dataSource[r+m-1],l.data&&(l.id=l.data.$.id,a.rowById[l.id]=l)):(l.data=a.dataSource[m-1],l.data&&(l.id=l.data.$.id,a.rowById[l.id]=l))}l.render()}u+=i}}a._renderFrozenRows();let y=m;if(m<a._rowElements.length)for(let e=m;e<a._rowElements.length;e++){const e=a._rowElements[m++];e.classList.add("smart-hidden"),e.removeAttribute("aria-rowindex")}a.editing.addNewRow&&a.editing.addNewRow.visible&&"button"===a.editing.addNewRow.displayMode&&a._rowElements[y]&&(a._newRow||(a._newRow=new Smart.Grid.Row({data:{},index:9999999,grid:a,addNewRow:!0,inline:!0,autoGenerated:!0})),a._newRow.element=a._rowElements[y],a._newRow.element.classList.remove("smart-hidden"),a._newRow.render()),f&&a._selection.selectionRect&&a._refreshCellSelectionRect()}_renderFrozenRows(){const e=this;let t=!1,o=!1;if("card"===e.view)return e.$.rowNearContainer.classList.add("smart-hidden"),void e.$.rowFarContainer.classList.add("smart-hidden");0===e._frozenNearRows.length?e.$.rowNearContainer.classList.add("smart-hidden"):e.$.rowNearContainer.classList.remove("smart-hidden");for(let o=0;o<e._frozenNearRows.length;o++){const l=e._frozenNearRows[o];l.visible||(l.element=e.$.rowNearContainer.children[o],l.element||(l.element=l.createElement(),e.$.rowNearContainer.appendChild(l.element)),l.element.classList.add("smart-hidden")),l.visible&&l.filtered&&(t=!0,l.element=e.$.rowNearContainer.children[o],l.element||(l.element=l.createElement(),e.$.rowNearContainer.appendChild(l.element)),l.render())}t||e.$.rowNearContainer.classList.add("smart-hidden"),0===e._frozenFarRows.length?e.$.rowFarContainer.classList.add("smart-hidden"):e.$.rowFarContainer.classList.remove("smart-hidden");for(let t=0;t<e._frozenFarRows.length;t++){const l=e._frozenFarRows[t];l.visible&&(o=!0),l.element=e.$.rowFarContainer.children[t],l.element||(l.element=l.createElement(),e.$.rowFarContainer.appendChild(l.element)),l.render()}o||e.$.rowFarContainer.classList.add("smart-hidden"),0!==e.columns.length&&e.hasVisibleColumn()||(e.$.rowNearContainer.classList.add("smart-hidden"),e.$.rowFarContainer.classList.add("smart-hidden"));const l=e.rows;l&&null!==l&&0!==l.length||(e.$.rowNearContainer.classList.add("smart-hidden"),e.$.rowFarContainer.classList.add("smart-hidden"),e._filters&&e._filters.length&&e.filtering.filterRow.visible&&e.$.rowNearContainer.classList.remove("smart-hidden"))}_recycleRotate(e,t,o,l,a){const n=t.getBoundingClientRect(),i=e.getBoundingClientRect();let r=0,s=0;return 0===i.width?(e.innerHTML=a,!1):(n.left>i.left&&(r=i.left-n.left),n.top<i.top&&(s=i.top-n.top),"left"!==o&&""!==o||(r=4),"center"===o&&(r+=i.width/2-n.width/2),"right"===o&&(r+=i.width-n.width-4),"top"!==l&&""!==l||(s=4),"center"!==l&&"middle"!==l||(s+=i.height/2-n.height/2),"bottom"===l&&(s+=i.height-n.height-4),t.style.left=r+"px",t.style.top=s+"px",!0)}_virtualDataRequest(e,t){const o=this;let l=-1,a=-1;if(!o._rowElements&&"infinite"!==o.scrolling)return;if("virtual"===o.scrolling){for(let e=0;e<o._rowElements.length;e++){const t=o._rowElements[e],n=t.row,i=0===e?n.visibleIndex:l+e;t.classList.contains("smart-hidden")||(-1===l&&(l=i),-1!==i&&(a=1+i))}0===o._rowElements.length&&(l=0,a=Math.max(20,parseInt(o.offsetHeight/o.layout.rowMinHeight*1.5)))}else"infinite"===o.scrolling?(l=1/0,a=1/0):(l=0,a=o.dataSource.length);a!==1/0&&(o.dataSource.virtualDataSourceLength||o.dataSource.length)&&(a=Math.min(a,o.dataSource.length)),o.paging.enabled&&(l=o.paging.pageIndex*o._pageSize,a=l+o._pageSize),o._toggledRow||"add"===e||"update"===e||"delete"===e||(o.appearance.displayLoadingIndicator=!0,o._setLoadingIndicatorVisibility()),o._groups||(o._groups=[].concat(o.dataSource.groupBy.toArray())||[]);const n={first:l,last:a,edit:o._editInfo||null,sorting:o.getSortedColumns(),filtering:o.getFilteredColumns(),filterOperator:o.filtering.operator,grouping:o._groups,row:o._toggledRow?o._toggledRow.data:null,action:e},i=o.dataSource.length,r=o.dataSource.boundSource.length;void 0===o._isFirstVirtualDataSourceRequest&&(o._isFirstVirtualDataSourceRequest=!0),o.dataSource.onVirtualDataSourceRequested((function(e){if(o.appearance.displayLoadingIndicator=!1,o._setLoadingIndicatorVisibility(),o._toggledRow=null,!e)return o._initializeRows(),o._initializeRowElements(),o.refresh(),o._refreshPagesCount(),void(o._autoHeight&&o._initializeRowElements());if("add"===e.action){if(t&&t(e.result),o._autoHeight&&o.rows.length>=o._rowElements.length-1&&(o._initializeRows(),o._initializeRowElements(),o.refresh(),o.filtering.filterRow)){for(let e=0;e<o.columns.length;e++)o.columns[e]._filterEditorInitialized&&(o.columns[e]._filterEditorInitialized=!1);const e=o.filtering.filterRow&&o.filtering.filterRow.visible&&o.filtering.filterRow.cell?o.filtering.filterRow.cell.column.dataField:null;e&&setTimeout((()=>{const t=o.columnByDataField[e];t&&t._filterInfo&&t._filterInfo.input&&t._filterInfo.input.focus()}),100)}return}if("update"===e.action)return void(t&&t(e.result));if("remove"===e.action)return void(t&&t(e.result));const l=o.context;if(o.context=o,o._isFirstVirtualDataSourceRequest&&0===o._initColumns.length&&(o.columns.canNotify=!1,o.columns=[],o._renderColumns(),o.columns.canNotify=!0),"scroll"===e.action)if("infinite"===o.scrolling){const e=o._viewRows;for(let t=0;t<e.length;t++){const l=e[t];l.data&&!l.addNewRow&&l.data.$&&(o.rowById[l.data.$.id]||(o.rowById[l.data.$.id]=l))}o._recycle(!1,!1)}else{const t=e.first>=0?e.first:0,l=e.last!==1/0?e.last:0;let a=0;for(let e=t;e<l;e++)o.rows[e]&&(o.rows[e].data=o.dataSource[a++]);o._recycle(!1,!1)}else if(o.dataSource.length!==i||o.dataSource.boundSource.length!==r||o._isFirstVirtualDataSourceRequest||"expand"===e.action||"filter"===e.action||"sort"===e.action||"pageIndexChange"===e.action||"pageSizeChange"===e.action||"sort"===e.action||"group"===e.action){o.paging.enabled&&o.$.headerPager.querySelector("smart-pager")&&(o.$.headerPager.querySelector("smart-pager").pagesCount=Math.ceil(o.dataSource.length/o._pageSize),o.$.footerPager.querySelector("smart-pager").pagesCount=Math.ceil(o.dataSource.length/o._pageSize));const e=o.filtering.filterRow&&o.filtering.filterRow.visible&&o.filtering.filterRow.cell?o.filtering.filterRow.cell.column.dataField:null;if(o._initializeRows(),o._initializeRowElements(),o.refresh(),o._refreshPagesCount(),o._autoHeight&&o._initializeRowElements(),o.filtering.filterRow){for(let e=0;e<o.columns.length;e++)o.columns[e]._filterEditorInitialized&&(o.columns[e]._filterEditorInitialized=!1);e&&setTimeout((()=>{const t=o.columnByDataField[e];t&&t._filterInfo&&t._filterInfo.input&&t._filterInfo.input.focus()}),100)}}else o.dataSource.virtualDataSourceOnExpand&&o.refresh();o._isFirstVirtualDataSourceRequest&&o.onLoad&&(o.onLoad(o),delete o.onLoad),o._isFirstVirtualDataSourceRequest=!1,o._recycle(),o.context=l,o._onDataUpdated&&o._onDataUpdated()}),n)}_createAddNewRowButton(){const e=this,t=document.createElement("div");return t.className="smart-grid-add-row-button smart-grid-icon smart-icon-plus",t.title=e.localize("addNewRow"),t.style.left=!e.appearance.showViewBar||e.appearance.viewBarAppendTo||e.appearance.showViewBarAsDropdown||e._mobile?"":10+e.layout.viewBarWidth+"px",e._addNewGridRow=t.onclick=()=>{e._addRowTimer&&clearTimeout(e._addRowTimer),e._addRowTimer=setTimeout((()=>{if(e.dataSource&&e.dataSource.virtualDataSource)return void e._insertNewRowAfter();const t={};for(let o=0;o<e.columns.length;o++){const l=e.columns[o];void 0!==l.defaultValue&&null!==l.defaultValue&&("today"===l.defaultValue&&"date"===l.dataType?(e._today||(e._today=new Date,e._todayYear=e._today.getFullYear(),e._todayMonth=e._today.getMonth(),e._todayDate=e._today.getDate()),t[l.dataField]=new Date(e._todayYear,e._todayMonth,e._todayDate)):t[l.dataField]=l.defaultValue)}e._addingNewRow=!0,e._add(t),e._mobile||(e._scrollView.vScrollBar.value=e._scrollView.vScrollBar.max),e.closeMenu(),e._addingNewRow=!1,e.editing.addNewRow.visible&&e.$.placeholder.classList.contains("smart-hidden")&&"button"!==e.editing.addNewRow.displayMode&&e.editing.addNewRow._addButton.classList.remove("show")}),0)},t}removeColumn(e){const t=this;let o=-1;if(e)for(let l=0;l<t.columns.length;l++)if(t.columns[l].dataField===e){o=l;break}o>=0&&t.columns.splice(o,1)}addColumn(e,t,o=!0){const l=this;if(e){let a=-1;if(t)for(let e=0;e<l.columns.length;e++)if(l.columns[e].dataField===t){a=e,!1===o&&(a=e+1);break}if("string"==typeof e){const t=l._getKanbanTaskField(e);if(t){if(a>=0)return void l.columns.splice(a,0,t);l.columns.push(t)}return}if(a>=0&&a<l.columns.length)return void l.columns.splice(a,0,e);l.columns.push(e)}}insertColumnAfter(e,t){e&&this.addColumn(e,t,!1)}insertColumnBefore(e,t){e&&this.addColumn(e,t,!0)}addNewColumn(e){e&&this.addColumn(e)}_createAddNewColumnButton(){const e=this,t=document.createElement("div");return t.className="smart-grid-add-column-button smart-grid-icon smart-icon-plus",t.title=e.localize("addNewColumn"),t.onclick=()=>{e._openAddColumnDialog(),e.addEventListener("closeColumnDialog",(()=>{e.layout.isDirty=!0,e._resetCachedLayout(),e._refreshLayout()}))},t}_showAddNewRowButton(e){const t=this;if(!t.columns.length)return;if("grid"!==t.view&&t.editing.addNewRow._addButton)return void t.editing.addNewRow._addButton.classList.add("smart-hidden");if("grid"===t.view&&t.editing.addNewRow._addButton&&t.editing.addNewRow._addButton.classList.remove("smart-hidden"),"float"===e&&t.computedVerticalScrollBarVisibility&&t.editing.addNewRow._addButton&&!t.editing.addNewRow._addButton.classList.contains("show"))return;if("float"===e&&t._addingNewRow)return;const o=()=>{t.editing.addNewRow._addButton&&t.editing.addNewRow._addButton&&("float"!==e&&(t.appearance.showRowHeader||t.appearance.showRowHeaderNumber)&&"card"!==t.view?t.editing.addNewRow._addButton.classList.remove("float"):(!t.computedVerticalScrollBarVisibility&&t.dataSource&&0===t.dataSource.length||t.computedVerticalScrollBarVisibility&&"float"===e||"card"===t.view)&&t.editing.addNewRow._addButton.classList.add("float"),t.computedHorizontalScrollBarVisibility?t.pager.visible?t.editing.addNewRow._addButton.style.bottom="68px":t.editing.addNewRow._addButton.style.bottom="20px":t.pager.visible?t.editing.addNewRow._addButton.style.bottom="48px":t.editing.addNewRow._addButton.style.bottom="",t.grouping.enabled&&t.dataSource)&&(!(t.dataSource.groupBy.length>0)||t.editing.addNewRow._addButton.classList.remove("show"))};t.editing.addNewRow._addButton&&t.editing.addNewRow.visible&&t.$.placeholder.classList.contains("smart-hidden")&&"button"!==t.editing.addNewRow.displayMode&&t.editing.addNewRow._addButton.classList.remove("show"),!t.editing.addNewRow.visible||"button"!==t.editing.addNewRow.displayMode&&t.$.placeholder.classList.contains("smart-hidden")||(t.editing.addNewRow._addButton?requestAnimationFrame((()=>{t.editing.addNewRow._addButton&&(t.editing.addNewRow._addButton.classList.add("show"),t.editing.addNewRow._addButton.style.left=!t.appearance.showViewBar||t.appearance.viewBarAppendTo||t.appearance.showViewBarAsDropdown||t._mobile?"":10+t.layout.viewBarWidth+"px",o(),t.editing.addNewRow.visible&&!t.computedVerticalScrollBarVisibility&&t.editing.addNewRow._addButton.classList.remove("show"))})):(t.editing.addNewRow._addButton=t._createAddNewRowButton(),t.appendChild(t.editing.addNewRow._addButton),requestAnimationFrame((()=>{t.editing.addNewRow._addButton&&(t.editing.addNewRow._addButton.classList.add("show"),o(),(t.editing.addNewRow.visible&&t.$.placeholder.classList.contains("smart-hidden")&&"button"!==t.editing.addNewRow.displayMode||!t.computedVerticalScrollBarVisibility&&t.editing.addNewRow.visible&&t.$.placeholder.classList.contains("smart-hidden"))&&t.editing.addNewRow._addButton.classList.remove("show"))}))))}_showAddNewColumnButton(){const e=this,t=()=>{e.editing.addNewColumn._addButton.classList.add("float")};e.editing.addNewColumn.visible&&(e.editing.addNewColumn._addButton||(e.editing.addNewColumn._addButton=e._createAddNewColumnButton(),e.appendChild(e.editing.addNewColumn._addButton)),requestAnimationFrame((()=>{e.editing.addNewColumn._addButton.classList.add("show"),t()})))}_verticalScrollRecycle(e,t){const o=this;if(o._layoutSuspended||!1===o.isAttached)return;if(o._isUpdating)return;if(o.editing.isEditing&&(!0!==o._disableEndEdit&&o.endEdit(),o._isUpdating))return;o._removeCellContentPopup(),o._inputOverlay&&(o._inputOverlay.parentNode&&o._inputOverlay.parentNode.removeChild(o._inputOverlay),o._inputOverlay=null),o._selection.selectionRect&&o._refreshCellSelectionRect();const l=o._recyclingRows;let a=l[t],n=a.top,i=!1;for(let r=0;r<o._cellsMerge.length;r++){const s=o._cellsMerge[r],d=l.indexOf(s.row);t>d&&t<=d+s.rowSpan&&(t=d,a=s.row,n=a.top,o.$.rowContainer.style.top=o.__frozenNearHeight-e+n+"px",i=!0)}i||(o.$.rowContainer.style.top=o.__frozenNearHeight-e+n+"px")}_verticalScrollbarHandler(e){const t=this;t.menu&&t.menu.column&&t.closeMenu(),t.isScrolling=!0,t._scrollTimer&&clearTimeout(t._scrollTimer),t._layoutSuspended||(t._scrollTimer=setTimeout((()=>{if("virtual"===t.scrolling)t._recycle(!1);else{const e=t._scrollView.scrollTop;let o=t._getRowIndexByPosition(e);o!==t._scrollRowIndex?(t._recycle(!1,!0,!0,o),t._scrollRowIndex=o):t._verticalScrollRecycle(e,o)}if(t.isScrolling=!1,e.max===e.value&&e.max>0){if(t.$.fireEvent("scrollBottomReached"),"infinite"===t.scrolling)return t.appearance.displayLoadingIndicator=!0,t._setLoadingIndicatorVisibility(),t._virtualScrollTimer&&clearTimeout(t._virtualScrollTimer),void(t._virtualScrollTimer=setTimeout((()=>{t._virtualDataRequest("scroll"),t.appearance.displayLoadingIndicator=!1,t._setLoadingIndicatorVisibility()}),50));t.editing.addNewRow._addButton&&"card"!==t.view&&t.editing.addNewRow._addButton.classList.remove("show")}else t.editing.addNewRow.visible&&"button"===t.editing.addNewRow.displayMode&&t.editing.addNewRow._addButton&&e.max>0&&(t.editing.addNewRow._addButton.classList.add("show"),t.editing.addNewRow._addButton.classList.remove("scroll"),t.editing.addNewRow._addButton.classList.add("float"));"virtual"===t.scrolling&&(t.appearance.displayLoadingIndicator=!0,t._setLoadingIndicatorVisibility(),t._virtualScrollTimer&&clearTimeout(t._virtualScrollTimer),t._virtualScrollTimer=setTimeout((()=>{t._virtualDataRequest("scroll"),t.appearance.displayLoadingIndicator=!1,t._setLoadingIndicatorVisibility()}),50)),e.min===e.value&&t.$.fireEvent("scrollTopReached")}),0))}getVerticalScrollMax(){return this.scrollHeight}getHorizontalScrollMax(){return this.scrollWidth}getHorizontalScrollValue(){return this.scrollLeft}setHorizontalScrollValue(e){this.scrollLeft=e}getVerticalScrollValue(){return this.scrollTop}setVerticalScrollValue(e){this.scrollTop=e}clearRows(){const e=this;e.dataSource=new Smart.DataAdapter({dataSource:[]}),e.rowHierarchy=null,e._visibleRows=null,e.__viewRows=null,e.rows.canNotify=!1,e.rows.length=0,e.rows.canNotify=!0,e.clearSelection(),e._refresh()}isEmpty(){const e=this;return!!(null===e.dataSource||e.dataSource&&e.dataSource.dataFields&&0===e.dataSource.length&&0===e.dataSource.dataSource.length&&!e.dataSource.virtualDataSource)}setRowStyle(e,t){const o=this,l=o.rowById[e];l&&(l.style=t,o._recycle(!1,!0))}setCellStyle(e,t,o){const l=this,a=l.rowById[e];if(a){const e=a.getCell(t);if(e){const t=e.canNotify;if(e.canNotify=!1,o)for(let t in o)void 0!==e[t]&&(e[t]=o[t]);else e.background=null,e.color=null,e.fontSize=null,e.fontFamily=null,e.fontWeight=null,e.textDecoration=null,e.fontStyle=null;e.canNotify=t,l._recycle(!1,!0)}}}setCellFormula(e,t,o){const l=this,a=l.rowById[e];if(a){const e=a.getCell(t);if(e){const t=e.canNotify;e.canNotify=!1,e.formula=o,e.canNotify=t,l._recycle(!1,!0)}}}dataBind(){const e=this;if(delete e.__autoRowHeight,e._virtualOnExpandCache=[],e._cellsMerge=[],e._cellStyles=[],null===e.dataSource||e.dataSource&&e.dataSource.dataFields&&0===e.dataSource.length&&0===e.dataSource.dataSource.length&&!e.dataSource.virtualDataSource)e.clearRows();else if(Array.isArray(e.dataSource))if(e.dataSourceSettings.dataFields&&e.dataSourceSettings.dataFields.length>0)e.dataSource=new Smart.DataAdapter({dataSource:e.dataSource,dataSourceType:e.dataSourceSettings.dataSourceType,dataFields:e.dataSourceSettings.dataFields,keyDataField:e.dataSourceSettings.keyDataField,parentDataField:e.dataSourceSettings.parentDataField,childrenDataField:e.dataSourceSettings.childrenDataField,groupBy:e.dataSourceSettings.groupBy&&e.dataSourceSettings.groupBy.length?e.dataSourceSettings.groupBy:e.grouping.groupBy,mapChar:e.dataSourceSettings.mapChar,root:e.dataSourceSettings.root,record:e.dataSourceSettings.record,autoGenerateColumns:e.autoGenerateColumns,id:e.dataSourceSettings.id,virtualDataSource:e.dataSourceSettings.virtualDataSource,virtualDataSourceOnExpand:e.dataSourceSettings.virtualDataSourceOnExpand});else if(e.columns&&e.columns.length){let t=[];for(let o=0;o<e.columns.length;o++){const l=e.columns[o];t.push({name:l.dataField,dataType:l.dataType||"string"}),l.displayField!==l.dataField&&t.push({name:l.displayField,dataType:l.dataType||"string"})}e.dataSource=new Smart.DataAdapter({dataSource:e.dataSource,dataFields:t,dataSourceType:e.dataSourceSettings.dataSourceType,keyDataField:e.dataSourceSettings.keyDataField,parentDataField:e.dataSourceSettings.parentDataField,childrenDataField:e.dataSourceSettings.childrenDataField,groupBy:e.dataSourceSettings.groupBy&&e.dataSourceSettings.groupBy.length?e.dataSourceSettings.groupBy:e.grouping.groupBy,mapChar:e.dataSourceSettings.mapChar,root:e.dataSourceSettings.root,record:e.dataSourceSettings.record,autoGenerateColumns:e.autoGenerateColumns,id:e.dataSourceSettings.id,virtualDataSource:e.dataSourceSettings.virtualDataSource,virtualDataSourceOnExpand:e.dataSourceSettings.virtualDataSourceOnExpand})}else e.dataSource=new Smart.DataAdapter({dataSource:e.dataSource});const t=e._filters,o=e._sortedColumns;if(e.clearSort(),e.filtering.filterRow)for(let t=0;t<e.columns.length;t++)e.columns[t]._filterEditorInitialized=!1;for(let t=0;t<e.columns.length;t++)delete e.columns[t]._cellsCachedValues;e._initColumns&&0===e._initColumns.length&&(e.columns=[],e._renderColumns(!0)),e._renderRows(),"virtual"===e.scrolling||e.paging.enabled&&e.dataSource&&e.dataSource.virtualDataSource||e.dataSource&&e.dataSource.virtualDataSource?e._virtualDataRequest("dataBind"):e.paging.enabled&&(!e.dataSource||e.dataSource&&!e.dataSource.url)&&e._refreshPagesCount(),o&&e._refreshSort(o),t&&t.length>0&&(e._filters=null,e.refreshFilters())}refresh(e,t){const o=this;o.isInitialized&&(e&&(o._initializeRows(),o._initializeRowElements()),o._refresh(t),o._refreshSummary())}refreshView(){const e=this;e._recycleFiles=!0,e._recycle(),delete e._recycleFiles}beginUpdate(){const e=this;e._isUpdating||(e._isUpdating=0),e._isUpdating++}endUpdate(e,t){const o=this;o._isUpdating--,o._isUpdating<0&&(o._isUpdating=0),!1!==e?o.refresh():!1!==t&&o.refreshView()}_generateUUID(){const e=window.crypto,t=new Uint8Array(16);e.getRandomValues(t),t[6]=15&t[6]|64,t[8]=63&t[8]|128;const o=Array.from(t,(e=>e.toString(16).padStart(2,"0"))).join("");return`${o.substring(0,8)}-${o.substring(8,12)}-${o.substring(12,16)}-${o.substring(16,20)}-${o.substring(20)}`}}),Smart.Grid.Extend=function(e){if(!e)return;const t=Object.getOwnPropertyNames(e.prototype);for(let o in t){const l=t[o];"constructor"!==l&&(Smart.Grid.prototype[l]=e.prototype[l])}},Smart.Grid.Extend(Smart.Utilities.Grid.Resize),Smart.Grid.Extend(Smart.Utilities.Grid.Reorder),Smart.Grid.Extend(Smart.Utilities.Grid.Pager),Smart.Grid.Extend(Smart.Utilities.Grid.Filter),Smart.Grid.Extend(Smart.Utilities.Grid.Sort),Smart.Grid.Extend(Smart.Utilities.Grid.Menu),Smart.Grid.Extend(Smart.Utilities.Grid.Select),Smart.Grid.Extend(Smart.Utilities.Grid.Edit),Smart.Grid.Extend(Smart.Utilities.Grid.Dialog),Smart.Grid.Extend(Smart.Utilities.Grid.Group),Smart.Grid.Extend(Smart.Utilities.Grid.Tree),Smart.Grid.Extend(Smart.Utilities.Grid.Export),Smart.Grid.Extend(Smart.Utilities.Grid.Chart),Smart.Grid.Extend(Smart.Utilities.Grid.View),Smart.Grid.Cell=Smart.Utilities.Grid.Cell,Smart.Grid.Row=Smart.Utilities.Grid.Row,Smart.Grid.Column=Smart.Utilities.Grid.Column;
1449
+ Smart("smart-grid",class extends Smart.ScrollViewer{static get properties(){return{ai:{type:"any",reflectToAttribute:!1,value:{model:{value:"gpt-3.5-turbo-instruct",type:"string"},maxTokens:{value:150,type:"number"},temperature:{value:.7,type:"number"},url:{value:"https://api.openai.com/v1/completions",type:"string"},key:{value:"",type:"string"}}},appearance:{value:{alternationStart:{value:0,type:"int"},alternationEnd:{value:0,type:"int"},alternationCount:{value:0,type:"int"},allowHover:{value:!1,type:"boolean",defaultReflectToAttribute:!0},allowHeaderHover:{value:!0,type:"boolean",defaultReflectToAttribute:!0},allowRowToggleAnimation:{value:!1,type:"boolean"},allowRowDetailToggleAnimation:{value:!1,type:"boolean"},allowSortAnimation:{value:!1,type:"boolean"},allowColumnLabelAnimation:{value:!0,type:"boolean"},allowCheckBoxesSelectionAnimation:{value:!0,type:"boolean"},allowColumnMenuAnimation:{value:!0,type:"boolean"},allowColumnSortButtonAnimation:{value:!0,type:"boolean"},allowColumnActionButtonAnimation:{value:!0,type:"boolean"},allowColumnFilterButtonAnimation:{value:!0,type:"boolean"},allowColumnStickyPosition:{value:!1,type:"boolean"},autoShowColumnSortButton:{value:!0,type:"boolean"},autoShowColumnActionButton:{value:!0,type:"boolean"},autoGenerateRowLabelMode:{value:"number",type:"string"},autoGenerateColumnLabelMode:{value:"letter",type:"string"},autoShowColumnFilterButton:{value:!0,type:"boolean"},cardTitleField:{value:"",type:"string"},displayLoadingIndicator:{value:!1,type:"boolean"},loadingIndicatorPlaceholder:{value:"Loading...",type:"string"},placeholder:{value:"No Rows",type:"string"},sortAnimationDuration:{value:500,type:"number"},showRowHeader:{value:!1,type:"boolean"},showRowStatus:{value:!1,type:"boolean"},showRowComments:{value:!1,type:"boolean"},showRowHeaderNumber:{value:!1,type:"boolean"},showRowHeaderEditIcon:{value:!0,type:"boolean",defaultReflectToAttribute:!0},showRowHeaderDragIcon:{value:!1,type:"boolean"},showColumnHeaderDragIcon:{value:!1,type:"boolean"},showRowHeaderSelectIcon:{value:!1,type:"boolean"},showRowHeaderFocusIcon:{value:!1,type:"boolean"},showColumnHeaderLines:{value:!0,type:"boolean",defaultReflectToAttribute:!0},showColumnGroupLines:{value:!0,type:"boolean",defaultReflectToAttribute:!0},showColumnGroupCellLines:{value:!0,type:"boolean",defaultReflectToAttribute:!0},showColumnLines:{value:!0,type:"boolean",defaultReflectToAttribute:!0},showRowLines:{value:!0,type:"boolean",defaultReflectToAttribute:!0},showFilterColumnBackground:{value:!1,type:"boolean"},showSortColumnBackground:{value:!1,type:"boolean"},showFrozenColumnBackground:{value:!0,type:"boolean"},showFrozenRowBackground:{value:!0,type:"boolean"},showSelectionOnTop:{value:!0,type:"boolean"},showColumnSortButton:{value:!0,type:"boolean"},showColumnFilterButton:{value:!0,type:"boolean"},showColumnDescriptionButton:{value:!1,type:"boolean"},showColumnIcon:{value:!1,type:"boolean"},showColumnCustomButton:{value:!1,type:"boolean"},showColumnActionButton:{value:!0,type:"boolean"},showColumnGroupsInColumnPanel:{value:!1,type:"boolean"},showTooltips:{value:!1,type:"boolean"},showTooltipsOverflow:{value:!0,type:"boolean"},showResizeTooltips:{value:!0,type:"boolean"},showHorizontalScrollBarOnFixedColumns:{value:!1,type:"boolean"},showVerticalScrollBarOnFixedColumns:{value:!1,type:"boolean"},showTreeRowHeader:{value:!1,type:"boolean"},showTodayDateAsString:{value:!0,type:"boolean"},showViewBar:{value:!1,type:"boolean"},showViewBarAsDropdown:{value:!1,type:"boolean"},viewBarAppendTo:{value:null,type:"any"}},type:"object"},behavior:{value:{autoDestroy:{value:!0,type:"boolean"},allowColumnAutoSizeOnDoubleClick:{value:!0,type:"boolean"},allowRowAutoSizeOnDoubleClick:{value:!0,type:"boolean"},allowColumnReorder:{value:!1,type:"boolean"},allowColumnFreeze:{value:!0,type:"boolean"},allowRowReorder:{value:!1,type:"boolean"},allowMouseWheel:{value:!0,type:"boolean"},doubleClickTimingDelay:{value:300,type:"number"},columnResizeMode:{value:"none",type:"string",allowedValues:["none","split","growAndShrink"]},rowResizeMode:{value:"none",type:"string",allowedValues:["none","split","growAndShrink"]}},type:"object"},layout:{value:{autoWrap:{value:!0,type:"boolean"},autoWidth:{value:!1,type:"boolean"},autoHeight:{value:!1,type:"boolean"},allowCellsWrap:{value:!1,type:"boolean"},allowCellsWrapShortcut:{value:!0,type:"boolean"},autoGenerateColumnWidth:{value:null,type:"number?"},autoSizeNewColumn:{value:!1,type:"boolean",reflectToAttribute:!1},autoSizeNewColumnMinWidth:{value:180,type:"number",reflectToAttribute:!1},cardMinWidth:{value:250,type:"any",reflectToAttribute:!1},cardRowMinHeight:{value:45,type:"any",reflectToAttribute:!1},cardsPerRow:{value:"auto",type:"any",reflectToAttribute:!1},cardVertical:{value:!0,type:"boolean",reflectToAttribute:!1},columnWidth:{value:null,type:"any",reflectToAttribute:!1},columnHeight:{value:null,type:"any",reflectToAttribute:!1},columnMinHeight:{value:30,type:"any",reflectToAttribute:!1},dropDownWidth:{value:700,type:"any",reflectToAttribute:!1},dropDownHeight:{value:500,type:"any",reflectToAttribute:!1},isDirty:{value:!1,type:"boolean"},loadingIndicatorPosition:{value:"center",allowedValues:["bottom","center","top"],type:"string"},rowMinHeight:{value:30,type:"number"},rowHeight:{value:null,type:"any",reflectToAttribute:!1},viewBarWidth:{value:200,type:"number"}},type:"object"},dataExport:{value:{header:{value:!0,type:"boolean"},filterBy:{value:null,type:"object"},groupBy:{value:null,type:"object"},style:{value:null,type:"object"},fileName:{value:"smartGrid",type:"string?"},pageOrientation:{value:"portrait",type:"string"},expandChar:{value:"+",type:"string"},collapseChar:{value:"-",type:"string"},view:{value:!1,type:"boolean"},viewStart:{value:null,type:"number?"},viewEnd:{value:null,type:"number?"},rowIds:{value:null,type:"array?"}},type:"object"},clipboard:{value:{enabled:{value:!0,type:"boolean"},autoFillMode:{value:"copy",allowedValues:["none","copy","fillSeries"],type:"string"},onPasteValue:{value:null,type:"any"}},type:"object"},conditionalFormatting:{value:null,type:"array?",reflectToAttribute:!1},columns:{value:[],type:"any",reflectToAttribute:!1},contextMenu:{value:{selector:{value:"",type:"string"},enabled:{value:!1,type:"boolean"},width:{value:150,type:"number"},height:{value:null,type:"number?"},customContextMenuItems:{value:null,type:"any"},dataSource:{value:{contextMenuItemDelete:{value:{command:{value:"contextMenuItemDeleteCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:!0,type:"boolean"},icon:{value:"smart-icon-delete",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},contextMenuItemEdit:{value:{command:{value:"contextMenuItemEditCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:!0,type:"boolean"},icon:{value:"smart-icon-mode-edit",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},contextMenuItemCustom:{value:{command:{value:null,type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:!1,type:"boolean"},icon:{value:"smart-icon-settings",type:"string"},label:{value:"",type:"string"}},type:"object",reflectToAttribute:!1}},type:"object",reflectToAttribute:!1}},type:"object",reflectToAttribute:!1},columnMenu:{value:{autoClose:{value:!0,type:"boolean"},dataSource:{value:{columnMenuCustomizeType:{value:{command:{value:"customizeTypeCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:!1,type:"any"},icon:{value:"smart-icon-settings",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemClone:{value:{command:{value:"duplicateCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:!1,type:"any"},icon:{value:"smart-icon-duplicate",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemInsertLeft:{value:{command:{value:"insertLeftCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:!1,type:"any"},icon:{value:"smart-icon-insert-left",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemInsertRight:{value:{command:{value:"insertRightCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:!1,type:"any"},icon:{value:"smart-icon-insert-right",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemSortAsc:{value:{command:{value:"sortAscCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:"auto",type:"any"},icon:{value:"smart-icon-sort-name-up",type:"string"},iconAlt:{value:"smart-icon-sort-number-up",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemSortDesc:{value:{command:{value:"sortDescCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:"auto",type:"any"},icon:{value:"smart-icon-sort-name-down",type:"string"},iconAlt:{value:"smart-icon-sort-number-down",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemRemoveSort:{value:{command:{value:"removeSortCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:"auto",type:"any"},icon:{value:"smart-icon-cancel-circled",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemSort:{value:{command:{value:"addSortCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:"auto",type:"any"},icon:{value:"smart-icon-sort",type:"string"},iconAlt:{value:"smart-icon-sort",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemFilter:{value:{command:{value:"addFilterCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:"auto",type:"any"},icon:{value:"smart-icon-add-filter",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemRemoveFilter:{value:{command:{value:"removeFilterCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:"auto",type:"any"},icon:{value:"smart-icon-cancel-circled",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemGroupBy:{value:{command:{value:"groupByCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:"auto",type:"any"},icon:{value:"smart-icon-group",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemRemoveGroupBy:{value:{command:{value:"removeGroupByCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:"auto",type:"any"},icon:{value:"smart-icon-ungroup",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemHide:{value:{command:{value:"hideColumnCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:!1,type:"any"},icon:{value:"smart-icon-visibility-off",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1},columnMenuItemDelete:{value:{command:{value:"deleteColumnCommand",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:!1,type:"any"},icon:{value:"smart-icon-delete",type:"string"},label:{value:"{{messages}}",type:"string"}},type:"object",reflectToAttribute:!1}},type:"object",reflectToAttribute:!1},visible:{value:!1,type:"boolean"},enabled:{value:!0,type:"boolean"},width:{value:250,type:"number"},height:{value:null,type:"number?"}},type:"object",reflectToAttribute:!1},columnGroups:{value:[],type:"array",reflectToAttribute:!1},charting:{value:{appendTo:{value:null,type:"any"},enabled:{value:!1,type:"boolean"},colorScheme:{value:"scheme01",type:"string"},description:{value:"",type:"string"},dialog:{value:{header:{value:"{{message}}",type:"string"},height:{value:400,type:"any"},width:{value:400,type:"any"},left:{value:"center",type:"any"},top:{value:"center",type:"any"},enabled:{value:!0,type:"boolean"},visible:{value:!1,type:"boolean"}},type:"object"},formatSettings:{value:{},type:"object"}},type:"object"},view:{value:"grid",allowedValues:["grid","kanban","card","scheduler","timeline"],type:"string"},currentUser:{value:null,type:"any",reflectToAttribute:!1},dropDownMode:{value:!1,type:"boolean",reflectToAttribute:!1},dataSource:{value:null,type:"any",reflectToAttribute:!1},dataSourceMap:{value:{checklist:"checklist",color:"color",comments:"comments",dueDate:"dueDate",id:"id",priority:"priority",progress:"progress",startDate:"startDate",status:"status",swimlane:"swimlane",tags:"tags",text:"text",description:"description",userId:"userId",history:"history",createdUserId:"createdUserId",createdDate:"createdDate",updatedUserId:"updatedUserId",updatedDate:"updatedDate"},type:"any",reflectToAttribute:!1},dataSourceSettings:{value:{autoGenerateColumns:{value:!1,type:"boolean"},sanitizeHTML:{value:"blackList",allowedValues:["all","blackList","none"],type:"string"},root:{value:"",type:"string"},record:{value:"",type:"string"},keyDataField:{value:"",type:"string"},parentDataField:{value:"",type:"string"},childrenDataField:{value:"",type:"string"},groupBy:{value:[],type:"array"},dataFields:{value:[],type:"array"},mapChar:{value:".",type:"string"},id:{value:"",type:"string"},relations:{value:[],type:"any",reflectToAttribute:!1},virtualDataSource:{value:null,type:"any"},virtualDataSourceOnExpand:{value:null,type:"any"}},type:"object"},formulas:{value:!1,type:"boolean"},highlighted:{value:-1,type:"any"},uploadSettings:{value:{url:{value:"",type:"string",reflectToAttribute:!1},removeUrl:{value:"",type:"string",reflectToAttribute:!1},existsUrl:{value:"",type:"string",reflectToAttribute:!1},name:{value:"userfile[]",type:"string",reflectToAttribute:!1},uploadMaxCount:{value:5,type:"number",reflectToAttribute:!1},uploadMaxSize:{value:2097152,type:"number",reflectToAttribute:!1},data:{value:null,type:"object",reflectToAttribute:!1},onUploadStarted:{value:null,type:"any",reflectToAttribute:!1},onUploadCompleted:{value:null,type:"any",reflectToAttribute:!1},onUploadRemove:{value:null,type:"any",reflectToAttribute:!1},onUploadError:{value:null,type:"any",reflectToAttribute:!1},onChange:{value:null,type:"any",reflectToAttribute:!1},onProgress:{value:null,type:"any",reflectToAttribute:!1},onAbort:{value:null,type:"any",reflectToAttribute:!1},onError:{value:null,type:"any",reflectToAttribute:!1},onSetHeaders:{value:null,type:"any",reflectToAttribute:!1},singleFilePost:{value:!0,type:"boolean",reflectToAttribute:!1},userFiles:{value:[],type:"array",reflectToAttribute:!1}},reflectToAttribute:!1,type:"object"},grouping:{value:{enabled:{value:!1,type:"boolean",reflectToAttribute:!1},allowCollapse:{value:!1,type:"boolean",reflectToAttribute:!1},autoHideGroupColumn:{value:!1,type:"boolean",reflectToAttribute:!1},autoExpandAll:{value:!1,type:"boolean",reflectToAttribute:!1},autoExpandToLevel:{value:0,type:"number",reflectToAttribute:!1},onGroupDefaultExpanded:{value:null,type:"any",reflectToAttribute:!1},expandMode:{value:"buttonClick",type:"string",allowedValues:["buttonClick","rowClick"],reflectToAttribute:!1},renderMode:{type:"string",value:"advanced",allowedValues:["basic","compact","advanced","multipleColumns"]},groupBy:{value:[],type:"array",reflectToAttribute:!1},groupRowHeight:{value:50,type:"any",reflectToAttribute:!1},toggleButtonIndent:{value:27,type:"number",reflectToAttribute:!1},groupIndent:{value:27,type:"number",reflectToAttribute:!1},groupBar:{value:{visible:{value:!1,type:"boolean",reflectToAttribute:!1},allowColumnDragDrop:{value:!0,type:"boolean",reflectToAttribute:!0},allowColumnCloseButtons:{value:!0,type:"boolean",reflectToAttribute:!0}},type:"object"},formatFunction:{value:null,type:"any",reflectToAttribute:!1},summaryRow:{value:{inline:{value:!0,type:"boolean"},visible:{value:!0,type:"boolean"}},type:"object"}},type:"object"},messages:{extend:!0,value:{en:{invalidColumnProperty:'{{elementType}}: Invalid property name "{{propertyName}}" set for Column: "{{type}}"',invalidRowProperty:'{{elementType}}: Invalid property name "{{propertyName}}" set for Row"',invalidCellValue:'Invalid cell value "{{value}}", Validation rule: "{{validationRule}}"',invalidValue:"Invalid value",invalidMinValue:"{{value}} above {{min}} must be filled out",invalidMaxValue:"{{value}} below {{max}} must be filled out",invalidMinLengthValue:"{{value}} is shorter than the minimum length of {{min}} characters",invalidMaxLengthValue:"{{value}} is longer than the maximum length of {{max}} characters",requiredValue:"{{value}} must be filled out",frozenColumns:"{{elementType}}: To Pin/Freeze a column group, all columns within it should be frozen.",frozenRows:"{{elementType}}: To Pin/Freeze a special cell, all rows within it should be frozen.",columnGroups:"{{elementType}}: Please, check the initialization of the smartGrid's columns array. The columns in a column group are expected to be siblings in the columns array.",viewGrid:"Grid",viewKanban:"Kanban",viewCard:"Cards",viewScheduler:"Scheduler",viewTimeline:"Timeline",kanbanNone:"Blank",schedulerDescription:"Which date column would you like to use for this view? Your data would be placed based on the dates in this column.",schedulerDescriptionInfo:"A range of data would be displayed when a start date field has an asosciated due date field.",kanbanDescription:'Start from a project board with columns generated by the "{{column}}" column options.',kanbanNoneDescription:"Create a new column and start from scratch with a completely blank project board. You can add columns and configure settings yourself.",kanbanBasic:"Template",kanbanBasicDescription:'Create a new column and start from a project board with columns for "To do", "in progress" and "Done".',schedulerDateColumn:"Create a new date column",schedulerPromptLabel:"Using date column(s)",schedulerDateRangeColumn:"Create a new date range",uncategorized:"Uncategorized",toDo:"To do",inProgress:"In progress",done:"Done",min:"Min: {{value}}",max:"Max: {{value}} ",sum:"Sum: {{value}} ",avg:"Avg: {{value}} ",cells:"{{value}} cells selected",rows:"{{value}} rows",oneRow:"1 row",unique:"Unique: {{value}}",blank:"Empty: {{value}}",filled:"Filled: {{value}}",summary:"Summary",countSummary:"Count",minSummary:"Min",maxSummary:"Max",avgSummary:"Avg",blankSummary:"Empty",uniqueSummary:"Unique",filledSummary:"Filled",statusSummary:"Status",sumSummary:"Sum",completed:"Tasks Completed: {{value}}",count:"Count: {{value}} ",pagerFirstButton:"First",pagerLastButton:"Last",pagerPreviousButton:"Previous",pagerNextButton:"Next",pagerNavigateToLabel:"Go to:",pagerPageSizeLabel:"Show:",pagerNavigateToInputPlaceholder:"",pagerEllipsis:"...",pagerSummaryString:"of",pagerSummaryPrefix:"of",pagerSummarySuffix:"",columnMenuCustomizeType:"Column settings",columnMenuItemClone:"Clone column",columnMenuItemInsertLeft:"Insert left",columnMenuItemInsertRight:"Insert right",columnMenuItemSortAsc:"Sort {{mode}}",columnMenuItemSortDesc:"Sort {{mode}}",columnMenuItemRemoveSort:"Remove Sort",columnMenuItemFilter:"Filter column",columnMenuItemSort:"Sort column",columnMenuItemRemoveFilter:"Remove Filter",columnMenuItemGroupBy:"Group column",columnMenuItemRemoveGroupBy:"Remove Group",columnMenuItemHide:"Hide column",columnMenuItemShow:"Show column",columnMenuItemDelete:"Delete column",columnResizeTooltip:"width: {{value}}px",rowResizeTooltip:"height: {{value}}px",commandBarAddRow:"Add",commandBarDeleteRow:"Delete row",commandBarBatchRevert:"Revert",commandBarBatchSave:"Save",commandBarFilter:"Filter",commandBarSort:"Sort",commandBarSearch:"Search",commandBarCustomize:"Customize",commandBarGroup:"Group",commandColumnEdit:"Edit",commandColumnDelete:"Delete",commandColumnCancel:"Cancel",commandColumnUpdate:"Update",contextMenuItemDelete:"Delete row",contextMenuItemEditCell:"Edit cell",contextMenuItemEditRow:"Edit row",commandColumnMenu:"",expandRow:"Expand row (Shift + Enter)",expandRowComments:"Expand row and see {{value}} comments",collapseRow:"Collapse row",addNewRow:"Click here to add a new row",addNewRowAlt:"<span>Add new empty row</span> <code>Ctrl</code> + <code>Space</code>",addNewRowAltSmall:"Add new empty row",addNewColumn:"Click here to add a new column",dialogChartHeader:"{{value}} Chart",dialogRowDetailHeader:"Row Id: {{value}}",dialogDescriptionHeader:"Column: {{value}}",dialogRowDetailButtonConfirm:"OK",dialogRowDetailButtonCancel:"CANCEL",dialogEditHeaderDisabled:"Row: {{value}}",dialogEditHeader:"Row: {{value}}",dialogEditHeaderMenu:"Toggle Sidebar",dialogExpandRowHeader:"Edit Record",dialogAddButtonConfirm:"ADD",dialogAddButtonCancel:"CANCEL",dialogEditButtonConfirm:"OK",dialogEditButtonSave:"Save",dialogEditButtonAutoSave:"Auto Save",dialogEditButtonCancel:"Cancel",dialogFilterButtonConfirm:"FILTER",dialogFilterButtonCancel:"CLEAR",dialogDeleteButtonConfirm:"DELETE",dialogDeleteButtonCancel:"CANCEL",dialogEditColumn:"Column: {{value}}",dialogNewColumn:"New column",dialogAddColumn:"Add Column",dialogAddColumnDate:"Choose a date column",dialogAddColumnStatus:"Choose a grouping column",dialogAddColumnStatusDescription:"Represent the status of each record",dialogAddColumnStatusNotes:"Your records will be grouped based on this column",dialogAddHeader:"Add Row",dialogDeleteHeader:"Delete Row",dialogFilterHeader:"Filter by",dialogFilterMinLabel:"Min",dialogFilterMaxLabel:"Max",dialogFileHeader:"File",dialogImageFileHeader:"Image",dialogFileDrop:"or drag and drop file(s) to upload",dialogFileUpload:"Select Files(s) to Upload",dialogFileURL:"You can also provide the URL to a file",dialogFileURLUpload:"Upload",dialogFileLink:"Link (URL)",dialogFileDevice:"My Device",dialogMyFiles:"My Files",dialogMyFilesTitle:"Select files from your already uploaded files.",dialogFileSize:'No file currently added. The "{{value}}" file cannot be uploaded. Maximum file size is {{fileSize}}.',dialogFileCount:'The following files cannot be added "{{files}}". Maximum files allowed is {{fileCount}}.',dialogFileFileUpload:"No files currently selected",dialogAddColumnName:"Name",dialogAddColumnNameInfo:"Name of the column. The name of the column will be displayed in the column header.",dialogAddColumnDescription:"Description",dialogAddColumnDescriptionInfo:"Description of the column. When the description is set, an icon will be displayed in the column header. A tooltip with the description will be displayed when you point at the icon.",dialogAddColumnNamePlaceholder:"Column name (optional)",dialogAddColumnDescriptionPlaceholder:"Describe this column (optional)",dialogAddColumnType:"Type",dialogAddColumnTypeInfo:'Type of the data in the column. Unlike a spreadsheet, Columns have specific "types" that allow you to store rich content in each record. For example, a table can contain records (rows) with images, long texts, checkboxes.',dialogAddColumnTypeText:"Text",dialogAddColumnTypeMultilineText:"Multiline text",dialogAddColumnTypeAIQuery:"AI Button",dialogAddColumnTypeSparklines:"Sparklines",dialogAddColumnAIQuery:"AI Query",dialogAddColumnTypeAIQueryInfo:"Example: Write a short description for an article or choose a column to query by it",dialogAddColumnTypeUUID:"UUID",dialogAddColumnTypeImage:"Image",dialogAddColumnTypeNumber:"Number",dialogAddColumnTypeSelect:"Select",dialogAddColumnTypeMultipleSelect:"Multiple select",dialogAddColumnTypeDate:"Date",dialogAddColumnTypeTime:"Time",dialogAddColumnTypeRating:"Rating",dialogAddColumnTypeDuration:"Duration",dialogAddColumnTypeCheckBox:"CheckBox",dialogAddColumnTypeCreatedTime:"Created time",dialogAddColumnTypeLastUpdatedTime:"Last modified time",dialogAddColumnTypeCreatedBy:"Created by",dialogAddColumnTypeLastUpdatedBy:"Last modified by",dialogAddColumnTypeCollaborator:"User",dialogAddColumnTypeFormula:"Formula",dialogAddColumnTypeFormulaInfo:'Example: COL(Name) & "-" & COL(Price) or IF(COL(Price) * COL(Quantity) > 5, "Yes", "No")',dialogAddColumnTypeSlider:"Slider",dialogAddColumnTypeStatus:"Choose a status column",dialogAddColumnTypeStatusInfo:"Connect with the relevant status column",dialogAddColumnTypeAutoNumber:"Auto number",dialogAddColumnTypeRowLink:"Link to table",dialogAddColumnTypeURL:"URL",dialogAddColumnTypeEmail:"Email",dialogAddColumnTypePassword:"Password",dialogAddColumnTypePhone:"Phone",dialogAddColumnTypeNone:"None",dialogAddColumnTypeStartDate:"Start Date",dialogAddColumnTypeDueDate:"Due Date",dialogAddColumnTypeDueDateSettings:"Set as a deadline",dialogAddColumnTypeDueDateSettingsInfo:"Set a deadline with start date or due date templates.",dialogAddColumnTypeProgress:"Progress",dialogAddColumnTypePriority:"Priority",dialogAddColumnTypeDescription:"Description",dialogAddColumnTypeTags:"Tags",dialogAddColumnTypeName:"Name",dialogAddColumnTypeColor:"Color",dialogAddColumnTypeChecklist:"Checklist",dialogAddColumnTypeAssigned:"Assignee",dialogAddColumnTypeAttachment:"Attachment",dialogAddColumnDateFormat:"Date format",dialogAddColumnDateFormatInfo:"Choose the dates display format",dialogAddColumnDateFormatShort:"Short",dialogAddColumnDateFormatLong:"Long",dialogAddColumnDateFormatEU:"EU",dialogAddColumnDateFormatISO:"ISO",dialogAddColumnDateFormatAS:"AS",dialogAddColumnDateFormatFull:"Full",dialogAddColumnDateFormatSlash:"Slash",dialogAddColumnDateFormatHyphen:"Hyphen",dialogAddColumnDateFormatDot:"Dot",dialogAddColumnTimeFormat:"Time format",dialogAddColumnTimeFormatInfo:"Choose the time display format",dialogAddColumnTimeFormatHour:"hour",dialogAddColumnAllowTimeFormat:"Include a time field",dialogAddColumnCustomDateSeparator:"Set a custom separator",dialogAddColumnNumberFormat:"Number format",dialogAddColumnNumberFormatInfo:"Choose the number display format",dialogAddColumnNumberFormatInteger:"Integer",dialogAddColumnNumberFormatNumber:"Number",dialogAddColumnNumberFormatPercent:"Percent",dialogAddColumnNumberFormatPercentRounded:"Percent(rounded)",dialogAddColumnNumberFormatScientific:"Scientific",dialogAddColumnNumberFormatEngineering:"Engineering",dialogAddColumnNumberFormatAccounting:"Accounting",dialogAddColumnNumberFormatUnit:"Unit",dialogAddColumnNumberFormatUnitInfo:"Units of measurement",dialogAddColumnNumberFormatUnitAcre:"Acre",dialogAddColumnNumberFormatUnitCelsius:"Celsius",dialogAddColumnNumberFormatUnitFahrenheit:"Fahrenheit",dialogAddColumnNumberFormatUnitPercent:"Percent",dialogAddColumnNumberFormatUnitDegree:"Degree",dialogAddColumnNumberFormatUnitMegaByte:"Mega byte",dialogAddColumnNumberFormatUnitCentimeter:"Centimeter",dialogAddColumnNumberFormatUnitMeter:"Meter",dialogAddColumnNumberFormatUnitKilometer:"Kilometer",dialogAddColumnNumberFormatUnitMile:"Mile",dialogAddColumnNumberFormatUnitKilogram:"Kilogram",dialogAddColumnNumberFormatUnitPound:"Pound",dialogAddColumnNumberFormatUnitLiter:"Liter",dialogAddColumnNumberFormatUnitGallon:"Gallon",dialogAddColumnNumberFormatUnitSecond:"Second",dialogAddColumnNumberFormatUnitMinute:"Minute",dialogAddColumnNumberFormatUnitHour:"Hour",dialogAddColumnNumberFormatUnitDay:"Day",dialogAddColumnNumberFormatUnitWeek:"Week",dialogAddColumnNumberFormatUnitMonth:"Month",dialogAddColumnNumberFormatUnitYear:"Year",dialogAddColumnNumberFormatCurrency:"Currency",dialogAddColumnNumberFormatCurrencyRounded:"Currency(rounded)",dialogAddColumnNumberFormatCurrencyInfo:"Choose the currency display format",dialogAddColumnNumberFormatSeparator:"Use 1000 Separator (,)",dialogAddColumnMinLength:"Minimum length",dialogAddColumnMinLengthInfo:"Minimum text length",dialogAddColumnMaxLength:"Maximum length",dialogAddColumnMaxLengthInfo:"Maximum text length",dialogAddColumnMinValue:"Minimum value",dialogAddColumnMinValueInfo:"Minimum number",dialogAddColumnMaxValue:"Maximum value",dialogAddColumnMaxValueInfo:"Maximum number",dialogAddColumnMinDate:"Minimum date",dialogAddColumnMinDateInfo:"Minimum date",dialogAddColumnMaxDate:"Maximum date",dialogAddColumnMaxDateInfo:"Maximum date",dialogAddColumnColorItems:"Color items",dialogAddColumnListItems:"List items",dialogAddColumnLinkListItems:"Choose a table to link to",dialogAddColumnLinkField:"Choose a lookup field",dialogAddColumnLinkFieldMore:"Cascading readonly fields",dialogAddColumnLinkSelect:"Allow linking to multiple rows",dialogAddColumnFormula:"Please enter a formula",dialogAddColumnListItemsError:"You cannot delete an item while in use.",dialogAddColumnDefault:"Default value",dialogAddColumnDefaultDateCurrent:"Current Date",dialogAddColumnDefaultDateSpecific:"Specific Date",dialogAddColumnAlign:"Align",dialogAddColumnAlignLeft:"Left",dialogAddColumnAlignRight:"Right",dialogAddColumnAlignCenter:"Center",dialogAddColumnAlignInfo:"Table cells text alignment",dialogAddColumnResizable:"Resizable",dialogAddColumnResizableInfo:"Select if you want to make the column resizable",dialogAddColumnRequired:"Required",dialogAddColumnRequiredInfo:"Select if you want to make the column required",dialogAddColumnSortable:"Sortable",dialogAddColumnSortableInfo:"Select if you want to sort by this column",dialogAddColumnFilterable:"Filterable",dialogAddColumnFilterableInfo:"Select if you want to filter by this column",dialogAddColumnEditable:"Editable",dialogAddColumnEditableInfo:"Select if you want to edit by this column",dialogAddColumnMultipleCollaborators:"Multiple Collaborators",dialogAddColumnMultipleCollaboratorsInfo:"Select if you want to allow multiple collaborators",dialogAddColumnCheckItems:"Show Checkbox",dialogAddColumnFormatting:"Rich Formatting",priority_low:"Low",priority_average:"Average",priority_high:"High",priority_critical:"Critical",bold:"Bold",fontStyle:"Font Style",italic:"Italic",send:"Send",copy:"copy",status:"Status",underline:"Underline",comments:"Comments",comment:"Comment",commentPlaceholder:"Leave a comment",noComments:"Leave a comment and collaborate with your team.",guestUser:"Guest",background:"Background",starred:"Starred",resetFormat:"Reset Format",notStarred:"Not starred",color:"Color",coloredItems:"Colored items",conditionalFormatting:"Conditional Formatting",groupBarLabel:"Drag a column header here to group by that column",dialogDeleteContent:"Are you sure you want to delete this row?",detailsTab:"Format",commentsTab:"Comments",historyTab:"History",historyEvent:"Event",historyAuthor:"Author",historyDetails:"Details",range:"Changed {{column}} from {{oldValue}} to {{newValue}}",nullRange:"Changed {{column}} to {{newValue}}",rowCreated:"Row Created",propertyUpdated:"{{value}} updated",propertyRemoved:"{{value}} removed",dropImages:"Drop images here",addImages:"Add images",dropFiles:"Drop files here",addFiles:"Add files",unassigned:"Unassigned",historyDate:"Date",copyURL:"Copy row URL",calendar:{"/":"/",":":":",firstDay:0,days:{names:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],namesAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],namesShort:["Su","Mo","Tu","We","Th","Fr","Sa"]},months:{names:["January","February","March","April","May","June","July","August","September","October","November","December",""],namesAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""]},AM:["AM","am","AM"],PM:["PM","pm","PM"],eras:[{name:"A.D.",start:null,offset:0}],currencySymbol:"$",currency:"USD",currencySymbolPosition:"before",decimalSeparator:".",thousandsSeparator:","},CONTAINS:"Contains",DOES_NOT_CONTAIN:"Does not contain",ENDS_WITH:"Ends with",EQUAL:"Equal",GREATER_THAN:"Greater than",GREATER_THAN_OR_EQUAL:"Greater than or equal",LESS_THAN:"Less than",LESS_THAN_OR_EQUAL:"Less than or equal",NOT_EQUAL:"Not equal",RANGE:"Range",CLEAR_FILTER:"Clear Filter",STARTS_WITH:"Starts with",addFilter:"+ Add filter",and:"And",apply:"Apply",applyOnce:"Apply once",booleanFirst:"☐",booleanLast:"☑",cancel:"Cancel",CONTAINS_CASE_SENSITIVE:"Contains (case sensitive)",dateFirst:"1",dateLast:"9",DOES_NOT_CONTAIN_CASE_SENSITIVE:"does not contain (case sensitive)",EMPTY:"empty",ENDS_WITH_CASE_SENSITIVE:"ends with (case sensitive)",EQUAL_CASE_SENSITIVE:"equal (case sensitive)",filter:"Filter",customize:"Hide columns",customizeOne:"1 hidden column",customizeHidden:"{{n}} hidden columns",filteredByMultiple:"{{n}} filters",filteredByOne:"1 filter",filterValuePlaceholder:"Value",find:"Find a field",findInView:"Find in view",firstBy:"Sort by",found:"{{nth}} of {{n}}",from:"from",noFilters:"No filters applied",noResults:"No results",noSorting:"No sorting applied",noOptions:"No options",NOT_EMPTY:"not empty",NOT_NULL:"not null",NULL:"null",numberFirst:"1",numberLast:"9",ok:"OK",or:"Or",pickAnother:"Pick another field to sort by",maintainSort:"Maintain sort",sort:"Sort",group:"Group",sortedByMultiple:"Sorted by {{n}} columns",sortedByOne:"Sorted by 1 column",STARTS_WITH_CASE_SENSITIVE:"starts with (case sensitive)",stringFirst:"A",stringLast:"Z",thenBy:"then by",where:"Where",collapseAll:"Collapse all",expandAll:"Expand all",noGrouping:"No grouping",groupedByMultiple:"{{n}} groups",groupedByOne:"1 group",groupedBy:"Grouped by {{column}}",deleteByMultiple:"Delete {{n}} rows",deleteByOne:"Delete 1 row",download:"Download",firstByGroup:"Group by",expandRecord:"Expand row",expandCell:"Expand cell",pickAnotherGroupBy:"Pick another field to group by",add:"Add condition",all:"All columns",between:"Between",close:"Close",column:"Column:",condition:"Condition:",equal:"equal",fontFamily:"Font family:",fontSize:"Font size:",format:"Format:",greaterThan:"greater than",highlight:"Highlight",lessThan:"less than",notEqual:"not equal",remove:"Remove condition",secondValue:"Second value:",text:"Text",value:"Value:",addCondition:"Add Condition",addGroup:"Add Group",blanks:"(Blanks)",clear:"Clear",contains:"contains",containsCaseSensitive:"contains (case sensitive)",dateTabLabel:"DATE",doesNotContain:"does not contain",doesNotContainCaseSensitive:"does not contain (case sensitive)",empty:"empty",endsWith:"ends with",endsWithCaseSensitive:"ends with (case sensitive)",equalCaseSensitive:"equal (case sensitive)",greaterThanOrEqual:"greater than or equal",lessThanOrEqual:"less than or equal",mismatchedProperties:'smartFilterPanel: The "filterType" and the data type of the selected "dataField" are mismatched.',missingProperty:'smartFilterPanel: When mode is \'excel\', either "data" and "dataField" or "dataSource" of type Array have to be set.',notEmpty:"not empty",notNull:"not null",null:"null ",placeholderBoolean:"Select value",placeholderDate:"Enter date",placeholderNumber:"Enter number",placeholderTime:"Enter time",placeholderValue:"Enter value",selectAll:"(Select All)",showRows:"Show rows where:",startsWith:"starts with",startsWithCaseSensitive:"starts with (case sensitive)",matchCase:"Match Case",timeTabLabel:"TIME",today:"Today",tomorrow:"Tomorrow",yesterday:"Yesterday",formatColumn:"Format Column",formating:"Colors",formatingByMultiple:"{{n}} Colors",formatingOne:"1 color",reset:"Reset",filteredRecords:"All rows are filtered",duplicateCells:"Clone column cells and settings",duplicateSettings:"Clone column settings",views:"Views",createView:"New View",newGrid:"Grid",newKanban:"Kanban",newCard:"Cards",newScheduler:"Scheduler",newTimeline:"Timeline",layout:"Layout",settings:"Create view",viewNamePlaceholder:"View name",view:"View",noViews:"Found no views",kanbanView:"View your records as cards on a Kanban board",gridView:"View your records in a Table",cardView:"View your records in a Card view",schedulerView:"View your records in a Scheduler view",timelineView:"View your records in a Timeline view",days:"{{value}}d",daysOverdue:"{{value}} days overdue",daysLeft:"{{value}} days left",true:"true",false:"false",TOMORROW:"Tomorrow",TODAY:"Today",YESTERDAY:"Yesterday",NEXT_WEEK:"Next week",THIS_WEEK:"This week",LAST_WEEK:"Last week",NEXT_MONTH:"Next month",THIS_MONTH:"This month",LAST_MONTH:"Last month",hideHiddenColumns:"Hide {{value}} hidden columns",showHiddenColumns:"Show {{value}} hidden columns",less:"Less",more:"More",conditions:"Conditions",colorsSingleSelect:"Which single select field should the row be colored by?",colorRows:"Color rows when they match the conditions",colorSelect:"Color rows the same as a single select value",colorLeftBorderLabel:"Left border",colorRowLabel:"Row",colorCellLabel:"Cell",colorLeftBorder:"Color the left border of a row",colorRow:"Color the background of a row",colorCell:"Color the background of a cell",loadingIndicatorPlaceholder:"Loading...",dropDownPlaceholder:"Please select...",placeholder:"No Rows",pieChart:"Pie",columnChart:"Column",barChart:"Bar",stackedChart:"Stacked",lineChart:"Line",projectStatus:"Project Status",reviewStatus:"Review Status",taskStatus:"Task Status",priority:"Priority",size:"Size",yesNo:"Yes/No",notStarted:"Not Started",underReview:"Under review",approved:"Approved",blocked:"Blocked",completedStatus:"Completed",generate:"Generate",aiPrompt:"Enter your prompt for the AI:"}},type:"object"},onCellValue:{value:null,type:"any",reflectToAttribute:!1},onCellEditRequest:{value:null,type:"any",reflectToAttribute:!1},onCellUpdate:{value:null,type:"any",reflectToAttribute:!1},onCellRender:{value:null,type:"any",reflectToAttribute:!1},onBeforeInit:{value:null,type:"any",reflectToAttribute:!1},onInit:{value:null,type:"any",reflectToAttribute:!1},onAfterInit:{value:null,type:"any",reflectToAttribute:!1},onKey:{value:null,type:"any",reflectToAttribute:!1},onKeyUp:{value:null,type:"any",reflectToAttribute:!1},onRender:{value:null,type:"any",reflectToAttribute:!1},onLoad:{value:null,type:"any",reflectToAttribute:!1},onChartInit:{value:null,type:"any",reflectToAttribute:!1},onComment:{value:null,type:"any",reflectToAttribute:!1},onRowInit:{value:null,type:"any",reflectToAttribute:!1},onRowClass:{value:null,type:"any",reflectToAttribute:!1},onRowChange:{value:null,type:"any",reflectToAttribute:!1},onRowDetailInit:{value:null,type:"any",reflectToAttribute:!1},onRowDetailUpdated:{value:null,type:"any",reflectToAttribute:!1},onRowInserted:{value:null,type:"any",reflectToAttribute:!1},onRowRemoved:{value:null,type:"any",reflectToAttribute:!1},onRowUpdate:{value:null,type:"any",reflectToAttribute:!1},onRowUpdated:{value:null,type:"any",reflectToAttribute:!1},onRowStarred:{value:null,type:"any",reflectToAttribute:!1},onRowHistory:{value:null,type:"any",reflectToAttribute:!1},onRowStyle:{value:null,type:"any",reflectToAttribute:!1},onRowResize:{value:null,type:"any",reflectToAttribute:!1},onColumnInit:{value:null,type:"any",reflectToAttribute:!1},onColumnInserted:{value:null,type:"any",reflectToAttribute:!1},onColumnRemoved:{value:null,type:"any",reflectToAttribute:!1},onColumnResize:{value:null,type:"any",reflectToAttribute:!1},onColumnReorder:{value:null,type:"any",reflectToAttribute:!1},onColumnSummaryChange:{value:null,type:"any",reflectToAttribute:!1},onColumnUpdated:{value:null,type:"any",reflectToAttribute:!1},onColumnClone:{value:null,type:"any",reflectToAttribute:!1},onColumnChange:{value:null,type:"any",reflectToAttribute:!1},onCommand:{value:null,reflectToAttribute:!1,type:"any"},onViewInit:{value:null,type:"any",reflectToAttribute:!1},filtering:{value:{enabled:{value:!1,type:"boolean"},operator:{value:"and",type:"string"},filter:{value:[],type:"array",reflectToAttribute:!1},filterRow:{value:{visible:{value:!1,type:"boolean"},menuVisible:{value:!1,type:"boolean"},applyMode:{value:"auto",type:"string",allowedValues:["auto","click"]},autoApplyModeDelay:{value:800,type:"number"}},type:"object"},filterMenu:{value:{visible:{value:!0,type:"boolean"},buttons:{value:["cancel","clear","filter"],type:"array"},dataSource:{value:null,type:"any"},width:{value:250,type:"number"},height:{value:200,type:"number"},mode:{value:"default",allowedValues:["default","excel"],type:"string"},messages:{value:null,type:"object"}},type:"object"}},type:"object"},editing:{value:{allowRowHeaderEdit:{value:!1,type:"boolean"},allowColumnHeaderEdit:{value:!1,type:"boolean"},autoUpdateFilterAndSort:{value:!0,type:"boolean"},active:{value:!1,readonly:!0,type:"boolean"},enabled:{value:!1,type:"boolean"},batch:{value:!1,type:"boolean"},readOnlyEdit:{value:!1,type:"boolean"},action:{value:"click",type:"string",allowedValues:["none","click","doubleClick"]},commandKeys:{value:{commandKeyCancel:{value:{command:"commandKeyCancelCommand",key:"Escape"},type:"object"},commandKeyUpdate:{value:{command:"commandKeyUpdateCommand",key:"Enter | Tab"},type:"object"}},type:"object"},commandBar:{value:{visible:{value:!1,type:"boolean"},position:{value:"near",allowedValues:["near","far","both"],type:"string"},displayMode:{value:"labelAndIcon",allowedValues:["label","icon","labelAndIcon"],type:"string"},dataSource:{value:{commandBarAddRow:{value:{command:{value:"commandBarAddRowCommand",type:"any"},icon:{value:"smart-icon-plus",type:"string"},label:{value:"{{messages}}",type:"string"},visible:{value:!1,type:"any"}},type:"object"},commandBarDeleteRow:{value:{command:{value:"commandBarDeleteRowCommand",type:"any"},icon:{value:"smart-icon-delete",type:"string"},label:{value:"{{messages}}",type:"string"},visible:{value:!1,type:"any"}},type:"object"},commandBarBatchSave:{value:{command:{value:"commandBarBatchSaveCommand",type:"any"},icon:{value:"smart-icon-ok-squared",type:"string"},label:{value:"{{messages}}",type:"string"},visible:{value:!0,type:"any"}},type:"object"},commandBarBatchRevert:{value:{command:{value:"commandBarBatchRevertCommand",type:"any"},icon:{value:"smart-icon-reload",type:"string"},label:{value:"{{messages}}",type:"string"},visible:{value:!0,type:"any"}},type:"object"},commandBarCustom:{value:{command:{value:"",type:"any"},icon:{value:"smart-icon-ellipsis-vert",type:"string"},label:{value:"",type:"string"},visible:{value:!1,type:"any"}},type:"object"}},type:"object"}},type:"object"},commandColumn:{value:{visible:{value:!1,type:"boolean"},inline:{value:!1,type:"boolean"},position:{value:"far",allowedValues:["near","far"],type:"string"},displayMode:{value:"icon",allowedValues:["label","icon","labelAndIcon"],type:"string"},dataSource:{value:{commandColumnMenu:{value:{command:{value:"commandColumnMenuCommand",type:"any"},icon:{value:"smart-icon-menu",type:"string"},label:{value:"{{messages}}",type:"string"},visible:{value:!1,type:"any"}},type:"object"},commandColumnEdit:{value:{command:{value:"commandColumnEditCommand",type:"any"},icon:{value:"smart-icon-mode-edit",type:"string"},label:{value:"{{messages}}",type:"string"},visible:{value:"auto",type:"any"}},type:"object"},commandColumnDelete:{value:{command:{value:"commandColumnDeleteCommand",type:"any"},icon:{value:"smart-icon-delete",type:"string"},label:{value:"{{messages}}",type:"string"},visible:{value:!0,type:"any"}},type:"object"},commandColumnUpdate:{value:{command:{value:"commandColumnUpdateCommand",type:"any"},icon:{value:"smart-icon-ok-squared",type:"string"},label:{value:"{{messages}}",type:"string"},visible:{value:"auto",type:"any"}},type:"object"},commandColumnCancel:{value:{command:{value:"commandColumnCancelCommand",type:"any"},icon:{value:"smart-icon-cancel-circled",type:"string"},label:{value:"{{messages}}",type:"string"},visible:{value:"auto",type:"any"}},type:"object"},commandColumnRowMenu:{value:{command:{value:"commandColumnRowMenuCommand",type:"any",reflectToAttribute:!1},icon:{value:"smart-icon-ellipsis-vert",type:"string"},label:{value:"{{messages}}",type:"string"},visible:{value:!1,type:"any"}},type:"object"},commandColumnCustom:{value:{command:{value:"",type:"any",reflectToAttribute:!1},icon:{value:"smart-icon-ellipsis-vert",type:"string"},label:{value:"",type:"string"},visible:{value:!1,type:"any"}},type:"object"}},type:"object"},width:{value:null,type:"number?"}},reflectToAttribute:!1,type:"object"},mode:{value:"cell",allowedValues:["cell","row"],type:"string"},addNewColumn:{value:{visible:{value:!1,type:"boolean"}},type:"object"},addNewRow:{value:{position:{value:"both",allowedValues:["near","far","both"],type:"string"},visible:{value:!1,type:"boolean"},autoEdit:{value:!0,type:"boolean"},autoCreate:{value:!1,type:"boolean"},autoSave:{value:!0,type:"boolean"},label:{value:"{{message}}",type:"string"},displayMode:{value:"row",allowedValues:["row","button"],type:"string"}},type:"object"},dialog:{value:{header:{value:"{{message}}",type:"string"},height:{value:"auto",type:"any"},width:{value:"auto",type:"any"},left:{value:"center",type:"any"},top:{value:"center",type:"any"},enabled:{value:!1,type:"boolean"},visible:{value:!1,type:"boolean"}},type:"object"},addDialog:{value:{header:{value:"{{message}}",type:"string"},height:{value:"auto",type:"any"},width:{value:"auto",type:"any"},left:{value:"center",type:"any"},top:{value:"center",type:"any"},enabled:{value:!1,type:"boolean"},visible:{value:!1,type:"boolean"}},type:"object"},addColumnDialog:{value:{header:{value:"{{message}}",type:"string"},height:{value:"auto",type:"any"},width:{value:430,type:"any"},left:{value:"center",type:"any"},top:{value:"center",type:"any"},enabled:{value:!1,type:"boolean"},visible:{value:!1,type:"boolean"}},type:"object"},deleteDialog:{value:{header:{value:"{{message}}",type:"string"},height:{value:"auto",type:"any"},width:{value:"auto",type:"any"},left:{value:"center",type:"any"},top:{value:"center",type:"any"},enabled:{value:!1,type:"boolean"},visible:{value:!1,type:"boolean"}},type:"object"}},type:"object"},paging:{value:{enabled:{value:!1,type:"boolean"},spinner:{value:{enabled:{value:!1,type:"boolean"},step:{value:1,type:"number"}},type:"object"},pageHierarchySize:{value:2,type:"int"},pageSize:{value:10,type:"int"},pageIndex:{value:0,type:"int",validator:"pageIndexValidator"}},type:"object"},pager:{value:{autoEllipsis:{value:"both",allowedValues:["none","before","after","both"],type:"string"},position:{value:"far",allowedValues:["near","far","both"],type:"string"},template:{value:"",type:"string"},pageSizeSelector:{value:{visible:{value:!1,type:"boolean"},dataSource:{value:[10,20,50],type:"object"},position:{value:"far",allowedValues:["near","far"],type:"string"}},type:"object"},summary:{value:{position:{value:"far",allowedValues:["near","far"],type:"string"},visible:{value:!1,type:"boolean"}},type:"object"},navigationButtons:{value:{position:{value:"both",allowedValues:["near","far","both"],type:"string"},prevNextButtons:{value:{visible:{value:!0,type:"boolean"}},type:"object"},firstLastButtons:{value:{visible:{value:!0,type:"boolean"}},type:"object"},labels:{value:{visible:{value:!1,type:"boolean"}},type:"object"}},type:"object"},navigationInput:{value:{position:{value:"far",allowedValues:["near","far"],type:"string"},visible:{value:!1,type:"boolean"}},type:"object"},pageIndexSelectors:{value:{visible:{value:!0,type:"boolean"},dataSource:{value:10,type:"any"}},type:"object"},visible:{value:!1,type:"boolean"}},type:"object",reflectToAttribute:!1},rowDetail:{value:{enabled:{value:!1,type:"boolean"},inline:{value:!1,type:"boolean"},height:{value:200,type:"number"},position:{value:"near",allowedValues:["near","far"],type:"string"},template:{value:"",type:"any",reflectToAttribute:!1},visible:{value:!0,type:"boolean"},dialog:{value:{header:{value:"{{message}}",type:"string"},height:{value:300,type:"any"},width:{value:360,type:"any"},left:{value:"center",type:"any"},top:{value:"center",type:"any"},enabled:{value:!1,type:"boolean"},visible:{value:!1,type:"boolean"}},type:"object"}},type:"object"},rowCSSRules:{value:null,type:"any"},summaryRow:{value:{position:{value:"far",allowedValues:["near","far"],type:"string"},visible:{value:!1,type:"boolean"},editing:{value:!1,type:"boolean"},template:{value:"",type:"string"}},type:"object"},scrolling:{value:"physical",allowedValues:["physical","virtual","infinite","deferred"],type:"string"},columnHeader:{value:{visible:{value:!0,type:"boolean"}},type:"object"},groupHeader:{value:{visible:{value:!1,type:"boolean"},template:{value:"",type:"string"}},type:"object"},header:{value:{visible:{value:!1,type:"boolean"},template:{value:"",type:"any"},appendTo:{value:"",type:"any"},buttons:{value:["columns","filter","group","sort","format","search"],type:"array"},searchCommand:{value:"search",allowedValues:["search","filter"],type:"string"},customButton:{value:{command:{value:null,type:"any",reflectToAttribute:!1},enabled:{value:!0,type:"boolean"},visible:{value:!1,type:"boolean"},icon:{value:"smart-icon-settings",type:"string"},label:{value:"",type:"string"}},type:"object",reflectToAttribute:!1},onInit:{value:null,reflectToAttribute:!1,type:"any"}},type:"object"},footer:{value:{visible:{value:!1,type:"boolean"},template:{value:"",type:"any"}},type:"object"},stateSettings:{value:{enabled:{value:!0,type:"boolean",reflectToAttribute:!1},current:{value:"",type:"string",reflectToAttribute:!1},storage:{value:null,type:"any",reflectToAttribute:!1},autoSave:{value:!1,type:"boolean",reflectToAttribute:!1},autoLoad:{value:!1,type:"boolean",reflectToAttribute:!1},allowLocalStorage:{value:!0,type:"boolean",reflectToAttribute:!1},options:{value:[],type:"array",reflectToAttribute:!1},onStateChange:{value:null,type:"any",reflectToAttribute:!1}},type:"object",reflectToAttribute:!1},checkBoxes:{value:{visible:{value:!1,type:"boolean"},hasThreeStates:{value:!1,type:"boolean"}},type:"object"},selection:{value:{enabled:{value:!1,type:"boolean"},allowRowHeaderSelection:{value:!1,type:"boolean"},allowColumnHeaderSelection:{value:!1,type:"boolean"},allowRowSelection:{value:!0,type:"boolean"},allowCellSelection:{value:!1,type:"boolean"},allowDragSelection:{value:!0,type:"boolean"},allowDragSelectionAutoScroll:{value:!0,type:"boolean"},allowCellDragSelectionHandle:{value:!0,type:"boolean"},allowCellDragDropSelectionHandle:{value:!0,type:"boolean"},allowCellDragSelectionAutoFill:{value:!0,type:"boolean"},selectAllMode:{value:"page",allowedValues:["none","page","all"],type:"string"},mode:{value:"many",type:"string",allowedValues:["one","many","extended"]},action:{value:"click",type:"string",allowedValues:["none","click","doubleClick"]},checkBoxes:{value:{enabled:{value:!1,type:"boolean"},autoShow:{value:!1,type:"boolean"},action:{value:"click",type:"string",allowedValues:["none","click","doubleClick"]},selectAllMode:{value:"page",allowedValues:["none","page","all"],type:"string"},position:{value:"near",allowedValues:["near","far"],type:"string"}},type:"object"},selected:{value:"",type:"string"},tabKeyBehavior:{value:"default",allowedValues:["none","default"],type:"string"},defaultSelection:{value:!1,type:"boolean"}},type:"object"},sorting:{value:{enabled:{value:!1,type:"boolean"},sort:{value:[],type:"array"},mode:{value:"one",allowedValues:["one","many"],type:"string"},maintainSort:{value:!0,type:"boolean"},commandKey:{value:"",allowedValues:["","Shift","Control","Alt"],type:"string"},sortToggleThreeStates:{value:!0,type:"boolean"},sortToggleOnClick:{value:!0,type:"boolean"},sortToggleOnClickAndCommandKey:{value:!1,type:"boolean"}},type:"object"},storeHistory:{value:!1,type:"boolean"},storeHistoryItems:{value:20,type:"number"},users:{value:[],type:"array",reflectToAttribute:!1},virtualModeCachedRowsCount:{value:100,type:"int"}}}static get requires(){return{}}static get styleUrls(){return["smart.menu.css","smart.filterpanel.css","smart.pager.css","smart.grid.css","smart.textbox.css"]}template(){return"<div class='smart-container'id='container' disabled='[[disabled]]' role='grid'>\n <div id='header' role=\"toolbar\" class='smart-grid-header smart-hidden'>\n </div>\n <div id='groupHeader' role=\"presentation\" class='smart-grid-group-header smart-hidden'></div>\n <div id='headerPager' top class='smart-grid-pager smart-hidden'></div>\n <div id='headerCommandBar' header top class='smart-grid-header smart-grid-command-bar smart-hidden'></div>\n <div id='content' class='smart-grid-content'>\n <div id='columnHeader' role=\"rowgroup\" class='smart-grid-column-header'>\n <div id='columnNearContainer' role=\"row\" class='near smart-hidden smart-grid-column-header-cell-container'>\n </div>\n <div id='columnContainer' role=\"row\" class='center smart-grid-column-header-cell-container'>\n </div>\n <div id='columnFarContainer' role=\"row\" class='far smart-hidden smart-grid-column-header-cell-container'>\n </div>\n </div>\n <div id='scrollView' role=\"rowgroup\" class ='smart-grid-scroll-view'>\n <div id='rowNearContainer' role=\"presentation\" class='near smart-hidden smart-grid-row-container'>\n </div>\n <div id='rowContainer' role=\"presentation\" class='center smart-grid-row-container'>\n </div>\n <div id='rowFarContainer' role=\"presentation\" class='far smart-hidden smart-grid-row-container'>\n </div>\n <div id='placeholder' class ='smart-hidden smart-placeholder smart-grid-placeholder'></div>\n <smart-scroll-bar right-to-left=\"[[rightToLeft]]\" theme=\"[[theme]]\" id='verticalScrollBar' class='smart-grid-scroll-bar' wait disabled='[[disabled]]' orientation='vertical'></smart-scroll-bar>\n <smart-scroll-bar right-to-left=\"[[rightToLeft]]\" theme=\"[[theme]]\" id='horizontalScrollBar' class='smart-grid-scroll-bar' wait disabled='[[disabled]]'></smart-scroll-bar>\n </div>\n <div id='filterFooter' class='smart-grid-filter-footer smart-hidden'></div>\n </div>\n <div class=\"smart-grid-view-content smart-hidden\" id=\"viewContent\"></div>\n <div viewbar class=\"smart-grid-view-bar smart-hidden\" id=\"viewBar\"></div>\n <div id='loadingIndicatorContainer' class='smart-loader-container'>\n <span id='loadingIndicator' class='smart-grid-loader smart-loader'></span>\n <span id='loadingIndicatorPlaceholder' class ='smart-loader-label smart-hidden'></span>\n </div>\n <div id='footerCommandBar' footer class='smart-grid-footer smart-grid-command-bar smart-hidden'></div>\n <div id='footerPager' class='smart-grid-pager smart-hidden'></div>\n <div id='footer' class='smart-grid-footer smart-hidden'></div>\n </div>"}static get listeners(){return{focus:"_focusHandler",blur:"_blurHandler",wheel:"_mouseWheelHandler","document.up":"_upHandler","document.down":"_downHandler","document.move":"_moveHandler","document.scroll":"_scrollHandler",keydown:"_keyDownHandler",keyup:"_keyUpHandler",resize:"_resizeHandler","header.click":"_headerClickHandler","columnHeader.down":"_columnDownHandler","columnHeader.click":"_columnClickHandler","columnHeader.move":"_columnMoveHandler","columnHeader.mouseleave":"_columnMouseLeaveHandler","rowNearContainer.down":"_rowDownHandler","rowContainer.down":"_rowDownHandler","rowFarContainer.down":"_rowDownHandler","container.selectstart":"_selectStartHandler",styleChanged:"_styleChangedHandler",swipeleft:"_swipeLeftHandler",swiperight:"_swipeRightHandler",contextmenu:"_contextMenuHandler","document.paste":"_clipboardPasteHandler"}}_clipboardPasteHandler(e){if("paste"===e.type){const t=this;if(document.activeElement!==t)return;if(t._selection&&t._selection.focusedCell){const o=t._selection.focusedCell.id,l=t._selection.focusedCell.dataField,a=t.columnByDataField[l];if(!a)return;if(a&&("image"===a.template||"attachment"===a.template)){e.preventDefault();let a=(e.clipboardData||e.originalEvent.clipboardData).items,n=null,i=0,r=0,s=[];for(let e=0;e<a.length;e++)if(0===a[e].type.indexOf("image")&&(n=a[e].getAsFile(),i++,null!==n)){let e={label:n.name,size:n.size},a=new FileReader;a.onload=function(a){r++;const n=a.target.result;e.value=n;let d=!1;for(let o=0;o<t.uploadSettings.userFiles.length;o++){const l=t.uploadSettings.userFiles[o];if(l.name===e.label||l.label===e.label){d=!0;break}}if(d||t.uploadSettings.userFiles.push(e),s.push(e),r===i){let e=t.getCellValue(o,l);e||(e=[]),"string"==typeof e&&(e=JSON.parse(e)),e=[...e,...s],t.setCellValue(o,l,e)}},a.readAsDataURL(n)}}}}}_contextMenuHandler(e){if(this.contextMenu.enabled)return e.preventDefault(),e.stopPropagation(),!1}get _tabindex(){return this.disabled||this.unfocusable?"":' tabindex="0"'}pageIndexValidator(e,t){const o=this;if(t<0)return 0;if(o.dataSource){if(o.dataSource.virtualDataSource)return t;const e=Math.ceil(o.dataSource.length/o._pageSize);if(t>e-1)return e-1}}_offsetTop(e){return e?e.offsetTop+this._offsetTop(e.offsetParent):0}_offsetLeft(e){return e?e.offsetLeft+this._offsetLeft(e.offsetParent):0}offset(e){return{left:this._offsetLeft(e),top:this._offsetTop(e)}}getBoundingRect(e){const t=this;let o=window.pageXOffset,l=window.pageYOffset,a=e.getBoundingClientRect();if(e!==document.body){let a=e.parentNode;for(;a!==document.body&&a;){a&&(o+=a.scrollLeft,l+=a.scrollTop);let e=a;a?(a=a.parentNode,t.enableShadowDOM&&a===t.shadowRoot?a=t:!t.isInShadowDOM||a!==t.getRootNode()&&e!==t.getRootNode()||(a=t.getRootNode().host)):t.isInShadowDOM&&(a=t.getRootNode().host)}}return{bottom:a.bottom+l,height:a.height,left:a.left+o,right:a.right+o,top:a.top+l,width:a.width}}_downHandler(e){this._downTarget=e.originalEvent.target}_removeCellContentPopup(){const e=this;e._cellContentPopup&&(e._cellContentPopup.remove(),e._cellContentPopup=null),e._cellContentPopupTimer&&(clearTimeout(e._cellContentPopupTimer),e._cellContentPopupTimer=null)}_upHandler(e){const t=this,o=t.getBoundingRect(t);super._upHandler(),t._tapTimer&&clearTimeout(t._tapTimer);const l=()=>{t.editing.isEditing&&!t.editing.dialog.enabled&&setTimeout((()=>{if(!e.defaultPrevented){if(t.editing.editCell&&t.editing.editCell.editor.instance){const o=t.editing.editCell.editor.instance;if(o.element&&o.element.hasAttribute("aria-owns")){const t=o.element.getAttribute("aria-owns"),l=document.getElementById(t);if(l&&l.contains(e.originalEvent.target))return}if(t.editing.editCell.editor.instance.blur(e),e.defaultPrevented)return}t.isAttached&&t.endEdit()}}),50)};if(e.originalEvent&&(e.originalEvent.target===t.$.scrollView&&t._downTarget===e.originalEvent.target&&l(),e.originalEvent.target.closest(".smart-grid-dialog")))t._dialogDragDetails&&(t._dialogDragDetails.started=!1);else{if(e.pageX<o.left||e.pageX>o.right||e.pageY<o.top||e.pageY>o.bottom){let o=!1,a=e.originalEvent.target;for(;a;){if(a=a.parentNode,a===t){o=!0;break}if(t.dropDownMode&&t.$.dropDownElement===a){o=!0;break}}if(o)return t._dragSelectionEnd(e),t._endResize(e),void t._endDrag(e);if(t._summaryRowDialog&&t._summaryRowDialog.classList.contains("open")&&t._summaryRowDialog.confirm(),t._inputOverlay&&(t._inputOverlay.classList.remove("smart-input-overlay-on"),setTimeout((()=>{t._inputOverlay&&(t._inputOverlay.parentNode&&t._inputOverlay.parentNode.removeChild(t._inputOverlay),t._inputOverlay=null)}),t.behavior.doubleClickTimingDelay)),l(),t.closeDropDown(),t.menu){let o,l,a,n;if(t.enableShadowDOM||t.isInShadowDOM?(o=e.originalEvent.composedPath()[0],l=function(){let e=o.getRootNode().host;for(;e;){if(e===t)return e;e=e.getRootNode().host}}(),a=t.menu.contains(o)||t.menu.firstElementChild.shadowRoot.contains(o),n=t.menu.firstElementChild.shadowRoot):(o=e.originalEvent.target,l=t.contains(o),a=t.menu.contains(o),n=t.menu),!l&&!a){const e=n.querySelectorAll("smart-drop-down-list"),l=n.querySelectorAll("smart-date-time-picker"),a=n.querySelectorAll("smart-date-input"),i=n.querySelectorAll("smart-input");for(let t=0;t<e.length;t++)if(e[t].$.dropDownContainer.contains(o))return;for(let e=0;e<l.length;e++)if(l[e].$.dropDownContainer.contains(o))return;for(let e=0;e<a.length;e++)if(a[e].$.scrollView.contains(o))return;for(let e=0;e<i.length;e++)if(i[e].$.scrollView.contains(o))return;return void t.closeMenu()}}}t._summaryRowDialog&&t._summaryRowDialog.classList.contains("open")&&t._summaryRowDialog.confirm(),t._dragSelectionEnd(e),t._endResize(e),t._endDrag(e)}}_nextColumn(e){const t=this;for(let o=0;o<t.viewColumns.length;o++){const l=t.viewColumns[o];if(l.visibleIndex===e.visibleIndex+1)return l}return null}_nextRow(e){const t=this._recyclingRows,o=t.indexOf(e);return o>=0?t[o+1]:null}_moveHandler(e){const t=this;if(t.isInitialized&&t._selection){if(t.selection.enabled&&t.selection.allowDragSelection&&!t.editing.isEditing&&(!t._selection.selectionRect||t._selection.selectionRect&&!t._selection.selectionRect.captured)&&(!0!==t._mobile&&t._dragSelection(e),e.originalEvent)){const o=e.originalEvent.target.closest?e.originalEvent.target:void 0;Smart.Utilities.Core.isMobile&&o&&o.closest("smart-grid")===t&&e.originalEvent.preventDefault()}t.isScrolling||("none"===t.behavior.columnResizeMode||t.classList.contains("smart-grid-row-resize-mode")||t._columnMoveResizeHandler(e),"none"===t.behavior.rowResizeMode||t.classList.contains("smart-grid-column-resize-mode")||t._rowMoveResizeHandler(e),t._drag(e))}}_hideActionButtons(){const e=this;if(e._columnElements){for(let t=0;t<e._columnElements.length;t++){const o=e._columnElements[t],l=o.column;l&&l.autoShowActionButton&&o._hideActionButton()}for(let t=0;t<e._frozenNearColumns.length;t++){const o=e._frozenNearColumns[t],l=o.element;o&&o.autoShowActionButton&&l._hideActionButton()}}}_columnMouseLeaveHandler(){this._mobile||this._hideActionButtons()}_columnMoveHandler(e){const t=this;if(!t.isInitialized)return;if(t._columnResizeStartLine||t._rowResizeStartLine)return;if(t._mobile)return;const o=(o,l)=>{if(o&&o.autoShowActionButton){const a=l.getBoundingClientRect(),n=t.offset(l),i=t.parentElement,r=i?i.scrollTop:0;if(n.left<=e.pageX&&n.left+a.width-6>=e.pageX)if(n.top-r<=e.pageY&&n.top-r+a.height>=e.pageY){if(!t.hasColumnMenu(o))return;l._showActionButton()}else l._hideActionButton();else l._hideActionButton()}};for(let e=0;e<t._columnElements.length;e++){const l=t._columnElements[e];o(l.column,l)}for(let e=0;e<t._frozenNearColumns.length;e++){const l=t._frozenNearColumns[e];o(l,l.element)}}_headerClickHandler(e){const t=this;if(t.$.headerBar){const o=t.isInShadowDOM||t.shadowRoot?e.composedPath()[0]:e.target;t.$.headerBar._headerClickHandler(o,t)}}_columnClickHandler(e){const t=this;if(t._overlay)return;if(void 0===e.clientX)return;const o=(t.enableShadowDOM?t.shadowRoot:t.getRootNode()).elementsFromPoint(e.clientX,e.clientY);let l=null,a=null;const n=new Date-t._columnClickTime<t.behavior.doubleClickTimingDelay;t._columnClickTime=new Date;for(let e=0;e<o.length;e++){const t=o[e];if(t.classList.contains("smart-action-button"))return;if(t.getAttribute("data-field")){l=t.getAttribute("data-field"),a=t;break}}if(l){const o=a.column;if(!o)return;if(e.srcElement.classList.contains("smart-filter-button"))return;if("_addNewColumn"===o.dataField)return void t._openAddColumnDialog();if(Smart.Utilities.Core.isMobile)n&&t.sorting.sortToggleOnClick&&o.allowSortToggleOnClick&&t.sorting.enabled&&(t.sortBy(l),t.autoSaveState()),t._columnMoveHandler(e),e.originalEvent&&e.originalEvent.preventDefault();else if(!n&&t.sorting.sortToggleOnClick&&o.allowSortToggleOnClick&&t.sorting.enabled){if("none"!==t.behavior.columnResizeMode&&"col-resize"===o.element.style.cursor)return;if(t._canSort=!0,""!==t.sorting.commandKey){if("Alt"===t.sorting.commandKey&&!1===e.altKey&&(t._canSort=!1),"Shift"===t.sorting.commandKey&&!1===e.shiftKey&&(t._canSort=!1),"Control"===t.sorting.commandKey&&!1===e.metaKey&&!1===e.ctrlKey&&(t._canSort=!1),"Control"!==t.sorting.commandKey&&e.ctrlKey)return;if(!0===t.sorting.sortToggleOnClickAndCommandKey&&!t._canSort)return}t.sortBy(l),t.autoSaveState()}}}_columnDownHandler(e){const t=this,o=(t.enableShadowDOM?t.shadowRoot:t.getRootNode()).elementsFromPoint(e.clientX,e.clientY);let l=null,a=null;const n=new Date-t._clickTime<t.behavior.doubleClickTimingDelay;t.$.headerBar&&t.$.headerBar.closePanel(),t._doubleClickHandler(e);for(let e=0;e<o.length;e++){const t=o[e];if(t.classList.contains("smart-action-button"))return;if(t.getAttribute("data-field")){l=t.getAttribute("data-field"),a=t;break}}if(l){const o=a.column;if(!o)return;if("_commandColumn"===l)return void(t.editing.commandColumn.dataSource.commandColumnMenu.visible&&t._applyCommand(t.editing.commandColumn.dataSource.commandColumnMenu.command));const i=function(a){const n=o.selectionColumn?t.selection.checkBoxes.action===a&&t.selection.enabled:t.selection.action===a&&t.selection.enabled;if("col-resize"!==o.element.style.cursor&&(!t.appearance.showColumnHeaderDragIcon||!e.originalEvent.target.classList.contains("smart-drag-handle"))&&n){if(t.editing.enabled&&t.editing.editColumn===o)return;if(e.shiftKey||e.ctrlKey||e.metaKey?t._dragSelectionStartDataField=null:t._dragSelectionStartDataField=l,"_checkBoxColumn"===l)return void t._toggleColumnSelection(o);"_rowHeaderColumn"===l&&t.selection.enabled&&t.selection.allowRowHeaderSelection&&t.appearance.showRowHeaderSelectIcon&&(delete t._areAllRowsSelected,t.areAllRowsSelected()?t.clearSelection():t.selectAllRows(),o.refresh()),t.selection.allowColumnHeaderSelection&&o.allowSelect&&t._setSelection(null,o.dataField,e)}};if(t.editing.isEditing&&t.endEdit(),i("click"),t._mobile){t._hideActionButtons();const o=(o,l)=>{if(o&&o.autoShowActionButton){const a=l.getBoundingClientRect(),n=t.offset(l);if(n.left<=e.pageX&&n.left+a.width-6>=e.pageX){if(!t.hasColumnMenu(o))return;l._showActionButton()}else l._hideActionButton()}};for(let e=0;e<t._columnElements.length;e++){const l=t._columnElements[e];o(l.column,l)}}if(t.$.fireEvent("columnClick",{column:o,dataField:o.dataField}),n&&(t.$.fireEvent("columnDoubleClick",{column:o,dataField:o.dataField}),i("doubleClick"),t._onColumnDoubleClick(o,e)),Smart.Utilities.Core.isMobile){const o=t.rightToLeft?a.getBoundingClientRect().left:a.getBoundingClientRect().right,n=10;if(o-n<=e.clientX&&e.clientX<=o+n){const o=t.columnByDataField[l];if(!o||o&&!o.allowResize)return;const n=t._isLastVisibleColumn(o);if("split"===t.behavior.columnResizeMode&&n)return;a.style.cursor="col-resize",a.sortButton.style.cursor="col-resize",a.filterButton.style.cursor="col-resize",t._columnToResizeRect=t.getBoundingRect(a),t._columnToResizeElement=a,t._columnToResizeDataField=l,e.preventDefault(),e.originalEvent&&e.originalEvent.preventDefault()}}if(t._columnToResizeElement&&!t._columnResizeLine)return t._columnDownResizeHandler(e),void(t._clickTime=new Date);if(t._beginDrag(e,o),o.menu)return void(t._clickTime=new Date)}t.closeMenu(),t._clickTime=new Date}addTransformMoveStyle(e,t,o,l,a,n){e.style.opacity=n,e.style["transition-duration"]=t,e.style.transform="translate3d("+o+"px,"+l+"px,"+a+"px)"}removeTransformMoveStyle(e){e.style.opacity="",e.style["transition-duration"]="",e.style.transform=""}_rowDownHandler(e){const t=this;if(t._inputOverlay&&t._inputOverlay.classList.remove("smart-input-overlay-on"),t._doubleClickHandler(e),t._closeMenu(t.menu),t._rowResizeHandler(e),t._removeCellContentPopup(),t._toggledRow&&t.appearance.allowRowToggleAnimation)return;if(e.target&&!e.target.classList.contains("smart-grid-row-container")&&!e.target.classList.contains("smart-grid-selection-overlay")&&!e.target.classList.contains("smart-selection-overlay-content"))return;let o=e.clientX,l=e.clientY;e.touches&&(o=e.touches[0].clientX,l=e.touches[0].clientY);const a=(t.enableShadowDOM?t.shadowRoot:t.getRootNode()).elementsFromPoint(o,l);let n=null,i=null,r=null,s=null,d=null,u=null,c=null;t._lastPointerDownTime=new Date;for(let e=0;e<a.length;e++){const t=a[e];if(t.hasAttribute("toggle-button")&&(i=t),t.hasAttribute("add-row")&&(d=t),t.hasAttribute("checkbox")&&(r=t),t.hasAttribute("rating-value")&&(u=t),s||"smart-grid-cell"!==t.nodeName.toLowerCase()||(s=t),!c&&t.classList.contains("smart-card")&&(c=t),!n&&"smart-grid-row"===t.nodeName.toLowerCase()){n=t;break}}if("card"!==t.view){if(u&&(t._ratingElement=u),n&&s){const o=s?s.cell:null;if(o.row.filterRow||t._closeMenu(t.filterRowMenu),i&&o&&!o.column.rowDetailColumn&&i!==o.row.toggleDetailButton&&!i.classList.contains("row-detail"))n.row.toggle(e);else if(t.rowDetail.enabled&&t.rowDetail.visible&&i&&o&&o.column.rowDetailColumn){const e=n.row;t.editing.isEditing&&t.cancelEdit(),e.showDetail?t.hideDetail(e.id):t.showDetail(e.id)}else if(d){const e=n.row,o=e.data;let l=o.parent;const a={};for(a[o.groupDataField]=null!==e.label?e.label:null,void 0!==e.labelValue&&(a[o.groupDataField]=e.labelValue);l;){let e=null!==l.label?l.label:null;l.labelValue&&void 0!==e&&(e=l.labelValue),a[l.groupDataField]=e,l=l.parent}t.addRow(a),setTimeout((()=>{t._conditionalColors&&t._conditionalColors.update&&t._conditionalColors.update()}),100)}else{const o=n.row,l=s?s.cell:null;if(l.column._treeColumn&&r)return void(o.checked=!o.checked);l.element===o.header&&t.behavior.allowRowReorder&&t._beginDrag(e,o),t._tapTimer&&clearTimeout(t._tapTimer),t._tapTimer=setTimeout((function(){t._clickedRow===n&&t.$.fireEvent("rowTap",{row:o,id:o.id,originalEvent:e.originalEvent}),t._clickedCell===s&&t.$.fireEvent("cellTap",{cell:l,id:o.id,dataField:l.column.dataField,originalEvent:e.originalEvent})}),t.behavior.doubleClickTimingDelay);const a=function(a){if(!t.selection.enabled||o.autoGenerated||!0!==o.allowSelect)return void delete t.__selectionStarted;if(o.header&&"row-resize"===o.header.style.cursor){const a=t.offset(o.header);if(t._rowToResize&&a.left<=e.originalEvent.pageX&&e.originalEvent.pageX<=a.left+o.header.offsetWidth)return o.header.style.cursor="",void(t._rowToResize.onpointerup=()=>{const a=t.editing.isEditing;t._rowToResize&&(t._rowToResize.onpointerup=null),t._clickedRow===n&&!a&&!t._rowResizeLine&&l.column.rowHeaderColumn&&t.selection.allowRowHeaderSelection&&t._setSelection(o.id,l.column.dataField,e)});o.header.style.cursor=""}const i=t.editing.isEditing;if(i&&t.editing.editCell&&t.editing.editCell.row.id===o.id&&t.editing.editCell.column.dataField===l.column.dataField)return;if(i&&t.editing.editRow&&t.editing.editRow.id===o.id)return;const r=()=>{t.focus(),setTimeout((function(){t.focus()}),50)};if(t.selection.action===a){if(e.shiftKey||e.ctrlKey||e.metaKey||!t.selection.allowRowHeaderSelection&&l.column.autoGenerated?t._dragSelectionStartRow=null:t._dragSelectionStartRow=n.row,e.shiftKey||e.ctrlKey||e.metaKey?t._dragSelectionStartDataField=null:t._dragSelectionStartDataField=l.column.dataField,l.column.rowHeaderColumn&&!t.selection.allowRowHeaderSelection)return t._dragSelectionStartRow=null,void r();t._setSelection(o.id,l.column.dataField,e),r()}else(l.column.selectionColumn&&t.selection.checkBoxes.enabled&&t.selection.checkBoxes.action===a||l.column.rowHeaderColumn&&t.selection.allowRowHeaderSelection)&&(t._setSelection(o.id,l.column.dataField,e),r())},i=l.selected;t._clickTime||(t._clickTime=new Date);const d=t._clickedCell===s&&new Date-t._clickTime<t.behavior.doubleClickTimingDelay,u=e.originalEvent?e.originalEvent:e,c=3===u.which;if(c||"_commandColumn"===l.column.dataField||a("click"),t.$.fireEvent("rowClick",{row:o,id:o.id,data:t.getRowData(o.id),isRightClick:c,originalEvent:u,pageX:parseInt(u.pageX),pageY:parseInt(u.pageY)}),t.$.fireEvent("cellClick",{cell:l,id:o.id,dataField:l.column.dataField,value:l.value,isRightClick:c,originalEvent:u,pageX:parseInt(u.pageX),pageY:parseInt(u.pageY)}),c&&t.contextMenu.enabled)return t.contextMenu.id=o.id,t.contextMenu.dataField=l.column.dataField,t._focusCell(o.id,l.column.dataField),t.openContextMenu(u.pageX+10,u.pageY+10),void(t.contextMenu.selector&&(u.stopPropagation(),u.preventDefault()));if(o.autoGenerated||l.column.autoGenerated||"checkBox"===l.template&&e.originalEvent&&e.originalEvent.target&&e.originalEvent.target.classList.contains("smart-input"))t._onRowClick(o.index,o,e),t._onCellClick(l,e);else if(t.selection.enabled)if(t.selection.allowCellSelection)if("extended"===t.selection.mode){if(!0===i&&i===l.selected&&!t.selection.isDragging){const a=t._selection.focusedCell;a&&t._clickedCell&&a.id===l.row.id&&a.dataField===l.column.dataField&&a.id===t._clickedCell.cell.row.id&&a.dataField===t._clickedCell.cell.column.dataField&&(t._onRowClick(o.index,o,e),t._onCellClick(l,e))}}else d||(t._onRowClick(o.index,o,e),t._onCellClick(l,e));else if(t.selection.allowRowSelection)if("extended"===t.selection.mode){if(!0===i&&i===l.selected&&!t.selection.isDragging){const a=t._selection.focusedCell;t._clickedCell&&a.id===l.row.id&&a.id===t._clickedCell.cell.row.id&&(t._onRowClick(o.index,o,e),t._onCellClick(l,e))}}else d||(t._onRowClick(o.index,o,e),t._onCellClick(l,e));else t._onRowClick(o.index,o,e),t._onCellClick(l,e);else t._onRowClick(o.index,o,e),t._onCellClick(l,e);new Date-t._clickTime<t.behavior.doubleClickTimingDelay&&(t._clickedRow===n&&(t._onRowDoubleClick(o.index,o,e,e),t.$.fireEvent("rowDoubleClick",{row:o,id:o.id,data:t.getRowData(o.id),isRightClick:c,originalEvent:e.originalEvent,pageX:parseInt(u.pageX),pageY:parseInt(u.pageY)}),a("doubleClick")),t._clickedCell===s&&(t._onCellDoubleClick(l,e),t.$.fireEvent("cellDoubleClick",{cell:l,id:o.id,dataField:l.column.dataField,value:l.value,isRightClick:c,originalEvent:e.originalEvent,pageX:parseInt(u.pageX),pageY:parseInt(u.pageY)}))),t._clickedRow=n,t._clickedCell=s,t._clickTime=new Date,t.layout.allowCellsWrapShortcut&&t._clickedCell.hasAttribute("focus")&&t._clickedCell.hasAttribute("selected")&&e.shiftKey&&(t._cellContentPopupTimer&&clearTimeout(t._cellContentPopupTimer),t.selection.isDragging?t._removeCellContentPopup():l.autoWrap())}}}else if(c){const o=c.getAttribute("row-id"),l=t.rowById[o];if(l){const a=e.originalEvent?e.originalEvent:e,n=3===a.which;if(l.element||l.createElement(),t.$.fireEvent("rowClick",{row:l,id:l.id,data:t.getRowData(l.id),isRightClick:n,originalEvent:a,pageX:parseInt(a.pageX),pageY:parseInt(a.pageY)}),s){const e=s.getAttribute("data-field");if(e){const o=t.columnByDataField[e],i=new Smart.Grid.Cell(l,o,this);s.cell=i,i.element=s,i&&t.$.fireEvent("cellClick",{cell:i,id:l.id,dataField:i.column.dataField,value:i.value,isRightClick:n,originalEvent:a,pageX:parseInt(a.pageX),pageY:parseInt(a.pageY)})}}const i=e.originalEvent.target;if(c.classList.contains("smart-card-header"))l.element&&l.element.row!==l&&(l.element.row=l),l.toggle();else if(l.children&&l.children.length>0&&(i.classList.contains("smart-icon-ungroup")||i.classList.contains("smart-icon-group")))l.element&&l.element.row!==l&&(l.element.row=l),l.toggle();else if(t.editing.enabled){const l=t.editing.dialog.enabled,a=t.editing.mode;if(i.scrollHeight>i.offsetHeight){const o=t.offset(i);if(e.originalEvent.pageX>=o.left+i.offsetWidth-15)return}const n=t.context;t.context=t,t.editing.dialog.enabled=!0,t.editing.mode="row",t._settingsDialogRowId=o;let r=t._isUpdating;c.setAttribute("edit",""),t.beginEdit(o),t._isUpdating=r,t._endCardRowEdit?(t.removeEventListener("endEdit",t._endCardRowEdit,null),t.removeEventListener("cancelEdit",t._endCardRowEdit,null)):t._endCardRowEdit=()=>{t.context=t,t.editing.dialog.enabled=l,t.editing.mode=a,t.editing.isEditing=!1,t.context=n,delete t._settingsDialogRowId,delete t._dialogEdit},t.addEventListener("endEdit",t._endCardRowEdit),t.addEventListener("cancelEdit",t._endCardRowEdit)}}}}showDetail(e){const t=this.rowById[e];t&&(t.showDetail=!0)}hideDetail(e){const t=this.rowById[e];t&&(t.showDetail=!1)}_focusHandler(){this._focused=!0,this.setAttribute("focus","")}_blurHandler(){this._focused=!1,this.removeAttribute("focus")}_notify(e,t,o){const l=this;if(l.notifyFn)for(let a=0;a<l.notifyFn.length;a++)l.notifyFn[a](e,t,o)}notify(e){const t=this;e&&(t.notifyFn||(t.notifyFn=[]),t.notifyFn.push(e))}_applyTemplate(e,t){let o=null;if(null!==e&&""!==e)if(e&&"function"==typeof e)e(t);else if((e.startsWith("#")||e.startsWith("."))&&(o=document.querySelector(e)),o)t.innerHTML="",o instanceof HTMLElement&&!(o instanceof HTMLTemplateElement)?t.appendChild(o):t.appendChild(o.content.cloneNode(!0).firstElementChild);else{const o=function(e){const t=document.createElement("template");return e=e.trim(),t.innerHTML=e,t.content.firstChild}(e);o&&(t.innerHTML="",t.appendChild(o))}else t.innerHTML=""}propertyChangedHandler(e,t,o){const l=this;if(l.isInitialized){switch(l._notify(e,t,o),e){case"onRowHistory":case"onRowInserted":case"stateSettings_current":return;case"highlighted":"kanban"===l.view&&l._kanban&&(l._kanban.selectTask(o),l._kanban.ensureVisible(o));break;case"view":return void(l.$.headerBar&&l.$.headerBar._setView&&l.$.headerBar._setView(o,!0));case"users":case"currentUser":l._refreshCurrentUser(),l._recycle();break;case"summaryRow_visible":{for(let e=0;e<l.columns.length;e++)l._summaryRowCount=Math.max(l._summaryRowCount,l.columns[e].summary.length);const e=l.onRowInserted;l.onRowInserted=null,l._renderRows(!0),l.onRowInserted=e;break}case"conditionalFormatting":return l._renderConditionalFormatting(),void l.refresh();case"appearance_displayLoadingIndicator":return void l._setLoadingIndicatorVisibility();case"appearance_placeholder":return void(l.$.placeholder.innerHTML=o);case"appearance_showColumnHeaderLines":case"appearance_showColumnGroupLines":case"appearance_showColumnLines":case"appearance_showRowLines":return void l._recycle();case"appearance_allowColumnStickyPosition":o?l._stickHeader():l._unstickHeader();break;case"appearance_showColumnIcon":for(let e=0;e<l.columns.length;e++)l.columns[e].setProperty("showIcon",l.appearance.showColumnIcon);l._recycle();break;case"appearance_showRowHeaderNumber":case"appearance_showRowHeader":{l._initializeRowNumberColumn();const e=l._frozenNearColumns[0];e.rowHeaderColumn&&e.element&&!e.element.parentNode&&l.$.columnNearContainer.appendChild(e.element),l.refresh();break}case"header_visible":if(l.header.visible&&""===l.header.template){let e=l.$.header;l.header.appendTo&&(e=document.querySelector(l.header.appendTo),e?e.onclick=e=>{l._headerClickHandler(e)}:e=l.$.header),e.innerHTML='<smart-grid-toolbar header-position="top"></smart-grid-toolbar>',l.$.headerBar=e.firstElementChild,l.$.headerBar._init(l),l.header.onInit&&l.header.onInit(l.$.headerBar)}break;case"header_buttons":l.header.visible&&""===l.header.template&&l._refreshHeaderBar();break;case"header_template":l._applyTemplate(o,l.$.header);break;case"footer_template":l._applyTemplate(o,l.$.footer);break;case"layout_columnWidth":case"columnWidth":{l.columns.canNotify=!1;let e=parseInt(o);if(isNaN(e)&&(e=null),e>=30||null===e)for(let t=0;t<l.columns.length;t++)l.columns[t].width=e;l.columns.canNotify=!0,l.refresh();break}case"checkBoxes_visible":return void l._recycle();case"checkBoxes_hasThreeStates":return l.rows.canNotify=!1,l._applyThreeStates(l.rowHierarchy),l.rows.canNotify=!0,void l._recycle();case"columnHeader_visible":l.__columnHeaderHeight=null,l.refresh();break;case"selection_checkBoxes_enabled":l._selectionColumn.visible=o;break;case"selection_checkBoxes_autoShow":l._selectionColumn.element&&(o?l._selectionColumn.element.setAttribute("auto-show",""):l._selectionColumn.element.removeAttribute("auto-show"));break;case"selection_checkBoxes_position":{let e=l.viewColumns.indexOf(l._selectionColumn);l.viewColumns.canNotify=!1,l.viewColumns.splice(e,1);const t=l._frozenNearColumns.indexOf(l._selectionColumn),a=l._frozenFarColumns.indexOf(l._selectionColumn);if(t>=0&&l._frozenNearColumns.splice(t,1),a>=0&&l._frozenFarColumns.splice(a,1),"far"===o)l._selectionColumn.canNotify=!1,l._selectionColumn.freeze="far",l._selectionColumn.canNotify=!0,l._frozenFarColumns.splice(0,0,l._selectionColumn),l.viewColumns.push(l._selectionColumn),l.$.columnFarContainer.appendChild(l._selectionColumn.element);else{let e=0,t=0;for(let o=0;o<l.viewColumns.length&&(l.viewColumns[o].autoGenerated||l.viewColumns[o].dataField!==l.columns[t++].dataField);o++)l.viewColumns[o].autoGenerated&&e++;l._selectionColumn.canNotify=!1,l._selectionColumn.freeze="near",l._selectionColumn.canNotify=!0,l._frozenNearColumns.splice(e,0,l._selectionColumn),l.viewColumns.splice(e,0,l._selectionColumn),l.$.columnNearContainer.appendChild(l._selectionColumn.element)}l.viewColumns.canNotify=!0;break}case"selection_mode":if(l._selection&&(l._selection.focusedCell=null),l.selection.allowCellSelection)l.clearSelection();else if("one"===o){const e=l.getSelection();if(l.clearSelection(),e.rows&&e.rows[0]){e.rows[0].row.selected=!0;const t=l.rowById[e.rows[0].row.id].getCell(l.columns[0].dataField);l._selection.focusedCell={id:t.row.id,dataField:t.column.dataField,value:t.value,index:t.row.index}}}break;case"grouping_groupBy":return l.dataSource&&l.dataSource.groupBy&&(l.dataSource.groupBy=o),void l.refresh();case"sorting_enabled":return void l.refresh();case"sorting_maintainSort":return void l._recycle(!1);case"filtering_enabled":return o&&0===l._filterPanels.length&&l._createFilterPanels(),void(l.header.visible&&l.refresh());case"filtering_filterRow_visible":return l._initializeRows(),l._initializeRowElements(),void l.refresh();case"filtering_operator":return void l.refreshFilters();case"filtering_filter":for(let e=0;e<l.columns.length;e++){const t=l.columns[e];t.canNotify=!1,t.setProperty("filter",null),t.canNotify=!0}for(let e=0;e<l.filtering.filter.length;e++){const t=l.filtering.filter[e];if(t&&t.splice){const e=t[0],o=t.splice(1);let a=null;if(o instanceof Smart.FilterGroup)a=o;else{const t=l.columnByDataField[e];t&&(a=l.dataSource._createFilter(t.dataType,o))}a&&l.addFilter(e,a,!1)}}return void l.refreshFilters();case"messages":case"locale":{if(l.columns)for(let e=0;e<l.columns.length;e++)l.columns[e]._cellsCachedValues=[];l._dialogEdit&&(l._dialogEdit.close(),l._dialogEdit=null),l._dialogDelete&&(l._dialogDelete.close(),l._dialogDelete=null),l._dialogAddRow&&(l._dialogAddRow.close(),l._dialogAddRow=null);const e=l.$.headerPager.querySelector("smart-pager"),t=l.$.footerPager.querySelector("smart-pager");e&&(e.locale=l.locale),t&&(t.locale=l.locale);const o=(e,t)=>{l._handleFilterMenuClick(e,t)};l._filterInfo||(l._filterInfo={}),l._filterInfo.stringConditions=[{icon:"smart-icon-contains",command:o,value:"CONTAINS",label:l.localize("CONTAINS")},{icon:"smart-icon-does-not-contain",command:o,value:"DOES_NOT_CONTAIN",label:l.localize("DOES_NOT_CONTAIN")},{icon:"smart-icon-starts-with",command:o,value:"STARTS_WITH",label:l.localize("STARTS_WITH")},{icon:"smart-icon-ends-with",command:o,value:"ENDS_WITH",label:l.localize("ENDS_WITH")},{icon:"smart-icon-equals",command:o,value:"EQUAL",label:l.localize("EQUAL")},{icon:"smart-icon-delete",command:o,value:"CLEAR_FILTER",label:l.localize("CLEAR_FILTER")}],l._filterInfo.numberAndDateConditions=[{icon:"smart-icon-equals",command:o,value:"EQUAL",label:l.localize("EQUAL")},{icon:"smart-icon-not-equal",command:o,value:"NOT_EQUAL",label:l.localize("NOT_EQUAL")},{icon:"smart-icon-less-than",command:o,value:"LESS_THAN",label:l.localize("LESS_THAN")},{icon:"smart-icon-less-than-equal",command:o,value:"LESS_THAN_OR_EQUAL",label:l.localize("LESS_THAN_OR_EQUAL")},{icon:"smart-icon-greater-than",command:o,value:"GREATER_THAN",label:l.localize("GREATER_THAN")},{icon:"smart-icon-greater-than-equal",command:o,value:"GREATER_THAN_OR_EQUAL",label:l.localize("GREATER_THAN_OR_EQUAL")},{icon:"smart-icon-between",command:o,value:"RANGE",label:l.localize("RANGE")},{icon:"smart-icon-delete",command:o,value:"CLEAR_FILTER",label:l.localize("CLEAR_FILTER")}],l._refreshHeaderBar(),l.$.headerBar&&(l.$.headerBar.messages=l.messages,l.$.headerBar.locale=l.locale,l.$.headerBar._localizeHeader(),l.$.headerBar._getInnerElementMessages()),l.grouping.groupBar.visible&&l._renderGroupBar(),l._recycle();break}case"paging_spinner_enabled":l._refresh();break;case"pager_visible":return l._renderPagers(),void l._refreshPaging(!1);case"paging_pageIndex":case"pager_position":case"paging_enabled":return void l._refreshPaging(!0);case"paging_pageSize":return void l._refreshPaging(!1);case"columns":{l.__measuredColumnHeight=null,l.editing&&l.editing.isEditing&&l.cancelEdit(),l._cellEditors=[];let e=!1;if(t&&t.length)for(let o=0;o<t.length;o++)if(t[o].freeze){e=!0;break}if(l.columns&&l.columns.length)for(let t=0;t<l.columns.length;t++)if(l.columns[t].freeze){e=!0;break}if(e&&l._initializeRowElements(),l.columns&&l._sortedColumns){const e=[];l.columns.forEach((t=>{t.sortOrder&&e.push(t)})),l._sortedColumns=JSON.parse(JSON.stringify(e))}l._renderColumns(),l._refreshHeaderBar();const o=l._sortedColumns;if(o){l.clearSort();for(let e=0;e<l.columns.length;e++)delete l.columns[e]._cellsCachedValues;l._refreshSort(o)}if(l.columns&&l.filtering.enabled){l.beginUpdate();for(let e=0;e<l.columns.length;e++){const t=l.columns[e];if(t.canNotify=!1,l.removeFilter(t.dataField),t.filtered=!1,t.canNotify=!0,t.filter){let e=null,o=t.filter;e=o instanceof Smart.FilterGroup?o:l.dataSource._createFilter(t.dataType||"string",o),e&&l.addFilter(t.dataField,e,!1)}}l.refreshFilters(),l.endUpdate()}return l.layout.isDirty=!0,l._resetCachedLayout(),void l._refreshLayout()}case"columnGroups":if(l._columnGroups=[],l._columnHeights=0,l.viewColumns)for(let e=0;e<l.viewColumns.length;e++){const t=l.viewColumns[e],o=t.element;t.top=0,t.level=0,o&&(o.style.top="",o.style.height="",o.style.lineHeight="")}return l.columns.canNotify=!1,l.columns=l._initColumns,l._renderColumns(),l.columns.canNotify=!0,l.__columnHeaderHeight=null,void l.refresh();case"dataSource":if(delete l._isFirstVirtualDataSourceRequest,"dataSource"===e&&t&&o){const e=l.dataSource&&l.dataSource.virtualDataSource&&!l.dataSource.virtualDataSourceOnExpand&&"infinite"!==l.scrolling;if(t instanceof Smart.DataAdapter&&!e&&t.length===o.length&&t.length>0&&o.length>0&&!l.dataSourceSettings.childrenDataField&&!l.dataSourceSettings.parentDataField&&!t.parentDataField){if(l.dataSource=t,l._cachedDataSource===o)return;return setTimeout((()=>{let e=null;if(t&&l.dataSource&&l.dataSource._expandedRowIds){let t={};for(let e in l.dataSource._expandedRowIds){let o=""+e;o=o.replace("Item","").replace(/_/gi,"."),t[o]=!0}e=t}if(l.beginUpdate(),l._sortedColumns&&l._sortedColumns.length>0&&void 0===l._getId())for(let e=0;e<o.length;e++){const t=l.dataSource[e],a=o[e];l._updateRow(t,a,!0)}else for(let e=0;e<o.length;e++){const t=o[e],a=l.dataSource[e].$.id;l._updateRow(a,t,!0)}delete l.__autoRowHeight,l._virtualOnExpandCache=[],l._cellsMerge=[],l._cellStyles=[];const a=l._filters,n=l._sortedColumns;if(l.clearSort(),l.filtering.filterRow)for(let e=0;e<l.columns.length;e++)l.columns[e]._filterEditorInitialized=!1;for(let e=0;e<l.columns.length;e++)delete l.columns[e]._cellsCachedValues;if(n&&l._refreshSort(n),a&&a.length>0&&(l._filters=null,l.refreshFilters()),l.grouping.enabled)for(let t in e)l._expandCollapseGroup(t,!0);l.endUpdate()})),l._cachedDataSource=o,void(l.header.visible&&""===l.header.template&&l.$.headerBar._init(l))}}return l.dataSource.length>1e4?(l.appearance.displayLoadingIndicator=!0,l._setLoadingIndicatorVisibility(),setTimeout((()=>{l.dataBind()}),100),setTimeout((()=>{l.appearance.displayLoadingIndicator=!1,l._setLoadingIndicatorVisibility(),l._recycle(!1)}),200)):(l.dataSource&&l.dataSource instanceof Smart.DataAdapter&&l.columns&&l.dataSource.dataFields&&l.dataSource.dataFields.forEach((e=>{const t=l.columnByDataField[e.name];t&&(t.dataType=e.dataType)})),l.dataBind()),void(l.header.visible&&""===l.header.template&&l.$.headerBar._init(l));case"rowDetail_dialog_width":case"rowDetail_dialog_height":case"rowDetail_dialog_enabled":case"rowDetail_dialog_visible":return;case"rowDetail_height":case"rowDetail_enabled":{l.beginUpdate(),l.rows.canNotify=!1;const e=l.appearance.allowRowDetailToggleAnimation;l.appearance.allowRowDetailToggleAnimation=!1;for(let e=0;e<l._recyclingRows.length;e++){const t=l._recyclingRows[e];t.height=null,t.setProperty("showDetail",!1),t.detailHeight=l.rowDetail.height}if(l.rows.canNotify=!0,l.rowDetail.enabled){let t=!1;for(let e=0;e<l.viewColumns.length;e++)if(l.viewColumns[e].rowDetailColumn){t=!0;break}if(!t)return l.appearance.allowRowDetailToggleAnimation=e,l.endUpdate(),void l._renderColumns(!0)}else for(let e=0;e<l.viewColumns.length;e++){const t=l.viewColumns[e];if(t.rowDetailColumn){t.visible=!1;break}}return l.appearance.allowRowDetailToggleAnimation=e,void l.endUpdate()}case"rowDetail_visible":for(let e=0;e<l.viewColumns.length;e++){const t=l.viewColumns[e];if(t.rowDetailColumn){t.visible=o;break}}return;case"displayLoadingIndicator":return void l._setLoadingIndicatorVisibility();case"filterable":return void l._refreshLayout();case"layout_allowCellsWrap":{const e=l.columns.canNotify;l.columns.canNotify=!1;for(let e=0;e<l.columns.length;e++)l.columns[e].cellsWrap=o;return l.layout.isDirty=!0,l._resetCachedLayout(),l._refreshLayout(),l.refresh(),void(l.columns.canNotify=e)}case"showViewBar":return l.layout.isDirty=!0,l._resetCachedLayout(),l._refreshLayout(),void l.refresh();case"layout_autoHeight":case"layout_autoWidth":case"layout_columnMinHeight":case"layout_rowMinHeight":case"layout_columnHeight":case"layout_rowHeight":return l.layout.isDirty=!0,l._resetCachedLayout(),l._refreshLayout(),void l.refresh();case"rightToLeft":return void l.refresh();case"selectionMode":return;case"editing_addNewColumn_visible":l._addNewColumn?(l._addNewColumn.visible=o,l.refresh()):l._renderColumns();break;case"editing_addNewRow_displayMode":{"row"===l.editing.addNewRow.displayMode&&l.editing.addNewRow._addButton&&(l.editing.addNewRow._addButton.remove(),delete l.editing.addNewRow._addButton);const e=l._scrollView.vScrollBar;return e.style.height="",e.style.top="",e.style.setProperty("--smart-scroll-bar-near-size","0px"),l._renderAddNewRow(),void l.refresh(!0)}case"editing_addNewRow_label":case"editing_addNewRow_visible":case"editing_addNewRow_position":return!1===l.editing.addNewRow.visible&&"button"===l.editing.addNewRow.displayMode&&(l.editing.addNewRow._addButton&&l.editing.addNewRow._addButton.remove(),l._newRow&&l._newRow.element.classList.add("smart-hidden")),l._renderAddNewRow(),void l.refresh();case"editing_enabled":o?l.removeAttribute("aria-readonly"):l.setAttribute("aria-readonly",!0);break;case"editing_dialog_visible":return;case"editing_commandBar_dataSource_commandBarAddRow_visible":case"editing_commandBar_dataSource_commandBarDeleteRow_visible":case"editing_commandBar_dataSource_commandBarBatchSave_visible":case"editing_commandBar_dataSource_commandBarBatchRevert_visible":case"editing_commandBar_visible":case"editing_commandBar_displayMode":case"editing_commandBar_position":l._renderCommandBar();break;case"editing_commandColumn_position":l._renderColumns(!0);break;case"editing_commandColumn_visible":return void l.refresh(!0);case"editing_commandColumn_inline":return l._commandColumn.visible=l.editing.commandColumn.visible&&!l.editing.commandColumn.inline,void l.refresh(!0);case"layout_isDirty":return;case"editing_commandColumn_dataSource_commandColumnCustom_label":case"editing_commandColumn_dataSource_commandColumnCustom_icon":case"editing_commandColumn_dataSource_commandColumnCustom_visible":case"editing_commandColumn_dataSource_commandColumnUpdate_label":case"editing_commandColumn_dataSource_commandColumnUpdate_icon":case"editing_commandColumn_dataSource_commandColumnUpdate_visible":case"editing_commandColumn_dataSource_commandColumnEdit_label":case"editing_commandColumn_dataSource_commandColumnEdit_icon":case"editing_commandColumn_dataSource_commandColumnEdit_visible":case"editing_commandColumn_dataSource_commandColumnDelete_label":case"editing_commandColumn_dataSource_commandColumnDelete_icon":case"editing_commandColumn_dataSource_commandColumnDelete_visible":case"editing_commandColumn_displayMode":return delete l.__cellsCommandTemplate,void l.refresh(!0)}l.refresh()}}ready(){super.ready();const e=this;e._renderInDropDown();const t=e._scrollView.vScrollBar,o=e._scrollView.hScrollBar;t.hasStyleObserver=!1,o.hasStyleObserver=!1,t.hasResizeObserver=!1,o.hasResizeObserver=!1,t.wait=!1,o.wait=!1,t.onChange=e._verticalScrollbarHandler.bind(e),o.onChange=e._horizontalScrollbarHandler.bind(e),e.setFocusable(!0),e.$.loadingIndicatorPlaceholder.innerHTML=e.messages[e.locale]&&e.messages[e.locale].loadingIndicatorPlaceholder?e.localize("loadingIndicatorPlaceholder"):e.appearance.loadingIndicatorPlaceholder,e.$.placeholder.innerHTML=e.messages[e.locale]&&e.messages[e.locale].placeholder?e.localize("placeholder"):e.appearance.placeholder,e._setLoadingIndicatorVisibility(),e._cellsMerge=[],e._cellStyles=[],e.checkLicense()}_createFilterPanels(){const e=this;if(e._filterPanels){if(e._filterPanels.length>0)return}else e._filterPanels=[];if(e.filtering.enabled&&0===e._filterPanels.length){if(e.header.visible)return;requestAnimationFrame((()=>{const t=document.createElement("smart-filter-panel"),o=document.createElement("smart-filter-panel"),l=document.createElement("smart-filter-panel"),a=document.createElement("smart-filter-panel");o.filterType="boolean",l.filterType="numeric",a.filterType="date",e._filterPanels.bool=o,e._filterPanels.date=a,e._filterPanels.numeric=l,e._filterPanels.string=t;for(let t in e._filterPanels){const o=e._filterPanels[t];o.rightToLeft=e.rightToLeft,o.classList.add("smart-hidden"),e.$.content.appendChild(o),o.parentNode.removeChild(o)}}))}}_applyScrolling(){const e=this,t=e._scrollView.vScrollBar;requestAnimationFrame((()=>{switch(t.largeStep=e.$.scrollView.offsetHeight,e.scrolling){case"physical":case"infinite":case"virtual":t.step=e.layout.rowMinHeight,t.mechanicalAction="switchWhileDragging";break;case"deferred":t.step=10,t.mechanicalAction="switchWhenReleased";break;case"logical":t.step=e.layout.rowMinHeight,t.mechanicalAction="switchWhileDragging"}}))}_measureRowElement(e){const t=new Smart.Grid.Row({data:e,index:999999,grid:this});if(!t)return null;const o=t.createElement();return o.classList.add("smart-grid-measure-row"),this.$.scrollView.appendChild(o),o.style.height="",o.style.lineHeight="",o.style.height="",o.style.lineHeight="",t._isMeasureRow=!0,t.render(),o}get _autoRowHeight(){const e=this;if(e.__autoRowHeight)return e.__autoRowHeight;let t=e.layout.rowMinHeight;if(!e.dataSource||e.dataSource&&0===e.dataSource.length)return t;const o=new Smart.Grid.Row({index:0,grid:e}),l=o.createElement();e.$.scrollView.appendChild(l),e.removeAttribute("grouped"),e.removeAttribute("tree"),e.grouping.enabled&&e.dataSource.groupBy&&e.dataSource.groupBy.length>0?e.setAttribute("grouped",""):e.dataSource.boundHierarchy&&e.setAttribute("tree","");const a={};for(let t=0;t<e.dataSource.dataFields.length;t++)a[e.dataSource.dataFields[t].name]="ABCDEFHIJLMNOPQRSTUVWXYZ1234567910|";o.data=a,o._isMeasureRow=!0,o.render(),l.style.height="",l.style.lineHeight="",t=Math.max(l.offsetHeight,t);for(let e=0;e<l.children.length;e++)l.children[e].style.height="";for(let a=0;a<l.children[1].children.length;a++){if(l.children[1].children[a].style.height="auto",e.columns[0]){const t=o.getCell(e.columns[0].dataField);t&&t.render()}t=Math.max(t,8+l.children[1].children[a].offsetHeight);break}return e.$.scrollView.removeChild(l),e.__autoRowHeight=t,e.layout.rowMinHeight&&t<e.layout.rowMinHeight&&(e.__autoRowHeight=e.layout.rowMinHeight),t}get _scrollHeight(){const e=this,t="card"===e.view;let o=e._recyclingRows,l=0,a=e._autoRowHeight,n=0,i=0;if(e.__scrollHeight)return e.__scrollHeight;if(0===o.length||0===e.columns.length||!e.hasVisibleColumn())return 0;let r=40,s=1,d=0;if(t){for(let t=0;t<e.viewColumns.length;t++){const o=e.viewColumns[t];o.visible&&!o.autoGenerated&&(r+=e.layout.cardRowMinHeight,d++,o.cardHeight&&(r-=e.layout.cardRowMinHeight,r+=o.cardHeight*e.layout.cardRowMinHeight))}let t=e.offsetWidth;!e.appearance.showViewBar||e.appearance.viewBarAppendTo||e.appearance.showViewBarAsDropdown||(t-=e.layout.viewBarWidth+5),s=t<e.layout.cardMinWidth?1:"auto"===e.layout.cardsPerRow?Math.floor(t/e.layout.cardMinWidth):e.layout.cardsPerRow,1===s&&(r+=5*d),e._cardHeight=r}e._cardsPerRow=s,e.rows.canNotify=!1;const u=e._measureRowElement(o[0].data),c=o.length;for(let s=0;s<c;s++){let d=o[s];if(!d.visible||!1===d.filtered){d.height=0,d.cellHeight=0,d.top=l;continue}const c=e.rowDetail.enabled&&d.showDetail&&!e.rowDetail.dialog.enabled;let m=!d.height||!d.cellHeight||c||"auto"===d.height||"auto"===d._height||"auto"===e.layout.rowHeight||e.layout.isDirty;if(t&&d.height!==r&&(d.height=d.cellHeight=r),m&&!d.expandHeight){if(d.detailHeight||(d.detailHeight=200),t)d.height=d.cellHeight=r;else if(e.layout.rowHeight){if(e.layout.rowHeight)if("number"==typeof e.layout.rowHeight)e.layout.rowHeight<e.layout.rowMinHeight&&(e.layout.rowHeight=e.layout.rowMinHeight),d.height=e.layout.rowHeight,d.computedHeight&&(d.height=d.computedHeight),d.minHeight>d.height&&(d.height=d.minHeight),void 0!==d.label&&"advanced"===e.grouping.renderMode&&(d.height=e.grouping.groupRowHeight),d.cellHeight=d.height,e.rowDetail.enabled&&d.showDetail&&!e.rowDetail.dialog.enabled&&(d.height+=d.detailHeight);else if("auto"===e.layout.rowHeight){e.layout.rowHeight<e.layout.rowMinHeight&&(e.layout.rowHeight=e.layout.rowMinHeight),d.element=u,d.grid=e,d.element&&d.element.classList.contains("smart-hidden")&&d.element.classList.remove("smart-hidden");const t=d.data&&e.isRendered?d._autoSize(d):a,o=d.canNotify;d.canNotify=!1,d.height=t,d.computedHeight&&(d.height=d.computedHeight),void 0!==d.label&&"advanced"===e.grouping.renderMode&&(d.height=e.grouping.groupRowHeight),d.cellHeight=d.height,e.rowDetail.enabled&&d.showDetail&&!e.rowDetail.dialog.enabled&&(d.height+=d.detailHeight),d.canNotify=o}else e.layout.rowHeight(s,d),d.height||(d.height=a),d.cellHeight=d.height,e.rowDetail.enabled&&d.showDetail&&!e.rowDetail.dialog.enabled&&(d.height+=d.detailHeight)}else{if("auto"===d.height||"auto"===d._height){d.element=u,d.element&&d.element.classList.contains("smart-hidden")&&d.element.classList.remove("smart-hidden");const t=d.data&&e.isRendered?d._autoSize(d):a;d.height=t,d._height="auto"}else d.height=a;void 0===d.label||d.summaryRow||"advanced"!==e.grouping.renderMode||(d.height=e.grouping.groupRowHeight),d.computedHeight&&(d.height=d.computedHeight),d.cellHeight=d.height,e.rowDetail.enabled&&d.showDetail&&!e.rowDetail.dialog.enabled&&(d.height+=d.detailHeight)}e._rowGap&&s<e.rows.length-1&&(d.height+=e._rowGap)}!t&&(!0===d.freeze||"near"===d.freeze?d.visible&&(n+=d.height):"far"===d.freeze&&d.visible&&(i+=d.height),d.freeze&&d.visible)?d.top=l:(d.top!==l&&(d.top=l),d.expandHeight?l+=d.cellHeight:l+=d.height)}if(e._summaryRowCount&&e.summaryRow.visible&&(l+=1*a),e.editing.addNewRow&&"button"===e.editing.addNewRow.displayMode&&(l+=1*a),e.filtering&&e.filtering.filterRow.visible&&(n+=a),e.editing.addNewRow&&"button"!==e.editing.addNewRow.displayMode&&e.rowHierarchy&&e.editing.addNewRow.visible&&(l+=a,"far"!==e.editing.addNewRow.position&&(n+=a)),e.dataSource&&e.dataSource.virtualDataSource&&!1===e.paging.enabled){let t=e.dataSource.length>e.virtualModeCachedRowsCount?e.virtualModeCachedRowsCount:e.dataSource.length;"infinite"===e.scrolling&&(t=e.dataSource.length),"virtual"===e.scrolling&&t>=e.virtualModeCachedRowsCount&&(l=e.rows[0]?e.rows[0].height*e.dataSource.length:e.layout.rowMinHeight*e.dataSource.length)}return t&&(l=r*Math.ceil(o.length/s)),e.__scrollHeight=l,e.__frozenNearHeight=n,e.__frozenFarHeight=i,e._scrollView.scrollHeight=l-e.$.scrollView.offsetHeight+n+i,l=e.__scrollHeight+n+i-1,e.grouping.enabled&&e.dataSource.groupBy.length>0&&e.grouping.groupIndent>0&&"advanced"===e.grouping.renderMode&&(l+=parseInt(e.grouping.groupIndent/2)),e.__scrollHeight=l,u.remove(),o[0]&&delete o[0]._isMeasureRow,e.rows.canNotify=!0,l}_measureColumnHeight(){const e=this;if(e.__measuredColumnHeight)return e.__measuredColumnHeight;const t=document.createElement("smart-grid-column");t.style.height="auto",t.style.position="static";const o=document.createElement("div");o.classList.add("smart-label"),o.innerHTML="aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRwWxXyYzZ1234567890",t.appendChild(o),e.$.columnHeader.appendChild(t);let l=e.$.columnHeader.offsetHeight;return e.$.columnHeader.removeChild(t),e._columnHeights&&e._columnHeights.length>1&&(l=e._columnHeights[0]),l<e.layout.columnMinHeight&&(l=e.layout.columnMinHeight),e.__measuredColumnHeight=l,l}_initializeColumnGroupsHierarchy(){const e=this;let t=0;e.$.columnContainer.innerHTML="";const o=JSON.parse(JSON.stringify(e.columnGroups));if(o.length>0){for(let t=0;t<o.length;t++)o[t].parent=null,o[t].groups=null,o[t].labelTemplate=e.columnGroups[t].labelTemplate;for(let t=0;t<e.viewColumns.length;t++)e.viewColumns[t].parent=null,e.viewColumns[t].groups=null;const l=function(e){for(let t=0;t<o.length;t++){let l=o[t];if(l.name===e)return l}return null},a=function(e){let t=new Array;if(e.columnGroup&&t.push(e),e.groups)for(let o=0;o<e.groups.length;o++)if(e.groups[o].columnGroup)t.push(e.groups[o]);else if(e.groups[o].groups){let l=a(e.groups[o]);for(let e=0;e<l.length;e++)t.push(l[e])}return t};for(let e=0;e<o.length;e++){let t=o[e];if(t.groups||(t.groups=null),t.parentGroup){let e=l(t.parentGroup);e&&(t.parent=e,e.groups||(e.groups=new Array),-1===e.groups.indexOf(t)&&e.groups.push(t))}}for(let t=0;t<e.viewColumns.length;t++){let o=e.viewColumns[t];if(o.columnGroup){let e=l(o.columnGroup);e&&(e.groups||(e.groups=new Array),o.parent=e,-1===e.groups.indexOf(o)&&e.groups.push(o))}}for(let o=0;o<e.viewColumns.length;o++){const l=e.viewColumns[o];let a=l;for(l.level=0;a.parent;)a=a.parent,l.level++;a=l;let n=l.level;for(t=Math.max(t,l.level);a.parent;)a=a.parent,a&&(a.level=--n)}for(let t=0;t<o.length;t++){const l=o[t],n=a(l);l.columns=n;let i=new Array,r=0,s="near";0===n.length&&(r=-1,l.visible=!1);for(let t=0;t<n.length;t++)i.push(e.viewColumns.indexOf(n[t])),n[t].freeze&&("far"===n[t].freeze&&(s="far"),r++);r===n.length?l.freeze=s:r>0&&r<n.length&&(e.classList.add("smart-visibility-hidden"),e.error(e.localize("frozenColumns",{elementType:"Grid"}))),i.sort((function(e,t){return(e=parseInt(e))<(t=parseInt(t))?-1:e>t?1:0}));for(let t=1;t<i.length;t++)i[t]!==i[t-1]+1&&(e.classList.add("smart-visibility-hidden"),e.error(e.localize("columnGroups",{elementType:"Grid"})))}}e._columnGroupsLevel=1+t,e._columnGroups=o}_refreshColumnHeights(){const e=this;if("card"===e.view)return;e.$.columnHeader.style.height="",e._viewColumnsHeight=e._measureColumnHeight(),e._columnHeights=[];let t=0;for(let o=0;o<e._columnGroupsLevel;o++){let l=e._viewColumnsHeight;e.layout.columnHeight&&(l="number"==typeof e.layout.columnHeight?e.layout.columnHeight?e.layout.columnHeight:e._viewColumnsHeight:e.layout.columnHeight?e.columnHeight(o):e._viewColumnsHeight),l<e.layout.columnMinHeight&&(l=e.layout.columnMinHeight),l?(e._columnHeights.push(l),t+=l):(t+=e._viewColumnsHeight,e._columnHeights.push(e._viewColumnsHeight))}e._columnHeaderHeight=e._columnGroupsLevel*e._viewColumnsHeight,e._columnHeaderHeight=t,e.$.columnHeader.style.height=e._columnHeaderHeight+"px";const o=function(t){let o=0;for(let l=0;l<t.level;l++)o+=e._columnHeights[l];return o},l=function(t){let l=o(t),a=e._columnHeaderHeight-l;for(let o=t.level+1;o<e._columnHeights.length;o++){const l=o;for(let o=0;o<e.viewColumns.length;o++){const n=e.viewColumns[o];let i=!1;if(n.level===l){let o=n;for(;o.parent;){if(o.parent===t){a=e._columnHeights[l],i=!0;break}o=o.parent}if(i)break}}}return a};for(let t=0;t<e.viewColumns.length;t++){const a=e.viewColumns[t],n=l(a);a.computedHeight=n,a.top=o(a)}for(let t=0;t<e._columnGroupsLevel-1;t++)for(let a=0;a<e._columnGroups.length;a++){const n=e._columnGroups[a];if(n.level!==t)continue;if(n.groups){const e=l(n),t=o(n);n.top=t,n.computedHeight=e}const i=n.element;i&&(i.style.width=n.computedWidth+"px",e.rightToLeft?i.style.right=n.left+"px":i.style.left=n.left+"px",i.style.top=n.top+"px",i.style.height=n.computedHeight+"px",i.style.lineHeight=n.computedHeight+"px")}}_refreshColumnWidths(){const e=this;e.__clientSize=null;const t=e.$.verticalScrollBar.offsetWidth>0?e.$.verticalScrollBar.offsetWidth:0,o=e.dataSource.groupBy||[];let l=e.grouping.enabled&&"advanced"===e.grouping.renderMode?e.grouping.groupIndent*(1+o.length):0,a=0;e.selection.checkBoxes.enabled&&(a=e._selectionColumn.computedWidth?e._selectionColumn.computedWidth:e._selectionColumn.minWidth);const n=e._clientSize.width-t-l;let i=0,r=[],s=0,d=0,u=0;if(e.editing.enabled&&!e.editing.commandColumn.inline){const t=function(){const t=document.createElement("div"),o=document.createElement("div"),l=e.editing.commandColumn.dataSource;let a=0,n="",i=0;o.classList.add("smart-label");for(let t in l){const o=l[t];let a=!1;if("commandColumnMenu"===t)continue;let r=!1;a||(!0===o.visible?(i++,r=!0):"auto"===o.visible&&((e.editing.editRow||e.editing.editCell)&&!e.editing.dialog.enabled||"commandColumnEdit"!==t?!e.editing.editRow&&!e.editing.editCell||e.editing.dialog.enabled||("commandColumnUpdate"===t||"commandColumnCancel"===t)&&(i++,r=!0):(i++,r=!0)),a=!0),r&&"icon"!==e.editing.commandColumn.displayMode&&(n+="<span>"+("{{messages}}"===o.label?e.localize(t):o.label)+"</span>")}return o.innerHTML="<span>"+n+"</span>",t.appendChild(o),t.style.width="auto",t.style.position="static",e.$.columnHeader.appendChild(t),a=10+o.firstChild.offsetWidth,e.$.columnHeader.removeChild(t),"icon"===e.editing.commandColumn.displayMode?a=20+20*i:"labelAndIcon"===e.editing.commandColumn.displayMode?a+=25*i:a+=10*i,a};if(e._commandColumn.visible=e.editing.commandColumn.visible,e.editing.commandColumn.visible){const o=e.editing.commandColumn.width?e.editing.commandColumn.width:t();e.columns.canNotify=!1,e._commandColumn.width=o,e.columns.canNotify=!0}}for(let t=0;t<e.viewColumns.length;t++){const o=e.viewColumns[t];let l;"number"==typeof o.width?l=o.width:o.width&&o.width.toString().indexOf("%")>=0?(l=parseFloat(o.width)/100,l*=n-a):o.width&&(o.width.toString().indexOf("em")>=0||o.width.toString().indexOf("pt")>=0||o.width.toString().indexOf("fr")>=0)?(l=parseFloat(o.width),l*=16):"auto"===o.width?l=o._autoSize():o.visible&&(r.push(o),l=0),o.overflowWidth&&(l-=o.overflowWidth),o.visible&&(i+=l),l<o.minWidth&&(l=o.minWidth),o.computedWidth=l}if(r){let e=n-i,t=0;e<0&&(e=60*r.length);for(let o=0;o<r.length;o++){const l=r[o];let a;a=e/r.length,o===r.length-1&&(a=e-t),l.overflowWidth&&(a-=l.overflowWidth),a<l.minWidth&&(a=l.minWidth),l.computedWidth=a,t+=a}}for(let t=0;t<e.viewColumns.length;t++){let o=e.viewColumns[t];o.visible&&(l>0&&!o.autoGenerated&&(o.computedWidth+=l,l=0),o.freeze?!0===o.freeze||"near"===o.freeze?(o.left=s,u+=o.computedWidth,s+=o.computedWidth):"far"===o.freeze&&(o.left=d,d+=o.computedWidth):(o.left=u,u+=o.computedWidth))}for(let t=0;t<e._columnGroupsLevel-1;t++)for(let o=0;o<e._columnGroups.length;o++){const l=e._columnGroups[o];if(l.level!==t)continue;let a=99999;if(l.groups){const e=function(t){let o=0;for(let l=0;l<t.groups.length;l++){let n=t.groups[l];n.groups?o+=e(n):n.visible&&(a=Math.min(n.left,a),o+=n.computedWidth)}return o};l.computedWidth=e(l),l.left=a}}}_createColumnHeaderCellElements(){const e=this,t=e.$.columnContainer,o=document.createDocumentFragment();let l=0;e._columnElements=[],e.$.columnContainer.innerHTML="",e.$.columnNearContainer.innerHTML="",e.$.columnFarContainer.innerHTML="",e.rightToLeft?(e.$.columnNearContainer.classList.remove("near"),e.$.columnNearContainer.classList.add("far"),e.$.columnFarContainer.classList.remove("far"),e.$.columnFarContainer.classList.add("near")):(e.$.columnNearContainer.classList.remove("far"),e.$.columnNearContainer.classList.add("near"),e.$.columnFarContainer.classList.remove("near"),e.$.columnFarContainer.classList.add("far"));for(let t=0;t<e._frozenNearColumns.length;t++)e._frozenNearColumns[t].createElement();for(let t=0;t<e._frozenFarColumns.length;t++)e._frozenFarColumns[t].createElement();for(let t=0;t<e.viewColumns.length;t++){const a=e.viewColumns[t];if(a.freeze)continue;const n=a.createElement();void 0!==a.computedWidth?(a.parent&&n.setAttribute("column-group",a.parent.name),a.parent&&a.parent.columns&&a.parent.columns[0].dataField===a.dataField&&n.setAttribute("column-group-first-child",""),l+=a.computedWidth,e._columnElements.push(n),l<2*e._clientSize.width&&o.appendChild(n)):(e._columnElements.push(n),o.appendChild(n))}for(let t=0;t<e._columnGroups.length;t++){const l=e._columnGroups[t],a=new Smart.Grid.Column({visible:void 0===l.visible||l.visible,allowSort:!1,allowFilter:!1,allowSelect:!1,grid:e,dataField:l.name,label:l.label,labelTemplate:l.labelTemplate,align:l.align,verticalAlign:l.verticalAlign,showIcon:!1});l.column=a;const n=a.createElement();n.style.width=l.computedWidth+"px",e.rightToLeft?n.style.right=l.right+"px":n.style.left=l.left+"px",n.style.top=l.top+"px",n.style.height=l.computedHeight+"px",n.style.lineHeight=l.computedHeight+"px",o.appendChild(n),l.element=n,l.grid=this,n.onpointerdown=()=>{if(e.selection.allowColumnHeaderSelection){const t=function(e){let o=new Array;if(e.columnGroup&&o.push(e),e.groups)for(let l=0;l<e.groups.length;l++)if(e.groups[l].columnGroup)o.push(e.groups[l]);else if(e.groups[l].groups){let a=t(e.groups[l]);for(let e=0;e<a.length;e++)o.push(a[e])}return o},o=t(l);e._selectColumnsRange(o[0].dataField,o[o.length-1].dataField)}}}e.htmlColumnLastChild||(e.htmlColumnLastChild=document.createElement("smart-grid-column"),e.htmlColumnLastChild.classList.add("top-far-corner"),e.htmlColumnLastChild.onpointerdown=e=>{e.stopPropagation(),e.preventDefault()},e.$.columnHeader.appendChild(e.htmlColumnLastChild)),t.appendChild(o),t.style.width=e._computedColumnsWidth+"px",!1===e.appearance.showColumnGroupLines&&e.setAttribute("appearance_hide-column-group-lines",""),e._refreshFrozenColumns()}_refreshFrozenColumns(){const e=this;e.$.columnNearContainer.style.width=e._frozenColumnsNearWidth+"px",e.$.columnFarContainer.style.width=e._frozenColumnsFarWidth+"px";for(let t=0;t<e._columnGroups.length;t++){const o=e._columnGroups[t];o.freeze&&o.element&&(!0===o.freeze||"near"===o.freeze?e.$.columnNearContainer.appendChild(o.element):"far"===o.freeze&&e.$.columnFarContainer.appendChild(o.element))}for(let t=0;t<e.viewColumns.length;t++){const o=e.viewColumns[t];o.freeze&&o.element&&(!0===o.freeze||"near"===o.freeze?e.$.columnNearContainer.appendChild(o.element):"far"===o.freeze&&e.$.columnFarContainer.appendChild(o.element))}}get _clientSize(){const e=this;if(e.__clientSize)return e.__clientSize;const t=getComputedStyle(e.$.container),o=parseFloat(t.paddingLeft)+parseFloat(t.paddingRight),l=parseFloat(t.paddingTop)+parseFloat(t.paddingBottom),a=parseFloat(t.borderLeftWidth)+parseFloat(t.borderRightWidth),n=parseFloat(t.borderTopWidth)+parseFloat(t.borderBottomWidth);return e.__clientSize={width:e.$.container.offsetWidth-o-a,height:e.$.container.offsetHeight-l-n},e.__clientSize}_initializeRowElements(){const e=this;if(!e.rows)return;e.rows.canNotify=!1;let t=0,o=e._clientSize.height;e.$.rowNearContainer.innerHTML="",e.$.rowFarContainer.innerHTML="",e.$.rowContainer.innerHTML="",e._rowElements=[],e._overflowOffset=Math.max(o,300),e.rightToLeft?(e.$.rowNearContainer.classList.remove("near"),e.$.rowNearContainer.classList.add("far"),e.$.rowFarContainer.classList.remove("far"),e.$.rowFarContainer.classList.add("near")):(e.$.rowFarContainer.classList.remove("near"),e.$.rowFarContainer.classList.add("far"),e.$.rowNearContainer.classList.remove("far"),e.$.rowNearContainer.classList.add("near"));const l=e.offsetHeight;e.$.container.classList.add("smart-hidden");const a=e.offsetHeight;e.$.container.classList.remove("smart-hidden"),"hidden"!==e.verticalScrollBarVisibility&&l===a||(o=e._scrollHeight);const n=function(){const l=document.createDocumentFragment();if(e.rows&&0===e.rows.length)return;for(let a=0;a<e.rows.length;a++){const n=e.rows[a];if(n.freeze&&n.visible)continue;const i=n.createElement();if(l.appendChild(i),t+=e.layout.rowMinHeight,t>e._overflowOffset+o)break}e.$.rowContainer.appendChild(l);const a=e.$.rowContainer.children;for(let t=0;t<a.length;t++){const o=a[t];e.rows[t]&&(e.rows[t].element=o),e._rowElements[t]=o}};for(let t=0;t<e._frozenNearRows.length;t++){const o=e._frozenNearRows[t];o.grid=e;const l=o.createElement();o.element=l,e.$.rowNearContainer.appendChild(l)}for(let t=0;t<e._frozenFarRows.length;t++){const o=e._frozenFarRows[t];o.grid=e;const l=o.createElement();o.element=l,e.$.rowFarContainer.appendChild(l)}n();let i=0;for(;t<1.5*o&&++i<50;)n();e.rows.canNotify=!0}_refreshSummary(e){const t=this;t.summaryRow.visible&&(t._summaryUpdateTimer&&clearTimeout(t._summaryUpdateTimer),t._summaryUpdateTimer=setTimeout((()=>{!0!==t.editing.isEditing&&(t._calculateSummary(),!1!==e&&t._recycle(!1,!0,!1))}),100))}_initializeRows(){const e=this;let t=0;e._frozenNearDefaultRows=[],e._frozenFarDefaultRows=[],e.rows=[],e.rowById=[],e._frozenFarRows=[],e._frozenNearRows=[];let o=e._createdDate||new Date,l=void 0!==e._createdBy?e._createdBy:e.currentUser;const a=function(){let t=[],o=!1;for(let l=0;l<e.columns.length;l++){const a=e.columns[l];let n={};a.summary&&a.summary.length>0&&(o=!0,n[a.dataField]=a.summary,t.push(n))}if(!o)return void(e._summaryItems=[]);const l=e.getSelectedRowIds();if(l.length>=1){const o=[];for(let t=0;t<l.length;t++){const a=e.dataSource.dataItemById[l[t]];a&&o.push(a)}e._summaryItems=e.dataSource.summarize(t,o)}else if(e._selection&&e._selection.cells&&Object.keys(e._selection.cells).length>2){const o=e.getSelectedCells(!1),l=[],a=[];for(let t=0;t<o.length;t++){const n=o[t],i=n[0],r=e.dataSource.dataItemById[i];-1===l.indexOf(r)&&l.push(r),-1===a.indexOf(n[1])&&a.push(n[1])}e._summaryItems=e.dataSource.summarize(t,l);const n=Object.keys(e._summaryItems);for(let t=0;t<n.length;t++){const o=n[t];-1===a.indexOf(o)&&delete e._summaryItems[o]}}else e._summaryItems=e.dataSource.summarize(t)};e._calculateSummary=a;const n=e.columns?e.columns.filter((e=>void 0!==e.getCellValue)):[],i=function(a,i,r){let s=null;if(e.isInitialized&&(o=new Date),s=a?a.grid?a:new Smart.Grid.Row({data:a,index:i,grid:e,createdBy:l,createdDate:o}):new Smart.Grid.Row({data:{},index:i,grid:e,createdBy:l,createdDate:o}),n)for(let e=0;e<n.length;e++){const t=n[e],o=t.getCellValue(s.id,t.dataField,a);void 0!==o&&(s.data[t.dataField]=o)}if(e.rowById[s.id]&&(s.id=e.rows.length,e.rowById[s.id])){const e=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};s.id=e()}if(e.onRowInit){e.onRowInit(i,s,e),30!==s.height&&(s.cellHeight=s.height);for(let t in s)-1!==s.properties.indexOf(t)||t.startsWith("_")||e.error(e.localize("invalidRowProperty",{elementType:"Grid",propertyName:t}))}if(s.selected&&(e._selection.rows[s.id]=!0,e._selection.indexes[s.index]=s.index),s.freeze&&s.visible){if(!0===s.freeze||"near"===s.freeze){e.rows.splice(t++,0,s);const o=e.rows[t-1];-1===e._frozenNearRows.indexOf(o)&&e._frozenNearRows.push(o)}else if("far"===s.freeze){e.rows.push(s);const t=e.rows[e.rows.length-1];-1===e._frozenFarRows.indexOf(t)&&e._frozenFarRows.push(t)}}else e.rows[i]?e.rows.splice(i,0,s):e.rows.push(s),s.data&&s.data.$&&(s.data.$.history=s.history,s.data.$.starred=s.starred,s.data.$.comments=s.comments,s.data.$.style=s.style);if(!("virtual"===e.scrolling||e.paging.enabled&&e.dataSource&&e.dataSource.virtualDataSource))if(e.onRowInserted){const t=void 0===i?e.rows[e.rows.length-1]:e.rows[i],o=o=>{const l=t;if(void 0!==o&&Array.isArray(o)&&(o=o[0]),void 0===o){if(e.rowById[l.id]){const t=e.dataSource.dataItemById[l.id],o=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};l.id=o(),l.data&&l.data.$?l.data.$.id=l.id:l.data.id=l.id,e._getId()&&(l.data[e._getId()]=l.id),t&&(e.dataSource.dataItemById[l.id]=l.data)}e.rowById[l.id]=l}else{const t=e.dataSource.dataItemById[l.id];l.id=o,l.data&&l.data.$?l.data.$.id=l.id:l.data.id=l.id;const a=e._getId();a&&(l.data[e._getId()]=l.id),t&&(t[a]=o,e.dataSource.dataItemById[l.id]=t,l.data=t),e.rowById[l.id]=l}-1!==l.index&&void 0!==l.index||(l.index=e.rows.length),e._setAddUndoRedo(l),!e.editing.isEditing&&e.isInitialized&&(e._recycle(!1,!0),e.grouping.groupBy.length&&e.refresh()),e._onRowInserted&&e._onRowInserted(l),r&&r(l)};if(void 0===i&&(i=e.rows.length-1,void 0!==t.index&&-1!==t.index||(t.index=i)),e.isInitialized){e._rowInsertTimer&&clearTimeout(e._rowInsertTimer),e._rowInsert||(e._rowInsert=[]),e._rowInsert.push({row:t,index:i});const l=e._keyboardAdd?300:150;e._rowInsertTimer=setTimeout((()=>{if(1===e._rowInsert.length)e.onRowInserted([i],[t],o,e),delete e._rowInsert,delete e._undoRedoAction;else{let t=[],o=[];for(let l=0;l<e._rowInsert.length;l++)t.push(e._rowInsert[l].index),o.push(e._rowInsert[l].row);delete e._rowInsert,e.onRowInserted(t,o,(t=>{e.beginUpdate();for(let l=0;l<o.length;l++){const a=o[l],n=t?t[l]:void 0;if(void 0!==n){const t=e.dataSource.dataItemById[a.id];a.id=a.data.id=n;const o=e._getId();o&&(a.data[e._getId()]=a.id),e.rowById[a.id]=a,t&&(t[o]=n,e.dataSource.dataItemById[a.id]=t,a.data=t)}e._setAddUndoRedo(a),-1!==a.index&&void 0!==a.index||(a.index=e.rows.length),e._onRowInserted&&e._onRowInserted(a),r&&r(a)}delete e._undoRedoAction,e.endUpdate(!1)}),e)}}),l)}else e.onRowInserted([i],[t],o,e)}else{const t=void 0===i?e.rows[e.rows.length-1]:e.rows[i];void 0===i&&(i=e.rows.length-1,void 0!==t.index&&-1!==t.index||(t.index=i)),r&&r(t)}},r=function(){const t=e.rows[e.rows.length-1];e.rows.pop(),e.onRowRemoved&&e.onRowRemoved([t.id],[t.index],e),e._onRowRemoved&&e._onRowRemoved([t.id],[t.index],e),e._setRemoveUndoRedo(t)},s=function(t){const o=e.rows[t];o.selected&&o.setProperty("selected",!1),e.rows.splice(t,1),e.onRowRemoved&&e.onRowRemoved([o.id],[t],e),e._onRowRemoved&&e._onRowRemoved([o.id],[t],e),e._setRemoveUndoRedo(o)};e._add=i,e._removeLastRow=r,e._removeAt=s,e._rowHeight=e._autoRowHeight;const d=e.dataSource.length,u=e.onRowInserted;e.onRowInserted=null,e.setAttribute("aria-rowcount",d);const c=e.dataSource&&e.dataSource.virtualDataSource&&!e.dataSource.virtualDataSourceOnExpand&&e.dataSource.length>e.virtualModeCachedRowsCount&&"infinite"!==e.scrolling;if(e.dataSource&&e.dataSource.virtualDataSource&&e.paging.enabled&&!e.dataSource.virtualDataSourceOnExpand)for(let t=0;t<e.dataSource.boundSource.length;t++){const o=e.dataSource[t],l=t+e.paging.pageIndex*e.paging.pageSize;e.dataSource.id||(o.$.id=l),i(o,l)}else if(c){let t=e.dataSource.length>e.virtualModeCachedRowsCount?e.virtualModeCachedRowsCount:e.dataSource.length;"infinite"===e.scrolling&&(t=e.dataSource.length);for(let o=0;o<t;o++){const t=e.dataSource[o];i(t,o)}}else for(let t=0;t<e.dataSource.length;t++){const o=e.dataSource[t];i(o,t)}for(let t=0;t<e._frozenFarRows.length;t++){const o=e._frozenFarRows[t];e.rows.splice(e.rows.indexOf(o),1),e.rows.push(o)}if(a(),e.onRowInserted=u,e.dataSource.notify((function(t){if(e.dataSource._updating)return;const o=t.data;e.rows.canNotify=!1;let l=!1;switch(t.action){case"add":if(!o)return;if(void 0!==o.length)for(let t=0;t<o.length;t++)i(o[t],e.dataSource.length-o.length+t);else i(o,e.dataSource.length-1);break;case"update":if(o.length){let o=[],a=[],n=[];for(let r=0;r<n.length;r++){const s=t.index[r];e.rows[s]?(e.rows[s].data=n[r],o.push(s),a.push(e.rows[s]),n.push(e.rows[s].data)):(i(n[r],n[r].$.index),l=!0)}e.onRowUpdated&&e.onRowUpdated(o,a,n,e)}else{const l=t.index;e.rows[l]?e.rows[l].data=o:i(o,e.dataSource.length-1),e.onRowUpdated&&e.onRowUpdated([l],[e.rows[l]],[e.rows[l].data],e)}break;case"insert":i(o,t.index);for(let t=0;t<e.rows.length;t++)e.rows[t].index=t;break;case"remove":s(t.index);break;case"removeLast":r();break;case"bindingComplete":if(e.dataSource&&e.dataSource.url||e.dataSource&&!e.dataSource.virtualDataSource){if(e.appearance.displayLoadingIndicator=!1,e._setLoadingIndicatorVisibility(),e._toggledRow=null,e.dataSource.length!==d){if(e.paging.enabled){const t=e.$.headerPager.querySelector("smart-pager"),o=e.$.footerPager.querySelector("smart-pager");t&&(t.pagesCount=Math.ceil(e.dataSource.length/e._pageSize),t.$&&o.$.pageSizeSelector&&(t.$.pageSizeSelector.disabled=e.dataSource.length<e.pager.pageSizeSelector.dataSource[0])),o&&(o.pagesCount=Math.ceil(e.dataSource.length/e._pageSize),o.$&&o.$.pageSizeSelector&&(o.$.pageSizeSelector.disabled=e.dataSource.length<e.pager.pageSizeSelector.dataSource[0]))}if(0===d&&0===e.columns.length&&e.dataSource.dataFields.length>0){const t=e.context;e.context=e,e.columns.canNotify=!1,e.columns=[],e._renderColumns(),e._resetCachedLayout(),e.columns.canNotify=!0,e.context=t}e._initializeRows(),e._initializeRowElements(),e.refresh()}e._recycle(),e.onLoad&&(e.onLoad(),delete e.onLoad)}}a(),("update"!==t.action||l)&&e._refreshLayout(),e._recycle(),e.rows.canNotify=!0})),e._observeRows(),e.summaryRow.visible){const t=new Smart.Grid.Row({height:e.layout.rowMinHeight,freeze:"near",visible:"near"===e.summaryRow.position,summaryRowIndex:0,summaryRow:!0}),o=new Smart.Grid.Row({height:e.layout.rowMinHeight,freeze:"far",visible:"far"===e.summaryRow.position,summaryRowIndex:0,summaryRow:!0});"near"===e.summaryRow.position&&e._frozenNearRows.splice(0,0,t),"far"===e.summaryRow.position&&e._frozenFarRows.push(o)}if(e.filtering.enabled&&e.filtering.filterRow.visible){const t=new Smart.Grid.Row({freeze:!0,autoGenerated:!0,filterRow:!0});e._frozenNearRows.splice(0,0,t)}e._renderAddNewRow()}_observeRows(){const e=this;e._frozenNearRows=[],e._frozenFarRows=[],e.rows=new Smart.ObservableArray(e.rows,null,{allowToggle:!0,allowResize:!0,allowCheck:!0,allowSelect:!0,allowReorder:!0,expanded:!0,selected:!0,checked:!0,visible:!0,enabled:!0,minHeight:!0,height:!0,freeze:!0,showDetail:!0,data:!0,visibleIndex:!0,index:!0,comments:!0,style:!0,starred:!0,updatedBy:!0,updatedDate:!0,createdDate:!0,createdBy:!0,history:!0});for(let t=0;t<e.rows.length;t++){const o=e.rows[t];!0===o.freeze||"near"===o.freeze?e._frozenNearRows.push(o):"far"===o.freeze&&e._frozenFarRows.push(o),e.rowById[e.rows[t].id]=o}e.rows.notify((function(t){if(!e.rows.canNotify)return;const o=t.action;if("length"===o)return;if(t.path)return e.rows.canNotify=!1,(e.rowById[t.target.id]||"selected"===t.propertyName)&&(l=t.target,a=t.propertyName,n=t.oldValue,i=t.newValue,n===i&&"selected"!==a&&"showDetail"!==a||(l.propertyChanged(a,n,i),e.onRowChange&&l.properties.indexOf(a)>=0&&e.onRowChange(l,a,n,i,e))),void(e.rows.canNotify=!0);var l,a,n,i;if(e.rows.canNotify=!1,!e.dataSource)return;switch(e.dataSource.canNotify=!1,o){case"add":{const o=function(o){let l=e.rows[o];if(l instanceof Smart.Grid.Row==0){l=new Smart.Grid.Row(l);const a=e.rows.canNotify;e.rows.canNotify=!1,t.object[o]=l,l=t.object[o],e.rows.canNotify=a}if(l.grid=e,e.dataSource&&e.dataSource.virtualDataSource){e.rows.canNotify=!1;for(let t=0;t<e.rows.length;t++){const o=e.dataSource.boundSource[t],l=e.rows[t];o&&(l.data=o,l.id=o.$.id),e.rowById[l.id]=l}e.rows.canNotify=!0}else(()=>{if(0===e.dataSource.length&&e.dataSource.dataFields&&0===e.dataSource.dataFields.length&&e.columns&&e.columns.length){let t=[];for(let o=0;o<e.columns.length;o++){const l=e.columns[o];t.push({name:l.dataField,dataType:l.dataType||"string"}),l.displayField&&l.displayField!==l.dataField&&t.push({name:l.displayField,dataType:l.dataType||"string"})}e.dataSource.dataFields=t}if(o<e.dataSource.length?e.dataSource.insert(o,e.rows[o].data):e.dataSource.add(e.rows[o].data),e.dataSource[o]){l.data=e.dataSource[o];for(let t=0;t<e.dataSource.dataFields.length;t++){const o=e.dataSource.dataFields[t].name;e.columnByDataField[o]||delete l.data[o]}void 0!==e.dataSource[o].$.id&&(l.id=e.dataSource[o].$.id,e.rowById[l.id]=l),l.data.$&&l.history&&(l.data.$.history=l.history)}-1!==l.index&&void 0!==l.index||(l.index=o),l.selected&&(e._selection.rows[l.id]=!0,e._selection.indexes[l.index]=l.index),l.freeze&&(!0===l.freeze||"near"===l.freeze?e._frozenNearRows.push(l):"far"===l.freeze&&e._frozenFarRows.push(l)),e._conditionalColors&&e._conditionalColors.update&&setTimeout((()=>{e._conditionalColors.update(),e._recycle(!1)}),100)})()};for(let e=0;e<t.addedCount;e++)o(t.index+e);break}case"update":if(t.target){const o=e.rowById[t.target.id],l=e.rows.indexOf(o);e.dataSource.update(l,o)}else{const o=e.rows.indexOf(t.index);e.dataSource.update(t.index,o)}break;case"remove":{if(e.dataSource&&e.dataSource.virtualDataSource){e.rows.canNotify=!1;const o=t.removed&&t.removed.length>0?t.removed[0]:null;o&&delete e.rowById[o.id];for(let t=0;t<e.dataSource.boundSource.length;t++){const o=e.dataSource.boundSource[t],l=e.rows[t];l&&(l.data=o,l.id=o.$.id,e.rowById[l.id]=l)}return e.rows.canNotify=!0,e.refresh(),void e._refreshPaging(!1)}const o=t.removed&&t.removed.length>0?t.removed[0]:null;o&&delete e.rowById[o.id],e.dataSource.removeAt(t.index);break}}if(e.dataSource.canNotify=!0,e.rows.canNotify=!0,!o)return;let r=e.isInitialized&&e._rowElements&&e._rowElements.length<e.rows.length;"add"===o&&1===t.addedCount&&r&&e._rowElements.length>0&&e._rowElements[e._rowElements.length-1].classList.contains("smart-hidden")&&(r=!1),r&&e._initializeRowElements(),e.refresh(!1,o),e._refreshPagesCount(),e._sortedColumns&&e._sortedColumns.length>0&&e.refreshSort()}))}setDropDownLabel(e){const t=this;t.$.dropDownElement&&(t.$.dropDownElement.querySelector(".smart-action-button").innerHTML=e)}openDropDown(){const e=this;if(!e.dropDownMode)return;if(!e.$.dropDownPopup)return;const t=e.$.dropDownPopup,o=e.$.dropDownElement;o.setAttribute("active",""),o.querySelector(".smart-drop-down-button").setAttribute("active",""),(()=>{const l=0,a=0;if(e.layout.isDirty=!0,window.screen.availWidth<400)return t.open("left","top"),t.style.width=e.offsetWidth+"px",void(t.style.height=e.offsetHeight+"px");{const o={width:e.layout.dropDownWidth,height:e.layout.dropDownHeight};t.style.width="auto"===o.width?o.width:o.width+"px",t.style.height="auto"===o.height?o.height:o.height+"px"}const n=o;if(n){const o=e.offset(n),i=o.left-l,r=l,s=Math.max(r,i);t.open(s,o.top+n.offsetHeight-a)}else t.classList.add("center"),t.open("center","center");e.style.display=""})()}closeDropDown(){const e=this;e.dropDownMode&&e.$.dropDownPopup&&(e.$.dropDownElement.removeAttribute("active"),e.$.dropDownElement.querySelector(".smart-drop-down-button").removeAttribute("active"),e.$.dropDownPopup.close())}_renderInDropDown(){const e=this;if(e.dropDownMode&&(e.dropDownMode&&(e.style.display="none"),e.dropDownMode&&void 0===e._dropDownMode)){e._dropDownMode=!0;const t=document.createElement("div"),o=e._createPopup();o.allowDrag=!1,o.classList.add("smart-grid-drop-down-popup"),e.$.dropDownElement=t,e.$.dropDownPopup=o,t.onmouseenter=()=>{t.hasAttribute("active")||t.setAttribute("hover","")},t.onmouseleave=()=>{t.removeAttribute("hover")},t.classList.add("smart-grid-drop-down-button","smart-drop-down-box"),e.parentNode.insertBefore(t,e),t.innerHTML=`<div class="smart-container" role="presentation">\n <div class="smart-content" role="presentation">\n <div class="smart-buttons-container" role="presentation">\n <span class="smart-action-button">${e.localize("dropDownPlaceholder")}</span>\n <span class="smart-drop-down-button">\n <span class="smart-drop-down-button-icon" id="arrow" aria-hidden="true"></span>\n </span>\n </div>\n </div>\n </div>`,t.onclick=()=>{o.classList.contains("open")?e.closeDropDown():e.openDropDown()},e.style.height="100%",e.style.width="100%",o.content.appendChild(e),e._cellsMerge=[],e._cellStyles=[],e._popupDropDown||(e._popupDropDown=o,o._refreshPosition=()=>{const l=e.offset(t),a=t.offsetHeight,n=e.offset(e);if(o.style.maxHeight="",o.style.minHeight="",l.top+a+o.offsetHeight>window.innerHeight-n.top){const e=a+l.top+o.offsetHeight-window.innerHeight+n.top;o.style.maxHeight=Math.max(250,o.offsetHeight-e)+"px",o.style.minHeight="250px"}else o.style.maxHeight="",o.style.minHeight=""},o.onOpen=function(){e._popupDropDown._refreshPosition(),e.$.fireEvent("dropDownGridOpen")},o.onClose=function(){e.$.fireEvent("dropDownGridClose")},o.onkeydown=function(e){"Escape"===e.key&&(o.result=!1,o.close())})}}render(){const e=this,t=()=>0===e.offsetWidth||0===e.offsetHeight;if(t())return requestAnimationFrame((()=>{e.isInitialized||t()||(e._undoRedo=[],e._refreshCurrentUser(),e._render())})),e.setAttribute("role","grid"),e.editing.enabled||e.setAttribute("aria-readonly",!0),void super.render();const o=e.context;e.context=e,e.setAttribute("role","grid"),"grid"!==e.view&&e.setAttribute("view",e.view),e.editing.enabled||e.setAttribute("aria-readonly",!0),e._undoRedo=[],e._refreshCurrentUser(),e._render(),e.context=o,super.render()}_renderColumns(e){const t=this;t._initializeColumns(),t._initializeColumnGroupsHierarchy(),t._refreshColumnsResponsiveVisibility(),t._createColumnHeaderCellElements(),t._renderColumnGroupHeaders(),!1!==e&&t._refresh()}_renderRows(e){const t=this;t._initializeRows(),t._initializeRowElements(),!1!==e&&t._refresh()}_setupMobile(){const e=this;if(void 0===e._mobile&&(e._mobile=Smart.Utilities.Core.isMobile),e._mobile){e.editing.addNewColumn.visible=!1,e.layout.rowMinHeight=e.layout.rowHeight=e.layout.columnMinHeight=e.layout.columnHeight=25,e.layout.columnWidth=180,e.behavior.rowResizeMode="none",e.behavior.allowRowReorder=!1,e.editing.action="none",e._scrollView.vScrollBar.showButtons=!1,e._scrollView.hScrollBar.showButtons=!1,e.style.setProperty("--smart-scroll-bar-size","12px"),document.body.style.setProperty("--smart-data-view-sort-panel-width","345px"),e._scrollContent=document.createElement("div"),e._scrollContent.style.width="100%",e._scrollContent.style.height="100%",e._scrollContent.style.position="absolute",e._scrollContent.style.left="0px",e._scrollContent.style.top="0px",e._scrollContent.style.background="white",e._scrollContent.style.zIndex=9999,e._scrollContent.style.opacity=.1,e._scrollContent.style.overflow="auto",e.addEventListener("viewChange",(()=>{"grid"===e.view?e._scrollContent.classList.remove("smart-hidden"):e._scrollContent.classList.add("smart-hidden")})),e.addEventListener("beginEdit",(()=>{e._scrollContent.classList.add("smart-hidden")})),e.addEventListener("endEdit",(()=>{e._scrollContent.classList.remove("smart-hidden")})),e._scrollContent.ontouchmove=e=>{e.stopPropagation()},e._scrollContent.ontouchstart=e=>{e.stopPropagation()},e._scrollContent.onpointerdown=t=>{e._scrollContentScroll=!1,setTimeout((()=>{const o=e=>new PointerEvent(e,{bubbles:!0,cancelable:!0,composed:!0,pointerId:42,pointerType:"mouse",clientX:t.clientX,clientY:t.clientY,pageX:t.pageX,pageY:t.pageY});if(e._scrollContentScroll)e._hideActionButtons();else{const l=(e.enableShadowDOM?e.shadowRoot:e.getRootNode()).elementsFromPoint(t.clientX,t.clientY);if(l[2])if(l[2].classList.contains("smart-grid-add-row-button"))e._hideActionButtons(),l[2].dispatchEvent(o("click"));else if(l[2].classList.contains("smart-summary-placeholder")||l[2].classList.contains("summary-value-part"))e._hideActionButtons(),l[2].dispatchEvent(o("pointerup"));else if(l[2].closest("smart-menu-item")){e._hideActionButtons();const t=l[2].closest("smart-menu-item");l[2].closest("smart-menu")._menuItemSelectionHandler(t)}else{if(l[2].dispatchEvent(o("pointerdown")),e._lastMobileClickRange){const o=e._lastMobileClickRange;let l=!0;o.left<=t.pageX&&o.left+o.right>=t.pageX&&(l=!1),l&&e._hideActionButtons()}else e._hideActionButtons();const a=(o,l)=>{if(o&&o.autoShowActionButton){const a=l.getBoundingClientRect(),n=e.offset(l);if(n.left<=t.pageX&&n.left+a.width-6>=t.pageX){if(!e.hasColumnMenu(o))return;e._lastMobileClickRange={left:n.left,right:n.left+a.width-6},l._showActionButton()}else l._hideActionButton()}};for(let t=0;t<e._columnElements.length;t++){const o=e._columnElements[t];a(o.column,o)}}}}),300),t.stopPropagation()};let t=0;const o=()=>{const t=e._scrollContent.scrollLeft,o=e._scrollContent.scrollTop;e._scrollView.vScrollBar.value=o,e._scrollView.hScrollBar.value=t,e._scrollContentScroll=!0};e._scrollContent.onscroll=()=>{cancelAnimationFrame(t),t=0,t=requestAnimationFrame(o)},e._scrollContentView=document.createElement("div"),e._scrollContentView.style.width=e._scrollView.scrollWidth+"px",e._scrollContentView.style.height=e._scrollView.scrollHeight+"px",e._scrollContent.appendChild(e._scrollContentView),e.$.scrollView.appendChild(e._scrollContent)}}_render(){const e=this;if(e.isInitialized||(e.onBeforeInit&&(e.onBeforeInit(e),e.onBeforeInit=null),e.$.fireEvent("beforeInit",{grid:e}),e.header.visible&&(e.header.buttons.indexOf("views")>=0||e.header.buttons.indexOf("states")>=0)&&e._updateKanbanTaskFields()),e._setupMobile(),(()=>{if(null===e.dataSource)e.dataSource=new Smart.DataAdapter;else if(Array.isArray(e.dataSource)||"string"==typeof e.dataSource){let t=[];if(e.dataSourceSettings.dataFields&&e.dataSourceSettings.dataFields.length>0)e.dataSource=new Smart.DataAdapter({dataSource:e.dataSource,dataSourceType:e.dataSourceSettings.dataSourceType,dataFields:e.dataSourceSettings.dataFields,keyDataField:e.dataSourceSettings.keyDataField,parentDataField:e.dataSourceSettings.parentDataField,childrenDataField:e.dataSourceSettings.childrenDataField,groupBy:e.dataSourceSettings.groupBy||e.grouping.groupBy,mapChar:e.dataSourceSettings.mapChar,root:e.dataSourceSettings.root,record:e.dataSourceSettings.record,autoGenerateColumns:e.autoGenerateColumns,id:e.dataSourceSettings.id,virtualDataSource:e.dataSourceSettings.virtualDataSource,virtualDataSourceOnExpand:e.dataSourceSettings.virtualDataSourceOnExpand});else if(e.columns&&e.columns.length){for(let o=0;o<e.columns.length;o++){const l=e.columns[o];t.push({name:l.dataField,dataType:l.dataType||"string"}),l.displayField&&l.displayField!==l.dataField&&t.push({name:l.displayField,dataType:l.dataType||"string"})}e.dataSource=new Smart.DataAdapter({dataSource:e.dataSource,dataFields:t,dataSourceType:e.dataSourceSettings.dataSourceType,keyDataField:e.dataSourceSettings.keyDataField,parentDataField:e.dataSourceSettings.parentDataField,childrenDataField:e.dataSourceSettings.childrenDataField,groupBy:e.dataSourceSettings.groupBy||e.grouping.groupBy,mapChar:e.dataSourceSettings.mapChar,root:e.dataSourceSettings.root,record:e.dataSourceSettings.record,autoGenerateColumns:e.autoGenerateColumns,id:e.dataSourceSettings.id,virtualDataSource:e.dataSourceSettings.virtualDataSource,virtualDataSourceOnExpand:e.dataSourceSettings.virtualDataSourceOnExpand})}else e.dataSource=new Smart.DataAdapter({dataSource:e.dataSource})}})(),e._selection={rows:[],indexes:[],columns:[],cells:[]},e.dataSource&&e.dataSource.url&&(e.appearance.displayLoadingIndicator=!0,e._setLoadingIndicatorVisibility(),e.dataSource.data={sorting:e.getSortedColumns(),filtering:e.getFilteredColumns(),grouping:e.grouping.groupBy}),e.filtering.filterRow)for(let t=0;t<e.columns.length;t++)e.columns[t]._filterEditorInitialized&&(e.columns[t]._filterEditorInitialized=!1);const t=!e.isInitialized;if(t&&(e.onInit&&(e.onInit(e),e.onInit=null),e.$.fireEvent("init",{grid:e})),e._renderColumns(!1),e._renderRows(!1),e._renderPagers(),e._renderCommandBar(),e._renderConditionalFormatting(),e._initFormulaParser(),t&&e.grouping.enabled&&e.grouping.groupBy.length&&e.dataSource&&(e.dataSource.groupBy=e.grouping.groupBy),e.appearance.allowColumnStickyPosition&&e._stickHeader(),e.header.visible&&""===e.header.template){const t=document.createElement("smart-grid-toolbar");t.headerPosition="top",t.messages=e.messages,t.locale=e.locale;let o=e.$.header;e.header.appendTo&&(o=document.querySelector(e.header.appendTo),o?o.onclick=t=>{e._headerClickHandler(t)}:o=e.$.header),o.appendChild(t),e.$.headerBar&&e.$.headerBar.remove(),e.$.headerBar=o.firstElementChild,e.$.headerBar._init(e)}if(e.isInitialized)e.refreshFilters();else{let t=!1;if(e.stateSettings.autoLoad){let o=e.stateSettings.current;!o&&e.stateSettings.allowLocalStorage&&(e.stateSettings.current="View 1",o=e.stateSettings.current);let l=null;e.stateSettings.storage&&(l=e.stateSettings.storage[o]),l&&(t=!0),!l&&e.stateSettings.allowLocalStorage&&(l=window.localStorage.getItem(o),l&&(t=!0))}if(!t){const t=[];for(let o=0;o<e.viewColumns.length;o++){const l=e.viewColumns[o];l.allowSort&&l.sortOrder&&t.push(l)}if(0===t.length&&e.sorting.sort)for(let o=0;o<e.sorting.sort.length;o++){const l=e.sorting.sort[o],a=Object.keys(l)[0],n=l[a],i=e.columnByDataField[a];i&&(t.push(i),i.sortOrder=n||"asc")}t.sort(((e,t)=>e.sortIndex-t.sortIndex));for(let o=0;o<t.length;o++){const l=t[o],a=e.appearance.allowSortAnimation;e.appearance.allowSortAnimation=!1,e.sortBy(l.dataField,l.sortOrder),e.appearance.allowSortAnimation=a}if(e.filtering.filter.length>0){for(let t=0;t<e.filtering.filter.length;t++){const o=e.filtering.filter[t];if(o){if("string"==typeof o){const t=e.filtering.filter[0],o=e.columnByDataField[t],l=e.filtering.filter[1];let a=null;if(o&&(a=e.dataSource._createFilter(o.dataType,l)),a){if(e.filtering.filterRow.visible&&!o._filterInfo){let e=[];for(let t=0;t<a.filters.length;t++)e.push(a.filters[t].value),t<a.filters.length-1&&e.push(a.logicalOperators[t]);o._filterInfo={condition:a.filters[0].condition,value:e.join(" ")}}e.addFilter(t,a,!1)}break}const t=o[0],l=o.splice(1);let a=null;if(l instanceof Smart.FilterGroup)a=l;else{const o=e.columnByDataField[t];o&&(a=e.dataSource._createFilter(o.dataType,l))}if(a){if(e.filtering.filterRow.visible){const o=e.columnByDataField[t];if(!o._filterInfo){let e=[];for(let t=0;t<a.filters.length;t++)e.push(a.filters[t].value),t<a.filters.length-1&&e.push(a.logicalOperators[t]);o._filterInfo={condition:a.filters[0].condition,value:e.join(" ")}}}e.addFilter(t,a,!1)}}}e.refreshFilters()}else{for(let t=0;t<e.columns.length;t++){const o=e.columns[t];if(o.filter){let t=null,l=o.filter;if(t=l instanceof Smart.FilterGroup?l:e.dataSource._createFilter(o.dataType,l),t){if(e.filtering.filterRow.visible&&!o._filterInfo){let e=[];for(let o=0;o<t.filters.length;o++)e.push(t.filters[o].value),o<t.filters.length-1&&e.push(t.logicalOperators[o]);o._filterInfo={condition:t.filters[0].condition,value:e.join(" ")}}e.addFilter(o.dataField,t,!1)}}}e.refreshFilters()}}}if(e.viewColumns.canNotify=!0,e.isInitialized=!0,("virtual"===e.scrolling||e.paging.enabled&&e.dataSource&&e.dataSource.virtualDataSource||e.dataSource&&e.dataSource.virtualDataSource)&&e._virtualDataRequest("dataBind"),""!==e.header.template&&e._applyTemplate(e.header.template,e.$.header),""!==e.footer.template&&e._applyTemplate(e.footer.template,e.$.footer),e._createFilterPanels(),e._refresh(),e._applyScrolling(),e.grouping.enabled&&e.grouping.autoExpandAll&&e.rowHierarchy?e.expandAllRows():e.grouping.enabled&&e.grouping.autoExpandToLevel&&e.rowHierarchy&&e.expandRowsToGroupLevel(e.grouping.autoExpandToLevel),e.onRender&&(e.onRender(t),e.onRender=null),e.isRendered=!0,"auto"===e.layout.rowHeight&&(e._refreshLayout(),e._recycle()),t){if(e.stateSettings.autoLoad){let t=e.stateSettings.current,o=null;e.stateSettings.storage&&(o=e.stateSettings.storage[t]),!t&&e.stateSettings.allowLocalStorage&&(e.stateSettings.current="smartGrid"+e.id,t=e.stateSettings.current),!o&&e.stateSettings.allowLocalStorage&&(o=window.localStorage.getItem(t)),o&&("string"==typeof o&&(o=JSON.parse(o)),e._loadState(o))}if(e.onAfterInit&&(e.onAfterInit(e),e.onAfterInit=null),e.$.fireEvent("afterInit",{grid:e}),e.isRendering=!1,e.whenRenderedCallbacks){for(let t=0;t<e.whenRenderedCallbacks.length;t++)e.whenRenderedCallbacks[t]();e.whenRenderedCallbacks=[]}!e.dataSource||e.dataSource.url||e.dataSource.virtualDataSource||e.onLoad&&e.onLoad(e)}"kanban"===e.view&&e._initKanbanView()}_initFormulaParser(){const e=this;if(e.formulas){class t{constructor(e){const t=this;let o;try{o=new formulaParser.Parser}catch(e){throw new Error("Smart.FormulaParser: Missing reference to 'formula-parser.min.js'.")}o.on("callCellValue",t._callCellValue.bind(t)),o.on("callRangeValue",t._callRangeValue.bind(t)),t.dataTable=e,t.parser=o}_getFormula(e){const t=this,o="A".charCodeAt(0);let l=0,a="";const n=e;if(t.dataTable._formulas||(t.dataTable._formulas=[]),t.dataTable._formulas[e])return t.dataTable._formulas[e];for(let n=0;n<t.dataTable.columns.length;n++){const i=t.dataTable.columns[n],r=String.fromCharCode(o+l);l++,l>=26&&(l=0,a+="A"),e.indexOf(i.label)>=0?e=e.replaceAll(i.label,a+r):e.indexOf(i.dataField)>=0&&(e=e.replaceAll(i.dataField,a+r))}return t.dataTable._formulas[n]=e,e}_callCellValue(e,t){const o=this,l=o.dataTable,a=e.column.index,n=e.row.index,i=l.columns[a].dataField;let r=l.dataSource[n][i];const s=l.rows[n];if(s){const e=s.getCell(i);e&&e.formula&&(r=o._getFormula(e.formula))}"string"==typeof r&&/=.+/.test(r)&&(r=o.parse(r.slice(1))),t(r)}_callRangeValue(e,t,o){const l=this.dataTable,a=l.dataSource,n=[];for(let o=e.row.index;o<=t.row.index;o++){const i=a[o],r=[];for(let o=e.column.index;o<=t.column.index;o++){let e=i[l.columns[o].dataField];e=isNaN(e)?0:parseFloat(e),isNaN(e)&&(e=0),r.push(e)}n.push(r)}n&&o(n)}parse(e){const t=this.parser.parse(this._getFormula(e));return null!==t.result?t.result:t.error}}e._formulaParser=new t(e)}}get _viewRows(){const e=this;if(e.__viewRows)return e.__viewRows;e._nearRowsAdded||(e._nearRowsAdded=[],e._farRowsAdded=[]);const t=e.rows.toArray?e.rows.toArray():[],o=e.rowHierarchy?e.rowHierarchy:t,l=[].concat(e._frozenNearDefaultRows,e._nearRowsAdded,o,e._farRowsAdded,e._frozenFarDefaultRows);return e.__viewRows=l,l}_toHex(e){if(-1!==e.indexOf("#"))return e;const t=/rgb\((\d+), (\d+), (\d+)\)/g.exec(e);return t?"#"+(parseFloat(t[1]).toString(16).padStart(2,"0")+parseFloat(t[2]).toString(16).padStart(2,"0")+parseFloat(t[3]).toString(16).padStart(2,"0")).toUpperCase():"#FFFFFF"}_renderConditionalFormatting(e){const t=this,o=t.conditionalFormatting;if(!o||0===o.length)return;if(!t._defaults){const e=getComputedStyle(t);t._defaults={fontFamily:e.fontFamily,fontSize:e.fontSize,text:t._toHex(e.color),highlight:t._toHex(e.backgroundColor)}}t._formatter||(t._formatter=new Smart.Utilities.ConditionalFormatter(t.dataSource)),e&&(t._formatter=new Smart.Utilities.ConditionalFormatter(t.dataSource),delete t._conditionalFormatting);const l=t._defaults,a=t._formatter,n=[],i=function(e){if("all"===e){if(t.columns&&t.columns.map){const e=[];for(let o=0;o<t.columns.length;o++){const l=t.columns[o];l.dataField.startsWith("task")||l.autoGenerated||"number"!==l.dataType&&"date"!==l.dataType||e.push(l.dataField)}return e}return[]}return[e]};for(let e=0;e<o.length;e++){o[e]=Object.assign({column:"all",condition:"lessThan",firstValue:0,secondValue:1,fontFamily:l.fontFamily,fontSize:l.fontSize,text:l.text,highlight:l.highlight},o[e]);const t=o[e],r=i(t.column),s=t.condition;a.color=t.highlight,a.comparator=t.firstValue,a.min=t.firstValue,a.max=t.secondValue;const d=a.format(s,r);for(let e in d){const o=d[e];for(let e in o){const l=o[e];l.color=t.text,l.fontFamily=t.fontFamily,l.fontSize=t.fontSize}}n.push(d)}if(t._formattingPanel&&(t._formattingPanel.items=o),0===n.length)return n[0];const r={};for(let e=0;e<n.length;e++){const t=n[e];for(let e in t){const o=t[e];if(0!==Object.keys(o).length){r[e]||(r[e]={});for(let t in o)r[e][t]=Object.assign({},r[e][t],o[t])}}}t._conditionalFormatting=r,e&&t._recycle(!1)}_stickHeader(){const e=this;e._stickyHeaderHandler=function(){e._handleStickyHeader()},e.$.columnHeader.style.top="",e.$.columnHeader.classList.remove("smart-columns-sticky");let t=e.parentNode;for(e.isInShadowDOM&&t===e.getRootNode()&&(t=e.getRootNode().host);t!==document&&t;)t.addEventListener("scroll",e._stickyHeaderHandler),t=t.parentNode,e.isInShadowDOM&&t===e.getRootNode()&&(t=e.getRootNode().host);try{null!==window.top&&window.top!==window.self&&window.top.document.addEventListener("scroll",e._stickyHeaderHandler)}catch(e){}e._handleStickyHeader()}_unstickHeader(){const e=this;e.$.columnHeader.style.top="",e.$.columnHeader.classList.remove("smart-columns-sticky");let t=e.parentNode;for(;t!==document.body;)t.removeEventListener("scroll",e._stickyHeaderHandler),t=t.parentNode,e.isInShadowDOM&&t===e.getRootNode()&&(t=e.getRootNode().host);try{(""!==document.referrer||window.frameElement)&&null!==window.top&&window.top!==window.self&&window.top.document.removeEventListener("scroll",e._stickyHeaderHandler)}catch(e){}}_handleStickyHeader(){const e=this;if(e.appearance.allowColumnStickyPosition)if(e.$.columnHeader.classList.add("smart-columns-sticky"),0===document.scrollTop&&0===e.parentElement.scrollTop)e.$.columnHeader.style.top="";else{let t=e.parentNode,o=0;for(;t!==document.body;)o+=parseInt(t.scrollTop),t=t.parentNode,e.isInShadowDOM&&t===e.getRootNode()&&(t=e.getRootNode().host);const l=parseInt(e.clientTop+o);e.$.columnHeader.style.top=l+"px";let a=0;window.top!==window.self&&parseInt(window.top.scrollY)>parseInt(e._offsetTop(window.frameElement))&&(a=parseInt(window.top.scrollY)-parseInt(e._offsetTop(window.frameElement))),window.scrollY+a>e.offsetTop&&(e.$.columnHeader.style.top=parseInt(window.scrollY)-parseInt(e.offsetTop)+l+a+"px")}}_scrollHandler(){this._handleStickyHeader()}_initializeRowNumberColumn(){const e=this;if(e._frozenNearColumns&&e._frozenNearColumns.length>0&&e._frozenNearColumns[0].rowHeaderColumn)return void(e._frozenNearColumns[0].visible=e.appearance.showRowHeaderNumber||e.appearance.showRowHeader);const t=new Smart.Grid.Column({dataField:"_rowHeaderColumn",label:"",allowSelect:!1,freeze:!0,visible:!0,grid:e,autoGenerated:!0,rowHeaderColumn:!0,cellsAlign:"center"}),o=e.rows?e.rows.length:e.dataSource?e.dataSource.length:0;let l=e.appearance.showRowHeaderNumber?t._measureSize(o):30;e.layout.autoGenerateColumnWidth&&(l=e.layout.autoGenerateColumnWidth),e.appearance.showRowComments&&(l=25,t.minWidth=25),t.width=l,t.createElement();const a=new Smart.Observable(t,t.observables);e.viewColumns.splice(0,0,a),e._frozenNearColumns.splice(0,0,a)}_initializeColumns(){const e=this;if("number"==typeof e.columns){const t=[],o="A".charCodeAt(0);let l="",a=0;for(let n=0;n<e.columns;n++){let i=n+1;const r=String.fromCharCode(o+a);a++;const s=l+r;"number"!==e.appearance.autoGenerateColumnLabelMode&&(i=l+r),t.push({align:"center",label:i,dataField:s,width:100}),a>=26&&(a=0,l+="A")}e._boundColumns=t}else e._boundColumns=Array.isArray(e.columns)?[...e.columns]:[...e.columns.toArray()];e._initColumns=e.columns,e.columnByDataField=[],e.viewColumns=[],e.columns=new Smart.ObservableArray,e._frozenFarColumns=[],e._frozenNearColumns=[],e._summaryRowCount=1;let t=0;const o=function(t){if(e.dataSource.dataFields){const o=e.dataSource.dataFields.find((e=>{if(e.name===t.dataField)return e})),l=o&&o.dataType||"string";t.dataType||(t.dataType=l)}};if(0===e._boundColumns.length&&e.dataSource&&e.dataSource[0]&&!1!==e.dataSource.autoGenerateColumns){const t=e.dataSource[0];if(t.$&&t.$.isEmpty&&e.dataSource.dataFields)for(let t=0;t<e.dataSource.dataFields.length;t++){const o=e.dataSource.dataFields[t],l=e._boundColumns.length,a={index:l,visibleIndex:l,label:o.name,dataField:o.name,dataType:o.dataType};e._boundColumns.push(a)}else for(let l in t){if(l.startsWith("_")||"$"===l)continue;const t=e._boundColumns.length,a={index:t,visibleIndex:t,label:l,dataField:l};o(a),e._boundColumns.push(a)}}for(let l=0;l<e._boundColumns.length;l++){let a=e._boundColumns[l];if("string"==typeof a){if(e.dataSource.dataFields){const t=e.dataSource.dataFields.find((e=>{if(e.name===a)return e}));a={label:a,dataField:a,dataType:t&&t.dataType||"string"}}}else o(a);a.visibleIndex=l,a.index=l,a.grid=e,a.label&&/<.+?>/.test(a.label)&&a.label.replace&&("all"===e.dataSourceSettings.sanitizeHTML?a.label=a.label.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;"):"blackList"===e.dataSourceSettings.sanitizeHTML&&(a.label=window.Smart.Utilities.Core.escapeHTML(a.label)));const n=new Smart.Grid.Column(a);e.onColumnInit&&e.onColumnInit(l,n);for(let t in n)-1!==n.properties.indexOf(t)||t.startsWith("_")||e.error(e.localize("invalidColumnProperty",{elementType:"Grid",propertyName:t,type:n.dataField||"Column"}));delete a.grid,delete a.dataType,delete a.index,delete a.visibleIndex,n.grid=e,e.columns.push(n),n._dataField&&(e.columnByDataField[n._dataField]=n);const i=e.columns[e.columns.length-1];e._summaryRowCount=Math.max(e._summaryRowCount,n.summary.length),n.freeze?!0===n.freeze||"near"===n.freeze?(e.viewColumns.splice(t++,0,i),e._frozenNearColumns.push(i)):"far"===n.freeze&&e._frozenFarColumns.push(i):e.viewColumns.push(i),e.columnByDataField[n.dataField]?(i.parent=e.columnByDataField[n.dataField],e.columnByDataField[n.dataField].children||(e.columnByDataField[n.dataField].children=[]),e.columnByDataField[n.dataField].children.push(i),n.valueField=n.dataField,n.dataField+="_"+e.columnByDataField[n.dataField].children.length,n.displayField=n.valueField,e.columnByDataField[n.dataField]=i):e.columnByDataField[n.dataField]=i,e.onColumnInserted&&!e.isInitialized&&e.onColumnInserted(l,n.getState())}e.viewColumns=e.viewColumns.concat(e._frozenFarColumns),e.setAttribute("aria-colcount",e._boundColumns.length);let l=0;if((e.appearance.showRowHeaderNumber||e.appearance.showRowHeader)&&(e._initializeRowNumberColumn(),l++),e.rowDetail.enabled){const t=20,o=new Smart.Grid.Column({dataField:"_rowDetailColumn",allowSelect:!1,visible:e.rowDetail.visible,label:"",grid:e,freeze:!0,rowDetailColumn:!0,autoGenerated:!0,cellsAlign:"center",width:t,minWidth:t}),a=new Smart.Observable(o,o.observables);e.rowDetailColumn=a,"near"===e.rowDetail.position?(e.viewColumns.splice(l,0,a),o.freeze="near",a.freeze="near",e._frozenNearColumns.splice(l,0,a)):(e.viewColumns.push(a),e._frozenFarColumns.splice(0,0,a)),l++}const a=new Smart.Grid.Column({dataField:"_adaptiveColumn",allowSelect:!1,visible:!1,label:"",grid:e,freeze:"far",adaptiveColumn:!0,autoGenerated:!0,cellsAlign:"center",width:30});new Smart.Observable(a,a.observables).canNotify=!1;const n=new Smart.Grid.Column({dataField:"_commandColumn",allowSelect:!1,visible:e.editing.enabled&&e.editing.commandColumn.visible&&!e.editing.commandColumn.inline,label:"",grid:e,freeze:"far",commandColumn:!0,autoGenerated:!0,align:"center",cellsAlign:"center",width:""}),i=new Smart.Observable(n,n.observables);i.canNotify=!1,e.editing.commandColumn.visible&&("near"===e.editing.commandColumn.position?(n.freeze="near",i.freeze="near",e.viewColumns.splice(l,0,i),e._frozenNearColumns.splice(l,0,i)):(e.viewColumns.push(i),e._frozenFarColumns.splice(0,0,i))),e._commandColumn=i;const r=new Smart.Grid.Column({allowSelect:!1,visible:e.selection.enabled&&e.selection.checkBoxes.enabled,dataField:"_checkBoxColumn",label:"",freeze:e.selection.checkBoxes.position,grid:e,selectionColumn:!0,autoGenerated:!0,cellsAlign:"center",width:32}),s=new Smart.Observable(r,r.observables);if(e.selection.checkBoxes.enabled&&("near"===r.freeze?(e.viewColumns.splice(l,0,s),e._frozenNearColumns.splice(l,0,s)):(e.viewColumns.push(s),e._frozenFarColumns.splice(0,0,s))),e._selectionColumn=s,e._selectionColumn.canNotify=!1,e.editing.addNewColumn.visible){const t=new Smart.Grid.Column({dataField:"_addNewColumn",allowSelect:!1,visible:!0,title:e.localize("addNewColumn"),label:"",cellsClassName:"smart-add-new-column",className:"smart-add-new-column smart-icon smart-grid-icon show smart-icon-plus",grid:e,adaptiveColumn:!1,autoGenerated:!0,cellsAlign:"center",width:90}),o=new Smart.Observable(t,t.observables);e.viewColumns.push(o),e._addNewColumn=o,e._addNewColumn.canNotify=!1}e._observeColumns(),e._templateColumns()}get styleProperties(){return["grid-template-columns","--smart-grid-row-height","--smart-grid-column-header-height","--smart-grid-group-header-height","--smart-grid-filter-footer-height","--smart-grid-group-row-vertical","--smart-grid-group-row-horizontal-offset","--smart-grid-freeze-splitter-size","--smart-grid-resize-line-size","--smart-grid-footer-height","--smart-grid-header-height"]}_templateColumns(){const e=this,t=getComputedStyle(e),o=t.getPropertyValue("--smart-grid-template-columns").trim();if(e._rowGap=0,e._columnGap=0,e._maxHeight=parseInt(t.maxHeight),e._minHeight=parseInt(t.minHeight),"none"!==o){let t=0;for(let o=0;o<e.viewColumns.length;o++)e.viewColumns[o].autoGenerated&&(t+=e.viewColumns[o].visible?e.viewColumns[o].width:0);let l=[];const a=document.createElement("div");a.style.display="grid",a.style.gridTemplateColumns=o;for(let t=0;t<e.columns.length;t++)a.innerHTML+="<div></div>";a.style.width=e.clientWidth-t+"px",e.$.root.appendChild(a);const n=o.split(" ");for(let t=0;t<e.columns.length;t++)l[t]=a.children[t].offsetWidth,"auto"===n[t]&&(l[t]=null);a.parentNode.removeChild(a);let i=0;for(let t=0;t<e.viewColumns.length;t++){const o=e.viewColumns[t];o.autoGenerated||l[i]&&(o.width=o.templateWidth=l[i++])}}else for(let t=0;t<e.viewColumns.length;t++){const o=e.viewColumns[t];o.autoGenerated||o.templateWidth&&(o.width=o.templateWidth=null)}}setColumns(e){const t=this;if(null===e)return void(t.columns=[]);t.beginUpdate(),t.columns.canNotify=!1;let o=[],l=[];for(let l=0;l<e.length;l++){const a=e[l];let n=!0;for(let e=0;e<t.columns.length;e++)if(t.columns[e].dataField===a.dataField){n=!1;break}n&&o.push(a)}const a=e.map((e=>e.dataField));for(let e=0;e<t.columns.length;e++){const o=t.columns[e];-1===a.indexOf(o.dataField)&&l.push(o)}l.forEach((e=>{const o=t.columns.indexOf(e);o>=0&&t.columns.splice(o,1)}));for(let e=0;e<o.length;e++)t.columns.push(o[e]);if(t.columns.canNotify=!0,t.endUpdate(),t._columnGroups=[],t._columnHeights=0,t.viewColumns)for(let e=0;e<t.viewColumns.length;e++){const o=t.viewColumns[e],l=o.element;o.top=0,o.level=0,l&&(l.style.top="",l.style.height="",l.style.lineHeight="")}if(t._renderColumns(),t.__columnHeaderHeight=null,e){t.beginUpdate();const o=t.context;t.context=document;for(let o=0;o<e.length;o++){const l=e[o],a=t.columnByDataField[l.dataField];["allowExport","allowFreeze","allowNull","allowGroup","allowSelect","verticalAlign","columnGroup","cellsVerticalAlign","autoCloseMenu","autoShowActionButton","autoShowSortButton","autoShowFilterButton","allowLabelAnimation","allowActionButtonAnimation","allowSortButtonAnimation","allowHide","allowDelete","allowEdit","allowSummary","allowHeaderEdit","allowFilter","allowSort","allowSortToggleOnClick","allowResize","allowReorder","description","icon","menuItems","summary","cellsFormat","className","rowSpan","cellsClassName","cellsCSSRules","formatSettings","formatFunction","sortIndex","sortOrder","sortComparator","groups","group","filtered","filterEditor","filter","filterMenuMode","defaultValue","dataField","displayField","label","labelTemplate","dataType","align","cellsWrap","cellsAlign","minWidth","width","visible","_visible","freeze","showActionButton","selected","showIcon","highlight","showDescriptionButton","treeColumn","statusColumn","value","valueField","onAction","title","showCustomButton","showFilterButton","showSortButton","editor","template","visibleIndex","validationRules"].forEach((e=>{void 0!==l[e]&&(a[e]=l[e])}))}t.context=o,t.endUpdate(!1)}t.refresh()}onAttached(){const e=this;if(!e._scrollView){e._scrollView=new Smart.Utilities.Scroll(e,e.$.horizontalScrollBar,e.$.verticalScrollBar);const t=e._scrollView.hScrollBar;e._scrollView.vScrollBar.onChange=e._verticalScrollbarHandler.bind(e),t.onChange=e._horizontalScrollbarHandler.bind(e)}if(e.isRendered&&e.isCompleted&&(e._isDestroyed||e.behavior.autoDestroy)){if(e.header.visible&&""===e.header.template){let t=e.$.header;e.header.appendTo&&(t=document.querySelector(e.header.appendTo),t?t.onclick=t=>{e._headerClickHandler(t)}:t=e.$.header),t.innerHTML='<smart-grid-toolbar header-position="top"></smart-grid-toolbar>',e.$.headerBar=t.firstElementChild;const o=e.$.headerBar;o.messages=e.messages,o.locale=e.locale,e.$.headerBar._init(e),o.render(),e.header.onInit&&e.header.onInit(e.$.headerBar)}e._render()}}destroy(){const e=this;if(!e.isRendered)return;e._isDestroyed=!0,["_dialogChart","_dialogAddRow","_dialogEdit","_dialogDelete","_dialogRowDetail","_dialogAddColumn"].forEach((t=>{e[t]&&(e[t].close(),e[t]=null)})),e.menu&&(e.menu.ownerElement=null,e.menu.remove(),e.menu=null);const t=e.$.headerBar;if(t){const e=t.$.headerDropDown;e&&e.remove()}e._resetCachedLayout();const o=e._scrollView.hScrollBar,l=e._scrollView.vScrollBar;if(l.ownerElement=null,o.ownerElement=null,l.onChange=null,o.onChange=null,e._scrollView&&(e._scrollView.unlisten(),delete e._scrollView),e._columnElements)for(let t=0;t<e._columnElements.length;t++)e._columnElements[t]._detach();if(e._columnElements=null,e._rowElements)for(let t=0;t<e._rowElements.length;t++)e._rowElements[t]._detach();e._rowElements=null,e.rows=[],e.rowById=[],e._initColumns=[],e.columnByDataField=[],e.viewColumns=[],e._columnToResizeElement=null;let a=Array.isArray(e.columns)?[...e.columns]:[...e.columns.toArray()];a=a.map((e=>e.data?(void 0!==e.data.visibleIndex&&delete e.data.visibleIndex,void 0!==e.data.index&&delete e.data.index,void 0!==e.data.grid&&delete e.data.grid,e.data):e)),e.rows.notifyFn=null,e.columns.notifyFn=null,e.columns.notify=null,e.columns._array=[],e.columns=a,e._boundColumns=[],e._filterPanels=[],e._frozenFarColumns=[],e._frozenNearColumns=[],e._frozenNearDefaultRows=[],e._frozenFarDefaultRows=[],e._frozenFarRows=[],e._frozenNearRows=[],e._selection&&e._selection.selectionRect&&(e._selection.selectionRect.parentNode&&e._selection.selectionRect.parentNode.removeChild(e._selection.selectionRect),e._selection.selectionRect=null),e._selection={rows:[],indexes:[],columns:[],cells:[]},e.__autoHeightRows=null,e._visibleRows=null,e.__viewRows=null,e.__clientSize=null,e.__scrollHeight=null,e.__scrollWidth=null,e.__parentCells=null,e._selectionColumn=null,e._adaptiveColumn=null,e._commandColumn=null,delete e._columnFarContainerComputedStyle,delete e._columnContainerComputedStyle,delete e._columnNearContainerComputedStyle,e._inputOverlay&&(e._inputOverlay.parentNode&&e._inputOverlay.parentNode.removeChild(e._inputOverlay),e._inputOverlay=null),e._firstVisibleColumn=null,e._lastVisibleColumn=null,e._toggledRow=null,Smart(e._selector)&&(delete Smart(e._selector)._properties,Smart(e._selector)),delete e._selector,delete e._initProperties}onDetached(){const e=this;e.behavior.autoDestroy&&e.destroy()}_observeColumns(){const e=this,t=function(t,o,l,a){l===a&&"selected"!==o||(t.propertyChanged(o,l,a),e.onColumnChange?t.stateProps.indexOf(o)>=0&&e.onColumnChange(t,o,l,a):e.$.fireEvent("columnChange",{column:t,propertyName:o,oldValue:l,value:a}))};for(let o=0;o<e.viewColumns.length;o++){const l=e.viewColumns[o];l.rowHeaderColumn||(l.onAction=function(){e._openMenu(this)}),l.autoGenerated&&l.notify((function(e){l.canNotify=!1,t(l,e.propertyName,e.oldValue,e.newValue),l.canNotify=!0}))}e.columns.notify((function(o){let l=null;if(o.path)return e.columns.canNotify=!1,t(o.target,o.propertyName,o.oldValue,o.newValue),void(e.columns.canNotify=!0);e.columns.canNotify=!1;let a=0;switch(o.action){case"length":return void(e.columns.canNotify=!0);case"add":{const t=function(t){if(l=o.object[t],l instanceof Smart.Grid.Column==0){l.grid=e,l=new Smart.Grid.Column(l);const a=e.columns.canNotify;e.columns.canNotify=!1,o.object[t]=l,l=o.object[t],e.columns.canNotify=a}l.grid=e,l.onAction=function(){e._openMenu(this)},l.freeze?e._frozenNearColumns.push(l):"far"===l.freeze&&e._frozenFarColumns.push(l);let a=e.viewColumns.length-e._frozenFarColumns.length,n=0;if(e._frozenNearColumns.forEach((e=>{e.autoGenerated&&n++})),t<e.columns.length?e.viewColumns.splice(t+n,0,l):e.viewColumns.splice(a,0,l),e.columnByDataField[l.dataField]){e.columnByDataField[l.dataField].children.push(l),l.parent=e.columnByDataField[l.dataField],l.valueField=l.dataField;const t=l.dataField+"_"+l.parent.children.length;e.columnByDataField[t]=l,l.dataField=t}else e.columnByDataField[l.dataField]=l;if(e.dataSource&&e.dataSource.dataFields){let t=!1;for(let o=0;o<e.dataSource.dataFields.length;o++)e.dataSource.dataFields[o].name===l.dataField&&(t=!0);t||e.dataSource.dataFields.push({name:l.dataField,dataType:l.dataType||"string"})}if(!e._dragDrop&&e.onColumnInserted){e._onColumnInsertData||(e._onColumnInsertData=[],e._onColumnInsertIndexes=[]);const o=l.getState();o.dataField=l.dataField,e._onColumnInsertData.push(o),e._onColumnInsertIndexes.push(t),e._onColumnInsertTimer&&clearTimeout(e._onColumnInsertTimer),e._onColumnInsertTimer=setTimeout((()=>{e.onColumnInserted(e._onColumnInsertIndexes,e._onColumnInsertData),delete e._onColumnInsertIndexes,delete e._onColumnInsertData}),50)}};delete e.__measuredColumnHeight;for(let e=0;e<o.addedCount;e++)t(o.index+e);break}case"update":l=o.object[o.index],l instanceof Smart.Grid.Column==0&&(l=new Smart.Grid.Column(l)),l.grid=e;for(let t=0;t<o.index;t++)e.viewColumns[t].autoGenerated&&a++;e.viewColumns[a+o.index]=l,e.columnByDataField[l.dataField]=l,e.onColumnUpdated&&e.onColumnUpdated(o.index,l);break;case"remove":{l=o.removed[0];let t=o.index,n=e.viewColumns.indexOf(l);if(-1===n){for(let o=0;o<=t;o++)e.viewColumns[o].autoGenerated&&a++;e.viewColumns.splice(a+t,1)}else e.viewColumns.splice(n,1);if(l){if(l.filter&&e.removeFilter(l.dataField),l.sortOrder&&e.removeSort(l.dataField),e.removeGroup(l.dataField),l._dataField){const t=e.columnByDataField[l._dataField];t&&t.dataField===l.dataField&&delete e.columnByDataField[l._dataField]}delete e.columnByDataField[l.dataField]}if(e._dragDrop||e.onColumnRemoved&&e.onColumnRemoved(o.index,l),e.columnGroups&&(e._columnGroups=[],e._columnHeights=0,e.viewColumns))for(let t=0;t<e.viewColumns.length;t++){const o=e.viewColumns[t],l=o.element;o.top=0,o.level=0,l&&(l.style.top="",l.style.height="",l.style.lineHeight="")}break}}e._initializeColumnGroupsHierarchy(),e._refreshColumnsResponsiveVisibility(),e._createColumnHeaderCellElements(),e._templateColumns(),e.refresh(),e.columnGroups&&e._columnGroups.length>0&&e._renderColumnGroupHeaders(),e.columns.canNotify=!0}))}get _scrollWidth(){const e=this;if(e.__scrollWidth)return e.__scrollWidth;let t=0;for(let o=0;o<e.viewColumns.length;o++){const l=e.viewColumns[o];l.visible&&(t+=l.computedWidth)}return t=parseInt(t),"card"===e.view&&(t=0),e.__scrollWidth=t,e._scrollView.scrollWidth=t-e._clientSize.width,e.__scrollWidth}_horizontalScrollbarHandler(){const e=this;e.closeMenu(),e.isScrolling=!0,e.isHScrolling=!0,requestAnimationFrame((()=>{e._summaryRowDialog&&e._summaryRowDialog.classList.contains("open")&&e._summaryRowDialog.close(),e._recycle(),e.isScrolling=!1,e.isHScrolling=!1}))}_mouseWheelNative(e,t){const o=this;void 0===o._scrollWheelContent&&(o._scrollWheelContent=document.createElement("div"),o._scrollWheelContent.style.width="100%",o._scrollWheelContent.style.height="100%",o._scrollWheelContent.style.position="absolute",o._scrollWheelContent.style.left="0px",o._scrollWheelContent.style.top="0px",o._scrollWheelContent.style.background="white",o._scrollWheelContent.style.zIndex=9999,o._scrollWheelContent.style.opacity=0,o._scrollWheelContent.style.overflow="auto",o._scrollWheelContent.style.visibility="hidden");let l=0;const a=()=>{if(t){const t=o._scrollWheelContent.scrollLeft;o._scrollView.hScrollBar.value=t,t===e&&o._scrollWheelContent.remove()}else{const t=o._scrollWheelContent.scrollTop;o._scrollView.vScrollBar.value=t,t===e&&o._scrollWheelContent.remove()}};o._scrollWheelContent.onscroll=()=>{cancelAnimationFrame(l),l=0,l=requestAnimationFrame(a)},o._scrollWheelContentView||(o._scrollWheelContentView=document.createElement("div"),o._scrollWheelContent.appendChild(o._scrollWheelContentView)),o._scrollWheelContentView.style.width=o.offsetWidth+o._scrollView.scrollWidth+"px",o._scrollWheelContentView.style.height=o.offsetHeight+o._scrollView.scrollHeight+"px",o.$.scrollView.appendChild(o._scrollWheelContent),o._scrollWheelContent.scrollTop=o._scrollView.vScrollBar.value,o._scrollWheelContent.scrollLeft=o._scrollView.hScrollBar.value,!0===t?o._scrollWheelContent.scrollTo({top:o._scrollView.vScrollBar.value,left:e,behavior:"smooth"}):o._scrollWheelContent.scrollTo({top:e,left:o._scrollView.hScrollBar.value,behavior:"smooth"})}_mouseWheelHandler(e){const t=this;if(t._scrollView.hScrollBar.$.hasClass("smart-hidden")&&t._scrollView.vScrollBar.$.hasClass("smart-hidden"))return;if(42===e.pointerId)return;if(t._isUpdating)return;if(t.editing.isEditing)return;if(!t.behavior.allowMouseWheel)return;const o=t.querySelector("smart-grid-toolbar");if(o&&o.$.headerDropDown.classList.contains("open"))return;let l=!1;if(e.wheelDeltaY?120!==Math.abs(e.wheelDeltaY)&&240!==Math.abs(e.wheelDeltaY)&&360!==Math.abs(e.wheelDeltaY)&&(l=!0):0===e.deltaMode&&(l=!0),t.disabled||t._scrollView.vScrollBar.$.hasClass("smart-hidden")||e.shiftKey||!e.deltaY){if(!t.disabled&&(!t._scrollView.hScrollBar.$.hasClass("smart-hidden")||e.shiftKey)){e.stopPropagation(),e.preventDefault();let o=160;const a=0===e.deltaX?e.wheelDelta:e.deltaX;a<0&&(o=-160),Math.abs(a)>=100&&!l&&!Smart.Utilities.Core.Browser.Firefox?t._mouseWheelNative(t._scrollView.scrollLeft+o,!0):t._scrollView.scrollLeft+=a}}else{const o=t.scrollTop;if(0===o&&e.deltaY<0||o===t.scrollHeight&&e.deltaY>0)return;e.stopPropagation(),e.preventDefault();let a=7*t.layout.rowMinHeight;if(e.deltaY<=0&&(a=-7*t.layout.rowMinHeight),Math.abs(e.deltaY)>=100&&!l&&!Smart.Utilities.Core.Browser.Firefox)t._mouseWheelNative(t._scrollView.scrollTop+a);else{t._wheelrafId=0;const o=()=>{t._scrollView.scrollTop+=e.deltaY};cancelAnimationFrame(t._wheelrafId),t._wheelrafId=0,t._wheelrafId=requestAnimationFrame(o)}}}_refresh(e){const t=this;if(t._isUpdating)return;const o=t.$.verticalScrollBar.offsetWidth;t.removeAttribute("grouped"),t.removeAttribute("tree");let l=!0;t.__autoHeightRows&&(t.__autoHeightRows=null,t._refreshColumnsResponsiveVisibility(),t._recycle(),l=!1),t._groups||(t._groups=[]),t.grouping.enabled&&t.dataSource.groupBy&&t.dataSource.groupBy.length>=0&&("advanced"===t.grouping.renderMode?t.setAttribute("grouped",""):t.setAttribute("tree",""),t._groups||(t._groups=[].concat(t.dataSource.groupBy.toArray())||[]),t._renderGroupBar()),t.grouping.enabled&&t.dataSource.groupBy&&0===t.dataSource.groupBy.length?t.$.breadcrumb&&(t.$.breadcrumb.dataSource=[]):t.dataSource.boundHierarchy&&(t.setAttribute("tree",""),t.setAttribute("role","treegrid")),(t.isInitialized||l)&&t._refreshColumnsResponsiveVisibility(),t._refreshLayout(),o!==t.$.verticalScrollBar.offsetWidth&&(t.__scrollWidth=null,t._refreshColumnsResponsiveVisibility(),t._refreshScrollBars(),0===t.$.verticalScrollBar.offsetWidth&&t.isRendered&&requestAnimationFrame((()=>{t._refreshScrollBars()}))),t._refreshSelection(),t._conditionalColors&&t._conditionalColors.update&&t._conditionalColors.update(),"add"===e||"remove"===e||"update"===e?(t._rowChangeTimeout&&clearTimeout(t._rowChangeTimeout),t._rowChangeTimeout=setTimeout((()=>{t._recycle(!1),t._refreshHeaderBar()}),100)):(t._recycle(),t._refreshHeaderBar()),t._recyclingRows&&0===t._recyclingRows.length&&(t.$.placeholder.classList.remove("smart-hidden"),t.scrollHeight=0,t.$.placeholder.innerHTML=t.messages[t.locale]&&t.messages[t.locale].placeholder?t.localize("placeholder"):t.appearance.placeholder,t.filtering.filterRow.visible&&(t.$.placeholder.style.top="0px",t.$.placeholder.style.position="relative",t._filters&&t._filters.length&&(t.$.placeholder.style.top="12px")),t._filters&&t._filters.length&&(t.$.placeholder.innerHTML=`<span class="smart-grid-icon show smart-icon-filter" style="\n font-size: calc(2 * var(--smart-font-size));\n cursor: default;\n margin-right: 10px;\n "></span>${t.localize("filteredRecords")}`)),requestAnimationFrame((()=>{t._width=t.offsetWidth,t._height=t.offsetHeight}))}_refreshHeaderBar(){const e=this;e.$.headerBar&&e.header.visible&&e.$.headerBar._refresh()}_resizeHandler(e){const t=this;if((t.enableShadowDOM?e.composedPath()[0]:e.target)===t&&!t._isUpdatingScrollBars){if(!t.isInitialized)return t._undoRedo=[],t._refreshCurrentUser(),void t._render();if(!1===t._resizeHandling||!t.offsetHeight)return void(!1===t._resizeHandling&&(t.layout.isDirty=!0));t._isUpdatingScrollBars=!0,t._autoHeight=!1,t.$.content&&t.$.content.classList.remove("auto-height");const e=t._rowElements?t._rowElements.length*t.layout.rowMinHeight:0;(e>0||"grid"!==t.view&&"card"!==t.view)&&(t.offsetHeight>=e?(t._refreshLayout(),t._initializeRowElements()):"grid"!==t.view&&t._refreshLayout()),t.refresh(),t.$.headerBar&&t.$.headerBar.refreshTools(),t._dialogAddColumn&&t._dialogAddColumn.classList.contains("open")&&t._dialogAddColumn.refresh(),t._isUpdatingScrollBars=!1}}_refreshColumnsResponsiveVisibility(){const e=this,t=e.$.columnContainer,o=e.$.columnNearContainer,l=e.$.columnFarContainer;let a=0,n=0,i=0,r=!1;const s=e.columns.canNotify;e.columns.canNotify=!1;for(let t=0;t<e.viewColumns.length;t++){const o=e.viewColumns[t];o.setProperty("_treeColumn",!1,!1),e.grouping.enabled&&e.grouping.autoHideGroupColumn&&e.dataSource.groupBy&&e.dataSource.groupBy.indexOf(o.dataField)>=0&&o.setProperty("visible",!1,!1),o.visible&&!o.autoGenerated&&!r&&e.dataSource.boundHierarchy&&(o.setProperty("_treeColumn",!0,!1),r=!0)}e._refreshColumnWidths(),e.columns.canNotify=s;let d=0,u=0;for(let t=0;t<e.viewColumns.length;t++){const o=e.viewColumns[t];o.visible&&(o.freeze&&(!0===o.freeze||"near"===o.freeze?(a+=o.computedWidth,o.autoGenerated&&(d+=o.computedWidth)):"far"===o.freeze&&(n+=o.computedWidth,o.autoGenerated&&(u+=o.computedWidth))),i+=o.computedWidth)}t.style.width=i+"px",o.style.width=a+"px",l.style.width=n+"px",l.classList.remove("smart-hidden"),o.classList.remove("smart-hidden"),0===n&&l.classList.add("smart-hidden"),0===a&&o.classList.add("smart-hidden"),l.classList.remove("border-collapse"),n===u&&l.classList.add("border-collapse"),e._autoGeneratedColumnsNearWidth=d,e._autoGeneratedColumnsFarWidth=u,e._computedColumnsWidth=i,e._frozenColumnsNearWidth=a,e._frozenColumnsFarWidth=n}_selectStartHandler(e){const t=this;t.isScrolling||t.editing.isEditing||"grid"!==t.view||t.selection.defaultSelection||e.preventDefault()}setFocusable(e){const t=this;!t.disabled&&e?t.tabIndex=0:t.removeAttribute("tabindex")}_setLoadingIndicatorVisibility(){const e=this;e.appearance.displayLoadingIndicator?e.$.loadingIndicatorContainer.classList.remove("smart-visibility-hidden"):e.$.loadingIndicatorContainer.classList.add("smart-visibility-hidden")}_refreshElementsVisibility(){const e=this,t=function(e,t){e&&(t?e.classList.remove("smart-hidden"):e.classList.add("smart-hidden"))};if(t(e.$.placeholder,!e.rows||e.rows&&0===e.rows.length||0===e.columns.length),t(e.$.footer,e.footer.visible),t(e.$.header,e.header.visible&&!e.header.appendTo),t(e.$.groupHeader,e.groupHeader.visible||e.grouping.groupBar.visible),t(e.$.columnHeader,e.columnHeader.visible&&e.columns.length>0),t(e.$.headerCommandBar,e.editing.commandBar.visible&&"far"!==e.editing.commandBar.position),t(e.$.footerCommandBar,e.editing.commandBar.visible&&"near"!==e.editing.commandBar.position),t(e.$.breadcrumb,e.groupHeader.visible||e.grouping.groupBar.visible),e.htmlColumnLastChild.classList.add("smart-visibility-hidden"),e.pager&&e.pager.visible&&e.paging.enabled)switch(e.pager.position){case"near":t(e.$.headerPager,!0),t(e.$.footerPager,!1);break;case"far":t(e.$.headerPager,!1),t(e.$.footerPager,!0);break;case"both":t(e.$.headerPager,!0),t(e.$.footerPager,!0)}else t(e.$.footerPager,!1),t(e.$.headerPager,!1)}_getId(){const e=this;return e.dataSource&&e.dataSource.id?e.dataSource.id:e.dataSourceSettings.id?e.dataSourceSettings.id:void 0}_refreshRowHierarchy(e,t=!1){const o=this;o.rowHierarchy=null;let l=0,a=!1;if(!o.grouping.enabled&&o.dataSource.groupBy&&o.dataSource.groupBy.length>0&&(a=!0),o.grouping.enabled&&o.dataSource.groupBy&&0===o.dataSource.groupBy.length)return;let n=!1;if(o.grouping.enabled&&o.dataSource.groupBy&&o.dataSource.groupBy.length>0&&o.dataSource.virtualDataSourceOnExpand&&(n=!0),o.dataSource.boundHierarchy){const i=o.dataSource.reservedNames,r=function(e){return new Smart.Grid.Row({data:e,grid:o,index:o.rows.length})};let s=0;const d=function(t,l){for(let u=0;u<t.length;u++){const c=t[u];let m=o.rowById[c.$.id];if(n&&(m=o.rows[s],m||(m=r(c),o.rows.push(m)),c[i.leaf]?m.id=c.$.id:m.id="Group_"+c.$.id,o.rowById[m.id]=m),m||(m=r(c),o.rowById[m.id]=m),m.data=c,m.leaf=c[i.leaf]||!1,m.level=c[i.level],m.groupDataField=c.groupDataField,!m.groupDataField&&o.appearance.showTreeRowHeader&&(m.groupDataField=o.columns[m.level].dataField),m.label=c.label,m.groupDataField){const e=o.columnByDataField[m.groupDataField];if(e&&e.editor.dataSource)for(let t=0;t<e.editor.dataSource.length;t++){const o=e.editor.dataSource[t];if(""+o.value===m.label){void 0!==o.label?(m.label=o.label,m.labelValue=o.value):void 0!==o.name&&(m.label=o.name,m.labelValue=o.value);break}}}if(m.children=[],m.data&&(m.filtered=void 0===m.data.$.filtered||m.data.$.filtered),c.summaryRow&&(m.summaryRow=!0),(null===o._toggledRow||o._toggledRow&&o._toggledRow.id!==m.id)&&(m.expandHeight=0),c.parent?(m.parent=o.rowById[c.parent.$.id],m.parentId=c.parent.$.id):(m.parent=null,m.parentId=null),o.grouping.onGroupDefaultExpanded&&!o.isRendered){const e=o.grouping.onGroupDefaultExpanded(c);e&&(m.expanded=c[i.expanded]=e)}o.appearance.allowRowToggleAnimation||void 0!==c[i.expanded]&&(m.expanded=c[i.expanded]);let g=!!e||m.expanded;a&&(g=!0);const p=o.dataSource&&o.dataSource.id||o.dataSourceSettings.id;if(p&&!m.data[p]&&o.grouping.enabled&&o.dataSource&&o.dataSource.groupBy.length){const e=o.dataSource.groupBy[m.level];c.parent&&c.parent.expanded&&(""===m.data[e]&&o.dataSource.id&&!m.data.data[o.dataSource.id]||m.leaf&&!m.data[p])&&(s++,m.filtered=!1)}if(!0===m.visible&&!1!==m.filtered)if(s++,g||c[i.leaf])if(l.push(m),c.children&&c.children.length>0){const e=d(c.children,new Array);0===e.length&&(m.leaf=!0);for(let t=0;t<e.length;t++)l.push(e[t]);m.children=e}else c.children&&0===c.children.length&&(o.dataSource.virtualDataSource&&o.dataSource.virtualDataSourceOnExpand?m.data._loaded&&(m.leaf=!0):m.leaf=!0);else if(l.push(m),c.children&&c.children.length>0){const e=d(c.children,new Array);0===e.length&&(m.leaf=!0),m.children=e}else c.children&&0===c.children.length&&(o.dataSource.virtualDataSource&&o.dataSource.virtualDataSourceOnExpand?m.data._loaded&&(m.leaf=!0):m.leaf=!0)}return l};let u=o.dataSource.boundHierarchy;if(o.paging.enabled&&!t){let e=[];const t=e=>{let l=[];if(0===o.dataSource.groupBy.length)return e;for(let o=0;o<e.length;o++){const a=e[o];(!a.$||void 0===a.$.filtered||a.$.filtered)&&(l.push(a),a.children&&(l=l.concat(t(a.children))))}return l};if(o.dataSource&&!o.dataSource.virtualDataSource){for(let o=0;o<u.length;o++){let l=u[o],a=!l.$||void 0===l.$.filtered||l.$.filtered;!a&&null!==a||0!==l.level||l.parent||(t(l.children).length,e.push(l))}u=e.slice(o.paging.pageIndex*o._pageSize,(o.paging.pageIndex+1)*o._pageSize)}}const c=o.rows.canNotify;o.rows.canNotify=!1,o.rowHierarchy=d(u,new Array),o.rows.canNotify=c;let m=[];for(let e=0;e<o.rowHierarchy.length;e++){const t=o.rowHierarchy[e],a=t.canNotify;t.leaf&&m.push(t),t.canNotify=!1,o.grouping.enabled&&o.dataSource&&o.dataSource.groupBy.length?t.leaf?t.visibleIndex=l++:t.visibleIndex=-1:t.visibleIndex=l++,t.canNotify=a}if(a&&(o.rowHierarchy=m),o._rowElements.length<o.rowHierarchy.length&&!o._toggledRow&&o._initializeRowElements(),o.grouping.summaryRow.visible&&!o.grouping.summaryRow.inline){const e=function(t,o,l,a){if(0!==t&&o.length>0&&o[o.length-1]&&!o[o.length-1].summaryRow){let e={label:" ",boundSource:[],groupDataField:l.data.groupDataField,$:{},summaryRow:!0,leaf:!0,level:t,expandHeight:0,siblings:o};e.$.id="SubRow"+a+"_"+l.data.$.id,l&&(e.parent=l.data,e.parentId=l.data.$.id),e.data=Object.assign(e),o.push(e)}for(let t=0;t<o.length;t++)o[t]&&o[t].data&&o[t].data.children&&e(o[t].level+1,o[t].data.children,o[t],t)};e(0,o.rowHierarchy,null,0)}}}applyContent(){}_refreshContentHeight(){const e=this;let t=e._clientSize.height;const o=window.scrollY;let l,a,n=!1;if((!e._contentHeight||e._maxHeight||e._autoHeight||e.__autoHeight||"hidden"===e.verticalScrollBarVisibility)&&(n=!0),n&&(l=e.offsetHeight,e.$.container.classList.add("smart-hidden"),a=e.offsetHeight,e.$.container.classList.remove("smart-hidden")),window.scrollY!==o&&window.scrollTo(window.scrollX,o),"hidden"===e.verticalScrollBarVisibility||e.layout.autoHeight||l!==a||e._minHeight&&e._minHeight===l)return t=e._scrollHeight+e.$.columnHeader.offsetHeight+e.$.filterFooter.offsetHeight,e.header.visible&&!e.header.appendTo&&(t+=e.$.header.offsetHeight),e.summaryRow.visible&&(t+=e.layout.rowMinHeight),0===e._recyclingRows.length&&0===e._scrollHeight&&(t+=e.$.scrollView.offsetTop),e._minHeight>t&&(t=e._minHeight),e.$.content.style.height=t+"px",e._contentHeight=t,void(e._maxHeight<t?(e._autoHeight=!1,e.$.content.classList.remove("auto-height"),e.$.content.style.height=e._maxHeight+"px",e.header.visible&&!e.header.appendTo?(e.$.content.style.height=e._maxHeight-e.$.header.offsetHeight+"px",e._contentHeight=e._maxHeight-e.$.header.offsetHeight):e._contentHeight=e._maxHeight):(e._autoHeight=!0,e.__autoHeight=!0,e.$.content.classList.add("auto-height"),e.filtering.filterRow.visible&&(e.filtering.filterRow.visible,e._contentHeight=t,e.$.content.style.height=e._contentHeight+"px"),e.header.visible&&!e.header.appendTo?(e._contentHeight=t-e.$.header.offsetHeight,e.$.content.style.height=e._contentHeight+"px"):e.summaryRow.visible&&(e.$.content.style.height=e._contentHeight+"px")));if(e.header.visible&&!e.header.appendTo&&(t-=e.$.header.offsetHeight),(e.groupHeader.visible||e.grouping.groupBar.visible)&&(t-=e.$.groupHeader.offsetHeight),e.footer.visible&&(t-=e.$.footer.offsetHeight),e.pager.visible&&(t-=e.$.headerPager.offsetHeight,t-=e.$.footerPager.offsetHeight),e.editing.enabled&&e.editing.commandBar.visible&&(t-=e.$.headerCommandBar.offsetHeight,t-=e.$.footerCommandBar.offsetHeight),e.$.content.style.height!==t+"px"&&(e.$.content.style.height=t+"px"),e.$.viewContent.style.height!==t+"px"&&(e.$.viewContent.style.height=t+"px"),e._contentHeight=t,!e.appearance.showViewBar||e.appearance.viewBarAppendTo||e.appearance.showViewBarAsDropdown)e.$.viewBar.classList.add("smart-hidden"),e.$.content.style.width="",e.$.viewContent.style.width="",e.$.content.style.marginLeft="",e.$.viewContent.style.marginLeft="";else{const o=e.layout.viewBarWidth+5;e.$.viewBar.classList.remove("smart-hidden"),e._mobile||(e.$.content.style.width="calc(100% - "+o+"px)",e.$.viewContent.style.width="calc(100% - "+o+"px)",e.$.content.style.marginLeft=o+"px",e.$.viewContent.style.marginLeft=o+"px"),e.$.viewBar.style.width=o+"px";let l=0;e.header.visible&&!e.header.appendTo&&(l+=e.$.header.offsetHeight),(e.groupHeader.visible||e.grouping.groupBar.visible)&&(l+=e.$.groupHeader.offsetHeight),e.pager.visible&&(l+=e.$.headerPager.offsetHeight),e.$.viewBar.style.top=l+"px",e.$.viewBar.style.height=t+"px"}}appendChild(){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.appendChild.apply(this,e.concat(Array.prototype.slice.call(arguments)))}removeChild(){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.removeChild.apply(this,e.concat(Array.prototype.slice.call(arguments)))}get _contentBorder(){const e=this;if(e.__contentBorder)return e.__contentBorder;const t=getComputedStyle(e.$.content),o={left:parseFloat(t.borderLeftWidth)+parseFloat(t.borderRightWidth),top:parseFloat(t.borderTopWidth)+parseFloat(t.borderBottomWidth)};return e.__contentBorder=o,o}_refreshAutoSize(){const e=this;if(e.layout.autoWidth){const t=e._isUpdatingScrollBars;e._isUpdatingScrollBars=!0;let o=2;for(let t=0;t<e.viewColumns.length;t++){const l=e.viewColumns[t];l.visible&&(o+=l.computedWidth)}o+=e.$.verticalScrollBar.offsetWidth>0?e.$.verticalScrollBar.offsetWidth:0,e.style.width=o+"px",requestAnimationFrame((()=>{e._isUpdatingScrollBars=t}))}e.layout.autoHeight&&(e.style.height="auto")}_refreshLayout(){const e=this,t=e.rows;if(e._layoutSuspended)return;e._visibleRows=null,e.__viewRows=null,e.__clientSize=null,e.__scrollHeight=null,e.__scrollWidth=null,e.__parentCells=null,e.$.columnFarContainer.classList.remove("vscroll"),e.$.columnNearContainer.classList.remove("vscroll"),e.$.scrollView.classList.remove("hscroll"),e.$.scrollView.classList.remove("vscroll"),e._refreshAutoSize(),e._refreshElementsVisibility(),e._refreshRowHierarchy(),e._refreshColumnHeights(),e._refreshContentHeight();const o=()=>{e.$.placeholder.classList.remove("smart-hidden"),e.$.placeholder.innerHTML=e.messages[e.locale]&&e.messages[e.locale].placeholder?e.localize("placeholder"):e.appearance.placeholder,e._filters&&e._filters.length&&(e.$.placeholder.innerHTML=e.localize("filteredRecords")),e.__filterFooterOffsetHeight||(e.__filterFooterOffsetHeight=e.$.filterFooter.classList.contains("smart-hidden")?0:e.$.filterFooter.offsetHeight),!e.__columnHeaderHeight&&e.$.columnHeader.offsetHeight&&(e.__columnHeaderHeight=e.$.columnHeader.offsetHeight);let t=e._contentHeight-e.__filterFooterOffsetHeight-e.__columnHeaderHeight;e.$.scrollView.style.height=t+"px",e.scrollWidth=0,e.scrollHeight=0,e.clearSelection(),e._showAddNewRowButton("float"),e.$.content.classList.contains("auto-height")&&(e.$.placeholder.style.height=t+"px")};if(t&&t.url)e._showAddNewRowButton("float");else{if(!t||null===t||0===t.length||0===e.columns.length)return o(),0!==e.columns.length&&e.hasVisibleColumn()?e.editing.addNewColumn._addButton&&e.editing.addNewColumn._addButton.classList.remove("show"):(e._showAddNewColumnButton(),e.$.columnHeader.classList.add("smart-hidden"),e.__columnHeaderHeight=0),void e._refreshScrollBars();e._showAddNewRowButton("float"),e.editing.addNewColumn._addButton&&e.editing.addNewColumn._addButton.classList.remove("show")}0!==e.columns.length&&e.hasVisibleColumn()?e.editing.addNewColumn._addButton&&e.editing.addNewColumn._addButton.classList.remove("show"):(o(),0!==e.columns.length&&e.hasVisibleColumn()||(e._showAddNewColumnButton(),e.$.columnHeader.classList.add("smart-hidden"),e.__columnHeaderHeight=0),e._showAddNewColumnButton()),"card"===e.view&&(e.__columnHeaderHeight=0),!e.__columnHeaderHeight&&e.$.columnHeader.offsetHeight&&(e.__columnHeaderHeight=e.$.columnHeader.offsetHeight),e.__filterFooterOffsetHeight||(e.__filterFooterOffsetHeight=e.$.filterFooter.classList.contains("smart-hidden")?0:e.$.filterFooter.offsetHeight);let l=e._contentHeight-e.__filterFooterOffsetHeight-e.__columnHeaderHeight;if(e.$.scrollView.style.height=l+"px",e.htmlColumnLastChild.style.height=e.__columnHeaderHeight+"px",e.paging.spinner.enabled&&e.paging.enabled){if(!e.pageScroll){const t=document.createElement("smart-scroll-bar");t.orientation="vertical",t.style.height="100%",t.style.width="100%",t.max=Math.ceil(e.dataSource.length/e._pageSize),t.step=e.paging.spinner.step,t.largeStep=e.paging.spinner.step,t.setAttribute("spinner",""),t.setAttribute("smart-id","spinner"),t.ownerElement=e,e.addPropertyBinding("[[paging_spinner_step]]","step",t,e.$.columnHeader),t.addEventListener("change",(function(t){e.paging.pageIndex=t.detail.value,e._refreshLayout(),e._refreshSelection(),e.dataSource&&e.dataSource.virtualDataSource?e._virtualDataRequest("pageIndexChange"):(e._recycle(),e._scrollUpdate&&clearTimeout(e._scrollUpdate),e._scrollUpdate=setTimeout((function(){e.isScrolling||(e.$.rowContainer.style.top=parseInt(e.$.rowContainer.style.top)+.01+"px")}),50))})),e.pageScroll=t}e.htmlColumnLastChild.appendChild(e.pageScroll)}else e.htmlColumnLastChild.innerHTML="";e._refreshScrollBars()}_refreshScrollBars(){const e=this;if(!e._scrollView)return;const t=e._scrollView.vScrollBar,o=e._scrollView.hScrollBar,l=e._contentHeight-e.__filterFooterOffsetHeight-e.__columnHeaderHeight,a=e.$.scrollView.offsetWidth,n=e._scrollWidth-a-e._contentBorder.left,i=e._scrollHeight-l-e._contentBorder.top,r=e._columnNearContainerComputedStyle?e._columnNearContainerComputedStyle:getComputedStyle(e.$.columnNearContainer),s=e._columnFarContainerComputedStyle?e._columnFarContainerComputedStyle:getComputedStyle(e.$.columnFarContainer),d=parseInt(e.$.columnNearContainer.style.width)+parseInt(r.borderRightWidth),u=parseInt(e.$.columnFarContainer.style.width)+parseInt(s.borderLeftWidth);if(e.__frozenNearWidth=d,e.__frozenFarWidth=u,e._columnNearContainerComputedStyle=r,e._columnFarContainerComputedStyle=s,e._refreshHorizontalScrollBarVisibility(n),e._refreshVerticalScrollBarVisibility(i),t.style.height=l+"px",e.computedVerticalScrollBarVisibility?(e.__scrollBarSize||(e.__scrollBarSize=t.offsetWidth),e.__scrollWidth+=e.__scrollBarSize,e._refreshHorizontalScrollBarVisibility(e._scrollWidth-a-1),e.rightToLeft?e.$.columnNearContainer.classList.add("vscroll"):e.$.columnFarContainer.classList.add("vscroll"),e._refreshVerticalScrollBarVisibility(i),e.htmlColumnLastChild.classList.remove("smart-visibility-hidden"),e.$.scrollView.classList.add("has-vscroll")):e.$.scrollView.classList.remove("has-vscroll"),o.style.width=a+"px",e.rightToLeft?o.style.right="0px":o.style.left="0px",e.computedVerticalScrollBarVisibility&&e.computedHorizontalScrollBarVisibility&&(o.style.width=a-t.offsetWidth+"px",t.style.height=l-o.offsetHeight+"px"),e.computedHorizontalScrollBarVisibility?(e.$.scrollView.classList.add("hscroll"),e._autoHeight?(e.$.content.style.height="auto",e.$.scrollView.style.height="auto",e.$.scrollView.style.paddingBottom=o.offsetHeight+"px",e.$.placeholder.style.marginTop=o.offsetHeight+"px",e.summaryRow.visible&&(e.$.scrollView.style.paddingBottom=o.offsetHeight+e.layout.rowMinHeight+"px"),e.filtering.enabled&&e.filtering.filterRow.visible&&(e.$.scrollView.style.paddingBottom=o.offsetHeight+e.layout.rowMinHeight+"px")):(e.$.scrollView.style.paddingBottom="",e.$.placeholder.style.marginTop="")):e.$.scrollView.classList.remove("hscroll"),(e.__frozenNearHeight>0||e._frozenNearRows&&e._frozenNearRows.length>0)&&!e.appearance.showVerticalScrollBarOnFixedColumns){const o=getComputedStyle(e.$.rowNearContainer),l=e.__frozenNearHeight+parseInt(o.borderBottomWidth);t.style.height=parseInt(t.style.height)-l+"px",t.style.top=l+"px",t.style.setProperty("--smart-scroll-bar-near-size",l+"px")}else e.appearance.showVerticalScrollBarOnFixedColumns&&(t.style.top="0px");if((e.__frozenFarHeight>0||e._frozenFarRows&&e._frozenFarRows.length>0)&&!e.appearance.showVerticalScrollBarOnFixedColumns){const o=getComputedStyle(e.$.rowFarContainer),l=-2+e.__frozenFarHeight+parseInt(o.borderTopWidth);t.style.height=parseInt(t.style.height)-l+"px",t.style.setProperty("--smart-scroll-bar-far-size",l+"px"),0===e.__frozenNearHeight&&(t.style.top="0px")}(d>0||u>0)&&!e.appearance.showHorizontalScrollBarOnFixedColumns&&(o.style.width=parseInt(o.style.width)-d-u+"px",e.rightToLeft?o.style.right=d+"px":o.style.left=d+"px",o.style.setProperty("--smart-scroll-bar-near-size",d+parseInt(r.borderRightWidth)+"px"),o.style.setProperty("--smart-scroll-bar-far-size",u+parseInt(r.borderLeftWidth)+"px"),e.computedVerticalScrollBarVisibility&&(e.__scrollBarSize||(e.__scrollBarSize=t.offsetWidth),o.style.setProperty("--smart-scroll-bar-far-size",u+e.__scrollBarSize+"px"))),t.refresh(),o.refresh(),e._mobile&&(e._scrollContentView.style.width=e.$.scrollView.offsetWidth+e._scrollView.scrollWidth+"px",e._scrollContentView.style.height=e.$.scrollView.offsetHeight+e._scrollView.scrollHeight+"px")}_refreshHorizontalScrollBarVisibility(e){const t=this;t.scrollWidth=e,t.computedHorizontalScrollBarVisibility||(t.scrollLeft=0)}_refreshVerticalScrollBarVisibility(e){const t=this;if(t._autoHeight)return t.scrollTop=0,void(t.scrollHeight=0);t.computedHorizontalScrollBarVisibility&&(e+=t.$.horizontalScrollBar.offsetHeight),t.scrollHeight=e,t.paging.enabled&&t.paging.spinner.visible&&t.$.verticalScrollBarVisibility.classList.remove("smart-hidden"),t.computedVerticalScrollBarVisibility||(t.scrollTop=0)}_styleChangedHandler(e){const t=this;if(!e.detail.styleProperties.overflow&&!t.classList.contains("smart-grid-resize-mode")){if(e.detail.styleProperties["grid-template-columns"])return t._templateColumns(),void t.refresh();if(e.detail.styleProperties["font-size"])return t.layout.isDirty=!0,t._resetCachedLayout(),void t.refresh();(e.detail.styleProperties["--smart-grid-row-height"]||e.detail.styleProperties["--smart-font-size"]||e.detail.styleProperties["--smart-grid-column-header-height"]||e.detail.styleProperties["--smart-grid-group-header-height"]||e.detail.styleProperties["--smart-grid-filter-footer-height"]||e.detail.styleProperties["--smart-grid-group-row-vertical"]||e.detail.styleProperties["--smart-grid-group-row-horizontal-offset"]||e.detail.styleProperties["--smart-grid-freeze-splitter-size"]||e.detail.styleProperties["--smart-grid-resize-line-size"]||e.detail.styleProperties["--smart-grid-footer-height"]||e.detail.styleProperties["--smart-grid-header-height"])&&(t.layout.isDirty=!0),t.offsetWidth&&t.offsetHeight>0&&(t._resetCachedLayout(),t._refreshLayout(),t._recycle())}}_resetCachedLayout(){const e=this;delete e._columnHeights,e.__cellsCommandTemplate=null,e.__autoRowHeight=null,e.__autoHeightRows=null,e.__measuredColumnHeight=null,e.__columnHeaderHeight=null,e.__filterFooterOffsetHeight=null}_swipeLeftHandler(){}_swipeRightHandler(){}_getRowIndexByPosition(e){const t=this;return(o=>{let l=0,a=o.length-1;if(e<=0)return 0;const n=o[o.length-1];if(-1!==n.top&&n.top<=e)return o.length-1;for(;;){const n=Math.floor((l+a)/2),i=o[n];if(t._isRowInPosition(i,e))return n;i.top<e?l=n+1:i.top>e?a=n-1:l=n+1}})(t._recyclingRows)}_getVirtualRowIndexByPosition(e){let t=this.rows[0].height;const o=(e,o)=>0!==t&&e<=o&&e+t>o;return(l=>{let a=0,n=l.length-1;if(e<=0)return 0;const i=(l.length-1)*t;if(-1!==i&&i<=e)return l.length-1;for(;;){const l=Math.floor((a+n)/2),i=l*t;if(o(i,e))return l;i<e?a=l+1:i>e?n=l-1:a=l+1}})(this.dataSource)}getRows(){return this.getViewRows()}getViewRows(){const e=this;return e.rowHierarchy?e.rowHierarchy:e.getVisibleRows()}getData(){const e=this;if(!e.dataSource)return[];const t=[];for(let o=0;o<e.dataSource.length;o++){const l=e.dataSource[o];if(l.$){const o={};for(let t=0;t<e.dataSource.dataFields.length;t++){const a=e.dataSource.dataFields[t].name;o[a]=l[a]}t.push(o)}else t.push(l)}return t}getDataFields(){const e=this;return e.columns?e.columns.map((e=>e.dataField)):[]}getColumns(){const e=this,t=[];if(!e.isInitialized)return t;if(e.columns)for(let o=0;o<e.columns.length;o++){const l=e.columns[o].getState();t.push(l)}return t}resetState(){const e=this;e._isUpdating=0,e.beginUpdate(),e.clearSort(),e.clearFilter(),e.clearGroups(),e.clearSelection(),e._conditionalColors&&(e._conditionalColors.colors=[],e._conditionalColors.conditions=[],e._conditionalColors.type="conditions",e._conditionalColors.singleSelect="",e._conditionalColors.decorate="border"),e.$.headerBar&&delete e.$.headerBar._appliedColors,e.columns.canNotify=!1;let t=[],o=!1;for(let l=0;l<e.columns.length;l++){const a=e.columns[l];a.visible=!0,a.width=180,a.freeze=!1,a.index>=0?t[a.index]=a:t.push(a),a.index!==l&&(o=!0)}o&&(e.columns=t),"grid"!==e.view&&(e.view="grid",e._hideKanbanView()),e.columns.canNotify=!0,e._scrollView.scrollLeft=e._scrollView.scrollTop=0,e.paging.enabled&&(e.paging.pageIndex=0),e.$.headerBar&&e.$.headerBar._setView&&e.$.headerBar._setView("grid"),e._kanban&&e._kanban._reset(),e.layout.isDirty=!0,e.endUpdate(),o&&(e._renderColumns(),e._refreshHeaderBar())}_loadState(e){const t=this;let o=!1;t.stateSettings.loading=!0;let l=!1,a=!1;if("grid"===e.view||"card"===e.view||void 0===e.view){if(e.expandedRows&&Object.keys(e.expandedRows).length>0){o=!0,t.beginUpdate();const l=[];if(e.groups){t.dataSource.groupBy=e.groups,t._groups=[].concat(t.dataSource.groupBy.toArray())||[],t._refreshRowHierarchy();for(let o in e.expandedRows)l["Item"+o.replaceAll(".","_")]=!0,t._expandCollapseGroup(o,!0)}else if(t.grouping.enabled&&t.dataSource.groupBy.length)for(let o in e.expandedRows)l["Item"+o.replaceAll(".","_")]=!0,t._expandCollapseGroup(o,!0);t.dataSource&&(t.dataSource._expandedRowIds=l)}else if(e.groups&&e.groups.length){o=!0,t.beginUpdate();const l=[];t.dataSource&&(t.dataSource._expandedRowIds=l),e.groups&&(t.dataSource.groupBy=e.groups,t._refreshRowHierarchy())}else if(e.groups&&0===e.groups.length&&t.dataSource.groupBy.length>0){o=!0,t.beginUpdate();const e=[];t.dataSource&&(t.dataSource._expandedRowIds=e),t.dataSource.groupBy=[],t._refreshRowHierarchy(),a=!0}if(e.paging&&t.paging.enabled&&(t.paging.index=e.paging.index,t.paging.size=e.paging.size),e.colors&&(t._conditionalColors=JSON.parse(JSON.stringify(e.colors)),t.$.headerBar)){let l=[];if(e.colors.conditions)for(let t=0;t<e.colors.conditions.length;t++){let o=e.colors.conditions[t],a=[];for(let e in o)a.push(o[e]);l.push(a)}o||(o=!0,t.beginUpdate());const a={type:e.colors.type,singleSelect:e.colors.singleSelect,decorate:e.colors.decorate};t.$.headerBar._appliedColors=[l,a],t._conditionalColors.update=e=>{t.$.headerBar._updateConditionalColors(e,t,a)}}if(e.columns&&e.columns.length>0){o||(o=!0,t.beginUpdate());for(let o=0;o<e.columns.length;o++){const a=e.columns[o];if(a.dataField){const e=t.columnByDataField[a.dataField];if(e){const o=e.canNotify;e.canNotify=!1,a.width?e.width=a.width:e.width=180,e.visible=void 0===a.visible||a.visible,e._state&&(e._state.visible=void 0===a.visible||a.visible,e._state.freeze=void 0!==a.freeze&&a.freeze,e._state.width=a.width?a.width:180);const n=e.freeze;e.freeze=void 0!==a.freeze&&a.freeze,n!==e.freeze&&(l=!0,e.freeze||t._frozenNearColumns.indexOf(e)),e.canNotify=o}}}}}if(e.sort&&Object.keys(e.sort).length>0){o||(o=!0,t.beginUpdate());const l=t.appearance.allowSortAnimation;t.appearance.allowSortAnimation=!1;let a=t.columns.canNotify;t.columns.canNotify=!1;for(let e=0;e<t.columns.length;e++)t.columns[e].sortOrder="";t.columns.canNotify=a;for(let o in e.sort)if(e.sort[o]){const l=e.sort[o].sortOrder,a=t.columnByDataField[o];t.sortBy(a.dataField,l)}t.appearance.allowSortAnimation=l}if(e.filter&&Object.keys(e.filter).length>0){o||(o=!0,t.beginUpdate());for(let o in e.filter){const l=e.filter[o];if(l){t.addFilter(o,l,!1);const e=t.columnByDataField[o];e&&e._filterInfo&&e.filter&&e.filter.filters&&e.filter.filters[0]&&(e._filterInfo.value=e.filter.filters[0].value,e._filterInfo.condition=e.filter.filters[0].condition)}}if(t.filtering.filterRow)for(let e=0;e<t.columns.length;e++)t.columns[e]._filterEditorInitialized&&(t.columns[e]._filterEditorInitialized=!1)}if(o){t.endUpdate(!1,!1);let o=!1;e.view&&"kanban"===e.view&&(o=!0),l&&(o=!1,a=!0,t._renderColumns()),o||(a?t.refresh(!0):t._refresh())}let n=!1;e.kanban&&e.kanban.stackedBy&&(void 0===t._stackedBy&&(t._stackedBy=e.kanban.stackedBy),t._stackedBy!==e.kanban.stackedBy&&(n=!0),t._stackedBy=e.kanban.stackedBy),(n||e.view&&t.view!==e.view)&&t.$.headerBar&&t.$.headerBar._setView&&(e.name&&(t.stateSettings.current=e.name),t.$.headerBar._setView(e.view,!0)),e.filter&&Object.keys(e.filter).length>0&&t.refreshFilters(),e.name&&(t.stateSettings.current=e.name),t._refreshHeaderBar(),t.stateSettings.loading=!1}loadState(e){const t=this;if(e){if(t.stateSettings.loading=!0,t._isUpdating=0,t.beginUpdate(),t.clearSort(),t.clearFilter(),t.clearGroups(),t.clearSelection(),t._conditionalColors&&(t._conditionalColors.colors=[],t._conditionalColors.conditions=[],t._conditionalColors.type="conditions",t._conditionalColors.singleSelect="",t._conditionalColors.decorate="border"),t.$.headerBar&&delete t.$.headerBar._appliedColors,t._scrollView.scrollLeft=t._scrollView.scrollTop=0,t.paging.enabled&&(t.paging.pageIndex=0),t.endUpdate(!1,!1),"string"==typeof e){const o=t.stateSettings.storage[e];o&&t._loadState(o)}else t._loadState(e);t.stateSettings.loading=!1}else if(!t.stateSettings.autoSave){let e=t.getCurrentState();e&&t.loadState(e)}}saveState(e,t){const o=this;let l=o.getCurrentState(),a=t;!t&&o.stateSettings.options.length&&(t=o.stateSettings.options);const n=o.getState(t);let i;if(e?(i=e,o.stateSettings.current||(o.stateSettings.current=e)):i=o.stateSettings.current?o.stateSettings.current:o.stateSettings.current="View 1",l&&a)for(let e in a)l[a[e]]=n[a[e]];else l=n;function r(e,t=0,o=10){if(t>o)return"Object";const l={};if(e&&e instanceof Smart.FilterGroup)return e=e.toString();for(let a in e){let n=e[a];if(n instanceof Node)n={id:n.id};else if(n instanceof Window)n="Window";else if(n instanceof Date)n=n.toJSON();else{if(n&&Array.isArray(n)&&void 0!==n[0]&&("string"==typeof n[0]||"number"==typeof n[0]||n[0]instanceof Date||"boolean"==typeof n[0])){l[a]=n;continue}if(n&&Array.isArray(n)&&0===n.length){l[a]=n;continue}if(n&&n&&Array.isArray(n)&&void 0!==n[0]&&"object"==typeof n[0]&&"path"!==a&&!(n[0]instanceof HTMLElement))for(let e=0;e<n.length;e++)n[e]=r(n[e],t+1,o);else n instanceof Object&&(n=r(n,t+1,o))}l[a]=n}return t?l:JSON.stringify(l)}l.name=i,o.stringify_object=r;const s=r(l);return o.stateSettings.allowLocalStorage&&window.localStorage.setItem(i,s),o.stateSettings.storage||(o.stateSettings.storage={}),o.stateSettings.storage[o.stateSettings.current]&&!l.date&&o.stateSettings.storage[o.stateSettings.current].date?l.date=o.stateSettings.storage[o.stateSettings.current].date:l.date=(new Date).toJSON(),o.stateSettings.storage[o.stateSettings.current]=l,o.stateSettings.onStateChange&&(o._isUpdating<=0||void 0===this._isUpdating)&&o.isCompleted&&o.stateSettings.onStateChange(l,i,o.stateSettings.storage,r),l}autoSaveState(){const e=this;if(!e.stateSettings.current&&e.stateSettings.autoSave&&!e.stateSettings.loading){const t=e.stateSettings.storage;if(t&&0===Object.keys(t).length||!t){const t=e.localize("newGrid")+" "+e.localize("view");e.stateSettings.current=t}}e.stateSettings.autoSave&&e.stateSettings.current&&!e.stateSettings.loading&&e.saveState()}getCurrentState(){const e=this,t=e.stateSettings.current;return e.stateSettings.storage||(e.stateSettings.storage={}),e.stateSettings.storage[t]?e.stateSettings.storage[t]:null}setColors(e,t){const o=this;o._conditionalColors={type:t.type,decorate:t.decorate,conditions:e,singleSelect:t.singleSelect},o.$.headerBar.addColors(JSON.parse(JSON.stringify(e)),{type:t.type,singleSelect:t.singleSelect,decorate:t.decorate},[]),o._recycle(!1)}getColors(){const e=this;if(e._conditionalColors){const t=JSON.parse(JSON.stringify(e._conditionalColors));return{type:t.type,conditions:t.conditions,filters:t.filters,colors:t.colors,decorate:t.decorate,singleSelect:t.singleSelect}}return null}getState(e){const t=this;if(e&&!e.includes)return;const o=!e||e&&e.includes("sort")?t.getSortedColumns():null,l=!e||e&&e.includes("filter")?t.getFilteredColumns():null,a=!e||e&&e.includes("groups")?t.getGroups():null,n=!e||e&&e.includes("selection")?t.getSelectedCells():null,i=!e||e&&e.includes("selection")?t.getSelectedRows():null,r=!e||e&&e.includes("pager")?t.$.headerPager.querySelector("smart-pager"):null,s=!e||e&&e.includes("colors")?t.getColors():null;let d=0;r&&(d=r.pagesCount);const u={sort:o,filter:l,groups:a,paging:{count:d,index:t.paging.pageIndex,size:t._pageSize},selectedCells:n,selectedRows:i};s&&(delete s.colors,u.colors=s),(t.header.visible&&t.header.buttons.indexOf("views")>=0||t.header.buttons.indexOf("states")>=0)&&(u.kanban=t.getKanbanState(),u.view=t.view);const c=[];if(!e||e&&e.includes("columns")){for(let e=0;e<t.columns.length;e++){const o=t.columns[e];c.push({dataField:o.dataField,width:o.computedWidth,visible:o.visible,freeze:o.freeze})}u.columns=c}if((!e||e&&e.includes("expandedRows"))&&t.dataSource&&t.dataSource._expandedRowIds){let e={};for(let o in t.dataSource._expandedRowIds){let t=""+o;t=t.replace("Item","").replace(/_/gi,"."),e[t]=!0}u.expandedRows=e}if(e){const t={};for(let o in e){const l=e[o];u[l]&&(t[l]=u[l])}return t}return u}get _pageSize(){const e=this;return e.dataSource&&e.grouping.enabled&&e.dataSource.groupBy.length>0?e.paging.pageHierarchySize:e.paging.pageSize}get _recyclingRows(){const e=this;if(e.rowHierarchy)return e.rowHierarchy;let t=e.getVisibleRows();if(e.paging.enabled)if(e.dataSource.virtualDataSource)t=t.slice(0,e._pageSize);else if(t=t.slice(e.paging.pageIndex*e._pageSize,(e.paging.pageIndex+1)*e._pageSize),e.editing.addNewRow&&e.editing.addNewRow.visible&&"button"!==e.editing.addNewRow.displayMode){let t=e.getVisibleRows();return t=0===e.paging.pageIndex&&"far"!==e.editing.addNewRow.position?t.slice(1+e.paging.pageIndex*e._pageSize,1+(e.paging.pageIndex+1)*e._pageSize):0===e.paging.pageIndex&&"far"===e.editing.addNewRow.position?t.slice(e.paging.pageIndex*e._pageSize,1+(e.paging.pageIndex+1)*e._pageSize):t.slice(1+e.paging.pageIndex*e._pageSize,1+(e.paging.pageIndex+1)*e._pageSize),[].concat(e._frozenNearDefaultRows,t,e._frozenFarDefaultRows)}return t}_isRowInPosition(e,t){const o=e.top,l=e.top+e.height,a=o<=t&&l>t;return 0!==e.height&&a}_renderColumnGroupHeaders(){const e=this;for(let t=0;t<e._columnGroups.length;t++){const o=e._columnGroups[t];o.column.render(),o.column.allowReorder=!1,o.column.element.setAttribute("columnHeader",""),o.column.element.setAttribute("level",o.level),0===o.columns.length&&o.column.element.classList.add("smart-hidden"),0===t&&0===e.columns.indexOf(o.columns[0])&&o.column.element.classList.add("smart-grid-column-border-collapse")}}hasVisibleColumn(){const e=this;for(let t=e.viewColumns.length-1;t>=0;t--){const o=e.viewColumns[t];if(o.visible&&!o.autoGenerated)return!0}return!1}_isLastVisibleColumn(e){const t=this;for(let o=t.viewColumns.length-1;o>=0;o--){const l=t.viewColumns[o];if(l.visible)return l===e}return!1}_clearCachedTemplates(){const e=this;if(e._cachedTemplates&&Object.keys(e._cachedTemplates).length>0){e._tableCachedTemplates||(e._tableCachedTemplates=document.createElement("div"),e._tableCachedTemplates.style.display="none",document.body.appendChild(e._tableCachedTemplates));const t=document.createDocumentFragment();for(let o in e._cachedTemplates)t.appendChild(e._cachedTemplates[o]);e._tableCachedTemplates.appendChild(t)}}_recycle(e,t,o,l){const a=this;if(a._layoutSuspended||!1===a.isAttached)return;if(a._isUpdating)return;if(a.editing.isEditing&&(!0!==a._disableEndEdit&&a.endEdit(),a._isUpdating))return;a._recycleValues=void 0===o||o,a._removeCellContentPopup(),a._inputOverlay&&(a._inputOverlay.parentNode&&a._inputOverlay.parentNode.removeChild(a._inputOverlay),a._inputOverlay=null),a._selection.selectionRect&&a._refreshCellSelectionRect();const n=a._scrollView.scrollTop;let i,r=l||a._getRowIndexByPosition(n),s=a._recyclingRows,d=s[r],u=d?d.top:0,c=0,m=0,g=0,p=0;if(a._cellRowSpan&&a._cellRowSpan.maxSpan>0){let e=0;if(r>=5?e=5:r>=4?e=4:r>=3?e=3:r>=2?e=2:r>=1&&(e=1),e>0){const t=s[r-e];t&&(d=t,u=d?d.top:0,g=e*d.height,r-=e)}}a._cellRowSpan=[];for(let e=0;e<a._cellsMerge.length;e++){const t=a._cellsMerge[e],o=s.indexOf(t.row);if(r>o&&r<=o+t.rowSpan&&(r=o,d=t.row,g=Math.max(g,u-d.top),u=d.top,a.$.rowContainer.style.top=a.__frozenNearHeight-n+u+"px"),t.colSpan>1)for(let e=0;e<a.viewColumns.length;e++){const o=a.viewColumns[e];let l=o.autoGenerated?o:a.columnByDataField[o.dataField];if(l.visible&&l.left+l.computedWidth-a._scrollView.scrollLeft>=c&&l.left-l.computedWidth-a._scrollView.scrollLeft<a._clientSize.width){let e=a.columnByDataField[t.column.dataField];p=Math.max(p,l.left-e.left+l.computedWidth);break}}}a.isHScrolling&&a._clearCachedTemplates();let h=null;if(!1!==e||a._cellsMerge.length>0){if(a._columnElements)for(let e=0;e<a._columnElements.length;e++){const t=a._columnElements[e];if(!t.parentNode)break;t.set("column",null,!1),t.classList.add("smart-visibility-hidden")}for(let e=0;e<a._columnGroups.length;e++){const t=a._columnGroups[e],o=t.element;o&&(a.rightToLeft?o.style.right=t.right+"px":o.style.left=t.left+"px",o.style.width=t.computedWidth+"px")}a._firstVisibleColumn=null,a._firstVisibleUserColumn=null,a._lastVisibleColumn=null;for(let e=0;e<a.viewColumns.length;e++){let t=a.viewColumns[e];if(t.visible&&(a._firstVisibleColumn||(a._firstVisibleColumn=t),a._firstVisibleUserColumn||t.autoGenerated||(a._firstVisibleUserColumn=t),a._lastVisibleColumn=t),t.element&&(t===a._firstVisibleColumn||t.rowDetailColumn?t.element.classList.add("smart-grid-column-border-collapse"):t.element.classList.remove("smart-grid-column-border-collapse"),!1!==a.appearance.showColumnGroupCellLines&&!1!==a.appearance.showColumnGroupLines||(t.parent&&t.parent.columns&&t.parent.columns[0].dataField===t.dataField?t.element.setAttribute("column-group-first-child",""):t.parent&&t.element.removeAttribute("column-group-first-child")),t.element.removeAttribute("aria-colindex")),t.freeze){if(!0!==t.freeze&&"near"!==t.freeze||t.visible&&(c+=t.computedWidth),!t.element)continue;t.visible?(t.element.classList.remove("smart-visibility-hidden"),t.render()):t.element.classList.add("smart-visibility-hidden")}else if(t.visible&&t.left+t.computedWidth-a._scrollView.scrollLeft>=c-p&&t.left-t.computedWidth-a._scrollView.scrollLeft<a._clientSize.width){a._columnElements||(a._columnElements=[]);const o=a._columnElements[m++];o&&(o.set("column",t,!1),o.parentNode||a.$.columnContainer.appendChild(o),h||(h=t,a._firstRenderedColumn=t),t.element=o,t.render(),o.setAttribute("aria-colindex",e+1),void 0===i&&(i=t.left))}}}if(void 0===i&&(i=0),a.rightToLeft){const e=a._scrollView.scrollWidth-a._scrollView.scrollLeft-a._scrollView.vScrollBar.offsetWidth;a.$.columnContainer.style.right=e+"px",e<=0&&!a._scrollView.scrollWidth&&(a.$.columnContainer.style.right=-a.offsetWidth+a._computedColumnsWidth+"px")}else a.$.columnContainer.style.left=-a._scrollView.scrollLeft+"px";if(a.$.rowContainer.style.top=a.__frozenNearHeight-n+u+"px",a.isScrolling&&!a.isHScrolling&&(a._scrollUpdate&&clearTimeout(a._scrollUpdate),a._scrollUpdate=setTimeout((function(){a.isScrolling||(a.$.rowContainer.style.top=parseInt(a.$.rowContainer.style.top)+.01+"px")}),50)),!1===t)return;if(!a._rowElements)return;const f=a.dataSource&&a.dataSource.virtualDataSource&&!a.dataSource.virtualDataSourceOnExpand&&a.dataSource.length>a.virtualModeCachedRowsCount&&"infinite"!==a.scrolling;if(r>=0){m=0;let e=Math.max(a._clientSize.height,a._overflowOffset),t=0;f&&(a.rowById=[],a.rows&&a.rows.length>0&&void 0===a.rows[a.rows.length-1].top&&(a.rows[a.rows.length-1].top=(a.rows.length-1)*a.rows[0].height),a.rows&&a.rows.length>0&&(t=a._getVirtualRowIndexByPosition(n),u=t*a.rows[0].height,a.$.rowContainer.style.top=a.__frozenNearHeight-n+u+"px",a.paging.enabled||(r=0)),a.paging.enabled&&(t=a.paging.pageIndex*a._pageSize)),"card"===a.view&&a._cardHeight&&(e+=a._cardHeight);for(let o=r;o<s.length;o++){const l=s[o];if(0===l.height||!l.visible||!1===l.filtered||l.freeze&&l.visible)continue;const i=l.height;if(l.expandHeight&&(e+=a.offsetHeight+l.expandHeight),!(u+i>=n-g&&u<=n+e||a._autoHeight))break;{const e=a._rowElements[m++];if(!e)break;if(e.setAttribute("aria-rowindex",t+o+1),l.element=e,l.grid=a,f){if(l.index=o+t,l.visibleIndex=o+t,a.selection.enabled&&a._selection){const e=a._selection.indexes,t=l.canNotify;l.canNotify=!1,l.selected=e.indexOf(l.index)>=0,l.canNotify=t}a.paging.enabled?(l.data=a.dataSource[r+m-1],l.data&&(l.id=l.data.$.id,a.rowById[l.id]=l)):(l.data=a.dataSource[m-1],l.data&&(l.id=l.data.$.id,a.rowById[l.id]=l))}l.render()}u+=i}}a._renderFrozenRows();let y=m;if(m<a._rowElements.length)for(let e=m;e<a._rowElements.length;e++){const e=a._rowElements[m++];e.classList.add("smart-hidden"),e.removeAttribute("aria-rowindex")}a.editing.addNewRow&&a.editing.addNewRow.visible&&"button"===a.editing.addNewRow.displayMode&&a._rowElements[y]&&(a._newRow||(a._newRow=new Smart.Grid.Row({data:{},index:9999999,grid:a,addNewRow:!0,inline:!0,autoGenerated:!0})),a._newRow.element=a._rowElements[y],a._newRow.element.classList.remove("smart-hidden"),a._newRow.render()),f&&a._selection.selectionRect&&a._refreshCellSelectionRect()}_renderFrozenRows(){const e=this;let t=!1,o=!1;if("card"===e.view)return e.$.rowNearContainer.classList.add("smart-hidden"),void e.$.rowFarContainer.classList.add("smart-hidden");0===e._frozenNearRows.length?e.$.rowNearContainer.classList.add("smart-hidden"):e.$.rowNearContainer.classList.remove("smart-hidden");for(let o=0;o<e._frozenNearRows.length;o++){const l=e._frozenNearRows[o];l.visible||(l.element=e.$.rowNearContainer.children[o],l.element||(l.element=l.createElement(),e.$.rowNearContainer.appendChild(l.element)),l.element.classList.add("smart-hidden")),l.visible&&l.filtered&&(t=!0,l.element=e.$.rowNearContainer.children[o],l.element||(l.element=l.createElement(),e.$.rowNearContainer.appendChild(l.element)),l.render())}t||e.$.rowNearContainer.classList.add("smart-hidden"),0===e._frozenFarRows.length?e.$.rowFarContainer.classList.add("smart-hidden"):e.$.rowFarContainer.classList.remove("smart-hidden");for(let t=0;t<e._frozenFarRows.length;t++){const l=e._frozenFarRows[t];l.visible&&(o=!0),l.element=e.$.rowFarContainer.children[t],l.element||(l.element=l.createElement(),e.$.rowFarContainer.appendChild(l.element)),l.render()}o||e.$.rowFarContainer.classList.add("smart-hidden"),0!==e.columns.length&&e.hasVisibleColumn()||(e.$.rowNearContainer.classList.add("smart-hidden"),e.$.rowFarContainer.classList.add("smart-hidden"));const l=e.rows;l&&null!==l&&0!==l.length||(e.$.rowNearContainer.classList.add("smart-hidden"),e.$.rowFarContainer.classList.add("smart-hidden"),e._filters&&e._filters.length&&e.filtering.filterRow.visible&&e.$.rowNearContainer.classList.remove("smart-hidden"))}_recycleRotate(e,t,o,l,a){const n=t.getBoundingClientRect(),i=e.getBoundingClientRect();let r=0,s=0;return 0===i.width?(e.innerHTML=a,!1):(n.left>i.left&&(r=i.left-n.left),n.top<i.top&&(s=i.top-n.top),"left"!==o&&""!==o||(r=4),"center"===o&&(r+=i.width/2-n.width/2),"right"===o&&(r+=i.width-n.width-4),"top"!==l&&""!==l||(s=4),"center"!==l&&"middle"!==l||(s+=i.height/2-n.height/2),"bottom"===l&&(s+=i.height-n.height-4),t.style.left=r+"px",t.style.top=s+"px",!0)}_virtualDataRequest(e,t){const o=this;let l=-1,a=-1;if(!o._rowElements&&"infinite"!==o.scrolling)return;if("virtual"===o.scrolling){for(let e=0;e<o._rowElements.length;e++){const t=o._rowElements[e],n=t.row,i=0===e?n.visibleIndex:l+e;t.classList.contains("smart-hidden")||(-1===l&&(l=i),-1!==i&&(a=1+i))}0===o._rowElements.length&&(l=0,a=Math.max(20,parseInt(o.offsetHeight/o.layout.rowMinHeight*1.5)))}else"infinite"===o.scrolling?(l=1/0,a=1/0):(l=0,a=o.dataSource.length);a!==1/0&&(o.dataSource.virtualDataSourceLength||o.dataSource.length)&&(a=Math.min(a,o.dataSource.length)),o.paging.enabled&&(l=o.paging.pageIndex*o._pageSize,a=l+o._pageSize),o._toggledRow||"add"===e||"update"===e||"delete"===e||(o.appearance.displayLoadingIndicator=!0,o._setLoadingIndicatorVisibility()),o._groups||(o._groups=[].concat(o.dataSource.groupBy.toArray())||[]);const n={first:l,last:a,edit:o._editInfo||null,sorting:o.getSortedColumns(),filtering:o.getFilteredColumns(),filterOperator:o.filtering.operator,grouping:o._groups,row:o._toggledRow?o._toggledRow.data:null,action:e},i=o.dataSource.length,r=o.dataSource.boundSource.length;void 0===o._isFirstVirtualDataSourceRequest&&(o._isFirstVirtualDataSourceRequest=!0),o.dataSource.onVirtualDataSourceRequested((function(e){if(o.appearance.displayLoadingIndicator=!1,o._setLoadingIndicatorVisibility(),o._toggledRow=null,!e)return o._initializeRows(),o._initializeRowElements(),o.refresh(),o._refreshPagesCount(),void(o._autoHeight&&o._initializeRowElements());if("add"===e.action){if(t&&t(e.result),o._autoHeight&&o.rows.length>=o._rowElements.length-1&&(o._initializeRows(),o._initializeRowElements(),o.refresh(),o.filtering.filterRow)){for(let e=0;e<o.columns.length;e++)o.columns[e]._filterEditorInitialized&&(o.columns[e]._filterEditorInitialized=!1);const e=o.filtering.filterRow&&o.filtering.filterRow.visible&&o.filtering.filterRow.cell?o.filtering.filterRow.cell.column.dataField:null;e&&setTimeout((()=>{const t=o.columnByDataField[e];t&&t._filterInfo&&t._filterInfo.input&&t._filterInfo.input.focus()}),100)}return}if("update"===e.action)return void(t&&t(e.result));if("remove"===e.action)return void(t&&t(e.result));const l=o.context;if(o.context=o,o._isFirstVirtualDataSourceRequest&&0===o._initColumns.length&&(o.columns.canNotify=!1,o.columns=[],o._renderColumns(),o.columns.canNotify=!0),"scroll"===e.action)if("infinite"===o.scrolling){const e=o._viewRows;for(let t=0;t<e.length;t++){const l=e[t];l.data&&!l.addNewRow&&l.data.$&&(o.rowById[l.data.$.id]||(o.rowById[l.data.$.id]=l))}o._recycle(!1,!1)}else{const t=e.first>=0?e.first:0,l=e.last!==1/0?e.last:0;let a=0;for(let e=t;e<l;e++)o.rows[e]&&(o.rows[e].data=o.dataSource[a++]);o._recycle(!1,!1)}else if(o.dataSource.length!==i||o.dataSource.boundSource.length!==r||o._isFirstVirtualDataSourceRequest||"expand"===e.action||"filter"===e.action||"sort"===e.action||"pageIndexChange"===e.action||"pageSizeChange"===e.action||"sort"===e.action||"group"===e.action){o.paging.enabled&&o.$.headerPager.querySelector("smart-pager")&&(o.$.headerPager.querySelector("smart-pager").pagesCount=Math.ceil(o.dataSource.length/o._pageSize),o.$.footerPager.querySelector("smart-pager").pagesCount=Math.ceil(o.dataSource.length/o._pageSize));const e=o.filtering.filterRow&&o.filtering.filterRow.visible&&o.filtering.filterRow.cell?o.filtering.filterRow.cell.column.dataField:null;if(o._initializeRows(),o._initializeRowElements(),o.refresh(),o._refreshPagesCount(),o._autoHeight&&o._initializeRowElements(),o.filtering.filterRow){for(let e=0;e<o.columns.length;e++)o.columns[e]._filterEditorInitialized&&(o.columns[e]._filterEditorInitialized=!1);e&&setTimeout((()=>{const t=o.columnByDataField[e];t&&t._filterInfo&&t._filterInfo.input&&t._filterInfo.input.focus()}),100)}}else o.dataSource.virtualDataSourceOnExpand&&o.refresh();o._isFirstVirtualDataSourceRequest&&o.onLoad&&(o.onLoad(o),delete o.onLoad),o._isFirstVirtualDataSourceRequest=!1,o._recycle(),o.context=l,o._onDataUpdated&&o._onDataUpdated()}),n)}_createAddNewRowButton(){const e=this,t=document.createElement("div");return t.className="smart-grid-add-row-button smart-grid-icon smart-icon-plus",t.title=e.localize("addNewRow"),t.style.left=!e.appearance.showViewBar||e.appearance.viewBarAppendTo||e.appearance.showViewBarAsDropdown||e._mobile?"":10+e.layout.viewBarWidth+"px",e._addNewGridRow=t.onclick=()=>{e._addRowTimer&&clearTimeout(e._addRowTimer),e._addRowTimer=setTimeout((()=>{if(e.dataSource&&e.dataSource.virtualDataSource)return void e._insertNewRowAfter();const t={};for(let o=0;o<e.columns.length;o++){const l=e.columns[o];void 0!==l.defaultValue&&null!==l.defaultValue&&("today"===l.defaultValue&&"date"===l.dataType?(e._today||(e._today=new Date,e._todayYear=e._today.getFullYear(),e._todayMonth=e._today.getMonth(),e._todayDate=e._today.getDate()),t[l.dataField]=new Date(e._todayYear,e._todayMonth,e._todayDate)):t[l.dataField]=l.defaultValue)}e._addingNewRow=!0,e._add(t),e._mobile||(e._scrollView.vScrollBar.value=e._scrollView.vScrollBar.max),e.closeMenu(),e._addingNewRow=!1,e.editing.addNewRow.visible&&e.$.placeholder.classList.contains("smart-hidden")&&"button"!==e.editing.addNewRow.displayMode&&e.editing.addNewRow._addButton.classList.remove("show")}),0)},t}removeColumn(e){const t=this;let o=-1;if(e)for(let l=0;l<t.columns.length;l++)if(t.columns[l].dataField===e){o=l;break}o>=0&&t.columns.splice(o,1)}addColumn(e,t,o=!0){const l=this;if(e){let a=-1;if(t)for(let e=0;e<l.columns.length;e++)if(l.columns[e].dataField===t){a=e,!1===o&&(a=e+1);break}if("string"==typeof e){const t=l._getKanbanTaskField(e);if(t){if(a>=0)return void l.columns.splice(a,0,t);l.columns.push(t)}return}if(a>=0&&a<l.columns.length)return void l.columns.splice(a,0,e);l.columns.push(e)}}insertColumnAfter(e,t){e&&this.addColumn(e,t,!1)}insertColumnBefore(e,t){e&&this.addColumn(e,t,!0)}addNewColumn(e){e&&this.addColumn(e)}_createAddNewColumnButton(){const e=this,t=document.createElement("div");return t.className="smart-grid-add-column-button smart-grid-icon smart-icon-plus",t.title=e.localize("addNewColumn"),t.onclick=()=>{e._openAddColumnDialog(),e.addEventListener("closeColumnDialog",(()=>{e.layout.isDirty=!0,e._resetCachedLayout(),e._refreshLayout()}))},t}_showAddNewRowButton(e){const t=this;if(!t.columns.length)return;if("grid"!==t.view&&t.editing.addNewRow._addButton)return void t.editing.addNewRow._addButton.classList.add("smart-hidden");if("grid"===t.view&&t.editing.addNewRow._addButton&&t.editing.addNewRow._addButton.classList.remove("smart-hidden"),"float"===e&&t.computedVerticalScrollBarVisibility&&t.editing.addNewRow._addButton&&!t.editing.addNewRow._addButton.classList.contains("show"))return;if("float"===e&&t._addingNewRow)return;const o=()=>{t.editing.addNewRow._addButton&&t.editing.addNewRow._addButton&&("float"!==e&&(t.appearance.showRowHeader||t.appearance.showRowHeaderNumber)&&"card"!==t.view?t.editing.addNewRow._addButton.classList.remove("float"):(!t.computedVerticalScrollBarVisibility&&t.dataSource&&0===t.dataSource.length||t.computedVerticalScrollBarVisibility&&"float"===e||"card"===t.view)&&t.editing.addNewRow._addButton.classList.add("float"),t.computedHorizontalScrollBarVisibility?t.pager.visible?t.editing.addNewRow._addButton.style.bottom="68px":t.editing.addNewRow._addButton.style.bottom="20px":t.pager.visible?t.editing.addNewRow._addButton.style.bottom="48px":t.editing.addNewRow._addButton.style.bottom="",t.grouping.enabled&&t.dataSource)&&(!(t.dataSource.groupBy.length>0)||t.editing.addNewRow._addButton.classList.remove("show"))};t.editing.addNewRow._addButton&&t.editing.addNewRow.visible&&t.$.placeholder.classList.contains("smart-hidden")&&"button"!==t.editing.addNewRow.displayMode&&t.editing.addNewRow._addButton.classList.remove("show"),!t.editing.addNewRow.visible||"button"!==t.editing.addNewRow.displayMode&&t.$.placeholder.classList.contains("smart-hidden")||(t.editing.addNewRow._addButton?requestAnimationFrame((()=>{t.editing.addNewRow._addButton&&(t.editing.addNewRow._addButton.classList.add("show"),t.editing.addNewRow._addButton.style.left=!t.appearance.showViewBar||t.appearance.viewBarAppendTo||t.appearance.showViewBarAsDropdown||t._mobile?"":10+t.layout.viewBarWidth+"px",o(),t.editing.addNewRow.visible&&!t.computedVerticalScrollBarVisibility&&t.editing.addNewRow._addButton.classList.remove("show"))})):(t.editing.addNewRow._addButton=t._createAddNewRowButton(),t.appendChild(t.editing.addNewRow._addButton),requestAnimationFrame((()=>{t.editing.addNewRow._addButton&&(t.editing.addNewRow._addButton.classList.add("show"),o(),(t.editing.addNewRow.visible&&t.$.placeholder.classList.contains("smart-hidden")&&"button"!==t.editing.addNewRow.displayMode||!t.computedVerticalScrollBarVisibility&&t.editing.addNewRow.visible&&t.$.placeholder.classList.contains("smart-hidden"))&&t.editing.addNewRow._addButton.classList.remove("show"))}))))}_showAddNewColumnButton(){const e=this,t=()=>{e.editing.addNewColumn._addButton.classList.add("float")};e.editing.addNewColumn.visible&&(e.editing.addNewColumn._addButton||(e.editing.addNewColumn._addButton=e._createAddNewColumnButton(),e.appendChild(e.editing.addNewColumn._addButton)),requestAnimationFrame((()=>{e.editing.addNewColumn._addButton.classList.add("show"),t()})))}_verticalScrollRecycle(e,t){const o=this;if(o._layoutSuspended||!1===o.isAttached)return;if(o._isUpdating)return;if(o.editing.isEditing&&(!0!==o._disableEndEdit&&o.endEdit(),o._isUpdating))return;o._removeCellContentPopup(),o._inputOverlay&&(o._inputOverlay.parentNode&&o._inputOverlay.parentNode.removeChild(o._inputOverlay),o._inputOverlay=null),o._selection.selectionRect&&o._refreshCellSelectionRect();const l=o._recyclingRows;let a=l[t],n=a.top,i=!1;for(let r=0;r<o._cellsMerge.length;r++){const s=o._cellsMerge[r],d=l.indexOf(s.row);t>d&&t<=d+s.rowSpan&&(t=d,a=s.row,n=a.top,o.$.rowContainer.style.top=o.__frozenNearHeight-e+n+"px",i=!0)}i||(o.$.rowContainer.style.top=o.__frozenNearHeight-e+n+"px")}_verticalScrollbarHandler(e){const t=this;t.menu&&t.menu.column&&t.closeMenu(),t.isScrolling=!0,t._scrollTimer&&clearTimeout(t._scrollTimer),t._layoutSuspended||(t._scrollTimer=setTimeout((()=>{if("virtual"===t.scrolling)t._recycle(!1);else{const e=t._scrollView.scrollTop;let o=t._getRowIndexByPosition(e);o!==t._scrollRowIndex?(t._recycle(!1,!0,!0,o),t._scrollRowIndex=o):t._verticalScrollRecycle(e,o)}if(t.isScrolling=!1,e.max===e.value&&e.max>0){if(t.$.fireEvent("scrollBottomReached"),"infinite"===t.scrolling)return t.appearance.displayLoadingIndicator=!0,t._setLoadingIndicatorVisibility(),t._virtualScrollTimer&&clearTimeout(t._virtualScrollTimer),void(t._virtualScrollTimer=setTimeout((()=>{t._virtualDataRequest("scroll"),t.appearance.displayLoadingIndicator=!1,t._setLoadingIndicatorVisibility()}),50));t.editing.addNewRow._addButton&&"card"!==t.view&&t.editing.addNewRow._addButton.classList.remove("show")}else t.editing.addNewRow.visible&&"button"===t.editing.addNewRow.displayMode&&t.editing.addNewRow._addButton&&e.max>0&&(t.editing.addNewRow._addButton.classList.add("show"),t.editing.addNewRow._addButton.classList.remove("scroll"),t.editing.addNewRow._addButton.classList.add("float"));"virtual"===t.scrolling&&(t.appearance.displayLoadingIndicator=!0,t._setLoadingIndicatorVisibility(),t._virtualScrollTimer&&clearTimeout(t._virtualScrollTimer),t._virtualScrollTimer=setTimeout((()=>{t._virtualDataRequest("scroll"),t.appearance.displayLoadingIndicator=!1,t._setLoadingIndicatorVisibility()}),50)),e.min===e.value&&t.$.fireEvent("scrollTopReached")}),0))}getVerticalScrollMax(){return this.scrollHeight}getHorizontalScrollMax(){return this.scrollWidth}getHorizontalScrollValue(){return this.scrollLeft}setHorizontalScrollValue(e){this.scrollLeft=e}getVerticalScrollValue(){return this.scrollTop}setVerticalScrollValue(e){this.scrollTop=e}clearRows(){const e=this;e.dataSource=new Smart.DataAdapter({dataSource:[]}),e.rowHierarchy=null,e._visibleRows=null,e.__viewRows=null,e.rows.canNotify=!1,e.rows.length=0,e.rows.canNotify=!0,e.clearSelection(),e._refresh()}isEmpty(){const e=this;return!!(null===e.dataSource||e.dataSource&&e.dataSource.dataFields&&0===e.dataSource.length&&0===e.dataSource.dataSource.length&&!e.dataSource.virtualDataSource)}setRowStyle(e,t){const o=this,l=o.rowById[e];l&&(l.style=t,o._recycle(!1,!0))}setCellStyle(e,t,o){const l=this,a=l.rowById[e];if(a){const e=a.getCell(t);if(e){const t=e.canNotify;if(e.canNotify=!1,o)for(let t in o)void 0!==e[t]&&(e[t]=o[t]);else e.background=null,e.color=null,e.fontSize=null,e.fontFamily=null,e.fontWeight=null,e.textDecoration=null,e.fontStyle=null;e.canNotify=t,l._recycle(!1,!0)}}}setCellFormula(e,t,o){const l=this,a=l.rowById[e];if(a){const e=a.getCell(t);if(e){const t=e.canNotify;e.canNotify=!1,e.formula=o,e.canNotify=t,l._recycle(!1,!0)}}}dataBind(){const e=this;if(delete e.__autoRowHeight,e._virtualOnExpandCache=[],e._cellsMerge=[],e._cellStyles=[],null===e.dataSource||e.dataSource&&e.dataSource.dataFields&&0===e.dataSource.length&&0===e.dataSource.dataSource.length&&!e.dataSource.virtualDataSource)e.clearRows();else if(Array.isArray(e.dataSource))if(e.dataSourceSettings.dataFields&&e.dataSourceSettings.dataFields.length>0)e.dataSource=new Smart.DataAdapter({dataSource:e.dataSource,dataSourceType:e.dataSourceSettings.dataSourceType,dataFields:e.dataSourceSettings.dataFields,keyDataField:e.dataSourceSettings.keyDataField,parentDataField:e.dataSourceSettings.parentDataField,childrenDataField:e.dataSourceSettings.childrenDataField,groupBy:e.dataSourceSettings.groupBy&&e.dataSourceSettings.groupBy.length?e.dataSourceSettings.groupBy:e.grouping.groupBy,mapChar:e.dataSourceSettings.mapChar,root:e.dataSourceSettings.root,record:e.dataSourceSettings.record,autoGenerateColumns:e.autoGenerateColumns,id:e.dataSourceSettings.id,virtualDataSource:e.dataSourceSettings.virtualDataSource,virtualDataSourceOnExpand:e.dataSourceSettings.virtualDataSourceOnExpand});else if(e.columns&&e.columns.length){let t=[];for(let o=0;o<e.columns.length;o++){const l=e.columns[o];t.push({name:l.dataField,dataType:l.dataType||"string"}),l.displayField!==l.dataField&&t.push({name:l.displayField,dataType:l.dataType||"string"})}e.dataSource=new Smart.DataAdapter({dataSource:e.dataSource,dataFields:t,dataSourceType:e.dataSourceSettings.dataSourceType,keyDataField:e.dataSourceSettings.keyDataField,parentDataField:e.dataSourceSettings.parentDataField,childrenDataField:e.dataSourceSettings.childrenDataField,groupBy:e.dataSourceSettings.groupBy&&e.dataSourceSettings.groupBy.length?e.dataSourceSettings.groupBy:e.grouping.groupBy,mapChar:e.dataSourceSettings.mapChar,root:e.dataSourceSettings.root,record:e.dataSourceSettings.record,autoGenerateColumns:e.autoGenerateColumns,id:e.dataSourceSettings.id,virtualDataSource:e.dataSourceSettings.virtualDataSource,virtualDataSourceOnExpand:e.dataSourceSettings.virtualDataSourceOnExpand})}else e.dataSource=new Smart.DataAdapter({dataSource:e.dataSource});const t=e._filters,o=e._sortedColumns;if(e.clearSort(),e.filtering.filterRow)for(let t=0;t<e.columns.length;t++)e.columns[t]._filterEditorInitialized=!1;for(let t=0;t<e.columns.length;t++)delete e.columns[t]._cellsCachedValues;e._initColumns&&0===e._initColumns.length&&(e.columns=[],e._renderColumns(!0)),e._renderRows(),"virtual"===e.scrolling||e.paging.enabled&&e.dataSource&&e.dataSource.virtualDataSource||e.dataSource&&e.dataSource.virtualDataSource?e._virtualDataRequest("dataBind"):e.paging.enabled&&(!e.dataSource||e.dataSource&&!e.dataSource.url)&&e._refreshPagesCount(),o&&e._refreshSort(o),t&&t.length>0&&(e._filters=null,e.refreshFilters())}refresh(e,t){const o=this;o.isInitialized&&(e&&(o._initializeRows(),o._initializeRowElements()),o._refresh(t),o._refreshSummary())}refreshView(){const e=this;e._recycleFiles=!0,e._recycle(),delete e._recycleFiles}beginUpdate(){const e=this;e._isUpdating||(e._isUpdating=0),e._isUpdating++}endUpdate(e,t){const o=this;o._isUpdating--,o._isUpdating<0&&(o._isUpdating=0),!1!==e?o.refresh():!1!==t&&o.refreshView()}_generateUUID(){const e=window.crypto,t=new Uint8Array(16);e.getRandomValues(t),t[6]=15&t[6]|64,t[8]=63&t[8]|128;const o=Array.from(t,(e=>e.toString(16).padStart(2,"0"))).join("");return`${o.substring(0,8)}-${o.substring(8,12)}-${o.substring(12,16)}-${o.substring(16,20)}-${o.substring(20)}`}}),Smart.Grid.Extend=function(e){if(!e)return;const t=Object.getOwnPropertyNames(e.prototype);for(let o in t){const l=t[o];"constructor"!==l&&(Smart.Grid.prototype[l]=e.prototype[l])}},Smart.Grid.Extend(Smart.Utilities.Grid.Resize),Smart.Grid.Extend(Smart.Utilities.Grid.Reorder),Smart.Grid.Extend(Smart.Utilities.Grid.Pager),Smart.Grid.Extend(Smart.Utilities.Grid.Filter),Smart.Grid.Extend(Smart.Utilities.Grid.Sort),Smart.Grid.Extend(Smart.Utilities.Grid.Menu),Smart.Grid.Extend(Smart.Utilities.Grid.Select),Smart.Grid.Extend(Smart.Utilities.Grid.Edit),Smart.Grid.Extend(Smart.Utilities.Grid.Dialog),Smart.Grid.Extend(Smart.Utilities.Grid.Group),Smart.Grid.Extend(Smart.Utilities.Grid.Tree),Smart.Grid.Extend(Smart.Utilities.Grid.Export),Smart.Grid.Extend(Smart.Utilities.Grid.Chart),Smart.Grid.Extend(Smart.Utilities.Grid.View),Smart.Grid.Cell=Smart.Utilities.Grid.Cell,Smart.Grid.Row=Smart.Utilities.Grid.Row,Smart.Grid.Column=Smart.Utilities.Grid.Column;
1450
1450
 
1451
1451
  /***/ }),
1452
1452
 
1453
1453
  /***/ 5110:
1454
1454
  /***/ (() => {
1455
1455
 
1456
- Smart.Utilities.Assign("Grid.Dialog",class{_createOverlay(){const e=document.createElement("div");return e.onpointerdown=function(){return!1},e.onmousedown=function(){return!1},e.onclick=function(){},e.classList.add("smart-grid-dialog-overlay"),e}updateRelation(e,t){const a=this;for(let l=0;l<a.dataSourceSettings.relations.length;){const i=a.dataSourceSettings.relations[l];if(i.id===e){t.label&&(i.label=t.label),t.label&&(i.label=t.label),t.columns&&(i.columns=t.columns),t.dataSource&&(i.dataSource=t.dataSource);for(let t=0;t<a.columns.length;t++){const l=a.columns[t];if(l.relationField&&l.relationId&&l.relationId===e){const e=a._getRelationData(l.relationId);l.editor?(l.editor.isDirty=!0,l.editor.dataSource=e):(l.templateSettings={dataFields:[l.relationField]},l.editor={template:"grid",relationId:l.relationId,relationField:l.relationField,relationCascadingFields:l.relationCascadingFields,dataSource:e,columns:a._getRelationFieldsData(l.relationId)})}}a._recycle();break}}}_dragDialog(e,t){const a=this,l=a._dialogDragDetails.dialog;if(!e||l.pinned||l.maximized)return;if(!a._dialogDragDetails.started)return;let i,n;i=e.pageX-a._dialogDragDetails.x,n=e.pageY-a._dialogDragDetails.y;const o=Math.max(a._windowParent.element.clientHeight,a._windowParent.scrollElement.scrollHeight),s=Math.max(a._windowParent.element.clientWidth,a._windowParent.scrollElement.scrollWidth);switch(t){case"horizontal":a._dialogDragDetails.windowX=Math.max(0,Math.min(a._dialogDragDetails.windowX+i,s-l.offsetWidth)),l.style.left=a._dialogDragDetails.windowX+"px";break;case"vertical":a._dialogDragDetails.windowY=Math.max(0,Math.min(a._dialogDragDetails.windowY+n,o-l.offsetHeight)),l.style.top=a._dialogDragDetails.windowY+"px";break;case"both":a._dialogDragDetails.windowX=Math.max(0,Math.min(a._dialogDragDetails.windowX+i,s-l.offsetWidth)),a._dialogDragDetails.windowY=Math.max(0,Math.min(a._dialogDragDetails.windowY+n,o-l.offsetHeight)),l.style.left=a._dialogDragDetails.windowX+"px",l.style.top=a._dialogDragDetails.windowY+"px"}a._dialogDragDetails.top=l.offsetTop,a._dialogDragDetails.left=l.offsetLeft,a._dialogDragDetails.x=Math.max(a._windowParent.offsetLeft+a._dialogDragDetails.offsetX-a._windowParent.scrollElement.scrollLeft,Math.min(a._windowParent.offsetLeft+a._windowParent.element.offsetWidth-(a._windowParent.element.offsetWidth-l.offsetLeft)+a._dialogDragDetails.offsetX,e.pageX)),a._dialogDragDetails.y=Math.max(a._windowParent.offsetTop+a._dialogDragDetails.offsetY-a._windowParent.scrollElement.scrollTop,Math.min(a._windowParent.offsetTop+a._windowParent.element.offsetHeight-(a._windowParent.element.offsetHeight-l.offsetTop)+a._dialogDragDetails.offsetY,e.pageY))}_updateDialogDragDetails(e,t,a){const l=this;if(l._windowParent={initialParent:t.parentElement,element:document.documentElement,scrollElement:document.scrollingElement},l._dialogDragDetails||(l._dialogDragDetails={}),void 0===l._dialogDragDetails.minWidth||void 0===l._dialogDragDetails.minHeight||void 0===l._dialogDragDetails.maxWidth||void 0===l._dialogDragDetails.maxHeight){const e=getComputedStyle(t);l._dialogDragDetails.minWidth=parseFloat(e.getPropertyValue("min-width"))||0,l._dialogDragDetails.minHeight=parseFloat(e.getPropertyValue("min-height"))||0,l._dialogDragDetails.maxWidth=parseFloat(e.getPropertyValue("max-width"))||0,l._dialogDragDetails.maxHeight=parseFloat(e.getPropertyValue("max-height"))||0}l._dialogDragDetails.dialog=t,l._dialogDragDetails.windowX=t.offsetLeft,l._dialogDragDetails.windowY=t.offsetTop;const i=t.getBoundingClientRect(),n=t.parentElement===document.body?document.documentElement.getBoundingClientRect():t.parentElement?t.parentElement.getBoundingClientRect():document.documentElement.getBoundingClientRect(),o=window.scrollX||window.pageXOffset,s=window.scrollY||window.pageYOffset;l._windowParent.offsetLeft=n.left+o,l._windowParent.offsetTop=n.top+s,a&&"object"==typeof a&&(l._dialogDragDetails.offsetX=a.clientX-i.left,l._dialogDragDetails.offsetY=a.clientY-i.top),t.collapsed||(l.hasAnimation&&"minimize"===e?(l._dialogDragDetails.width=l._dialogDragDetails.width?l._dialogDragDetails.width:t.offsetWidth,l._dialogDragDetails.height=l._dialogDragDetails.height?l._dialogDragDetails.height:t.offsetHeight):(l._dialogDragDetails.width=t.offsetWidth,l._dialogDragDetails.height=t.offsetHeight),(t.style.width||t.style.height)&&(l._dialogDragDetails.resized=!0)),"minimize"!==e&&e&&(l._dialogDragDetails.type=e,l._dialogDragDetails.started=!0,l._dialogDragDetails.snapWindowWidth=t.offsetWidth,l._dialogDragDetails.snapWindowHeight=t.offsetHeight,a&&"object"==typeof a?(l._dialogDragDetails.x=a.pageX,l._dialogDragDetails.y=a.pageY):(l._dialogDragDetails.x=t.offsetLeft,l._dialogDragDetails.y=t.offsetTop))}_createPopup(e){const t=this;let a=document.createElement("div");return a.setAttribute("animation","none"),a.classList.add("smart-window","smart-grid-popup"),e||(e=t.editing.dialog),a.style.width="auto"===e.width?e.width:e.width+"px",a.style.height="auto"===e.height?e.height:e.height+"px",e.width&&"string"==typeof e.width&&(a.style.width=e.width),e.height&&"string"==typeof e.height&&(a.style.height=e.height),a.style.left="",a.style.top="",a.innerHTML='<div class="smart-container">\n <div class ="smart-content-container" smart-id="container">\n <div class="smart-content"><div class="smart-content-container"></div></div>\n </div>\n </div>\n ',a.querySelector&&a.querySelector(".smart-content")&&(a.content=a.querySelector(".smart-content").firstChild),document.body.appendChild(a),a.remove=function(){},a.close=function(){a.classList.contains("open")&&(a.classList.remove("open"),delete t._resizeHandling,a.addEventListener("transitionend",a.remove),a.addEventListener("transitioncancel",a.remove),a.onClose&&a.onClose())},a.open=function(l,i){a.removeEventListener("transitionend",a.remove),a.removeEventListener("transitioncancel",a.remove),t._resizeHandling=!1,void 0===l&&(l=e.left),void 0===i&&(i=e.top),requestAnimationFrame((function(){a.classList.add("open");const e=a.querySelector('[bind="name"]');if(e){const a=e.querySelector("smart-input");a&&t.editing.enabled&&a.focus()}const n=function(e,l){let i=t.offset(t);switch(t.dropDownMode&&(i={left:0,top:0}),"center"===e&&"horizontal"===l&&(e="middle"),e){case"top":return i.top;case"bottom":return Math.max(i.top,i.top+t.offsetHeight-a.offsetHeight);case"center":return Math.max(i.top,i.top+t.offsetHeight/2-a.offsetHeight/2);case"left":return i.left;case"middle":return i.left+t.offsetWidth/2-a.offsetWidth/2;case"right":return i.left+t.offsetWidth-a.offsetWidth}return"horizontal"===l?parseInt(e)+i.left:"vertical"===l?parseInt(e)+i.top:"number"==typeof e?e:parseInt(e)};a.style.left=n(l,"horizontal")+"px",a.style.top=n(i,"vertical")+"px",a.setPosition=(e,t)=>{t?a.style.left=n(e,"horizontal")+"px":a.style.top=n(e,"vertical")+"px"},"center"===l&&parseInt(a.style.left)<0&&(a.style.left="5%",a.style.maxWidth="90%"),"screenMiddle"===l&&(a.style.left="calc(50% - "+a.offsetWidth/2+"px)"),"screenCenter"===i&&(a.style.top="calc(50% - "+a.offsetHeight/2+"px)")})),a.onOpen&&a.onOpen()},a}_createDialog(e){const t=this;let a=document.createElement("div");e||(e=t.editing.dialog),void 0!==e.modal&&(a.modal=e.modal),void 0!==e.screenModal&&(a.screenModal=e.screenModal),a.setAttribute("animation","none"),a.classList.add("smart-window","smart-grid-dialog"),a.style.width="auto"===e.width?e.width:e.width+"px",a.style.height="auto"===e.height?e.height:e.height+"px",e.width&&"string"==typeof e.width&&(a.style.width=e.width),e.height&&"string"==typeof e.height&&(a.style.height=e.height),a.style.left="",a.style.top="",a.innerHTML=`<div class="smart-container">\n <div class ="smart-content-container" smart-id="container">\n <div id="headerSection" class="smart-header-section">\n <div class="smart-header">\n </div>\n <div class="smart-buttons-container">\n <button title="${t.localize("contextMenuItemDelete")}" tabindex=-1 class="smart-visibility-hidden smart-hidden smart-delete-button smart-grid-icon smart-icon-delete show smart-button smart-element" aria-label="Delete Row" smart-id="deleteButton"></button>\n <button title="${t.localize("copyURL")}" tabindex=-1 class="smart-visibility-hidden smart-hidden smart-copy-row-button smart-grid-icon smart-icon-link show smart-button smart-element" aria-label="Copy URL" smart-id="urlButton"></button>\n <button title="${t.localize("AI")}" tabindex=-1 class="smart-visibility-hidden smart-hidden smart-ai-button smart-grid-icon smart-icon-ai show smart-button smart-element" aria-label="Copy URL" smart-id="aiButton"></button>\n <button title="${t.localize("dialogEditHeaderMenu")}" tabindex=-1 class ="smart-visibility-hidden smart-hidden checked smart-comments-button smart-grid-icon smart-icon-menu show smart-button smart-element" aria-label="Comments" smart-id="commentsButton"></button>\n <button title="${t.localize("close")}" class ="smart-button smart-element smart-close-button" aria-label="Close" smart-id="closeButton"></button>\n </div>\n </div>\n <div class="smart-content"><div class="smart-content-container"></div></div>\n <div class ="smart-footer">\n \n <div class ="smart-stack-layout right spacing">\n <smart-button class ="smart-confirm-button item primary">Ok</smart-button>\n <smart-button class ="smart-cancel-button item">Cancel</smart-button>\n </div>\n </div>\n </div>\n </div>\n `,a.querySelector&&a.querySelector(".smart-content")&&(a.content=a.querySelector(".smart-content").firstChild),a.footer=a.querySelector(".smart-footer"),a.header=a.querySelector(".smart-header"),a.btnConfirm=a.querySelector(".smart-confirm-button"),a.btnCancel=a.querySelector(".smart-cancel-button"),a.btnDelete=a.querySelector(".smart-delete-button"),a.btnClose=a.querySelector(".smart-close-button"),a.btnComments=a.querySelector(".smart-comments-button"),a.btnLink=a.querySelector(".smart-copy-row-button"),a.btnAI=a.querySelector(".smart-ai-button"),a.headerSection=a.querySelector(".smart-header-section"),a.btnLink.onclick=()=>{let e=document.createElement("input"),t=window.location.href+"#activeRows="+a.row.id;navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(t).then((()=>{})):(document.body.appendChild(e),e.value=t,e.select(),document.execCommand("copy"),document.body.removeChild(e))},a.btnDelete.onclick=()=>{const e=a.row.id,l=t.editing.deleteDialog.enabled;t.editing.deleteDialog.enabled=!0,t.cancelEdit(),a.close(),t._openDeleteRowDialog(e,(function(e){t._endToolbarEdit&&t._endToolbarEdit(),t.deleteRow(e)})),t.editing.deleteDialog.enabled=l,a.close()},a.btnComments.onclick=()=>{const e=a.querySelector(".smart-grid-edit-dialog-layout");e&&e.classList.toggle("hide-activity"),a.btnComments.classList.toggle("checked")},!1!==a.allowDrag&&(a.headerSection.onpointerdown=e=>{t._updateDialogDragDetails("drag",a,e)},a.headerSection.onpointerup=()=>{t._dialogDragDetails&&(t._dialogDragDetails.started=!1)});const l=document.createElement("div");return l.classList.add("smart-grid-dialog-overlay"),l.onclick=function(){a.overlayClick&&a.overlayClick()},a.overlay=l,a.remove=function(){a.parentNode&&a.parentNode.removeChild(a)},a.close=function(){a.classList.contains("open")&&(a.classList.remove("open"),delete t._resizeHandling,a.addEventListener("transitionend",a.remove),a.addEventListener("transitioncancel",a.remove),a.modal&&a.overlay.parentNode&&a.overlay.parentNode.removeChild(a.overlay),t.layout.isDirty&&"grid"===t.view&&(t._resetCachedLayout(),t._refreshLayout(),t.refresh()),a.onClose&&a.onClose())},a.open=function(l,i){a.removeEventListener("transitionend",a.remove),a.removeEventListener("transitioncancel",a.remove),t.isInShadowDOM?t.getRootNode().appendChild(a):document.body.appendChild(a),t._resizeHandling=!1,void 0===l&&(l=e.left),void 0===i&&(i=e.top),requestAnimationFrame((function(){a.classList.add("open");const e=a.querySelector('[bind="name"]');if(e){const a=e.querySelector("smart-input");a&&t.editing.enabled&&a.focus()}const n=function(e,l){const i=t.offset(t);switch("center"===e&&"horizontal"===l&&(e="middle"),e){case"top":return i.top;case"bottom":return Math.max(i.top,i.top+t.offsetHeight-a.offsetHeight);case"center":return Math.max(i.top,i.top+t.offsetHeight/2-a.offsetHeight/2);case"left":return i.left;case"middle":return i.left+t.offsetWidth/2-a.offsetWidth/2;case"right":return i.left+t.offsetWidth-a.offsetWidth}return"horizontal"===l?parseInt(e)+i.left:"vertical"===l?parseInt(e)+i.top:"number"==typeof e?e:parseInt(e)};a.style.left=n(l,"horizontal")+"px",a.style.top=n(i,"vertical")+"px",a.setPosition=(e,t)=>{t?a.style.left=n(e,"horizontal")+"px":a.style.top=n(e,"vertical")+"px"},"center"===l&&parseInt(a.style.left)<0&&(a.style.left="5%",a.style.maxWidth="90%"),"screenMiddle"===l&&(a.style.left="calc(50% - "+a.offsetWidth/2+"px)"),"screenCenter"===i&&(a.style.top="calc(50% - "+a.offsetHeight/2+"px)")})),a.modal&&(a.screenModal?t.isInShadowDOM?t.getRootNode().appendChild(a.overlay):document.body.appendChild(a.overlay):t.appendChild(a.overlay)),a.onOpen&&a.onOpen()},a}_openAddRowDialog(e,t){const a=this;if(!a.editing.addDialog.enabled)return!1;const l=a._dialogAddRow||a._createDialog(),i="{{message}}"===a.editing.dialog.header?a.localize("dialogAddHeader"):a.editing.dialog.header,n=l.content;l.header.innerHTML=i,e.grid=a,void 0===e.index&&(e.index=a.rows.length,a._rowsAdded&&(e.index+=a._rowsAdded.length));const o=e.cells;let s=null,r=0;if(a._cellEditors||(a._cellEditors=[]),!a._dialogAddRow){l.modal=!0,l.btnConfirm.innerHTML=a.localize("dialogAddButtonConfirm"),l.btnCancel.innerHTML=a.localize("dialogAddButtonCancel"),l.onOpen=function(){a.editing.dialog.visible=!0},l.onClose=function(){a.editing.dialog.visible=!1},l.btnCancel.onclick=function(){l.close()},l.btnClose.onclick=function(){l.close()},l.btnConfirm.onclick=function(){const e={};for(let t=0;t<o.length;t++){const l=o[t],i=a._getEditorValue(l),n=a._getEditorId(l),s=a._cellEditors[n];s&&(i&&i.error?(e[l.column.dataField]=i.value,s.detach()):(e[l.column.dataField]=i,s.detach()))}const i=a._rowsAdded?a._rowsAdded.length:0,n=new Smart.Grid.Row({index:a.rows.length+i,id:Smart.Utilities.Core.createGUID(),grid:a,data:e});l.close(),t(n,0===l.index)},l.onkeydown=function(e){const t=e.key;"Enter"===t?l.btnConfirm.onclick():"Escape"===t&&l.close()},n.classList.add("smart-grid-layout");for(let e=0;e<a.columns.length;e++){const t=a.columns[e];if(!t.allowEdit)continue;r%2==0&&(s=document.createElement("div"),s.classList.add("smart-grid-edit-dialog-row"),n.appendChild(s));const l=document.createElement("div");l.classList.add("col-sm-6");const i=document.createElement("div");i.classList.add("column");const o=document.createElement("label");o.innerHTML=a.columns[e].label;const d=document.createElement("div");d.classList.add("smart-grid-dialog-editor"),d.setAttribute("editor",t.dataField),d.setAttribute("template",t.editor.template),l.appendChild(i),s.appendChild(l),i.appendChild(o),i.appendChild(d),r++}}l.open(),l.index=e.index;let d=0;for(let e=0;e<o.length;e++){const t=o[e],i=t.column,n=i.dataField,s=l.querySelector("[editor="+n+"]");if(!s)continue;s.innerHTML="";let r="";void 0!==t.value&&(r=t.value),"int64"!==i.dataType&&"number"!==i.dataType&&"int"!==i.dataType&&"float"!==i.dataType||(r=0),"date"===i.dataType&&(r=new Date),"bool"!==i.dataType&&"boolean"!==i.dataType||(r=!1);let c=null;switch(t.editor.template){default:case"custom":c=a._getCustomCellEditor(t);break;case"image":c=a._getImageCellEditor(t);break;case"checkBox":c=a._getCheckBoxCellEditor(t);break;case"autoComplete":c=a._getAutoCompleteCellEditor(t);break;case"dropDownList":c=a._getAutoCompleteCellEditor(t),c.readonly=!0,c.dropDownButtonPosition="right";break;case"comboBox":c=a._getAutoCompleteCellEditor(t),c.readonly=!1,c.dropDownButtonPosition="right";break;case"maskedTextBox":c=a._getMaskCellEditor(t);break;case"checkInput":c=a._getCheckInputCellEditor(t),c.readonly=!0,c.dropDownButtonPosition="right";break;case"multiInput":c=a._getMultiInputCellEditor(t),c.readonly=!0,c.dropDownButtonPosition="right";break;case"multiComboInput":c=a._getMultiComboInputCellEditor(t),c.readonly=!0,c.dropDownButtonPosition="right";break;case"time":case"timeInput":c=a._getTimeInputCellEditor(t);break;case"date":case"dateInput":c=a._getDateInputCellEditor(t);break;case"dateRangeInput":c=a._getDateRangeInputCellEditor(t);break;case"dateTimePicker":c=a._getDateTimePickerCellEditor(t);break;case"textArea":case"textarea":c=a._getTextAreaCellEditor(t);break;case"numberInput":case"text":case"input":c="numberInput"===t.editor.template?a._getNumberInputCellEditor(t):a._getInputCellEditor(t)}if(c.attach(),t.editor.instance=c,c.setValue(r),0===d&&setTimeout((()=>{a.editing.enabled&&c.focus()}),100),!t.editor.isInitialized&&(t.editor.isInitialized=!0,t.editor.onInit)){const e=t.editor.onInit(t.row.index,t.column.dataField,t.editor.instance.element,t.row.data);if(e&&e instanceof Promise)e.then((e=>{const a="custom"===t.editor.template?t.editor.instance.element.firstElementChild:t.editor.instance.element;for(let t in e)a[t]=e[t]}));else if(e){const a=e,l="custom"===t.editor.template?t.editor.instance.element.firstElementChild:t.editor.instance.element;for(let e in a)l[e]=a[e]}}if(t.editor.onRender){const e=t.editor.onRender(t.row.index,t.column.dataField,t.editor.instance.element,t.row.data);if(e&&e instanceof Promise)e.then((e=>{const a="custom"===t.editor.template?t.editor.instance.element.firstElementChild:t.editor.instance.element;for(let t in e)a[t]=e[t]}));else if(e){const a=e,l="custom"===t.editor.template?t.editor.instance.element.firstElementChild:t.editor.instance.element;for(let e in a)l[e]=a[e]}}s.appendChild(c.element),c.element.onfocus=()=>{s.setAttribute("focus","")},c.element.onblur=()=>{s.removeAttribute("focus")},d++}a._dialogAddRow=l}_createAiPromptDropdown(e){const t=this;if(document.querySelector(".smart-grid-edit-dialog-ai-prompt-dropdown"))return void(e.onclick=a=>{const l=document.querySelector(".smart-grid-edit-dialog-ai-prompt-dropdown");document.querySelector(".smart-grid-edit-dialog-ai-prompt-dropdown-content").classList.toggle("show");const i=t.offset(e);l.style.top=i.top+e.offsetHeight+"px",l.style.left=i.left+"px",a.stopPropagation()});const a=document.createElement("style");a.innerHTML="\n .smart-grid-edit-dialog-ai-prompt-dropdown-content {\n position: absolute;\n background-color: #f9f9f9;\n min-width: 300px;\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n padding: 12px 16px;\n z-index: 1;\n border-radius: 5px;\n margin-top: 10px;\n opacity: 0;\n transform: scaleY(0);\n transform-origin: top;\n transition: opacity 0.3s ease, transform 0.3s ease;\n }\n\n .smart-grid-edit-dialog-ai-prompt-dropdown-content.show {\n opacity: 1;\n transform: scaleY(1);\n }\n\n .smart-grid-edit-dialog-ai-prompt-result {\n margin-top: 10px;\n padding: 10px;\n background-color: #e9e9e9;\n border-radius: 5px;\n display: none;\n }\n\n .smart-grid-edit-dialog-ai-prompt-result.show {\n display: block;\n }\n\n .smart-grid-edit-dialog-ai-prompt-dropdown {\n z-index: 9999;\n position: absolute;\n }\n\n .smart-grid-edit-dialog-ai-prompt-input {\n width: 100%;\n height: 80px;\n }\n ",document.head.appendChild(a);const l=document.createElement("div");l.classList.add("smart-grid-edit-dialog-ai-prompt-dropdown"),l.innerHTML=`\n <div class="smart-grid-edit-dialog-ai-prompt-dropdown-content">\n <p>${t.localize("aiPrompt")}</p>\n <smart-text-area class="smart-grid-edit-dialog-ai-prompt-input" id="aiPromptInput" rows="4" cols="50"></smart-text-area>\n <smart-button><span style="padding-left: 16px; padding-right: 16px;">${t.localize("generate")}</span></smart-button>\n <div class="smart-grid-edit-dialog-ai-prompt-result"></div>\n </div>\n `,document.body.appendChild(l);const i=l.querySelector(".smart-grid-edit-dialog-ai-prompt-dropdown-content"),n=l.querySelector("smart-button"),o=l.querySelector(".smart-grid-edit-dialog-ai-prompt-input"),s=l.querySelector(".smart-grid-edit-dialog-ai-prompt-result");e.onclick=a=>{i.classList.toggle("show");const n=t.offset(e);l.style.top=n.top+e.offsetHeight+"px",l.style.left=n.left+"px",a.stopPropagation()},document.addEventListener("click",(t=>{i.contains(t.target)||t.target===e||i.classList.remove("show")})),n.addEventListener("click",(e=>{(e=>{const a=t.ai.url,l=t.ai.key;e.stopPropagation(),e.preventDefault(),e.target.classList.add("smart-grid-loading");let i=""+o.value;i?async function(e){const i=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({model:t.ai.model,prompt:e,max_tokens:t.ai.tokens,temperature:t.ai.temperature})});if(!i.ok)throw new Error(`Error: ${i.statusText}`);return(await i.json()).choices[0].text.trim()}(i).then((t=>{s.textContent=t,s.classList.add("show"),e.target.classList.remove("smart-grid-loading")})).catch((e=>{console.error("Error:",e)})):(s.textContent="",s.classList.add("show"),e.target.classList.remove("smart-grid-loading"))})(e)}))}_openEditDialog(e,t){const a=this;if(!a.editing.dialog.enabled)return!1;const l=a._dialogEdit||a._createDialog();let i="{{message}}"===a.editing.dialog.header?a.localize("dialogEditHeader",{value:a.editing.editRow?e.row.visibleIndex+1:e.column.label}):a.editing.dialog.header;const n=l.content;!1===a.editing.enabled?(l.classList.add("disable-edit"),i="{{message}}"===a.editing.dialog.header?a.localize("dialogEditHeaderDisabled",{value:a.editing.editRow?e.row.visibleIndex+1:e.column.label}):a.editing.dialog.header):l.classList.remove("disable-edit"),l.header.innerHTML=i,l.footer.classList.add("smart-hidden"),l.row=a.editing.editRow;const o=l.row.canNotify;l.row.canNotify=!1,l.row.showDetail=!1,l.row.canNotify=o,l.overlayClick=()=>{l.btnConfirm.click()};let s,r,d=null,c=0;if(void 0!==a._settingsDialogRowId){const e=`<div class="smart-buttons-container">\n <button title="${a.localize("pagerPreviousButton")}" tabindex=-1 class =" smart-button smart-element smart-prev-button" aria-label="Previous Record" smart-id="prevButton"></button>\n <button title="${a.localize("pagerNextButton")}" tabindex=-1 class =" smart-button smart-element smart-next-button" aria-label="Next Record" smart-id="nextButton"></button>\n </div>`;l.header.innerHTML=e+"<span>"+i+"</span>",l.btnPrev=l.querySelector(".smart-prev-button"),l.btnNext=l.querySelector(".smart-next-button"),l.header.style.display="flex",l.header.style.alignItems="center",a.editing.enabled?(l.btnDelete.classList.remove("smart-hidden"),l.btnComments.classList.remove("smart-hidden"),l.btnLink.classList.remove("smart-hidden"),l.btnDelete.classList.remove("smart-visibility-hidden"),l.btnComments.classList.remove("smart-visibility-hidden"),l.btnLink.classList.remove("smart-visibility-hidden"),a.ai.key&&(l.btnAI.classList.remove("smart-visibility-hidden"),this._createAiPromptDropdown(l.btnAI)),0===a.users.length||a.users.length&&"guest"===a._currentUser.info?(l.btnLink.classList.add("smart-visibility-hidden"),l.btnDelete.classList.add("smart-visibility-hidden"),l.btnComments.classList.add("smart-visibility-hidden")):(l.btnLink.classList.remove("smart-visibility-hidden"),l.btnDelete.classList.remove("smart-visibility-hidden"),l.btnComments.classList.remove("smart-visibility-hidden"))):l.btnLink.style.width=l.btnDelete.style.width=l.btnComments.style.width="0px";const t=e=>{const t=a.editing.editRow,i=a._recyclingRows.indexOf(t);let o=e?a._recyclingRows[i+1]:a._recyclingRows[i-1];if(a.grouping.enabled&&a.dataSource.groupBy&&a.dataSource.groupBy.length>0){let t=1;for(;o&&!o.leaf;)o=e?a._recyclingRows[i+t]:a._recyclingRows[i-t],t++}const s=t;if(void 0!==a._settingsDialogRowId&&a.editing.dialog.autoSave){const e=a.rowById[a._settingsDialogRowId];e&&(l.saveRowData(e,!1),a._disableEndEdit=!0,a._recycle(!1,!0),a._disableEndEdit=!1)}if(o){if(a.editing.recordNavigation=!0,a.editing.editRow=o,a._settingsDialogRowId=o.id,s.isEditing=!1,s.element.removeAttribute("edit"),"gallery"===a.view){const e=a.querySelector('.smart-card[row-id="'+l.row.id+'"]');e&&e.removeAttribute("edit");const t=a.querySelector('.smart-card[row-id="'+o.id+'"]');t&&t.setAttribute("edit","")}const e=o,t=s.cells,i=e.cells;"kanban"===a.view&&a._kanban&&a._kanban.selectTask(e.id),l.row=o,l.header.querySelector("span").innerHTML=a.localize("dialogEditHeader",{value:a.editing.editRow.visibleIndex+1}),"gallery"!==a.view&&e.element.row.data.$.id===e.data.$.id&&e.element.setAttribute("edit","");for(let a=0;a<i.length;a++){const l=i[a],n=l.column;if(!n.allowEdit||!1===n._visible)continue;l.isEditing=!0,t[a].isEditing=!1;const o=e.data[n.dataField];l.editor&&l.editor.instance&&l.editor.instance.setValue(o)}a._applySettingsDialogLayout(l,n,a.editing.editRow,!0),a.editing.enabled&&setTimeout((()=>{const e=l.querySelector(".smart-grid-dialog-editor input");e&&e.focus()}),100)}};l.btnNext.onmousedown=e=>{t(!0),e.preventDefault(),e.stopPropagation()},l.btnPrev.onmousedown=e=>{t(!1),e.preventDefault(),e.stopPropagation()}}if(!a._dialogEdit){l.modal=!0,l.btnConfirm.innerHTML=a.localize("dialogEditButtonConfirm"),l.btnCancel.innerHTML=a.localize("dialogEditButtonCancel"),l.onOpen=function(){a.editing.dialog.visible||(a.editing.dialog.visible=!0,void 0!==a._settingsDialogRowId&&l.editorsContent&&l.editorsContent.offsetHeight&&(l.editorsContent.style.maxHeight=l.editorsContent.offsetHeight+40+"px",l.editorsContent.offsetWidth>a.offsetWidth||l.editorsContent.offsetHeight>window.innerHeight||l.editorsContent.offsetWidth>window.innerWidth?setTimeout((()=>{const e=a.offset(a);l.style.left=e.left+"px",l.style.top=e.top+"px",l.style.width=l.style.minWidth=l.style.maxWidth=a.offsetWidth+"px",l.style.height=l.style.minHeight=l.style.maxHeight=a.offsetHeight+"px",l.editorsContent.style.maxHeight=""})):(l.style.width=l.style.minWidth="",l.style.height=l.style.minHeight="",400!==a.editing.dialog.height&&(l.style.height=l.style.minHeight=a.editing.dialog.height+"px",l.editorsContent.style.maxHeight=l.editorsContent.offsetHeight+40+"px"),400!==a.editing.dialog.width&&(l.style.width=l.style.minWidth=a.editing.dialog.width+"px"),"gallery"===a.view&&setTimeout((()=>{a.querySelector('.smart-card[row-id="'+l.row.id+'"]')}))),a.editing.enabled&&setTimeout((()=>{const e=l.querySelector(".smart-grid-dialog-editor input");e&&e.focus()}),100)))},l.onClose=function(){a.editing.dialog.visible=!1,l.row&&(l.row.showDetail=!1)},l.btnCancel.onclick=function(){a.editing.isEditing=!0,a.cancelEdit()},l.btnClose.onclick=function(){a.editing.isEditing=!0,a.cancelEdit()};const t=(e,t=!0)=>{if(!e)return!1;const i=e.cells;let n={};e.element.removeAttribute("error");for(let e=0;e<i.length;e++){const t=i[e],l=a._getEditorValue(t);n[t.column.dataField]=l}const o=a.validateRow(e.id,n);if(Object.keys(o).length>0){let e=!0;for(let t=0;t<i.length;t++){const n=i[t],s=o[n.column.dataField],r=l.querySelector(`[label-for="${n.column.dataField}"]`);if(r&&(r.innerHTML=""),s)for(let t in s){const l=s[t];let i="";if(!l)continue;let o=l[t];"minLength"!==t&&"maxLength"!==t||(o=l[t.toLowerCase()]),i=l.message?l.message:"required"===t||"valueMissing"===t?a.localize("requiredValue",{value:n.column.label}):"min"===t?a.localize("invalidMinValue",{value:n.column.label,min:o.min}):"max"===t?a.localize("invalidMaxValue",{value:n.column.label,max:o.max}):"minLength"===t?a.localize("invalidMinLengthValue",{value:n.column.label,min:o.requiredLength}):"maxLength"===t?a.localize("invalidMaxLengthValue",{value:n.column.label,max:o.requiredLength}):a.localize("invalidValue"),e=!1,r&&(r.innerHTML=i)}}if(!e)return!1}const s=e.style;e.updatedDate=new Date,e.updatedBy=a.currentUser,e.style=l._rowStyle,e.comments=l._rowComments;const r=a.dataSource.dataItemById[e.id];if(r){const t=r.$.index;a.dataSource&&e.comments!==a.dataSource.boundSource[t].comments&&(a._sortedColumns&&a._sortedColumns.length>0?r.comments=e.comments:a.dataSource.boundSource[t].comments=e.comments)}if(e.style=l._rowStyle,a.onRowStyle&&s!==e.style&&(null===s?a.onRowStyle(e.index,e,e.style):s.background===e.style.background&&s.color===e.style.color&&s.fontSize===e.style.fontSize&&s.fontStyle===e.style.fontStyle&&s.fontFamily===e.style.fontFamily&&s.fontWeight===e.style.fontWeight&&s.status===e.style.status&&s.textDecoration===e.style.textDecoration||a.onRowStyle(e.index,e,e.style)),!t){for(let t=0;t<i.length;t++){const l=i[t],n=a._getEditorValue(l),o=l.column.dataField;if(e.canNotify=!1,e.data.canNotify=!1,e.data[o]=n,r){const e=r.$.index;a.dataSource&&(a._sortedColumns&&a._sortedColumns.length>0?r[o]=n:a.dataSource.boundSource[e][o]=n)}e.canNotify=!0,e.data.canNotify=!0}a._onSaveRowData&&a._onSaveRowData(e)}return!0};if(l.saveRowData=t,l.btnConfirm.onclick=function(){if(void 0!==a._settingsDialogRowId){const e=a.rowById[a._settingsDialogRowId];let i=!0;if(e&&(i=t(e)),!i)return;if(l.columnVisibility){let e=!1;const t=a.columns.canNotify;a.columns.canNotify=!1;for(let t in l.columnVisibility){const i=a.columnByDataField[t];i.visible!==l.columnVisibility[t]&&(i.visible=l.columnVisibility[t],e=!0)}if(a.columns.canNotify=t,e)return a.endEdit(),a.refresh(!1),void(a.dataSource&&a.dataSource.boundHierarchy&&(a.dataSource.refreshHierarchy(),a._refreshRowHierarchy(),a.refresh()))}}a.endEdit(),a.dataSource&&a.dataSource.boundHierarchy&&(a.dataSource.refreshHierarchy(),a._refreshRowHierarchy(),a.refresh())},l.onkeydown=function(e){const t=e.key,l=a.editing.commandKeys;for(let e in l){const i=l[e];if(t===i.key){a._applyCommand(i.command);break}}},a.editing.editRow)if(void 0!==a._settingsDialogRowId)a._applySettingsDialogLayout(l,n,a.editing.editRow);else{n.classList.add("smart-grid-layout");for(let e=0;e<a.columns.length;e++){const t=a.columns[e];if(!t.allowEdit)continue;c%2==0&&(d=document.createElement("div"),d.classList.add("smart-grid-edit-dialog-row"),n.appendChild(d));const l=document.createElement("div");l.classList.add("col-sm-6");const i=document.createElement("div");i.classList.add("column");const o=a._settingsDialogRowId?document.createElement("div"):document.createElement("label");o.innerHTML=a.columns[e].label;const s=document.createElement("div");s.classList.add("smart-grid-dialog-editor"),s.setAttribute("editor",t.dataField),s.setAttribute("template",t.editor.template),l.appendChild(i),d.appendChild(l),i.appendChild(o),i.appendChild(s),c++}}else{const t=e.column,a=document.createElement("div");a.classList.add("smart-grid-dialog-editor"),a.setAttribute("editor",""),a.setAttribute("template",t.editor.template),n.appendChild(a)}}if(a._dialogEditPosition){const e=a.offset(a);s=parseInt(a._dialogEditPosition.left)-e.left,r=parseInt(a._dialogEditPosition.top)-e.top}if(a.editing.dialog.visible||l.open(s,r),a.editing.editRow){const a=l.querySelector("[editor="+e.column.dataField+"]");a&&(a.innerHTML="",a.appendChild(t.element),a.editor=t,a.editorValue=t.getValue(),t.element.onfocus=()=>{a.setAttribute("focus",""),a.setAttribute("touched",""),a.editorValue=t.getValue()},t.element.onblur=()=>{a.removeAttribute("focus"),a.editorValue!==t.getValue()&&a.setAttribute("pending","")})}else{const a=e.column,i=l.querySelector("[editor]");i.innerHTML="",i.setAttribute("template",a.editor.template),i.appendChild(t.element),i.editor=t,i.editorValue=t.getValue(),t.element.onfocus=()=>{i.setAttribute("focus",""),i.setAttribute("touched",""),i.editorValue=t.getValue()},t.element.onblur=()=>{i.removeAttribute("focus"),i.editorValue!==t.getValue()&&i.setAttribute("pending","")}}a._dialogEdit=l}_refreshCurrentUser(){const e=this,t=e.users;let a=e.currentUser,l=!0,i=!0,n=e.editing.enabled,o=!0;t&&null!==a&&(a=t.find((e=>e.id===a)),a&&(l=!1!==a.allowAdd,i=!1!==a.allowComment,n=n&&!1!==a.allowEdit,o=!1!==a.allowRemove)),t&&t.length&&(null!==e.currentUser&&!1!==e.currentUser||(l=!1,i=!1,n=!1,o=!1,a="guest")),e._currentUser={allowAdd:l,allowComment:i,allowEdit:n,allowRemove:o,info:a}}_getColorInput(){const e=document.createElement("smart-color-input");return e.dataSource=["#D50000","#E67C73","#F4511E","#F6BF26","#0B8043","#33B679","#3F51B5","#039BE5","#7986CB","#8C47FF","#8E24AA","#FF36C2","#616161","#454545","#949494","#000000"],e.additionalColors=["#FF9EB7","#FFCFC9","#FFD66D","#FFEBB6","#93DF89","#D1F7C4","#9DC7FF","#D0F0FD","#CDAFFF","#ECE1FD","#FA9DE2","#FFDAF6","#CBCBCB","#EDEDED","#FFFFFF",""],e.valueDisplayMode="colorBox",e.classList.add("underlined","smart-grid-color-input"),e.style.width="auto",e.readonly=!0,e.onRender=()=>{const t=e.$.scrollView;t&&t.classList.add("smart-grid-color-input")},e}_applySettingsDialogLayout(e,t,a,l){const i=this;e.classList.add("smart-grid-dialog-expand-row");const n=e._rowStyle=JSON.parse(JSON.stringify(a._style)),o=e._rowComments=JSON.parse(JSON.stringify(a.comments));l&&e.activityContent.remove();const s=[];e.columnVisibility=s;let r=document.createElement("div"),d=document.createElement("div"),c=document.createElement("div"),u=document.createElement("div");l?(r=e.editorsContent,c=e.layoutContent,c.appendChild(d)):(c.appendChild(r),c.appendChild(u),c.appendChild(d),t.appendChild(c)),c.classList.add("smart-grid-edit-dialog-layout"),r.classList.add("smart-grid-edit-dialog-editors-container"),d.classList.add("smart-grid-edit-dialog-activity-container"),u.classList.add("smart-footer"),Smart.Utilities.Core.isMobile&&(c.classList.add("hide-activity"),e.btnComments.classList.remove("checked")),!1===i.editing.enabled&&d.classList.add("smart-hidden"),(0===i.users.length||i.users.length&&i._currentUser&&i._currentUser.info&&"guest"===i._currentUser.info)&&(d.classList.add("smart-hidden"),e.btnComments.classList.add("smart-hidden"),c.classList.add("hide-activity"),e.btnComments.classList.remove("checked"),e.btnComments.classList.add("smart-hidden"),e.btnLink.classList.add("smart-hidden"));const m=document.createElement("smart-button");m.innerHTML=`<span>${i.localize("dialogEditButtonSave")}</span>`,m.classList.add("primary");const p=document.createElement("smart-button");p.innerHTML=`<span>${i.localize("dialogEditButtonCancel")}</span>`;const g=document.createElement("div");g.classList.add("smart-flex"),g.style.flexDirection="row-reverse",g.appendChild(m),g.appendChild(p),p.style.marginRight="10px",u.appendChild(g);const b=document.createElement("div");b.classList.add("smart-flex"),b.style.alignItems="center",b.innerHTML=`<label style="margin-right: 5px;">${i.localize("dialogEditButtonAutoSave")}</label>\n <label title="${i.localize("dialogEditButtonAutoSave")}" class="smart-switch">\n <input type="checkbox">\n <span class="slider round"></span>\n </label>`,u.appendChild(b),i.users&&i.users.length&&(!1!==i.currentUser&&null!==i.currentUser&&void 0!==i.currentUser||u.classList.add("smart-hidden"));const f=b.querySelector("input");f.onchange=()=>{i.editing.dialog.autoSave=f.checked},i._currentUser.info&&!i._currentUser.allowEdit&&(u.classList.add("smart-hidden"),e.btnComments.classList.add("smart-hidden"),e.btnLink.classList.add("smart-hidden"),e.btnDelete.classList.add("smart-hidden")),!0===i.editing.dialog.autoSave&&(f.checked=!0),p.onclick=()=>{e.btnCancel.click()},m.onclick=()=>{e.btnConfirm.click()},Smart.Utilities.Core.isMobile&&(c.setAttribute("mobile",""),e.setAttribute("mobile",""));let h=0;for(let e=0;e<i.columns.length;e++){const t=i.columns[e];t.allowEdit&&!1!==t._visible&&h++}h>=8?r.classList.add("many"):r.classList.remove("many"),e.editorsContent=r,e.activityContent=d,e.layoutContent=c,e.footerContent=u,setTimeout((()=>{e.editorsContent.scrollHeight>e.editorsContent.offsetHeight?(u.style.setProperty("--smart-background","var(--smart-surface)"),u.style.borderTopStyle="solid",u.style.borderTopColor="var(--smart-border)",u.style.borderTopWidth="1px",p.classList.add("flat")):(u.style.setProperty("--smart-background",""),u.style.borderTopStyle="",u.style.borderTopColor="",u.style.borderTopWidth="",p.classList.remove("flat"))}),200);const y=document.createElement("div"),v=document.createElement("div");d.appendChild(y),d.appendChild(v);let C=o&&o.length?" ("+o.length+")":"";y.innerHTML=`\n <div class="tabs">\n <div view="comments" class="active tab"><div class="smart-flex tab-label"><span class="smart-grid-icon smart-icon-comment show"></span><span>${i.localize("commentsTab")}<span>${C}</span></span></div></div>\n <div view="history" class="tab smart-hidden"><div class="smart-flex tab-label"><span class="smart-grid-icon smart-icon-history show"></span>${i.localize("historyTab")}</div></div>\n <div view="details" class="tab"><div class="smart-flex tab-label"><span class="smart-grid-icon smart-icon-font show"></span>${i.localize("detailsTab")}</div></div>\n </div>\n <div class="smart-hidden details-tab">\n <div class="smart-grid-edit-dialog-row" style="grid-template-rows: 50px 50px 50px 50px 50px 1fr;"><div class="column"><div class="header smart-grid-edit-dialog-column-info">${i.localize("format").replace(":","")}\n <span title="${i.localize("resetFormat")}" class="reset-format smart-grid-icon smart-icon-reload show"></span>\n </div>\n </div>\n <div class="format-layout">\n <div title="${i.localize("background")}" class="smart-hidden format smart-grid-edit-dialog-column-info">\n <span class="smart-grid-icon smart-icon-color-background show"></span><div class="background"></div>\n </div>\n <div title="${i.localize("color")}" class="smart-hidden format smart-grid-edit-dialog-column-info">\n <span style="border-bottom: 2px solid #46CA78;" color="#46CA78" class="format smart-grid-icon smart-icon-font show"></span><div class="color"></div>\n </div>\n <div class="format-layout button-group">\n <span title="${i.localize("bold")}" class="formatbtn bold smart-grid-icon smart-icon-bold show"></span>\n <span title="${i.localize("italic")}" class="formatbtn italic smart-grid-icon smart-icon-italic show"></span>\n <span title="${i.localize("underline")}" class="formatbtn underline smart-grid-icon smart-icon-underline show"></span>\n <span style="text-decoration: line-through;" title="${i.localize("linethrough")}" class="formatbtn linethrough smart-grid-icon smart-icon-font show"></span>\n </div>\n </div>\n <div style="display: flex; flex-direction: column; margin-bottom: 20px;" class="format-layout font-group smart-flex">\n <span>${i.localize("fontFamily").replace(":","")}</span>\n <div title="${i.localize("fontFamily").replace(":","")}" class="format smart-grid-edit-dialog-column-info">\n <span class="smart-grid-icon smart-icon-font show"></span><div class="font-family"></div>\n </div>\n </div>\n <div style="margin-top: 20px; display: flex; flex-direction: column;" class="font-family format-layout font-group">\n <span>${i.localize("fontSize").replace(":","")}</span>\n <div title="${i.localize("fontSize").replace(":","")}" class="font-family format smart-grid-edit-dialog-column-info">\n <span class="smart-grid-icon smart-icon-fontsize show"></span><div class="font-size"></div>\n </div> \n </div>\n <div class="format-layout smart-hidden font-group">\n <div title="${i.localize("status").replace(":","")}" class="format smart-grid-edit-dialog-column-info">\n <span color="#F1C58B" class="smart-grid-icon smart-icon-star show"></span><div class="status"></div>\n </div>\n </div>\n </div>\n </div>\n <div class="comments-tab">\n <div class="column smart-hidden"><div class="smart-hidden comments-header smart-grid-edit-dialog-column-info">${i.localize("comments").replace(":","")}</div></div>\n <div class="comments-layout">\n <div class="comments"><span class="no-comments"><span>${i.localize("noComments")}</span></span></div>\n <div class="footer">\n <smart-text-area hint="${i.localize("comment")}" placeholder="${i.localize("commentPlaceholder")}" class="smart-text-area success underlined"></smart-text-area>\n <smart-button class="success">${i.localize("send")}</smart-button>\n </div>\n </div>\n </div>\n <div class="history-tab smart-hidden">\n <div class="history-layout">\n <div class="history"></div>\n </div>\n </div>\n `;const S=y.querySelectorAll(".tab");i.storeHistory&&(!i._currentUser||i._currentUser&&!i._currentUser.info?S[S.length-1].classList.add("smart-hidden"):S[S.length-1].classList.remove("smart-hidden")),!i.users||i.users&&0===i.users.length||!i._currentUser||i._currentUser&&!i._currentUser.info?S[S.length-2].classList.add("smart-hidden"):S[S.length-2].classList.remove("smart-hidden"),y.querySelector(".tabs").onpointerdown=e=>{const t=e.target.closest(".tab");if(t){const e=t.getAttribute("view"),a=y.querySelector(".details-tab"),l=y.querySelector(".comments-tab"),n=y.querySelector(".history-tab");a.classList.add("smart-hidden"),l.classList.add("smart-hidden"),n.classList.add("smart-hidden");for(let e=0;e<S.length;e++)S[e].classList.remove("active");switch(t.classList.add("active"),e){case"details":a.classList.remove("smart-hidden");break;case"comments":l.classList.remove("smart-hidden");break;case"history":n.classList.remove("smart-hidden"),i._refreshHistory()}}};const w=i._getColorInput();y.querySelector(".background").appendChild(w),w.onchange=()=>{n.background=w.value},n.background&&(w.value=n.background);const D=i._getColorInput();y.querySelector(".color").appendChild(D),D.onchange=()=>{n.color=D.value},n.color&&(D.value=n.color);const L=i._getColorInput();y.querySelector(".status").appendChild(L),L.onchange=()=>{n.status=L.value},n.status&&(L.value=n.status);const x=document.createElement("smart-input");x.style.width="auto",x.classList.add("underlined"),x.dropDownButtonPosition="right",x.readonly=!0,x.dropDownHeight="auto",x.dataSource=["-","Segoe UI","Arial","Georgia","Impact","Tahoma","Times New Roman","Verdana"],x.onchange=()=>{n.fontFamily=x.value},n.fontFamily?x.value=n.fontFamily:x.selectedIndex=0,y.querySelector(".font-family").appendChild(x);const _=document.createElement("smart-input");_.style.width="auto",_.classList.add("underlined"),_.dropDownButtonPosition="right",_.readonly=!0,_.dropDownHeight="auto",_.dataSource=["-","8px","10px","12px","14px","18px","24px"],_.onchange=()=>{n.fontSize=_.value},n.fontSize?_.value=n.fontSize:_.selectedIndex=0,y.querySelector(".font-size").appendChild(_);const k=y.querySelector(".button-group");k.onclick=e=>{const t=e.target.closest(".formatbtn");let a;t.classList.contains("checked")?(t.classList.remove("checked"),a=!1):(t.classList.add("checked"),a=!0),t.classList.contains("bold")?n.fontWeight=a?"bold":null:t.classList.contains("italic")?n.fontStyle=a?"italic":null:t.classList.contains("underline")?n.textDecoration=a?"underline":null:t.classList.contains("linethrough")&&(n.textDecoration=a?"line-through":null)},n.fontWeight?k.children[0].classList.add("checked"):k.children[0].classList.remove("checked"),n.fontStyle?k.children[1].classList.add("checked"):k.children[1].classList.remove("checked"),n.textDecoration?k.children[2].classList.add("checked"):k.children[2].classList.remove("checked"),y.querySelector(".reset-format").onclick=()=>{for(let e=0;e<k.children.length;e++)k.children[e].classList.remove("checked");x.selectedIndex=0,_.selectedIndex=0,D.value="",w.value="",L.value="",n.fontWeight=null,n.fontStyle=null,n.textDecoration=null,n.fontSize=null,n.fontFamily=null};const F=y.querySelector(".comments-header"),A=y.querySelector('[view="comments"]'),T=y.querySelector(".comments-layout smart-text-area"),z=y.querySelector(".comments-layout smart-button"),I=y.querySelector(".comments-layout .footer"),E=y.querySelector(".comments-layout .comments");T.users=i.users,z.disabled=!0,E.innerHTML=`<span class="no-comments"><span>${i.localize("noComments")}</span></span>`;const M=()=>{const e=E.querySelector(".no-comments");0===o.length?e.classList.remove("smart-hidden"):e.classList.add("smart-hidden")},H=()=>{i._commentEditing&&(i._commentEditing.parentNode&&i._commentEditing.parentNode.removeChild(i._commentEditing),delete i._commentEditing)};H();const B=e=>{const t=e.querySelector(".remove-button");H(),t.onclick=e=>{const t=e.target,l=o.indexOf(t.comment);if(H(),l>-1){const e=o[l];o.splice(l,1),i.$.fireEvent("commentRemove",{id:a.id,value:e}),i.onComment&&i.onComment(a.id,o),t.element.remove();const n=o.length?"("+o.length+")":"";F.innerHTML=A.lastElementChild.lastElementChild.innerHTML=`${i.localize("comments").replace(":","")} <span>${n}</span>`,M()}}},R=e=>{const t=e.querySelector(".edit-button");H();const a=e.querySelector(".comment-body");t.onclick=t=>{H();const a=t.target,l=o.indexOf(a.comment);if(!i._commentEditing&&l>-1){const t=o[l];let n=!1;if(i._currentUser.info&&t.userId===i._currentUser.info.id&&i._currentUser.allowComment&&(n=!0),!n)return;const s=document.createElement("smart-text-area");s.users=i.users;const r=e.querySelector(".comment-body");r.appendChild(s),r.style.position="relative",r.classList.add("edit"),s.style.width="100%",s.style.height="100%",s.style.minHeight="50px",s.style.minWidth="150px",s.style.left=s.style.top="0px",s.style.position="absolute",s.value=t.text,s.style.zIndex=5,s.style.boxShadow="var(--smart-elevation-2)",s.onkeydown=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),s.onblur=s.onchange=null,r.classList.remove("edit"),H())},s.onchange=s.onblur=()=>{if(t.text=s.value,""===s.value)return void e.querySelector(".remove-button").click();const l=i._createComment(t);a.element.parentNode===E&&(E.insertBefore(l,a.element),a.element.parentNode.removeChild(a.element),delete i._commentEditing),B(l),R(l)},s.focus(),i._commentEditing=s}},a.ondblclick=e=>{t.click()}};for(let e=0;e<o.length;e++){const t=o[e],a=i._createComment(t);B(a),R(a),E.appendChild(a)}if(setTimeout((()=>{E.scrollTop=E.scrollHeight}),200),i._commentUpdateInterval=setInterval((()=>{e.classList.contains("open")?i._commentEditing:clearInterval(i._commentUpdateInterval)}),5e3),F.innerHTML=`${i.localize("comments").replace(":","")} ${C}`,M(),T.onfocus=()=>{I.classList.add("focus")},T.onblur=()=>{I.classList.remove("focus")},T.onkeyup=()=>{z.disabled=""===T.value},z.onclick=t=>{if(""===T.value)return;i._refreshCurrentUser();const l={text:T.value,id:function(){const e=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return e()+e()}(),userId:i._currentUser.info?i._currentUser.info.id:-1,time:new Date},n=i._createComment(l);if(!n)return t.preventDefault(),void t.stopPropagation();B(n),R(n),o.push(l),i.$.fireEvent("commentAdd",{id:a.id,value:l}),i.onComment&&i.onComment(a.id,o),T.value="",z.disabled=!0,M(),E.appendChild(n),(()=>{const t=e._rowComments;if(H(),E.innerHTML=`<span class="no-comments"><span>${i.localize("noComments")}</span></span>`,M(),e.classList.contains("open"))for(let e=0;e<t.length;e++){const a=t[e],l=i._createComment(a);B(l),R(l),E.appendChild(l)}else clearInterval(i._commentUpdateInterval)})(),T.focus();const s=o.length?"("+o.length+")":"";F.innerHTML=A.lastElementChild.lastElementChild.innerHTML=`${i.localize("comments").replace(":","")} <span>${s}</span>`,E.scrollTop=E.scrollHeight,t.preventDefault(),t.stopPropagation()},l)return;const q=e=>{if(!e.allowEdit||!1===e._visible)return;const t=document.createElement("div");t.classList.add("smart-grid-edit-dialog-row"),r.appendChild(t),t.style.gridColumn="span 2",!1===e.visible&&t.classList.add("hidden-column");const a=document.createElement("div"),l=i._settingsDialogRowId?document.createElement("div"):document.createElement("label"),n=e.validationRules&&e.validationRules.length>0?"*":"";l.innerHTML=`<div class="smart-grid-edit-dialog-column-info"><span class="smart-grid-icon ${e.icon} show"></span><label>`+e.label+n+'</label><span toggle class="smart-grid-icon smart-icon-visibility-on show"</div>';const o=document.createElement("div");o.classList.add("smart-grid-dialog-editor"),o.setAttribute("editor",e.dataField),o.setAttribute("template",e.editor.template);const d=l.querySelector("[toggle]");d.column=e,s[e.dataField]=e.visible,d.title=i.localize("columnMenuItemHide"),!1===i.editing.enabled&&d.classList.add("smart-visibility-hidden"),d.onclick=()=>{s[d.column.dataField]=!d.column.visible,d.classList.contains("smart-icon-visibility-on")?(d.classList.remove("smart-icon-visibility-on"),d.classList.add("smart-icon-visibility-off"),d.title=i.localize("columnMenuItemShow")):(d.classList.add("smart-icon-visibility-on"),d.classList.remove("smart-icon-visibility-off"),d.title=i.localize("columnMenuItemHide"))},e.visible||(d.classList.remove("smart-icon-visibility-on"),d.title=i.localize("columnMenuItemShow")),e.visible?d.classList.add("smart-icon-visibility-on"):d.classList.add("smart-icon-visibility-off"),a.appendChild(l),a.appendChild(o);const c=document.createElement("label");c.classList.add("smart-field-editor-error-label"),c.setAttribute("label-for",e.dataField),a.appendChild(c),t.appendChild(a)},N=[];for(let e=0;e<i.columns.length;e++){const t=i.columns[e];t.visible?q(t):N.push(t)}if(N.length){const e=document.createElement("div");e.classList.add("smart-grid-edit-dialog-row"),r.appendChild(e),e.innerHTML=`<div class="smart-grid-edit-dialog-columns-separator"><span></span><div><div class="show toggle-button smart-flex">${i.localize("hideHiddenColumns",{value:N.length})}<span style="font-family: var(--smart-font-family-icon); font-size: 16px; margin-left: 5px; border:none;" class="smart-prev-button"></span></div></div><span></span></div>`,e.style.gridColumn="span 2",e.querySelector(".toggle-button").onclick=()=>{const t=r.querySelectorAll(".hidden-column"),a=e.querySelector(".toggle-button");a.classList.contains("show")?(a.innerHTML=`${i.localize("showHiddenColumns",{value:N.length})}<span style="font-family: var(--smart-font-family-icon); margin-left: 10px; border:none;" class="smart-next-button"></span>`,a.classList.remove("show")):(a.innerHTML=`${i.localize("hideHiddenColumns",{value:N.length})}<span style="font-family: var(--smart-font-family-icon); margin-left: 10px; border:none;" class="smart-prev-button"></span>`,a.classList.add("show")),t.forEach((e=>{e.classList.toggle("smart-hidden")}))};for(let e=0;e<N.length;e++)q(N[e])}}_getDateFormat(e){const t=new Smart.Utilities.DateTime(e),a=((new Date).getTime()-e.getTime())/1e3,l=Math.floor(Math.abs(a));if(""===this.locale||"en"===this.locale)return 0===l?"now":l<60?l+"s ago":l<3600?Math.floor(l/60)+"m ago":l<86400?Math.floor(l/3600)+"h ago":t.toString("dd/MM/yyyy hh:mm");t.toString("dd/MM/yyyy hh:mm")}_refreshHistory(){const e=this,t=e._dialogEdit;if(!t)return;const a=t.querySelector(".history");if(!e.storeHistory)return void a.classList.add("smart-hidden");if(!e._currentUser||e._currentUser&&!e._currentUser.info)return void a.classList.add("smart-hidden");a.classList.remove("smart-hidden");const l=t.row.history;if(!l)return;let i="\n ";for(let t=0;t<l.length;t++){const a=l[t];let n="";if(e._kanban)n=e._kanban._getHistoryItemLabel(a);else if("created"===a.action)n=e.localize("rowCreated",{value:a.action});else{const t=e.columnByDataField[a.action];n=e.localize("propertyUpdated",{value:t?"<strong>"+t.label+"</strong>":"<strong>"+a.action+"</strong>"})}i+='<div class="history-row">';const o=t=>{const a=t?t.image:null;let l=t?t.name||t.id:e.localize("guestUser");const i=a?"image":"",n=a?`background-image: url('${a}');`:"";return e._currentUser.info&&t.id===e._currentUser.info.id&&(""!==e.locale&&"en"!==e.locale||(l="You")),{image:n,label:l,cssClass:i}};let s="";if(void 0!==a.user){const t=o(e.users.find((e=>e.id===a.user)));i+=`<div class="history-indent"><div class="user-icon smart-icon ${t.cssClass}" style="${t.image}"></div></div>`,s=`<div class="history-header"><div class="user-name">${t.label}</div><div class="time">${e._getDateFormat(new Smart.Utilities.DateTime(a.date).toDate())}</div></div>`}else i+='<div class="history-indent"><div class="user-icon smart-icon"></div></div>',s='<div class="history-header"><div class="user-name"></div><div class="time"></div></div>';if(i+='<div class="history-main">',i+=s,i+=`<div class="history-body"><div class="title">${n}</div>`,"created"!==a.action){let t=a.details.oldValue,l=a.details.value;if("user"===a.action){const a=e.users.find((e=>e.id===t||e.id===parseFloat(t))),i=e.users.find((e=>e.id===l||e.id===parseFloat(l)));a?t=a.name:(t="",t||(t=e.localize("unassigned"))),i?l=i.name:(l="",l||(l=e.localize("unassigned")))}if("subtasks"===a.action){let t=[];"string"==typeof a.details.value?a.details.value.split(",").forEach((e=>{e.indexOf(": Y")>=0&&t.push(e)})):t=a.details.value.filter((e=>e.completed)),e._kanban?i+=`<span class="detail">${e._kanban.localize("taskSubtasksCompleted",{value:t.length+"/"+a.details.value.length})}</span>`:i+=`<span class="detail">${e.localize("completed",{value:t.length})}</span>`}else{t&&"object"==typeof t&&t instanceof Date&&(t=e._getDateFormat(t)),l&&"object"==typeof l&&l instanceof Date&&(l=e._getDateFormat(l));let n=e.columnByDataField[a.action];if(n||(n=e.columnByDataField["task"+a.action.substring(0,1).toUpperCase()+a.action.substring(1)]),"user"===a.action&&(n=e.columnByDataField.taskUserId),n&&n.editor&&n.editor.dataSource){for(let e=0;e<n.editor.dataSource.length;e++){const a=n.editor.dataSource[e];a.value===t&&(t=a.label),a.value===l&&(l=a.label)}t||(t=e.localize("unassigned")),l||(l=e.localize("unassigned"))}let o="";n&&n.label&&(o="<strong>"+n.label+"</strong>"),n&&"date"===n.dataType?(t&&"string"==typeof t&&(t=e._getDateFormat(new Date(t))),l&&"string"==typeof l&&(l=e._getDateFormat(new Date(l)))):(t&&"string"==typeof t&&(t=e._fromHTMLEntities(t)),l&&"string"==typeof l&&(l=e._fromHTMLEntities(l))),i+=t?`<div class="detail">${e.localize("range",{column:o,oldValue:"<i>"+t+"</i>",newValue:"<i>"+l+"</i>"})}</div>`:`<div class="detail">${e.localize("nullRange",{column:o,oldValue:"<i>"+t+"</i>",newValue:"<i>"+l+"</i>"})}</div>`}}else i+=`<div>${a.details.value}</div>`;i+="",i+="</div>",i+="</div>\n </div>"}i+="",a.innerHTML=i,setTimeout((()=>{a.scrollTop=a.scrollHeight}))}_createComment(e){const t=this,a=t.users.find((t=>t.id===e.userId));if(!a)return;const l=document.createElement("div"),i=a?a.name||a.id:t.localize("guestUser"),n=a.image?a.image:"";let o=a?a.name:t.localize("guestUser");t._currentUser.info&&a.id===t._currentUser.info.id&&(""!==t.locale&&"en"!==t.locale||(o="You")),e.text&&/<.+?>/.test(e.text)&&e.text.replace&&("all"===t.dataSourceSettings.sanitizeHTML?e.text=e.text.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;"):"blackList"===t.dataSourceSettings.sanitizeHTML&&(e.text=window.Smart.Utilities.Core.escapeHTML(e.text)));let s=e.text;if(s.indexOf("@")>=0)for(let e=0;e<t.users.length;e++){const a=t.users[e];if(s.indexOf("@"+a.name)>=0){let e=`<div style="border:1px solid var(--smart-border); position:relative; top: -3px; border-radius: 15px; padding-right: 6px; background: var(--smart-surface); align-items: center; display: inline-flex;"><div class="user-icon smart-icon" role="img" aria-label="Icon of user ${a.name}"></div><span>${a.name}</span></div>`;a.image&&(e=`<div style="border:1px solid var(--smart-border); position:relative; top: -3px; border-radius: 15px; padding-right: 6px; background: var(--smart-surface); align-items: center; display: inline-flex;"><div style="width: 24px; height: 24px; background-image: url('${a.image}');" class="image user-icon smart-icon" role="img" aria-label="Icon of user ${a.name}"></div><span>${a.name}</span></div>`),s=s.replaceAll("@"+a.name,e)}}l.className="comment",l.setAttribute("role","listitem");let r=e.time?e.time:"";if(""!==r){r=new Smart.Utilities.DateTime(e.time);const a=((new Date).getTime()-r.toDate().getTime())/1e3,l=Math.floor(Math.abs(a));r=""!==t.locale&&"en"!==t.locale?r.toString("dd/MM/yyyy hh:mm"):0===l?"now":l<60?l+"s ago":l<3600?Math.floor(l/60)+"m ago":l<86400?Math.floor(l/3600)+"h ago":r.toString("dd/MM/yyyy hh:mm")}if(l.innerHTML=`<div class="comment-indent" role="presentation">\n<div class="user-icon smart-icon" role="img" aria-label="Icon of user ${i}"></div>\n</div>\n<div class="comment-main" role="presentation">\n<div class="comment-header" role="presentation">\n <div class="user-name" aria-label="User name">${o}</div>\n <div class="edit-button${t._currentUser.info&&a.id===t._currentUser.info.id&&t._currentUser.allowComment?" enabled":""}" role="button" aria-haspopup="menu" aria-label="Comment settings"></div>\n <div class="remove-button${t._currentUser.info&&a.id===t._currentUser.info.id&&t._currentUser.allowComment?" enabled":""}" role="button" aria-haspopup="menu" aria-label="Comment settings"></div>\n <div class="time" aria-label="Comment time">${r}</div>\n</div>\n<div class="comment-body" aria-label="Comment text">${s||""}</div >\n</div>`,n){const e=l.querySelector(".user-icon");e.style.backgroundImage=`url('${n}')`,e.classList.add("image")}l.comment=e;const d=l.querySelector(".remove-button");d.comment=e,d.element=l,e.userId!==t._currentUser.info.id&&d.classList.add("smart-visibility-hidden");const c=l.querySelector(".edit-button");return c.comment=e,c.element=l,e.userId!==t._currentUser.info.id&&c.classList.add("smart-visibility-hidden"),l}_openSummaryRowDialog(e){const t=this,a=t._summaryRowDialog||t._createDialog(),l="{{message}}"===t.editing.dialog.header?t.localize("summary"):t.editing.dialog.header;if(a.header.innerHTML=l,!a.listBox){const e=document.createElement("smart-list-box");e.selectionMode="checkBox",e.style.borderColor="transparent",a.content.innerHTML="",a.listBox=e}const i=a.listBox;a.summaryValueElement&&a.summaryValueElement.classList.remove("summary-chooser");const n=e.element.querySelector(".summary-value");if(!n)return;n.classList.add("summary-chooser"),a.summaryValueElement=n;let o=[];a.dataField=e.column.dataField,"string"===e.column.dataType?(o=[{label:t.localize("countSummary"),value:"count"},{label:t.localize("blankSummary"),value:"blank"},{label:t.localize("filledSummary"),value:"filled"},{label:t.localize("uniqueSummary"),value:"unique"}],e.column.editor&&e.column.editor.dataSource&&e.column.editor.singleSelect&&o.push({label:t.localize("statusSummary"),value:"status"})):o="boolean"===e.column.dataType||"any"===e.column.dataType?[{label:t.localize("countSummary"),value:"count"},{label:t.localize("blankSummary"),value:"blank"},{label:t.localize("filledSummary"),value:"filled"}]:"date"===e.column.dataType?[{label:t.localize("countSummary"),value:"count"},{label:t.localize("blankSummary"),value:"blank"},{label:t.localize("filledSummary"),value:"filled"},{label:t.localize("uniqueSummary"),value:"unique"}]:[{label:t.localize("countSummary"),value:"count"},{label:t.localize("minSummary"),value:"min"},{label:t.localize("maxSummary"),value:"max"},{label:t.localize("sumSummary"),value:"sum"},{label:t.localize("avgSummary"),value:"avg"}],i.dataSource=o,i.style.position="absolute",i.style.visibility="hidden",i.style.height="auto",t.isInShadowDOM?t.getRootNode().appendChild(i):document.body.appendChild(i);const s=e.column;s.summary&&s.summary.forEach((e=>{i.select(e)}));const r=i.offsetHeight;a.column=s,a.content.appendChild(i),a.classList.add("smart-grid-dialog-summary"),a.header.parentElement.classList.add("smart-hidden"),a.footer.classList.add("smart-hidden"),i.style.visibility="",i.style.position="",i.style.width="100%",t._summaryRowDialog||(a.btnConfirm.innerHTML=t.localize("apply"),a.btnCancel.innerHTML=t.localize("cancel"),a.style.width=a.style.minWidth="120px",a.onOpen=function(){t.editing.dialog.visible=!0},a.onClose=function(){t.editing.dialog.visible=!1,a.summaryValueElement&&a.summaryValueElement.classList.remove("summary-chooser")},a.btnCancel.onclick=function(){a.close()},a.btnClose.onclick=function(){a.close()},a.btnConfirm.onclick=function(){const e=a.column.summary;a.column.summary=i.selectedValues,t.$.fireEvent("columnSummaryChange",{column:a.column,dataField:s.dataField,oldSummary:[...e],summary:[...a.column.summary]}),a.close(),t._calculateSummary(),t._recycle(!1)},a.confirm=function(){a.btnConfirm.click()},a.onkeydown=function(e){"Escape"===e.key&&a.close()},t._summaryRowDialog=a);const d=e.element,c=t.offset(d),u=t.offset(t);let m=d.offsetWidth+c.left-u.left-120;m<0&&(m=c.left-u.left),a.open(m,c.top-u.top-r-0),setTimeout((function(){a.btnConfirm.focus()}),100)}_openTextAreaDialog(e,t,a){const l=this;delete l._dialogTextArea;const i=l._dialogTextArea||l._createDialog();if(i.header.innerHTML=e.label,i.column=e,i.classList.add("smart-grid-textarea-dialog"),i.style.minWidth="250px",i.style.minHeight="250px",i.style.zIndex=99999,i.textarea=t,"richText"!==e.template?i.initialValue=t.value:i.initialValue=t.getHTML(),i.cell=a,!l._dialogTextArea){i.modal=!0,i.btnConfirm.innerHTML=l.localize("dialogEditButtonSave"),i.btnCancel.innerHTML=l.localize("dialogEditButtonCancel"),i.onOpen=function(){const t=i.querySelector("smart-text-area");t.value=i.textarea.value,t.onchange=t.oninput=()=>{setTimeout((()=>{"richText"===e.template?i.textarea.setHTML(t.getHTML()):i.textarea.value=t.value}))},l.editing.enabled&&setTimeout((()=>{t.focus()}),250)},i.onClose=function(){};const t=()=>{const e=document.querySelector(".smart-grid-text-area-dialog");e&&e.remove()};i.btnCancel.onclick=function(){if(i.close(),l.editing.dialog.enabled)return i.textarea.value=i.initialValue,void t();l.cancelEdit(),t()},i.btnClose.onclick=function(){if(i.close(),l.editing.dialog.enabled)return i.textarea.value=i.initialValue,void t();l.cancelEdit(),t()},i.btnConfirm.onclick=function(){if(i.close(),l.editing.dialog.enabled)return t(),void i.cell.editor.instance.setValue(i.textarea.value);i.cell.editor.instance.setValue(i.textarea.value),t(),l.endEdit()},i.onkeydown=function(e){"Escape"===e.key&&i.close()},l._dialogTextArea=i;const a=document.createElement("smart-text-area");a.classList.add("smart-text-area"),a.resize="both","richText"===e.template&&(a.richText=!0),a.users=l.users,a.style.resize="both",a.minWidth=350,a.style.minWidth="350px",a.style.minHeight="250px",a.style.width="450px",a.style.height="400px",a.minHeight=250,i.input=a,i.content.appendChild(a)}const n=l.offset(t),o=l.offset(l);i.open(n.left-o.left+e.computedWidth,n.top-o.top),setTimeout((function(){if("auto"!==i.style.height){const e=i.input;e.style.width="450px",e.style.height="400px",i.style.height="auto",i.style.width="auto",e.resize="both"}if(i.offsetHeight+n.top-o.top>window.innerHeight&&(i.style.top=o.top+"px",i.style.left=o.left+"px",i.style.width=l.offsetWidth+"px",i.style.height=l.offsetHeight+"px",i.input.style.width=l.offsetWidth-20+"px",i.input.style.height=l.offsetHeight-20+"px",i.input.resize="none"),n.left-o.left+e.computedWidth+i.offsetWidth>window.innerWidth){let t=n.left-o.left+e.computedWidth-i.offsetWidth;i.style.left=Math.max(t,0)+"px"}i.btnConfirm.focus()}),100)}_openDateDialog(e){const t=this,a=t._dialogDate||t._createDialog(),l=t.localize("dialogAddColumnDate");if(a.header.innerHTML=l,a.classList.add("smart-grid-dialog-add-column"),a.style.minWidth="250px",a.style.minHeight="250px",a.style.width="500px",a.style.height="300px",a.callback=e,!t._dialogDate){a.modal=!0,a.btnConfirm.innerHTML=t.localize("dialogEditButtonConfirm"),a.btnCancel.innerHTML=t.localize("dialogEditButtonCancel"),a.onOpen=function(){const e=a.querySelector("smart-input");setTimeout((()=>{e.focus()}),250)},a.onClose=function(){a.editColumn&&a.editColumn.element&&a.editColumn.element.removeAttribute("focus"),a.classList.remove("view"),a.callback&&a.callback(a.result)},a.btnCancel.onclick=function(){a.result=!1,a.close()},a.btnClose.onclick=function(){a.result=!1,a.close()},a.btnConfirm.onclick=function(){a.result=!0,a.close()},a.onkeydown=function(e){"Escape"===e.key&&(a.result=!1,a.close())},t._dialogDate=a;const e=document.createElement("smart-input");e.classList.add("underlined"),e.style.marginLeft="10px";const l=[];for(let e=0;e<t.columns.length;e++){const a=t.columns[e];"date"===a.dataType&&l.push({label:a.label,value:a.dataField,menuLabel:'<div class="smart-flex center"><span class="smart-grid-icon show smart-icon-scheduler"></span><span>'+a.label+"</span></div>"})}l.push({value:"+",menuLabel:'<div class="smart-flex center"><span class="smart-grid-icon show smart-icon-scheduler"></span><span> + '+t.localize("dialogNewColumn")+"</span>",label:t.localize("dialogNewColumn")}),e.dataSource=l;const i=document.createElement("label");i.textContent=t.localize("schedulerDescription");const n=document.createElement("label");n.textContent=t.localize("schedulerDescriptionInfo"),a.content.appendChild(i);const o=document.createElement("div");o.classList.add("smart-flex","center"),o.style.marginTop="20px";const s=`<span class="smart-grid-icon show smart-icon-scheduler"></span><span>${t.localize("dialogAddColumnTypeDate")} ${t.localize("column")}:</span>`;o.innerHTML=s,o.appendChild(e),a.content.appendChild(o),a.content.appendChild(n),n.style.width="440px",a.content.style.paddingTop="20px",a.content.style.paddingLeft="20px",a.content.style.paddingBottom="20px",a.content.style.paddingRight="20px",a.footer.style.paddingRight="25px",n.style.paddingTop="10px",n.style.paddingLeft="10px",n.style.paddingBottom="10px",n.style.paddingRight="10px",n.style.backgroundColor="var(--smart-ui-state-selected)",n.style.color="var(--smart-ui-state-color-selected)",n.style.marginTop="30px",n.style.marginBottom="30px",n.style.borderRadius="var(--smart-border-radius)"}a.open();const i=a.querySelector("smart-input");i.selectedIndex=0,i.readonly=!0,i.dropDownButtonPosition="right",setTimeout((function(){a.btnConfirm.focus()}),100)}_openDescriptionDialog(e,t){const a=this,l=a._dialogDescription||a._createDialog(),i=a.localize("dialogDescriptionHeader",{value:e.label});if(l.header.innerHTML=i,l.column=e,l.command=t,l.classList.add("smart-grid-dialog-add-column"),!a._dialogDescription){l.modal=!0,l.btnConfirm.innerHTML=a.localize("dialogEditButtonConfirm"),l.btnCancel.innerHTML=a.localize("dialogEditButtonCancel"),l.onOpen=function(){const e=l.querySelector("smart-input");"duplicate"!==t&&setTimeout((()=>{e.select()}),250)},l.onClose=function(){},l.btnCancel.onclick=function(){l.close()},l.btnClose.onclick=function(){l.close()},l.btnConfirm.onclick=function(){const e=l.querySelector("smart-input");switch(l.command){case"duplicate":0===e.selectedIndex?a.duplicateCommand(l.column,null,!0):a.duplicateCommand(l.column,null,!1);break;case"rename":l.column.label=e.value;break;case"editDescription":l.column.description=e.value}l.close()},l.onkeydown=function(e){"Escape"===e.key&&l.close()},a._dialogDescription=l;const e=document.createElement("smart-input");e.classList.add("underlined"),e.dataSource="duplicate"!==t?[]:[{label:a.localize("duplicateCells"),value:"cells"},{label:a.localize("duplicateSettings"),value:"settings"}],l.content.appendChild(e)}const n=e.element,o=a.offset(n),s=a.offset(a);l.open(o.left-s.left,o.top+n.offsetHeight-s.top);const r=l.querySelector("smart-input");switch(r.selectedIndex=0,r.readonly=!0,r.dropDownButtonPosition="right",t){case"rename":r.value=e.label;break;case"editDescription":r.value=e.description}setTimeout((function(){l.btnConfirm.focus()}),100)}_openDeleteRowDialog(e,t){const a=this;if(!a.editing.deleteDialog.enabled)return!1;const l=a._dialogDelete||a._createDialog(),i="{{message}}"===a.editing.dialog.header?a.localize("dialogDeleteHeader",{value:e.visibleIndex+1}):a.editing.dialog.header;l.header.innerHTML=i,l.content.innerHTML=a.localize("dialogDeleteContent"),l.row=e,a._dialogDelete||(l.modal=!0,l.btnConfirm.innerHTML=a.localize("dialogDeleteButtonConfirm"),l.btnCancel.innerHTML=a.localize("dialogDeleteButtonCancel"),l.onOpen=function(){a.editing.dialog.visible=!0},l.onClose=function(){a.editing.dialog.visible=!1},l.btnCancel.onclick=function(){l.close()},l.btnClose.onclick=function(){l.close()},l.btnConfirm.onclick=function(){t(l.row),l.close()},l.onkeydown=function(e){"Escape"===e.key&&l.close()},a._dialogDelete=l),l.open(),setTimeout((function(){l.btnConfirm.focus()}),100)}_getTypesList(){const e=this,t=[{value:"string",prefix:'<span class="smart-grid-icon visible smart-icon-font"></span>',label:e.localize("dialogAddColumnTypeText")},{value:"multiText",prefix:'<span class="smart-grid-icon visible smart-icon-fontsize"></span>',label:e.localize("dialogAddColumnTypeMultilineText")},{value:"number",prefix:'<span class="smart-grid-icon visible smart-icon-number"></span>',label:e.localize("dialogAddColumnTypeNumber")},{value:"image",prefix:'<span class="smart-grid-icon visible smart-icon-image"></span>',label:e.localize("dialogAddColumnTypeImage")},{value:"select",prefix:'<span class="smart-grid-icon visible smart-icon-sort-down"></span>',label:e.localize("dialogAddColumnTypeSelect")},{value:"multiSelect",prefix:'<span class="smart-grid-icon visible smart-icon-list-unordered"></span>',label:e.localize("dialogAddColumnTypeMultipleSelect")},{value:"boolean",prefix:'<span class="smart-grid-icon visible smart-icon-check-squared"></span>',label:e.localize("dialogAddColumnTypeCheckBox")},{value:"attachment",prefix:'<span class="smart-grid-icon visible smart-icon-docs"></span>',label:e.localize("dialogAddColumnTypeAttachment")},{value:"date",prefix:'<span class="smart-grid-icon visible smart-icon-calendar"></span>',label:e.localize("dialogAddColumnTypeDate")},{value:"duration",prefix:'<span class="smart-grid-icon visible smart-icon-calendar"></span>',label:e.localize("dialogAddColumnTypeDuration")},{value:"time",prefix:'<span class="smart-grid-icon visible smart-icon-clock"></span>',label:e.localize("dialogAddColumnTypeTime")},{value:"createdTime",prefix:'<span class="smart-grid-icon visible smart-icon-clock"></span>',label:e.localize("dialogAddColumnTypeCreatedTime")},{value:"updatedTime",prefix:'<span class="smart-grid-icon visible smart-icon-clock"></span>',label:e.localize("dialogAddColumnTypeLastUpdatedTime")},{value:"createdBy",prefix:'<span class="smart-grid-icon visible smart-icon-user"></span>',label:e.localize("dialogAddColumnTypeCreatedBy")},{value:"updatedBy",prefix:'<span class="smart-grid-icon visible smart-icon-user"></span>',label:e.localize("dialogAddColumnTypeLastUpdatedBy")},{value:"collaborator",prefix:'<span class="smart-grid-icon visible smart-icon-user"></span>',label:e.localize("dialogAddColumnTypeCollaborator")},{value:"slider",prefix:'<span class="smart-grid-icon visible smart-icon-number"></span>',label:e.localize("dialogAddColumnTypeSlider")},{value:"formula",prefix:'<span class="smart-grid-icon visible smart-icon-math"></span>',label:e.localize("dialogAddColumnTypeFormula")},{value:"autoNumber",prefix:'<span class="smart-grid-icon visible smart-icon-list-ordered"></span>',label:e.localize("dialogAddColumnTypeAutoNumber")},{value:"url",prefix:'<span class="smart-grid-icon visible smart-icon-link"></span>',label:e.localize("dialogAddColumnTypeURL")},{value:"email",prefix:'<span class="smart-grid-icon visible smart-icon-mail"></span>',label:e.localize("dialogAddColumnTypeEmail")},{value:"phone",prefix:'<span class="smart-grid-icon visible smart-icon-phone"></span>',label:e.localize("dialogAddColumnTypePhone")},{value:"password",prefix:'<span class="smart-grid-icon visible smart-icon-lock"></span>',label:e.localize("dialogAddColumnTypePassword")},{value:"rating",prefix:'<span class="smart-grid-icon visible smart-icon-star"></span>',label:e.localize("dialogAddColumnTypeRating")},{value:"uuid",prefix:'<span class="smart-grid-icon visible smart-icon-number"></span>',label:e.localize("dialogAddColumnTypeUUID")},{value:"AIQuery",prefix:'<span class="smart-grid-icon visible smart-icon-ai"></span>',label:e.localize("dialogAddColumnTypeAIQuery")},{value:"sparklines",prefix:'<span class="smart-grid-icon visible smart-icon-chart"></span>',label:e.localize("dialogAddColumnTypeSparklines")}];if(e.dataSourceSettings.relations&&e.dataSourceSettings.relations.length&&t.splice(17,0,{value:"relationId",prefix:'<span class="smart-grid-icon visible smart-icon-table-alt"></span>',label:e.localize("dialogAddColumnTypeRowLink")}),e.header.visible&&(e.header.buttons.indexOf("views")>=0||e.header.buttons.indexOf("states")>=0)){const a={value:"progress",prefix:'<span class="smart-grid-icon visible smart-icon-number"></span>',label:e.localize("dialogAddColumnTypeProgress")},l={value:"checklist",prefix:'<span class="smart-grid-icon visible smart-icon-list-ordered"></span>',label:e.localize("dialogAddColumnTypeChecklist")},i={value:"color",prefix:'<span class="smart-grid-icon visible smart-icon-color-background"></span>',label:e.localize("dialogAddColumnTypeColor")};t.push(a),t.push(l),t.push(i)}return t}_getAddStackColumnDialogTemplate(){const e=this,t=[];let a=!1,l="";for(let i=0;i<e.columns.length;i++){const n=e.columns[i];(n.statusColumn||"taskStatus"===n.dataField||"taskStatus"===n._dataField||n.editor&&n.editor.dataSource&&n.editor.dataSource.length&&n.editor.singleSelect)&&(t.push({label:n.label,value:n.dataField}),e._stackedBy===n.dataField&&(t[t.length-1].checked=!0,a=!0,l=t[t.length-1].label))}const i=t.concat([{value:"blank",label:e.localize("kanbanNone")},{value:"basic",label:e.localize("kanbanBasic")}]);return a||(i[0].checked=!0,l=i[0].label),[{bind:"kanban",name:"kanban",type:"radio",label:2===i.length?e.localize("kanbanNoneDescription"):e.localize("kanbanDescription",{column:l}),filter:"kanban",options:i},{bind:"kanbanNotes",name:"kanbanNotes",type:"label",label:e.localize("dialogAddColumnStatusNotes"),filter:"kanban"},{bind:"name",type:"input",label:e.localize("dialogAddColumnName"),filter:"any",placeholder:e.localize("dialogAddColumnNamePlaceholder"),info:e.localize("dialogAddColumnNameInfo")},{bind:"allowColorItems",type:"boolean",label:e.localize("dialogAddColumnColorItems"),filter:"list, collaborator",value:!0,info:""},{bind:"options",name:"listitems",type:"items",label:e.localize("dialogAddColumnListItems"),filter:"list",info:""}]}_getAddColumnDialogTemplate(){const e=this,t=(new Date).getFullYear().toString(),a=new Date(t,6,30);return[{bind:"kanban",name:"kanban",type:"radio",label:e.localize("kanbanNoneDescription"),filter:"kanban",options:[{value:"blank",checked:!0,label:e.localize("kanbanNone")},{value:"basic",label:e.localize("kanbanBasic")}]},{bind:"kanbanNotes",name:"kanbanNotes",type:"label",label:e.localize("dialogAddColumnStatusNotes"),filter:"kanban"},{bind:"name",type:"input",label:e.localize("dialogAddColumnName"),filter:"any",placeholder:e.localize("dialogAddColumnNamePlaceholder"),info:e.localize("dialogAddColumnNameInfo")},{bind:"type",name:"typeslist",type:"dropDownList",filter:"any",label:e.localize("dialogAddColumnType"),icon:"smart-icon-font",options:e._getTypesList(),info:e.localize("dialogAddColumnTypeInfo")},{bind:"dateFormat",name:"dateformat",type:"dropDownList",label:e.localize("dialogAddColumnDateFormat"),options:[{value:"M/d/yyyy",label:e.localize("dialogAddColumnDateFormatShort")+" ("+new Smart.Utilities.DateTime(a).toString("d")+")"},{value:"dddd, MMMM dd, yyyy",label:e.localize("dialogAddColumnDateFormatLong")+" ("+new Smart.Utilities.DateTime(a).toString("D")+")"},{value:"yyyy-MM-ddTHH:mm:ss.sssZ",label:e.localize("dialogAddColumnDateFormatISO")+" ("+new Smart.Utilities.DateTime(a).toString("ISO8601")+")"},{value:"d/M/yyyy",label:e.localize("dialogAddColumnDateFormatEU")+" (30/7/"+t+")"},{value:"yyyy-MM-dd",label:e.localize("dialogAddColumnDateFormatAS")+" ("+t+"-30-07)"},{value:"MMMM, dd, yyyy",label:e.localize("dialogAddColumnDateFormatFull")+" (July, 30, "+t+")"}],filter:"date",info:e.localize("dialogAddColumnDateFormatInfo")},{bind:"timeFormat",name:"timeformat",type:"dropDownList",label:e.localize("dialogAddColumnTimeFormat"),filter:"time",width:"50%",options:[{value:"hh:mm tt",label:"12 "+e.localize("dialogAddColumnTimeFormatHour")},{value:"HH:mm",label:"24 "+e.localize("dialogAddColumnTimeFormatHour")}],info:e.localize("dialogAddColumnTimeFormatInfo")},{bind:"allowTimeFormat",type:"boolean",label:e.localize("dialogAddColumnAllowTimeFormat"),filter:"date",width:"50%",value:!1,info:""},{bind:"allowCustomDateSeparator",type:"boolean",label:e.localize("dialogAddColumnCustomDateSeparator"),filter:"date",width:"50%",value:!1,info:""},{bind:"dateFormatSeparator",name:"dateFormatSeparator",type:"radio",label:"",filter:"date",width:"100%",columns:3,options:[{value:"/",label:e.localize("dialogAddColumnDateFormatSlash")+" (/)"},{value:"-",label:e.localize("dialogAddColumnDateFormatHyphen")+" (-)"},{value:".",label:e.localize("dialogAddColumnDateFormatDot")+" (.)"}]},{bind:"numberFormat",name:"numberFormat",type:"dropDownList",label:e.localize("dialogAddColumnNumberFormat"),filter:"number",options:[{value:{style:"decimal",maximumFractionDigits:0},label:e.localize("dialogAddColumnNumberFormatInteger")+" 1,000"},{value:{style:"decimal",minimumFractionDigits:2},label:e.localize("dialogAddColumnNumberFormatNumber")+" 1,000.12"},{value:{style:"percent",minimumFractionDigits:2},label:e.localize("dialogAddColumnNumberFormatPercent")+" 10.12%"},{value:{style:"percent",maximumFractionDigits:0,minimumFractionDigits:0},label:e.localize("dialogAddColumnNumberFormatPercentRounded")+" 10%"},{value:{style:"decimal",notation:"scientific"},label:e.localize("dialogAddColumnNumberFormatScientific")+" 1.01E+03"},{value:{style:"decimal",notation:"engineering"},label:e.localize("dialogAddColumnNumberFormatEngineering")+" 34.284 x 10^9"},{value:{style:"currency",currency:e.messages[e.locale].calendar.currency,currencySign:"accounting"},label:e.localize("dialogAddColumnNumberFormatAccounting")+" $(1,000.12)"},{value:{style:"unit",unit:"kilogram"},label:e.localize("dialogAddColumnNumberFormatUnit")+" 10.12 kg"},{value:{style:"currency",currency:e.messages[e.locale].calendar.currency},label:e.localize("dialogAddColumnNumberFormatCurrency")+" $1,000.12"},{value:{style:"currency",currency:e.messages[e.locale].calendar.currency,maximumFractionDigits:0,minimumFractionDigits:0},label:e.localize("dialogAddColumnNumberFormatCurrencyRounded")+" $1,000"}],required:!1,info:e.localize("dialogAddColumnNumberFormatInfo")},{bind:"currency",name:"currency",type:"dropDownList",filter:"number",required:!1,options:e._getCurrencies(),label:e.localize("dialogAddColumnNumberFormatCurrency"),info:e.localize("dialogAddColumnNumberFormatCurrencyInfo")},{bind:"unit",name:"unit",type:"dropDownList",filter:"number",required:!1,options:[{value:"acre",label:e.localize("dialogAddColumnNumberFormatUnitAcre")},{value:"percent",label:e.localize("dialogAddColumnNumberFormatUnitPercent")},{value:"degree",label:e.localize("dialogAddColumnNumberFormatUnitDegree")},{value:"megabyte",label:e.localize("dialogAddColumnNumberFormatUnitMegaByte")},{value:"centimeter",label:e.localize("dialogAddColumnNumberFormatUnitCentimeter")},{value:"meter",label:e.localize("dialogAddColumnNumberFormatUnitMeter")},{value:"squaremeter",label:e.localize("dialogAddColumnNumberFormatUnitMeter")+"²"},{value:"cubicmeter",label:e.localize("dialogAddColumnNumberFormatUnitMeter")+"³"},{value:"kilometer",label:e.localize("dialogAddColumnNumberFormatUnitKilometer")},{value:"mile",label:e.localize("dialogAddColumnNumberFormatUnitMile")},{value:"celsius",label:e.localize("dialogAddColumnNumberFormatUnitCelsius")},{value:"fahrenheit",label:e.localize("dialogAddColumnNumberFormatUnitFahrenheit")},{value:"kilogram",label:e.localize("dialogAddColumnNumberFormatUnitKilogram")},{value:"pound",label:e.localize("dialogAddColumnNumberFormatUnitPound")},{value:"liter",label:e.localize("dialogAddColumnNumberFormatUnitLiter")},{value:"gallon",label:e.localize("dialogAddColumnNumberFormatUnitGallon")},{value:"second",label:e.localize("dialogAddColumnNumberFormatUnitSecond")},{value:"minute",label:e.localize("dialogAddColumnNumberFormatUnitMinute")},{value:"hour",label:e.localize("dialogAddColumnNumberFormatUnitHour")},{value:"day",label:e.localize("dialogAddColumnNumberFormatUnitDay")},{value:"week",label:e.localize("dialogAddColumnNumberFormatUnitWeek")},{value:"month",label:e.localize("dialogAddColumnNumberFormatUnitMonth")},{value:"year",label:e.localize("dialogAddColumnNumberFormatUnitYear")}],label:e.localize("dialogAddColumnNumberFormatUnit"),info:e.localize("dialogAddColumnNumberFormatUnitInfo")},{bind:"allowThousandsSeparator",name:"allowThousandsSeparator",type:"boolean",label:e.localize("dialogAddColumnNumberFormatSeparator"),filter:"number",value:!0,info:""},{bind:"minLength",name:"minlength",width:"50%",type:"number",filter:"text",required:!1,label:e.localize("dialogAddColumnMinLength"),info:e.localize("dialogAddColumnMinLengthInfo")},{bind:"maxLength",name:"maxlength",width:"50%",filter:"text",type:"number",required:!1,label:e.localize("dialogAddColumnMaxLength"),info:e.localize("dialogAddColumnMaxLengthInfo")},{bind:"minValue",name:"minvalue",width:"50%",filter:"number",type:"number",required:!1,label:e.localize("dialogAddColumnMinValue"),info:e.localize("dialogAddColumnMinValueInfo")},{bind:"maxValue",name:"maxvalue",width:"50%",filter:"number",type:"number",required:!1,label:e.localize("dialogAddColumnMaxValue"),info:e.localize("dialogAddColumnMaxValueInfo")},{bind:"minDateTime",name:"mindatetime",type:"datetime",filter:"date",width:"50%",label:e.localize("dialogAddColumnMinDate"),info:e.localize("dialogAddColumnMinDateInfo")},{bind:"maxDateTime",name:"maxdatetime",type:"datetime",width:"50%",filter:"date",label:e.localize("dialogAddColumnMaxDate"),info:e.localize("dialogAddColumnMaxDateInfo")},{bind:"deadline",name:"deadline",type:"dropDownList",label:e.localize("dialogAddColumnTypeDueDateSettings"),info:e.localize("dialogAddColumnTypeDueDateSettingsInfo"),filter:"date",options:[{value:"",label:e.localize("dialogAddColumnTypeNone")},{value:"dueDate",label:e.localize("dialogAddColumnTypeDueDate")},{value:"startDate",label:e.localize("dialogAddColumnTypeStartDate")}]},{bind:"deadlineStatus",name:"deadlineStatus",type:"dropDownList",label:e.localize("dialogAddColumnTypeStatus"),info:e.localize("dialogAddColumnTypeStatusInfo"),filter:"date",options:[]},{bind:"deadlineStartDate",name:"deadlineStartDate",type:"dropDownList",label:e.localize("dialogAddColumnTypeStartDate"),info:"",filter:"date",options:[]},{bind:"deadlineDueDate",name:"deadlineDueDate",type:"dropDownList",label:e.localize("dialogAddColumnTypeDueDate"),info:"",filter:"date",options:[]},{bind:"allowColorItems",type:"boolean",label:e.localize("dialogAddColumnColorItems"),filter:"hidden",value:!0,info:""},{bind:"presets",name:"presets",type:"dropDownList",label:"Presets",info:"",filter:"list",options:[{value:"none",label:"-"},{value:"status",label:e.localize("projectStatus")},{value:"review",label:e.localize("reviewStatus")},{value:"task",label:e.localize("taskStatus")},{value:"priority",label:e.localize("priority")},{value:"size",label:e.localize("size")},{value:"boolean",label:e.localize("yesNo")}]},{bind:"allowCheckItems",type:"boolean",filter:"hidden",value:!1,label:e.localize("dialogAddColumnCheckItems"),info:""},{bind:"allowMultipleCollaborators",type:"boolean",filter:"collaborator",value:!1,label:e.localize("dialogAddColumnMultipleCollaborators"),info:e.localize("dialogAddColumnMultipleCollaboratorsInfo")},{bind:"options",name:"listitems",type:"items",label:e.localize("dialogAddColumnListItems"),filter:"list",info:""},{bind:"users",name:"users",type:"items",label:e.localize("dialogAddColumnListItems"),filter:"collaborator",info:""},{bind:"formula",type:"formula",filter:"formula",info:e.localize("dialogAddColumnFormulaInfo"),label:e.localize("dialogAddColumnFormula")},{bind:"AIQuery",type:"AIQuery",filter:"AIQuery",info:e.localize("dialogAddColumnAIQueryInfo"),label:e.localize("dialogAddColumnAIQuery")},{bind:"sparklines",type:"sparklines",filter:"sparklines",info:"",label:e.localize("dialogAddColumnTypeSparklines")},{bind:"relationMultiField",name:"relationMultiField",type:"boolean",value:!1,filter:"relationId",hidden:!0,label:e.localize("dialogAddColumnLinkSelect")},{bind:"relationId",name:"relationId",type:"relationId",label:e.localize("dialogAddColumnLinkListItems"),filter:"relationId",info:""},{bind:"description",type:"input",label:e.localize("dialogAddColumnDescription"),filter:"any",placeholder:e.localize("dialogAddColumnDescriptionPlaceholder"),info:e.localize("dialogAddColumnDescriptionInfo")},{name:"align",bind:"cellsAlign",type:"dropDownList",label:e.localize("dialogAddColumnAlign"),required:!1,options:[{value:"left",label:e.localize("dialogAddColumnAlignLeft")},{value:"right",label:e.localize("dialogAddColumnAlignRight")},{value:"center",label:e.localize("dialogAddColumnAlignCenter")}],filter:"any",info:e.localize("dialogAddColumnAlignInfo")},{bind:"defaultString",name:"defaultString",type:"input",filter:"text",required:!1,label:e.localize("dialogAddColumnDefault")},{bind:"defaultNumber",name:"defaultNumber",type:"number",filter:"number",required:!1,label:e.localize("dialogAddColumnDefault")},{bind:"defaultDate",name:"defaultDate",type:"dropDownList",label:e.localize("dialogAddColumnDefault"),filter:"date",options:[{value:"current",label:e.localize("dialogAddColumnDefaultDateCurrent")},{value:"specific",label:e.localize("dialogAddColumnDefaultDateSpecific")}]},{bind:"defaultDateValue",name:"defaultDateValue",type:"datetime",filter:"date",label:e.localize("placeholderValue")},{bind:"setDefaultValue",type:"boolean",label:e.localize("dialogAddColumnDefault"),width:"50%",filter:"any",value:!1,info:""},{bind:"allowResize",type:"boolean",filter:"any",width:"50%",label:e.localize("dialogAddColumnResizable"),info:e.localize("dialogAddColumnResizableInfo")},{bind:"allowRichText",type:"boolean",filter:"multiText",width:"50%",value:!1,label:e.localize("dialogAddColumnFormatting"),info:""},{bind:"required",type:"boolean",width:"50%",filter:"any",value:!1,label:e.localize("dialogAddColumnRequired"),info:e.localize("dialogAddColumnRequiredInfo")},{bind:"allowSort",type:"boolean",width:"50%",filter:"any",label:e.localize("dialogAddColumnSortable"),info:e.localize("dialogAddColumnSortableInfo")},{bind:"allowFilter",type:"boolean",align:"left",width:"50%",filter:"any",label:e.localize("dialogAddColumnFilterable"),info:e.localize("dialogAddColumnFilterableInfo")},{bind:"allowEdit",type:"boolean",width:"50%",filter:"any",label:e.localize("dialogAddColumnEditable"),info:e.localize("dialogAddColumnEditableInfo")}]}_getKanbanFields(){return["startDate","dueDate","progress","checklist","priority","tags","name","color","description","status"]}_addColumnDialogShowHideEditors(e){const t=this,a=e.editColumn,l=e.querySelector('[bind="type"]'),i=l?l.querySelector("smart-input"):null,n=l?i.getSelectedItem().value:"kanban",o=e.querySelectorAll(".smart-grid-dialog-editor"),s=t._getKanbanFields(),r=e.querySelector('[field-name="kanbanNotes"]');r&&("kanban"!==t.view?r.classList.add("smart-hidden"):r.classList.remove("smart-hidden"));const d=t=>{const a=e.querySelector('[field-name="defaultDate"]'),l=e.querySelector('[field-name="defaultDateValue"]');if(!t)return a.classList.add("smart-hidden"),void l.classList.add("smart-hidden");a.classList.remove("smart-hidden"),"specific"===t?(l.classList.remove("smart-hidden"),l.style.width="50%",l.style.float="left",a.style.width="50%",a.style.float="left",a.style.clear="both"):(l.classList.add("smart-hidden"),l.style.width="",l.style.float="",a.style.width="",a.style.float="")};let c=!!a;if(a){switch(e.columnType||n){case"createdTime":case"updatedTime":case"createdBy":case"updatedBy":case"autoNumber":case"uuid":case"image":case"progress":case"color":case"collaborator":case"attachment":c=!0;break;default:c=!1}"checklist"!==a.template&&"color"!==a.template||(c=!0),!1===a.allowTypeChange&&(c=!0)}for(let l=0;l<o.length;l++){const i=o[l],r=i.getAttribute("filter"),u=i.getAttribute("bind"),m=i.parentNode;if("deadlineStatus"!==u&&"deadlineDueDate"!==u&&"deadlineStartDate"!==u)if(m.classList.add("smart-hidden"),"cellsAlign"===u&&("boolean"===n||"attachment"===n||"image"===n||"email"===n||"url"===n||"collaborator"===n||"createdBy"===n||"password"===n||"phone"===n||"createdTime"===n||"uuid"===n||"AIQuery"===n||"sparklines"===n||"rating"===n||"updatedBy"===n||"updatedTime"===n||s.indexOf(n)>=0))m.classList.add("smart-hidden");else if("type"===u&&c)m.classList.add("smart-hidden");else if("presets"===u&&a)m.classList.add("smart-hidden");else if("allowEdit"!==u||!1!==t.editing.enabled&&"autoNumber"!==n&&"uuid"!==n&&"createdBy"!==n&&"updatedBy"!==n&&"createdTime"!==n&&"updatedTime"!==n&&"uuid"!==n)if("allowResize"!==u||"none"!==t.behavior.columnResizeMode)if("allowFilter"!==u||!1!==t.filtering.enabled)if("allowSort"!==u||!1!==t.sorting.enabled)if("required"!==u||!1!==t.editing.enabled&&("string"===n||"multiText"===n||"name"===n||"description"===n||"select"===n||"collaborator"===n||"multiSelect"===n||"select"===n||"priority"===n))if(a&&a.disabledDialogOptions&&a.disabledDialogOptions.length>0&&a.disabledDialogOptions.indexOf(u)>=0)m.classList.add("smart-hidden");else{if(a&&"kanban"===t.view){switch(u){case"options":case"allowColorItems":case"allowSort":case"allowFilter":case"align":case"cellsAlign":case"allowResize":case"allowEdit":m.classList.add("smart-hidden");continue}"kanban"===t.view&&"kanban"===r&&m.classList.remove("smart-hidden")}if("deadline"!==u)if("setDefaultValue"!==u){if(a&&a.editor&&a.editor.collaborator)switch(u){case"options":m.classList.add("smart-hidden");continue;case"users":m.classList.remove("smart-hidden");continue}if("name"!==u||"kanban"!==t.view)if("any"!==r)switch(n){default:case"text":"text"!==r&&"multiText"!==r||("multiText"===r&&"string"===n?m.classList.add("smart-hidden"):m.classList.remove("smart-hidden")),a&&"any"===a.dataType&&m.classList.add("smart-hidden");break;case"slider":case"number":if("number"===r&&m.classList.remove("smart-hidden"),"unit"===u||"currency"===u||"allowThousandsSeparator"===u){m.classList.add("smart-hidden");const t=e.querySelector('[field-name="allowThousandsSeparator"]'),a=e.querySelector('[field-name="numberFormat"]'),l=e.querySelector('[field-name="unit"]'),i=e.querySelector('[field-name="currency"]'),n=a.querySelector("smart-input"),o=()=>{const e=n.getSelectedItem();i.classList.add("smart-hidden"),t.classList.add("smart-hidden"),e&&"decimal"===e.value.style&&!e.value.notation&&t.classList.remove("smart-hidden"),e&&"unit"===e.value.style?l.classList.remove("smart-hidden"):e&&"currency"===e.value.style?i.classList.remove("smart-hidden"):l.classList.add("smart-hidden")};a.onchange=()=>{o()},o()}break;case"select":case"multiSelect":r.indexOf("list")>=0&&m.classList.remove("smart-hidden");break;case"collaborator":r.indexOf("collaborator")>=0&&m.classList.remove("smart-hidden");break;case"createdBy":case"updatedBy":case"autoNumber":case"uuid":case"createdTime":case"updatedTime":case"url":case"email":case"image":case"attachment":case"phone":case"password":case"progress":case"rating":case"checklist":case"priority":case"tags":case"name":case"description":case"assigned":case"status":case"color":case"boolean":if("status"===n||"priority"===n||"tags"===n){r.indexOf("list")>=0&&m.classList.remove("smart-hidden");break}break;case"time":{const t=e.querySelector('[field-filter="time"]');t.classList.remove("smart-hidden"),t.style.width="",t.style.float="";break}case"AIQuery":"AIQuery"===u&&t.ai.key&&m.classList.remove("smart-hidden");break;case"sparklines":"sparklines"===u&&m.classList.remove("smart-hidden");break;case"formula":"formula"===u&&m.classList.remove("smart-hidden");break;case"relationId":"relationId"!==u&&"relationMultiField"!==u||m.classList.remove("smart-hidden"),"relationMultiField"===u&&m.classList.add("smart-hidden");break;case"duration":break;case"dueDate":case"startDate":case"date":{const t=e.querySelector('[field-name="dateFormat"]').querySelector(".smart-input").value;if("defaultDate"===u||"defaultDateValue"===u){const t=e.querySelector('[field-name="defaultDate"]'),l=e.querySelector('[field-name="defaultDateValue"]'),i=t.querySelector(".smart-input"),n=l.querySelector(".smart-input");a&&a.defaultValue?"today"===a.defaultValue?(i.selectedValues=["current"],n.value=null):(i.selectedValues=["specific"],n.value=a.defaultValue):(i.selectedValues=["current"],n.value=null),d(i.selectedValue)}"date"===r&&m.classList.remove("smart-hidden");const l=t=>{const a=e.querySelector('[field-filter="time"]'),l=e.querySelector('[field-name="dateFormat"]');t?(a.classList.remove("smart-hidden"),l.style.width="50%",l.style.float="left"):(a.classList.add("smart-hidden"),l.style.width="",l.style.float="")},n=t=>{const a=e.querySelector('[field-name="allowTimeFormat"]'),l=a.querySelector(".smart-grid-dialog-editor");t.indexOf("T")>=0?(a.classList.add("smart-hidden"),l.uncheck()):a.classList.remove("smart-hidden")},o=t=>{const a=e.querySelector('[field-name="dateFormatSeparator"]');t?a.classList.remove("smart-hidden"):a.classList.add("smart-hidden")};if("allowTimeFormat"===u){const e=i.querySelector(".smart-input").value;i.onchange=e=>{l(e)},l(e)}if("dateFormat"===u){const e=i.querySelector(".smart-input").value;i.onchange=e=>{n(e.detail.value)},n(e)}if("defaultDate"===u){const e=i.querySelector(".smart-input").value;i.onchange=e=>{d(e.detail.value)},d(e)}if("dateFormatSeparator"===u){const t=e.querySelector('[field-name="allowCustomDateSeparator"]').querySelector(".smart-input").value;o(t)}if("allowCustomDateSeparator"===u){t.indexOf("T")>=0&&t.indexOf("-")>0&&i.uncheck();const e=i.querySelector(".smart-input").value;i.onchange=e=>{o(e)},o(e)}n(t);break}}else m.classList.remove("smart-hidden");else{const e=t._getAddStackColumnDialogTemplate().find((e=>{if("kanban"===e.bind)return e}));e.options[e.options.length-1].checked||e.options[e.options.length-2].checked?i.classList.remove("smart-hidden"):i.classList.add("smart-hidden")}}else{switch(a&&a.defaultValue&&m.classList.remove("smart-hidden"),n){case"string":case"multiText":case"name":case"description":case"multiSelect":case"boolean":case"date":case"dueDate":case"startDate":case"collaborator":case"number":case"priority":case"status":case"select":m.classList.remove("smart-hidden");break;default:m.classList.add("smart-hidden")}const t=t=>{const a=e.querySelector('[bind="type"]'),l=a?a.querySelector("smart-input"):null,i=a?l.getSelectedItem().value:"kanban",n=e.querySelector('[field-name="defaultDate"]'),o=e.querySelector('[field-name="defaultNumber"]'),s=e.querySelector('[field-name="defaultString"]'),r=e.querySelector('[field-name="defaultDateValue"]'),c=e.querySelectorAll(".smart-default-item-container");n&&(n.classList.add("smart-hidden"),r.classList.add("smart-hidden")),o&&o.classList.add("smart-hidden"),s&&s.classList.add("smart-hidden");for(let e=0;e<c.length;e++)c[e].classList.add("smart-hidden");if(t)if("date"===i||"dueDate"===i||"startDate"===i){if(n){n.classList.remove("smart-hidden"),r.classList.remove("smart-hidden");const e=n.querySelector("smart-input").selectedValues;d(e&&e.length?e[0]:"current")}}else if("number"===i||"slider"===i)o&&o.classList.remove("smart-hidden");else if("string"===i||"multiText"===i||"name"===i||"description"===i)s&&s.classList.remove("smart-hidden");else for(let e=0;e<c.length;e++)c[e].classList.remove("smart-hidden")};i.onchange=e=>{t(e)};const l=e.querySelector('[field-name="setDefaultValue"]'),o=!(!a||null===a.defaultValue||void 0===a.defaultValue)||l.value;t(o)}else m.classList.add("smart-hidden"),t.header.visible&&(t.header.buttons.indexOf("views")>=0||t.header.buttons.indexOf("states")>=0)&&"date"===n&&m.classList.remove("smart-hidden")}else m.classList.add("smart-hidden");else m.classList.add("smart-hidden");else m.classList.add("smart-hidden");else m.classList.add("smart-hidden");else m.classList.add("smart-hidden")}}_addColumnDialogInitEditors(e,t,a){const l=this,i=e.editColumn,n=()=>{const e=a.deadline.parentElement.querySelector(".smart-input"),t=a.deadlineStatus.parentElement,l=a.deadlineDueDate.parentElement,i=a.deadlineStartDate.parentElement,n=t.querySelector("smart-input"),o=l.querySelector("smart-input"),s=i.querySelector("smart-input");t.classList.add("smart-hidden"),l.classList.add("smart-hidden"),i.classList.add("smart-hidden"),2===e.selectedIndex?l.classList.remove("smart-hidden"):1===e.selectedIndex&&(t.classList.remove("smart-hidden"),i.classList.remove("smart-hidden")),n.dataSource&&0===n.dataSource.length&&t.classList.add("smart-hidden"),o.dataSource&&0===o.dataSource.length&&l.classList.add("smart-hidden"),s.dataSource&&0===s.dataSource.length&&i.classList.add("smart-hidden")};for(let o in a){const s=a[o],r=s.querySelector("input"),d=s.querySelector("smart-input");switch(o){case"allowTimeFormat":{const e=s.querySelector(".smart-input");i&&i.editor?"dateInput"===i.editor.template?(e.value=!1,e.removeAttribute("checked")):(e.value=!0,e.setAttribute("checked","")):(e.value=!1,e.removeAttribute("checked"));break}case"allowRichText":{const e=s.querySelector(".smart-input");i&&"richText"===i.template?(e.value=!0,e.setAttribute("checked","")):(e.value=!1,e.removeAttribute("checked"));break}case"allowCustomDateSeparator":{const e=s.querySelector(".smart-input");e.value=!1,e.removeAttribute("checked");let t=0;i&&i.cellsFormat&&(i.cellsFormat.indexOf(".")>=0?(e.value=!0,e.setAttribute("checked",""),t=2):(i.cellsFormat.indexOf("M-d-yyyy")>=0||i.cellsFormat.indexOf("d-M-yyyy")>=0||i.cellsFormat.indexOf("yyyy/MM/dd")>=0)&&(e.value=!0,e.setAttribute("checked",""),t=1));const l=a.dateFormatSeparator.querySelectorAll(".smart-grid-dialog-boolean-field");l.forEach((e=>{e.value=!1,e.removeAttribute("checked")})),l[t].setAttribute("checked",""),l[t].click(),l[t].value=!0;break}case"kanban":{const t=s.querySelectorAll(".smart-grid-dialog-boolean-field");for(let a=0;a<t.length;a++){const i=t[a];i.onchange=a=>{const n=[...a.parentElement.children].indexOf(a),o=a.parentElement.parentElement.previousElementSibling,s=e.querySelector('[field-name="options"]'),r=e.querySelector('[field-name="allowColorItems"]'),d=e.querySelector('[field-name="name"]'),c=()=>{const t=s.querySelector("smart-sortable");t&&(t._validate(),e&&e.offsetHeight&&e.setPosition("center"))};n===t.length-1?(o.innerHTML=l.localize("kanbanBasicDescription"),r.classList.remove("smart-hidden"),s.classList.remove("smart-hidden"),d.classList.remove("smart-hidden"),d.querySelector(".smart-grid-dialog-editor ").classList.remove("smart-hidden"),d.querySelector("smart-input").value=l.localize("dialogNewColumn"),c()):n===t.length-2?(o.innerHTML=l.localize("kanbanNoneDescription"),r.classList.add("smart-hidden"),s.classList.add("smart-hidden"),d.classList.remove("smart-hidden"),d.querySelector(".smart-grid-dialog-editor ").classList.remove("smart-hidden"),d.querySelector("smart-input").value=l.localize("dialogNewColumn"),c()):(o.innerHTML=l.localize("kanbanDescription",{column:i.label.innerHTML}),r.classList.add("smart-hidden"),s.classList.remove("smart-hidden"),s.classList.add("smart-hidden"),d.classList.add("smart-hidden"),d.querySelector("smart-input").value=i.label.innerHTML,d.querySelector(".smart-grid-dialog-editor").classList.add("smart-hidden"),c())}}break}case"dateFormat":i&&i.cellsFormat?i.cellsFormat.indexOf("M/d/yyyy")>=0?d.selectedIndex=0:i.cellsFormat.indexOf("dddd, MMMM dd, yyyy")>=0?d.selectedIndex=1:i.cellsFormat.indexOf("yyyy-MM-ddTHH:mm:ss.sssZ")>=0?d.selectedIndex=2:i.cellsFormat.indexOf("d/M/yyyy")>=0?d.selectedIndex=3:i.cellsFormat.indexOf("yyyy-MM-dd")>=0?d.selectedIndex=4:i.cellsFormat.indexOf("MMMM, dd, yyyy")>=0&&(d.selectedIndex=5):d.selectedIndex=0;break;case"timeFormat":i&&i.cellsFormat&&i.cellsFormat.indexOf("HH")>=0&&-1===i.cellsFormat.indexOf("T")?d.selectedIndex=1:d.selectedIndex=0;break;case"allowMultipleCollaborators":{let e=!1;i&&i.editor&&i.editor.singleSelect&&(e=!1);const t=s.querySelector(".smart-input");i&&e?(t.value=!0,t.setAttribute("checked","")):(t.value=!1,t.removeAttribute("checked"));break}case"allowThousandsSeparator":{const e=s.querySelector(".smart-input");i&&i.editor&&"numberInput"===i.editor.template&&"progress"!==i.template&&"rating"!==i.template?(e.value=!0,e.setAttribute("checked",""),i.editor.numberFormat&&("decimal"!==i.editor.numberFormat.style||i.editor.numberFormat.notation||i.editor.numberFormat.useGrouping||(e.value=!1,e.removeAttribute("checked")))):(e.value=!0,e.setAttribute("checked",""));break}case"numberFormat":if(i&&"numberInput"===i.editor.template&&i.editor.numberFormat)if("decimal"===i.editor.numberFormat.style&&0===i.editor.numberFormat.maximumFractionDigits)d.selectedIndex=0;else if("decimal"===i.editor.numberFormat.style&&2===i.editor.numberFormat.minimumFractionDigits)d.selectedIndex=1;else if("percent"===i.editor.numberFormat.style&&2===i.editor.numberFormat.minimumFractionDigits)d.selectedIndex=2;else if("percent"===i.editor.numberFormat.style&&0===i.editor.numberFormat.maximumFractionDigits)d.selectedIndex=3;else if("decimal"===i.editor.numberFormat.style&&"scientific"===i.editor.numberFormat.notation)d.selectedIndex=4;else if("decimal"===i.editor.numberFormat.style&&"engineering"===i.editor.numberFormat.notation)d.selectedIndex=5;else if("currency"===i.editor.numberFormat.style&&"accounting"===i.editor.numberFormat.currencySign)d.selectedIndex=6;else if("unit"===i.editor.numberFormat.style){d.selectedIndex=7;const e=i.editor.numberFormat.unit,t=a.unit.querySelector("smart-input");t.dataSource.forEach(((a,l)=>{if(a.value===e)return t.selectedIndex=l,!0}))}else"currency"===i.editor.numberFormat.style&&0===i.editor.numberFormat.maximumFractionDigits&&0===i.editor.numberFormat.minimumFractionDigits?d.selectedIndex=9:"currency"===i.editor.numberFormat.style&&(d.selectedIndex=8);else d.selectedIndex=0;break;case"currency":if(i&&"numberInput"===i.editor.template&&i.editor.numberFormat){if("currency"===i.editor.numberFormat.style){const e=l._getCurrencies().findIndex((e=>e.value===i.editor.numberFormat.currency));e>=0&&(d.selectedIndex=e)}}else d.selectedIndex=0;break;case"allowCheckItems":{const e=s.querySelector(".smart-input");i?i.editor&&!i.editor.pills?(e.value=!0,e.setAttribute("checked","")):!1===i[o]&&(e.value=!1,e.removeAttribute("checked")):(e.value=!0,e.setAttribute("checked",""));break}case"allowColorItems":{const e=s.querySelector(".smart-input");i?i.editor&&i.editor.colorItems?(e.value=!0,e.setAttribute("checked","")):!1===i[o]&&(e.value=!1,e.removeAttribute("checked")):(e.value=!0,e.setAttribute("checked",""));break}case"setDefaultValue":{const e=s.querySelector(".smart-input");i?(e.value=!1,e.removeAttribute("checked"),i&&void 0!==i.defaultValue&&null!==i.defaultValue&&(e.value=!0,e.setAttribute("checked",""))):(e.value=!1,e.removeAttribute("checked"));break}case"defaultString":{const e=s.querySelector("smart-input");i&&void 0!==i.defaultValue&&null!==i.defaultValue?e.value=i.defaultValue:e.value="";break}case"defaultNumber":{const e=s.querySelector("smart-number-input");i&&void 0!==i.defaultValue&&null!==i.defaultValue?e.value=i.defaultValue:e.value=0;break}case"deadline":{const e=s.querySelector(".smart-input");e.selectedIndex=0,e.onchange=()=>{n()},i&&i.editor&&(e.selectedIndex=0,i.editor.onValidate&&"dueDate"!==i.template&&(e.selectedIndex=2),"dueDate"===i.template&&(e.selectedIndex=1)),n();break}case"deadlineStatus":{const t=s.querySelector(".smart-input"),a=[];for(let e=0;e<l.columns.length;e++){const t=l.columns[e];t&&t.editor&&t.editor.dataSource&&t.editor.singleSelect&&a.push({label:t.label,value:t.dataField})}a.length?t.dataSource=[{label:l.localize("dialogAddColumnTypeNone"),value:"none"}].concat(a):t.dataSource=a,e.editColumn&&(t.selectedValue="",e.editColumn&&e.editColumn.editor.boundDataField&&(t.selectedValue=e.editColumn.editor.boundDataField)),a.length||s.parentElement.classList.add("smart-hidden"),n();break}case"deadlineStartDate":{const t=s.querySelector(".smart-input"),a=[];a.push({label:l.localize("dialogAddColumnTypeNone"),value:"none"});for(let e=0;e<l.columns.length;e++){const t=l.columns[e];t&&"startDate"===t.template&&a.push({label:t.label,value:t.dataField,menuLabel:'<div class="smart-flex center"><span class="smart-grid-icon show smart-icon-scheduler"></span><span>'+t.label+"</span>"})}e.editColumn||a.push({value:"+",menuLabel:'<div class="smart-flex center"><span class="smart-grid-icon show smart-icon-scheduler"></span><span> + '+l.localize("dialogNewColumn")+"</span>",label:l.localize("dialogNewColumn")}),t.dataSource=a,e.editColumn&&(t.clearValue(),e.editColumn&&e.editColumn.editor.boundDataField&&(t.selectedValue=e.editColumn.editor.boundDataField),e.editColumn&&e.editColumn.editor.boundDateField&&(t.selectedValue=e.editColumn.editor.boundDateField)),a.length||s.parentElement.classList.add("smart-hidden"),n();break}case"deadlineDueDate":{const t=s.querySelector(".smart-input"),a=[];a.push({label:l.localize("dialogAddColumnTypeNone"),value:"none"});for(let e=0;e<l.columns.length;e++){const t=l.columns[e];t&&"dueDate"===t.template&&a.push({label:t.label,value:t.dataField,menuLabel:'<div class="smart-flex center"><span class="smart-grid-icon show smart-icon-scheduler"></span><span>'+t.label+"</span>"})}e.editColumn||a.push({value:"+",menuLabel:'<div class="smart-flex center"><span class="smart-grid-icon show smart-icon-scheduler"></span><span> + '+l.localize("dialogNewColumn")+"</span>",label:l.localize("dialogNewColumn")}),t.dataSource=a,e.editColumn&&(t.clearValue(),e.editColumn&&e.editColumn.editor.boundDataField&&(t.selectedValue=e.editColumn.editor.boundDataField),e.editColumn&&e.editColumn.editor.boundDateField&&(t.selectedValue=e.editColumn.editor.boundDateField)),a.length||s.parentElement.classList.add("smart-hidden"),n();break}case"formula":{const t=s.querySelector(".smart-input");t.clearValue(),e.editColumn&&e.editColumn.formula&&(t.value=e.editColumn.formula);break}case"AIQuery":{const t=s.querySelector(".smart-input");t.clearValue(),e.editColumn&&e.editColumn.AIQuery&&(l.columnByDataField[e.editColumn.AIQuery]?t.value=l.columnByDataField[e.editColumn.AIQuery].label:t.value=e.editColumn.AIQuery);break}case"sparklines":{const t=s.querySelector(".smart-input");t.clearValue(),e.editColumn&&e.editColumn.templateSettings?t.selectedValue=e.editColumn.templateSettings.type:t.selectedIndex=0;break}case"relationId":{const e=s.querySelector(".smart-input");e.dataSource=l._getRelations(),e.clearValue(),e.selectedValue=i?i.relationId:"";const t=s.querySelector(".field-input"),a=s.querySelector("smart-multi-input");if(t.dataSource=l._getRelationFieldsData(i?i.relationId:-1),t.clearValue(),a.clearValue(),i&&i.relationField){t.selectedValue=i.relationField,a.selectedValues=i.relationCascadingFields.split(",");const e=a.context;a.context=a,a.selectedValues=i.relationCascadingFields.split(","),a.context=e}break}case"allowResize":case"allowSort":case"allowEdit":case"allowFilter":case"required":{const e=s.querySelector(".smart-input"),a=t.find((e=>{if(e.bind===o)return e}));i?i[o]?(e.value=!0,e.setAttribute("checked","")):!1===i[o]&&(e.value=!1,e.removeAttribute("checked")):(e.value=!0,a&&void 0!==a.value&&(e.value=a.value),e.value&&e.setAttribute("checked",""));break}}if(!i||"options"!==o&&"users"!==o){const e=s.querySelector("smart-sortable");if(e&&e._init)if("users"===o){let t=[];for(let e=0;e<l.users.length;e++)t.push({color:l.users[e].color,label:l.users[e].name,id:l.users[e].id,value:l.users[e].id,image:l.users[e].image});e._init(t)}else e._init()}else{const e=s.querySelector("smart-sortable");if(e&&e._init)if(i.editor.singleSelect){const t=i.editor.dataSource.filter((e=>""!==e));e._init(t)}else if("multiComboInput"===i.editor.template)if("users"===o){let t=[];for(let e=0;e<l.users.length;e++)t.push({color:l.users[e].color,label:l.users[e].name,id:l.users[e].id,value:l.users[e].id,image:l.users[e].image});e._init(t)}else e._init(JSON.parse(JSON.stringify(i.editor.dataSource)))}if(i&&"type"===o?(d.dataSource=l._getTypesList(),"number"===i.dataType||"int"===i.dataType?d.dataSource.length>3&&(d.selectedIndex=3):"date"===i.dataType?d.dataSource.length>3&&(d.selectedIndex=7):"bool"!==i.dataType&&"boolean"!==i.dataType||d.dataSource.length>3&&(d.selectedIndex=6),i.editor&&i.editor.template&&d.dataSource.forEach(((e,t)=>{switch(e.value){case"string":"input"===i.editor.template&&(d.selectedIndex=t);break;case"number":"numberInput"===i.editor.template&&"progress"!==i.template&&"rating"!==i.template&&(d.selectedIndex=t);break;case"select":"multiComboInput"===i.editor.template&&i.editor.singleSelect&&"tags"===i.template&&!i.relationId&&(d.selectedIndex=t);break;case"multiSelect":"multiComboInput"!==i.editor.template||i.editor.singleSelect||"tags"!==i.template||i.relationId||(d.selectedIndex=t);break;case"multiText":"textarea"===i.editor.template&&(d.selectedIndex=t);break;case"date":"dateInput"!==i.editor.template&&"dateTimePicker"!==i.editor.template||(d.selectedIndex=t);break;case"duration":"dateRangeInput"===i.editor.template&&(d.selectedIndex=t);break;case"time":"timeInput"===i.editor.template&&(d.selectedIndex=t);break;case"checkBox":"checkBox"===i.editor.template&&(d.selectedIndex=t);break;case"slider":"slider"===i.editor.template&&(d.selectedIndex=t);break;case"image":"image"===i.editor.template&&(d.selectedIndex=t);break;case"attachment":"attachment"===i.editor.template&&(d.selectedIndex=t);break;case"updatedTime":"updatedTime"===i.template&&(d.selectedIndex=t);break;case"createdTime":"createdTime"===i.template&&(d.selectedIndex=t);break;case"createdBy":"createdBy"===i.template&&(d.selectedIndex=t);break;case"updatedBy":"updatedBy"===i.template&&(d.selectedIndex=t);break;case"collaborator":("collaborator"===i.template&&i.editor&&i.editor.collaborator||"tags"===i.template&&i.editor&&i.editor.collaborator)&&(d.selectedIndex=t);break;case"autoNumber":"autoNumber"===i.template&&(d.selectedIndex=t);break;case"phone":"phone"===i.template&&(d.selectedIndex=t);break;case"password":"password"===i.template&&(d.selectedIndex=t);break;case"url":"url"===i.template&&(d.selectedIndex=t);break;case"email":"email"===i.template&&(d.selectedIndex=t);break;case"dueDate":"dueDate"===i.template&&(d.selectedIndex=t);break;case"rating":"rating"===i.template&&(d.selectedIndex=t);break;case"progress":"progress"===i.template&&(d.selectedIndex=t);break;case"color":"color"===i.template&&(d.selectedIndex=t);break;case"formula":i.formula&&(d.selectedIndex=t);break;case"AIQuery":i.AIQuery&&(d.selectedIndex=t);break;case"sparklines":"sparklines"===i.template&&(d.selectedIndex=t);break;case"uuid":"uuid"===i.template&&(d.selectedIndex=t);break;case"relationId":i.relationId&&(d.selectedIndex=t)}}))):"type"===o&&(d.selectedIndex=0,d.dropDownOpenPosition="auto",d.dataSource=l._getTypesList()),"cellsAlign"===o&&i&&("center"===i.cellsAlign||"middle"===i.cellsAlign?d.selectedIndex=2:"right"===i.cellsAlign&&(d.selectedIndex=1)),!r)continue;if("dataField"!==o&&"type"!==o&&"deadline"!==o&&"timeFormat"!==o&&"dateFormat"!==o&&"deadlineStatus"!==o&&"deadlineDueDate"!==o&&"deadlineStartDate"!==o&&"relationId"!==o&&"AIQuery"!==o&&"sparklines"!==o&&"uuid"!==o&&"formula"!==o&&"numberFormat"!==o&&"currency"!==o&&"unit"!==o&&"cellsAlign"!==o&&d&&(d.selectedIndex=0),"name"===o){if(i){const e=i.label;d.value=l._unescapeString(e)}else d.value="";d.placeholder=t.find((e=>{if(e.bind===o)return e})).placeholder}"description"===o&&(d.value=i?l._unescapeString(i.description):"",d.placeholder=t.find((e=>{if(e.bind===o)return e})).placeholder);const c=(e,t)=>{i&&i.validationRules.forEach((a=>"minDate"===a.type&&"minDateTime"===e||"maxDate"===a.type&&"maxDateTime"===e||"min"===a.type&&"minValue"===e||"max"===a.type&&"maxValue"===e||a.type===e?(t.value=a.value,!0):void 0))};if("minValue"===o?(r.value=-9999999,c(o,r)):"maxValue"===o?(r.value=9999999,c(o,r)):"minLength"===o?(r.value=0,c(o,r)):"maxLength"===o&&(r.value=500,c(o,r)),"minDateTime"===o){const e=s.querySelector("smart-date-input");e.value=new Date(1900,0,1),c(o,e)}else if("maxDateTime"===o){const e=s.querySelector("smart-date-input");e.value=new Date(2100,0,1),c(o,e)}}}_createColumnBooleanEditor(e,t,a,l,i){e.setAttribute("template","checkBox"),e.setAttribute("editor","");const n=document.createElement("div");return n.classList.add("smart-input"),n.classList.add("smart-grid-cell-editor"),n.classList.add("smart-grid-check-box-cell-editor"),n.setAttribute("checked",""),n.value=!0,t.width&&(a.style.width=t.width,a.style.float="left"),!1===t.value&&(n.value=!1,n.removeAttribute("checked")),e.appendChild(n),e.getValue=function(){return n.value},e.check=function(){n.setAttribute("checked",""),n.value=!0,e.onchange&&e.onchange(n.value)},e.uncheck=function(){n.removeAttribute("checked"),n.value=!1,e.onchange&&e.onchange(n.value)},e.toggle=function(){!0!==n.value&&!1!==n.value&&null!==n.value&&(n.value=!1),null===n.value?n.value=!1:n.value=!n.value,!1===n.value?n.removeAttribute("checked"):n.setAttribute("checked",n.value?"":"indeterminate"),e.onchange&&e.onchange(n.value)},e.onclick=i.onclick=()=>{e.toggle()},e.setAttribute("tabindex",0),e.onkeydown=t=>{" "!==t.key&&"Enter"!==t.key||e.toggle()},l.appendChild(a),a.classList.add("smart-grid-dialog-boolean-field"),a.appendChild(e),a.appendChild(i),e}_getColumnTemplateByType(e,t){switch(e){case"boolean":case"bool":return"checkBox";case"image":return"image";case"rating":return"rating";case"attachment":return"attachment";case"createdBy":case"updatedBy":return e;case"collaborator":return"collaborator";case"relationId":return"dropdownGrid";case"select":case"multiSelect":return"tags";case"url":return"url";case"email":return"email";case"autoNumber":return"autoNumber";case"password":return"password";case"createdTime":return"createdTime";case"updatedTime":return"updatedTime";case"dueDate":return"dueDate";case"duration":return"duration";case"uuid":return"uuid";case"AIQuery":return"ai";case"sparklines":return"sparklines";case"multiText":return t.allowRichText?"richText":"";default:return""}}_getRelations(){const e=this;let t=[];t.push({label:"",menuLabel:"&nbsp;",value:""});for(let a=0;a<e.dataSourceSettings.relations.length;a++){const l=e.dataSourceSettings.relations[a];t.push({value:l.id,label:l.label})}return t}_getRelationFieldsData(e){const t=this;let a={};for(let e=0;e<t.dataSourceSettings.relations.length;e++){const l=t.dataSourceSettings.relations[e];a[l.id]=l}const l=a[e];return l?("string"==typeof l.columns?JSON.parse(l.columns):l.columns).filter((e=>!e.template||!e.relationField&&("tags"===e.template||"collaborator"===e.template||"dropdownlist"===e.template||"list"===e.template))).map((e=>({label:e.label,value:e.dataField,dataField:e.dataField,cellsFormat:e.cellsFormat||"",template:e.template||"",dataType:e.dataType||"string"}))):[]}_getRelationData(e){const t=this;if(t.dataSourceSettings.relations&&t.dataSourceSettings.relations.length){for(let a=0;a<t.dataSourceSettings.relations.length;a++){const l=t.dataSourceSettings.relations[a];if(l.id===e)return l.dataSource}return[]}}_confirmAddColumnDialog(e){const t=this,a=e.querySelectorAll(".smart-grid-dialog-editor"),l=[];let i,n,o={};e===t._dialogAddStackColumn&&(o.type="select");for(let e=0;e<a.length;e++){const l=a[e],i=l.querySelector(".smart-input"),n=l.getAttribute("bind"),s=l.parentElement;if("kanban"!==n)if("name"!==n&&"description"!==n)if("minLength"!==n&&"maxLength"!==n&&"minValue"!==n&&"maxValue"!==n&&"minDateTime"!==n&&"maxDateTime"!==n)if("options"!==n&&"users"!==n){if("relationId"===n)o.relationIdLabel=i.value,o.relationField=l.querySelector(".field-input").selectedValue,o.relationCascadingFields=l.querySelector("smart-multi-input").selectedValues.toString(),o.relationFieldLabel=l.querySelector(".field-input").value;else if("formula"===n){if("formula"!==o.type)continue;o.formula=i.value}else{if("AIQuery"===n){if("AIQuery"===o.type){o.AIQuery=i.value,i.getSelectedItem()&&(o.AIQuery=i.getSelectedItem().value,null===o.AIQuery&&(o.AIQuery=i.value)),o.template="ai";continue}continue}if("sparklines"===n){if("sparklines"===o.type){if(o.template="sparklines",i.getSelectedItem()){let e=i.getSelectedItem().value;null===e&&(e="column"),o.templateSettings={type:e}}continue}continue}if("allowEdit"===n&&s.classList.contains("smart-hidden"))i.value=!1;else if("required"===n&&s.classList.contains("smart-hidden"))i.value=!1;else if("dateFormatSeparator"===n){const e=l.querySelectorAll(".smart-grid-dialog-boolean-field");for(let t=0;t<e.length;t++)if(e[t].querySelector("[checked]")){switch(t){case 0:o.dateFormatSeparatorType="/";break;case 1:o.dateFormatSeparatorType="-";break;case 2:o.dateFormatSeparatorType="."}break}}}i&&(i.getSelectedItem?o[n]=i.getSelectedItem().value:o[n]=i.value)}else{const e=[],a=l.querySelectorAll(".smart-grid-add-column-dialog-color-item .edit-column-input"),i=l.querySelectorAll(".smart-grid-add-column-dialog-color-item smart-color-input");for(let t=0;t<a.length;t++){const l=a[t],n={label:l.value.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;").replace(/\\/g,""),value:l.getAttribute("data-item-value").replace(/\\/g,""),id:parseInt(l.getAttribute("data-id")),color:i[t].value};n.color=i[t].value,e.push(n)}if("users"===n&&"collaborator"===o.type){t.users||(t.users=[]);for(let a=0;a<e.length;a++){const l=e[a],i=t.users.find((e=>e.id===l.id));i&&(i.name=l.label,i.color=l.color)}}o[n]=e;const s=l.querySelector(".smart-default-item");o["default_"+n]=s.selectedValues?s.selectedValues[0]:null}else o[n]=i.getValue();else o[n]=i.value.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;");else{const e=l.querySelectorAll(".smart-grid-dialog-boolean-field");for(let t=0;t<e.length;t++){const a=e[t];if(a.querySelector("[checked]")){o.kanban=a.name;break}}}}e.data=o;let s={},r={},d="";if(i=o.minDateTime,n=o.maxDateTime,"date"===o.type||"dueDate"===o.type||"startDate"===o.type){s={template:"dateInput",min:i,max:n};let e=!1;o.deadlineStatus&&(s.boundDataField=o.deadlineStatus),"-"!==o.dateFormat&&(d=o.dateFormat,o.allowCustomDateSeparator&&(d.indexOf("/")>=0?d=d.replaceAll("/",o.dateFormatSeparatorType):d.indexOf("-")>=0?d=d.replaceAll("-",o.dateFormatSeparatorType):d.indexOf(".")>=0&&(d=d.replaceAll(".",o.dateFormatSeparatorType))),o.dateFormat.indexOf("T")>=0&&(s.template="dateTimePicker",s.dropDownDisplayMode="auto",s.formatString=d),e=!0),s.autoOpen=!0,o.allowTimeFormat&&"-"!==o.timeFormat&&(e&&(d+=" "),d+=o.timeFormat,s.template="dateTimePicker",s.dropDownDisplayMode="auto",s.formatString=d),o.cellsFormat=d,l.push({type:"minDate",value:i}),l.push({type:"maxDate",value:n})}else if("time"===o.type)s={template:"timeInput",hour12:!0},o.timeFormat.indexOf("HH")>=0&&(s.hour12=!1),s.autoOpen=!0,d=o.timeFormat,o.cellsFormat=d;else if("duration"===o.type)s={template:"dateRangeInput"},d="MM/dd/yyyy hh:mm",o.cellsFormat=d;else if("number"===o.type||"slider"===o.type){i=parseInt(o.minValue),n=parseInt(o.maxValue),o.numberFormat=JSON.parse(JSON.stringify(o.numberFormat)),"unit"===o.numberFormat.style&&(o.numberFormat.unit=o.unit);let e=null,a=null;"currency"===o.numberFormat.style&&(o.numberFormat.currency=o.currency,o.numberFormat.locale=t._getLocaleByCurrency(o.currency)),"decimal"!==o.numberFormat.style||o.numberFormat.notation||(o.numberFormat.useGrouping=o.allowThousandsSeparator),"squaremeter"===o.numberFormat.unit&&(o.numberFormat={type:"squaremeter",style:"decimal",maximumFractionDigits:0}),"cubicmeter"===o.numberFormat.unit&&(o.numberFormat={type:"cubicmeter",style:"decimal",maximumFractionDigits:0}),s={template:"number"===o.type?"numberInput":"slider",min:i,max:n,numberFormat:o.numberFormat},r={Intl:{NumberFormat:o.numberFormat}},a&&(r=a),d="d",e&&(d=e),l.push({type:"min",value:i}),l.push({type:"max",value:n})}else if("rating"===o.type)s={template:"rating"};else if("boolean"===o.type)s={template:"checkBox"};else if("image"===o.type)s={template:"image"};else if("attachment"===o.type)s={template:"attachment"};else if("relationId"===o.type){let e=t._getRelationData(o.relationId);o.templateSettings={dataFields:[o.relationField]},s={template:"grid",relationId:o.relationId,relationField:o.relationField,relationCascadingFields:o.relationCascadingFields,dataSource:e,columns:t._getRelationFieldsData(o.relationId)}}else if("select"===o.type||"multiSelect"===o.type||"tags"===o.type){let a=o.options,l=!1;if("select"===o.type)if(e.editColumn&&!e.editColumn.editor.allowEmptyItem){a=o.options;const i=[];for(let e=0;e<o.options.length;e++)if(""===o.options[e].label)o.options[e].value="";else if(""===o.options[e].value){const t=o.options[e].label.trim();if(i[t])continue;o.options[e].value=t,i.push(t)}else if(!isNaN(parseInt(o.options[e].value))){const t=o.options[e].label.trim();if(i[t])continue;o.options[e].value=t,i.push(t)}if(e.editColumn._dataField&&"taskStatus"===e.editColumn._dataField||e===t._dialogAddStackColumn)for(let e=0;e<o.options.length;e++){const t=o.options[e];isNaN(parseInt(t.value))||(t.value=t.label.replaceAll(" ",""))}a=o.options;let n=!1;for(let e=0;e<o.options.length;e++)if(""===o.options[e].label){n=!0,l=!0,o.options[e].value="";break}a=!n&&o.options.length?[{color:"#F47A54",value:"",label:""}].concat(o.options):o.options}else{const e=[];let t=!1;for(let a=0;a<o.options.length;a++)if(""===o.options[a].label)t=!0,l=!0,o.options[a].value="";else if(""===o.options[a].value){const t=o.options[a].label.trim();if(e[t])continue;o.options[a].value=t,e.push(t)}else if(!isNaN(parseInt(o.options[a].value))){const t=o.options[a].label.trim();if(e[t])continue;o.options[a].value=t,e.push(t)}a=!t&&o.options.length?[{color:"#F4511E",value:"",label:""}].concat(o.options):o.options}else if("multiSelect"===o.type){const e=[];for(let t=0;t<o.options.length;t++)if(""===o.options[t].label)o.options[t].value="";else if(""===o.options[t].value){const a=o.options[t].label.trim();if(e[a])continue;o.options[t].value=a,e.push(a)}else if(!isNaN(parseInt(o.options[t].value))){const a=o.options[t].label.trim();if(e[a])continue;o.options[t].value=a,e.push(a)}a=o.options}a.length&&""===a[0]&&!l&&o.required&&(a=a.splice(1)),s={template:"multiComboInput",readonly:!0,dropDownButtonPosition:"right",colorItems:o.allowColorItems,autoOpen:!0,pills:!0,singleSelect:"select"===o.type,dataSource:a}}else if("collaborator"===o.type){let e=o.users;o.allowMultipleCollaborators||e&&e.length&&""!==e[0].value&&(e=[{label:"",value:"",color:"#F47A54"}].concat(o.users));for(let a=0;a<t.users.length;a++)e.forEach((e=>{e.value!==t.users[a].id&&e.value!==""+t.users[a].id||(e.image=t.users[a].image,e.id=t.users[a].id)}));s={template:"multiComboInput",readonly:!0,collaborator:!0,colorItems:o.allowColorItems,dropDownButtonPosition:"right",autoOpen:!0,pills:!0,singleSelect:!o.allowMultipleCollaborators,dataSource:e}}else"multiText"===o.type||"AIQuery"===o.type?(i=o.minLength,n=o.maxLength,s={template:"textarea",min:i,max:n,required:o.required},l.push({type:"minLength",value:i}),l.push({type:"maxLength",value:n})):"password"===o.type?(i=o.minLength,n=o.maxLength,s={template:"password",min:i,max:n,required:o.required},l.push({type:"minLength",value:i}),l.push({type:"maxLength",value:n})):"phone"===o.type?s={template:"phone",required:o.required}:(i=o.minLength,n=o.maxLength,s={template:"input",min:i,max:n,required:o.required},l.push({type:"minLength",value:i}),l.push({type:"maxLength",value:n}));let c="string";switch(o.type){case"boolean":case"bool":c="boolean";break;case"createdTime":case"updatedTime":case"duration":case"date":case"time":c="date";break;case"autoNumber":case"slider":case"rating":case"number":c="number"}const u=e=>{if(o.setDefaultValue)switch(o.type){case"string":case"multiText":case"description":case"name":e.defaultValue=o.defaultString;break;case"number":case"slider":e.defaultValue=o.defaultNumber;break;case"date":case"dueDate":case"startDate":e.defaultValue="current"===o.defaultDate?"today":o.defaultDateValue;break;case"collaborator":void 0!==o.default_users?e.defaultValue=o.default_users:e.defaultValue=null;break;case"select":case"multiSelect":case"status":case"priority":o.default_options?e.defaultValue=o.default_options:e.defaultValue=null}else e.defaultValue=null};if(e.editColumn){const a=e.editColumn;a.canNotify=!1,a.label=o.name,void 0!==o.description&&(a.description=o.description),a.showDescriptionButton=!0,void 0!==o.allowResize&&(a.allowResize=o.allowResize),void 0!==o.allowSort&&(a.allowSort=o.allowSort),void 0!==o.allowFilter&&(a.allowFilter=o.allowFilter),void 0!==o.allowEdit&&(a.allowEdit=o.allowEdit),void 0!==o.cellsAlign&&(a.align=a.cellsAlign=o.cellsAlign),void 0!==o.cellsFormat&&(a.cellsFormat=d),void 0!==o.formula?a.formula=o.formula:a.formula="",void 0!==o.AIQuery?a.AIQuery=o.AIQuery:a.AIQuery="";const i=a._editorId?a._editorId:"",n=s.template+"_"+a.dataField+i;t._cellEditors[n]&&delete t._cellEditors[n];let m=!0;if("list"!==a.template&&"dropDownList"!==a.template||(m=!1),"autoNumber"!==a.template&&"uuid"!==a.template&&"createdBy"!==a.template&&"updatedBy"!==a.template&&"createdTime"!==a.template&&"progress"!==a.template&&"updatedTime"!==a.template&&"checklist"!==a.template&&"color"!==a.template||(m=!1),a.editor&&a.editor.template.indexOf("custom")>=0&&(m=!1),a.editor&&a.editor.disabledDialogOptions&&(m=!1),u(a),"date"===o.type&&a.editor&&a.editor.boundDateField){const e=t.columnByDataField[a.editor.boundDateField];e&&e.editor.boundDateField&&(e.editor.boundDateField="none")}if(m&&(a.editor=JSON.parse(JSON.stringify(s)),a.template=t._getColumnTemplateByType(o.type,o),a._cellsCachedValues=[]),"date"===o.type)if("dueDate"===o.deadline){const e=t._getKanbanTaskField("dueDate").editor;a.editor.onValidate=e.onValidate,o.deadlineStatus&&(a.editor.boundDataField=o.deadlineStatus),o.deadlineStartDate&&(a.editor.boundDateField=o.deadlineStartDate,t.columnByDataField[a.editor.boundDateField]&&(t.columnByDataField[a.editor.boundDateField].editor.boundDateField=a.dataField)),a.template="dueDate"}else if("startDate"===o.deadline){const e=t._getKanbanTaskField("startDate").editor;a.editor.onValidate=e.onValidate,o.deadlineDueDate&&(a.editor.boundDataField="",a.editor.boundDateField=o.deadlineDueDate,t.columnByDataField[a.editor.boundDateField]&&(t.columnByDataField[a.editor.boundDateField].editor.boundDateField=a.dataField)),a.template="startDate"}else a.template="",s.template="dateInput",s.onValidate=null;if("relationId"===o.type){a.relationId=o.relationId;const e=a.relationField!==o.relationId||a.relationCascadingFields!==o.relationCascadingFields;a.relationField=o.relationField,a.relationCascadingFields=o.relationCascadingFields,a.templateSettings=o.templateSettings,e&&t._createCascadingColumns(a,o)}"sparklines"===o.template&&(a.templateSettings=o.templateSettings),a.formatSettings=r,o.type!==e.columnType&&e.columnType&&(a.dataType=c),a.icon=t._getIconByType(o.type),a._isDirty=!0,o.required&&l.push({type:"required"}),a.validationRules=l,a._state&&["label","description","defaultValue","showDescriptionButton","dataSet","dataType","editor","formatSettings","template","summary","validationRules","allowResize","allowSort","allowFilter","allowEdit","align","cellsAlign","cellsFormat"].forEach((e=>{a._state[e]=a[e]})),a.canNotify=!0,t.$.fireEvent("closeColumnDialog",{dataField:a.dataField}),t.onColumnUpdated&&t.onColumnUpdated(t.columns.indexOf(a),a),t._onColumnUpdated&&t._onColumnUpdated(a,o),t._recycle(!0),a.refresh(),a._isDirty=!1}else{let e=[];"number"===c&&(e=["sum"]);const a=t._getColumnLabel(o),i=new Smart.Grid.Column({label:a,description:o.description,dataField:o.dataField||"dataField"+Math.floor(65536*(1+Math.random())).toString(16).substring(1),allowResize:o.allowResize,allowSort:o.allowSort,allowFilter:o.allowFilter,allowEdit:o.allowEdit,showDescriptionButton:!0,dataType:c,editor:s,summary:e,template:t._getColumnTemplateByType(o.type,o),templateSettings:o.templateSettings,formatSettings:r,cellsAlign:o.cellsAlign,align:o.cellsAlign,cellsFormat:d,visibleIndex:t.columns.length-1,formula:o.formula,AIQuery:o.AIQuery,relationId:o.relationId,relationField:o.relationField,relationCascadingFields:o.relationCascadingFields,grid:t});if("autoNumber"===i.template&&(i.autoGenerated=!0,e=[]),u(i),o.required&&(l.push({type:"required"}),i.validationRules=l),"date"===o.type&&("dueDate"===o.deadline?o.type="dueDate":"startDate"===o.deadline&&(o.type="startDate")),"collaborator"===o.type){let e=!1;for(let a=0;a<t.columns.length;a++)if("taskUserId"===t.columns[a]._dataField){e=!0;break}e||(i._dataField="taskUserId")}if(t._getKanbanFields().indexOf(o.type)>=0){const e=t._getKanbanTaskField(o.type);switch(u(e),"startDate"===o.type&&o.deadlineDueDate&&(e.editor.boundDateField=o.deadlineDueDate),"dueDate"===o.type&&o.deadlineStatus&&(e.editor.boundDataField=o.deadlineStatus,e.editor.boundDateField=o.deadlineStartDate),delete e._state,o.description&&(e.description=o.description),o.name&&(e.label=o.name),e.allowFilter=o.allowFilter,e.allowResize=o.allowResize,e.allowSort=o.allowSort,o.type){case"priority":case"status":case"tags":e.editor.dataSource=JSON.parse(JSON.stringify(o.options))}let a=t.columnByDataField[e.dataField];if("status"===o.type||"name"===o.type||"description"===o.type)for(let e=0;e<t.columns.length;e++){const l=t.columns[e];if(l._dataField&&!t.columnByDataField[l._dataField]&&(t.columnByDataField[l._dataField]=l),l.statusColumn||"taskStatus"===l._dataField){a=l;break}}a&&!1===a._visible?(a.visible=!0,delete a._visible):(a&&(e.dataField=e.displayField="dataField"+Math.floor(65536*(1+Math.random())).toString(16).substring(1),"object"==typeof e.editor&&e.editor.dataSource&&(e.editor.dataSource=JSON.parse(JSON.stringify(e.editor.dataSource))),o.name||(e.label=e.label+" "+t.localize("copy"))),t.columns.push(e))}else t.columns.push(i);if("dueDate"===o.deadline)if("+"===o.deadlineStartDate){const e=t._getKanbanTaskField("startDate");e.dataField=e.displayField="dataField"+Math.floor(65536*(1+Math.random())).toString(16).substring(1),e.editor.boundDateField=t.columns[t.columns.length-1].dataField,e.editor.boundDataField="",t.columns[t.columns.length-1].editor.boundDateField=e.dataField,t.columns.push(e)}else t.columns[t.columns.length-1].editor.boundDateField=o.deadlineStartDate;if("startDate"===o.deadline)if("+"===o.deadlineDueDate){const e=t._getKanbanTaskField("dueDate");e.dataField=e.displayField="dataField"+Math.floor(65536*(1+Math.random())).toString(16).substring(1),e.editor.boundDateField=t.columns[t.columns.length-1].dataField,t.columns[t.columns.length-1].editor.boundDateField=e.dataField,t.columns[t.columns.length-1].editor.boundDataField="",t.columns.push(e)}else t.columns[t.columns.length-1].editor.boundDateField=o.deadlineDueDate;void 0!==o.relationId&&o.relationCascadingFields&&t._createCascadingColumns(i,o),t._refreshHeaderBar(),t.$.fireEvent("closeColumnDialog",{dataField:i.dataField})}}_createCascadingColumns(e,t){const a=this,l=t.relationCascadingFields.split(","),i=a._getRelationFieldsData(t.relationId);e._computedFields&&(e._computedFields.forEach((e=>{a.removeColumn(e)})),e._computedFields=[]);for(let n=0;n<l.length;n++){const o=l[n];if(!o)continue;const s=i.find((e=>e.value===o)),r=s?s.label+" ("+t.relationIdLabel+")":"",d=e.editor.dataSource;let c="string",u="",m="",p="left";for(let e=0;e<d.length;e++){const t=""+d[e][o];if(t){if("false"===t||"true"===t){c="boolean",u="checkBox",p="center";break}if(!isNaN(parseInt(t)&&-1===t.indexOf("/")&&-1===t.indexOf("-"))){c="number",m="d",p="right";break}if((t.indexOf("-")>=0||t.indexOf("/")>=0||t.indexOf(":")>=0)&&"Invalid Date"!==new Date(t).toString()){c="date",m="d",p="right";break}if("string"==typeof t){if(t.indexOf("@")>=0){u="email";break}if(t.indexOf("http")>=0){u="url";break}if(t.indexOf("[{")>=0||t.indexOf("./")>=0){u="attachments",(t.indexOf(".png")>=0||t.indexOf(".jpg")>=0||t.indexOf(".jpeg")>=0||t.indexOf(".gif")>=0)&&(u="images");break}}}}s.cellsFormat&&(m=s.cellsFormat),s.template&&(u=s.template),s.dataType&&"string"!==s.dataType&&(c=s.dataType);const g=new Smart.Grid.Column({label:r,dataField:"dataField"+Math.floor(65536*(1+Math.random())).toString(16).substring(1),allowResize:t.allowResize,allowSort:!1,allowFilter:!1,allowEdit:!1,showDescriptionButton:!1,dataType:c,template:u,cellsFormat:m,cellsAlign:p,align:p,_cascadingDataField:o,_parentDataField:e.dataField,grid:a});e._computedFields||(e._computedFields=[]),e._computedFields.push(g.dataField),a.columns.push(g)}}_getColumnLabel(e){const t=this;let a=e.name;if(!a){let a="";switch(e.type){case"string":a=t.localize("dialogAddColumnTypeText");break;case"multiText":a=t.localize("dialogAddColumnTypeMultilineText");break;case"image":a=t.localize("dialogAddColumnTypeImage");break;case"attachment":a=t.localize("dialogAddColumnTypeAttachment");break;case"number":a=t.localize("dialogAddColumnTypeNumber");break;case"select":a=t.localize("dialogAddColumnTypeSelect");break;case"multiSelect":a=t.localize("dialogAddColumnTypeMultipleSelect");break;case"boolean":a=t.localize("dialogAddColumnTypeCheckBox");break;case"date":a=t.localize("dialogAddColumnTypeDate");break;case"time":a=t.localize("dialogAddColumnTypeTime");break;case"duration":a=t.localize("dialogAddColumnTypeDuration");break;case"createdTime":a=t.localize("dialogAddColumnTypeCreatedTime");break;case"updatedTime":a=t.localize("dialogAddColumnTypeLastUpdatedTime");break;case"createdBy":a=t.localize("dialogAddColumnTypeCreatedBy");break;case"updatedBy":a=t.localize("dialogAddColumnTypeLastUpdatedBy");break;case"collaborator":a=t.localize("dialogAddColumnTypeCollaborator");break;case"slider":a=t.localize("dialogAddColumnTypeSlider");break;case"autoNumber":a=t.localize("dialogAddColumnTypeAutoNumber");break;case"url":a=t.localize("dialogAddColumnTypeURL");break;case"relationId":a=t.localize("dialogAddColumnTypeRowLink"),e.relationFieldLabel&&e.relationIdLabel&&(a=e.relationFieldLabel+" ("+e.relationIdLabel+")");break;case"formula":a=t.localize("dialogAddColumnTypeFormula");break;case"email":a=t.localize("dialogAddColumnTypeEmail");break;case"phone":a=t.localize("dialogAddColumnTypePhone");break;case"password":a=t.localize("dialogAddColumnTypePassword");break;case"rating":a=t.localize("dialogAddColumnTypeRating");break;case"uuid":a=t.localize("dialogAddColumnTypeUUID");break;case"AIQuery":a=t.localize("dialogAddColumnTypeAIQuery");break;case"sparklines":a=t.localize("dialogAddColumnTypeSparklines")}let l=1;for(let e=0;e<t.columns.length;e++)t.columns[e].label.indexOf(a)>=0&&l++;return 1===l?a:a+" "+l}return a}_openAddColumnDialog(e,t,a){const l=this,i=l._dialogAddColumn||l._createDialog(l.editing.addColumnDialog),n=e?l.localize("dialogEditColumn",{value:e.label}):l.localize("dialogAddColumn"),o=i.querySelector(".smart-footer").querySelector(".smart-stack-layout");i.classList.add("smart-grid-dialog-add-column"),i.type=e?"customize":"add",i.editColumn=e||null,delete i._randomOptionIndex,e&&e.element?e.element.setAttribute("focus",""):l._addNewColumn&&l._addNewColumn.element.setAttribute("focus",""),o.classList.remove("right"),o.classList.add("center"),l._cellEditors||(l._cellEditors=[]);const s=l._getAddColumnDialogTemplate();if(i.header.innerHTML=n,i.header.parentElement.classList.add("smart-hidden"),i.callback=a,!0===t&&(i.header.parentElement.classList.remove("smart-hidden"),"kanban"===l.view?(i.header.innerHTML=l.localize("dialogAddColumnStatus"),i.header.parentElement.querySelector(".smart-close-button").classList.add("smart-hidden"),i.classList.add("view")):i.classList.remove("kanban")),i.stackLabel&&i.stackLabel.classList.add("smart-hidden"),"kanban"===l.view?i.btnCancel.classList.add("smart-hidden"):i.btnCancel.classList.remove("smart-hidden"),l.cancelEdit(),!l._dialogAddColumn){i.modal=!0,i.btnConfirm.innerHTML=l.localize("dialogEditButtonConfirm"),i.btnCancel.innerHTML=l.localize("dialogEditButtonCancel"),i._refreshPosition=()=>{const e=l.offset(l.$.columnHeader),t=l.$.columnHeader.offsetHeight,a=l.offset(l);if(i.style.maxHeight="",i.style.minHeight="",e.top+t+i.offsetHeight>window.innerHeight-a.top){const l=t+e.top+i.offsetHeight-window.innerHeight+a.top;i.style.maxHeight=Math.max(250,i.offsetHeight-l)+"px",i.style.minHeight="250px"}else i.style.maxHeight="",i.style.minHeight=""},i.onOpen=function(){const e=l._dialogAddColumn,t=l._getAddColumnDialogTemplate(),a=l._addColumnDialogEditors;if(delete e.columnType,l._addColumnDialogInitEditors(e,t,a),l._addColumnDialogShowHideEditors(e),e.editColumn){const t=e.querySelector('[bind="type"]'),a=t?t.querySelector("smart-input"):null,l=t?a.getSelectedItem().value:"kanban";e.columnType=l}else delete e.columnType;l._filterColumnTypes(),l.$.fireEvent("openColumnDialog",{dataField:e.editColumn?e.editColumn.dataField:null}),e._refreshPosition()},i.onClose=function(){i.editColumn&&i.editColumn.element&&i.editColumn.element.removeAttribute("focus"),l._addNewColumn&&l._addNewColumn.element.removeAttribute("focus"),i.classList.remove("view"),i.callback&&i.callback(i.result)},i.btnCancel.onclick=function(){i.result=!1,i.close()},i.btnClose.onclick=function(){i.result=!1,i.close()},i.btnConfirm.onclick=function(){l._confirmAddColumnDialog(i),i.result=!0,i.close()},i.onkeydown=function(e){"Escape"===e.key&&"kanban"!==l.view&&(i.result=!1,i.close())},l._dialogAddColumn=i;const e=document.createElement("div");e.classList.add("smart-content-layout-container"),i.content.appendChild(e),l._addColumnDialogEditors=[];const t=l._addColumnDialogEditors;l._initAddColumnDialogEditors(t,s,i,e)}const r=()=>{const t=parseInt(i.style.width),a=l.offset(l);if(window.screen.availWidth<400)return i.open("left","top"),i.style.width=l.offsetWidth+"px",void(i.style.height=l.offsetHeight+"px");{const e=l.editing.addColumnDialog;i.style.width="auto"===e.width?e.width:e.width+"px",i.style.height="auto"===e.height?e.height:e.height+"px"}if(e){const n=e.element;if(n){const e=l.offset(n),o=e.left-a.left,s=a.left,r=Math.max(s,o);if(r+t+n.offsetWidth>a.left+l.offsetWidth){const l=r-t+n.offsetWidth;l<0?i.open("center",e.top+n.offsetHeight-a.top):i.open(Math.max(s,l),e.top+n.offsetHeight-a.top)}else i.open(r,e.top+n.offsetHeight-a.top)}else i.classList.add("center"),i.open("center","center")}else if(l._addNewColumn){let e=l._addNewColumn.element,n=l.offset(e),o=n.left-a.left-t+e.offsetWidth,s=a.left,r=Math.max(s,o);l.editing.addNewColumn._addButton&&l.editing.addNewColumn._addButton.classList.contains("show")&&(e=l.editing.addNewColumn._addButton,n=l.offset(l.editing.addNewColumn._addButton),o=n.left-a.left-t+e.offsetWidth,s=a.left,r=Math.max(s,o)),i.open(r,n.top+e.offsetHeight-a.top)}else i.open("center","center"),i.classList.add("center")};r(),i.refresh=()=>{r()}}_filterColumnTypes(){const e=this,t=e._dialogAddColumn;if(!t)return;const a=e._dialogAddColumn.querySelector('[bind="type"]').querySelector("smart-input");if(t.columnType){const l=e._getTypesList().find((e=>{if(e.value===t.columnType)return e}));if(l)if("string"===t.columnType||"multiText"===t.columnType)a.dataSource=e._getTypesList().filter((e=>!(["createdTime","updatedTime","createdBy","updatedBy","autoNumber","uuid","image","color","checklist","progress","collaborator","attachment"].indexOf(e.value)>=0)));else if("select"===t.columnType||"multiSelect"===t.columnType){const t=[{value:"string",prefix:'<span class="smart-grid-icon visible smart-icon-font"></span>',label:e.localize("dialogAddColumnTypeText")},{value:"multiText",prefix:'<span class="smart-grid-icon visible smart-icon-fontsize"></span>',label:e.localize("dialogAddColumnTypeMultilineText")},{value:"select",prefix:'<span class="smart-grid-icon visible smart-icon-sort-down"></span>',label:e.localize("dialogAddColumnTypeSelect")},{value:"multiSelect",prefix:'<span class="smart-grid-icon visible smart-icon-list-unordered"></span>',label:e.localize("dialogAddColumnTypeMultipleSelect")}];a.dataSource=t}else{const t=[{value:"string",prefix:'<span class="smart-grid-icon visible smart-icon-font"></span>',label:e.localize("dialogAddColumnTypeText")},{value:"multiText",prefix:'<span class="smart-grid-icon visible smart-icon-fontsize"></span>',label:e.localize("dialogAddColumnTypeMultilineText")}].concat(l);a.dataSource=t}else a.dataSource=e._getTypesList()}else t.editColumn||(a.dataSource=e._getTypesList(),a.selectedIndex=0)}_getIconByType(e){let t="smart-icon-font";switch(e){case"multiText":t="smart-icon-fontsize";break;case"image":t="smart-icon-image";break;case"attachment":t="smart-icon-docs";break;case"number":case"progress":t="smart-icon-number";break;case"priority":case"status":case"select":t="smart-icon-sort-down";break;case"multiSelect":t="smart-icon-list-unordered";break;case"boolean":t="smart-icon-check-squared";break;case"date":case"startDate":case"duration":case"dueDate":t="smart-icon-calendar";break;case"time":case"createdTime":case"updatedTime":t="smart-icon-clock";break;case"createdBy":case"updatedBy":case"collaborator":t="smart-icon-user";break;case"slider":t="smart-icon-number";break;case"autoNumber":case"checklist":t="smart-icon-list-ordered";break;case"url":t="smart-icon-link";break;case"email":t="smart-icon-mail";break;case"password":t="smart-icon-lock";break;case"phone":t="smart-icon-phone";break;case"name":t="smart-icon-font";break;case"description":t="smart-icon-fontsize";break;case"tags":t="smart-icon-list-ordered";break;case"color":t="smart-icon-color-background";break;case"assigned":t="smart-icon-user";break;case"rating":t="smart-icon-star";break;case"relationId":t="smart-icon-table-alt";break;case"formula":t="smart-icon-math";break;case"uuid":t="smart-icon-number";break;case"AIQuery":t="smart-icon-ai";break;case"sparklines":t="smart-icon-chart"}return t}_initAddColumnDialogEditors(e,t,a,l){const i=this;for(let n=0;n<t.length;n++){const o=t[n],s=document.createElement("div"),r=document.createElement("label");r.innerHTML=o.label;const d=document.createElement("div");if(d.classList.add("smart-grid-dialog-editor","add-column"),d.innerHTML="",d.setAttribute("filter",o.filter),d.setAttribute("bind",o.bind),s.setAttribute("field-name",o.bind),s.setAttribute("field-filter",o.filter),e[o.bind]=d,"type"===o.bind&&d.addEventListener("change",(()=>{i._addColumnDialogShowHideEditors(a),a.editColumn&&i._filterColumnTypes();const t=i._dialogAddColumn.querySelector('[bind="type"]'),l=t.querySelector("smart-input"),n=l.getSelectedItem().value,o=i._getIconByType(n);if(e.type.icon=o,e.name.querySelector("input").setAttribute("data-label",l.value),t.firstElementChild.className="smart-grid-icon show smart-description-button "+o,"select"===n||"multiSelect"===n){const t=e.options.querySelector("smart-sortable");if(t&&t._validate){if(a.editColumn)if(a.editColumn.editor.dataSource){let e=[...a.editColumn.editor.dataSource];"multiSelect"===n&&""===e[0].value&&e.shift(),t._init(e)}else{const e=[];for(let t=0;t<i.rows.length;t++){const l=i.rows[t].data[a.editColumn.dataField];if(l&&l.indexOf(",")>=0){const t=l.split(",");for(let a=0;a<t.length;a++)-1===e.indexOf(t[a].trim())&&e.push(t[a].trim())}else if(-1===e.indexOf(l)&&void 0!==l){if(""===l&&"multiSelect"===n)continue;e.push(l)}}e.length?t._init(e.map((e=>({value:e,label:e})))):t._init()}else t._init();t._validate()}}else if("priority"===n||"status"===n||"tags"===n){const t=e.options.querySelector("smart-sortable"),a=i._getKanbanTaskField(n);t&&t._validate&&(t._init([...a.editor.dataSource]),t._validate())}else a.btnConfirm.disabled=!1})),"boolean"===o.type)i._createColumnBooleanEditor(d,o,s,l,r);else{if("label"===o.type){l.appendChild(s),s.classList.add("smart-grid-dialog-field"),s.appendChild(r);const e=document.createElement("div");e.style.height="10px",s.appendChild(e);continue}if("relationId"===o.type){let e=document.createElement("smart-input");e.classList.add("underlined","edit-column-input"),e.style.width="calc(100% - 25px)",e.style.height="30px",o.width&&(s.style.width=o.width,s.style.float="left"),e.readonly=!0,e.dropDownButtonPosition="right",e.dropDownHeight="auto";let a=i._getRelations(),c={};for(let e=0;e<i.dataSourceSettings.relations.length;e++){const t=i.dataSourceSettings.relations[e];c[t.id]=t}let u=document.createElement("smart-input");u.classList.add("underlined","smart-hidden","edit-column-input","field-input"),u.style.width="calc(100% - 25px)",u.style.height="30px",u.readonly=!0,u.dropDownButtonPosition="right",u.dropDownHeight="auto";const m=document.createElement("div"),p=document.createElement("div");p.style.marginTop="5px",p.innerHTML=i.localize("dialogAddColumnLinkField"),p.classList.add("smart-hidden");const g=document.createElement("div");let b=document.createElement("smart-multi-input");if(b.classList.add("underlined","smart-hidden","edit-column-input","field-input"),b.style.width="calc(100% - 25px)",b.style.height="30px",b.readonly=!0,b.dropDownButtonPosition="right",b.dropDownHeight="auto",g.style.marginTop="5px",g.innerHTML=i.localize("dialogAddColumnLinkFieldMore"),g.classList.add("smart-hidden"),e.dataSource=a,e.onchange=()=>{if(u.dataSource=null,u.clearValue(),""===e.value)u.classList.add("smart-hidden"),p.classList.add("smart-hidden"),g.classList.add("smart-hidden");else{p.classList.remove("smart-hidden"),u.classList.remove("smart-hidden"),g.classList.remove("smart-hidden"),b.classList.remove("smart-hidden");const t=c[e.selectedValue];if(t){u.dataSource=i._getRelationFieldsData(t.id);const e=e=>e.value!==u.selectedValue;u.onchange=()=>{b.selectedValues=[],b.dataSource=[...u.dataSource].filter((t=>e(t)))},b.dataSource=[...u.dataSource].filter((t=>e(t))),b.selectedValues=[],u.dataSource.length>0&&(u.selectedValue=u.dataSource[0].value)}}},o.width&&(s.style.width=o.width,s.style.float="left"),d.style.height="auto",m.classList.add("smart-flex"),m.style.width="100%",m.style.flexDirection="column",m.appendChild(e),m.appendChild(p),m.appendChild(u),m.appendChild(g),m.appendChild(b),d.appendChild(m),l.appendChild(s),s.classList.add("smart-grid-dialog-field"),s.appendChild(r),s.appendChild(d),o.width&&!t[n+1].width){const e=document.createElement("div");e.style.clear="both",l.appendChild(e)}}else if("formula"===o.type){let e=document.createElement("smart-input");e.classList.add("underlined","edit-column-input"),e.style.width="100%",o.width&&(s.style.width=o.width,s.style.float="left"),d.appendChild(e),l.appendChild(s),s.classList.add("smart-grid-dialog-field"),s.appendChild(r),s.appendChild(d);const a=document.createElement("div");if(a.innerHTML=i.localize("dialogAddColumnTypeFormulaInfo"),a.style.color="var(--smart-primary)",a.style.fontSize="12px",a.style.marginBottom="10px",s.appendChild(a),o.width&&!t[n+1].width){const e=document.createElement("div");e.style.clear="both",l.appendChild(e)}}else if("sparklines"===o.type){let e=document.createElement("smart-input");if(e.classList.add("edit-column-input"),e.style.width="100%",e.dropDownButtonPosition="right",e.readonly=!0,o.width&&(s.style.width=o.width,s.style.float="left"),d.appendChild(e),e.dataSource=[{label:i.localize("columnChart"),value:"column"},{label:i.localize("barChart"),value:"bar"},{label:i.localize("lineChart"),value:"line"},{label:i.localize("pieChart"),value:"pie"},{label:i.localize("stackedChart"),value:"stacked"}],e.selectedIndex=0,l.appendChild(s),s.classList.add("smart-grid-dialog-field"),s.appendChild(r),s.appendChild(d),o.width&&!t[n+1].width){const e=document.createElement("div");e.style.clear="both",l.appendChild(e)}}else if("AIQuery"===o.type){let e=document.createElement("smart-input");e.classList.add("underlined","edit-column-input"),e.style.width="100%",e.dropDownButtonPosition="right",o.width&&(s.style.width=o.width,s.style.float="left"),d.appendChild(e);const a=i.columns.filter((e=>"tags"!==e.template&&"collaborator"!==e.template&&"dropdownlist"!==e.template&&"list"!==e.template&&"string"===e.dataType)).map((e=>({label:e.label,value:e.dataField})));e.dataSource=a,l.appendChild(s),s.classList.add("smart-grid-dialog-field"),s.appendChild(r),s.appendChild(d);const c=document.createElement("div");if(c.innerHTML=i.localize("dialogAddColumnTypeAIQueryInfo"),c.style.color="var(--smart-primary)",c.style.fontSize="12px",c.style.marginBottom="10px",s.appendChild(c),o.width&&!t[n+1].width){const e=document.createElement("div");e.style.clear="both",l.appendChild(e)}}else{let c=document.createElement("smart-input");if(c.classList.add("underlined","edit-column-input"),c.style.width="100%",c.style.height="30px",o.width&&(s.style.width=o.width,s.style.float="left"),"items"===o.type){const t=document.createElement("smart-button");t.classList.add("primary"),t.innerHTML='<div style="align-items: center; white-space: nowrap; display: flex;"><span class="smart-grid-icon show smart-icon-plus"></span><span>'+i.localize("commandBarAddRow")+"</span></div>";const l=document.createElement("div");l.classList.add("smart-grid-add-column-dialog-color-panel");const n=document.createElement("smart-sortable");n.disableMode="manual",n.dragMode="handle",n.handlePosition="left",n.handleVisibility="visible";const s=()=>{if(a.btnConfirm.disabled=!1,0===l.offsetHeight)return;let e=0;l.querySelectorAll(".edit-column-input").forEach((t=>{""===t.value&&e++;const l=a.querySelector('[field-name="type"]');l&&("multiSelect"===l.querySelector("smart-input").selectedValues[0]&&e>=1&&(a.btnConfirm.disabled=!0),e>1&&(a.btnConfirm.disabled=!0))})),n._updateDefaultInput()},r=(l,r,d,c)=>{const u=document.createElement("div"),m=i._getColorInput(),p=document.createElement("div"),g=document.createElement("smart-input"),b=e.allowColorItems;if(void 0!==d)g.setAttribute("data-id",d),g.setAttribute("data-item-value",d);else{const e=n.querySelectorAll(".smart-sortable-item").length;g.setAttribute("data-id",e),g.setAttribute("data-item-value",e)}if(void 0!==c&&g.setAttribute("data-item-value",c),m.disabled=!b.querySelector(".smart-input").value,p.className="smart-grid-icon smart-icon-close show",p.setAttribute("role","button"),p.setAttribute("aria-label","button"),g.classList.add("underlined","edit-column-input"),g.style.width="100%",g.style.height="30px",g.required=!0,(a.editColumn&&"collaborator"===a.editColumn.template||"users"===o.bind)&&(g.disabled=!0),l&&(g.value=i._unescapeString(l)),r)m.value=r;else if(!m.disabled){void 0!==a._randomOptionIndex?a._randomOptionIndex++:a._randomOptionIndex=2;const e=a._randomOptionIndex;e>=m.dataSource.length-1&&delete a._randomOptionIndex;const t=m.dataSource[e];m.value=t}if(g.onkeyup=g.onchange=g.onblur=e=>{s(),"Enter"===e.key&&(g.parentElement.nextElementSibling||(t.performClick(),s()))},m.onchange=()=>{n._updateDefaultInput()},u.appendChild(m),u.appendChild(g),"users"!==o.bind&&u.appendChild(p),p.onmouseenter=()=>{if(i._dialogAddColumn&&i._dialogAddColumn.editColumn){if(p.title="",p.classList.remove("smart-quiet"),!c)return;const e=i._dialogAddColumn.editColumn;if(e)for(let t=0;t<i.rows.length;t++)if(i.rows[t].data[e.dataField]===c){p.title=i.localize("dialogAddColumnListItemsError"),p.classList.add("smart-quiet");break}}},c&&i._dialogAddColumn){const e=i._dialogAddColumn.editColumn;if(e)for(let t=0;t<i.rows.length;t++)if(i.rows[t].data[e.dataField]===c){p.title=i.localize("dialogAddColumnListItemsError"),p.classList.add("smart-quiet");break}}return p.onclick=()=>{p.title||(u.remove(),n.updateItems(),s())},u.classList.add("smart-sortable-item","smart-grid-add-column-dialog-color-item"),"users"===o.bind&&u.setAttribute("disable-drag",""),u};if(n._getOptions=e=>{const t=[],a=l.querySelectorAll(".smart-grid-add-column-dialog-color-item .edit-column-input"),n=l.querySelectorAll(".smart-grid-add-column-dialog-color-item smart-color-input");for(let e=0;e<a.length;e++){const l=a[e],i={label:l.value.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;").replace(/\\/g,""),value:l.getAttribute("data-item-value").replace(/\\/g,""),id:parseInt(l.getAttribute("data-id")),color:n[e].value};i.color=n[e].value;const o=parseInt(i.value);if(!isNaN(o)){const e=i.label.trim();i.value=e}t.push(i)}if("users"===e.bind){i.users||(i.users=[]);for(let e=0;e<t.length;e++){const a=t[e],l=i.users.find((e=>e.id===a.id));l&&(l.name=a.label,l.color=a.color)}}return t},n._updateDefaultInput=e=>{e||(e=n._getOptions(o)),n._defaultInput&&(n._defaultInput.dataSource=e,n._defaultInput.selectedValues=[],!e||e&&!e.length||"kanban"===i.view?(n._defaultInput.classList.add("smart-hidden"),n._defaultOption.classList.add("smart-hidden")):(a.editColumn&&a.editColumn.defaultValue&&(n._defaultInput.selectedValues=[a.editColumn.defaultValue]),n._defaultInput.classList.remove("smart-hidden"),n._defaultOption.classList.remove("smart-hidden")))},n._init=e=>{n.clearContent(),"users"===o.bind?(n.handleVisibility="none",n.handlePosition="none"):(n.handleVisibility="visible",n.handlePosition="left"),e&&(e.forEach(((e,t)=>{const a=void 0!==e.id?e.id:t,l=r(e.label,e.color,a,e.value,t);n.$.container.appendChild(l)})),n.updateItems()),n._updateDefaultInput(e)},n._validate=s,e.presets&&(e.presets.onchange=t=>{const a=e.options.querySelector("smart-sortable"),l=[{color:"#33B679",label:i.localize("priority_low"),value:"Low"},{color:"#039BE5",label:i.localize("priority_average"),value:"Average"},{color:"#DD5347",label:i.localize("priority_high"),value:"High"},{color:"#AF0020",label:i.localize("priority_critical"),value:"Critical"}],n=[{color:"#33B679",label:i.localize("toDo"),value:"To Do"},{color:"#039BE5",label:i.localize("inProgress"),value:"In Progress"},{color:"#8E24AA",label:i.localize("done"),value:"Done"}],o=[{color:"#EDEDED",label:i.localize("notStarted"),value:"Not Started"},{color:"#D0F0FD",label:i.localize("underReview"),value:"Under review"},{color:"#D1F7C4",label:i.localize("approved"),value:"Approved"}],s=[{color:"#FFEBB6",label:i.localize("xs"),value:"xs"},{color:"#D1F7C4",label:i.localize("s"),value:"s"},{color:"#D0F0FD",label:i.localize("m"),value:"m"},{color:"#ECE1FD",label:i.localize("l"),value:"l"},{color:"#FFDAF6",label:i.localize("xl"),value:"xl"},{color:"#EDEDED",label:i.localize("xxl"),value:"xxl"}],r=[{color:"#EDEDED",label:i.localize("notStarted"),value:"Not Started"},{color:"#FFCFC9",label:i.localize("blocked"),value:"Blocked"},{color:"#FFEBB6",label:i.localize("inProgress"),value:"In Progress"},{color:"#D1F7C4",label:i.localize("completedStatus"),value:"Completed"}],d=[{color:"#D1F7C4",label:"Yes",value:"Yes"},{color:"#FFCFC9",label:"No",value:"No"}];switch(t.detail.value){case"status":return a._init(n);case"priority":return a._init(l);case"task":return a._init(r);case"review":return a._init(o);case"size":return a._init(s);case"boolean":return a._init(d)}a._init()}),e.allowColorItems.onchange=t=>{let a=e.allowColorItems.parentElement.nextElementSibling,l=null;for(;a;){if("options"===a.getAttribute("field-name")){if(l=a,l&&l.classList.contains("smart-hidden")){a=a.nextElementSibling;continue}break}if("users"===a.getAttribute("field-name")){if(l=a,l&&l.classList.contains("smart-hidden")){a=a.nextElementSibling;continue}break}a=a.nextElementSibling}l&&l.querySelectorAll("smart-color-input").forEach((e=>{e.disabled=!t}))},l.appendChild(n),"users"!==o.bind){l.appendChild(t);const e=()=>{const e=r();n.$.container.appendChild(e),n.updateItems(),e.querySelector(".edit-column-input").focus(),a.btnConfirm.disabled=!0,a._refreshPosition&&a._refreshPosition(),event.preventDefault()};t.performClick=()=>{e()},t.onpointerdown=()=>{e()},t.onkeydown=t=>{"Enter"===t.key&&e()}}const u=document.createElement("div");u.innerHTML=i.localize("dialogAddColumnDefault");const m=document.createElement("smart-multi-combo-input");m.singleSelect=!0,m.readonly=!0,m.dropDownButtonPosition="right",m.colorItems=!0,m.autoOpen=!0,m.pills=!0,m.style.setProperty("--smart-surface","--smart-background"),m.style.width="100%",m.classList.add("smart-default-item","underlined");const p=document.createElement("div");p.style.display="flex",p.style.flexDirection="column",p.style.marginTop="5px",p.classList.add("smart-default-item-container"),p.appendChild(u),p.appendChild(m),l.appendChild(p),n._defaultInput=m,n._defaultOption=u,c=l,d.style.height="auto"}else if("number"===o.type)c=document.createElement("smart-number-input"),c.classList.add("underlined"),c.style.width="100%",c.style.height="30px","minValue"===o.bind?(c.value=0,c.min=-9999999,c.max=9999999):"maxValue"===o.bind?(c.value=1e6,c.min=-9999999,c.max=9999999):"minLength"===o.bind?c.value=0:"maxLength"===o.bind&&(c.value=500);else if("datetime"===o.type)c=document.createElement("smart-date-input"),c.classList.add("underlined"),c.style.width="100%",c.style.height="30px","minDateTime"===o.bind?c.value=new Date(1900,0,1):"maxDateTime"===o.bind&&(c.value=new Date(2100,0,1));else if("radio"===o.type){const e=(e,t,a)=>{const l=document.createElement("div"),i=document.createElement("label"),n=document.createElement("div");return i.innerHTML=e,n.classList.add("smart-input"),n.classList.add("smart-grid-cell-editor"),n.classList.add("smart-grid-check-box-cell-editor"),t&&n.setAttribute("checked",""),n.value=void 0!==t&&t,d.appendChild(n),l.onclick=function(){if(n.value=!0,!1===n.value?n.removeAttribute("checked"):n.setAttribute("checked",n.value?"":"indeterminate"),l.onchange&&l.onchange(l),n.value){const e=n.parentElement.parentElement.parentElement;e.querySelectorAll(".smart-grid-cell-editor").forEach((e=>{e.value=!1,e.removeAttribute("checked")})),n.value=!0,n.setAttribute("checked",n.value?"":"indeterminate"),e.value=a}},l.setAttribute("tabindex",0),l.onkeydown=e=>{" "!==e.key&&"Enter"!==e.key||l.click()},l.appendChild(n),l.appendChild(i),l.classList.add("smart-grid-dialog-boolean-field"),l.setAttribute("template","checkBox"),l.setAttribute("editor",""),l.label=i,l.value=t,l.name=a,l},t=document.createElement("div");t.classList.add("smart-grid-dialog-radio-field"),d.classList.add("radio-group");for(let a=0;a<o.options.length;a++){const l=o.options[a],i=e(l.label,l.checked,l.value);if(o.columns){const e=100/o.columns;i.style.width=e+"%",i.style.float="left"}t.appendChild(i),l.checked&&(d.value=l.value)}const a=document.createElement("div");a.style.clear="both",t.appendChild(a),c=t}if(o.options){c.readonly=!0;let e=o.options;"type"===o.bind&&(void 0!==i.currentUser&&null!==i.currentUser||(e=e.filter((e=>"updatedBy"!==e.value&&"createdBy"!==e.value))),(void 0===i.users||null===i.users||i.users&&0===i.users.length)&&(e=e.filter((e=>"collaborator"!==e.value)))),c.dataSource=e,c.dropDownButtonPosition="right","dataField"!==o.bind&&(c.selectedIndex=0),o.options.length<15?c.dropDownHeight="auto":c.dropDownHeight=300}if(o.icon){const e=document.createElement("span");e.classList.add("smart-grid-icon",o.icon,"show","smart-description-button"),d.appendChild(e),c.style.width="calc(100% - 25px)"}if(d.appendChild(c),o.info){const e=document.createElement("span");e.classList.add("smart-grid-icon","smart-icon-attention-circled","show","smart-description-button"),e.title=o.info,d.appendChild(e),c.style.width="calc(100% - 25px)"}if(l.appendChild(s),s.classList.add("smart-grid-dialog-field"),s.appendChild(r),s.appendChild(d),o.width&&!t[n+1].width){const e=document.createElement("div");e.style.clear="both",l.appendChild(e)}}}}if(!a.querySelector(".smart-grid-edit-dialog-columns-separator")){const e=document.createElement("div"),t=a.querySelector('[field-name="description"]');t&&l.insertBefore(e,t),e.innerHTML=`<div class="smart-grid-edit-dialog-columns-separator"><span></span><div><div class="show toggle-button smart-flex">${i.localize("less")}<span style="font-family: var(--smart-font-family-icon); font-size: 16px; margin-left: 5px; border:none;" class="show smart-grid-icon smart-icon-sort-up"></span></div></div><span></span></div>`,e.querySelector(".toggle-button").onclick=()=>{const t=e.querySelector(".toggle-button");t.classList.contains("show")?(t.innerHTML=`${i.localize("more")}<span style="font-family: var(--smart-font-family-icon); font-size: 16px; margin-left: 5px; border:none;" class="show smart-grid-icon smart-icon-sort-down"></span>`,t.classList.remove("show"),a.compact=!0):(t.innerHTML=`${i.localize("less")}<span style="font-family: var(--smart-font-family-icon); font-size: 16px; margin-left: 5px; border:none;" class="show smart-grid-icon smart-icon-sort-up"></span>`,t.classList.add("show"),a.compact=!1),i._updateAddColumnDialogCompact(a)}}}_updateAddColumnDialogCompact(e){const t=e.querySelectorAll(".smart-grid-dialog-editor");for(let a=0;a<t.length;a++){const l=t[a],i=l.getAttribute("bind"),n=l.parentNode;switch(i){case"description":case"cellsAlign":case"defaultString":case"defaultNumber":case"defaultDate":case"defaultDateValue":case"setDefaultValue":case"allowResize":case"allowRichText":case"required":case"allowSort":case"allowFilter":case"allowEdit":e.compact?n.classList.add("smart-collapse"):n.classList.remove("smart-collapse")}}}_getDefaultLocales(){return{AED:"ar_AE",AFN:"fa_AF",ALL:"sq",AMD:"hy",ANG:"nl",AOA:"pt_AO",ARS:"es_AR",AUD:"en",AWG:"nl_AW",AZN:"az",BAM:"bs",BBD:"en_BB",BDT:"bn_BD",BGN:"bg",BHD:"ar_BH",BIF:"fr_BI",BMD:"en_BM",BND:"ms_BN",BOB:"es_BO",BRL:"pt_BR",BSD:"en_BS",BTN:"dz",BWP:"en_BW",BYN:"be",BYR:"be",BZD:"en_BZ",CAD:"en_CA",CDF:"fr_CD",CHF:"de_CH",CLP:"es_CL",CNY:"zh_Hans_CN",COP:"es_CO",CRC:"es_CR",CUP:"es_CU",CVE:"pt_CV",CZK:"cs",DJF:"fr_DJ",DKK:"da_DK",DOP:"es_DO",DZD:"ar_DZ",EGP:"ar_EG",ERN:"ti_ER",ETB:"am",EUR:"de",FJD:"en_FJ",FKP:"en_FK",GBP:"en",GEL:"ka",GHS:"en_GH",GIP:"en_GI",GMD:"en_GM",GNF:"fr_GN",GTQ:"es_GT",GYD:"en_GY",HKD:"zh_Hans_HK",HNL:"es_HN",HRK:"hr_HR",HTG:"en",HUF:"hu_HU",IDR:"id",ILS:"he",INR:"en_IN",IQD:"ar_IQ",IRR:"fa_IR",ISK:"is",JMD:"en_JM",JOD:"ar_JO",JPY:"ja",KES:"en_KE",KGS:"ky",KHR:"km",KMF:"ar",KPW:"ko_KP",KRW:"ko_KR",KWD:"ar_KW",KYD:"en_KY",KZT:"kk",LAK:"lo",LBP:"ar_LB",LKR:"si",LRD:"en_LR",LSL:"en_LS",LYD:"ar_LY",MAD:"ar",MDL:"ro",MGA:"fr_MG",MKD:"mk",MMK:"my",MNT:"mn",MOP:"zh",MRO:"ar_MR",MRU:"ar_MR",MUR:"en_MU",MVR:"en",MWK:"en",MXN:"es_MX",MYR:"ms_MY",MZN:"pt_MZ",NAD:"en_NA",NGN:"en_NG",NIO:"es_NI",NOK:"nb_NO",NPR:"ne",NZD:"en_NZ",OMR:"ar_OM",PAB:"es_PA",PEN:"es_PE",PGK:"en_PG",PHP:"fil",PKR:"ur_PK",PLN:"pl",PYG:"es_PY",QAR:"ar_QA",RON:"ro",RSD:"sr",RUB:"ru",RWF:"rw",SAR:"ar_SA",SBD:"en_SB",SCR:"en_SC",SDG:"ar_SD",SEK:"sv_SE",SGD:"en_SG",SHP:"en_SH",SLL:"en_SL",SOS:"so_SO",SRD:"nl_SR",SSP:"en",STD:"pt_ST",STN:"pt_ST",SYP:"ar_SY",SZL:"en_SZ",THB:"th",TJS:"en",TMT:"tk",TND:"ar_TN",TOP:"to",TRY:"tr_TR",TTD:"en_TT",TWD:"zh_Hant_TW",TZS:"sw_TZ",UAH:"uk",UGX:"en_UG",USD:"en_US",UYU:"es_UY",UZS:"uz",VEF:"es_VE",VND:"vi",VUV:"en_BI",WST:"en_AS",XAF:"fr",XCD:"en",XOF:"fr",XPF:"fr_PF",YER:"ar_YE",ZAR:"zu",ZMW:"en_ZM",ZWL:"en_ZW"}}_getLocaleByCurrency(e){const t=this._getDefaultLocales();return t[e]?t[e].replace("_","-"):"en-US"}_getCurrencyByLocale(e){const t=this;if(t._currencyByLocale||(t._currencyByLocale={}),t._currencyByLocale[e])return t._currencyByLocale[e];const a=t._getCurrencies(),l=t._getDefaultLocales(),i=Object.keys(l);for(let n of i)if(l[n].replace("_","-")===e){const l=n;for(let i=0;i<a.length;i++)if(a[i].abbreviation===l){t._currencyByLocale[e]=a[i].sign;break}}return t._currencyByLocale[e]?t._currencyByLocale[e]:null}_getCurrencies(){return[{currency:"US Dollar",sign:"$",abbreviation:"USD"},{currency:"Euro",sign:"€",abbreviation:"EUR"},{currency:"Afghan Afghani",sign:"Af.",abbreviation:"AFN"},{currency:"Albanian Lek",sign:"Lek",abbreviation:"ALL"},{currency:"Algerian Dinar",sign:"din",abbreviation:"DZD"},{currency:"Angolan Kwanza",sign:"Kz",abbreviation:"AOA"},{currency:"Argentine Peso",sign:"$",abbreviation:"ARS"},{currency:"Armenian Dram",sign:"Dram",abbreviation:"AMD"},{currency:"Aruban Florin",sign:"Afl.",abbreviation:"AWG"},{currency:"Australian Dollar",sign:"$",abbreviation:"AUD"},{currency:"Azerbaijani Manat",sign:"₼",abbreviation:"AZN"},{currency:"Bahamian Dollar",sign:"$",abbreviation:"BSD"},{currency:"Bahraini Dinar",sign:"din",abbreviation:"BHD"},{currency:"Bangladeshi Taka",sign:"৳",abbreviation:"BDT"},{currency:"Barbadian Dollar",sign:"$",abbreviation:"BBD"},{currency:"Belarusian Ruble",sign:"р.",abbreviation:"BYN"},{currency:"Belarusian Ruble",sign:"р.",abbreviation:"BYR"},{currency:"Belize Dollar",sign:"$",abbreviation:"BZD"},{currency:"Bermudan Dollar",sign:"$",abbreviation:"BMD"},{currency:"Bhutanese Ngultrum",sign:"Nu.",abbreviation:"BTN"},{currency:"Bolivian Boliviano",sign:"Bs",abbreviation:"BOB"},{currency:"Bosnia-Herzegovina Convertible Mark",sign:"KM",abbreviation:"BAM"},{currency:"Botswanan Pula",sign:"P",abbreviation:"BWP"},{currency:"Brazilian Real",sign:"R$",abbreviation:"BRL"},{currency:"British Pound Sterling",sign:"£",abbreviation:"GBP"},{currency:"Brunei Dollar",sign:"$",abbreviation:"BND"},{currency:"Bulgarian Lev",sign:"лв.",abbreviation:"BGN"},{currency:"Burundian Franc",sign:"FBu",abbreviation:"BIF"},{currency:"Cambodian Riel",sign:"Riel",abbreviation:"KHR"},{currency:"Canadian Dollar",sign:"$",abbreviation:"CAD"},{currency:"Cape Verdean Escudo",sign:"CVE",abbreviation:"CVE"},{currency:"Cayman Islands Dollar",sign:"$",abbreviation:"KYD"},{currency:"CFA Franc BCEAO",sign:"CFA",abbreviation:"XOF"},{currency:"CFA Franc BEAC",sign:"FCFA",abbreviation:"XAF"},{currency:"CFP Franc",sign:"FCFP",abbreviation:"XPF"},{currency:"Chilean Peso",sign:"$",abbreviation:"CLP"},{currency:"Chinese Yuan",sign:"¥",abbreviation:"CNY"},{currency:"Chinese Yuan (offshore)",sign:"¥",abbreviation:"RMB"},{currency:"Colombian Peso",sign:"$",abbreviation:"COP"},{currency:"Comorian Franc",sign:"CF",abbreviation:"KMF"},{currency:"Congolese Franc",sign:"FrCD",abbreviation:"CDF"},{currency:"Costa Rican Colon",sign:"₡",abbreviation:"CRC"},{currency:"Croatian Kuna",sign:"kn",abbreviation:"HRK"},{currency:"Cuban Convertible Peso",sign:"$",abbreviation:"CUC"},{currency:"Cuban Peso",sign:"$",abbreviation:"CUP"},{currency:"Czech Republic Koruna",sign:"Kč",abbreviation:"CZK"},{currency:"Danish Krone",sign:"kr.",abbreviation:"DKK"},{currency:"Djiboutian Franc",sign:"Fdj",abbreviation:"DJF"},{currency:"Dominican Peso",sign:"RD$",abbreviation:"DOP"},{currency:"East Caribbean Dollar",sign:"$",abbreviation:"XCD"},{currency:"Egyptian Pound",sign:"£",abbreviation:"EGP"},{currency:"Eritrean Nakfa",sign:"Nfk",abbreviation:"ERN"},{currency:"Ethiopian Birr",sign:"Birr",abbreviation:"ETB"},{currency:"Falkland Islands Pound",sign:"£",abbreviation:"FKP"},{currency:"Fijian Dollar",sign:"$",abbreviation:"FJD"},{currency:"Gambian Dalasi",sign:"GMD",abbreviation:"GMD"},{currency:"Georgian Lari",sign:"GEL",abbreviation:"GEL"},{currency:"Ghanaian Cedi",sign:"GHS",abbreviation:"GHS"},{currency:"Gibraltar Pound",sign:"£",abbreviation:"GIP"},{currency:"Guatemalan Quetzal",sign:"Q",abbreviation:"GTQ"},{currency:"Guinean Franc",sign:"FG",abbreviation:"GNF"},{currency:"Guyanaese Dollar",sign:"$",abbreviation:"GYD"},{currency:"Haitian Gourde",sign:"HTG",abbreviation:"HTG"},{currency:"Honduran Lempira",sign:"L",abbreviation:"HNL"},{currency:"Hong Kong Dollar",sign:"$",abbreviation:"HKD"},{currency:"Hungarian Forint",sign:"Ft",abbreviation:"HUF"},{currency:"Icelandic Krona",sign:"kr",abbreviation:"ISK"},{currency:"Indian Rupee",sign:"₹",abbreviation:"INR"},{currency:"Indonesian Rupiah",sign:"Rp",abbreviation:"IDR"},{currency:"Iranian Rial",sign:"Rial",abbreviation:"IRR"},{currency:"Iraqi Dinar",sign:"din",abbreviation:""},{currency:"Israeli New Sheqel",sign:" ₪",abbreviation:"ILS"},{currency:"Jamaican Dollar",sign:"$",abbreviation:"JMD"},{currency:"Japanese Yen",sign:"¥",abbreviation:"JPY"},{currency:"Jordanian Dinar",sign:"din",abbreviation:"JOD"},{currency:"Kazakhstani Tenge",sign:"₸",abbreviation:"KZT"},{currency:"Kenyan Shilling",sign:"Ksh",abbreviation:"KES"},{currency:"Kuwaiti Dinar",sign:"din",abbreviation:"KWD"},{currency:"Kyrgystani Som",sign:"KGS",abbreviation:"KGS"},{currency:"Laotian Kip",sign:"₭",abbreviation:"LAK"},{currency:"Lebanese Pound",sign:"L£",abbreviation:"LBP"},{currency:"Lesotho Loti",sign:"LSL",abbreviation:"LSL"},{currency:"Liberian Dollar",sign:"$",abbreviation:"LRD"},{currency:"Libyan Dinar",sign:"din",abbreviation:"LYD"},{currency:"Lithuanian Litas",sign:"Lt",abbreviation:"LTL"},{currency:"Macanese Pataca",sign:"MOP",abbreviation:"MOP"},{currency:"Macedonian Denar",sign:"din",abbreviation:"MKD"},{currency:"Malagasy Ariary",sign:"Ar",abbreviation:"MGA"},{currency:"Malawian Kwacha",sign:"MWK",abbreviation:"MWK"},{currency:"Malaysian Ringgit",sign:"RM",abbreviation:"MYR"},{currency:"Maldivian Rufiyaa",sign:"Rf",abbreviation:"MVR"},{currency:"Mauritanian Ouguiya",sign:"MRO",abbreviation:"MRO"},{currency:"Mauritian Rupee",sign:"MURs",abbreviation:"MUR"},{currency:"Mexican Peso",sign:"$",abbreviation:"MXN"},{currency:"Moldovan Leu",sign:"MDL",abbreviation:"MDL"},{currency:"Mongolian Tugrik",sign:"₮",abbreviation:"MNT"},{currency:"Moroccan Dirham",sign:"dh",abbreviation:"MAD"},{currency:"Mozambican Metical",sign:"MTn",abbreviation:"MZN"},{currency:"Myanma Kyat",sign:"K",abbreviation:"MMK"},{currency:"Namibian Dollar",sign:"$",abbreviation:"NAD"},{currency:"Nepalese Rupee",sign:"Rs",abbreviation:"NPR"},{currency:"Netherlands Antillean Guilder",sign:"NAf.",abbreviation:"ANG"},{currency:"New Taiwan Dollar",sign:"NT$",abbreviation:"TWD"},{currency:"New Zealand Dollar",sign:"$",abbreviation:"NZD"},{currency:"Nicaraguan Cordoba",sign:"C$",abbreviation:"NIO"},{currency:"Nigerian Naira",sign:"₦",abbreviation:"NGN"},{currency:"North Korean Won",sign:"₩KP",abbreviation:"KPW"},{currency:"Norwegian Krone",sign:"kr",abbreviation:"NOK"},{currency:"Omani Rial",sign:"Rial",abbreviation:"OMR"},{currency:"Pakistani Rupee",sign:"Rs",abbreviation:"PKR"},{currency:"Panamanian Balboa",sign:"B/.",abbreviation:"PAB"},{currency:"Papua New Guinean Kina",sign:"PGK",abbreviation:"PGK"},{currency:"Paraguayan Guarani",sign:"Gs.",abbreviation:"PYG"},{currency:"Peruvian Nuevo Sol",sign:"S/.",abbreviation:"PEN"},{currency:"Philippine Peso",sign:"₱",abbreviation:"PHP"},{currency:"Polish Zloty",sign:"zł",abbreviation:"PLN"},{currency:"Qatari Rial",sign:"Rial",abbreviation:"QAR"},{currency:"Romanian Leu",sign:"RON",abbreviation:"RON"},{currency:"Russian Ruble",sign:"₽",abbreviation:"RUB"},{currency:"Rwandan Franc",sign:"RF",abbreviation:"RWF"},{currency:"Saint Helena Pound",sign:"£",abbreviation:"SHP"},{currency:"Samoan Tala",sign:"WST",abbreviation:"WST"},{currency:"Sao Tomean Dobra",sign:"Db",abbreviation:"STD"},{currency:"Saudi Riyal",sign:"Rial",abbreviation:"SAR"},{currency:"Serbian Dinar",sign:"din",abbreviation:"RSD"},{currency:"Seychellois Rupee",sign:"SCR",abbreviation:"SCR"},{currency:"Sierra Leonean Leone",sign:"SLL",abbreviation:"SLL"},{currency:"Singapore Dollar",sign:"$",abbreviation:"SGD"},{currency:"Solomon Islands Dollar",sign:"$",abbreviation:"SBD"},{currency:"Somali Shilling",sign:"SOS",abbreviation:"SOS"},{currency:"South African Rand",sign:"R",abbreviation:"ZAR"},{currency:"South Korean Won",sign:"₩",abbreviation:"KRW"},{currency:"South Sudanese Pound",sign:"£",abbreviation:"SSP"},{currency:"Sri Lankan Rupee",sign:"Rs",abbreviation:"LKR"},{currency:"Sudanese Pound",sign:"SDG",abbreviation:"SDG"},{currency:"Surinamese Dollar",sign:"$",abbreviation:"SRD"},{currency:"Swazi Lilangeni",sign:"SZL",abbreviation:"SZL"},{currency:"Swedish Krona",sign:"kr",abbreviation:"SEK"},{currency:"Swiss Franc",sign:"CHF",abbreviation:"CHF"},{currency:"Syrian Pound",sign:"£",abbreviation:"SYP"},{currency:"Tajikistani Somoni",sign:"Som",abbreviation:"TJS"},{currency:"Tanzanian Shilling",sign:"TSh",abbreviation:"TZS"},{currency:"Thai Baht",sign:"฿",abbreviation:"THB"},{currency:"Tongan Pa'anga",sign:"T$",abbreviation:"TOP"},{currency:"Trinidad and Tobago Dollar",sign:"$",abbreviation:"TTD"},{currency:"Tunisian Dinar",sign:"din",abbreviation:"TND"},{currency:"Turkish Lira",sign:"₺",abbreviation:"TRY"},{currency:"Turkmenistani Manat",sign:"m",abbreviation:"TMT"},{currency:"Ugandan Shilling",sign:"UGX",abbreviation:"UGX"},{currency:"Ukrainian Hryvnia",sign:"грн.",abbreviation:"UAH"},{currency:"United Arab Emirates Dirham",sign:"dh",abbreviation:"AED"},{currency:"Uruguayan Peso",sign:"$",abbreviation:"UYU"},{currency:"Uzbekistan Som",sign:"soʼm",abbreviation:"UZS"},{currency:"Vanuatu Vatu",sign:"VUV",abbreviation:"VUV"},{currency:"Venezuelan Bolivar",sign:"Bs",abbreviation:"VEF"},{currency:"Venezuelan Bolivar",sign:"Bs",abbreviation:"VES"},{currency:"Vietnamese Dong",sign:"₫",abbreviation:"VND"},{currency:"Yemeni Rial",sign:"Rial",abbreviation:"YER"},{currency:"Zambian Kwacha",sign:"ZMW",abbreviation:"ZMW"},{currency:"Zimbabwean Dollar",sign:"$",abbreviation:"ZWD"}].map((e=>(e.label=e.currency,e.menuLabel='<div style="display: flex; justify-content: space-between;"><span>'+e.currency+'</span><span style="opacity: 0.7;">'+e.sign+" 1,000.00</span></div>",e.value=e.abbreviation,e)))}_openAddStackColumnDialog(e,t,a){const l=this,i=l._dialogAddStackColumn||l._createDialog(l.editing.addColumnDialog),n=e?l.localize("dialogEditColumn",{value:e.label}):l.localize("dialogAddColumn"),o=i.querySelector(".smart-footer").querySelector(".smart-stack-layout"),s=l._getAddStackColumnDialogTemplate();i.classList.add("smart-grid-dialog-add-column"),i.type="add",i.editColumn=e||null,e&&e.element&&e.element.setAttribute("focus",""),o.classList.remove("right"),o.classList.add("center"),l._cellEditors||(l._cellEditors=[]),i.header.innerHTML=n,i.header.parentElement.classList.add("smart-hidden"),i.callback=a,!0===t&&(i.header.parentElement.classList.remove("smart-hidden"),"kanban"===l.view?(i.header.innerHTML=l.localize("dialogAddColumnStatus"),i.header.parentElement.querySelector(".smart-close-button").classList.add("smart-hidden"),i.classList.add("view")):i.classList.remove("kanban")),i.stackLabel&&i.stackLabel.classList.add("smart-hidden"),l.cancelEdit(),i.content&&(i.content.innerHTML="");const r=document.createElement("div");r.classList.add("smart-content-layout-container"),i.content.appendChild(r),l._addStackColumnDialogEditors=[];const d=l._addStackColumnDialogEditors;if(l._initAddColumnDialogEditors(d,s,i,r),!l._dialogAddStackColumn){i.modal=!0,i.btnConfirm.innerHTML=l.localize("dialogEditButtonConfirm"),i.btnCancel.innerHTML=l.localize("dialogEditButtonCancel"),i.onOpen=function(){const e=l._dialogAddStackColumn,t=l._getAddStackColumnDialogTemplate(),a=l._addStackColumnDialogEditors;l._addColumnDialogInitEditors(e,t,a),l._addColumnDialogShowHideEditors(e);const i=l.offset(l.$.columnHeader),n=l.$.columnHeader.offsetHeight,o=l.offset(l);if(e.style.maxHeight="",e.style.minHeight="",i.top+n+e.offsetHeight>window.innerHeight-o.top){const t=n+i.top+e.offsetHeight-window.innerHeight+o.top;e.style.maxHeight=Math.max(250,e.offsetHeight-t)+"px",e.style.minHeight="250px"}else e.style.maxHeight="",e.style.minHeight=""},i.onClose=function(){i.editColumn&&i.editColumn.element&&i.editColumn.element.removeAttribute("focus"),i.classList.remove("view"),i.callback&&i.callback(i.result)},i.btnCancel.onclick=function(){i.result=!1,i.close()},i.btnClose.onclick=function(){i.result=!1,i.close()},i.btnConfirm.onclick=function(){l._confirmAddColumnDialog(i),i.result=!0,i.close()},i.onkeydown=function(e){"Escape"===e.key&&(i.result=!1,i.close())},l._dialogAddStackColumn=i;const e=document.createElement("div");e.classList.add("smart-content-layout-container"),i.content.appendChild(e)}const c=()=>{if(window.screen.availWidth<400)return i.open("left","top"),i.style.width=l.offsetWidth+"px",void(i.style.height=l.offsetHeight+"px");{const e=l.editing.addColumnDialog;i.style.width="auto"===e.width?e.width:e.width+"px",i.style.height="auto"===e.height?e.height:e.height+"px"}i.open("center","center"),setTimeout((()=>{i.btnConfirm.focus()}),100),i.classList.add("center")};c(),i.refresh=()=>{c()}}_openImagePreviewDialog(e){const t=this,a=e?[...e.parentNode.parentNode.querySelectorAll("img")]:[];let l=e.hasAttribute("data-url")?e.getAttribute("data-url"):e.src;if((e=e.cloneNode()).src=l,!t._dialogImagePreview){t._dialogImagePreview=t._createDialog({modal:!0,screenModal:!0,left:"screenMiddle",top:"screenCenter",width:"80%",height:"80%"}),t._dialogImagePreview.content.innerHTML='<div style="width: 100%; height: 100%;"><div class="images-container"></div><div class="image-preview"></div></div>';const e=t._dialogImagePreview.content.firstElementChild;e.style.display="grid",e.style.gridTemplateColumns="50px 1fr"}const i=t._dialogImagePreview.querySelector(".images-container");i.innerHTML="";const n=(e,a)=>{e.width=e.naturalWidth,e.height=e.naturalHeight;const l=150+Math.min(850,e.naturalWidth),i=150+Math.min(650,e.naturalHeight);t._dialogImagePreview.style.width=l+"px",t._dialogImagePreview.style.height=i+"px",!1!==a&&(t._dialogImagePreview.style.left="calc(50% - "+Math.min(850,t._dialogImagePreview.offsetWidth/2)+"px)",t._dialogImagePreview.style.top="calc(50% - "+Math.min(650,t._dialogImagePreview.offsetHeight/2)+"px)");const n=getComputedStyle(t._dialogImagePreview),o=parseInt(n.top),s=parseInt(n.left);if((window.offsetWidth<l||window.offsetHeight<i||o<0||s<0)&&(t._dialogImagePreview.style.left="0px",t._dialogImagePreview.style.top="0px",t._dialogImagePreview.style.width="100%",t._dialogImagePreview.style.height="100%"),o+i>window.innerHeight){const e=o+i-window.innerHeight;t._dialogImagePreview.style.height=i-e-20+"px"}e.style.maxWidth="100%",e.style.objectFit="contain",e.style.width="100%",e.style.height="calc(100% - 10px)"},o=()=>{const e=t._dialogImagePreview.querySelector(".images-container");let a=-1;return e.querySelectorAll("img").forEach(((e,t)=>{if(e.hasAttribute("active"))return a=t,!0})),a},s=e=>{const a=t._dialogImagePreview.querySelector(".images-container");e&&(e.hasAttribute("active")||a.querySelectorAll("img").forEach((t=>{t.style.borderColor="transparent",t.removeAttribute("active");let a=t.hasAttribute("data-url")?t.getAttribute("data-url").replaceAll("\\","/"):"";if(t.src===e.src||a===e.src){t.style.borderColor="var(--smart-primary)",t.setAttribute("active","");let e=t.src;t.hasAttribute("data-url")&&(e=t.getAttribute("data-url")),r.innerHTML=`<img src="${e}"/>`;const a=r.querySelector("img");a.onload=()=>{n(a,!1)}}})))};if(a.length>1)for(let t=0;t<a.length;t++){const l=a[t].cloneNode();l.style.width="40px",l.style.height="40px",l.style.cursor="pointer",l.style.borderStyle="solid",l.style.borderWidth="1px",l.style.borderColor="transparent",l.style.borderRadius="var(--smart-border)",l.style.marginTop="10px",l.classList.remove("smart-hidden"),l.title=a[t].title||a[t].parentNode.title,a[t].src===e.src&&(l.style.borderColor="var(--smart-primary)",l.setAttribute("active","")),i.appendChild(l),l.onmouseenter=()=>{l.style.borderColor="var(--smart-primary)"},l.onmouseleave=()=>{l.hasAttribute("active")||(l.style.borderColor="transparent")},l.onclick=()=>{s(l)}}const r=t._dialogImagePreview.content.querySelector(".image-preview");r.innerHTML="",r.style.overflow="auto",r.appendChild(e),t._dialogImagePreview.btnClose.onclick=e=>{t.layout.isDirty=!1,t._dialogImagePreview.close(),e.preventDefault(),e.stopPropagation()},e.style.marginLeft="auto",e.style.marginRight="auto",e.style.maxWidth="",e.style.width="",e.style.height="",e.onload=()=>{n(e)},t._dialogImagePreview.content.onpointerdown=t._dialogImagePreview.content.onpointerup=e=>{e.preventDefault(),e.stopPropagation()},t._dialogImagePreview.onkeydown=function(e){if("Escape"===e.key&&t._dialogImagePreview.close(),"ArrowUp"===e.key||"ArrowLeft"===e.key){const t=o();s(a[t-1]),e.stopPropagation(),e.preventDefault()}else if("ArrowDown"===e.key||"ArrowRight"===e.key){const t=o();s(a[t+1]),e.stopPropagation(),e.preventDefault()}},t._dialogImagePreview.btnClose.tabIndex=0,t._dialogImagePreview.onOpen=()=>{setTimeout((()=>{t._dialogImagePreview.btnClose.focus()}),100)},t._dialogImagePreview.footer.remove(),t._dialogImagePreview.header.parentNode.style.backgroundColor="var(--smart-background)",t._dialogImagePreview.open(),e&&s(e)}_getFileFromBase64(e,t){let a=e.split(","),l=a[0].match(/:(.*?);/)[1],i=atob(a[1]),n=i.length,o=new Uint8Array(n);for(;n--;)o[n]=i.charCodeAt(n);return new File([o],t,{type:l})}_getBase64(e,t){var a=new FileReader;a.readAsDataURL(e),a.onload=function(){t(a.result)},a.onerror=function(){t("error")}}_findIsFile(e){return"string"==typeof e&&(e.indexOf("http")>=0||e.indexOf("base64")>=0||e.indexOf('[{"value":"/')>=0)}_findUserFile(e){const t=this;if(e&&e.value.startsWith("/"))return!0;if(t.uploadSettings.userFiles)for(let a=0;a<t.uploadSettings.userFiles.length;a++){const l=t.uploadSettings.userFiles[a];if(l){let t=e.name||e.label;if(!t&&!e.label&&e.value){const a=e.value.split("/");t=a[a.length-1]}if(l.label===t)return l;if(l.label.indexOf("_")>=0&&(l.label.substring(0,l.label.lastIndexOf("_"))+l.label.substring(l.label.indexOf("."))).indexOf(t)>=0)return l;const a=l.value.replaceAll("\\","/");if(a===e.value||a===e.url)return l}}return null}_removeFiles(){const e=this,t=e._dialogFile,a=(t.preview.querySelectorAll(".item"),t.fileUpload),l=t.cell.value&&t.cell.value.indexOf("[{")>=0?JSON.parse(t.cell.value):[];if(e.uploadSettings.removeUrl){let i=new FormData,n=new XMLHttpRequest;for(let n=0;n<a.files.length;n++){let o=l[n]?l[n]:e.uploadSettings.url+"/"+a.files[n].name;if(t&&t.cell&&t.cell.value&&t.cell.value.indexOf("[")>=0){const e=JSON.parse(t.cell.value);for(let t=0;t<e.length;t++)if(e[t].label===a.files[n].name){o=e[t].value;break}}e._findUserFile(a.files[n])||i.append(e.uploadSettings.name,a.files[n])}for(let a=0;a<t.uploadedWithLink.length;a++){const l=t.uploadedWithLink[a];e._findUserFile(l)||i.append(e.uploadSettings.name,l)}n.open("POST",e.uploadSettings.removeUrl),n.send(i)}if(e.uploadSettings.onUploadRemove){const l=t.cell.value&&t.cell.value.indexOf("[{")>=0?JSON.parse(t.cell.value):[];for(let t=0;t<a.files.length;t++)l&&l[t]?e.uploadSettings.onUploadRemove(l[t]):e.uploadSettings.removeUrl&&e.uploadSettings.onUploadRemove(e.uploadSettings.removeUrl+"/"+a.files[t].name)}t.uploadedWithLink=[],a.value="",t.input.value="",e._updateFilePreview(),t.tabs[2].classList.contains("active")&&t.tabs[2].click()}_removeFile(e){const t=this,a=t._dialogFile,l=a.preview.querySelectorAll(".item"),i=e.name||e.label,n=a.fileUpload,o=new DataTransfer;l.forEach((e=>{let t=!0;e.file.name!==i&&e.file.label!==i||(t=!1),e.file.value&&(t=!1),t&&o.items.add(e.file)})),n.files=o.files,a.clearButton&&0===l.length&&a.clearButton.classList.remove("show");let s=t.uploadSettings.url+"/"+i;if(a&&a.cell&&a.cell.value&&a.cell.value.indexOf("[")>=0){const e=JSON.parse(a.cell.value);for(let t=0;t<e.length;t++)if(e[t].label===i){s=e[t].value;break}}let r=-1;for(let e=0;e<a.uploadedWithLink.length;e++){const t=a.uploadedWithLink[e];if(t&&t.label===i){r=e;break}}if(r>=0&&a.uploadedWithLink.splice(r,1),t.uploadSettings.userFiles)for(let e=0;e<t.uploadSettings.userFiles.length;e++){const l=t.uploadSettings.userFiles[e];if(l&&l.label===i)return void(a.tabs[2].classList.contains("active")&&a.tabs[2].click())}if(t.uploadSettings.onUploadRemove){let e=s;t.uploadSettings.onUploadRemove(e)}if(t.uploadSettings.removeUrl){let e=new FormData,a=new XMLHttpRequest;e.append(t.uploadSettings.name,s),a.open("POST",t.uploadSettings.removeUrl),a.send(e)}}getFileTypes(e){return e?["image/apng","image/bmp","image/gif","image/jpeg","image/jpg","image/pjpeg","image/png","image/svg+xml","image/tiff","image/webp","image/x-icon","video/x-msvideo","text/csv","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-fontobject","image/gif","application/json","text/plain","application/xml","application/zip","application/gzip","application/pdf","application/vnd.ms-powerpoint","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/x-7z-compressed","application/vnd.rar","application/rtf","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/x-zip-compressed"]:["image/apng","image/bmp","image/gif","image/jpeg","image/jpg","image/pjpeg","image/png","image/svg+xml","image/tiff","image/webp","image/x-icon"]}_getFileSize(e){return"string"==typeof e?e:e<1024?e+"bytes":e>=1024&&e<1048576?((e/1024).toFixed(1)+"KB").replace(".0",""):e>=1048576?(e/1048576).toFixed(1)+"MB":void 0}_getFileListItem(e){const t=this,a=t._dialogFile,l=a.acceptFiles,i=document.createElement("div");e.name||(e.name=e.label);const n=e.size||0;i.classList.add("item"),i.onpointerdown=n=>{const o=i.getBoundingClientRect();if(a.input.value="",n.clientY>=o.bottom-12)n.clientX>o.left+o.width/2-13&&n.clientX<o.left+o.width/2+13&&(i.remove(),t._removeFile(i.file));else if(l){if(e.value){const t=document.createElement("a");return t.href=e.value,t.target="_blank",void t.click()}const t=URL.createObjectURL(e),a=document.createElement("a");a.download=e.name,a.href=t,a.click()}else t._openImagePreviewDialog(i.querySelector("img"))};const o=document.createElement("div"),s=n?`, ${t._getFileSize(e.size)}.`:"";let r;return o.textContent=o.textContentTitle=`${e.name}${s}`,o.textContent.length>20&&(o.textContent=`${e.name.substring(0,5)}...${e.name.substring(e.name.length-4)} ${s}`),a.objectURL||(a.objectURL=[]),a.objectURL[e.name+"_"+n]||(e.small?a.objectURL[e.name+"_"+n]=e.small?e.small:URL.createObjectURL(e):e.medium?a.objectURL[e.name+"_"+n]=e.medium?e.medium:URL.createObjectURL(e):a.objectURL[e.name+"_"+n]=e.value?e.value:URL.createObjectURL(e)),l?(r=document.createElement("div"),r.classList.add("attachment","smart-grid-icon","show"),e.name.indexOf(".pdf")>=0?r.classList.add("smart-icon-pdf"):e.name.indexOf(".png")>=0||e.name.indexOf(".jpg")>=0||e.name.indexOf(".jpeg")>=0||e.name.indexOf(".gif")>=0?r.classList.add("smart-icon-image"):e.name.indexOf(".tsv")>=0||e.name.indexOf(".txt")>=0||e.name.indexOf(".csv")>=0?r.classList.add("smart-icon-text"):e.name.indexOf(".xls")>=0||e.name.indexOf(".xlsx")>=0?r.classList.add("smart-icon-excel"):e.name.indexOf(".ppt")>=0?r.classList.add("smart-icon-powerpoint"):e.name.indexOf(".zip")>=0||e.name.indexOf(".rar")>=0||e.name.indexOf(".7z")>=0?r.classList.add("smart-icon-archive"):e.name.indexOf(".doc")>=0||e.name.indexOf(".docx")>=0?r.classList.add("smart-icon-word"):r.classList.add("smart-icon-file")):(r=document.createElement("img"),r.loading="lazy",r.src=a.objectURL[e.name+"_"+n],r.onerror=()=>{if(i.style.display="none",a.uploadedWithLink.length){const t=a.uploadedWithLink.indexOf(e);t>=0&&a.uploadedWithLink.splice(t,1)}}),i.file=e,i.title=o.textContentTitle||o.textContent,i.appendChild(r),i.appendChild(o),i}_updateFilePreview(){const e=this,t=e._dialogFile,a=t.preview,l=t.fileUpload;for(;a.firstChild;)a.removeChild(a.firstChild);const i=()=>{const l=document.createElement("div");l.classList.add("list");const i=document.createElement("div");i.classList.add("smart-grid-icon","show","smart-icon-delete"),i.title=e.localize("clear"),a.appendChild(i),i.onclick=()=>{e._removeFiles()},t.clearButton=i,a.appendChild(l)},n=l.files;if(0===n.length)if(0===t.uploadedWithLink.length){const t=document.createElement("p");t.textContent=e.localize("dialogFileFileUpload"),a.appendChild(t)}else i();else{i();const o=new DataTransfer,s=t.column.editor.maxImages||e.uploadSettings.uploadMaxCount||5,r=t.column.editor.maxImageSize||e.uploadSettings.uploadMaxSize||524288;let d=0,c=[];for(const l of n){if(!e._validateFileType(l))continue;const i=e._getFileListItem(l);if(d>=s)c.push(l.name);else if(l.size>r){const t=document.createElement("p");t.textContent=t.textContentTitle=e.localize("dialogFileSize",{value:l.name,fileSize:e._getFileSize(r)}),a.appendChild(t)}else o.items.add(l),t.preview.querySelector(".list").appendChild(i),d++}if(c.length>0){const t=document.createElement("p");t.textContent=e.localize("dialogFileCount",{files:c.toString(),fileCount:s}),a.appendChild(t)}l.files=o.files}if(t.uploadedWithLink&&t.uploadedWithLink.length)for(let a=0;a<t.uploadedWithLink.length;a++){const l=t.uploadedWithLink[a];if(l){const a=e._getFileListItem(l);l.name=l.label,a.file=l,t.preview.lastChild.appendChild(a)}}}_validateFileType(e){return this.getFileTypes(this._dialogFile.acceptFiles).includes(e.type)}_getFileIndex(e){const t=this._dialogFile;let a=-1;for(let l=0;l<t.uploadedWithLink.length;l++){const i=t.uploadedWithLink[l];if(i.label===e.name||i.label===e.label&&(void 0!==i.label||void 0!==e.label)){a=l;break}if(i.name===e.name||i.name===e.label){a=l;break}if(e.label.indexOf(i.name.substring(0,i.name.indexOf(".")))>=0){a=l;break}}for(let l=0;l<t.fileUpload.files.length;l++){const i=t.fileUpload.files[l];if(i.label===e.name||i.label===e.label&&(void 0!==i.label||void 0!==e.label)){a=l;break}if(i.name===e.name||i.name===e.label){a=l;break}if(e.label&&e.label.indexOf(i.name.substring(0,i.name.indexOf(".")))>=0){a=l;break}if(e.name&&e.name.indexOf(i.name.substring(0,i.name.indexOf(".")))>=0){a=l;break}}return a}_openFileDialog(e,t=!1){const a=this,l=a._dialogFile||a._createDialog(),i='<span class="smart-grid-icon '+(!1===t?"smart-icon-image":"smart-icon-docs")+' show"></span>'+(!1===t?a.localize("dialogImageFileHeader"):a.localize("dialogFileHeader"));if(l.cell=e,l.header.innerHTML=i,l.column=e.column,l.acceptFiles=t,l.classList.add("smart-grid-image-dialog"),!a._dialogFile){l.modal=!0,l.btnConfirm.innerHTML=a.localize("dialogEditButtonConfirm"),l.btnCancel.innerHTML=a.localize("dialogEditButtonCancel");const e=()=>{l.loader&&l.loader.classList.add("smart-hidden"),l.close()};l.onOpen=function(){l.fileUpload.value="",l.input.value="",l.uploadedWithLink=[];let e=l.cell.editor.instance.getValue();if("[]"===e)return void l.tabs[0].click();l.tabs[0].click();let t=!0;const i=new DataTransfer;if("string"==typeof e&&e.indexOf("base64")>=0||"string"==typeof e&&e.indexOf("[{")>=0?e=JSON.parse(e):"string"==typeof e&&e.indexOf("./")>=0&&(e=e.split(","),e=e.map((e=>({label:e,value:e})))),Array.isArray(e)){let n=0;e.forEach((async o=>{if(t=!1,"string"==typeof o.value&&o.value.indexOf("base64")>=0&&(t=!0),t)i.items.add(a._getFileFromBase64(o.value,o.label));else{const t=(t,i)=>{a.uploadSettings.url&&(a._findUserFile(t)?(l.uploadedWithLink.push(t),n++,n===e.length&&a._updateFilePreview()):i("error"))};o.value.indexOf(window.location.host)>=0?t(o,(t=>{"error"!==t&&i.items.add(t),n++,n===e.length&&(l.fileUpload.files=i.files,a._updateFilePreview())})):(l.uploadedWithLink.push(o),n++,n===e.length&&a._updateFilePreview())}})),l.fileUpload.files=i.files,a._updateFilePreview()}else a._updateFilePreview()},l.onClose=function(){},l.btnCancel.onclick=function(){l.close()},l.btnClose.onclick=function(){l.close()},l.btnConfirm.onclick=function(){let i=[],n=[...l.fileUpload.files];l.loader?l.loader.classList.remove("smart-hidden"):(l.loader=document.createElement("div"),l.loader.classList.add("smart-grid-loader"),l.loader.style.width=l.loader.style.height="24px",l.btnConfirm.parentNode.insertBefore(l.loader,l.btnConfirm)),l.uploadedWithLink&&l.uploadedWithLink&&l.uploadedWithLink.length&&(i=i.concat(l.uploadedWithLink)),(()=>{if(l.cell.value&&"string"==typeof l.cell.value){const e=l.cell.value.indexOf("[{")>=0?JSON.parse(l.cell.value):[];e&&e.length&&(n=n.filter((t=>{let a=!0;return e.forEach((e=>{if(e.label===t.name&&(a=!1,!a)){const t={value:e.value,label:e.label};e.small&&(t.small=e.small),e.medium&&(t.medium=e.medium),e.large&&(t.large=e.large),i.push(t)}})),a})))}})();const o=()=>{const t=l.cell.value;l.cell.editor.instance.setValue(i),!(a.editing.dialog.enabled&&a.editing.dialog.visible)&&(a._endCellEdit(l.cell),a._handleFileColumnHistory(l.cell.row,l.cell.column.dataField,t,i)),e()};if(a.uploadSettings.url){const s=(t,i)=>{const n=t.filter((e=>-1!==e.value.indexOf(window.location.host)));if(i&&i[0]&&"error"===i[0].response&&(a.cancelEdit(),e()),n.length===l.fileUpload.files.length+l.uploadedWithLink.length){(i.files||i[0])&&a.uploadSettings.onUploadCompleted&&a.uploadSettings.onUploadCompleted({files:l.fileUpload.files,status:200,serverResponse:i});const t=l.cell.column.dataField;let o=l.cell.value;l.cell.editor.instance.setValue(n),!(a.editing.dialog.enabled&&a.editing.dialog.visible)&&(a._endCellEdit(l.cell),a._handleFileColumnHistory(l.cell.row,t,o,n)),e()}};if(0===n.length&&0===l.uploadedWithLink.length)l.cell.editor.instance.setValue(i),!(a.editing.dialog.enabled&&a.editing.dialog.visible)&&a._endCellEdit(l.cell),e();else if(a.uploadSettings.singleFilePost){let e=!1;for(let o=0;o<n.length;o++){const r=[];r.push(n[o]),a._handleFileUpload(l,r,i,t?"file":"image",s),e=!0}for(let t=0;t<l.uploadedWithLink.length;t++){const n=[];a._findUserFile(l.uploadedWithLink[t])||(n.push(l.uploadedWithLink[t].value),a._handleFileUpload(l,n,i,"url",s),e=!0)}e||o()}else if(n.length&&a._handleFileUpload(l,n,i,t?"file":"image",s),l.uploadedWithLink.length){const e=l.uploadedWithLink.filter((e=>!a._findUserFile(e)));if(e.length){const t=e.map((e=>e.value));a._handleFileUpload(l,t,i,"url",s)}else i.length===l.fileUpload.files.length+l.uploadedWithLink.length&&o()}}else{let e=0;for(let t=0;t<n.length;t++){const l=n[t];a._getBase64(l,(t=>{"error"===t&&console.log("Image load error"),e++,i.push({value:t,label:l.name}),e===n.length&&o()}))}0===n.length&&o()}},l.onkeydown=function(e){"Escape"===e.key&&l.close()},a._dialogFile=l,l.content.innerHTML=`\n <div>\n <div>\n <div class="tabs">\n <div class="active tab">\n <span class="smart-grid-icon smart-icon-plus show"></span><label>${a.localize("dialogFileDevice")}</label>\n </div>\n <div class="tab">\n <span class="smart-grid-icon smart-icon-link show"></span><label>${a.localize("dialogFileLink")}</label>\n </div>\n <div class="tab">\n <span class="smart-grid-icon smart-icon-cloud show"></span><label>${a.localize("dialogMyFiles")}</label>\n </div>\n </div>\n </div>\n <div class="smart-grid-drop-zone">\n <div>\n <div class="title"><span class="smart-grid-icon smart-icon-plus show"></span><label>${a.localize("dialogFileUpload")}</label></div>\n <div class="subtitle"><span class="smart-grid-icon smart-icon-docs show"></span><label>${a.localize("dialogFileDrop")}</label></div>\n </div> \n <input accept=".jpg, .jpeg, .png" type="file" multiple="multiple" style="display: none;">\n </div>\n <div class="smart-hidden url-zone">\n <div class="url-title">\n ${a.localize("dialogFileURL")}\n </div>\n <div class="upload">\n <smart-input placeholder="https://example.com/image.png" class="underlined"></smart-input>\n <br/>\n <smart-button disabled class="success">${a.localize("dialogFileURLUpload")}</smart-button>\n </div>\n </div>\n <div class="smart-hidden smart-grid-file-zone">\n \n <div class="files">\n </div>\n <div class="subtitle"><span class="smart-grid-icon smart-icon-attention-circled show"></span><label>${a.localize("dialogMyFilesTitle")}</label></div>\n </div>\n <div class="preview">\n </div>\n <br/>\n </div>`,l.input=l.querySelector("smart-input"),l.dropZone=l.querySelector(".smart-grid-drop-zone"),l.upload=l.querySelector(".title"),l.fileUpload=l.querySelector("input"),l.preview=l.querySelector(".preview"),l.tabs=l.querySelectorAll(".tab"),l.urlZone=l.querySelector(".url-zone"),l.fileZone=l.querySelector(".smart-grid-file-zone"),l.files=l.querySelector(".smart-grid-file-zone .files"),l.uploadButton=l.querySelector("smart-button"),l.input.accept=t?".jpg, .jpeg, .png, .pdf, .xls, .xlsx, .doc, .docx, .gif, .csv, .txt, .xml, .zip, .rtf, .ppt, .pptx, .avi, .html, .htm":".jpg, .jpeg, .png, .gif",l.dropZone.ondrop=l.dropZone.dropHere=e=>{if(e.preventDefault(),e.dataTransfer.items){let t=0;const i=l.column.editor.maxImages||5;for(let l=0;l<e.dataTransfer.items.length;l++)if("file"===e.dataTransfer.items[l].kind){const i=e.dataTransfer.items[l].getAsFile();a._validateFileType(i)&&t++}if(t===e.dataTransfer.files.length||t===i){const t=new DataTransfer;let n=[...e.dataTransfer.files],o=[...l.fileUpload.files];n.length>i&&(n=n.slice(0,5)),o.length>i&&(o=o.slice(0,5)),o.forEach(((e,a)=>{a<i&&t.items.add(e)})),n.forEach(((e,a)=>{a<i&&t.items.add(e)})),l.fileUpload.files=t.files,a._updateFilePreview()}}else l.fileUpload.files=e.dataTransfer.files,a._updateFilePreview()},l.dropZone.ondragover=e=>{e.preventDefault()},l.tabs[0].onclick=()=>{l.tabs[0].classList.add("active"),l.tabs[1].classList.remove("active"),l.tabs[2].classList.remove("active"),l.dropZone.classList.remove("smart-hidden"),l.fileZone.classList.add("smart-hidden"),l.urlZone.classList.add("smart-hidden")},l.tabs[1].onclick=()=>{l.tabs[0].classList.remove("active"),l.tabs[1].classList.add("active"),l.tabs[2].classList.remove("active"),l.dropZone.classList.add("smart-hidden"),l.fileZone.classList.add("smart-hidden"),l.urlZone.classList.remove("smart-hidden")},l.tabs[2].onclick=()=>{if(l.tabs[0].classList.remove("active"),l.tabs[1].classList.remove("active"),l.tabs[2].classList.add("active"),l.dropZone.classList.add("smart-hidden"),l.urlZone.classList.add("smart-hidden"),l.fileZone.classList.remove("smart-hidden"),l.files.innerHTML="",a.uploadSettings.userFiles&&a.uploadSettings.userFiles.length){const e=document.createDocumentFragment();a.uploadSettings.userFiles.forEach((t=>{Array.isArray(t)&&(t=t[0]);let i=t;"string"==typeof t.value&&t.value.indexOf("base64")>=0&&(t=a._getFileFromBase64(t.value,t.label)),t.type||(t.type="unknown");const n=a._getFileListItem(t);a._validateFileType(t)&&(a._getFileIndex(t)>=0&&n.classList.add("active"),n.onpointerdown=()=>{n.classList.toggle("active");let e=a._getFileIndex(t);n.classList.contains("active")?e<0&&l.uploadedWithLink.push({label:i.name||i.label,value:i.value}):a._removeFile(i),a._updateFilePreview()},e.appendChild(n))})),l.files.appendChild(e)}},l.uploadButton.onclick=()=>{const e=this,t=l.input.value,a=t.split("/"),i=a[a.length-1];if(l.column&&l.column.editor&&e.uploadSettings.url){const a={value:t,label:i},n=e._findUserFile(a);for(let e=0;e<l.uploadedWithLink.length;e++){if(l.uploadedWithLink[e].label===i)return;if(n&&l.uploadedWithLink[e].label===n.label)return}l.uploadedWithLink.push(n||a),e._updateFilePreview()}else{const a={value:t,label:i};for(let e=0;e<l.uploadedWithLink.length;e++)if(l.uploadedWithLink[e].label===i)return;l.uploadedWithLink.push(a),e._updateFilePreview()}l.input.value="",l.uploadButton.disabled=!0},l.fileUpload.onchange=()=>{if(0===l.fileUpload.files.length&&l._tempFiles)l.fileUpload.files=l._tempFiles;else if(l._tempFiles){const e=new DataTransfer,t=[...l.fileUpload.files],i=[...l._tempFiles];i.forEach((t=>{e.items.add(t)})),t.forEach((t=>{let l=!0;a._validateFileType(t)||(l=!1),i.forEach((e=>{e.name===t.name&&e.size===t.size&&e.lastModified===t.lastModified&&(l=!1)})),l&&e.items.add(t)})),l.fileUpload.files=e.files}a._updateFilePreview()},l.input.onchange=l.input.onblur=l.input.onkeyup=()=>{l.uploadButton.disabled=!l.input.value||!l.input.value.startsWith("https://");const e=l.input.value,t=e.split("/"),i=t[t.length-1];if(l.column&&l.column.editor&&a.uploadSettings.url){const t={value:e,label:i},n=a._findUserFile(t);for(let e=0;e<l.uploadedWithLink.length;e++)l.uploadedWithLink[e].label===i&&(l.uploadButton.disabled=!0),n&&l.uploadedWithLink[e].label===n.label&&(l.uploadButton.disabled=!0)}},l.upload.onclick=()=>{l._tempFiles=[];const e=new DataTransfer;[...l.fileUpload.files].forEach((t=>{e.items.add(t)})),l._tempFiles=e.files,l.fileUpload.click()}}l.fileUpload.accept=t?".jpg, .jpeg, .png, .pdf, .xls, .xlsx, .doc, .docx, .gif, .csv, .txt, .xml, .zip, .rtf, .ppt, .pptx, .avi, .html, .htm":".jpg, .jpeg, .png, .gif",l.open(),setTimeout((function(){l.btnConfirm.focus()}),100)}_handleFileUpload(e,t,a,l,i){const n=this;if(l||(l="image"),e.column&&e.column.editor&&n.uploadSettings.url){const o=new FormData,s=n.uploadSettings.url;let r=!1;const d=t[0],c=n.uploadSettings.data;c&&""!==c&&("string"==typeof c?o.append("postData",c):o.append("postData",JSON.stringify(c))),o.append("fileType",l);for(let e=0;e<t.length;e++)o.append(n.uploadSettings.name,t[e]),r=!0;let u=new XMLHttpRequest;u.open("POST",s),n.uploadSettings.onSetHeaders&&"function"==typeof n.uploadSettings.onSetHeaders&&n.uploadSettings.onSetHeaders(u,d),r&&n.$.fireEvent("uploadStarted",{files:t,size:d.size}),n.uploadSettings.onUploadStarted&&n.uploadSettings.onUploadStarted({files:t,status:u.status}),u.upload.onprogress=function(e){n.uploadSettings.onProgress&&n.uploadSettings.onProgress(e)},u.onabort=function(e){n.uploadSettings.onAbort&&n.uploadSettings.onAbort(e)},u.onerror=function(e){n.uploadSettings.onError&&n.uploadSettings.onError(e)},u.onload=function(){let e=!1;if(u.response&&("string"==typeof u.response?(e=u.response,e.indexOf("[{")>=0&&(e=JSON.parse(u.response))):e=JSON.parse(u.response)),u.status>=200&&u.status<=299){const o=(e,t)=>{if(e.response&&e.response.response&&"success"!==e.response.response)return null;let a=!1;u.fileURL&&(a=u.file_url);let l={};e&&e.file_url?a=e.file_url:e&&e[0]&&e[0].file_url&&(a=e[0].file_url);let i=!1;e&&e.file_url_small?i=e.file_url_small:e&&e[0]&&e[0].file_url_small&&(i=e[0].file_url_small);let n=!1;e&&e.file_url_medium?n=e.file_url_medium:e&&e[0]&&e[0].file_url_medium&&(n=e[0].file_url_medium);let o=!1;return e&&e.file_url_large?o=e.file_url_large:e&&e[0]&&e[0].file_url_large&&(o=e[0].file_url_large),a&&(l.value=a),i&&(l.small=i),n&&(l.medium=n),o&&(l.large=o),l.label=t,l};for(let i=0;i<t.length;i++){const s=t[i].name?[]:t[i].split("/"),r="url"===l?s[s.length-1]:t[i].name;n.uploadSettings.url;const d=o((e.files||e[0]&&e[0].files||[e[0]])[i],r);d&&a.push(d)}i(a,e)}else i(a,e),n.uploadSettings.onUploadError&&n.uploadSettings.onUploadError({files:t,status:u.status,serverResponse:e})},u.onreadystatechange=function(){e.column.editor.responseHandler&&"function"==typeof e.column.editor.responseHandler&&e.column.editor.responseHandler(u)},r&&u.send(o),n.uploadSettings.onChange&&n.uploadSettings.onChange(t)}}_handleFileColumnHistory(e,t,a,l){const i=this;if(i.storeHistory){a&&"string"==typeof a&&(a=a.indexOf("[{")>=0?(a=(a=JSON.parse(a)).map((e=>e.label))).toString():(a=(a=a.split(",")).map((e=>e.label?e.label:e))).toString()),a&&(Array.isArray(a)&&(a=a.map((e=>e.label))),a=a.toString()),null==a&&(a=""),l&&"string"==typeof l&&(l=(l=(l=JSON.parse(l)).map((e=>e.label))).toString()),null==l&&(l=""),l&&(Array.isArray(l)&&(l=l.map((e=>e.label))),l=l.toString());const n={user:i._currentUser.info.id,date:e.updatedDate};n.action=t,n.details={oldValue:a,value:l},e.addHistory(n)}}});
1456
+ Smart.Utilities.Assign("Grid.Dialog",class{_createOverlay(){const e=document.createElement("div");return e.onpointerdown=function(){return!1},e.onmousedown=function(){return!1},e.onclick=function(){},e.classList.add("smart-grid-dialog-overlay"),e}updateRelation(e,t){const a=this;for(let l=0;l<a.dataSourceSettings.relations.length;){const i=a.dataSourceSettings.relations[l];if(i.id===e){t.label&&(i.label=t.label),t.label&&(i.label=t.label),t.columns&&(i.columns=t.columns),t.dataSource&&(i.dataSource=t.dataSource);for(let t=0;t<a.columns.length;t++){const l=a.columns[t];if(l.relationField&&l.relationId&&l.relationId===e){const e=a._getRelationData(l.relationId);l.editor?(l.editor.isDirty=!0,l.editor.dataSource=e):(l.templateSettings={dataFields:[l.relationField]},l.editor={template:"grid",relationId:l.relationId,relationField:l.relationField,relationCascadingFields:l.relationCascadingFields,dataSource:e,columns:a._getRelationFieldsData(l.relationId)})}}a._recycle();break}}}_dragDialog(e,t){const a=this,l=a._dialogDragDetails.dialog;if(!e||l.pinned||l.maximized)return;if(!a._dialogDragDetails.started)return;let i,n;i=e.pageX-a._dialogDragDetails.x,n=e.pageY-a._dialogDragDetails.y;const o=Math.max(a._windowParent.element.clientHeight,a._windowParent.scrollElement.scrollHeight),s=Math.max(a._windowParent.element.clientWidth,a._windowParent.scrollElement.scrollWidth);switch(t){case"horizontal":a._dialogDragDetails.windowX=Math.max(0,Math.min(a._dialogDragDetails.windowX+i,s-l.offsetWidth)),l.style.left=a._dialogDragDetails.windowX+"px";break;case"vertical":a._dialogDragDetails.windowY=Math.max(0,Math.min(a._dialogDragDetails.windowY+n,o-l.offsetHeight)),l.style.top=a._dialogDragDetails.windowY+"px";break;case"both":a._dialogDragDetails.windowX=Math.max(0,Math.min(a._dialogDragDetails.windowX+i,s-l.offsetWidth)),a._dialogDragDetails.windowY=Math.max(0,Math.min(a._dialogDragDetails.windowY+n,o-l.offsetHeight)),l.style.left=a._dialogDragDetails.windowX+"px",l.style.top=a._dialogDragDetails.windowY+"px"}a._dialogDragDetails.top=l.offsetTop,a._dialogDragDetails.left=l.offsetLeft,a._dialogDragDetails.x=Math.max(a._windowParent.offsetLeft+a._dialogDragDetails.offsetX-a._windowParent.scrollElement.scrollLeft,Math.min(a._windowParent.offsetLeft+a._windowParent.element.offsetWidth-(a._windowParent.element.offsetWidth-l.offsetLeft)+a._dialogDragDetails.offsetX,e.pageX)),a._dialogDragDetails.y=Math.max(a._windowParent.offsetTop+a._dialogDragDetails.offsetY-a._windowParent.scrollElement.scrollTop,Math.min(a._windowParent.offsetTop+a._windowParent.element.offsetHeight-(a._windowParent.element.offsetHeight-l.offsetTop)+a._dialogDragDetails.offsetY,e.pageY))}_updateDialogDragDetails(e,t,a){const l=this;if(l._windowParent={initialParent:t.parentElement,element:document.documentElement,scrollElement:document.scrollingElement},l._dialogDragDetails||(l._dialogDragDetails={}),void 0===l._dialogDragDetails.minWidth||void 0===l._dialogDragDetails.minHeight||void 0===l._dialogDragDetails.maxWidth||void 0===l._dialogDragDetails.maxHeight){const e=getComputedStyle(t);l._dialogDragDetails.minWidth=parseFloat(e.getPropertyValue("min-width"))||0,l._dialogDragDetails.minHeight=parseFloat(e.getPropertyValue("min-height"))||0,l._dialogDragDetails.maxWidth=parseFloat(e.getPropertyValue("max-width"))||0,l._dialogDragDetails.maxHeight=parseFloat(e.getPropertyValue("max-height"))||0}l._dialogDragDetails.dialog=t,l._dialogDragDetails.windowX=t.offsetLeft,l._dialogDragDetails.windowY=t.offsetTop;const i=t.getBoundingClientRect(),n=t.parentElement===document.body?document.documentElement.getBoundingClientRect():t.parentElement?t.parentElement.getBoundingClientRect():document.documentElement.getBoundingClientRect(),o=window.scrollX||window.pageXOffset,s=window.scrollY||window.pageYOffset;l._windowParent.offsetLeft=n.left+o,l._windowParent.offsetTop=n.top+s,a&&"object"==typeof a&&(l._dialogDragDetails.offsetX=a.clientX-i.left,l._dialogDragDetails.offsetY=a.clientY-i.top),t.collapsed||(l.hasAnimation&&"minimize"===e?(l._dialogDragDetails.width=l._dialogDragDetails.width?l._dialogDragDetails.width:t.offsetWidth,l._dialogDragDetails.height=l._dialogDragDetails.height?l._dialogDragDetails.height:t.offsetHeight):(l._dialogDragDetails.width=t.offsetWidth,l._dialogDragDetails.height=t.offsetHeight),(t.style.width||t.style.height)&&(l._dialogDragDetails.resized=!0)),"minimize"!==e&&e&&(l._dialogDragDetails.type=e,l._dialogDragDetails.started=!0,l._dialogDragDetails.snapWindowWidth=t.offsetWidth,l._dialogDragDetails.snapWindowHeight=t.offsetHeight,a&&"object"==typeof a?(l._dialogDragDetails.x=a.pageX,l._dialogDragDetails.y=a.pageY):(l._dialogDragDetails.x=t.offsetLeft,l._dialogDragDetails.y=t.offsetTop))}_createPopup(e){const t=this;let a=document.createElement("div");return a.setAttribute("animation","none"),a.classList.add("smart-window","smart-grid-popup"),e||(e=t.editing.dialog),a.style.width="auto"===e.width?e.width:e.width+"px",a.style.height="auto"===e.height?e.height:e.height+"px",e.width&&"string"==typeof e.width&&(a.style.width=e.width),e.height&&"string"==typeof e.height&&(a.style.height=e.height),a.style.left="",a.style.top="",a.innerHTML='<div class="smart-container">\n <div class ="smart-content-container" smart-id="container">\n <div class="smart-content"><div class="smart-content-container"></div></div>\n </div>\n </div>\n ',a.querySelector&&a.querySelector(".smart-content")&&(a.content=a.querySelector(".smart-content").firstChild),document.body.appendChild(a),a.remove=function(){},a.close=function(){a.classList.contains("open")&&(a.classList.remove("open"),delete t._resizeHandling,a.addEventListener("transitionend",a.remove),a.addEventListener("transitioncancel",a.remove),a.onClose&&a.onClose())},a.open=function(l,i){a.removeEventListener("transitionend",a.remove),a.removeEventListener("transitioncancel",a.remove),t._resizeHandling=!1,void 0===l&&(l=e.left),void 0===i&&(i=e.top),requestAnimationFrame((function(){a.classList.add("open");const e=a.querySelector('[bind="name"]');if(e){const a=e.querySelector("smart-input");a&&t.editing.enabled&&a.focus()}const n=function(e,l){let i=t.offset(t);switch(t.dropDownMode&&(i={left:0,top:0}),"center"===e&&"horizontal"===l&&(e="middle"),e){case"top":return i.top;case"bottom":return Math.max(i.top,i.top+t.offsetHeight-a.offsetHeight);case"center":return Math.max(i.top,i.top+t.offsetHeight/2-a.offsetHeight/2);case"left":return i.left;case"middle":return i.left+t.offsetWidth/2-a.offsetWidth/2;case"right":return i.left+t.offsetWidth-a.offsetWidth}return"horizontal"===l?parseInt(e)+i.left:"vertical"===l?parseInt(e)+i.top:"number"==typeof e?e:parseInt(e)};a.style.left=n(l,"horizontal")+"px",a.style.top=n(i,"vertical")+"px",a.setPosition=(e,t)=>{t?a.style.left=n(e,"horizontal")+"px":a.style.top=n(e,"vertical")+"px"},"center"===l&&parseInt(a.style.left)<0&&(a.style.left="5%",a.style.maxWidth="90%"),"screenMiddle"===l&&(a.style.left="calc(50% - "+a.offsetWidth/2+"px)"),"screenCenter"===i&&(a.style.top="calc(50% - "+a.offsetHeight/2+"px)")})),a.onOpen&&a.onOpen()},a}_createDialog(e){const t=this;let a=document.createElement("div");e||(e=t.editing.dialog),void 0!==e.modal&&(a.modal=e.modal),void 0!==e.screenModal&&(a.screenModal=e.screenModal),a.setAttribute("animation","none"),a.classList.add("smart-window","smart-grid-dialog"),a.style.width="auto"===e.width?e.width:e.width+"px",a.style.height="auto"===e.height?e.height:e.height+"px",e.width&&"string"==typeof e.width&&(a.style.width=e.width),e.height&&"string"==typeof e.height&&(a.style.height=e.height),a.style.left="",a.style.top="",a.innerHTML=`<div class="smart-container">\n <div class ="smart-content-container" smart-id="container">\n <div id="headerSection" class="smart-header-section">\n <div class="smart-header">\n </div>\n <div class="smart-buttons-container">\n <button title="${t.localize("contextMenuItemDelete")}" tabindex=-1 class="smart-visibility-hidden smart-hidden smart-delete-button smart-grid-icon smart-icon-delete show smart-button smart-element" aria-label="Delete Row" smart-id="deleteButton"></button>\n <button title="${t.localize("copyURL")}" tabindex=-1 class="smart-visibility-hidden smart-hidden smart-copy-row-button smart-grid-icon smart-icon-link show smart-button smart-element" aria-label="Copy URL" smart-id="urlButton"></button>\n <button title="${t.localize("AI")}" tabindex=-1 class="smart-visibility-hidden smart-hidden smart-ai-button smart-grid-icon smart-icon-ai show smart-button smart-element" aria-label="Copy URL" smart-id="aiButton"></button>\n <button title="${t.localize("dialogEditHeaderMenu")}" tabindex=-1 class ="smart-visibility-hidden smart-hidden checked smart-comments-button smart-grid-icon smart-icon-menu show smart-button smart-element" aria-label="Comments" smart-id="commentsButton"></button>\n <button title="${t.localize("close")}" class ="smart-button smart-element smart-close-button" aria-label="Close" smart-id="closeButton"></button>\n </div>\n </div>\n <div class="smart-content"><div class="smart-content-container"></div></div>\n <div class ="smart-footer">\n \n <div class ="smart-stack-layout right spacing">\n <smart-button class ="smart-confirm-button item primary">Ok</smart-button>\n <smart-button class ="smart-cancel-button item">Cancel</smart-button>\n </div>\n </div>\n </div>\n </div>\n `,a.querySelector&&a.querySelector(".smart-content")&&(a.content=a.querySelector(".smart-content").firstChild),a.footer=a.querySelector(".smart-footer"),a.header=a.querySelector(".smart-header"),a.btnConfirm=a.querySelector(".smart-confirm-button"),a.btnCancel=a.querySelector(".smart-cancel-button"),a.btnDelete=a.querySelector(".smart-delete-button"),a.btnClose=a.querySelector(".smart-close-button"),a.btnComments=a.querySelector(".smart-comments-button"),a.btnLink=a.querySelector(".smart-copy-row-button"),a.btnAI=a.querySelector(".smart-ai-button"),a.headerSection=a.querySelector(".smart-header-section"),a.btnLink.onclick=()=>{let e=document.createElement("input"),t=window.location.href+"#activeRows="+a.row.id;navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(t).then((()=>{})):(document.body.appendChild(e),e.value=t,e.select(),document.execCommand("copy"),document.body.removeChild(e))},a.btnDelete.onclick=()=>{const e=a.row.id,l=t.editing.deleteDialog.enabled;t.editing.deleteDialog.enabled=!0,t.cancelEdit(),a.close(),t._openDeleteRowDialog(e,(function(e){t._endToolbarEdit&&t._endToolbarEdit(),t.deleteRow(e)})),t.editing.deleteDialog.enabled=l,a.close()},a.btnComments.onclick=()=>{const e=a.querySelector(".smart-grid-edit-dialog-layout");e&&e.classList.toggle("hide-activity"),a.btnComments.classList.toggle("checked")},!1!==a.allowDrag&&(a.headerSection.onpointerdown=e=>{t._updateDialogDragDetails("drag",a,e)},a.headerSection.onpointerup=()=>{t._dialogDragDetails&&(t._dialogDragDetails.started=!1)});const l=document.createElement("div");return l.classList.add("smart-grid-dialog-overlay"),l.onclick=function(){a.overlayClick&&a.overlayClick()},a.overlay=l,a.remove=function(){a.parentNode&&a.parentNode.removeChild(a)},a.close=function(){a.classList.contains("open")&&(a.classList.remove("open"),delete t._resizeHandling,a.addEventListener("transitionend",a.remove),a.addEventListener("transitioncancel",a.remove),a.modal&&a.overlay.parentNode&&a.overlay.parentNode.removeChild(a.overlay),t.layout.isDirty&&"grid"===t.view&&(t._resetCachedLayout(),t._refreshLayout(),t.refresh()),a.onClose&&a.onClose())},a.open=function(l,i){a.removeEventListener("transitionend",a.remove),a.removeEventListener("transitioncancel",a.remove),t.isInShadowDOM?t.getRootNode().appendChild(a):document.body.appendChild(a),t._resizeHandling=!1,void 0===l&&(l=e.left),void 0===i&&(i=e.top),requestAnimationFrame((function(){a.classList.add("open");const e=a.querySelector('[bind="name"]');if(e){const a=e.querySelector("smart-input");a&&t.editing.enabled&&a.focus()}const n=function(e,l){const i=t.offset(t);switch("center"===e&&"horizontal"===l&&(e="middle"),e){case"top":return i.top;case"bottom":return Math.max(i.top,i.top+t.offsetHeight-a.offsetHeight);case"center":return Math.max(i.top,i.top+t.offsetHeight/2-a.offsetHeight/2);case"left":return i.left;case"middle":return i.left+t.offsetWidth/2-a.offsetWidth/2;case"right":return i.left+t.offsetWidth-a.offsetWidth}return"horizontal"===l?parseInt(e)+i.left:"vertical"===l?parseInt(e)+i.top:"number"==typeof e?e:parseInt(e)};a.style.left=n(l,"horizontal")+"px",a.style.top=n(i,"vertical")+"px",a.setPosition=(e,t)=>{t?a.style.left=n(e,"horizontal")+"px":a.style.top=n(e,"vertical")+"px"},"center"===l&&parseInt(a.style.left)<0&&(a.style.left="5%",a.style.maxWidth="90%"),"screenMiddle"===l&&(a.style.left="calc(50% - "+a.offsetWidth/2+"px)"),"screenCenter"===i&&(a.style.top="calc(50% - "+a.offsetHeight/2+"px)")})),a.modal&&(a.screenModal?t.isInShadowDOM?t.getRootNode().appendChild(a.overlay):document.body.appendChild(a.overlay):t.appendChild(a.overlay)),a.onOpen&&a.onOpen()},a}_openAddRowDialog(e,t){const a=this;if(!a.editing.addDialog.enabled)return!1;const l=a._dialogAddRow||a._createDialog(),i="{{message}}"===a.editing.dialog.header?a.localize("dialogAddHeader"):a.editing.dialog.header,n=l.content;l.header.innerHTML=i,e.grid=a,void 0===e.index&&(e.index=a.rows.length,a._rowsAdded&&(e.index+=a._rowsAdded.length));const o=e.cells;let s=null,r=0;if(a._cellEditors||(a._cellEditors=[]),!a._dialogAddRow){l.modal=!0,l.btnConfirm.innerHTML=a.localize("dialogAddButtonConfirm"),l.btnCancel.innerHTML=a.localize("dialogAddButtonCancel"),l.onOpen=function(){a.editing.dialog.visible=!0},l.onClose=function(){a.editing.dialog.visible=!1},l.btnCancel.onclick=function(){l.close()},l.btnClose.onclick=function(){l.close()},l.btnConfirm.onclick=function(){const e={};for(let t=0;t<o.length;t++){const l=o[t],i=a._getEditorValue(l),n=a._getEditorId(l),s=a._cellEditors[n];s&&(i&&i.error?(e[l.column.dataField]=i.value,s.detach()):(e[l.column.dataField]=i,s.detach()))}const i=a._rowsAdded?a._rowsAdded.length:0,n=new Smart.Grid.Row({index:a.rows.length+i,id:Smart.Utilities.Core.createGUID(),grid:a,data:e});l.close(),t(n,0===l.index)},l.onkeydown=function(e){const t=e.key;"Enter"===t?l.btnConfirm.onclick():"Escape"===t&&l.close()},n.classList.add("smart-grid-layout");for(let e=0;e<a.columns.length;e++){const t=a.columns[e];if(!t.allowEdit)continue;r%2==0&&(s=document.createElement("div"),s.classList.add("smart-grid-edit-dialog-row"),n.appendChild(s));const l=document.createElement("div");l.classList.add("col-sm-6");const i=document.createElement("div");i.classList.add("column");const o=document.createElement("label");o.innerHTML=a.columns[e].label;const d=document.createElement("div");d.classList.add("smart-grid-dialog-editor"),d.setAttribute("editor",t.dataField),d.setAttribute("template",t.editor.template),l.appendChild(i),s.appendChild(l),i.appendChild(o),i.appendChild(d),r++}}l.open(),l.index=e.index;let d=0;for(let e=0;e<o.length;e++){const t=o[e],i=t.column,n=i.dataField,s=l.querySelector("[editor="+n+"]");if(!s)continue;s.innerHTML="";let r="";void 0!==t.value&&(r=t.value),"int64"!==i.dataType&&"number"!==i.dataType&&"int"!==i.dataType&&"float"!==i.dataType||(r=0),"date"===i.dataType&&(r=new Date),"bool"!==i.dataType&&"boolean"!==i.dataType||(r=!1);let c=null;switch(t.editor.template){default:case"custom":c=a._getCustomCellEditor(t);break;case"image":c=a._getImageCellEditor(t);break;case"checkBox":c=a._getCheckBoxCellEditor(t);break;case"autoComplete":c=a._getAutoCompleteCellEditor(t);break;case"dropDownList":c=a._getAutoCompleteCellEditor(t),c.readonly=!0,c.dropDownButtonPosition="right";break;case"comboBox":c=a._getAutoCompleteCellEditor(t),c.readonly=!1,c.dropDownButtonPosition="right";break;case"maskedTextBox":c=a._getMaskCellEditor(t);break;case"checkInput":c=a._getCheckInputCellEditor(t),c.readonly=!0,c.dropDownButtonPosition="right";break;case"multiInput":c=a._getMultiInputCellEditor(t),c.readonly=!0,c.dropDownButtonPosition="right";break;case"multiComboInput":c=a._getMultiComboInputCellEditor(t),c.readonly=!0,c.dropDownButtonPosition="right";break;case"time":case"timeInput":c=a._getTimeInputCellEditor(t);break;case"date":case"dateInput":c=a._getDateInputCellEditor(t);break;case"dateRangeInput":c=a._getDateRangeInputCellEditor(t);break;case"dateTimePicker":c=a._getDateTimePickerCellEditor(t);break;case"textArea":case"textarea":c=a._getTextAreaCellEditor(t);break;case"numberInput":case"text":case"input":c="numberInput"===t.editor.template?a._getNumberInputCellEditor(t):a._getInputCellEditor(t)}if(c.attach(),t.editor.instance=c,c.setValue(r),0===d&&setTimeout((()=>{a.editing.enabled&&c.focus()}),100),!t.editor.isInitialized&&(t.editor.isInitialized=!0,t.editor.onInit)){const e=t.editor.onInit(t.row.index,t.column.dataField,t.editor.instance.element,t.row.data);if(e&&e instanceof Promise)e.then((e=>{const a="custom"===t.editor.template?t.editor.instance.element.firstElementChild:t.editor.instance.element;for(let t in e)a[t]=e[t]}));else if(e){const a=e,l="custom"===t.editor.template?t.editor.instance.element.firstElementChild:t.editor.instance.element;for(let e in a)l[e]=a[e]}}if(t.editor.onRender){const e=t.editor.onRender(t.row.index,t.column.dataField,t.editor.instance.element,t.row.data);if(e&&e instanceof Promise)e.then((e=>{const a="custom"===t.editor.template?t.editor.instance.element.firstElementChild:t.editor.instance.element;for(let t in e)a[t]=e[t]}));else if(e){const a=e,l="custom"===t.editor.template?t.editor.instance.element.firstElementChild:t.editor.instance.element;for(let e in a)l[e]=a[e]}}s.appendChild(c.element),c.element.onfocus=()=>{s.setAttribute("focus","")},c.element.onblur=()=>{s.removeAttribute("focus")},d++}a._dialogAddRow=l}_createAiPromptDropdown(e){const t=this;if(document.querySelector(".smart-grid-edit-dialog-ai-prompt-dropdown"))return void(e.onclick=a=>{const l=document.querySelector(".smart-grid-edit-dialog-ai-prompt-dropdown");document.querySelector(".smart-grid-edit-dialog-ai-prompt-dropdown-content").classList.toggle("show");const i=t.offset(e);l.style.top=i.top+e.offsetHeight+"px",l.style.left=i.left+"px",a.stopPropagation()});const a=document.createElement("style");a.innerHTML="\n .smart-grid-edit-dialog-ai-prompt-dropdown-content {\n position: absolute;\n background-color: #f9f9f9;\n min-width: 300px;\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n padding: 12px 16px;\n z-index: 1;\n border-radius: 5px;\n margin-top: 10px;\n opacity: 0;\n transform: scaleY(0);\n transform-origin: top;\n transition: opacity 0.3s ease, transform 0.3s ease;\n }\n\n .smart-grid-edit-dialog-ai-prompt-dropdown-content.show {\n opacity: 1;\n transform: scaleY(1);\n }\n\n .smart-grid-edit-dialog-ai-prompt-result {\n margin-top: 10px;\n padding: 10px;\n background-color: #e9e9e9;\n border-radius: 5px;\n display: none;\n }\n\n .smart-grid-edit-dialog-ai-prompt-result.show {\n display: block;\n }\n\n .smart-grid-edit-dialog-ai-prompt-dropdown {\n z-index: 9999;\n position: absolute;\n }\n\n .smart-grid-edit-dialog-ai-prompt-input {\n width: 100%;\n height: 80px;\n }\n ",document.head.appendChild(a);const l=document.createElement("div");l.classList.add("smart-grid-edit-dialog-ai-prompt-dropdown"),l.innerHTML=`\n <div class="smart-grid-edit-dialog-ai-prompt-dropdown-content">\n <p>${t.localize("aiPrompt")}</p>\n <smart-text-area class="smart-grid-edit-dialog-ai-prompt-input" id="aiPromptInput" rows="4" cols="50"></smart-text-area>\n <smart-button><span style="padding-left: 16px; padding-right: 16px;">${t.localize("generate")}</span></smart-button>\n <div class="smart-grid-edit-dialog-ai-prompt-result"></div>\n </div>\n `,document.body.appendChild(l);const i=l.querySelector(".smart-grid-edit-dialog-ai-prompt-dropdown-content"),n=l.querySelector("smart-button"),o=l.querySelector(".smart-grid-edit-dialog-ai-prompt-input"),s=l.querySelector(".smart-grid-edit-dialog-ai-prompt-result");e.onclick=a=>{i.classList.toggle("show");const n=t.offset(e);l.style.top=n.top+e.offsetHeight+"px",l.style.left=n.left+"px",a.stopPropagation()},document.addEventListener("click",(t=>{i.contains(t.target)||t.target===e||i.classList.remove("show")})),n.addEventListener("click",(e=>{(e=>{const a=t.ai.url,l=t.ai.key;e.stopPropagation(),e.preventDefault(),e.target.classList.add("smart-grid-loading");let i=""+o.value;i?async function(e){const i=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({model:t.ai.model,prompt:e,max_tokens:t.ai.tokens,temperature:t.ai.temperature})});if(!i.ok)throw new Error(`Error: ${i.statusText}`);return(await i.json()).choices[0].text.trim()}(i).then((t=>{s.textContent=t,s.classList.add("show"),e.target.classList.remove("smart-grid-loading")})).catch((e=>{console.error("Error:",e)})):(s.textContent="",s.classList.add("show"),e.target.classList.remove("smart-grid-loading"))})(e)}))}_openEditDialog(e,t){const a=this;if(!a.editing.dialog.enabled)return!1;const l=a._dialogEdit||a._createDialog();let i="{{message}}"===a.editing.dialog.header?a.localize("dialogEditHeader",{value:a.editing.editRow?e.row.visibleIndex+1:e.column.label}):a.editing.dialog.header;const n=l.content;!1===a.editing.enabled?(l.classList.add("disable-edit"),i="{{message}}"===a.editing.dialog.header?a.localize("dialogEditHeaderDisabled",{value:a.editing.editRow?e.row.visibleIndex+1:e.column.label}):a.editing.dialog.header):l.classList.remove("disable-edit"),l.header.innerHTML=i,l.footer.classList.add("smart-hidden"),l.row=a.editing.editRow;const o=l.row.canNotify;l.row.canNotify=!1,l.row.showDetail=!1,l.row.canNotify=o,l.overlayClick=()=>{l.btnConfirm.click()};let s,r,d=null,c=0;if(void 0!==a._settingsDialogRowId){const e=`<div class="smart-buttons-container">\n <button title="${a.localize("pagerPreviousButton")}" tabindex=-1 class =" smart-button smart-element smart-prev-button" aria-label="Previous Record" smart-id="prevButton"></button>\n <button title="${a.localize("pagerNextButton")}" tabindex=-1 class =" smart-button smart-element smart-next-button" aria-label="Next Record" smart-id="nextButton"></button>\n </div>`;l.header.innerHTML=e+"<span>"+i+"</span>",l.btnPrev=l.querySelector(".smart-prev-button"),l.btnNext=l.querySelector(".smart-next-button"),l.header.style.display="flex",l.header.style.alignItems="center",a.editing.enabled?(l.btnDelete.classList.remove("smart-hidden"),l.btnComments.classList.remove("smart-hidden"),l.btnLink.classList.remove("smart-hidden"),l.btnDelete.classList.remove("smart-visibility-hidden"),l.btnComments.classList.remove("smart-visibility-hidden"),l.btnLink.classList.remove("smart-visibility-hidden"),a.ai.key&&(l.btnAI.classList.remove("smart-visibility-hidden"),this._createAiPromptDropdown(l.btnAI)),0===a.users.length||a.users.length&&"guest"===a._currentUser.info?(l.btnLink.classList.add("smart-visibility-hidden"),l.btnDelete.classList.add("smart-visibility-hidden"),l.btnComments.classList.add("smart-visibility-hidden")):(l.btnLink.classList.remove("smart-visibility-hidden"),l.btnDelete.classList.remove("smart-visibility-hidden"),l.btnComments.classList.remove("smart-visibility-hidden"))):l.btnLink.style.width=l.btnDelete.style.width=l.btnComments.style.width="0px";const t=e=>{const t=a.editing.editRow,i=a._recyclingRows.indexOf(t);let o=e?a._recyclingRows[i+1]:a._recyclingRows[i-1];if(a.grouping.enabled&&a.dataSource.groupBy&&a.dataSource.groupBy.length>0){let t=1;for(;o&&!o.leaf;)o=e?a._recyclingRows[i+t]:a._recyclingRows[i-t],t++}const s=t;if(void 0!==a._settingsDialogRowId&&a.editing.dialog.autoSave){const e=a.rowById[a._settingsDialogRowId];e&&(l.saveRowData(e,!1),a._disableEndEdit=!0,a._recycle(!1,!0),a._disableEndEdit=!1)}if(o){if(a.editing.recordNavigation=!0,a.editing.editRow=o,a._settingsDialogRowId=o.id,s.isEditing=!1,s.element.removeAttribute("edit"),"gallery"===a.view){const e=a.querySelector('.smart-card[row-id="'+l.row.id+'"]');e&&e.removeAttribute("edit");const t=a.querySelector('.smart-card[row-id="'+o.id+'"]');t&&t.setAttribute("edit","")}const e=o,t=s.cells,i=e.cells;"kanban"===a.view&&a._kanban&&a._kanban.selectTask(e.id),l.row=o,l.header.querySelector("span").innerHTML=a.localize("dialogEditHeader",{value:a.editing.editRow.visibleIndex+1}),"gallery"!==a.view&&e.element.row.data.$.id===e.data.$.id&&e.element.setAttribute("edit","");for(let a=0;a<i.length;a++){const l=i[a],n=l.column;if(!n.allowEdit||!1===n._visible)continue;l.isEditing=!0,t[a].isEditing=!1;const o=e.data[n.dataField];l.editor&&l.editor.instance&&l.editor.instance.setValue(o)}a._applySettingsDialogLayout(l,n,a.editing.editRow,!0),a.editing.enabled&&setTimeout((()=>{const e=l.querySelector(".smart-grid-dialog-editor input");e&&e.focus()}),100)}};l.btnNext.onmousedown=e=>{t(!0),e.preventDefault(),e.stopPropagation()},l.btnPrev.onmousedown=e=>{t(!1),e.preventDefault(),e.stopPropagation()}}if(!a._dialogEdit){l.modal=!0,l.btnConfirm.innerHTML=a.localize("dialogEditButtonConfirm"),l.btnCancel.innerHTML=a.localize("dialogEditButtonCancel"),l.onOpen=function(){a.editing.dialog.visible||(a.editing.dialog.visible=!0,void 0!==a._settingsDialogRowId&&l.editorsContent&&l.editorsContent.offsetHeight&&(l.editorsContent.style.maxHeight=l.editorsContent.offsetHeight+40+"px",l.editorsContent.offsetWidth>a.offsetWidth||l.editorsContent.offsetHeight>window.innerHeight||l.editorsContent.offsetWidth>window.innerWidth?setTimeout((()=>{const e=a.offset(a);l.style.left=e.left+"px",l.style.top=e.top+"px",l.style.width=l.style.minWidth=l.style.maxWidth=a.offsetWidth+"px",l.style.height=l.style.minHeight=l.style.maxHeight=a.offsetHeight+"px",l.editorsContent.style.maxHeight=""})):(l.style.width=l.style.minWidth="",l.style.height=l.style.minHeight="",400!==a.editing.dialog.height&&(l.style.height=l.style.minHeight=a.editing.dialog.height+"px",l.editorsContent.style.maxHeight=l.editorsContent.offsetHeight+40+"px"),400!==a.editing.dialog.width&&(l.style.width=l.style.minWidth=a.editing.dialog.width+"px"),"gallery"===a.view&&setTimeout((()=>{a.querySelector('.smart-card[row-id="'+l.row.id+'"]')}))),a.editing.enabled&&setTimeout((()=>{const e=l.querySelector(".smart-grid-dialog-editor input");e&&e.focus()}),100)))},l.onClose=function(){a.editing.dialog.visible=!1,l.row&&(l.row.showDetail=!1)},l.btnCancel.onclick=function(){a.editing.isEditing=!0,a.cancelEdit()},l.btnClose.onclick=function(){a.editing.isEditing=!0,a.cancelEdit()};const t=(e,t=!0)=>{if(!e)return!1;const i=e.cells;let n={};e.element.removeAttribute("error");for(let e=0;e<i.length;e++){const t=i[e],l=a._getEditorValue(t);n[t.column.dataField]=l}const o=a.validateRow(e.id,n);if(Object.keys(o).length>0){let e=!0;for(let t=0;t<i.length;t++){const n=i[t],s=o[n.column.dataField],r=l.querySelector(`[label-for="${n.column.dataField}"]`);if(r&&(r.innerHTML=""),s)for(let t in s){const l=s[t];let i="";if(!l)continue;let o=l[t];"minLength"!==t&&"maxLength"!==t||(o=l[t.toLowerCase()]),i=l.message?l.message:"required"===t||"valueMissing"===t?a.localize("requiredValue",{value:n.column.label}):"min"===t?a.localize("invalidMinValue",{value:n.column.label,min:o.min}):"max"===t?a.localize("invalidMaxValue",{value:n.column.label,max:o.max}):"minLength"===t?a.localize("invalidMinLengthValue",{value:n.column.label,min:o.requiredLength}):"maxLength"===t?a.localize("invalidMaxLengthValue",{value:n.column.label,max:o.requiredLength}):a.localize("invalidValue"),e=!1,r&&(r.innerHTML=i)}}if(!e)return!1}const s=e.style;e.updatedDate=new Date,e.updatedBy=a.currentUser,e.style=l._rowStyle,e.comments=l._rowComments;const r=a.dataSource.dataItemById[e.id];if(r){const t=r.$.index;a.dataSource&&e.comments!==a.dataSource.boundSource[t].comments&&(a._sortedColumns&&a._sortedColumns.length>0?r.comments=e.comments:a.dataSource.boundSource[t].comments=e.comments)}if(e.style=l._rowStyle,a.onRowStyle&&s!==e.style&&(null===s?a.onRowStyle(e.index,e,e.style):s.background===e.style.background&&s.color===e.style.color&&s.fontSize===e.style.fontSize&&s.fontStyle===e.style.fontStyle&&s.fontFamily===e.style.fontFamily&&s.fontWeight===e.style.fontWeight&&s.status===e.style.status&&s.textDecoration===e.style.textDecoration||a.onRowStyle(e.index,e,e.style)),!t){for(let t=0;t<i.length;t++){const l=i[t],n=a._getEditorValue(l),o=l.column.dataField;if(e.canNotify=!1,e.data.canNotify=!1,e.data[o]=n,r){const e=r.$.index;a.dataSource&&(a._sortedColumns&&a._sortedColumns.length>0?r[o]=n:a.dataSource.boundSource[e][o]=n)}e.canNotify=!0,e.data.canNotify=!0}a._onSaveRowData&&a._onSaveRowData(e)}return!0};if(l.saveRowData=t,l.btnConfirm.onclick=function(){if(void 0!==a._settingsDialogRowId){const e=a.rowById[a._settingsDialogRowId];let i=!0;if(e&&(i=t(e)),!i)return;if(l.columnVisibility){let e=!1;const t=a.columns.canNotify;a.columns.canNotify=!1;for(let t in l.columnVisibility){const i=a.columnByDataField[t];i.visible!==l.columnVisibility[t]&&(i.visible=l.columnVisibility[t],e=!0)}if(a.columns.canNotify=t,e)return a.endEdit(),a.refresh(!1),void(a.dataSource&&a.dataSource.boundHierarchy&&(a.dataSource.refreshHierarchy(),a._refreshRowHierarchy(),a.refresh()))}}a.endEdit(),a.dataSource&&a.dataSource.boundHierarchy&&(a.dataSource.refreshHierarchy(),a._refreshRowHierarchy(),a.refresh())},l.onkeydown=function(e){const t=e.key,l=a.editing.commandKeys;for(let e in l){const i=l[e];if(t===i.key){a._applyCommand(i.command);break}}},a.editing.editRow)if(void 0!==a._settingsDialogRowId)a._applySettingsDialogLayout(l,n,a.editing.editRow);else{n.classList.add("smart-grid-layout");for(let e=0;e<a.columns.length;e++){const t=a.columns[e];if(!t.allowEdit)continue;c%2==0&&(d=document.createElement("div"),d.classList.add("smart-grid-edit-dialog-row"),n.appendChild(d));const l=document.createElement("div");l.classList.add("col-sm-6");const i=document.createElement("div");i.classList.add("column");const o=a._settingsDialogRowId?document.createElement("div"):document.createElement("label");o.innerHTML=a.columns[e].label;const s=document.createElement("div");s.classList.add("smart-grid-dialog-editor"),s.setAttribute("editor",t.dataField),s.setAttribute("template",t.editor.template),l.appendChild(i),d.appendChild(l),i.appendChild(o),i.appendChild(s),c++}}else{const t=e.column,a=document.createElement("div");a.classList.add("smart-grid-dialog-editor"),a.setAttribute("editor",""),a.setAttribute("template",t.editor.template),n.appendChild(a)}}if(a._dialogEditPosition){const e=a.offset(a);s=parseInt(a._dialogEditPosition.left)-e.left,r=parseInt(a._dialogEditPosition.top)-e.top}if(a.editing.dialog.visible||l.open(s,r),a.editing.editRow){const a=l.querySelector("[editor="+e.column.dataField+"]");a&&(a.innerHTML="",a.appendChild(t.element),a.editor=t,a.editorValue=t.getValue(),t.element.onfocus=()=>{a.setAttribute("focus",""),a.setAttribute("touched",""),a.editorValue=t.getValue()},t.element.onblur=()=>{a.removeAttribute("focus"),a.editorValue!==t.getValue()&&a.setAttribute("pending","")})}else{const a=e.column,i=l.querySelector("[editor]");i.innerHTML="",i.setAttribute("template",a.editor.template),i.appendChild(t.element),i.editor=t,i.editorValue=t.getValue(),t.element.onfocus=()=>{i.setAttribute("focus",""),i.setAttribute("touched",""),i.editorValue=t.getValue()},t.element.onblur=()=>{i.removeAttribute("focus"),i.editorValue!==t.getValue()&&i.setAttribute("pending","")}}a._dialogEdit=l}_refreshCurrentUser(){const e=this,t=e.users;let a=e.currentUser,l=!0,i=!0,n=e.editing.enabled,o=!0;t&&null!==a&&(a=t.find((e=>e.id===a)),a&&(l=!1!==a.allowAdd,i=!1!==a.allowComment,n=n&&!1!==a.allowEdit,o=!1!==a.allowRemove)),t&&t.length&&(null!==e.currentUser&&!1!==e.currentUser||(l=!1,i=!1,n=!1,o=!1,a="guest")),e._currentUser={allowAdd:l,allowComment:i,allowEdit:n,allowRemove:o,info:a}}_getColorInput(){const e=document.createElement("smart-color-input");return e.dataSource=["#D50000","#E67C73","#F4511E","#F6BF26","#0B8043","#33B679","#3F51B5","#039BE5","#7986CB","#8C47FF","#8E24AA","#FF36C2","#616161","#454545","#949494","#000000"],e.additionalColors=["#FF9EB7","#FFCFC9","#FFD66D","#FFEBB6","#93DF89","#D1F7C4","#9DC7FF","#D0F0FD","#CDAFFF","#ECE1FD","#FA9DE2","#FFDAF6","#CBCBCB","#EDEDED","#FFFFFF",""],e.valueDisplayMode="colorBox",e.classList.add("underlined","smart-grid-color-input"),e.style.width="auto",e.readonly=!0,e.onRender=()=>{const t=e.$.scrollView;t&&t.classList.add("smart-grid-color-input")},e}_applySettingsDialogLayout(e,t,a,l){const i=this;e.classList.add("smart-grid-dialog-expand-row");const n=e._rowStyle=JSON.parse(JSON.stringify(a._style)),o=e._rowComments=JSON.parse(JSON.stringify(a.comments));l&&e.activityContent.remove();const s=[];e.columnVisibility=s;let r=document.createElement("div"),d=document.createElement("div"),c=document.createElement("div"),u=document.createElement("div");l?(r=e.editorsContent,c=e.layoutContent,c.appendChild(d)):(c.appendChild(r),c.appendChild(u),c.appendChild(d),t.appendChild(c)),c.classList.add("smart-grid-edit-dialog-layout"),r.classList.add("smart-grid-edit-dialog-editors-container"),d.classList.add("smart-grid-edit-dialog-activity-container"),u.classList.add("smart-footer"),Smart.Utilities.Core.isMobile&&(c.classList.add("hide-activity"),e.btnComments.classList.remove("checked")),!1===i.editing.enabled&&d.classList.add("smart-hidden"),(0===i.users.length||i.users.length&&i._currentUser&&i._currentUser.info&&"guest"===i._currentUser.info)&&(d.classList.add("smart-hidden"),e.btnComments.classList.add("smart-hidden"),c.classList.add("hide-activity"),e.btnComments.classList.remove("checked"),e.btnComments.classList.add("smart-hidden"),e.btnLink.classList.add("smart-hidden"));const m=document.createElement("smart-button");m.innerHTML=`<span>${i.localize("dialogEditButtonSave")}</span>`,m.classList.add("primary");const p=document.createElement("smart-button");p.innerHTML=`<span>${i.localize("dialogEditButtonCancel")}</span>`;const g=document.createElement("div");g.classList.add("smart-flex"),g.style.flexDirection="row-reverse",g.appendChild(m),g.appendChild(p),p.style.marginRight="10px",u.appendChild(g);const b=document.createElement("div");b.classList.add("smart-flex"),b.style.alignItems="center",b.innerHTML=`<label style="margin-right: 5px;">${i.localize("dialogEditButtonAutoSave")}</label>\n <label title="${i.localize("dialogEditButtonAutoSave")}" class="smart-switch">\n <input type="checkbox">\n <span class="slider round"></span>\n </label>`,u.appendChild(b),i.users&&i.users.length&&(!1!==i.currentUser&&null!==i.currentUser&&void 0!==i.currentUser||u.classList.add("smart-hidden"));const f=b.querySelector("input");f.onchange=()=>{i.editing.dialog.autoSave=f.checked},i._currentUser.info&&!i._currentUser.allowEdit&&(u.classList.add("smart-hidden"),e.btnComments.classList.add("smart-hidden"),e.btnLink.classList.add("smart-hidden"),e.btnDelete.classList.add("smart-hidden")),!0===i.editing.dialog.autoSave&&(f.checked=!0),p.onclick=()=>{e.btnCancel.click()},m.onclick=()=>{e.btnConfirm.click()},Smart.Utilities.Core.isMobile&&(c.setAttribute("mobile",""),e.setAttribute("mobile",""));let h=0;for(let e=0;e<i.columns.length;e++){const t=i.columns[e];t.allowEdit&&!1!==t._visible&&h++}h>=8?r.classList.add("many"):r.classList.remove("many"),e.editorsContent=r,e.activityContent=d,e.layoutContent=c,e.footerContent=u,setTimeout((()=>{e.editorsContent.scrollHeight>e.editorsContent.offsetHeight?(u.style.setProperty("--smart-background","var(--smart-surface)"),u.style.borderTopStyle="solid",u.style.borderTopColor="var(--smart-border)",u.style.borderTopWidth="1px",p.classList.add("flat")):(u.style.setProperty("--smart-background",""),u.style.borderTopStyle="",u.style.borderTopColor="",u.style.borderTopWidth="",p.classList.remove("flat"))}),200);const y=document.createElement("div"),v=document.createElement("div");d.appendChild(y),d.appendChild(v);let C=o&&o.length?" ("+o.length+")":"";y.innerHTML=`\n <div class="tabs">\n <div view="comments" class="active tab"><div class="smart-flex tab-label"><span class="smart-grid-icon smart-icon-comment show"></span><span>${i.localize("commentsTab")}<span>${C}</span></span></div></div>\n <div view="history" class="tab smart-hidden"><div class="smart-flex tab-label"><span class="smart-grid-icon smart-icon-history show"></span>${i.localize("historyTab")}</div></div>\n <div view="details" class="tab"><div class="smart-flex tab-label"><span class="smart-grid-icon smart-icon-font show"></span>${i.localize("detailsTab")}</div></div>\n </div>\n <div class="smart-hidden details-tab">\n <div class="smart-grid-edit-dialog-row" style="grid-template-rows: 50px 50px 50px 50px 50px 1fr;"><div class="column"><div class="header smart-grid-edit-dialog-column-info">${i.localize("format").replace(":","")}\n <span title="${i.localize("resetFormat")}" class="reset-format smart-grid-icon smart-icon-reload show"></span>\n </div>\n </div>\n <div class="format-layout">\n <div title="${i.localize("background")}" class="smart-hidden format smart-grid-edit-dialog-column-info">\n <span class="smart-grid-icon smart-icon-color-background show"></span><div class="background"></div>\n </div>\n <div title="${i.localize("color")}" class="smart-hidden format smart-grid-edit-dialog-column-info">\n <span style="border-bottom: 2px solid #46CA78;" color="#46CA78" class="format smart-grid-icon smart-icon-font show"></span><div class="color"></div>\n </div>\n <div class="format-layout button-group">\n <span title="${i.localize("bold")}" class="formatbtn bold smart-grid-icon smart-icon-bold show"></span>\n <span title="${i.localize("italic")}" class="formatbtn italic smart-grid-icon smart-icon-italic show"></span>\n <span title="${i.localize("underline")}" class="formatbtn underline smart-grid-icon smart-icon-underline show"></span>\n <span style="text-decoration: line-through;" title="${i.localize("linethrough")}" class="formatbtn linethrough smart-grid-icon smart-icon-font show"></span>\n </div>\n </div>\n <div style="display: flex; flex-direction: column; margin-bottom: 20px;" class="format-layout font-group smart-flex">\n <span>${i.localize("fontFamily").replace(":","")}</span>\n <div title="${i.localize("fontFamily").replace(":","")}" class="format smart-grid-edit-dialog-column-info">\n <span class="smart-grid-icon smart-icon-font show"></span><div class="font-family"></div>\n </div>\n </div>\n <div style="margin-top: 20px; display: flex; flex-direction: column;" class="font-family format-layout font-group">\n <span>${i.localize("fontSize").replace(":","")}</span>\n <div title="${i.localize("fontSize").replace(":","")}" class="font-family format smart-grid-edit-dialog-column-info">\n <span class="smart-grid-icon smart-icon-fontsize show"></span><div class="font-size"></div>\n </div> \n </div>\n <div class="format-layout smart-hidden font-group">\n <div title="${i.localize("status").replace(":","")}" class="format smart-grid-edit-dialog-column-info">\n <span color="#F1C58B" class="smart-grid-icon smart-icon-star show"></span><div class="status"></div>\n </div>\n </div>\n </div>\n </div>\n <div class="comments-tab">\n <div class="column smart-hidden"><div class="smart-hidden comments-header smart-grid-edit-dialog-column-info">${i.localize("comments").replace(":","")}</div></div>\n <div class="comments-layout">\n <div class="comments"><span class="no-comments"><span>${i.localize("noComments")}</span></span></div>\n <div class="footer">\n <smart-text-area hint="${i.localize("comment")}" placeholder="${i.localize("commentPlaceholder")}" class="smart-text-area success underlined"></smart-text-area>\n <smart-button class="success">${i.localize("send")}</smart-button>\n </div>\n </div>\n </div>\n <div class="history-tab smart-hidden">\n <div class="history-layout">\n <div class="history"></div>\n </div>\n </div>\n `;const S=y.querySelectorAll(".tab");i.storeHistory&&(!i._currentUser||i._currentUser&&!i._currentUser.info?S[S.length-1].classList.add("smart-hidden"):S[S.length-1].classList.remove("smart-hidden")),!i.users||i.users&&0===i.users.length||!i._currentUser||i._currentUser&&!i._currentUser.info?S[S.length-2].classList.add("smart-hidden"):S[S.length-2].classList.remove("smart-hidden"),y.querySelector(".tabs").onpointerdown=e=>{const t=e.target.closest(".tab");if(t){const e=t.getAttribute("view"),a=y.querySelector(".details-tab"),l=y.querySelector(".comments-tab"),n=y.querySelector(".history-tab");a.classList.add("smart-hidden"),l.classList.add("smart-hidden"),n.classList.add("smart-hidden");for(let e=0;e<S.length;e++)S[e].classList.remove("active");switch(t.classList.add("active"),e){case"details":a.classList.remove("smart-hidden");break;case"comments":l.classList.remove("smart-hidden");break;case"history":n.classList.remove("smart-hidden"),i._refreshHistory()}}};const w=i._getColorInput();y.querySelector(".background").appendChild(w),w.onchange=()=>{n.background=w.value},n.background&&(w.value=n.background);const D=i._getColorInput();y.querySelector(".color").appendChild(D),D.onchange=()=>{n.color=D.value},n.color&&(D.value=n.color);const L=i._getColorInput();y.querySelector(".status").appendChild(L),L.onchange=()=>{n.status=L.value},n.status&&(L.value=n.status);const x=document.createElement("smart-input");x.style.width="auto",x.classList.add("underlined"),x.dropDownButtonPosition="right",x.readonly=!0,x.dropDownHeight="auto",x.dataSource=["-","Segoe UI","Arial","Georgia","Impact","Tahoma","Times New Roman","Verdana"],x.onchange=()=>{n.fontFamily=x.value},n.fontFamily?x.value=n.fontFamily:x.selectedIndex=0,y.querySelector(".font-family").appendChild(x);const _=document.createElement("smart-input");_.style.width="auto",_.classList.add("underlined"),_.dropDownButtonPosition="right",_.readonly=!0,_.dropDownHeight="auto",_.dataSource=["-","8px","10px","12px","14px","18px","24px"],_.onchange=()=>{n.fontSize=_.value},n.fontSize?_.value=n.fontSize:_.selectedIndex=0,y.querySelector(".font-size").appendChild(_);const k=y.querySelector(".button-group");k.onclick=e=>{const t=e.target.closest(".formatbtn");let a;t.classList.contains("checked")?(t.classList.remove("checked"),a=!1):(t.classList.add("checked"),a=!0),t.classList.contains("bold")?n.fontWeight=a?"bold":null:t.classList.contains("italic")?n.fontStyle=a?"italic":null:t.classList.contains("underline")?n.textDecoration=a?"underline":null:t.classList.contains("linethrough")&&(n.textDecoration=a?"line-through":null)},n.fontWeight?k.children[0].classList.add("checked"):k.children[0].classList.remove("checked"),n.fontStyle?k.children[1].classList.add("checked"):k.children[1].classList.remove("checked"),n.textDecoration?k.children[2].classList.add("checked"):k.children[2].classList.remove("checked"),y.querySelector(".reset-format").onclick=()=>{for(let e=0;e<k.children.length;e++)k.children[e].classList.remove("checked");x.selectedIndex=0,_.selectedIndex=0,D.value="",w.value="",L.value="",n.fontWeight=null,n.fontStyle=null,n.textDecoration=null,n.fontSize=null,n.fontFamily=null};const F=y.querySelector(".comments-header"),A=y.querySelector('[view="comments"]'),T=y.querySelector(".comments-layout smart-text-area"),z=y.querySelector(".comments-layout smart-button"),I=y.querySelector(".comments-layout .footer"),E=y.querySelector(".comments-layout .comments");T.users=i.users,z.disabled=!0,E.innerHTML=`<span class="no-comments"><span>${i.localize("noComments")}</span></span>`;const M=()=>{const e=E.querySelector(".no-comments");0===o.length?e.classList.remove("smart-hidden"):e.classList.add("smart-hidden")},H=()=>{i._commentEditing&&(i._commentEditing.parentNode&&i._commentEditing.parentNode.removeChild(i._commentEditing),delete i._commentEditing)};H();const B=e=>{const t=e.querySelector(".remove-button");H(),t.onclick=e=>{const t=e.target,l=o.indexOf(t.comment);if(H(),l>-1){const e=o[l];o.splice(l,1),i.$.fireEvent("commentRemove",{id:a.id,value:e}),i.onComment&&i.onComment(a.id,o),t.element.remove();const n=o.length?"("+o.length+")":"";F.innerHTML=A.lastElementChild.lastElementChild.innerHTML=`${i.localize("comments").replace(":","")} <span>${n}</span>`,M()}}},R=e=>{const t=e.querySelector(".edit-button");H();const a=e.querySelector(".comment-body");t.onclick=t=>{H();const a=t.target,l=o.indexOf(a.comment);if(!i._commentEditing&&l>-1){const t=o[l];let n=!1;if(i._currentUser.info&&t.userId===i._currentUser.info.id&&i._currentUser.allowComment&&(n=!0),!n)return;const s=document.createElement("smart-text-area");s.users=i.users;const r=e.querySelector(".comment-body");r.appendChild(s),r.style.position="relative",r.classList.add("edit"),s.style.width="100%",s.style.height="100%",s.style.minHeight="50px",s.style.minWidth="150px",s.style.left=s.style.top="0px",s.style.position="absolute",s.value=t.text,s.style.zIndex=5,s.style.boxShadow="var(--smart-elevation-2)",s.onkeydown=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),s.onblur=s.onchange=null,r.classList.remove("edit"),H())},s.onchange=s.onblur=()=>{if(t.text=s.value,""===s.value)return void e.querySelector(".remove-button").click();const l=i._createComment(t);a.element.parentNode===E&&(E.insertBefore(l,a.element),a.element.parentNode.removeChild(a.element),delete i._commentEditing),B(l),R(l)},s.focus(),i._commentEditing=s}},a.ondblclick=e=>{t.click()}};for(let e=0;e<o.length;e++){const t=o[e],a=i._createComment(t);B(a),R(a),E.appendChild(a)}if(setTimeout((()=>{E.scrollTop=E.scrollHeight}),200),i._commentUpdateInterval=setInterval((()=>{e.classList.contains("open")?i._commentEditing:clearInterval(i._commentUpdateInterval)}),5e3),F.innerHTML=`${i.localize("comments").replace(":","")} ${C}`,M(),T.onfocus=()=>{I.classList.add("focus")},T.onblur=()=>{I.classList.remove("focus")},T.onkeyup=()=>{z.disabled=""===T.value},z.onclick=t=>{if(""===T.value)return;i._refreshCurrentUser();const l={text:T.value,id:function(){const e=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return e()+e()}(),userId:i._currentUser.info?i._currentUser.info.id:-1,time:new Date},n=i._createComment(l);if(!n)return t.preventDefault(),void t.stopPropagation();B(n),R(n),o.push(l),i.$.fireEvent("commentAdd",{id:a.id,value:l}),i.onComment&&i.onComment(a.id,o),T.value="",z.disabled=!0,M(),E.appendChild(n),(()=>{const t=e._rowComments;if(H(),E.innerHTML=`<span class="no-comments"><span>${i.localize("noComments")}</span></span>`,M(),e.classList.contains("open"))for(let e=0;e<t.length;e++){const a=t[e],l=i._createComment(a);B(l),R(l),E.appendChild(l)}else clearInterval(i._commentUpdateInterval)})(),T.focus();const s=o.length?"("+o.length+")":"";F.innerHTML=A.lastElementChild.lastElementChild.innerHTML=`${i.localize("comments").replace(":","")} <span>${s}</span>`,E.scrollTop=E.scrollHeight,t.preventDefault(),t.stopPropagation()},l)return;const q=e=>{if(!e.allowEdit||!1===e._visible)return;const t=document.createElement("div");t.classList.add("smart-grid-edit-dialog-row"),r.appendChild(t),t.style.gridColumn="span 2",!1===e.visible&&t.classList.add("hidden-column");const a=document.createElement("div"),l=i._settingsDialogRowId?document.createElement("div"):document.createElement("label"),n=e.validationRules&&e.validationRules.length>0?"*":"";l.innerHTML=`<div class="smart-grid-edit-dialog-column-info"><span class="smart-grid-icon ${e.icon} show"></span><label>`+e.label+n+'</label><span toggle class="smart-grid-icon smart-icon-visibility-on show"</div>';const o=document.createElement("div");o.classList.add("smart-grid-dialog-editor"),o.setAttribute("editor",e.dataField),o.setAttribute("template",e.editor.template);const d=l.querySelector("[toggle]");d.column=e,s[e.dataField]=e.visible,d.title=i.localize("columnMenuItemHide"),!1===i.editing.enabled&&d.classList.add("smart-visibility-hidden"),d.onclick=()=>{s[d.column.dataField]=!d.column.visible,d.classList.contains("smart-icon-visibility-on")?(d.classList.remove("smart-icon-visibility-on"),d.classList.add("smart-icon-visibility-off"),d.title=i.localize("columnMenuItemShow")):(d.classList.add("smart-icon-visibility-on"),d.classList.remove("smart-icon-visibility-off"),d.title=i.localize("columnMenuItemHide"))},e.visible||(d.classList.remove("smart-icon-visibility-on"),d.title=i.localize("columnMenuItemShow")),e.visible?d.classList.add("smart-icon-visibility-on"):d.classList.add("smart-icon-visibility-off"),a.appendChild(l),a.appendChild(o);const c=document.createElement("label");c.classList.add("smart-field-editor-error-label"),c.setAttribute("label-for",e.dataField),a.appendChild(c),t.appendChild(a)},N=[];for(let e=0;e<i.columns.length;e++){const t=i.columns[e];t.visible?q(t):N.push(t)}if(N.length){const e=document.createElement("div");e.classList.add("smart-grid-edit-dialog-row"),r.appendChild(e),e.innerHTML=`<div class="smart-grid-edit-dialog-columns-separator"><span></span><div><div class="show toggle-button smart-flex">${i.localize("hideHiddenColumns",{value:N.length})}<span style="font-family: var(--smart-font-family-icon); font-size: 16px; margin-left: 5px; border:none;" class="smart-prev-button"></span></div></div><span></span></div>`,e.style.gridColumn="span 2",e.querySelector(".toggle-button").onclick=()=>{const t=r.querySelectorAll(".hidden-column"),a=e.querySelector(".toggle-button");a.classList.contains("show")?(a.innerHTML=`${i.localize("showHiddenColumns",{value:N.length})}<span style="font-family: var(--smart-font-family-icon); margin-left: 10px; border:none;" class="smart-next-button"></span>`,a.classList.remove("show")):(a.innerHTML=`${i.localize("hideHiddenColumns",{value:N.length})}<span style="font-family: var(--smart-font-family-icon); margin-left: 10px; border:none;" class="smart-prev-button"></span>`,a.classList.add("show")),t.forEach((e=>{e.classList.toggle("smart-hidden")}))};for(let e=0;e<N.length;e++)q(N[e])}}_getDateFormat(e){const t=new Smart.Utilities.DateTime(e),a=((new Date).getTime()-e.getTime())/1e3,l=Math.floor(Math.abs(a));if(""===this.locale||"en"===this.locale)return 0===l?"now":l<60?l+"s ago":l<3600?Math.floor(l/60)+"m ago":l<86400?Math.floor(l/3600)+"h ago":t.toString("dd/MM/yyyy hh:mm");t.toString("dd/MM/yyyy hh:mm")}_refreshHistory(){const e=this,t=e._dialogEdit;if(!t)return;const a=t.querySelector(".history");if(!e.storeHistory)return void a.classList.add("smart-hidden");if(!e._currentUser||e._currentUser&&!e._currentUser.info)return void a.classList.add("smart-hidden");a.classList.remove("smart-hidden");const l=t.row.history;if(!l)return;let i="\n ";for(let t=0;t<l.length;t++){const a=l[t];let n="";if(e._kanban)n=e._kanban._getHistoryItemLabel(a);else if("created"===a.action)n=e.localize("rowCreated",{value:a.action});else{const t=e.columnByDataField[a.action];n=e.localize("propertyUpdated",{value:t?"<strong>"+t.label+"</strong>":"<strong>"+a.action+"</strong>"})}i+='<div class="history-row">';const o=t=>{const a=t?t.image:null;let l=t?t.name||t.id:e.localize("guestUser");const i=a?"image":"",n=a?`background-image: url('${a}');`:"";return e._currentUser.info&&t.id===e._currentUser.info.id&&(""!==e.locale&&"en"!==e.locale||(l="You")),{image:n,label:l,cssClass:i}};let s="";if(void 0!==a.user){const t=o(e.users.find((e=>e.id===a.user)));i+=`<div class="history-indent"><div class="user-icon smart-icon ${t.cssClass}" style="${t.image}"></div></div>`,s=`<div class="history-header"><div class="user-name">${t.label}</div><div class="time">${e._getDateFormat(new Smart.Utilities.DateTime(a.date).toDate())}</div></div>`}else i+='<div class="history-indent"><div class="user-icon smart-icon"></div></div>',s='<div class="history-header"><div class="user-name"></div><div class="time"></div></div>';if(i+='<div class="history-main">',i+=s,i+=`<div class="history-body"><div class="title">${n}</div>`,"created"!==a.action){let t=a.details.oldValue,l=a.details.value;if("user"===a.action){const a=e.users.find((e=>e.id===t||e.id===parseFloat(t))),i=e.users.find((e=>e.id===l||e.id===parseFloat(l)));a?t=a.name:(t="",t||(t=e.localize("unassigned"))),i?l=i.name:(l="",l||(l=e.localize("unassigned")))}if("subtasks"===a.action){let t=[];"string"==typeof a.details.value?a.details.value.split(",").forEach((e=>{e.indexOf(": Y")>=0&&t.push(e)})):t=a.details.value.filter((e=>e.completed)),e._kanban?i+=`<span class="detail">${e._kanban.localize("taskSubtasksCompleted",{value:t.length+"/"+a.details.value.length})}</span>`:i+=`<span class="detail">${e.localize("completed",{value:t.length})}</span>`}else{t&&"object"==typeof t&&t instanceof Date&&(t=e._getDateFormat(t)),l&&"object"==typeof l&&l instanceof Date&&(l=e._getDateFormat(l));let n=e.columnByDataField[a.action];if(n||(n=e.columnByDataField["task"+a.action.substring(0,1).toUpperCase()+a.action.substring(1)]),"user"===a.action&&(n=e.columnByDataField.taskUserId),n&&n.editor&&n.editor.dataSource){for(let e=0;e<n.editor.dataSource.length;e++){const a=n.editor.dataSource[e];a.value===t&&(t=a.label),a.value===l&&(l=a.label)}t||(t=e.localize("unassigned")),l||(l=e.localize("unassigned"))}let o="";n&&n.label&&(o="<strong>"+n.label+"</strong>"),n&&"date"===n.dataType?(t&&"string"==typeof t&&(t=e._getDateFormat(new Date(t))),l&&"string"==typeof l&&(l=e._getDateFormat(new Date(l)))):(t&&"string"==typeof t&&(t=e._fromHTMLEntities(t)),l&&"string"==typeof l&&(l=e._fromHTMLEntities(l))),i+=t?`<div class="detail">${e.localize("range",{column:o,oldValue:"<i>"+t+"</i>",newValue:"<i>"+l+"</i>"})}</div>`:`<div class="detail">${e.localize("nullRange",{column:o,oldValue:"<i>"+t+"</i>",newValue:"<i>"+l+"</i>"})}</div>`}}else i+=`<div>${a.details.value}</div>`;i+="",i+="</div>",i+="</div>\n </div>"}i+="",a.innerHTML=i,setTimeout((()=>{a.scrollTop=a.scrollHeight}))}_createComment(e){const t=this,a=t.users.find((t=>t.id===e.userId));if(!a)return;const l=document.createElement("div"),i=a?a.name||a.id:t.localize("guestUser"),n=a.image?a.image:"";let o=a?a.name:t.localize("guestUser");t._currentUser.info&&a.id===t._currentUser.info.id&&(""!==t.locale&&"en"!==t.locale||(o="You")),e.text&&/<.+?>/.test(e.text)&&e.text.replace&&("all"===t.dataSourceSettings.sanitizeHTML?e.text=e.text.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;"):"blackList"===t.dataSourceSettings.sanitizeHTML&&(e.text=window.Smart.Utilities.Core.escapeHTML(e.text)));let s=e.text;if(s.indexOf("@")>=0)for(let e=0;e<t.users.length;e++){const a=t.users[e];if(s.indexOf("@"+a.name)>=0){let e=`<div style="border:1px solid var(--smart-border); position:relative; top: -3px; border-radius: 15px; padding-right: 6px; background: var(--smart-surface); align-items: center; display: inline-flex;"><div class="user-icon smart-icon" role="img" aria-label="Icon of user ${a.name}"></div><span>${a.name}</span></div>`;a.image&&(e=`<div style="border:1px solid var(--smart-border); position:relative; top: -3px; border-radius: 15px; padding-right: 6px; background: var(--smart-surface); align-items: center; display: inline-flex;"><div style="width: 24px; height: 24px; background-image: url('${a.image}');" class="image user-icon smart-icon" role="img" aria-label="Icon of user ${a.name}"></div><span>${a.name}</span></div>`),s=s.replaceAll("@"+a.name,e)}}l.className="comment",l.setAttribute("role","listitem");let r=e.time?e.time:"";if(""!==r){r=new Smart.Utilities.DateTime(e.time);const a=((new Date).getTime()-r.toDate().getTime())/1e3,l=Math.floor(Math.abs(a));r=""!==t.locale&&"en"!==t.locale?r.toString("dd/MM/yyyy hh:mm"):0===l?"now":l<60?l+"s ago":l<3600?Math.floor(l/60)+"m ago":l<86400?Math.floor(l/3600)+"h ago":r.toString("dd/MM/yyyy hh:mm")}if(l.innerHTML=`<div class="comment-indent" role="presentation">\n<div class="user-icon smart-icon" role="img" aria-label="Icon of user ${i}"></div>\n</div>\n<div class="comment-main" role="presentation">\n<div class="comment-header" role="presentation">\n <div class="user-name" aria-label="User name">${o}</div>\n <div class="edit-button${t._currentUser.info&&a.id===t._currentUser.info.id&&t._currentUser.allowComment?" enabled":""}" role="button" aria-haspopup="menu" aria-label="Comment settings"></div>\n <div class="remove-button${t._currentUser.info&&a.id===t._currentUser.info.id&&t._currentUser.allowComment?" enabled":""}" role="button" aria-haspopup="menu" aria-label="Comment settings"></div>\n <div class="time" aria-label="Comment time">${r}</div>\n</div>\n<div class="comment-body" aria-label="Comment text">${s||""}</div >\n</div>`,n){const e=l.querySelector(".user-icon");e.style.backgroundImage=`url('${n}')`,e.classList.add("image")}l.comment=e;const d=l.querySelector(".remove-button");d.comment=e,d.element=l,e.userId!==t._currentUser.info.id&&d.classList.add("smart-visibility-hidden");const c=l.querySelector(".edit-button");return c.comment=e,c.element=l,e.userId!==t._currentUser.info.id&&c.classList.add("smart-visibility-hidden"),l}_openSummaryRowDialog(e){const t=this,a=t._summaryRowDialog||t._createDialog(),l="{{message}}"===t.editing.dialog.header?t.localize("summary"):t.editing.dialog.header;if(a.header.innerHTML=l,!a.listBox){const e=document.createElement("smart-list-box");e.selectionMode="checkBox",e.style.borderColor="transparent",a.content.innerHTML="",a.listBox=e}const i=a.listBox;a.summaryValueElement&&a.summaryValueElement.classList.remove("summary-chooser");const n=e.element.querySelector(".summary-value");if(!n)return;n.classList.add("summary-chooser"),a.summaryValueElement=n;let o=[];a.dataField=e.column.dataField,"string"===e.column.dataType?(o=[{label:t.localize("countSummary"),value:"count"},{label:t.localize("blankSummary"),value:"blank"},{label:t.localize("filledSummary"),value:"filled"},{label:t.localize("uniqueSummary"),value:"unique"}],e.column.editor&&e.column.editor.dataSource&&e.column.editor.singleSelect&&o.push({label:t.localize("statusSummary"),value:"status"})):o="boolean"===e.column.dataType||"any"===e.column.dataType?[{label:t.localize("countSummary"),value:"count"},{label:t.localize("blankSummary"),value:"blank"},{label:t.localize("filledSummary"),value:"filled"}]:"date"===e.column.dataType?[{label:t.localize("countSummary"),value:"count"},{label:t.localize("blankSummary"),value:"blank"},{label:t.localize("filledSummary"),value:"filled"},{label:t.localize("uniqueSummary"),value:"unique"}]:[{label:t.localize("countSummary"),value:"count"},{label:t.localize("minSummary"),value:"min"},{label:t.localize("maxSummary"),value:"max"},{label:t.localize("sumSummary"),value:"sum"},{label:t.localize("avgSummary"),value:"avg"}],i.dataSource=o,i.style.position="absolute",i.style.visibility="hidden",i.style.height="auto",t.isInShadowDOM?t.getRootNode().appendChild(i):document.body.appendChild(i);const s=e.column;s.summary&&s.summary.forEach((e=>{i.select(e)}));const r=i.offsetHeight;a.column=s,a.content.appendChild(i),a.classList.add("smart-grid-dialog-summary"),a.header.parentElement.classList.add("smart-hidden"),a.footer.classList.add("smart-hidden"),i.style.visibility="",i.style.position="",i.style.width="100%",t._summaryRowDialog||(a.btnConfirm.innerHTML=t.localize("apply"),a.btnCancel.innerHTML=t.localize("cancel"),a.style.width=a.style.minWidth="120px",a.onOpen=function(){t.editing.dialog.visible=!0},a.onClose=function(){t.editing.dialog.visible=!1,a.summaryValueElement&&a.summaryValueElement.classList.remove("summary-chooser")},a.btnCancel.onclick=function(){a.close()},a.btnClose.onclick=function(){a.close()},a.btnConfirm.onclick=function(){const e=a.column.summary;a.column.summary=i.selectedValues,t.$.fireEvent("columnSummaryChange",{column:a.column,dataField:s.dataField,oldSummary:[...e],summary:[...a.column.summary]}),a.close(),t._calculateSummary(),t._recycle(!1)},a.confirm=function(){a.btnConfirm.click()},a.onkeydown=function(e){"Escape"===e.key&&a.close()},t._summaryRowDialog=a);const d=e.element,c=t.offset(d),u=t.offset(t);let m=d.offsetWidth+c.left-u.left-120;m<0&&(m=c.left-u.left),a.open(m,c.top-u.top-r-0),setTimeout((function(){a.btnConfirm.focus()}),100)}_openTextAreaDialog(e,t,a){const l=this;delete l._dialogTextArea;const i=l._dialogTextArea||l._createDialog();if(i.header.innerHTML=e.label,i.column=e,i.classList.add("smart-grid-textarea-dialog"),i.style.minWidth="250px",i.style.minHeight="250px",i.style.zIndex=99999,i.textarea=t,"richText"!==e.template?i.initialValue=t.value:i.initialValue=t.getHTML(),i.cell=a,!l._dialogTextArea){i.modal=!0,i.btnConfirm.innerHTML=l.localize("dialogEditButtonSave"),i.btnCancel.innerHTML=l.localize("dialogEditButtonCancel"),i.onOpen=function(){const t=i.querySelector("smart-text-area");t.value=i.textarea.value,t.onchange=t.oninput=()=>{setTimeout((()=>{"richText"===e.template?i.textarea.setHTML(t.getHTML()):i.textarea.value=t.value}))},l.editing.enabled&&setTimeout((()=>{t.focus()}),250)},i.onClose=function(){};const t=()=>{const e=document.querySelector(".smart-grid-text-area-dialog");e&&e.remove()};i.btnCancel.onclick=function(){if(i.close(),l.editing.dialog.enabled)return i.textarea.value=i.initialValue,void t();l.cancelEdit(),t()},i.btnClose.onclick=function(){if(i.close(),l.editing.dialog.enabled)return i.textarea.value=i.initialValue,void t();l.cancelEdit(),t()},i.btnConfirm.onclick=function(){if(i.close(),l.editing.dialog.enabled)return t(),void i.cell.editor.instance.setValue(i.textarea.value);i.cell.editor.instance.setValue(i.textarea.value),t(),l.endEdit()},i.onkeydown=function(e){"Escape"===e.key&&i.close()},l._dialogTextArea=i;const a=document.createElement("smart-text-area");a.classList.add("smart-text-area"),a.resize="both","richText"===e.template&&(a.richText=!0),a.users=l.users,a.style.resize="both",a.minWidth=350,a.style.minWidth="350px",a.style.minHeight="250px",a.style.width="450px",a.style.height="400px",a.minHeight=250,i.input=a,i.content.appendChild(a)}const n=l.offset(t),o=l.offset(l);i.open(n.left-o.left+e.computedWidth,n.top-o.top),setTimeout((function(){if("auto"!==i.style.height){const e=i.input;e.style.width="450px",e.style.height="400px",i.style.height="auto",i.style.width="auto",e.resize="both"}if(i.offsetHeight+n.top-o.top>window.innerHeight&&(i.style.top=o.top+"px",i.style.left=o.left+"px",i.style.width=l.offsetWidth+"px",i.style.height=l.offsetHeight+"px",i.input.style.width=l.offsetWidth-20+"px",i.input.style.height=l.offsetHeight-20+"px",i.input.resize="none"),n.left-o.left+e.computedWidth+i.offsetWidth>window.innerWidth){let t=n.left-o.left+e.computedWidth-i.offsetWidth;i.style.left=Math.max(t,0)+"px"}i.btnConfirm.focus()}),100)}_openDateDialog(e){const t=this,a=t._dialogDate||t._createDialog(),l=t.localize("dialogAddColumnDate");if(a.header.innerHTML=l,a.classList.add("smart-grid-dialog-add-column"),a.style.minWidth="250px",a.style.minHeight="250px",a.style.width="500px",a.style.height="300px",a.callback=e,!t._dialogDate){a.modal=!0,a.btnConfirm.innerHTML=t.localize("dialogEditButtonConfirm"),a.btnCancel.innerHTML=t.localize("dialogEditButtonCancel"),a.onOpen=function(){const e=a.querySelector("smart-input");setTimeout((()=>{e.focus()}),250)},a.onClose=function(){a.editColumn&&a.editColumn.element&&a.editColumn.element.removeAttribute("focus"),a.classList.remove("view"),a.callback&&a.callback(a.result)},a.btnCancel.onclick=function(){a.result=!1,a.close()},a.btnClose.onclick=function(){a.result=!1,a.close()},a.btnConfirm.onclick=function(){a.result=!0,a.close()},a.onkeydown=function(e){"Escape"===e.key&&(a.result=!1,a.close())},t._dialogDate=a;const e=document.createElement("smart-input");e.classList.add("underlined"),e.style.marginLeft="10px";const l=document.createElement("label");l.textContent=t.localize("schedulerDescription");const i=document.createElement("label");i.textContent=t.localize("schedulerDescriptionInfo"),a.content.appendChild(l);const n=document.createElement("div");n.classList.add("smart-flex","center"),n.style.marginTop="20px";const o=`<span class="smart-grid-icon show smart-icon-scheduler"></span><span>${t.localize("schedulerPromptLabel")}</span><br/>`;n.innerHTML=o,n.appendChild(e),a.content.appendChild(n),a.content.appendChild(i),i.style.width="440px",a.content.style.paddingTop="20px",a.content.style.paddingLeft="20px",a.content.style.paddingBottom="20px",a.content.style.paddingRight="20px",a.footer.style.paddingRight="25px",i.style.paddingTop="10px",i.style.paddingLeft="10px",i.style.paddingBottom="10px",i.style.paddingRight="10px",i.style.backgroundColor="var(--smart-ui-state-selected)",i.style.color="var(--smart-ui-state-color-selected)",i.style.marginTop="30px",i.style.marginBottom="30px",i.style.borderRadius="var(--smart-border-radius)"}a.open();const i=[];let n=[],o=0;for(let e=0;e<t.columns.length;e++){const a=t.columns[e];if("date"===a.dataType&&!n[a.dataField]){let e=a.label;if((t._dateStackedBy===a.dataField||t._dateStackedBy&&Array.isArray(t._dateStackedBy)&&t._dateStackedBy[0]===a.dataField)&&(o=i.length),a.editor&&a.editor.boundDateField){const l=t.columnByDataField[a.editor.boundDateField].label;n[a.editor.boundDateField]=!0,n[a.dataField]=!0,e+=` ${t.localize("and")} ${l}`,i.push({label:e,value:a.dataField,menuLabel:'<div class="smart-flex center"><span class="smart-grid-icon show smart-icon-scheduler"></span><span>'+e+"</span></div>"})}else i.push({label:a.label,value:a.dataField,menuLabel:'<div class="smart-flex center"><span class="smart-grid-icon show smart-icon-scheduler"></span><span>'+e+"</span></div>"})}}i.push({value:"+",menuLabel:'<div class="smart-flex center"><span class="smart-grid-icon show smart-icon-plus"></span><span>'+t.localize("schedulerDateColumn")+"</span>",label:t.localize("schedulerDateColumn")}),i.push({value:"++",menuLabel:'<div class="smart-flex center"><span class="smart-grid-icon show smart-icon-plus"></span><span>'+t.localize("schedulerDateRangeColumn")+"</span>",label:t.localize("schedulerDateRangeColumn")});const s=a.querySelector("smart-input");s.dataSource=i,s.clearValue(),s.selectedIndex=o,s.readonly=!0,s.dropDownButtonPosition="right",setTimeout((function(){a.btnConfirm.focus()}),100)}_openDescriptionDialog(e,t){const a=this,l=a._dialogDescription||a._createDialog(),i=a.localize("dialogDescriptionHeader",{value:e.label});if(l.header.innerHTML=i,l.column=e,l.command=t,l.classList.add("smart-grid-dialog-add-column"),!a._dialogDescription){l.modal=!0,l.btnConfirm.innerHTML=a.localize("dialogEditButtonConfirm"),l.btnCancel.innerHTML=a.localize("dialogEditButtonCancel"),l.onOpen=function(){const e=l.querySelector("smart-input");"duplicate"!==t&&setTimeout((()=>{e.select()}),250)},l.onClose=function(){},l.btnCancel.onclick=function(){l.close()},l.btnClose.onclick=function(){l.close()},l.btnConfirm.onclick=function(){const e=l.querySelector("smart-input");switch(l.command){case"duplicate":0===e.selectedIndex?a.duplicateCommand(l.column,null,!0):a.duplicateCommand(l.column,null,!1);break;case"rename":l.column.label=e.value;break;case"editDescription":l.column.description=e.value}l.close()},l.onkeydown=function(e){"Escape"===e.key&&l.close()},a._dialogDescription=l;const e=document.createElement("smart-input");e.classList.add("underlined"),e.dataSource="duplicate"!==t?[]:[{label:a.localize("duplicateCells"),value:"cells"},{label:a.localize("duplicateSettings"),value:"settings"}],l.content.appendChild(e)}const n=e.element,o=a.offset(n),s=a.offset(a);l.open(o.left-s.left,o.top+n.offsetHeight-s.top);const r=l.querySelector("smart-input");switch(r.selectedIndex=0,r.readonly=!0,r.dropDownButtonPosition="right",t){case"rename":r.value=e.label;break;case"editDescription":r.value=e.description}setTimeout((function(){l.btnConfirm.focus()}),100)}_openDeleteRowDialog(e,t){const a=this;if(!a.editing.deleteDialog.enabled)return!1;const l=a._dialogDelete||a._createDialog(),i="{{message}}"===a.editing.dialog.header?a.localize("dialogDeleteHeader",{value:e.visibleIndex+1}):a.editing.dialog.header;l.header.innerHTML=i,l.content.innerHTML=a.localize("dialogDeleteContent"),l.row=e,a._dialogDelete||(l.modal=!0,l.btnConfirm.innerHTML=a.localize("dialogDeleteButtonConfirm"),l.btnCancel.innerHTML=a.localize("dialogDeleteButtonCancel"),l.onOpen=function(){a.editing.dialog.visible=!0},l.onClose=function(){a.editing.dialog.visible=!1},l.btnCancel.onclick=function(){l.close()},l.btnClose.onclick=function(){l.close()},l.btnConfirm.onclick=function(){t(l.row),l.close()},l.onkeydown=function(e){"Escape"===e.key&&l.close()},a._dialogDelete=l),l.open(),setTimeout((function(){l.btnConfirm.focus()}),100)}_getTypesList(){const e=this,t=[{value:"string",prefix:'<span class="smart-grid-icon visible smart-icon-font"></span>',label:e.localize("dialogAddColumnTypeText")},{value:"multiText",prefix:'<span class="smart-grid-icon visible smart-icon-fontsize"></span>',label:e.localize("dialogAddColumnTypeMultilineText")},{value:"number",prefix:'<span class="smart-grid-icon visible smart-icon-number"></span>',label:e.localize("dialogAddColumnTypeNumber")},{value:"image",prefix:'<span class="smart-grid-icon visible smart-icon-image"></span>',label:e.localize("dialogAddColumnTypeImage")},{value:"select",prefix:'<span class="smart-grid-icon visible smart-icon-sort-down"></span>',label:e.localize("dialogAddColumnTypeSelect")},{value:"multiSelect",prefix:'<span class="smart-grid-icon visible smart-icon-list-unordered"></span>',label:e.localize("dialogAddColumnTypeMultipleSelect")},{value:"boolean",prefix:'<span class="smart-grid-icon visible smart-icon-check-squared"></span>',label:e.localize("dialogAddColumnTypeCheckBox")},{value:"attachment",prefix:'<span class="smart-grid-icon visible smart-icon-docs"></span>',label:e.localize("dialogAddColumnTypeAttachment")},{value:"date",prefix:'<span class="smart-grid-icon visible smart-icon-calendar"></span>',label:e.localize("dialogAddColumnTypeDate")},{value:"duration",prefix:'<span class="smart-grid-icon visible smart-icon-calendar"></span>',label:e.localize("dialogAddColumnTypeDuration")},{value:"time",prefix:'<span class="smart-grid-icon visible smart-icon-clock"></span>',label:e.localize("dialogAddColumnTypeTime")},{value:"createdTime",prefix:'<span class="smart-grid-icon visible smart-icon-clock"></span>',label:e.localize("dialogAddColumnTypeCreatedTime")},{value:"updatedTime",prefix:'<span class="smart-grid-icon visible smart-icon-clock"></span>',label:e.localize("dialogAddColumnTypeLastUpdatedTime")},{value:"createdBy",prefix:'<span class="smart-grid-icon visible smart-icon-user"></span>',label:e.localize("dialogAddColumnTypeCreatedBy")},{value:"updatedBy",prefix:'<span class="smart-grid-icon visible smart-icon-user"></span>',label:e.localize("dialogAddColumnTypeLastUpdatedBy")},{value:"collaborator",prefix:'<span class="smart-grid-icon visible smart-icon-user"></span>',label:e.localize("dialogAddColumnTypeCollaborator")},{value:"slider",prefix:'<span class="smart-grid-icon visible smart-icon-number"></span>',label:e.localize("dialogAddColumnTypeSlider")},{value:"formula",prefix:'<span class="smart-grid-icon visible smart-icon-math"></span>',label:e.localize("dialogAddColumnTypeFormula")},{value:"autoNumber",prefix:'<span class="smart-grid-icon visible smart-icon-list-ordered"></span>',label:e.localize("dialogAddColumnTypeAutoNumber")},{value:"url",prefix:'<span class="smart-grid-icon visible smart-icon-link"></span>',label:e.localize("dialogAddColumnTypeURL")},{value:"email",prefix:'<span class="smart-grid-icon visible smart-icon-mail"></span>',label:e.localize("dialogAddColumnTypeEmail")},{value:"phone",prefix:'<span class="smart-grid-icon visible smart-icon-phone"></span>',label:e.localize("dialogAddColumnTypePhone")},{value:"password",prefix:'<span class="smart-grid-icon visible smart-icon-lock"></span>',label:e.localize("dialogAddColumnTypePassword")},{value:"rating",prefix:'<span class="smart-grid-icon visible smart-icon-star"></span>',label:e.localize("dialogAddColumnTypeRating")},{value:"uuid",prefix:'<span class="smart-grid-icon visible smart-icon-number"></span>',label:e.localize("dialogAddColumnTypeUUID")},{value:"AIQuery",prefix:'<span class="smart-grid-icon visible smart-icon-ai"></span>',label:e.localize("dialogAddColumnTypeAIQuery")},{value:"sparklines",prefix:'<span class="smart-grid-icon visible smart-icon-chart"></span>',label:e.localize("dialogAddColumnTypeSparklines")}];if(e.dataSourceSettings.relations&&e.dataSourceSettings.relations.length&&t.splice(17,0,{value:"relationId",prefix:'<span class="smart-grid-icon visible smart-icon-table-alt"></span>',label:e.localize("dialogAddColumnTypeRowLink")}),e.header.visible&&(e.header.buttons.indexOf("views")>=0||e.header.buttons.indexOf("states")>=0)){const a={value:"progress",prefix:'<span class="smart-grid-icon visible smart-icon-number"></span>',label:e.localize("dialogAddColumnTypeProgress")},l={value:"checklist",prefix:'<span class="smart-grid-icon visible smart-icon-list-ordered"></span>',label:e.localize("dialogAddColumnTypeChecklist")},i={value:"color",prefix:'<span class="smart-grid-icon visible smart-icon-color-background"></span>',label:e.localize("dialogAddColumnTypeColor")};t.push(a),t.push(l),t.push(i)}return t}_getAddStackColumnDialogTemplate(){const e=this,t=[];let a=!1,l="";for(let i=0;i<e.columns.length;i++){const n=e.columns[i];(n.statusColumn||"taskStatus"===n.dataField||"taskStatus"===n._dataField||n.editor&&n.editor.dataSource&&n.editor.dataSource.length&&n.editor.singleSelect)&&(t.push({label:n.label,value:n.dataField}),e._stackedBy===n.dataField&&(t[t.length-1].checked=!0,a=!0,l=t[t.length-1].label))}const i=t.concat([{value:"blank",label:e.localize("kanbanNone")},{value:"basic",label:e.localize("kanbanBasic")}]);return a||(i[0].checked=!0,l=i[0].label),[{bind:"kanban",name:"kanban",type:"radio",label:2===i.length?e.localize("kanbanNoneDescription"):e.localize("kanbanDescription",{column:l}),filter:"kanban",options:i},{bind:"kanbanNotes",name:"kanbanNotes",type:"label",label:e.localize("dialogAddColumnStatusNotes"),filter:"kanban"},{bind:"name",type:"input",label:e.localize("dialogAddColumnName"),filter:"any",placeholder:e.localize("dialogAddColumnNamePlaceholder"),info:e.localize("dialogAddColumnNameInfo")},{bind:"allowColorItems",type:"boolean",label:e.localize("dialogAddColumnColorItems"),filter:"list, collaborator",value:!0,info:""},{bind:"options",name:"listitems",type:"items",label:e.localize("dialogAddColumnListItems"),filter:"list",info:""}]}_getAddColumnDialogTemplate(){const e=this,t=(new Date).getFullYear().toString(),a=new Date(t,6,30);return[{bind:"kanban",name:"kanban",type:"radio",label:e.localize("kanbanNoneDescription"),filter:"kanban",options:[{value:"blank",checked:!0,label:e.localize("kanbanNone")},{value:"basic",label:e.localize("kanbanBasic")}]},{bind:"kanbanNotes",name:"kanbanNotes",type:"label",label:e.localize("dialogAddColumnStatusNotes"),filter:"kanban"},{bind:"name",type:"input",label:e.localize("dialogAddColumnName"),filter:"any",placeholder:e.localize("dialogAddColumnNamePlaceholder"),info:e.localize("dialogAddColumnNameInfo")},{bind:"type",name:"typeslist",type:"dropDownList",filter:"any",label:e.localize("dialogAddColumnType"),icon:"smart-icon-font",options:e._getTypesList(),info:e.localize("dialogAddColumnTypeInfo")},{bind:"dateFormat",name:"dateformat",type:"dropDownList",label:e.localize("dialogAddColumnDateFormat"),options:[{value:"M/d/yyyy",label:e.localize("dialogAddColumnDateFormatShort")+" ("+new Smart.Utilities.DateTime(a).toString("d")+")"},{value:"dddd, MMMM dd, yyyy",label:e.localize("dialogAddColumnDateFormatLong")+" ("+new Smart.Utilities.DateTime(a).toString("D")+")"},{value:"yyyy-MM-ddTHH:mm:ss.sssZ",label:e.localize("dialogAddColumnDateFormatISO")+" ("+new Smart.Utilities.DateTime(a).toString("ISO8601")+")"},{value:"d/M/yyyy",label:e.localize("dialogAddColumnDateFormatEU")+" (30/7/"+t+")"},{value:"yyyy-MM-dd",label:e.localize("dialogAddColumnDateFormatAS")+" ("+t+"-30-07)"},{value:"MMMM, dd, yyyy",label:e.localize("dialogAddColumnDateFormatFull")+" (July, 30, "+t+")"}],filter:"date",info:e.localize("dialogAddColumnDateFormatInfo")},{bind:"timeFormat",name:"timeformat",type:"dropDownList",label:e.localize("dialogAddColumnTimeFormat"),filter:"time",width:"50%",options:[{value:"hh:mm tt",label:"12 "+e.localize("dialogAddColumnTimeFormatHour")},{value:"HH:mm",label:"24 "+e.localize("dialogAddColumnTimeFormatHour")}],info:e.localize("dialogAddColumnTimeFormatInfo")},{bind:"allowTimeFormat",type:"boolean",label:e.localize("dialogAddColumnAllowTimeFormat"),filter:"date",width:"50%",value:!1,info:""},{bind:"allowCustomDateSeparator",type:"boolean",label:e.localize("dialogAddColumnCustomDateSeparator"),filter:"date",width:"50%",value:!1,info:""},{bind:"dateFormatSeparator",name:"dateFormatSeparator",type:"radio",label:"",filter:"date",width:"100%",columns:3,options:[{value:"/",label:e.localize("dialogAddColumnDateFormatSlash")+" (/)"},{value:"-",label:e.localize("dialogAddColumnDateFormatHyphen")+" (-)"},{value:".",label:e.localize("dialogAddColumnDateFormatDot")+" (.)"}]},{bind:"numberFormat",name:"numberFormat",type:"dropDownList",label:e.localize("dialogAddColumnNumberFormat"),filter:"number",options:[{value:{style:"decimal",maximumFractionDigits:0},label:e.localize("dialogAddColumnNumberFormatInteger")+" 1,000"},{value:{style:"decimal",minimumFractionDigits:2},label:e.localize("dialogAddColumnNumberFormatNumber")+" 1,000.12"},{value:{style:"percent",minimumFractionDigits:2},label:e.localize("dialogAddColumnNumberFormatPercent")+" 10.12%"},{value:{style:"percent",maximumFractionDigits:0,minimumFractionDigits:0},label:e.localize("dialogAddColumnNumberFormatPercentRounded")+" 10%"},{value:{style:"decimal",notation:"scientific"},label:e.localize("dialogAddColumnNumberFormatScientific")+" 1.01E+03"},{value:{style:"decimal",notation:"engineering"},label:e.localize("dialogAddColumnNumberFormatEngineering")+" 34.284 x 10^9"},{value:{style:"currency",currency:e.messages[e.locale].calendar.currency,currencySign:"accounting"},label:e.localize("dialogAddColumnNumberFormatAccounting")+" $(1,000.12)"},{value:{style:"unit",unit:"kilogram"},label:e.localize("dialogAddColumnNumberFormatUnit")+" 10.12 kg"},{value:{style:"currency",currency:e.messages[e.locale].calendar.currency},label:e.localize("dialogAddColumnNumberFormatCurrency")+" $1,000.12"},{value:{style:"currency",currency:e.messages[e.locale].calendar.currency,maximumFractionDigits:0,minimumFractionDigits:0},label:e.localize("dialogAddColumnNumberFormatCurrencyRounded")+" $1,000"}],required:!1,info:e.localize("dialogAddColumnNumberFormatInfo")},{bind:"currency",name:"currency",type:"dropDownList",filter:"number",required:!1,options:e._getCurrencies(),label:e.localize("dialogAddColumnNumberFormatCurrency"),info:e.localize("dialogAddColumnNumberFormatCurrencyInfo")},{bind:"unit",name:"unit",type:"dropDownList",filter:"number",required:!1,options:[{value:"acre",label:e.localize("dialogAddColumnNumberFormatUnitAcre")},{value:"percent",label:e.localize("dialogAddColumnNumberFormatUnitPercent")},{value:"degree",label:e.localize("dialogAddColumnNumberFormatUnitDegree")},{value:"megabyte",label:e.localize("dialogAddColumnNumberFormatUnitMegaByte")},{value:"centimeter",label:e.localize("dialogAddColumnNumberFormatUnitCentimeter")},{value:"meter",label:e.localize("dialogAddColumnNumberFormatUnitMeter")},{value:"squaremeter",label:e.localize("dialogAddColumnNumberFormatUnitMeter")+"²"},{value:"cubicmeter",label:e.localize("dialogAddColumnNumberFormatUnitMeter")+"³"},{value:"kilometer",label:e.localize("dialogAddColumnNumberFormatUnitKilometer")},{value:"mile",label:e.localize("dialogAddColumnNumberFormatUnitMile")},{value:"celsius",label:e.localize("dialogAddColumnNumberFormatUnitCelsius")},{value:"fahrenheit",label:e.localize("dialogAddColumnNumberFormatUnitFahrenheit")},{value:"kilogram",label:e.localize("dialogAddColumnNumberFormatUnitKilogram")},{value:"pound",label:e.localize("dialogAddColumnNumberFormatUnitPound")},{value:"liter",label:e.localize("dialogAddColumnNumberFormatUnitLiter")},{value:"gallon",label:e.localize("dialogAddColumnNumberFormatUnitGallon")},{value:"second",label:e.localize("dialogAddColumnNumberFormatUnitSecond")},{value:"minute",label:e.localize("dialogAddColumnNumberFormatUnitMinute")},{value:"hour",label:e.localize("dialogAddColumnNumberFormatUnitHour")},{value:"day",label:e.localize("dialogAddColumnNumberFormatUnitDay")},{value:"week",label:e.localize("dialogAddColumnNumberFormatUnitWeek")},{value:"month",label:e.localize("dialogAddColumnNumberFormatUnitMonth")},{value:"year",label:e.localize("dialogAddColumnNumberFormatUnitYear")}],label:e.localize("dialogAddColumnNumberFormatUnit"),info:e.localize("dialogAddColumnNumberFormatUnitInfo")},{bind:"allowThousandsSeparator",name:"allowThousandsSeparator",type:"boolean",label:e.localize("dialogAddColumnNumberFormatSeparator"),filter:"number",value:!0,info:""},{bind:"minLength",name:"minlength",width:"50%",type:"number",filter:"text",required:!1,label:e.localize("dialogAddColumnMinLength"),info:e.localize("dialogAddColumnMinLengthInfo")},{bind:"maxLength",name:"maxlength",width:"50%",filter:"text",type:"number",required:!1,label:e.localize("dialogAddColumnMaxLength"),info:e.localize("dialogAddColumnMaxLengthInfo")},{bind:"minValue",name:"minvalue",width:"50%",filter:"number",type:"number",required:!1,label:e.localize("dialogAddColumnMinValue"),info:e.localize("dialogAddColumnMinValueInfo")},{bind:"maxValue",name:"maxvalue",width:"50%",filter:"number",type:"number",required:!1,label:e.localize("dialogAddColumnMaxValue"),info:e.localize("dialogAddColumnMaxValueInfo")},{bind:"minDateTime",name:"mindatetime",type:"datetime",filter:"date",width:"50%",label:e.localize("dialogAddColumnMinDate"),info:e.localize("dialogAddColumnMinDateInfo")},{bind:"maxDateTime",name:"maxdatetime",type:"datetime",width:"50%",filter:"date",label:e.localize("dialogAddColumnMaxDate"),info:e.localize("dialogAddColumnMaxDateInfo")},{bind:"deadline",name:"deadline",type:"dropDownList",label:e.localize("dialogAddColumnTypeDueDateSettings"),info:e.localize("dialogAddColumnTypeDueDateSettingsInfo"),filter:"date",options:[{value:"",label:e.localize("dialogAddColumnTypeNone")},{value:"dueDate",label:e.localize("dialogAddColumnTypeDueDate")},{value:"startDate",label:e.localize("dialogAddColumnTypeStartDate")}]},{bind:"deadlineStatus",name:"deadlineStatus",type:"dropDownList",label:e.localize("dialogAddColumnTypeStatus"),info:e.localize("dialogAddColumnTypeStatusInfo"),filter:"date",options:[]},{bind:"deadlineStartDate",name:"deadlineStartDate",type:"dropDownList",label:e.localize("dialogAddColumnTypeStartDate"),info:"",filter:"date",options:[]},{bind:"deadlineDueDate",name:"deadlineDueDate",type:"dropDownList",label:e.localize("dialogAddColumnTypeDueDate"),info:"",filter:"date",options:[]},{bind:"allowColorItems",type:"boolean",label:e.localize("dialogAddColumnColorItems"),filter:"hidden",value:!0,info:""},{bind:"presets",name:"presets",type:"dropDownList",label:"Presets",info:"",filter:"list",options:[{value:"none",label:"-"},{value:"status",label:e.localize("projectStatus")},{value:"review",label:e.localize("reviewStatus")},{value:"task",label:e.localize("taskStatus")},{value:"priority",label:e.localize("priority")},{value:"size",label:e.localize("size")},{value:"boolean",label:e.localize("yesNo")}]},{bind:"allowCheckItems",type:"boolean",filter:"hidden",value:!1,label:e.localize("dialogAddColumnCheckItems"),info:""},{bind:"allowMultipleCollaborators",type:"boolean",filter:"collaborator",value:!1,label:e.localize("dialogAddColumnMultipleCollaborators"),info:e.localize("dialogAddColumnMultipleCollaboratorsInfo")},{bind:"options",name:"listitems",type:"items",label:e.localize("dialogAddColumnListItems"),filter:"list",info:""},{bind:"users",name:"users",type:"items",label:e.localize("dialogAddColumnListItems"),filter:"collaborator",info:""},{bind:"formula",type:"formula",filter:"formula",info:e.localize("dialogAddColumnFormulaInfo"),label:e.localize("dialogAddColumnFormula")},{bind:"AIQuery",type:"AIQuery",filter:"AIQuery",info:e.localize("dialogAddColumnAIQueryInfo"),label:e.localize("dialogAddColumnAIQuery")},{bind:"sparklines",type:"sparklines",filter:"sparklines",info:"",label:e.localize("dialogAddColumnTypeSparklines")},{bind:"relationMultiField",name:"relationMultiField",type:"boolean",value:!1,filter:"relationId",hidden:!0,label:e.localize("dialogAddColumnLinkSelect")},{bind:"relationId",name:"relationId",type:"relationId",label:e.localize("dialogAddColumnLinkListItems"),filter:"relationId",info:""},{bind:"description",type:"input",label:e.localize("dialogAddColumnDescription"),filter:"any",placeholder:e.localize("dialogAddColumnDescriptionPlaceholder"),info:e.localize("dialogAddColumnDescriptionInfo")},{name:"align",bind:"cellsAlign",type:"dropDownList",label:e.localize("dialogAddColumnAlign"),required:!1,options:[{value:"left",label:e.localize("dialogAddColumnAlignLeft")},{value:"right",label:e.localize("dialogAddColumnAlignRight")},{value:"center",label:e.localize("dialogAddColumnAlignCenter")}],filter:"any",info:e.localize("dialogAddColumnAlignInfo")},{bind:"defaultString",name:"defaultString",type:"input",filter:"text",required:!1,label:e.localize("dialogAddColumnDefault")},{bind:"defaultNumber",name:"defaultNumber",type:"number",filter:"number",required:!1,label:e.localize("dialogAddColumnDefault")},{bind:"defaultDate",name:"defaultDate",type:"dropDownList",label:e.localize("dialogAddColumnDefault"),filter:"date",options:[{value:"current",label:e.localize("dialogAddColumnDefaultDateCurrent")},{value:"specific",label:e.localize("dialogAddColumnDefaultDateSpecific")}]},{bind:"defaultDateValue",name:"defaultDateValue",type:"datetime",filter:"date",label:e.localize("placeholderValue")},{bind:"setDefaultValue",type:"boolean",label:e.localize("dialogAddColumnDefault"),width:"50%",filter:"any",value:!1,info:""},{bind:"allowResize",type:"boolean",filter:"any",width:"50%",label:e.localize("dialogAddColumnResizable"),info:e.localize("dialogAddColumnResizableInfo")},{bind:"allowRichText",type:"boolean",filter:"multiText",width:"50%",value:!1,label:e.localize("dialogAddColumnFormatting"),info:""},{bind:"required",type:"boolean",width:"50%",filter:"any",value:!1,label:e.localize("dialogAddColumnRequired"),info:e.localize("dialogAddColumnRequiredInfo")},{bind:"allowSort",type:"boolean",width:"50%",filter:"any",label:e.localize("dialogAddColumnSortable"),info:e.localize("dialogAddColumnSortableInfo")},{bind:"allowFilter",type:"boolean",align:"left",width:"50%",filter:"any",label:e.localize("dialogAddColumnFilterable"),info:e.localize("dialogAddColumnFilterableInfo")},{bind:"allowEdit",type:"boolean",width:"50%",filter:"any",label:e.localize("dialogAddColumnEditable"),info:e.localize("dialogAddColumnEditableInfo")}]}_getKanbanFields(){return["startDate","dueDate","progress","checklist","priority","tags","name","color","description","status"]}_addColumnDialogShowHideEditors(e){const t=this,a=e.editColumn,l=e.querySelector('[bind="type"]'),i=l?l.querySelector("smart-input"):null,n=l?i.getSelectedItem().value:"kanban",o=e.querySelectorAll(".smart-grid-dialog-editor"),s=t._getKanbanFields(),r=e.querySelector('[field-name="kanbanNotes"]');r&&("kanban"!==t.view?r.classList.add("smart-hidden"):r.classList.remove("smart-hidden"));const d=t=>{const a=e.querySelector('[field-name="defaultDate"]'),l=e.querySelector('[field-name="defaultDateValue"]');if(!t)return a.classList.add("smart-hidden"),void l.classList.add("smart-hidden");a.classList.remove("smart-hidden"),"specific"===t?(l.classList.remove("smart-hidden"),l.style.width="50%",l.style.float="left",a.style.width="50%",a.style.float="left",a.style.clear="both"):(l.classList.add("smart-hidden"),l.style.width="",l.style.float="",a.style.width="",a.style.float="")};let c=!!a;if(a){switch(e.columnType||n){case"createdTime":case"updatedTime":case"createdBy":case"updatedBy":case"autoNumber":case"uuid":case"image":case"progress":case"color":case"collaborator":case"attachment":c=!0;break;default:c=!1}"checklist"!==a.template&&"color"!==a.template||(c=!0),!1===a.allowTypeChange&&(c=!0)}for(let l=0;l<o.length;l++){const i=o[l],r=i.getAttribute("filter"),u=i.getAttribute("bind"),m=i.parentNode;if("deadlineStatus"!==u&&"deadlineDueDate"!==u&&"deadlineStartDate"!==u)if(m.classList.add("smart-hidden"),"cellsAlign"===u&&("boolean"===n||"attachment"===n||"image"===n||"email"===n||"url"===n||"collaborator"===n||"createdBy"===n||"password"===n||"phone"===n||"createdTime"===n||"uuid"===n||"AIQuery"===n||"sparklines"===n||"rating"===n||"updatedBy"===n||"updatedTime"===n||s.indexOf(n)>=0))m.classList.add("smart-hidden");else if("type"===u&&c)m.classList.add("smart-hidden");else if("presets"===u&&a)m.classList.add("smart-hidden");else if("allowEdit"!==u||!1!==t.editing.enabled&&"autoNumber"!==n&&"uuid"!==n&&"createdBy"!==n&&"updatedBy"!==n&&"createdTime"!==n&&"updatedTime"!==n&&"uuid"!==n)if("allowResize"!==u||"none"!==t.behavior.columnResizeMode)if("allowFilter"!==u||!1!==t.filtering.enabled)if("allowSort"!==u||!1!==t.sorting.enabled)if("required"!==u||!1!==t.editing.enabled&&("string"===n||"multiText"===n||"name"===n||"description"===n||"select"===n||"collaborator"===n||"multiSelect"===n||"select"===n||"priority"===n))if(a&&a.disabledDialogOptions&&a.disabledDialogOptions.length>0&&a.disabledDialogOptions.indexOf(u)>=0)m.classList.add("smart-hidden");else{if(a&&"kanban"===t.view){switch(u){case"options":case"allowColorItems":case"allowSort":case"allowFilter":case"align":case"cellsAlign":case"allowResize":case"allowEdit":m.classList.add("smart-hidden");continue}"kanban"===t.view&&"kanban"===r&&m.classList.remove("smart-hidden")}if("deadline"!==u)if("setDefaultValue"!==u){if(a&&a.editor&&a.editor.collaborator)switch(u){case"options":m.classList.add("smart-hidden");continue;case"users":m.classList.remove("smart-hidden");continue}if("name"!==u||"kanban"!==t.view)if("any"!==r)switch(n){default:case"text":"text"!==r&&"multiText"!==r||("multiText"===r&&"string"===n?m.classList.add("smart-hidden"):m.classList.remove("smart-hidden")),a&&"any"===a.dataType&&m.classList.add("smart-hidden");break;case"slider":case"number":if("number"===r&&m.classList.remove("smart-hidden"),"unit"===u||"currency"===u||"allowThousandsSeparator"===u){m.classList.add("smart-hidden");const t=e.querySelector('[field-name="allowThousandsSeparator"]'),a=e.querySelector('[field-name="numberFormat"]'),l=e.querySelector('[field-name="unit"]'),i=e.querySelector('[field-name="currency"]'),n=a.querySelector("smart-input"),o=()=>{const e=n.getSelectedItem();i.classList.add("smart-hidden"),t.classList.add("smart-hidden"),e&&"decimal"===e.value.style&&!e.value.notation&&t.classList.remove("smart-hidden"),e&&"unit"===e.value.style?l.classList.remove("smart-hidden"):e&&"currency"===e.value.style?i.classList.remove("smart-hidden"):l.classList.add("smart-hidden")};a.onchange=()=>{o()},o()}break;case"select":case"multiSelect":r.indexOf("list")>=0&&m.classList.remove("smart-hidden");break;case"collaborator":r.indexOf("collaborator")>=0&&m.classList.remove("smart-hidden");break;case"createdBy":case"updatedBy":case"autoNumber":case"uuid":case"createdTime":case"updatedTime":case"url":case"email":case"image":case"attachment":case"phone":case"password":case"progress":case"rating":case"checklist":case"priority":case"tags":case"name":case"description":case"assigned":case"status":case"color":case"boolean":if("status"===n||"priority"===n||"tags"===n){r.indexOf("list")>=0&&m.classList.remove("smart-hidden");break}break;case"time":{const t=e.querySelector('[field-filter="time"]');t.classList.remove("smart-hidden"),t.style.width="",t.style.float="";break}case"AIQuery":"AIQuery"===u&&t.ai.key&&m.classList.remove("smart-hidden");break;case"sparklines":"sparklines"===u&&m.classList.remove("smart-hidden");break;case"formula":"formula"===u&&m.classList.remove("smart-hidden");break;case"relationId":"relationId"!==u&&"relationMultiField"!==u||m.classList.remove("smart-hidden"),"relationMultiField"===u&&m.classList.add("smart-hidden");break;case"duration":break;case"dueDate":case"startDate":case"date":{const t=e.querySelector('[field-name="dateFormat"]').querySelector(".smart-input").value;if("defaultDate"===u||"defaultDateValue"===u){const t=e.querySelector('[field-name="defaultDate"]'),l=e.querySelector('[field-name="defaultDateValue"]'),i=t.querySelector(".smart-input"),n=l.querySelector(".smart-input");a&&a.defaultValue?"today"===a.defaultValue?(i.selectedValues=["current"],n.value=null):(i.selectedValues=["specific"],n.value=a.defaultValue):(i.selectedValues=["current"],n.value=null),d(i.selectedValue)}"date"===r&&m.classList.remove("smart-hidden");const l=t=>{const a=e.querySelector('[field-filter="time"]'),l=e.querySelector('[field-name="dateFormat"]');t?(a.classList.remove("smart-hidden"),l.style.width="50%",l.style.float="left"):(a.classList.add("smart-hidden"),l.style.width="",l.style.float="")},n=t=>{const a=e.querySelector('[field-name="allowTimeFormat"]'),l=a.querySelector(".smart-grid-dialog-editor");t.indexOf("T")>=0?(a.classList.add("smart-hidden"),l.uncheck()):a.classList.remove("smart-hidden")},o=t=>{const a=e.querySelector('[field-name="dateFormatSeparator"]');t?a.classList.remove("smart-hidden"):a.classList.add("smart-hidden")};if("allowTimeFormat"===u){const e=i.querySelector(".smart-input").value;i.onchange=e=>{l(e)},l(e)}if("dateFormat"===u){const e=i.querySelector(".smart-input").value;i.onchange=e=>{n(e.detail.value)},n(e)}if("defaultDate"===u){const e=i.querySelector(".smart-input").value;i.onchange=e=>{d(e.detail.value)},d(e)}if("dateFormatSeparator"===u){const t=e.querySelector('[field-name="allowCustomDateSeparator"]').querySelector(".smart-input").value;o(t)}if("allowCustomDateSeparator"===u){t.indexOf("T")>=0&&t.indexOf("-")>0&&i.uncheck();const e=i.querySelector(".smart-input").value;i.onchange=e=>{o(e)},o(e)}n(t);break}}else m.classList.remove("smart-hidden");else{const e=t._getAddStackColumnDialogTemplate().find((e=>{if("kanban"===e.bind)return e}));e.options[e.options.length-1].checked||e.options[e.options.length-2].checked?i.classList.remove("smart-hidden"):i.classList.add("smart-hidden")}}else{switch(a&&a.defaultValue&&m.classList.remove("smart-hidden"),n){case"string":case"multiText":case"name":case"description":case"multiSelect":case"boolean":case"date":case"dueDate":case"startDate":case"collaborator":case"number":case"priority":case"status":case"select":m.classList.remove("smart-hidden");break;default:m.classList.add("smart-hidden")}const t=t=>{const a=e.querySelector('[bind="type"]'),l=a?a.querySelector("smart-input"):null,i=a?l.getSelectedItem().value:"kanban",n=e.querySelector('[field-name="defaultDate"]'),o=e.querySelector('[field-name="defaultNumber"]'),s=e.querySelector('[field-name="defaultString"]'),r=e.querySelector('[field-name="defaultDateValue"]'),c=e.querySelectorAll(".smart-default-item-container");n&&(n.classList.add("smart-hidden"),r.classList.add("smart-hidden")),o&&o.classList.add("smart-hidden"),s&&s.classList.add("smart-hidden");for(let e=0;e<c.length;e++)c[e].classList.add("smart-hidden");if(t)if("date"===i||"dueDate"===i||"startDate"===i){if(n){n.classList.remove("smart-hidden"),r.classList.remove("smart-hidden");const e=n.querySelector("smart-input").selectedValues;d(e&&e.length?e[0]:"current")}}else if("number"===i||"slider"===i)o&&o.classList.remove("smart-hidden");else if("string"===i||"multiText"===i||"name"===i||"description"===i)s&&s.classList.remove("smart-hidden");else for(let e=0;e<c.length;e++)c[e].classList.remove("smart-hidden")};i.onchange=e=>{t(e)};const l=e.querySelector('[field-name="setDefaultValue"]'),o=!(!a||null===a.defaultValue||void 0===a.defaultValue)||l.value;t(o)}else m.classList.add("smart-hidden"),t.header.visible&&(t.header.buttons.indexOf("views")>=0||t.header.buttons.indexOf("states")>=0)&&"date"===n&&m.classList.remove("smart-hidden")}else m.classList.add("smart-hidden");else m.classList.add("smart-hidden");else m.classList.add("smart-hidden");else m.classList.add("smart-hidden");else m.classList.add("smart-hidden")}}_addColumnDialogInitEditors(e,t,a){const l=this,i=e.editColumn,n=()=>{const e=a.deadline.parentElement.querySelector(".smart-input"),t=a.deadlineStatus.parentElement,l=a.deadlineDueDate.parentElement,i=a.deadlineStartDate.parentElement,n=t.querySelector("smart-input"),o=l.querySelector("smart-input"),s=i.querySelector("smart-input");t.classList.add("smart-hidden"),l.classList.add("smart-hidden"),i.classList.add("smart-hidden"),2===e.selectedIndex?l.classList.remove("smart-hidden"):1===e.selectedIndex&&(t.classList.remove("smart-hidden"),i.classList.remove("smart-hidden")),n.dataSource&&0===n.dataSource.length&&t.classList.add("smart-hidden"),o.dataSource&&0===o.dataSource.length&&l.classList.add("smart-hidden"),s.dataSource&&0===s.dataSource.length&&i.classList.add("smart-hidden")};for(let o in a){const s=a[o],r=s.querySelector("input"),d=s.querySelector("smart-input");switch(o){case"allowTimeFormat":{const e=s.querySelector(".smart-input");i&&i.editor?"dateInput"===i.editor.template?(e.value=!1,e.removeAttribute("checked")):(e.value=!0,e.setAttribute("checked","")):(e.value=!1,e.removeAttribute("checked"));break}case"allowRichText":{const e=s.querySelector(".smart-input");i&&"richText"===i.template?(e.value=!0,e.setAttribute("checked","")):(e.value=!1,e.removeAttribute("checked"));break}case"allowCustomDateSeparator":{const e=s.querySelector(".smart-input");e.value=!1,e.removeAttribute("checked");let t=0;i&&i.cellsFormat&&(i.cellsFormat.indexOf(".")>=0?(e.value=!0,e.setAttribute("checked",""),t=2):(i.cellsFormat.indexOf("M-d-yyyy")>=0||i.cellsFormat.indexOf("d-M-yyyy")>=0||i.cellsFormat.indexOf("yyyy/MM/dd")>=0)&&(e.value=!0,e.setAttribute("checked",""),t=1));const l=a.dateFormatSeparator.querySelectorAll(".smart-grid-dialog-boolean-field");l.forEach((e=>{e.value=!1,e.removeAttribute("checked")})),l[t].setAttribute("checked",""),l[t].click(),l[t].value=!0;break}case"kanban":{const t=s.querySelectorAll(".smart-grid-dialog-boolean-field");for(let a=0;a<t.length;a++){const i=t[a];i.onchange=a=>{const n=[...a.parentElement.children].indexOf(a),o=a.parentElement.parentElement.previousElementSibling,s=e.querySelector('[field-name="options"]'),r=e.querySelector('[field-name="allowColorItems"]'),d=e.querySelector('[field-name="name"]'),c=()=>{const t=s.querySelector("smart-sortable");t&&(t._validate(),e&&e.offsetHeight&&e.setPosition("center"))};n===t.length-1?(o.innerHTML=l.localize("kanbanBasicDescription"),r.classList.remove("smart-hidden"),s.classList.remove("smart-hidden"),d.classList.remove("smart-hidden"),d.querySelector(".smart-grid-dialog-editor ").classList.remove("smart-hidden"),d.querySelector("smart-input").value=l.localize("dialogNewColumn"),c()):n===t.length-2?(o.innerHTML=l.localize("kanbanNoneDescription"),r.classList.add("smart-hidden"),s.classList.add("smart-hidden"),d.classList.remove("smart-hidden"),d.querySelector(".smart-grid-dialog-editor ").classList.remove("smart-hidden"),d.querySelector("smart-input").value=l.localize("dialogNewColumn"),c()):(o.innerHTML=l.localize("kanbanDescription",{column:i.label.innerHTML}),r.classList.add("smart-hidden"),s.classList.remove("smart-hidden"),s.classList.add("smart-hidden"),d.classList.add("smart-hidden"),d.querySelector("smart-input").value=i.label.innerHTML,d.querySelector(".smart-grid-dialog-editor").classList.add("smart-hidden"),c())}}break}case"dateFormat":i&&i.cellsFormat?i.cellsFormat.indexOf("M/d/yyyy")>=0?d.selectedIndex=0:i.cellsFormat.indexOf("dddd, MMMM dd, yyyy")>=0?d.selectedIndex=1:i.cellsFormat.indexOf("yyyy-MM-ddTHH:mm:ss.sssZ")>=0?d.selectedIndex=2:i.cellsFormat.indexOf("d/M/yyyy")>=0?d.selectedIndex=3:i.cellsFormat.indexOf("yyyy-MM-dd")>=0?d.selectedIndex=4:i.cellsFormat.indexOf("MMMM, dd, yyyy")>=0&&(d.selectedIndex=5):d.selectedIndex=0;break;case"timeFormat":i&&i.cellsFormat&&i.cellsFormat.indexOf("HH")>=0&&-1===i.cellsFormat.indexOf("T")?d.selectedIndex=1:d.selectedIndex=0;break;case"allowMultipleCollaborators":{let e=!1;i&&i.editor&&i.editor.singleSelect&&(e=!1);const t=s.querySelector(".smart-input");i&&e?(t.value=!0,t.setAttribute("checked","")):(t.value=!1,t.removeAttribute("checked"));break}case"allowThousandsSeparator":{const e=s.querySelector(".smart-input");i&&i.editor&&"numberInput"===i.editor.template&&"progress"!==i.template&&"rating"!==i.template?(e.value=!0,e.setAttribute("checked",""),i.editor.numberFormat&&("decimal"!==i.editor.numberFormat.style||i.editor.numberFormat.notation||i.editor.numberFormat.useGrouping||(e.value=!1,e.removeAttribute("checked")))):(e.value=!0,e.setAttribute("checked",""));break}case"numberFormat":if(i&&"numberInput"===i.editor.template&&i.editor.numberFormat)if("decimal"===i.editor.numberFormat.style&&0===i.editor.numberFormat.maximumFractionDigits)d.selectedIndex=0;else if("decimal"===i.editor.numberFormat.style&&2===i.editor.numberFormat.minimumFractionDigits)d.selectedIndex=1;else if("percent"===i.editor.numberFormat.style&&2===i.editor.numberFormat.minimumFractionDigits)d.selectedIndex=2;else if("percent"===i.editor.numberFormat.style&&0===i.editor.numberFormat.maximumFractionDigits)d.selectedIndex=3;else if("decimal"===i.editor.numberFormat.style&&"scientific"===i.editor.numberFormat.notation)d.selectedIndex=4;else if("decimal"===i.editor.numberFormat.style&&"engineering"===i.editor.numberFormat.notation)d.selectedIndex=5;else if("currency"===i.editor.numberFormat.style&&"accounting"===i.editor.numberFormat.currencySign)d.selectedIndex=6;else if("unit"===i.editor.numberFormat.style){d.selectedIndex=7;const e=i.editor.numberFormat.unit,t=a.unit.querySelector("smart-input");t.dataSource.forEach(((a,l)=>{if(a.value===e)return t.selectedIndex=l,!0}))}else"currency"===i.editor.numberFormat.style&&0===i.editor.numberFormat.maximumFractionDigits&&0===i.editor.numberFormat.minimumFractionDigits?d.selectedIndex=9:"currency"===i.editor.numberFormat.style&&(d.selectedIndex=8);else d.selectedIndex=0;break;case"currency":if(i&&"numberInput"===i.editor.template&&i.editor.numberFormat){if("currency"===i.editor.numberFormat.style){const e=l._getCurrencies().findIndex((e=>e.value===i.editor.numberFormat.currency));e>=0&&(d.selectedIndex=e)}}else d.selectedIndex=0;break;case"allowCheckItems":{const e=s.querySelector(".smart-input");i?i.editor&&!i.editor.pills?(e.value=!0,e.setAttribute("checked","")):!1===i[o]&&(e.value=!1,e.removeAttribute("checked")):(e.value=!0,e.setAttribute("checked",""));break}case"allowColorItems":{const e=s.querySelector(".smart-input");i?i.editor&&i.editor.colorItems?(e.value=!0,e.setAttribute("checked","")):!1===i[o]&&(e.value=!1,e.removeAttribute("checked")):(e.value=!0,e.setAttribute("checked",""));break}case"setDefaultValue":{const e=s.querySelector(".smart-input");i?(e.value=!1,e.removeAttribute("checked"),i&&void 0!==i.defaultValue&&null!==i.defaultValue&&(e.value=!0,e.setAttribute("checked",""))):(e.value=!1,e.removeAttribute("checked"));break}case"defaultString":{const e=s.querySelector("smart-input");i&&void 0!==i.defaultValue&&null!==i.defaultValue?e.value=i.defaultValue:e.value="";break}case"defaultNumber":{const e=s.querySelector("smart-number-input");i&&void 0!==i.defaultValue&&null!==i.defaultValue?e.value=i.defaultValue:e.value=0;break}case"deadline":{const e=s.querySelector(".smart-input");e.selectedIndex=0,e.onchange=()=>{n()},i&&i.editor&&(e.selectedIndex=0,i.editor.onValidate&&"dueDate"!==i.template&&(e.selectedIndex=2),"dueDate"===i.template&&(e.selectedIndex=1)),n();break}case"deadlineStatus":{const t=s.querySelector(".smart-input"),a=[];for(let e=0;e<l.columns.length;e++){const t=l.columns[e];t&&t.editor&&t.editor.dataSource&&t.editor.singleSelect&&a.push({label:t.label,value:t.dataField})}a.length?t.dataSource=[{label:l.localize("dialogAddColumnTypeNone"),value:"none"}].concat(a):t.dataSource=a,e.editColumn&&(t.selectedValue="",e.editColumn&&e.editColumn.editor.boundDataField&&(t.selectedValue=e.editColumn.editor.boundDataField)),a.length||s.parentElement.classList.add("smart-hidden"),n();break}case"deadlineStartDate":{const t=s.querySelector(".smart-input"),a=[];a.push({label:l.localize("dialogAddColumnTypeNone"),value:"none"});for(let e=0;e<l.columns.length;e++){const t=l.columns[e];t&&"startDate"===t.template&&a.push({label:t.label,value:t.dataField,menuLabel:'<div class="smart-flex center"><span class="smart-grid-icon show smart-icon-scheduler"></span><span>'+t.label+"</span>"})}e.editColumn||a.push({value:"+",menuLabel:'<div class="smart-flex center"><span class="smart-grid-icon show smart-icon-scheduler"></span><span> + '+l.localize("dialogNewColumn")+"</span>",label:l.localize("dialogNewColumn")}),t.dataSource=a,e.editColumn&&(t.clearValue(),e.editColumn&&e.editColumn.editor.boundDataField&&(t.selectedValue=e.editColumn.editor.boundDataField),e.editColumn&&e.editColumn.editor.boundDateField&&(t.selectedValue=e.editColumn.editor.boundDateField)),a.length||s.parentElement.classList.add("smart-hidden"),n();break}case"deadlineDueDate":{const t=s.querySelector(".smart-input"),a=[];a.push({label:l.localize("dialogAddColumnTypeNone"),value:"none"});for(let e=0;e<l.columns.length;e++){const t=l.columns[e];t&&"dueDate"===t.template&&a.push({label:t.label,value:t.dataField,menuLabel:'<div class="smart-flex center"><span class="smart-grid-icon show smart-icon-scheduler"></span><span>'+t.label+"</span>"})}e.editColumn||a.push({value:"+",menuLabel:'<div class="smart-flex center"><span class="smart-grid-icon show smart-icon-scheduler"></span><span> + '+l.localize("dialogNewColumn")+"</span>",label:l.localize("dialogNewColumn")}),t.dataSource=a,e.editColumn&&(t.clearValue(),e.editColumn&&e.editColumn.editor.boundDataField&&(t.selectedValue=e.editColumn.editor.boundDataField),e.editColumn&&e.editColumn.editor.boundDateField&&(t.selectedValue=e.editColumn.editor.boundDateField)),a.length||s.parentElement.classList.add("smart-hidden"),n();break}case"formula":{const t=s.querySelector(".smart-input");t.clearValue(),e.editColumn&&e.editColumn.formula&&(t.value=e.editColumn.formula);break}case"AIQuery":{const t=s.querySelector(".smart-input");t.clearValue(),e.editColumn&&e.editColumn.AIQuery&&(l.columnByDataField[e.editColumn.AIQuery]?t.value=l.columnByDataField[e.editColumn.AIQuery].label:t.value=e.editColumn.AIQuery);break}case"sparklines":{const t=s.querySelector(".smart-input");t.clearValue(),e.editColumn&&e.editColumn.templateSettings?t.selectedValue=e.editColumn.templateSettings.type:t.selectedIndex=0;break}case"relationId":{const e=s.querySelector(".smart-input");e.dataSource=l._getRelations(),e.clearValue(),e.selectedValue=i?i.relationId:"";const t=s.querySelector(".field-input"),a=s.querySelector("smart-multi-input");if(t.dataSource=l._getRelationFieldsData(i?i.relationId:-1),t.clearValue(),a.clearValue(),i&&i.relationField){t.selectedValue=i.relationField,a.selectedValues=i.relationCascadingFields.split(",");const e=a.context;a.context=a,a.selectedValues=i.relationCascadingFields.split(","),a.context=e}break}case"allowResize":case"allowSort":case"allowEdit":case"allowFilter":case"required":{const e=s.querySelector(".smart-input"),a=t.find((e=>{if(e.bind===o)return e}));i?i[o]?(e.value=!0,e.setAttribute("checked","")):!1===i[o]&&(e.value=!1,e.removeAttribute("checked")):(e.value=!0,a&&void 0!==a.value&&(e.value=a.value),e.value&&e.setAttribute("checked",""));break}}if(!i||"options"!==o&&"users"!==o){const e=s.querySelector("smart-sortable");if(e&&e._init)if("users"===o){let t=[];for(let e=0;e<l.users.length;e++)t.push({color:l.users[e].color,label:l.users[e].name,id:l.users[e].id,value:l.users[e].id,image:l.users[e].image});e._init(t)}else e._init()}else{const e=s.querySelector("smart-sortable");if(e&&e._init)if(i.editor.singleSelect){const t=i.editor.dataSource.filter((e=>""!==e));e._init(t)}else if("multiComboInput"===i.editor.template)if("users"===o){let t=[];for(let e=0;e<l.users.length;e++)t.push({color:l.users[e].color,label:l.users[e].name,id:l.users[e].id,value:l.users[e].id,image:l.users[e].image});e._init(t)}else e._init(JSON.parse(JSON.stringify(i.editor.dataSource)))}if(i&&"type"===o?(d.dataSource=l._getTypesList(),"number"===i.dataType||"int"===i.dataType?d.dataSource.length>3&&(d.selectedIndex=3):"date"===i.dataType?d.dataSource.length>3&&(d.selectedIndex=7):"bool"!==i.dataType&&"boolean"!==i.dataType||d.dataSource.length>3&&(d.selectedIndex=6),i.editor&&i.editor.template&&d.dataSource.forEach(((e,t)=>{switch(e.value){case"string":"input"===i.editor.template&&(d.selectedIndex=t);break;case"number":"numberInput"===i.editor.template&&"progress"!==i.template&&"rating"!==i.template&&(d.selectedIndex=t);break;case"select":"multiComboInput"===i.editor.template&&i.editor.singleSelect&&"tags"===i.template&&!i.relationId&&(d.selectedIndex=t);break;case"multiSelect":"multiComboInput"!==i.editor.template||i.editor.singleSelect||"tags"!==i.template||i.relationId||(d.selectedIndex=t);break;case"multiText":"textarea"===i.editor.template&&(d.selectedIndex=t);break;case"date":"dateInput"!==i.editor.template&&"dateTimePicker"!==i.editor.template||(d.selectedIndex=t);break;case"duration":"dateRangeInput"===i.editor.template&&(d.selectedIndex=t);break;case"time":"timeInput"===i.editor.template&&(d.selectedIndex=t);break;case"checkBox":"checkBox"===i.editor.template&&(d.selectedIndex=t);break;case"slider":"slider"===i.editor.template&&(d.selectedIndex=t);break;case"image":"image"===i.editor.template&&(d.selectedIndex=t);break;case"attachment":"attachment"===i.editor.template&&(d.selectedIndex=t);break;case"updatedTime":"updatedTime"===i.template&&(d.selectedIndex=t);break;case"createdTime":"createdTime"===i.template&&(d.selectedIndex=t);break;case"createdBy":"createdBy"===i.template&&(d.selectedIndex=t);break;case"updatedBy":"updatedBy"===i.template&&(d.selectedIndex=t);break;case"collaborator":("collaborator"===i.template&&i.editor&&i.editor.collaborator||"tags"===i.template&&i.editor&&i.editor.collaborator)&&(d.selectedIndex=t);break;case"autoNumber":"autoNumber"===i.template&&(d.selectedIndex=t);break;case"phone":"phone"===i.template&&(d.selectedIndex=t);break;case"password":"password"===i.template&&(d.selectedIndex=t);break;case"url":"url"===i.template&&(d.selectedIndex=t);break;case"email":"email"===i.template&&(d.selectedIndex=t);break;case"dueDate":"dueDate"===i.template&&(d.selectedIndex=t);break;case"rating":"rating"===i.template&&(d.selectedIndex=t);break;case"progress":"progress"===i.template&&(d.selectedIndex=t);break;case"color":"color"===i.template&&(d.selectedIndex=t);break;case"formula":i.formula&&(d.selectedIndex=t);break;case"AIQuery":i.AIQuery&&(d.selectedIndex=t);break;case"sparklines":"sparklines"===i.template&&(d.selectedIndex=t);break;case"uuid":"uuid"===i.template&&(d.selectedIndex=t);break;case"relationId":i.relationId&&(d.selectedIndex=t)}}))):"type"===o&&(d.selectedIndex=0,d.dropDownOpenPosition="auto",d.dataSource=l._getTypesList()),"cellsAlign"===o&&i&&("center"===i.cellsAlign||"middle"===i.cellsAlign?d.selectedIndex=2:"right"===i.cellsAlign&&(d.selectedIndex=1)),!r)continue;if("dataField"!==o&&"type"!==o&&"deadline"!==o&&"timeFormat"!==o&&"dateFormat"!==o&&"deadlineStatus"!==o&&"deadlineDueDate"!==o&&"deadlineStartDate"!==o&&"relationId"!==o&&"AIQuery"!==o&&"sparklines"!==o&&"uuid"!==o&&"formula"!==o&&"numberFormat"!==o&&"currency"!==o&&"unit"!==o&&"cellsAlign"!==o&&d&&(d.selectedIndex=0),"name"===o){if(i){const e=i.label;d.value=l._unescapeString(e)}else d.value="";d.placeholder=t.find((e=>{if(e.bind===o)return e})).placeholder}"description"===o&&(d.value=i?l._unescapeString(i.description):"",d.placeholder=t.find((e=>{if(e.bind===o)return e})).placeholder);const c=(e,t)=>{i&&i.validationRules.forEach((a=>"minDate"===a.type&&"minDateTime"===e||"maxDate"===a.type&&"maxDateTime"===e||"min"===a.type&&"minValue"===e||"max"===a.type&&"maxValue"===e||a.type===e?(t.value=a.value,!0):void 0))};if("minValue"===o?(r.value=-9999999,c(o,r)):"maxValue"===o?(r.value=9999999,c(o,r)):"minLength"===o?(r.value=0,c(o,r)):"maxLength"===o&&(r.value=500,c(o,r)),"minDateTime"===o){const e=s.querySelector("smart-date-input");e.value=new Date(1900,0,1),c(o,e)}else if("maxDateTime"===o){const e=s.querySelector("smart-date-input");e.value=new Date(2100,0,1),c(o,e)}}}_createColumnBooleanEditor(e,t,a,l,i){e.setAttribute("template","checkBox"),e.setAttribute("editor","");const n=document.createElement("div");return n.classList.add("smart-input"),n.classList.add("smart-grid-cell-editor"),n.classList.add("smart-grid-check-box-cell-editor"),n.setAttribute("checked",""),n.value=!0,t.width&&(a.style.width=t.width,a.style.float="left"),!1===t.value&&(n.value=!1,n.removeAttribute("checked")),e.appendChild(n),e.getValue=function(){return n.value},e.check=function(){n.setAttribute("checked",""),n.value=!0,e.onchange&&e.onchange(n.value)},e.uncheck=function(){n.removeAttribute("checked"),n.value=!1,e.onchange&&e.onchange(n.value)},e.toggle=function(){!0!==n.value&&!1!==n.value&&null!==n.value&&(n.value=!1),null===n.value?n.value=!1:n.value=!n.value,!1===n.value?n.removeAttribute("checked"):n.setAttribute("checked",n.value?"":"indeterminate"),e.onchange&&e.onchange(n.value)},e.onclick=i.onclick=()=>{e.toggle()},e.setAttribute("tabindex",0),e.onkeydown=t=>{" "!==t.key&&"Enter"!==t.key||e.toggle()},l.appendChild(a),a.classList.add("smart-grid-dialog-boolean-field"),a.appendChild(e),a.appendChild(i),e}_getColumnTemplateByType(e,t){switch(e){case"boolean":case"bool":return"checkBox";case"image":return"image";case"rating":return"rating";case"attachment":return"attachment";case"createdBy":case"updatedBy":return e;case"collaborator":return"collaborator";case"relationId":return"dropdownGrid";case"select":case"multiSelect":return"tags";case"url":return"url";case"email":return"email";case"autoNumber":return"autoNumber";case"password":return"password";case"createdTime":return"createdTime";case"updatedTime":return"updatedTime";case"dueDate":return"dueDate";case"duration":return"duration";case"uuid":return"uuid";case"AIQuery":return"ai";case"sparklines":return"sparklines";case"multiText":return t.allowRichText?"richText":"";default:return""}}_getRelations(){const e=this;let t=[];t.push({label:"",menuLabel:"&nbsp;",value:""});for(let a=0;a<e.dataSourceSettings.relations.length;a++){const l=e.dataSourceSettings.relations[a];t.push({value:l.id,label:l.label})}return t}_getRelationFieldsData(e){const t=this;let a={};for(let e=0;e<t.dataSourceSettings.relations.length;e++){const l=t.dataSourceSettings.relations[e];a[l.id]=l}const l=a[e];return l?("string"==typeof l.columns?JSON.parse(l.columns):l.columns).filter((e=>!e.template||!e.relationField&&("tags"===e.template||"collaborator"===e.template||"dropdownlist"===e.template||"list"===e.template))).map((e=>({label:e.label,value:e.dataField,dataField:e.dataField,cellsFormat:e.cellsFormat||"",template:e.template||"",dataType:e.dataType||"string"}))):[]}_getRelationData(e){const t=this;if(t.dataSourceSettings.relations&&t.dataSourceSettings.relations.length){for(let a=0;a<t.dataSourceSettings.relations.length;a++){const l=t.dataSourceSettings.relations[a];if(l.id===e)return l.dataSource}return[]}}_confirmAddColumnDialog(e){const t=this,a=e.querySelectorAll(".smart-grid-dialog-editor"),l=[];let i,n,o={};e===t._dialogAddStackColumn&&(o.type="select");for(let e=0;e<a.length;e++){const l=a[e],i=l.querySelector(".smart-input"),n=l.getAttribute("bind"),s=l.parentElement;if("kanban"!==n)if("name"!==n&&"description"!==n)if("minLength"!==n&&"maxLength"!==n&&"minValue"!==n&&"maxValue"!==n&&"minDateTime"!==n&&"maxDateTime"!==n)if("options"!==n&&"users"!==n){if("relationId"===n)o.relationIdLabel=i.value,o.relationField=l.querySelector(".field-input").selectedValue,o.relationCascadingFields=l.querySelector("smart-multi-input").selectedValues.toString(),o.relationFieldLabel=l.querySelector(".field-input").value;else if("formula"===n){if("formula"!==o.type)continue;o.formula=i.value}else{if("AIQuery"===n){if("AIQuery"===o.type){o.AIQuery=i.value,i.getSelectedItem()&&(o.AIQuery=i.getSelectedItem().value,null===o.AIQuery&&(o.AIQuery=i.value)),o.template="ai";continue}continue}if("sparklines"===n){if("sparklines"===o.type){if(o.template="sparklines",i.getSelectedItem()){let e=i.getSelectedItem().value;null===e&&(e="column"),o.templateSettings={type:e}}continue}continue}if("allowEdit"===n&&s.classList.contains("smart-hidden"))i.value=!1;else if("required"===n&&s.classList.contains("smart-hidden"))i.value=!1;else if("dateFormatSeparator"===n){const e=l.querySelectorAll(".smart-grid-dialog-boolean-field");for(let t=0;t<e.length;t++)if(e[t].querySelector("[checked]")){switch(t){case 0:o.dateFormatSeparatorType="/";break;case 1:o.dateFormatSeparatorType="-";break;case 2:o.dateFormatSeparatorType="."}break}}}i&&(i.getSelectedItem?o[n]=i.getSelectedItem().value:o[n]=i.value)}else{const e=[],a=l.querySelectorAll(".smart-grid-add-column-dialog-color-item .edit-column-input"),i=l.querySelectorAll(".smart-grid-add-column-dialog-color-item smart-color-input");for(let t=0;t<a.length;t++){const l=a[t],n={label:l.value.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;").replace(/\\/g,""),value:l.getAttribute("data-item-value").replace(/\\/g,""),id:parseInt(l.getAttribute("data-id")),color:i[t].value};n.color=i[t].value,e.push(n)}if("users"===n&&"collaborator"===o.type){t.users||(t.users=[]);for(let a=0;a<e.length;a++){const l=e[a],i=t.users.find((e=>e.id===l.id));i&&(i.name=l.label,i.color=l.color)}}o[n]=e;const s=l.querySelector(".smart-default-item");o["default_"+n]=s.selectedValues?s.selectedValues[0]:null}else o[n]=i.getValue();else o[n]=i.value.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;");else{const e=l.querySelectorAll(".smart-grid-dialog-boolean-field");for(let t=0;t<e.length;t++){const a=e[t];if(a.querySelector("[checked]")){o.kanban=a.name;break}}}}e.data=o;let s={},r={},d="";if(i=o.minDateTime,n=o.maxDateTime,"date"===o.type||"dueDate"===o.type||"startDate"===o.type){s={template:"dateInput",min:i,max:n};let e=!1;o.deadlineStatus&&(s.boundDataField=o.deadlineStatus),"-"!==o.dateFormat&&(d=o.dateFormat,o.allowCustomDateSeparator&&(d.indexOf("/")>=0?d=d.replaceAll("/",o.dateFormatSeparatorType):d.indexOf("-")>=0?d=d.replaceAll("-",o.dateFormatSeparatorType):d.indexOf(".")>=0&&(d=d.replaceAll(".",o.dateFormatSeparatorType))),o.dateFormat.indexOf("T")>=0&&(s.template="dateTimePicker",s.dropDownDisplayMode="auto",s.formatString=d),e=!0),s.autoOpen=!0,o.allowTimeFormat&&"-"!==o.timeFormat&&(e&&(d+=" "),d+=o.timeFormat,s.template="dateTimePicker",s.dropDownDisplayMode="auto",s.formatString=d),o.cellsFormat=d,l.push({type:"minDate",value:i}),l.push({type:"maxDate",value:n})}else if("time"===o.type)s={template:"timeInput",hour12:!0},o.timeFormat.indexOf("HH")>=0&&(s.hour12=!1),s.autoOpen=!0,d=o.timeFormat,o.cellsFormat=d;else if("duration"===o.type)s={template:"dateRangeInput"},d="MM/dd/yyyy hh:mm",o.cellsFormat=d;else if("number"===o.type||"slider"===o.type){i=parseInt(o.minValue),n=parseInt(o.maxValue),o.numberFormat=JSON.parse(JSON.stringify(o.numberFormat)),"unit"===o.numberFormat.style&&(o.numberFormat.unit=o.unit);let e=null,a=null;"currency"===o.numberFormat.style&&(o.numberFormat.currency=o.currency,o.numberFormat.locale=t._getLocaleByCurrency(o.currency)),"decimal"!==o.numberFormat.style||o.numberFormat.notation||(o.numberFormat.useGrouping=o.allowThousandsSeparator),"squaremeter"===o.numberFormat.unit&&(o.numberFormat={type:"squaremeter",style:"decimal",maximumFractionDigits:0}),"cubicmeter"===o.numberFormat.unit&&(o.numberFormat={type:"cubicmeter",style:"decimal",maximumFractionDigits:0}),s={template:"number"===o.type?"numberInput":"slider",min:i,max:n,numberFormat:o.numberFormat},r={Intl:{NumberFormat:o.numberFormat}},a&&(r=a),d="d",e&&(d=e),l.push({type:"min",value:i}),l.push({type:"max",value:n})}else if("rating"===o.type)s={template:"rating"};else if("boolean"===o.type)s={template:"checkBox"};else if("image"===o.type)s={template:"image"};else if("attachment"===o.type)s={template:"attachment"};else if("relationId"===o.type){let e=t._getRelationData(o.relationId);o.templateSettings={dataFields:[o.relationField]},s={template:"grid",relationId:o.relationId,relationField:o.relationField,relationCascadingFields:o.relationCascadingFields,dataSource:e,columns:t._getRelationFieldsData(o.relationId)}}else if("select"===o.type||"multiSelect"===o.type||"tags"===o.type){let a=o.options,l=!1;if("select"===o.type)if(e.editColumn&&!e.editColumn.editor.allowEmptyItem){a=o.options;const i=[];for(let e=0;e<o.options.length;e++)if(""===o.options[e].label)o.options[e].value="";else if(""===o.options[e].value){const t=o.options[e].label.trim();if(i[t])continue;o.options[e].value=t,i.push(t)}else if(!isNaN(parseInt(o.options[e].value))){const t=o.options[e].label.trim();if(i[t])continue;o.options[e].value=t,i.push(t)}if(e.editColumn._dataField&&"taskStatus"===e.editColumn._dataField||e===t._dialogAddStackColumn)for(let e=0;e<o.options.length;e++){const t=o.options[e];isNaN(parseInt(t.value))||(t.value=t.label.replaceAll(" ",""))}a=o.options;let n=!1;for(let e=0;e<o.options.length;e++)if(""===o.options[e].label){n=!0,l=!0,o.options[e].value="";break}a=!n&&o.options.length?[{color:"#F47A54",value:"",label:""}].concat(o.options):o.options}else{const e=[];let t=!1;for(let a=0;a<o.options.length;a++)if(""===o.options[a].label)t=!0,l=!0,o.options[a].value="";else if(""===o.options[a].value){const t=o.options[a].label.trim();if(e[t])continue;o.options[a].value=t,e.push(t)}else if(!isNaN(parseInt(o.options[a].value))){const t=o.options[a].label.trim();if(e[t])continue;o.options[a].value=t,e.push(t)}a=!t&&o.options.length?[{color:"#F4511E",value:"",label:""}].concat(o.options):o.options}else if("multiSelect"===o.type){const e=[];for(let t=0;t<o.options.length;t++)if(""===o.options[t].label)o.options[t].value="";else if(""===o.options[t].value){const a=o.options[t].label.trim();if(e[a])continue;o.options[t].value=a,e.push(a)}else if(!isNaN(parseInt(o.options[t].value))){const a=o.options[t].label.trim();if(e[a])continue;o.options[t].value=a,e.push(a)}a=o.options}a.length&&""===a[0]&&!l&&o.required&&(a=a.splice(1)),s={template:"multiComboInput",readonly:!0,dropDownButtonPosition:"right",colorItems:o.allowColorItems,autoOpen:!0,pills:!0,singleSelect:"select"===o.type,dataSource:a}}else if("collaborator"===o.type){let e=o.users;o.allowMultipleCollaborators||e&&e.length&&""!==e[0].value&&(e=[{label:"",value:"",color:"#F47A54"}].concat(o.users));for(let a=0;a<t.users.length;a++)e.forEach((e=>{e.value!==t.users[a].id&&e.value!==""+t.users[a].id||(e.image=t.users[a].image,e.id=t.users[a].id)}));s={template:"multiComboInput",readonly:!0,collaborator:!0,colorItems:o.allowColorItems,dropDownButtonPosition:"right",autoOpen:!0,pills:!0,singleSelect:!o.allowMultipleCollaborators,dataSource:e}}else"multiText"===o.type||"AIQuery"===o.type?(i=o.minLength,n=o.maxLength,s={template:"textarea",min:i,max:n,required:o.required},l.push({type:"minLength",value:i}),l.push({type:"maxLength",value:n})):"password"===o.type?(i=o.minLength,n=o.maxLength,s={template:"password",min:i,max:n,required:o.required},l.push({type:"minLength",value:i}),l.push({type:"maxLength",value:n})):"phone"===o.type?s={template:"phone",required:o.required}:(i=o.minLength,n=o.maxLength,s={template:"input",min:i,max:n,required:o.required},l.push({type:"minLength",value:i}),l.push({type:"maxLength",value:n}));let c="string";switch(o.type){case"boolean":case"bool":c="boolean";break;case"createdTime":case"updatedTime":case"duration":case"date":case"time":c="date";break;case"autoNumber":case"slider":case"rating":case"number":c="number"}const u=e=>{if(o.setDefaultValue)switch(o.type){case"string":case"multiText":case"description":case"name":e.defaultValue=o.defaultString;break;case"number":case"slider":e.defaultValue=o.defaultNumber;break;case"date":case"dueDate":case"startDate":e.defaultValue="current"===o.defaultDate?"today":o.defaultDateValue;break;case"collaborator":void 0!==o.default_users?e.defaultValue=o.default_users:e.defaultValue=null;break;case"select":case"multiSelect":case"status":case"priority":o.default_options?e.defaultValue=o.default_options:e.defaultValue=null}else e.defaultValue=null};if(e.editColumn){const a=e.editColumn;a.canNotify=!1,a.label=o.name,void 0!==o.description&&(a.description=o.description),a.showDescriptionButton=!0,void 0!==o.allowResize&&(a.allowResize=o.allowResize),void 0!==o.allowSort&&(a.allowSort=o.allowSort),void 0!==o.allowFilter&&(a.allowFilter=o.allowFilter),void 0!==o.allowEdit&&(a.allowEdit=o.allowEdit),void 0!==o.cellsAlign&&(a.align=a.cellsAlign=o.cellsAlign),void 0!==o.cellsFormat&&(a.cellsFormat=d),void 0!==o.formula?a.formula=o.formula:a.formula="",void 0!==o.AIQuery?a.AIQuery=o.AIQuery:a.AIQuery="";const i=a._editorId?a._editorId:"",n=s.template+"_"+a.dataField+i;t._cellEditors[n]&&delete t._cellEditors[n];let m=!0;if("list"!==a.template&&"dropDownList"!==a.template||(m=!1),"autoNumber"!==a.template&&"uuid"!==a.template&&"createdBy"!==a.template&&"updatedBy"!==a.template&&"createdTime"!==a.template&&"progress"!==a.template&&"updatedTime"!==a.template&&"checklist"!==a.template&&"color"!==a.template||(m=!1),a.editor&&a.editor.template.indexOf("custom")>=0&&(m=!1),a.editor&&a.editor.disabledDialogOptions&&(m=!1),u(a),"date"===o.type&&a.editor&&a.editor.boundDateField){const e=t.columnByDataField[a.editor.boundDateField];e&&e.editor.boundDateField&&(e.editor.boundDateField="none")}if(m&&(a.editor=JSON.parse(JSON.stringify(s)),a.template=t._getColumnTemplateByType(o.type,o),a._cellsCachedValues=[]),"date"===o.type)if("dueDate"===o.deadline){const e=t._getKanbanTaskField("dueDate").editor;a.editor.onValidate=e.onValidate,o.deadlineStatus&&(a.editor.boundDataField=o.deadlineStatus),o.deadlineStartDate&&(a.editor.boundDateField=o.deadlineStartDate,t.columnByDataField[a.editor.boundDateField]&&(t.columnByDataField[a.editor.boundDateField].editor.boundDateField=a.dataField)),a.template="dueDate"}else if("startDate"===o.deadline){const e=t._getKanbanTaskField("startDate").editor;a.editor.onValidate=e.onValidate,o.deadlineDueDate&&(a.editor.boundDataField="",a.editor.boundDateField=o.deadlineDueDate,t.columnByDataField[a.editor.boundDateField]&&(t.columnByDataField[a.editor.boundDateField].editor.boundDateField=a.dataField)),a.template="startDate"}else a.template="",s.template="dateInput",s.onValidate=null;if("relationId"===o.type){a.relationId=o.relationId;const e=a.relationField!==o.relationId||a.relationCascadingFields!==o.relationCascadingFields;a.relationField=o.relationField,a.relationCascadingFields=o.relationCascadingFields,a.templateSettings=o.templateSettings,e&&t._createCascadingColumns(a,o)}"sparklines"===o.template&&(a.templateSettings=o.templateSettings),a.formatSettings=r,o.type!==e.columnType&&e.columnType&&(a.dataType=c),a.icon=t._getIconByType(o.type),a._isDirty=!0,o.required&&l.push({type:"required"}),a.validationRules=l,a._state&&["label","description","defaultValue","showDescriptionButton","dataSet","dataType","editor","formatSettings","template","summary","validationRules","allowResize","allowSort","allowFilter","allowEdit","align","cellsAlign","cellsFormat"].forEach((e=>{a._state[e]=a[e]})),a.canNotify=!0,t.$.fireEvent("closeColumnDialog",{dataField:a.dataField}),t.onColumnUpdated&&t.onColumnUpdated(t.columns.indexOf(a),a),t._onColumnUpdated&&t._onColumnUpdated(a,o),t._recycle(!0),a.refresh(),a._isDirty=!1}else{let e=[];"number"===c&&(e=["sum"]);const a=t._getColumnLabel(o),i=new Smart.Grid.Column({label:a,description:o.description,dataField:o.dataField||"dataField"+Math.floor(65536*(1+Math.random())).toString(16).substring(1),allowResize:o.allowResize,allowSort:o.allowSort,allowFilter:o.allowFilter,allowEdit:o.allowEdit,showDescriptionButton:!0,dataType:c,editor:s,summary:e,template:t._getColumnTemplateByType(o.type,o),templateSettings:o.templateSettings,formatSettings:r,cellsAlign:o.cellsAlign,align:o.cellsAlign,cellsFormat:d,visibleIndex:t.columns.length-1,formula:o.formula,AIQuery:o.AIQuery,relationId:o.relationId,relationField:o.relationField,relationCascadingFields:o.relationCascadingFields,grid:t});if("autoNumber"===i.template&&(i.autoGenerated=!0,e=[]),u(i),o.required&&(l.push({type:"required"}),i.validationRules=l),"date"===o.type&&("dueDate"===o.deadline?o.type="dueDate":"startDate"===o.deadline&&(o.type="startDate")),"collaborator"===o.type){let e=!1;for(let a=0;a<t.columns.length;a++)if("taskUserId"===t.columns[a]._dataField){e=!0;break}e||(i._dataField="taskUserId")}if(t._getKanbanFields().indexOf(o.type)>=0){const e=t._getKanbanTaskField(o.type);switch(u(e),"startDate"===o.type&&o.deadlineDueDate&&(e.editor.boundDateField=o.deadlineDueDate),"dueDate"===o.type&&o.deadlineStatus&&(e.editor.boundDataField=o.deadlineStatus,e.editor.boundDateField=o.deadlineStartDate),delete e._state,o.description&&(e.description=o.description),o.name&&(e.label=o.name),e.allowFilter=o.allowFilter,e.allowResize=o.allowResize,e.allowSort=o.allowSort,o.type){case"priority":case"status":case"tags":e.editor.dataSource=JSON.parse(JSON.stringify(o.options))}let a=t.columnByDataField[e.dataField];if("status"===o.type||"name"===o.type||"description"===o.type)for(let e=0;e<t.columns.length;e++){const l=t.columns[e];if(l._dataField&&!t.columnByDataField[l._dataField]&&(t.columnByDataField[l._dataField]=l),l.statusColumn||"taskStatus"===l._dataField){a=l;break}}a&&!1===a._visible?(a.visible=!0,delete a._visible):(a&&(e.dataField=e.displayField="dataField"+Math.floor(65536*(1+Math.random())).toString(16).substring(1),"object"==typeof e.editor&&e.editor.dataSource&&(e.editor.dataSource=JSON.parse(JSON.stringify(e.editor.dataSource))),o.name||(e.label=e.label+" "+t.localize("copy"))),t.columns.push(e))}else t.columns.push(i);if("dueDate"===o.deadline)if("+"===o.deadlineStartDate){const e=t._getKanbanTaskField("startDate");e.dataField=e.displayField="dataField"+Math.floor(65536*(1+Math.random())).toString(16).substring(1),e.editor.boundDateField=t.columns[t.columns.length-1].dataField,e.editor.boundDataField="",t.columns[t.columns.length-1].editor.boundDateField=e.dataField,t.columns.push(e)}else t.columns[t.columns.length-1].editor.boundDateField=o.deadlineStartDate;if("startDate"===o.deadline)if("+"===o.deadlineDueDate){const e=t._getKanbanTaskField("dueDate");e.dataField=e.displayField="dataField"+Math.floor(65536*(1+Math.random())).toString(16).substring(1),e.editor.boundDateField=t.columns[t.columns.length-1].dataField,t.columns[t.columns.length-1].editor.boundDateField=e.dataField,t.columns[t.columns.length-1].editor.boundDataField="",t.columns.push(e)}else t.columns[t.columns.length-1].editor.boundDateField=o.deadlineDueDate;void 0!==o.relationId&&o.relationCascadingFields&&t._createCascadingColumns(i,o),t._refreshHeaderBar(),t.$.fireEvent("closeColumnDialog",{dataField:i.dataField})}}_createCascadingColumns(e,t){const a=this,l=t.relationCascadingFields.split(","),i=a._getRelationFieldsData(t.relationId);e._computedFields&&(e._computedFields.forEach((e=>{a.removeColumn(e)})),e._computedFields=[]);for(let n=0;n<l.length;n++){const o=l[n];if(!o)continue;const s=i.find((e=>e.value===o)),r=s?s.label+" ("+t.relationIdLabel+")":"",d=e.editor.dataSource;let c="string",u="",m="",p="left";for(let e=0;e<d.length;e++){const t=""+d[e][o];if(t){if("false"===t||"true"===t){c="boolean",u="checkBox",p="center";break}if(!isNaN(parseInt(t)&&-1===t.indexOf("/")&&-1===t.indexOf("-"))){c="number",m="d",p="right";break}if((t.indexOf("-")>=0||t.indexOf("/")>=0||t.indexOf(":")>=0)&&"Invalid Date"!==new Date(t).toString()){c="date",m="d",p="right";break}if("string"==typeof t){if(t.indexOf("@")>=0){u="email";break}if(t.indexOf("http")>=0){u="url";break}if(t.indexOf("[{")>=0||t.indexOf("./")>=0){u="attachments",(t.indexOf(".png")>=0||t.indexOf(".jpg")>=0||t.indexOf(".jpeg")>=0||t.indexOf(".gif")>=0)&&(u="images");break}}}}s.cellsFormat&&(m=s.cellsFormat),s.template&&(u=s.template),s.dataType&&"string"!==s.dataType&&(c=s.dataType);const g=new Smart.Grid.Column({label:r,dataField:"dataField"+Math.floor(65536*(1+Math.random())).toString(16).substring(1),allowResize:t.allowResize,allowSort:!1,allowFilter:!1,allowEdit:!1,showDescriptionButton:!1,dataType:c,template:u,cellsFormat:m,cellsAlign:p,align:p,_cascadingDataField:o,_parentDataField:e.dataField,grid:a});e._computedFields||(e._computedFields=[]),e._computedFields.push(g.dataField),a.columns.push(g)}}_getColumnLabel(e){const t=this;let a=e.name;if(!a){let a="";switch(e.type){case"string":a=t.localize("dialogAddColumnTypeText");break;case"multiText":a=t.localize("dialogAddColumnTypeMultilineText");break;case"image":a=t.localize("dialogAddColumnTypeImage");break;case"attachment":a=t.localize("dialogAddColumnTypeAttachment");break;case"number":a=t.localize("dialogAddColumnTypeNumber");break;case"select":a=t.localize("dialogAddColumnTypeSelect");break;case"multiSelect":a=t.localize("dialogAddColumnTypeMultipleSelect");break;case"boolean":a=t.localize("dialogAddColumnTypeCheckBox");break;case"date":a=t.localize("dialogAddColumnTypeDate");break;case"time":a=t.localize("dialogAddColumnTypeTime");break;case"duration":a=t.localize("dialogAddColumnTypeDuration");break;case"createdTime":a=t.localize("dialogAddColumnTypeCreatedTime");break;case"updatedTime":a=t.localize("dialogAddColumnTypeLastUpdatedTime");break;case"createdBy":a=t.localize("dialogAddColumnTypeCreatedBy");break;case"updatedBy":a=t.localize("dialogAddColumnTypeLastUpdatedBy");break;case"collaborator":a=t.localize("dialogAddColumnTypeCollaborator");break;case"slider":a=t.localize("dialogAddColumnTypeSlider");break;case"autoNumber":a=t.localize("dialogAddColumnTypeAutoNumber");break;case"url":a=t.localize("dialogAddColumnTypeURL");break;case"relationId":a=t.localize("dialogAddColumnTypeRowLink"),e.relationFieldLabel&&e.relationIdLabel&&(a=e.relationFieldLabel+" ("+e.relationIdLabel+")");break;case"formula":a=t.localize("dialogAddColumnTypeFormula");break;case"email":a=t.localize("dialogAddColumnTypeEmail");break;case"phone":a=t.localize("dialogAddColumnTypePhone");break;case"password":a=t.localize("dialogAddColumnTypePassword");break;case"rating":a=t.localize("dialogAddColumnTypeRating");break;case"uuid":a=t.localize("dialogAddColumnTypeUUID");break;case"AIQuery":a=t.localize("dialogAddColumnTypeAIQuery");break;case"sparklines":a=t.localize("dialogAddColumnTypeSparklines")}let l=1;for(let e=0;e<t.columns.length;e++)t.columns[e].label.indexOf(a)>=0&&l++;return 1===l?a:a+" "+l}return a}_openAddColumnDialog(e,t,a){const l=this,i=l._dialogAddColumn||l._createDialog(l.editing.addColumnDialog),n=e?l.localize("dialogEditColumn",{value:e.label}):l.localize("dialogAddColumn"),o=i.querySelector(".smart-footer").querySelector(".smart-stack-layout");i.classList.add("smart-grid-dialog-add-column"),i.type=e?"customize":"add",i.editColumn=e||null,delete i._randomOptionIndex,e&&e.element?e.element.setAttribute("focus",""):l._addNewColumn&&l._addNewColumn.element.setAttribute("focus",""),o.classList.remove("right"),o.classList.add("center"),l._cellEditors||(l._cellEditors=[]);const s=l._getAddColumnDialogTemplate();if(i.header.innerHTML=n,i.header.parentElement.classList.add("smart-hidden"),i.callback=a,!0===t&&(i.header.parentElement.classList.remove("smart-hidden"),"kanban"===l.view?(i.header.innerHTML=l.localize("dialogAddColumnStatus"),i.header.parentElement.querySelector(".smart-close-button").classList.add("smart-hidden"),i.classList.add("view")):i.classList.remove("kanban")),i.stackLabel&&i.stackLabel.classList.add("smart-hidden"),"kanban"===l.view?i.btnCancel.classList.add("smart-hidden"):i.btnCancel.classList.remove("smart-hidden"),l.cancelEdit(),!l._dialogAddColumn){i.modal=!0,i.btnConfirm.innerHTML=l.localize("dialogEditButtonConfirm"),i.btnCancel.innerHTML=l.localize("dialogEditButtonCancel"),i._refreshPosition=()=>{const e=l.offset(l.$.columnHeader),t=l.$.columnHeader.offsetHeight,a=l.offset(l);if(i.style.maxHeight="",i.style.minHeight="",e.top+t+i.offsetHeight>window.innerHeight-a.top){const l=t+e.top+i.offsetHeight-window.innerHeight+a.top;i.style.maxHeight=Math.max(250,i.offsetHeight-l)+"px",i.style.minHeight="250px"}else i.style.maxHeight="",i.style.minHeight=""},i.onOpen=function(){const e=l._dialogAddColumn,t=l._getAddColumnDialogTemplate(),a=l._addColumnDialogEditors;if(delete e.columnType,l._addColumnDialogInitEditors(e,t,a),l._addColumnDialogShowHideEditors(e),e.editColumn){const t=e.querySelector('[bind="type"]'),a=t?t.querySelector("smart-input"):null,l=t?a.getSelectedItem().value:"kanban";e.columnType=l}else delete e.columnType;l._filterColumnTypes(),l.$.fireEvent("openColumnDialog",{dataField:e.editColumn?e.editColumn.dataField:null}),e._refreshPosition()},i.onClose=function(){i.editColumn&&i.editColumn.element&&i.editColumn.element.removeAttribute("focus"),l._addNewColumn&&l._addNewColumn.element.removeAttribute("focus"),i.classList.remove("view"),i.callback&&i.callback(i.result)},i.btnCancel.onclick=function(){i.result=!1,i.close()},i.btnClose.onclick=function(){i.result=!1,i.close()},i.btnConfirm.onclick=function(){l._confirmAddColumnDialog(i),i.result=!0,i.close()},i.onkeydown=function(e){"Escape"===e.key&&"kanban"!==l.view&&(i.result=!1,i.close())},l._dialogAddColumn=i;const e=document.createElement("div");e.classList.add("smart-content-layout-container"),i.content.appendChild(e),l._addColumnDialogEditors=[];const t=l._addColumnDialogEditors;l._initAddColumnDialogEditors(t,s,i,e)}const r=()=>{const t=parseInt(i.style.width),a=l.offset(l);if(window.screen.availWidth<400)return i.open("left","top"),i.style.width=l.offsetWidth+"px",void(i.style.height=l.offsetHeight+"px");{const e=l.editing.addColumnDialog;i.style.width="auto"===e.width?e.width:e.width+"px",i.style.height="auto"===e.height?e.height:e.height+"px"}if(e){const n=e.element;if(n){const e=l.offset(n),o=e.left-a.left,s=a.left,r=Math.max(s,o);if(r+t+n.offsetWidth>a.left+l.offsetWidth){const l=r-t+n.offsetWidth;l<0?i.open("center",e.top+n.offsetHeight-a.top):i.open(Math.max(s,l),e.top+n.offsetHeight-a.top)}else i.open(r,e.top+n.offsetHeight-a.top)}else i.classList.add("center"),i.open("center","center")}else if(l._addNewColumn){let e=l._addNewColumn.element,n=l.offset(e),o=n.left-a.left-t+e.offsetWidth,s=a.left,r=Math.max(s,o);l.editing.addNewColumn._addButton&&l.editing.addNewColumn._addButton.classList.contains("show")&&(e=l.editing.addNewColumn._addButton,n=l.offset(l.editing.addNewColumn._addButton),o=n.left-a.left-t+e.offsetWidth,s=a.left,r=Math.max(s,o)),i.open(r,n.top+e.offsetHeight-a.top)}else i.open("center","center"),i.classList.add("center")};r(),i.refresh=()=>{r()}}_filterColumnTypes(){const e=this,t=e._dialogAddColumn;if(!t)return;const a=e._dialogAddColumn.querySelector('[bind="type"]').querySelector("smart-input");if(t.columnType){const l=e._getTypesList().find((e=>{if(e.value===t.columnType)return e}));if(l)if("string"===t.columnType||"multiText"===t.columnType)a.dataSource=e._getTypesList().filter((e=>!(["createdTime","updatedTime","createdBy","updatedBy","autoNumber","uuid","image","color","checklist","progress","collaborator","attachment"].indexOf(e.value)>=0)));else if("select"===t.columnType||"multiSelect"===t.columnType){const t=[{value:"string",prefix:'<span class="smart-grid-icon visible smart-icon-font"></span>',label:e.localize("dialogAddColumnTypeText")},{value:"multiText",prefix:'<span class="smart-grid-icon visible smart-icon-fontsize"></span>',label:e.localize("dialogAddColumnTypeMultilineText")},{value:"select",prefix:'<span class="smart-grid-icon visible smart-icon-sort-down"></span>',label:e.localize("dialogAddColumnTypeSelect")},{value:"multiSelect",prefix:'<span class="smart-grid-icon visible smart-icon-list-unordered"></span>',label:e.localize("dialogAddColumnTypeMultipleSelect")}];a.dataSource=t}else{const t=[{value:"string",prefix:'<span class="smart-grid-icon visible smart-icon-font"></span>',label:e.localize("dialogAddColumnTypeText")},{value:"multiText",prefix:'<span class="smart-grid-icon visible smart-icon-fontsize"></span>',label:e.localize("dialogAddColumnTypeMultilineText")}].concat(l);a.dataSource=t}else a.dataSource=e._getTypesList()}else t.editColumn||(a.dataSource=e._getTypesList(),a.selectedIndex=0)}_getIconByType(e){let t="smart-icon-font";switch(e){case"multiText":t="smart-icon-fontsize";break;case"image":t="smart-icon-image";break;case"attachment":t="smart-icon-docs";break;case"number":case"progress":t="smart-icon-number";break;case"priority":case"status":case"select":t="smart-icon-sort-down";break;case"multiSelect":t="smart-icon-list-unordered";break;case"boolean":t="smart-icon-check-squared";break;case"date":case"startDate":case"duration":case"dueDate":t="smart-icon-calendar";break;case"time":case"createdTime":case"updatedTime":t="smart-icon-clock";break;case"createdBy":case"updatedBy":case"collaborator":t="smart-icon-user";break;case"slider":t="smart-icon-number";break;case"autoNumber":case"checklist":t="smart-icon-list-ordered";break;case"url":t="smart-icon-link";break;case"email":t="smart-icon-mail";break;case"password":t="smart-icon-lock";break;case"phone":t="smart-icon-phone";break;case"name":t="smart-icon-font";break;case"description":t="smart-icon-fontsize";break;case"tags":t="smart-icon-list-ordered";break;case"color":t="smart-icon-color-background";break;case"assigned":t="smart-icon-user";break;case"rating":t="smart-icon-star";break;case"relationId":t="smart-icon-table-alt";break;case"formula":t="smart-icon-math";break;case"uuid":t="smart-icon-number";break;case"AIQuery":t="smart-icon-ai";break;case"sparklines":t="smart-icon-chart"}return t}_initAddColumnDialogEditors(e,t,a,l){const i=this;for(let n=0;n<t.length;n++){const o=t[n],s=document.createElement("div"),r=document.createElement("label");r.innerHTML=o.label;const d=document.createElement("div");if(d.classList.add("smart-grid-dialog-editor","add-column"),d.innerHTML="",d.setAttribute("filter",o.filter),d.setAttribute("bind",o.bind),s.setAttribute("field-name",o.bind),s.setAttribute("field-filter",o.filter),e[o.bind]=d,"type"===o.bind&&d.addEventListener("change",(()=>{i._addColumnDialogShowHideEditors(a),a.editColumn&&i._filterColumnTypes();const t=i._dialogAddColumn.querySelector('[bind="type"]'),l=t.querySelector("smart-input"),n=l.getSelectedItem().value,o=i._getIconByType(n);if(e.type.icon=o,e.name.querySelector("input").setAttribute("data-label",l.value),t.firstElementChild.className="smart-grid-icon show smart-description-button "+o,"select"===n||"multiSelect"===n){const t=e.options.querySelector("smart-sortable");if(t&&t._validate){if(a.editColumn)if(a.editColumn.editor.dataSource){let e=[...a.editColumn.editor.dataSource];"multiSelect"===n&&""===e[0].value&&e.shift(),t._init(e)}else{const e=[];for(let t=0;t<i.rows.length;t++){const l=i.rows[t].data[a.editColumn.dataField];if(l&&l.indexOf(",")>=0){const t=l.split(",");for(let a=0;a<t.length;a++)-1===e.indexOf(t[a].trim())&&e.push(t[a].trim())}else if(-1===e.indexOf(l)&&void 0!==l){if(""===l&&"multiSelect"===n)continue;e.push(l)}}e.length?t._init(e.map((e=>({value:e,label:e})))):t._init()}else t._init();t._validate()}}else if("priority"===n||"status"===n||"tags"===n){const t=e.options.querySelector("smart-sortable"),a=i._getKanbanTaskField(n);t&&t._validate&&(t._init([...a.editor.dataSource]),t._validate())}else a.btnConfirm.disabled=!1})),"boolean"===o.type)i._createColumnBooleanEditor(d,o,s,l,r);else{if("label"===o.type){l.appendChild(s),s.classList.add("smart-grid-dialog-field"),s.appendChild(r);const e=document.createElement("div");e.style.height="10px",s.appendChild(e);continue}if("relationId"===o.type){let e=document.createElement("smart-input");e.classList.add("underlined","edit-column-input"),e.style.width="calc(100% - 25px)",e.style.height="30px",o.width&&(s.style.width=o.width,s.style.float="left"),e.readonly=!0,e.dropDownButtonPosition="right",e.dropDownHeight="auto";let a=i._getRelations(),c={};for(let e=0;e<i.dataSourceSettings.relations.length;e++){const t=i.dataSourceSettings.relations[e];c[t.id]=t}let u=document.createElement("smart-input");u.classList.add("underlined","smart-hidden","edit-column-input","field-input"),u.style.width="calc(100% - 25px)",u.style.height="30px",u.readonly=!0,u.dropDownButtonPosition="right",u.dropDownHeight="auto";const m=document.createElement("div"),p=document.createElement("div");p.style.marginTop="5px",p.innerHTML=i.localize("dialogAddColumnLinkField"),p.classList.add("smart-hidden");const g=document.createElement("div");let b=document.createElement("smart-multi-input");if(b.classList.add("underlined","smart-hidden","edit-column-input","field-input"),b.style.width="calc(100% - 25px)",b.style.height="30px",b.readonly=!0,b.dropDownButtonPosition="right",b.dropDownHeight="auto",g.style.marginTop="5px",g.innerHTML=i.localize("dialogAddColumnLinkFieldMore"),g.classList.add("smart-hidden"),e.dataSource=a,e.onchange=()=>{if(u.dataSource=null,u.clearValue(),""===e.value)u.classList.add("smart-hidden"),p.classList.add("smart-hidden"),g.classList.add("smart-hidden");else{p.classList.remove("smart-hidden"),u.classList.remove("smart-hidden"),g.classList.remove("smart-hidden"),b.classList.remove("smart-hidden");const t=c[e.selectedValue];if(t){u.dataSource=i._getRelationFieldsData(t.id);const e=e=>e.value!==u.selectedValue;u.onchange=()=>{b.selectedValues=[],b.dataSource=[...u.dataSource].filter((t=>e(t)))},b.dataSource=[...u.dataSource].filter((t=>e(t))),b.selectedValues=[],u.dataSource.length>0&&(u.selectedValue=u.dataSource[0].value)}}},o.width&&(s.style.width=o.width,s.style.float="left"),d.style.height="auto",m.classList.add("smart-flex"),m.style.width="100%",m.style.flexDirection="column",m.appendChild(e),m.appendChild(p),m.appendChild(u),m.appendChild(g),m.appendChild(b),d.appendChild(m),l.appendChild(s),s.classList.add("smart-grid-dialog-field"),s.appendChild(r),s.appendChild(d),o.width&&!t[n+1].width){const e=document.createElement("div");e.style.clear="both",l.appendChild(e)}}else if("formula"===o.type){let e=document.createElement("smart-input");e.classList.add("underlined","edit-column-input"),e.style.width="100%",o.width&&(s.style.width=o.width,s.style.float="left"),d.appendChild(e),l.appendChild(s),s.classList.add("smart-grid-dialog-field"),s.appendChild(r),s.appendChild(d);const a=document.createElement("div");if(a.innerHTML=i.localize("dialogAddColumnTypeFormulaInfo"),a.style.color="var(--smart-primary)",a.style.fontSize="12px",a.style.marginBottom="10px",s.appendChild(a),o.width&&!t[n+1].width){const e=document.createElement("div");e.style.clear="both",l.appendChild(e)}}else if("sparklines"===o.type){let e=document.createElement("smart-input");if(e.classList.add("edit-column-input"),e.style.width="100%",e.dropDownButtonPosition="right",e.readonly=!0,o.width&&(s.style.width=o.width,s.style.float="left"),d.appendChild(e),e.dataSource=[{label:i.localize("columnChart"),value:"column"},{label:i.localize("barChart"),value:"bar"},{label:i.localize("lineChart"),value:"line"},{label:i.localize("pieChart"),value:"pie"},{label:i.localize("stackedChart"),value:"stacked"}],e.selectedIndex=0,l.appendChild(s),s.classList.add("smart-grid-dialog-field"),s.appendChild(r),s.appendChild(d),o.width&&!t[n+1].width){const e=document.createElement("div");e.style.clear="both",l.appendChild(e)}}else if("AIQuery"===o.type){let e=document.createElement("smart-input");e.classList.add("underlined","edit-column-input"),e.style.width="100%",e.dropDownButtonPosition="right",o.width&&(s.style.width=o.width,s.style.float="left"),d.appendChild(e);const a=i.columns.filter((e=>"tags"!==e.template&&"collaborator"!==e.template&&"dropdownlist"!==e.template&&"list"!==e.template&&"string"===e.dataType)).map((e=>({label:e.label,value:e.dataField})));e.dataSource=a,l.appendChild(s),s.classList.add("smart-grid-dialog-field"),s.appendChild(r),s.appendChild(d);const c=document.createElement("div");if(c.innerHTML=i.localize("dialogAddColumnTypeAIQueryInfo"),c.style.color="var(--smart-primary)",c.style.fontSize="12px",c.style.marginBottom="10px",s.appendChild(c),o.width&&!t[n+1].width){const e=document.createElement("div");e.style.clear="both",l.appendChild(e)}}else{let c=document.createElement("smart-input");if(c.classList.add("underlined","edit-column-input"),c.style.width="100%",c.style.height="30px",o.width&&(s.style.width=o.width,s.style.float="left"),"items"===o.type){const t=document.createElement("smart-button");t.classList.add("primary"),t.innerHTML='<div style="align-items: center; white-space: nowrap; display: flex;"><span class="smart-grid-icon show smart-icon-plus"></span><span>'+i.localize("commandBarAddRow")+"</span></div>";const l=document.createElement("div");l.classList.add("smart-grid-add-column-dialog-color-panel");const n=document.createElement("smart-sortable");n.disableMode="manual",n.dragMode="handle",n.handlePosition="left",n.handleVisibility="visible";const s=()=>{if(a.btnConfirm.disabled=!1,0===l.offsetHeight)return;let e=0;l.querySelectorAll(".edit-column-input").forEach((t=>{""===t.value&&e++;const l=a.querySelector('[field-name="type"]');l&&("multiSelect"===l.querySelector("smart-input").selectedValues[0]&&e>=1&&(a.btnConfirm.disabled=!0),e>1&&(a.btnConfirm.disabled=!0))})),n._updateDefaultInput()},r=(l,r,d,c)=>{const u=document.createElement("div"),m=i._getColorInput(),p=document.createElement("div"),g=document.createElement("smart-input"),b=e.allowColorItems;if(void 0!==d)g.setAttribute("data-id",d),g.setAttribute("data-item-value",d);else{const e=n.querySelectorAll(".smart-sortable-item").length;g.setAttribute("data-id",e),g.setAttribute("data-item-value",e)}if(void 0!==c&&g.setAttribute("data-item-value",c),m.disabled=!b.querySelector(".smart-input").value,p.className="smart-grid-icon smart-icon-close show",p.setAttribute("role","button"),p.setAttribute("aria-label","button"),g.classList.add("underlined","edit-column-input"),g.style.width="100%",g.style.height="30px",g.required=!0,(a.editColumn&&"collaborator"===a.editColumn.template||"users"===o.bind)&&(g.disabled=!0),l&&(g.value=i._unescapeString(l)),r)m.value=r;else if(!m.disabled){void 0!==a._randomOptionIndex?a._randomOptionIndex++:a._randomOptionIndex=2;const e=a._randomOptionIndex;e>=m.dataSource.length-1&&delete a._randomOptionIndex;const t=m.dataSource[e];m.value=t}if(g.onkeyup=g.onchange=g.onblur=e=>{s(),"Enter"===e.key&&(g.parentElement.nextElementSibling||(t.performClick(),s()))},m.onchange=()=>{n._updateDefaultInput()},u.appendChild(m),u.appendChild(g),"users"!==o.bind&&u.appendChild(p),p.onmouseenter=()=>{if(i._dialogAddColumn&&i._dialogAddColumn.editColumn){if(p.title="",p.classList.remove("smart-quiet"),!c)return;const e=i._dialogAddColumn.editColumn;if(e)for(let t=0;t<i.rows.length;t++)if(i.rows[t].data[e.dataField]===c){p.title=i.localize("dialogAddColumnListItemsError"),p.classList.add("smart-quiet");break}}},c&&i._dialogAddColumn){const e=i._dialogAddColumn.editColumn;if(e)for(let t=0;t<i.rows.length;t++)if(i.rows[t].data[e.dataField]===c){p.title=i.localize("dialogAddColumnListItemsError"),p.classList.add("smart-quiet");break}}return p.onclick=()=>{p.title||(u.remove(),n.updateItems(),s())},u.classList.add("smart-sortable-item","smart-grid-add-column-dialog-color-item"),"users"===o.bind&&u.setAttribute("disable-drag",""),u};if(n._getOptions=e=>{const t=[],a=l.querySelectorAll(".smart-grid-add-column-dialog-color-item .edit-column-input"),n=l.querySelectorAll(".smart-grid-add-column-dialog-color-item smart-color-input");for(let e=0;e<a.length;e++){const l=a[e],i={label:l.value.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;").replace(/\\/g,""),value:l.getAttribute("data-item-value").replace(/\\/g,""),id:parseInt(l.getAttribute("data-id")),color:n[e].value};i.color=n[e].value;const o=parseInt(i.value);if(!isNaN(o)){const e=i.label.trim();i.value=e}t.push(i)}if("users"===e.bind){i.users||(i.users=[]);for(let e=0;e<t.length;e++){const a=t[e],l=i.users.find((e=>e.id===a.id));l&&(l.name=a.label,l.color=a.color)}}return t},n._updateDefaultInput=e=>{e||(e=n._getOptions(o)),n._defaultInput&&(n._defaultInput.dataSource=e,n._defaultInput.selectedValues=[],!e||e&&!e.length||"kanban"===i.view?(n._defaultInput.classList.add("smart-hidden"),n._defaultOption.classList.add("smart-hidden")):(a.editColumn&&a.editColumn.defaultValue&&(n._defaultInput.selectedValues=[a.editColumn.defaultValue]),n._defaultInput.classList.remove("smart-hidden"),n._defaultOption.classList.remove("smart-hidden")))},n._init=e=>{n.clearContent(),"users"===o.bind?(n.handleVisibility="none",n.handlePosition="none"):(n.handleVisibility="visible",n.handlePosition="left"),e&&(e.forEach(((e,t)=>{const a=void 0!==e.id?e.id:t,l=r(e.label,e.color,a,e.value,t);n.$.container.appendChild(l)})),n.updateItems()),n._updateDefaultInput(e)},n._validate=s,e.presets&&(e.presets.onchange=t=>{const a=e.options.querySelector("smart-sortable"),l=[{color:"#33B679",label:i.localize("priority_low"),value:"Low"},{color:"#039BE5",label:i.localize("priority_average"),value:"Average"},{color:"#DD5347",label:i.localize("priority_high"),value:"High"},{color:"#AF0020",label:i.localize("priority_critical"),value:"Critical"}],n=[{color:"#33B679",label:i.localize("toDo"),value:"To Do"},{color:"#039BE5",label:i.localize("inProgress"),value:"In Progress"},{color:"#8E24AA",label:i.localize("done"),value:"Done"}],o=[{color:"#EDEDED",label:i.localize("notStarted"),value:"Not Started"},{color:"#D0F0FD",label:i.localize("underReview"),value:"Under review"},{color:"#D1F7C4",label:i.localize("approved"),value:"Approved"}],s=[{color:"#FFEBB6",label:i.localize("xs"),value:"xs"},{color:"#D1F7C4",label:i.localize("s"),value:"s"},{color:"#D0F0FD",label:i.localize("m"),value:"m"},{color:"#ECE1FD",label:i.localize("l"),value:"l"},{color:"#FFDAF6",label:i.localize("xl"),value:"xl"},{color:"#EDEDED",label:i.localize("xxl"),value:"xxl"}],r=[{color:"#EDEDED",label:i.localize("notStarted"),value:"Not Started"},{color:"#FFCFC9",label:i.localize("blocked"),value:"Blocked"},{color:"#FFEBB6",label:i.localize("inProgress"),value:"In Progress"},{color:"#D1F7C4",label:i.localize("completedStatus"),value:"Completed"}],d=[{color:"#D1F7C4",label:"Yes",value:"Yes"},{color:"#FFCFC9",label:"No",value:"No"}];switch(t.detail.value){case"status":return a._init(n);case"priority":return a._init(l);case"task":return a._init(r);case"review":return a._init(o);case"size":return a._init(s);case"boolean":return a._init(d)}a._init()}),e.allowColorItems.onchange=t=>{let a=e.allowColorItems.parentElement.nextElementSibling,l=null;for(;a;){if("options"===a.getAttribute("field-name")){if(l=a,l&&l.classList.contains("smart-hidden")){a=a.nextElementSibling;continue}break}if("users"===a.getAttribute("field-name")){if(l=a,l&&l.classList.contains("smart-hidden")){a=a.nextElementSibling;continue}break}a=a.nextElementSibling}l&&l.querySelectorAll("smart-color-input").forEach((e=>{e.disabled=!t}))},l.appendChild(n),"users"!==o.bind){l.appendChild(t);const e=()=>{const e=r();n.$.container.appendChild(e),n.updateItems(),e.querySelector(".edit-column-input").focus(),a.btnConfirm.disabled=!0,a._refreshPosition&&a._refreshPosition(),event.preventDefault()};t.performClick=()=>{e()},t.onpointerdown=()=>{e()},t.onkeydown=t=>{"Enter"===t.key&&e()}}const u=document.createElement("div");u.innerHTML=i.localize("dialogAddColumnDefault");const m=document.createElement("smart-multi-combo-input");m.singleSelect=!0,m.readonly=!0,m.dropDownButtonPosition="right",m.colorItems=!0,m.autoOpen=!0,m.pills=!0,m.style.setProperty("--smart-surface","--smart-background"),m.style.width="100%",m.classList.add("smart-default-item","underlined");const p=document.createElement("div");p.style.display="flex",p.style.flexDirection="column",p.style.marginTop="5px",p.classList.add("smart-default-item-container"),p.appendChild(u),p.appendChild(m),l.appendChild(p),n._defaultInput=m,n._defaultOption=u,c=l,d.style.height="auto"}else if("number"===o.type)c=document.createElement("smart-number-input"),c.classList.add("underlined"),c.style.width="100%",c.style.height="30px","minValue"===o.bind?(c.value=0,c.min=-9999999,c.max=9999999):"maxValue"===o.bind?(c.value=1e6,c.min=-9999999,c.max=9999999):"minLength"===o.bind?c.value=0:"maxLength"===o.bind&&(c.value=500);else if("datetime"===o.type)c=document.createElement("smart-date-input"),c.classList.add("underlined"),c.style.width="100%",c.style.height="30px","minDateTime"===o.bind?c.value=new Date(1900,0,1):"maxDateTime"===o.bind&&(c.value=new Date(2100,0,1));else if("radio"===o.type){const e=(e,t,a)=>{const l=document.createElement("div"),i=document.createElement("label"),n=document.createElement("div");return i.innerHTML=e,n.classList.add("smart-input"),n.classList.add("smart-grid-cell-editor"),n.classList.add("smart-grid-check-box-cell-editor"),t&&n.setAttribute("checked",""),n.value=void 0!==t&&t,d.appendChild(n),l.onclick=function(){if(n.value=!0,!1===n.value?n.removeAttribute("checked"):n.setAttribute("checked",n.value?"":"indeterminate"),l.onchange&&l.onchange(l),n.value){const e=n.parentElement.parentElement.parentElement;e.querySelectorAll(".smart-grid-cell-editor").forEach((e=>{e.value=!1,e.removeAttribute("checked")})),n.value=!0,n.setAttribute("checked",n.value?"":"indeterminate"),e.value=a}},l.setAttribute("tabindex",0),l.onkeydown=e=>{" "!==e.key&&"Enter"!==e.key||l.click()},l.appendChild(n),l.appendChild(i),l.classList.add("smart-grid-dialog-boolean-field"),l.setAttribute("template","checkBox"),l.setAttribute("editor",""),l.label=i,l.value=t,l.name=a,l},t=document.createElement("div");t.classList.add("smart-grid-dialog-radio-field"),d.classList.add("radio-group");for(let a=0;a<o.options.length;a++){const l=o.options[a],i=e(l.label,l.checked,l.value);if(o.columns){const e=100/o.columns;i.style.width=e+"%",i.style.float="left"}t.appendChild(i),l.checked&&(d.value=l.value)}const a=document.createElement("div");a.style.clear="both",t.appendChild(a),c=t}if(o.options){c.readonly=!0;let e=o.options;"type"===o.bind&&(void 0!==i.currentUser&&null!==i.currentUser||(e=e.filter((e=>"updatedBy"!==e.value&&"createdBy"!==e.value))),(void 0===i.users||null===i.users||i.users&&0===i.users.length)&&(e=e.filter((e=>"collaborator"!==e.value)))),c.dataSource=e,c.dropDownButtonPosition="right","dataField"!==o.bind&&(c.selectedIndex=0),o.options.length<15?c.dropDownHeight="auto":c.dropDownHeight=300}if(o.icon){const e=document.createElement("span");e.classList.add("smart-grid-icon",o.icon,"show","smart-description-button"),d.appendChild(e),c.style.width="calc(100% - 25px)"}if(d.appendChild(c),o.info){const e=document.createElement("span");e.classList.add("smart-grid-icon","smart-icon-attention-circled","show","smart-description-button"),e.title=o.info,d.appendChild(e),c.style.width="calc(100% - 25px)"}if(l.appendChild(s),s.classList.add("smart-grid-dialog-field"),s.appendChild(r),s.appendChild(d),o.width&&!t[n+1].width){const e=document.createElement("div");e.style.clear="both",l.appendChild(e)}}}}if(!a.querySelector(".smart-grid-edit-dialog-columns-separator")){const e=document.createElement("div"),t=a.querySelector('[field-name="description"]');t&&l.insertBefore(e,t),e.innerHTML=`<div class="smart-grid-edit-dialog-columns-separator"><span></span><div><div class="show toggle-button smart-flex">${i.localize("less")}<span style="font-family: var(--smart-font-family-icon); font-size: 16px; margin-left: 5px; border:none;" class="show smart-grid-icon smart-icon-sort-up"></span></div></div><span></span></div>`,e.querySelector(".toggle-button").onclick=()=>{const t=e.querySelector(".toggle-button");t.classList.contains("show")?(t.innerHTML=`${i.localize("more")}<span style="font-family: var(--smart-font-family-icon); font-size: 16px; margin-left: 5px; border:none;" class="show smart-grid-icon smart-icon-sort-down"></span>`,t.classList.remove("show"),a.compact=!0):(t.innerHTML=`${i.localize("less")}<span style="font-family: var(--smart-font-family-icon); font-size: 16px; margin-left: 5px; border:none;" class="show smart-grid-icon smart-icon-sort-up"></span>`,t.classList.add("show"),a.compact=!1),i._updateAddColumnDialogCompact(a)}}}_updateAddColumnDialogCompact(e){const t=e.querySelectorAll(".smart-grid-dialog-editor");for(let a=0;a<t.length;a++){const l=t[a],i=l.getAttribute("bind"),n=l.parentNode;switch(i){case"description":case"cellsAlign":case"defaultString":case"defaultNumber":case"defaultDate":case"defaultDateValue":case"setDefaultValue":case"allowResize":case"allowRichText":case"required":case"allowSort":case"allowFilter":case"allowEdit":e.compact?n.classList.add("smart-collapse"):n.classList.remove("smart-collapse")}}}_getDefaultLocales(){return{AED:"ar_AE",AFN:"fa_AF",ALL:"sq",AMD:"hy",ANG:"nl",AOA:"pt_AO",ARS:"es_AR",AUD:"en",AWG:"nl_AW",AZN:"az",BAM:"bs",BBD:"en_BB",BDT:"bn_BD",BGN:"bg",BHD:"ar_BH",BIF:"fr_BI",BMD:"en_BM",BND:"ms_BN",BOB:"es_BO",BRL:"pt_BR",BSD:"en_BS",BTN:"dz",BWP:"en_BW",BYN:"be",BYR:"be",BZD:"en_BZ",CAD:"en_CA",CDF:"fr_CD",CHF:"de_CH",CLP:"es_CL",CNY:"zh_Hans_CN",COP:"es_CO",CRC:"es_CR",CUP:"es_CU",CVE:"pt_CV",CZK:"cs",DJF:"fr_DJ",DKK:"da_DK",DOP:"es_DO",DZD:"ar_DZ",EGP:"ar_EG",ERN:"ti_ER",ETB:"am",EUR:"de",FJD:"en_FJ",FKP:"en_FK",GBP:"en",GEL:"ka",GHS:"en_GH",GIP:"en_GI",GMD:"en_GM",GNF:"fr_GN",GTQ:"es_GT",GYD:"en_GY",HKD:"zh_Hans_HK",HNL:"es_HN",HRK:"hr_HR",HTG:"en",HUF:"hu_HU",IDR:"id",ILS:"he",INR:"en_IN",IQD:"ar_IQ",IRR:"fa_IR",ISK:"is",JMD:"en_JM",JOD:"ar_JO",JPY:"ja",KES:"en_KE",KGS:"ky",KHR:"km",KMF:"ar",KPW:"ko_KP",KRW:"ko_KR",KWD:"ar_KW",KYD:"en_KY",KZT:"kk",LAK:"lo",LBP:"ar_LB",LKR:"si",LRD:"en_LR",LSL:"en_LS",LYD:"ar_LY",MAD:"ar",MDL:"ro",MGA:"fr_MG",MKD:"mk",MMK:"my",MNT:"mn",MOP:"zh",MRO:"ar_MR",MRU:"ar_MR",MUR:"en_MU",MVR:"en",MWK:"en",MXN:"es_MX",MYR:"ms_MY",MZN:"pt_MZ",NAD:"en_NA",NGN:"en_NG",NIO:"es_NI",NOK:"nb_NO",NPR:"ne",NZD:"en_NZ",OMR:"ar_OM",PAB:"es_PA",PEN:"es_PE",PGK:"en_PG",PHP:"fil",PKR:"ur_PK",PLN:"pl",PYG:"es_PY",QAR:"ar_QA",RON:"ro",RSD:"sr",RUB:"ru",RWF:"rw",SAR:"ar_SA",SBD:"en_SB",SCR:"en_SC",SDG:"ar_SD",SEK:"sv_SE",SGD:"en_SG",SHP:"en_SH",SLL:"en_SL",SOS:"so_SO",SRD:"nl_SR",SSP:"en",STD:"pt_ST",STN:"pt_ST",SYP:"ar_SY",SZL:"en_SZ",THB:"th",TJS:"en",TMT:"tk",TND:"ar_TN",TOP:"to",TRY:"tr_TR",TTD:"en_TT",TWD:"zh_Hant_TW",TZS:"sw_TZ",UAH:"uk",UGX:"en_UG",USD:"en_US",UYU:"es_UY",UZS:"uz",VEF:"es_VE",VND:"vi",VUV:"en_BI",WST:"en_AS",XAF:"fr",XCD:"en",XOF:"fr",XPF:"fr_PF",YER:"ar_YE",ZAR:"zu",ZMW:"en_ZM",ZWL:"en_ZW"}}_getLocaleByCurrency(e){const t=this._getDefaultLocales();return t[e]?t[e].replace("_","-"):"en-US"}_getCurrencyByLocale(e){const t=this;if(t._currencyByLocale||(t._currencyByLocale={}),t._currencyByLocale[e])return t._currencyByLocale[e];const a=t._getCurrencies(),l=t._getDefaultLocales(),i=Object.keys(l);for(let n of i)if(l[n].replace("_","-")===e){const l=n;for(let i=0;i<a.length;i++)if(a[i].abbreviation===l){t._currencyByLocale[e]=a[i].sign;break}}return t._currencyByLocale[e]?t._currencyByLocale[e]:null}_getCurrencies(){return[{currency:"US Dollar",sign:"$",abbreviation:"USD"},{currency:"Euro",sign:"€",abbreviation:"EUR"},{currency:"Afghan Afghani",sign:"Af.",abbreviation:"AFN"},{currency:"Albanian Lek",sign:"Lek",abbreviation:"ALL"},{currency:"Algerian Dinar",sign:"din",abbreviation:"DZD"},{currency:"Angolan Kwanza",sign:"Kz",abbreviation:"AOA"},{currency:"Argentine Peso",sign:"$",abbreviation:"ARS"},{currency:"Armenian Dram",sign:"Dram",abbreviation:"AMD"},{currency:"Aruban Florin",sign:"Afl.",abbreviation:"AWG"},{currency:"Australian Dollar",sign:"$",abbreviation:"AUD"},{currency:"Azerbaijani Manat",sign:"₼",abbreviation:"AZN"},{currency:"Bahamian Dollar",sign:"$",abbreviation:"BSD"},{currency:"Bahraini Dinar",sign:"din",abbreviation:"BHD"},{currency:"Bangladeshi Taka",sign:"৳",abbreviation:"BDT"},{currency:"Barbadian Dollar",sign:"$",abbreviation:"BBD"},{currency:"Belarusian Ruble",sign:"р.",abbreviation:"BYN"},{currency:"Belarusian Ruble",sign:"р.",abbreviation:"BYR"},{currency:"Belize Dollar",sign:"$",abbreviation:"BZD"},{currency:"Bermudan Dollar",sign:"$",abbreviation:"BMD"},{currency:"Bhutanese Ngultrum",sign:"Nu.",abbreviation:"BTN"},{currency:"Bolivian Boliviano",sign:"Bs",abbreviation:"BOB"},{currency:"Bosnia-Herzegovina Convertible Mark",sign:"KM",abbreviation:"BAM"},{currency:"Botswanan Pula",sign:"P",abbreviation:"BWP"},{currency:"Brazilian Real",sign:"R$",abbreviation:"BRL"},{currency:"British Pound Sterling",sign:"£",abbreviation:"GBP"},{currency:"Brunei Dollar",sign:"$",abbreviation:"BND"},{currency:"Bulgarian Lev",sign:"лв.",abbreviation:"BGN"},{currency:"Burundian Franc",sign:"FBu",abbreviation:"BIF"},{currency:"Cambodian Riel",sign:"Riel",abbreviation:"KHR"},{currency:"Canadian Dollar",sign:"$",abbreviation:"CAD"},{currency:"Cape Verdean Escudo",sign:"CVE",abbreviation:"CVE"},{currency:"Cayman Islands Dollar",sign:"$",abbreviation:"KYD"},{currency:"CFA Franc BCEAO",sign:"CFA",abbreviation:"XOF"},{currency:"CFA Franc BEAC",sign:"FCFA",abbreviation:"XAF"},{currency:"CFP Franc",sign:"FCFP",abbreviation:"XPF"},{currency:"Chilean Peso",sign:"$",abbreviation:"CLP"},{currency:"Chinese Yuan",sign:"¥",abbreviation:"CNY"},{currency:"Chinese Yuan (offshore)",sign:"¥",abbreviation:"RMB"},{currency:"Colombian Peso",sign:"$",abbreviation:"COP"},{currency:"Comorian Franc",sign:"CF",abbreviation:"KMF"},{currency:"Congolese Franc",sign:"FrCD",abbreviation:"CDF"},{currency:"Costa Rican Colon",sign:"₡",abbreviation:"CRC"},{currency:"Croatian Kuna",sign:"kn",abbreviation:"HRK"},{currency:"Cuban Convertible Peso",sign:"$",abbreviation:"CUC"},{currency:"Cuban Peso",sign:"$",abbreviation:"CUP"},{currency:"Czech Republic Koruna",sign:"Kč",abbreviation:"CZK"},{currency:"Danish Krone",sign:"kr.",abbreviation:"DKK"},{currency:"Djiboutian Franc",sign:"Fdj",abbreviation:"DJF"},{currency:"Dominican Peso",sign:"RD$",abbreviation:"DOP"},{currency:"East Caribbean Dollar",sign:"$",abbreviation:"XCD"},{currency:"Egyptian Pound",sign:"£",abbreviation:"EGP"},{currency:"Eritrean Nakfa",sign:"Nfk",abbreviation:"ERN"},{currency:"Ethiopian Birr",sign:"Birr",abbreviation:"ETB"},{currency:"Falkland Islands Pound",sign:"£",abbreviation:"FKP"},{currency:"Fijian Dollar",sign:"$",abbreviation:"FJD"},{currency:"Gambian Dalasi",sign:"GMD",abbreviation:"GMD"},{currency:"Georgian Lari",sign:"GEL",abbreviation:"GEL"},{currency:"Ghanaian Cedi",sign:"GHS",abbreviation:"GHS"},{currency:"Gibraltar Pound",sign:"£",abbreviation:"GIP"},{currency:"Guatemalan Quetzal",sign:"Q",abbreviation:"GTQ"},{currency:"Guinean Franc",sign:"FG",abbreviation:"GNF"},{currency:"Guyanaese Dollar",sign:"$",abbreviation:"GYD"},{currency:"Haitian Gourde",sign:"HTG",abbreviation:"HTG"},{currency:"Honduran Lempira",sign:"L",abbreviation:"HNL"},{currency:"Hong Kong Dollar",sign:"$",abbreviation:"HKD"},{currency:"Hungarian Forint",sign:"Ft",abbreviation:"HUF"},{currency:"Icelandic Krona",sign:"kr",abbreviation:"ISK"},{currency:"Indian Rupee",sign:"₹",abbreviation:"INR"},{currency:"Indonesian Rupiah",sign:"Rp",abbreviation:"IDR"},{currency:"Iranian Rial",sign:"Rial",abbreviation:"IRR"},{currency:"Iraqi Dinar",sign:"din",abbreviation:""},{currency:"Israeli New Sheqel",sign:" ₪",abbreviation:"ILS"},{currency:"Jamaican Dollar",sign:"$",abbreviation:"JMD"},{currency:"Japanese Yen",sign:"¥",abbreviation:"JPY"},{currency:"Jordanian Dinar",sign:"din",abbreviation:"JOD"},{currency:"Kazakhstani Tenge",sign:"₸",abbreviation:"KZT"},{currency:"Kenyan Shilling",sign:"Ksh",abbreviation:"KES"},{currency:"Kuwaiti Dinar",sign:"din",abbreviation:"KWD"},{currency:"Kyrgystani Som",sign:"KGS",abbreviation:"KGS"},{currency:"Laotian Kip",sign:"₭",abbreviation:"LAK"},{currency:"Lebanese Pound",sign:"L£",abbreviation:"LBP"},{currency:"Lesotho Loti",sign:"LSL",abbreviation:"LSL"},{currency:"Liberian Dollar",sign:"$",abbreviation:"LRD"},{currency:"Libyan Dinar",sign:"din",abbreviation:"LYD"},{currency:"Lithuanian Litas",sign:"Lt",abbreviation:"LTL"},{currency:"Macanese Pataca",sign:"MOP",abbreviation:"MOP"},{currency:"Macedonian Denar",sign:"din",abbreviation:"MKD"},{currency:"Malagasy Ariary",sign:"Ar",abbreviation:"MGA"},{currency:"Malawian Kwacha",sign:"MWK",abbreviation:"MWK"},{currency:"Malaysian Ringgit",sign:"RM",abbreviation:"MYR"},{currency:"Maldivian Rufiyaa",sign:"Rf",abbreviation:"MVR"},{currency:"Mauritanian Ouguiya",sign:"MRO",abbreviation:"MRO"},{currency:"Mauritian Rupee",sign:"MURs",abbreviation:"MUR"},{currency:"Mexican Peso",sign:"$",abbreviation:"MXN"},{currency:"Moldovan Leu",sign:"MDL",abbreviation:"MDL"},{currency:"Mongolian Tugrik",sign:"₮",abbreviation:"MNT"},{currency:"Moroccan Dirham",sign:"dh",abbreviation:"MAD"},{currency:"Mozambican Metical",sign:"MTn",abbreviation:"MZN"},{currency:"Myanma Kyat",sign:"K",abbreviation:"MMK"},{currency:"Namibian Dollar",sign:"$",abbreviation:"NAD"},{currency:"Nepalese Rupee",sign:"Rs",abbreviation:"NPR"},{currency:"Netherlands Antillean Guilder",sign:"NAf.",abbreviation:"ANG"},{currency:"New Taiwan Dollar",sign:"NT$",abbreviation:"TWD"},{currency:"New Zealand Dollar",sign:"$",abbreviation:"NZD"},{currency:"Nicaraguan Cordoba",sign:"C$",abbreviation:"NIO"},{currency:"Nigerian Naira",sign:"₦",abbreviation:"NGN"},{currency:"North Korean Won",sign:"₩KP",abbreviation:"KPW"},{currency:"Norwegian Krone",sign:"kr",abbreviation:"NOK"},{currency:"Omani Rial",sign:"Rial",abbreviation:"OMR"},{currency:"Pakistani Rupee",sign:"Rs",abbreviation:"PKR"},{currency:"Panamanian Balboa",sign:"B/.",abbreviation:"PAB"},{currency:"Papua New Guinean Kina",sign:"PGK",abbreviation:"PGK"},{currency:"Paraguayan Guarani",sign:"Gs.",abbreviation:"PYG"},{currency:"Peruvian Nuevo Sol",sign:"S/.",abbreviation:"PEN"},{currency:"Philippine Peso",sign:"₱",abbreviation:"PHP"},{currency:"Polish Zloty",sign:"zł",abbreviation:"PLN"},{currency:"Qatari Rial",sign:"Rial",abbreviation:"QAR"},{currency:"Romanian Leu",sign:"RON",abbreviation:"RON"},{currency:"Russian Ruble",sign:"₽",abbreviation:"RUB"},{currency:"Rwandan Franc",sign:"RF",abbreviation:"RWF"},{currency:"Saint Helena Pound",sign:"£",abbreviation:"SHP"},{currency:"Samoan Tala",sign:"WST",abbreviation:"WST"},{currency:"Sao Tomean Dobra",sign:"Db",abbreviation:"STD"},{currency:"Saudi Riyal",sign:"Rial",abbreviation:"SAR"},{currency:"Serbian Dinar",sign:"din",abbreviation:"RSD"},{currency:"Seychellois Rupee",sign:"SCR",abbreviation:"SCR"},{currency:"Sierra Leonean Leone",sign:"SLL",abbreviation:"SLL"},{currency:"Singapore Dollar",sign:"$",abbreviation:"SGD"},{currency:"Solomon Islands Dollar",sign:"$",abbreviation:"SBD"},{currency:"Somali Shilling",sign:"SOS",abbreviation:"SOS"},{currency:"South African Rand",sign:"R",abbreviation:"ZAR"},{currency:"South Korean Won",sign:"₩",abbreviation:"KRW"},{currency:"South Sudanese Pound",sign:"£",abbreviation:"SSP"},{currency:"Sri Lankan Rupee",sign:"Rs",abbreviation:"LKR"},{currency:"Sudanese Pound",sign:"SDG",abbreviation:"SDG"},{currency:"Surinamese Dollar",sign:"$",abbreviation:"SRD"},{currency:"Swazi Lilangeni",sign:"SZL",abbreviation:"SZL"},{currency:"Swedish Krona",sign:"kr",abbreviation:"SEK"},{currency:"Swiss Franc",sign:"CHF",abbreviation:"CHF"},{currency:"Syrian Pound",sign:"£",abbreviation:"SYP"},{currency:"Tajikistani Somoni",sign:"Som",abbreviation:"TJS"},{currency:"Tanzanian Shilling",sign:"TSh",abbreviation:"TZS"},{currency:"Thai Baht",sign:"฿",abbreviation:"THB"},{currency:"Tongan Pa'anga",sign:"T$",abbreviation:"TOP"},{currency:"Trinidad and Tobago Dollar",sign:"$",abbreviation:"TTD"},{currency:"Tunisian Dinar",sign:"din",abbreviation:"TND"},{currency:"Turkish Lira",sign:"₺",abbreviation:"TRY"},{currency:"Turkmenistani Manat",sign:"m",abbreviation:"TMT"},{currency:"Ugandan Shilling",sign:"UGX",abbreviation:"UGX"},{currency:"Ukrainian Hryvnia",sign:"грн.",abbreviation:"UAH"},{currency:"United Arab Emirates Dirham",sign:"dh",abbreviation:"AED"},{currency:"Uruguayan Peso",sign:"$",abbreviation:"UYU"},{currency:"Uzbekistan Som",sign:"soʼm",abbreviation:"UZS"},{currency:"Vanuatu Vatu",sign:"VUV",abbreviation:"VUV"},{currency:"Venezuelan Bolivar",sign:"Bs",abbreviation:"VEF"},{currency:"Venezuelan Bolivar",sign:"Bs",abbreviation:"VES"},{currency:"Vietnamese Dong",sign:"₫",abbreviation:"VND"},{currency:"Yemeni Rial",sign:"Rial",abbreviation:"YER"},{currency:"Zambian Kwacha",sign:"ZMW",abbreviation:"ZMW"},{currency:"Zimbabwean Dollar",sign:"$",abbreviation:"ZWD"}].map((e=>(e.label=e.currency,e.menuLabel='<div style="display: flex; justify-content: space-between;"><span>'+e.currency+'</span><span style="opacity: 0.7;">'+e.sign+" 1,000.00</span></div>",e.value=e.abbreviation,e)))}_openAddStackColumnDialog(e,t,a){const l=this,i=l._dialogAddStackColumn||l._createDialog(l.editing.addColumnDialog),n=e?l.localize("dialogEditColumn",{value:e.label}):l.localize("dialogAddColumn"),o=i.querySelector(".smart-footer").querySelector(".smart-stack-layout"),s=l._getAddStackColumnDialogTemplate();i.classList.add("smart-grid-dialog-add-column"),i.type="add",i.editColumn=e||null,e&&e.element&&e.element.setAttribute("focus",""),o.classList.remove("right"),o.classList.add("center"),l._cellEditors||(l._cellEditors=[]),i.header.innerHTML=n,i.header.parentElement.classList.add("smart-hidden"),i.callback=a,!0===t&&(i.header.parentElement.classList.remove("smart-hidden"),"kanban"===l.view?(i.header.innerHTML=l.localize("dialogAddColumnStatus"),i.header.parentElement.querySelector(".smart-close-button").classList.add("smart-hidden"),i.classList.add("view")):i.classList.remove("kanban")),i.stackLabel&&i.stackLabel.classList.add("smart-hidden"),l.cancelEdit(),i.content&&(i.content.innerHTML="");const r=document.createElement("div");r.classList.add("smart-content-layout-container"),i.content.appendChild(r),l._addStackColumnDialogEditors=[];const d=l._addStackColumnDialogEditors;if(l._initAddColumnDialogEditors(d,s,i,r),!l._dialogAddStackColumn){i.modal=!0,i.btnConfirm.innerHTML=l.localize("dialogEditButtonConfirm"),i.btnCancel.innerHTML=l.localize("dialogEditButtonCancel"),i.onOpen=function(){const e=l._dialogAddStackColumn,t=l._getAddStackColumnDialogTemplate(),a=l._addStackColumnDialogEditors;l._addColumnDialogInitEditors(e,t,a),l._addColumnDialogShowHideEditors(e);const i=l.offset(l.$.columnHeader),n=l.$.columnHeader.offsetHeight,o=l.offset(l);if(e.style.maxHeight="",e.style.minHeight="",i.top+n+e.offsetHeight>window.innerHeight-o.top){const t=n+i.top+e.offsetHeight-window.innerHeight+o.top;e.style.maxHeight=Math.max(250,e.offsetHeight-t)+"px",e.style.minHeight="250px"}else e.style.maxHeight="",e.style.minHeight=""},i.onClose=function(){i.editColumn&&i.editColumn.element&&i.editColumn.element.removeAttribute("focus"),i.classList.remove("view"),i.callback&&i.callback(i.result)},i.btnCancel.onclick=function(){i.result=!1,i.close()},i.btnClose.onclick=function(){i.result=!1,i.close()},i.btnConfirm.onclick=function(){l._confirmAddColumnDialog(i),i.result=!0,i.close()},i.onkeydown=function(e){"Escape"===e.key&&(i.result=!1,i.close())},l._dialogAddStackColumn=i;const e=document.createElement("div");e.classList.add("smart-content-layout-container"),i.content.appendChild(e)}const c=()=>{if(window.screen.availWidth<400)return i.open("left","top"),i.style.width=l.offsetWidth+"px",void(i.style.height=l.offsetHeight+"px");{const e=l.editing.addColumnDialog;i.style.width="auto"===e.width?e.width:e.width+"px",i.style.height="auto"===e.height?e.height:e.height+"px"}i.open("center","center"),setTimeout((()=>{i.btnConfirm.focus()}),100),i.classList.add("center")};c(),i.refresh=()=>{c()}}_openImagePreviewDialog(e){const t=this,a=e?[...e.parentNode.parentNode.querySelectorAll("img")]:[];let l=e.hasAttribute("data-url")?e.getAttribute("data-url"):e.src;if((e=e.cloneNode()).src=l,!t._dialogImagePreview){t._dialogImagePreview=t._createDialog({modal:!0,screenModal:!0,left:"screenMiddle",top:"screenCenter",width:"80%",height:"80%"}),t._dialogImagePreview.content.innerHTML='<div style="width: 100%; height: 100%;"><div class="images-container"></div><div class="image-preview"></div></div>';const e=t._dialogImagePreview.content.firstElementChild;e.style.display="grid",e.style.gridTemplateColumns="50px 1fr"}const i=t._dialogImagePreview.querySelector(".images-container");i.innerHTML="";const n=(e,a)=>{e.width=e.naturalWidth,e.height=e.naturalHeight;const l=150+Math.min(850,e.naturalWidth),i=150+Math.min(650,e.naturalHeight);t._dialogImagePreview.style.width=l+"px",t._dialogImagePreview.style.height=i+"px",!1!==a&&(t._dialogImagePreview.style.left="calc(50% - "+Math.min(850,t._dialogImagePreview.offsetWidth/2)+"px)",t._dialogImagePreview.style.top="calc(50% - "+Math.min(650,t._dialogImagePreview.offsetHeight/2)+"px)");const n=getComputedStyle(t._dialogImagePreview),o=parseInt(n.top),s=parseInt(n.left);if((window.offsetWidth<l||window.offsetHeight<i||o<0||s<0)&&(t._dialogImagePreview.style.left="0px",t._dialogImagePreview.style.top="0px",t._dialogImagePreview.style.width="100%",t._dialogImagePreview.style.height="100%"),o+i>window.innerHeight){const e=o+i-window.innerHeight;t._dialogImagePreview.style.height=i-e-20+"px"}e.style.maxWidth="100%",e.style.objectFit="contain",e.style.width="100%",e.style.height="calc(100% - 10px)"},o=()=>{const e=t._dialogImagePreview.querySelector(".images-container");let a=-1;return e.querySelectorAll("img").forEach(((e,t)=>{if(e.hasAttribute("active"))return a=t,!0})),a},s=e=>{const a=t._dialogImagePreview.querySelector(".images-container");e&&(e.hasAttribute("active")||a.querySelectorAll("img").forEach((t=>{t.style.borderColor="transparent",t.removeAttribute("active");let a=t.hasAttribute("data-url")?t.getAttribute("data-url").replaceAll("\\","/"):"";if(t.src===e.src||a===e.src){t.style.borderColor="var(--smart-primary)",t.setAttribute("active","");let e=t.src;t.hasAttribute("data-url")&&(e=t.getAttribute("data-url")),r.innerHTML=`<img src="${e}"/>`;const a=r.querySelector("img");a.onload=()=>{n(a,!1)}}})))};if(a.length>1)for(let t=0;t<a.length;t++){const l=a[t].cloneNode();l.style.width="40px",l.style.height="40px",l.style.cursor="pointer",l.style.borderStyle="solid",l.style.borderWidth="1px",l.style.borderColor="transparent",l.style.borderRadius="var(--smart-border)",l.style.marginTop="10px",l.classList.remove("smart-hidden"),l.title=a[t].title||a[t].parentNode.title,a[t].src===e.src&&(l.style.borderColor="var(--smart-primary)",l.setAttribute("active","")),i.appendChild(l),l.onmouseenter=()=>{l.style.borderColor="var(--smart-primary)"},l.onmouseleave=()=>{l.hasAttribute("active")||(l.style.borderColor="transparent")},l.onclick=()=>{s(l)}}const r=t._dialogImagePreview.content.querySelector(".image-preview");r.innerHTML="",r.style.overflow="auto",r.appendChild(e),t._dialogImagePreview.btnClose.onclick=e=>{t.layout.isDirty=!1,t._dialogImagePreview.close(),e.preventDefault(),e.stopPropagation()},e.style.marginLeft="auto",e.style.marginRight="auto",e.style.maxWidth="",e.style.width="",e.style.height="",e.onload=()=>{n(e)},t._dialogImagePreview.content.onpointerdown=t._dialogImagePreview.content.onpointerup=e=>{e.preventDefault(),e.stopPropagation()},t._dialogImagePreview.onkeydown=function(e){if("Escape"===e.key&&t._dialogImagePreview.close(),"ArrowUp"===e.key||"ArrowLeft"===e.key){const t=o();s(a[t-1]),e.stopPropagation(),e.preventDefault()}else if("ArrowDown"===e.key||"ArrowRight"===e.key){const t=o();s(a[t+1]),e.stopPropagation(),e.preventDefault()}},t._dialogImagePreview.btnClose.tabIndex=0,t._dialogImagePreview.onOpen=()=>{setTimeout((()=>{t._dialogImagePreview.btnClose.focus()}),100)},t._dialogImagePreview.footer.remove(),t._dialogImagePreview.header.parentNode.style.backgroundColor="var(--smart-background)",t._dialogImagePreview.open(),e&&s(e)}_getFileFromBase64(e,t){let a=e.split(","),l=a[0].match(/:(.*?);/)[1],i=atob(a[1]),n=i.length,o=new Uint8Array(n);for(;n--;)o[n]=i.charCodeAt(n);return new File([o],t,{type:l})}_getBase64(e,t){var a=new FileReader;a.readAsDataURL(e),a.onload=function(){t(a.result)},a.onerror=function(){t("error")}}_findIsFile(e){return"string"==typeof e&&(e.indexOf("http")>=0||e.indexOf("base64")>=0||e.indexOf('[{"value":"/')>=0)}_findUserFile(e){const t=this;if(e&&e.value.startsWith("/"))return!0;if(t.uploadSettings.userFiles)for(let a=0;a<t.uploadSettings.userFiles.length;a++){const l=t.uploadSettings.userFiles[a];if(l){let t=e.name||e.label;if(!t&&!e.label&&e.value){const a=e.value.split("/");t=a[a.length-1]}if(l.label===t)return l;if(l.label.indexOf("_")>=0&&(l.label.substring(0,l.label.lastIndexOf("_"))+l.label.substring(l.label.indexOf("."))).indexOf(t)>=0)return l;const a=l.value.replaceAll("\\","/");if(a===e.value||a===e.url)return l}}return null}_removeFiles(){const e=this,t=e._dialogFile,a=(t.preview.querySelectorAll(".item"),t.fileUpload),l=t.cell.value&&t.cell.value.indexOf("[{")>=0?JSON.parse(t.cell.value):[];if(e.uploadSettings.removeUrl){let i=new FormData,n=new XMLHttpRequest;for(let n=0;n<a.files.length;n++){let o=l[n]?l[n]:e.uploadSettings.url+"/"+a.files[n].name;if(t&&t.cell&&t.cell.value&&t.cell.value.indexOf("[")>=0){const e=JSON.parse(t.cell.value);for(let t=0;t<e.length;t++)if(e[t].label===a.files[n].name){o=e[t].value;break}}e._findUserFile(a.files[n])||i.append(e.uploadSettings.name,a.files[n])}for(let a=0;a<t.uploadedWithLink.length;a++){const l=t.uploadedWithLink[a];e._findUserFile(l)||i.append(e.uploadSettings.name,l)}n.open("POST",e.uploadSettings.removeUrl),n.send(i)}if(e.uploadSettings.onUploadRemove){const l=t.cell.value&&t.cell.value.indexOf("[{")>=0?JSON.parse(t.cell.value):[];for(let t=0;t<a.files.length;t++)l&&l[t]?e.uploadSettings.onUploadRemove(l[t]):e.uploadSettings.removeUrl&&e.uploadSettings.onUploadRemove(e.uploadSettings.removeUrl+"/"+a.files[t].name)}t.uploadedWithLink=[],a.value="",t.input.value="",e._updateFilePreview(),t.tabs[2].classList.contains("active")&&t.tabs[2].click()}_removeFile(e){const t=this,a=t._dialogFile,l=a.preview.querySelectorAll(".item"),i=e.name||e.label,n=a.fileUpload,o=new DataTransfer;l.forEach((e=>{let t=!0;e.file.name!==i&&e.file.label!==i||(t=!1),e.file.value&&(t=!1),t&&o.items.add(e.file)})),n.files=o.files,a.clearButton&&0===l.length&&a.clearButton.classList.remove("show");let s=t.uploadSettings.url+"/"+i;if(a&&a.cell&&a.cell.value&&a.cell.value.indexOf("[")>=0){const e=JSON.parse(a.cell.value);for(let t=0;t<e.length;t++)if(e[t].label===i){s=e[t].value;break}}let r=-1;for(let e=0;e<a.uploadedWithLink.length;e++){const t=a.uploadedWithLink[e];if(t&&t.label===i){r=e;break}}if(r>=0&&a.uploadedWithLink.splice(r,1),t.uploadSettings.userFiles)for(let e=0;e<t.uploadSettings.userFiles.length;e++){const l=t.uploadSettings.userFiles[e];if(l&&l.label===i)return void(a.tabs[2].classList.contains("active")&&a.tabs[2].click())}if(t.uploadSettings.onUploadRemove){let e=s;t.uploadSettings.onUploadRemove(e)}if(t.uploadSettings.removeUrl){let e=new FormData,a=new XMLHttpRequest;e.append(t.uploadSettings.name,s),a.open("POST",t.uploadSettings.removeUrl),a.send(e)}}getFileTypes(e){return e?["image/apng","image/bmp","image/gif","image/jpeg","image/jpg","image/pjpeg","image/png","image/svg+xml","image/tiff","image/webp","image/x-icon","video/x-msvideo","text/csv","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-fontobject","image/gif","application/json","text/plain","application/xml","application/zip","application/gzip","application/pdf","application/vnd.ms-powerpoint","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/x-7z-compressed","application/vnd.rar","application/rtf","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/x-zip-compressed"]:["image/apng","image/bmp","image/gif","image/jpeg","image/jpg","image/pjpeg","image/png","image/svg+xml","image/tiff","image/webp","image/x-icon"]}_getFileSize(e){return"string"==typeof e?e:e<1024?e+"bytes":e>=1024&&e<1048576?((e/1024).toFixed(1)+"KB").replace(".0",""):e>=1048576?(e/1048576).toFixed(1)+"MB":void 0}_getFileListItem(e){const t=this,a=t._dialogFile,l=a.acceptFiles,i=document.createElement("div");e.name||(e.name=e.label);const n=e.size||0;i.classList.add("item"),i.onpointerdown=n=>{const o=i.getBoundingClientRect();if(a.input.value="",n.clientY>=o.bottom-12)n.clientX>o.left+o.width/2-13&&n.clientX<o.left+o.width/2+13&&(i.remove(),t._removeFile(i.file));else if(l){if(e.value){const t=document.createElement("a");return t.href=e.value,t.target="_blank",void t.click()}const t=URL.createObjectURL(e),a=document.createElement("a");a.download=e.name,a.href=t,a.click()}else t._openImagePreviewDialog(i.querySelector("img"))};const o=document.createElement("div"),s=n?`, ${t._getFileSize(e.size)}.`:"";let r;return o.textContent=o.textContentTitle=`${e.name}${s}`,o.textContent.length>20&&(o.textContent=`${e.name.substring(0,5)}...${e.name.substring(e.name.length-4)} ${s}`),a.objectURL||(a.objectURL=[]),a.objectURL[e.name+"_"+n]||(e.small?a.objectURL[e.name+"_"+n]=e.small?e.small:URL.createObjectURL(e):e.medium?a.objectURL[e.name+"_"+n]=e.medium?e.medium:URL.createObjectURL(e):a.objectURL[e.name+"_"+n]=e.value?e.value:URL.createObjectURL(e)),l?(r=document.createElement("div"),r.classList.add("attachment","smart-grid-icon","show"),e.name.indexOf(".pdf")>=0?r.classList.add("smart-icon-pdf"):e.name.indexOf(".png")>=0||e.name.indexOf(".jpg")>=0||e.name.indexOf(".jpeg")>=0||e.name.indexOf(".gif")>=0?r.classList.add("smart-icon-image"):e.name.indexOf(".tsv")>=0||e.name.indexOf(".txt")>=0||e.name.indexOf(".csv")>=0?r.classList.add("smart-icon-text"):e.name.indexOf(".xls")>=0||e.name.indexOf(".xlsx")>=0?r.classList.add("smart-icon-excel"):e.name.indexOf(".ppt")>=0?r.classList.add("smart-icon-powerpoint"):e.name.indexOf(".zip")>=0||e.name.indexOf(".rar")>=0||e.name.indexOf(".7z")>=0?r.classList.add("smart-icon-archive"):e.name.indexOf(".doc")>=0||e.name.indexOf(".docx")>=0?r.classList.add("smart-icon-word"):r.classList.add("smart-icon-file")):(r=document.createElement("img"),r.loading="lazy",r.src=a.objectURL[e.name+"_"+n],r.onerror=()=>{if(i.style.display="none",a.uploadedWithLink.length){const t=a.uploadedWithLink.indexOf(e);t>=0&&a.uploadedWithLink.splice(t,1)}}),i.file=e,i.title=o.textContentTitle||o.textContent,i.appendChild(r),i.appendChild(o),i}_updateFilePreview(){const e=this,t=e._dialogFile,a=t.preview,l=t.fileUpload;for(;a.firstChild;)a.removeChild(a.firstChild);const i=()=>{const l=document.createElement("div");l.classList.add("list");const i=document.createElement("div");i.classList.add("smart-grid-icon","show","smart-icon-delete"),i.title=e.localize("clear"),a.appendChild(i),i.onclick=()=>{e._removeFiles()},t.clearButton=i,a.appendChild(l)},n=l.files;if(0===n.length)if(0===t.uploadedWithLink.length){const t=document.createElement("p");t.textContent=e.localize("dialogFileFileUpload"),a.appendChild(t)}else i();else{i();const o=new DataTransfer,s=t.column.editor.maxImages||e.uploadSettings.uploadMaxCount||5,r=t.column.editor.maxImageSize||e.uploadSettings.uploadMaxSize||524288;let d=0,c=[];for(const l of n){if(!e._validateFileType(l))continue;const i=e._getFileListItem(l);if(d>=s)c.push(l.name);else if(l.size>r){const t=document.createElement("p");t.textContent=t.textContentTitle=e.localize("dialogFileSize",{value:l.name,fileSize:e._getFileSize(r)}),a.appendChild(t)}else o.items.add(l),t.preview.querySelector(".list").appendChild(i),d++}if(c.length>0){const t=document.createElement("p");t.textContent=e.localize("dialogFileCount",{files:c.toString(),fileCount:s}),a.appendChild(t)}l.files=o.files}if(t.uploadedWithLink&&t.uploadedWithLink.length)for(let a=0;a<t.uploadedWithLink.length;a++){const l=t.uploadedWithLink[a];if(l){const a=e._getFileListItem(l);l.name=l.label,a.file=l,t.preview.lastChild.appendChild(a)}}}_validateFileType(e){return this.getFileTypes(this._dialogFile.acceptFiles).includes(e.type)}_getFileIndex(e){const t=this._dialogFile;let a=-1;for(let l=0;l<t.uploadedWithLink.length;l++){const i=t.uploadedWithLink[l];if(i.label===e.name||i.label===e.label&&(void 0!==i.label||void 0!==e.label)){a=l;break}if(i.name===e.name||i.name===e.label){a=l;break}if(e.label.indexOf(i.name.substring(0,i.name.indexOf(".")))>=0){a=l;break}}for(let l=0;l<t.fileUpload.files.length;l++){const i=t.fileUpload.files[l];if(i.label===e.name||i.label===e.label&&(void 0!==i.label||void 0!==e.label)){a=l;break}if(i.name===e.name||i.name===e.label){a=l;break}if(e.label&&e.label.indexOf(i.name.substring(0,i.name.indexOf(".")))>=0){a=l;break}if(e.name&&e.name.indexOf(i.name.substring(0,i.name.indexOf(".")))>=0){a=l;break}}return a}_openFileDialog(e,t=!1){const a=this,l=a._dialogFile||a._createDialog(),i='<span class="smart-grid-icon '+(!1===t?"smart-icon-image":"smart-icon-docs")+' show"></span>'+(!1===t?a.localize("dialogImageFileHeader"):a.localize("dialogFileHeader"));if(l.cell=e,l.header.innerHTML=i,l.column=e.column,l.acceptFiles=t,l.classList.add("smart-grid-image-dialog"),!a._dialogFile){l.modal=!0,l.btnConfirm.innerHTML=a.localize("dialogEditButtonConfirm"),l.btnCancel.innerHTML=a.localize("dialogEditButtonCancel");const e=()=>{l.loader&&l.loader.classList.add("smart-hidden"),l.close()};l.onOpen=function(){l.fileUpload.value="",l.input.value="",l.uploadedWithLink=[];let e=l.cell.editor.instance.getValue();if("[]"===e)return void l.tabs[0].click();l.tabs[0].click();let t=!0;const i=new DataTransfer;if("string"==typeof e&&e.indexOf("base64")>=0||"string"==typeof e&&e.indexOf("[{")>=0?e=JSON.parse(e):"string"==typeof e&&e.indexOf("./")>=0&&(e=e.split(","),e=e.map((e=>({label:e,value:e})))),Array.isArray(e)){let n=0;e.forEach((async o=>{if(t=!1,"string"==typeof o.value&&o.value.indexOf("base64")>=0&&(t=!0),t)i.items.add(a._getFileFromBase64(o.value,o.label));else{const t=(t,i)=>{a.uploadSettings.url&&(a._findUserFile(t)?(l.uploadedWithLink.push(t),n++,n===e.length&&a._updateFilePreview()):i("error"))};o.value.indexOf(window.location.host)>=0?t(o,(t=>{"error"!==t&&i.items.add(t),n++,n===e.length&&(l.fileUpload.files=i.files,a._updateFilePreview())})):(l.uploadedWithLink.push(o),n++,n===e.length&&a._updateFilePreview())}})),l.fileUpload.files=i.files,a._updateFilePreview()}else a._updateFilePreview()},l.onClose=function(){},l.btnCancel.onclick=function(){l.close()},l.btnClose.onclick=function(){l.close()},l.btnConfirm.onclick=function(){let i=[],n=[...l.fileUpload.files];l.loader?l.loader.classList.remove("smart-hidden"):(l.loader=document.createElement("div"),l.loader.classList.add("smart-grid-loader"),l.loader.style.width=l.loader.style.height="24px",l.btnConfirm.parentNode.insertBefore(l.loader,l.btnConfirm)),l.uploadedWithLink&&l.uploadedWithLink&&l.uploadedWithLink.length&&(i=i.concat(l.uploadedWithLink)),(()=>{if(l.cell.value&&"string"==typeof l.cell.value){const e=l.cell.value.indexOf("[{")>=0?JSON.parse(l.cell.value):[];e&&e.length&&(n=n.filter((t=>{let a=!0;return e.forEach((e=>{if(e.label===t.name&&(a=!1,!a)){const t={value:e.value,label:e.label};e.small&&(t.small=e.small),e.medium&&(t.medium=e.medium),e.large&&(t.large=e.large),i.push(t)}})),a})))}})();const o=()=>{const t=l.cell.value;l.cell.editor.instance.setValue(i),!(a.editing.dialog.enabled&&a.editing.dialog.visible)&&(a._endCellEdit(l.cell),a._handleFileColumnHistory(l.cell.row,l.cell.column.dataField,t,i)),e()};if(a.uploadSettings.url){const s=(t,i)=>{const n=t.filter((e=>-1!==e.value.indexOf(window.location.host)));if(i&&i[0]&&"error"===i[0].response&&(a.cancelEdit(),e()),n.length===l.fileUpload.files.length+l.uploadedWithLink.length){(i.files||i[0])&&a.uploadSettings.onUploadCompleted&&a.uploadSettings.onUploadCompleted({files:l.fileUpload.files,status:200,serverResponse:i});const t=l.cell.column.dataField;let o=l.cell.value;l.cell.editor.instance.setValue(n),!(a.editing.dialog.enabled&&a.editing.dialog.visible)&&(a._endCellEdit(l.cell),a._handleFileColumnHistory(l.cell.row,t,o,n)),e()}};if(0===n.length&&0===l.uploadedWithLink.length)l.cell.editor.instance.setValue(i),!(a.editing.dialog.enabled&&a.editing.dialog.visible)&&a._endCellEdit(l.cell),e();else if(a.uploadSettings.singleFilePost){let e=!1;for(let o=0;o<n.length;o++){const r=[];r.push(n[o]),a._handleFileUpload(l,r,i,t?"file":"image",s),e=!0}for(let t=0;t<l.uploadedWithLink.length;t++){const n=[];a._findUserFile(l.uploadedWithLink[t])||(n.push(l.uploadedWithLink[t].value),a._handleFileUpload(l,n,i,"url",s),e=!0)}e||o()}else if(n.length&&a._handleFileUpload(l,n,i,t?"file":"image",s),l.uploadedWithLink.length){const e=l.uploadedWithLink.filter((e=>!a._findUserFile(e)));if(e.length){const t=e.map((e=>e.value));a._handleFileUpload(l,t,i,"url",s)}else i.length===l.fileUpload.files.length+l.uploadedWithLink.length&&o()}}else{let e=0;for(let t=0;t<n.length;t++){const l=n[t];a._getBase64(l,(t=>{"error"===t&&console.log("Image load error"),e++,i.push({value:t,label:l.name}),e===n.length&&o()}))}0===n.length&&o()}},l.onkeydown=function(e){"Escape"===e.key&&l.close()},a._dialogFile=l,l.content.innerHTML=`\n <div>\n <div>\n <div class="tabs">\n <div class="active tab">\n <span class="smart-grid-icon smart-icon-plus show"></span><label>${a.localize("dialogFileDevice")}</label>\n </div>\n <div class="tab">\n <span class="smart-grid-icon smart-icon-link show"></span><label>${a.localize("dialogFileLink")}</label>\n </div>\n <div class="tab">\n <span class="smart-grid-icon smart-icon-cloud show"></span><label>${a.localize("dialogMyFiles")}</label>\n </div>\n </div>\n </div>\n <div class="smart-grid-drop-zone">\n <div>\n <div class="title"><span class="smart-grid-icon smart-icon-plus show"></span><label>${a.localize("dialogFileUpload")}</label></div>\n <div class="subtitle"><span class="smart-grid-icon smart-icon-docs show"></span><label>${a.localize("dialogFileDrop")}</label></div>\n </div> \n <input accept=".jpg, .jpeg, .png" type="file" multiple="multiple" style="display: none;">\n </div>\n <div class="smart-hidden url-zone">\n <div class="url-title">\n ${a.localize("dialogFileURL")}\n </div>\n <div class="upload">\n <smart-input placeholder="https://example.com/image.png" class="underlined"></smart-input>\n <br/>\n <smart-button disabled class="success">${a.localize("dialogFileURLUpload")}</smart-button>\n </div>\n </div>\n <div class="smart-hidden smart-grid-file-zone">\n \n <div class="files">\n </div>\n <div class="subtitle"><span class="smart-grid-icon smart-icon-attention-circled show"></span><label>${a.localize("dialogMyFilesTitle")}</label></div>\n </div>\n <div class="preview">\n </div>\n <br/>\n </div>`,l.input=l.querySelector("smart-input"),l.dropZone=l.querySelector(".smart-grid-drop-zone"),l.upload=l.querySelector(".title"),l.fileUpload=l.querySelector("input"),l.preview=l.querySelector(".preview"),l.tabs=l.querySelectorAll(".tab"),l.urlZone=l.querySelector(".url-zone"),l.fileZone=l.querySelector(".smart-grid-file-zone"),l.files=l.querySelector(".smart-grid-file-zone .files"),l.uploadButton=l.querySelector("smart-button"),l.input.accept=t?".jpg, .jpeg, .png, .pdf, .xls, .xlsx, .doc, .docx, .gif, .csv, .txt, .xml, .zip, .rtf, .ppt, .pptx, .avi, .html, .htm":".jpg, .jpeg, .png, .gif",l.dropZone.ondrop=l.dropZone.dropHere=e=>{if(e.preventDefault(),e.dataTransfer.items){let t=0;const i=l.column.editor.maxImages||5;for(let l=0;l<e.dataTransfer.items.length;l++)if("file"===e.dataTransfer.items[l].kind){const i=e.dataTransfer.items[l].getAsFile();a._validateFileType(i)&&t++}if(t===e.dataTransfer.files.length||t===i){const t=new DataTransfer;let n=[...e.dataTransfer.files],o=[...l.fileUpload.files];n.length>i&&(n=n.slice(0,5)),o.length>i&&(o=o.slice(0,5)),o.forEach(((e,a)=>{a<i&&t.items.add(e)})),n.forEach(((e,a)=>{a<i&&t.items.add(e)})),l.fileUpload.files=t.files,a._updateFilePreview()}}else l.fileUpload.files=e.dataTransfer.files,a._updateFilePreview()},l.dropZone.ondragover=e=>{e.preventDefault()},l.tabs[0].onclick=()=>{l.tabs[0].classList.add("active"),l.tabs[1].classList.remove("active"),l.tabs[2].classList.remove("active"),l.dropZone.classList.remove("smart-hidden"),l.fileZone.classList.add("smart-hidden"),l.urlZone.classList.add("smart-hidden")},l.tabs[1].onclick=()=>{l.tabs[0].classList.remove("active"),l.tabs[1].classList.add("active"),l.tabs[2].classList.remove("active"),l.dropZone.classList.add("smart-hidden"),l.fileZone.classList.add("smart-hidden"),l.urlZone.classList.remove("smart-hidden")},l.tabs[2].onclick=()=>{if(l.tabs[0].classList.remove("active"),l.tabs[1].classList.remove("active"),l.tabs[2].classList.add("active"),l.dropZone.classList.add("smart-hidden"),l.urlZone.classList.add("smart-hidden"),l.fileZone.classList.remove("smart-hidden"),l.files.innerHTML="",a.uploadSettings.userFiles&&a.uploadSettings.userFiles.length){const e=document.createDocumentFragment();a.uploadSettings.userFiles.forEach((t=>{Array.isArray(t)&&(t=t[0]);let i=t;"string"==typeof t.value&&t.value.indexOf("base64")>=0&&(t=a._getFileFromBase64(t.value,t.label)),t.type||(t.type="unknown");const n=a._getFileListItem(t);a._validateFileType(t)&&(a._getFileIndex(t)>=0&&n.classList.add("active"),n.onpointerdown=()=>{n.classList.toggle("active");let e=a._getFileIndex(t);n.classList.contains("active")?e<0&&l.uploadedWithLink.push({label:i.name||i.label,value:i.value}):a._removeFile(i),a._updateFilePreview()},e.appendChild(n))})),l.files.appendChild(e)}},l.uploadButton.onclick=()=>{const e=this,t=l.input.value,a=t.split("/"),i=a[a.length-1];if(l.column&&l.column.editor&&e.uploadSettings.url){const a={value:t,label:i},n=e._findUserFile(a);for(let e=0;e<l.uploadedWithLink.length;e++){if(l.uploadedWithLink[e].label===i)return;if(n&&l.uploadedWithLink[e].label===n.label)return}l.uploadedWithLink.push(n||a),e._updateFilePreview()}else{const a={value:t,label:i};for(let e=0;e<l.uploadedWithLink.length;e++)if(l.uploadedWithLink[e].label===i)return;l.uploadedWithLink.push(a),e._updateFilePreview()}l.input.value="",l.uploadButton.disabled=!0},l.fileUpload.onchange=()=>{if(0===l.fileUpload.files.length&&l._tempFiles)l.fileUpload.files=l._tempFiles;else if(l._tempFiles){const e=new DataTransfer,t=[...l.fileUpload.files],i=[...l._tempFiles];i.forEach((t=>{e.items.add(t)})),t.forEach((t=>{let l=!0;a._validateFileType(t)||(l=!1),i.forEach((e=>{e.name===t.name&&e.size===t.size&&e.lastModified===t.lastModified&&(l=!1)})),l&&e.items.add(t)})),l.fileUpload.files=e.files}a._updateFilePreview()},l.input.onchange=l.input.onblur=l.input.onkeyup=()=>{l.uploadButton.disabled=!l.input.value||!l.input.value.startsWith("https://");const e=l.input.value,t=e.split("/"),i=t[t.length-1];if(l.column&&l.column.editor&&a.uploadSettings.url){const t={value:e,label:i},n=a._findUserFile(t);for(let e=0;e<l.uploadedWithLink.length;e++)l.uploadedWithLink[e].label===i&&(l.uploadButton.disabled=!0),n&&l.uploadedWithLink[e].label===n.label&&(l.uploadButton.disabled=!0)}},l.upload.onclick=()=>{l._tempFiles=[];const e=new DataTransfer;[...l.fileUpload.files].forEach((t=>{e.items.add(t)})),l._tempFiles=e.files,l.fileUpload.click()}}l.fileUpload.accept=t?".jpg, .jpeg, .png, .pdf, .xls, .xlsx, .doc, .docx, .gif, .csv, .txt, .xml, .zip, .rtf, .ppt, .pptx, .avi, .html, .htm":".jpg, .jpeg, .png, .gif",l.open(),setTimeout((function(){l.btnConfirm.focus()}),100)}_handleFileUpload(e,t,a,l,i){const n=this;if(l||(l="image"),e.column&&e.column.editor&&n.uploadSettings.url){const o=new FormData,s=n.uploadSettings.url;let r=!1;const d=t[0],c=n.uploadSettings.data;c&&""!==c&&("string"==typeof c?o.append("postData",c):o.append("postData",JSON.stringify(c))),o.append("fileType",l);for(let e=0;e<t.length;e++)o.append(n.uploadSettings.name,t[e]),r=!0;let u=new XMLHttpRequest;u.open("POST",s),n.uploadSettings.onSetHeaders&&"function"==typeof n.uploadSettings.onSetHeaders&&n.uploadSettings.onSetHeaders(u,d),r&&n.$.fireEvent("uploadStarted",{files:t,size:d.size}),n.uploadSettings.onUploadStarted&&n.uploadSettings.onUploadStarted({files:t,status:u.status}),u.upload.onprogress=function(e){n.uploadSettings.onProgress&&n.uploadSettings.onProgress(e)},u.onabort=function(e){n.uploadSettings.onAbort&&n.uploadSettings.onAbort(e)},u.onerror=function(e){n.uploadSettings.onError&&n.uploadSettings.onError(e)},u.onload=function(){let e=!1;if(u.response&&("string"==typeof u.response?(e=u.response,e.indexOf("[{")>=0&&(e=JSON.parse(u.response))):e=JSON.parse(u.response)),u.status>=200&&u.status<=299){const o=(e,t)=>{if(e.response&&e.response.response&&"success"!==e.response.response)return null;let a=!1;u.fileURL&&(a=u.file_url);let l={};e&&e.file_url?a=e.file_url:e&&e[0]&&e[0].file_url&&(a=e[0].file_url);let i=!1;e&&e.file_url_small?i=e.file_url_small:e&&e[0]&&e[0].file_url_small&&(i=e[0].file_url_small);let n=!1;e&&e.file_url_medium?n=e.file_url_medium:e&&e[0]&&e[0].file_url_medium&&(n=e[0].file_url_medium);let o=!1;return e&&e.file_url_large?o=e.file_url_large:e&&e[0]&&e[0].file_url_large&&(o=e[0].file_url_large),a&&(l.value=a),i&&(l.small=i),n&&(l.medium=n),o&&(l.large=o),l.label=t,l};for(let i=0;i<t.length;i++){const s=t[i].name?[]:t[i].split("/"),r="url"===l?s[s.length-1]:t[i].name;n.uploadSettings.url;const d=o((e.files||e[0]&&e[0].files||[e[0]])[i],r);d&&a.push(d)}i(a,e)}else i(a,e),n.uploadSettings.onUploadError&&n.uploadSettings.onUploadError({files:t,status:u.status,serverResponse:e})},u.onreadystatechange=function(){e.column.editor.responseHandler&&"function"==typeof e.column.editor.responseHandler&&e.column.editor.responseHandler(u)},r&&u.send(o),n.uploadSettings.onChange&&n.uploadSettings.onChange(t)}}_handleFileColumnHistory(e,t,a,l){const i=this;if(i.storeHistory){a&&"string"==typeof a&&(a=a.indexOf("[{")>=0?(a=(a=JSON.parse(a)).map((e=>e.label))).toString():(a=(a=a.split(",")).map((e=>e.label?e.label:e))).toString()),a&&(Array.isArray(a)&&(a=a.map((e=>e.label))),a=a.toString()),null==a&&(a=""),l&&"string"==typeof l&&(l=(l=(l=JSON.parse(l)).map((e=>e.label))).toString()),null==l&&(l=""),l&&(Array.isArray(l)&&(l=l.map((e=>e.label))),l=l.toString());const n={user:i._currentUser.info.id,date:e.updatedDate};n.action=t,n.details={oldValue:a,value:l},e.addHistory(n)}}});
1457
1457
 
1458
1458
  /***/ }),
1459
1459
 
@@ -1537,7 +1537,7 @@ Smart.Utilities.Assign("Grid.Sort",class{clearSort(){const t=this;if(!t._isSorti
1537
1537
  /***/ 238:
1538
1538
  /***/ (() => {
1539
1539
 
1540
- 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="colorsButton" class="smart-data-view-header-button smart-data-view-colors-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="Colors"><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="view" class="smart-hidden" role="presentation"></div>\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="colors" 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.$.colorsButton.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","colors-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.$.colors.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;if(t.grid.header.appendTo){const e=document.querySelector(t.grid.header.appendTo);t.$.headerDropDown.style.top=t.grid.offset(e).top+e.offsetHeight-s+"px"}else t.$.headerDropDown.style.top=t.grid.offset(t.grid).top+t.grid.$.header.offsetHeight-s+"px";const i=()=>{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;if(t.grid.header.appendTo){const a=document.querySelector(t.grid.header.appendTo);e=t.grid.offset(a).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="",i())}openFilterPanel(e){const t=this,a=t.dataSource;t._refreshColumns("filter"),t.$.view.classList.add("smart-hidden");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)}}openColorsPanel(){const e=this,t=e.dataSource;e._refreshColumns("colors"),e.$.view.classList.add("smart-hidden");const a=this.columns.map((e=>{const a=Object.assign({},e),s=t.dataFields.find((e=>e.name===a.dataField));return s&&(a.dataType=s.dataType),a}));super.openColorsPanel(a,null,e.grid),e._closeDownloadMenu(),e._closeViewsMenu(),e.grid.closeMenu()}openViewPanel(){const e=this;if(e.disabled||"none"===e.headerPosition)return;if(!1===e.grid.appearance.showViewBarAsDropdown)return;let t;e.$.headerDropDown.classList.add("view-panel"),e.$.headerDropDown.classList.remove("customize-panel","filter-panel","sort-panel","search-panel","group-panel","format-panel","colors-panel"),e.$.view.classList.remove("smart-hidden"),e.$.colors.classList.add("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.$.customize.classList.add("smart-hidden"),e.$.format&&e.$.format.classList.add("smart-hidden"),e.$.group&&e.$.group.classList.add("smart-hidden"),e.$.search.classList.add("smart-hidden"),e._closeSearchPanel(),e._viewPartCreated?t=e.$.view.firstElementChild:(t=document.createElement("div"),t.classList.add("smart-view-panel","smart-grid-view-bar"),e.$.view.appendChild(t),e.$.viewPanel=t,e._viewPartCreated=!0,e._updateViews()),e._openHeaderDropDown(e.$.viewStatesButton)}openSortPanel(e){const t=this,a=t.dataSource;t._refreshColumns("sort"),t.$.view.classList.add("smart-hidden");const s=t.columns.map((e=>{const s=Object.assign({},e),i=t._appliedSorting.dataFields.indexOf(s.dataField),o=a.dataFields.find((e=>e.name===s.dataField));return o&&(s.dataType=o.dataType,s.sortIndex=i,-1!==i&&(s.sortDirection=t._appliedSorting.orderBy[i])),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 i=t.grid;i.closeMenu();const o=t.$.headerDropDown.querySelector("smart-sort-panel");if(!o)return;o.grid=i,o.$.maintainSortContainer.classList.remove("smart-hidden"),i.sorting.maintainSort?o.$.maintainSortContainer.firstElementChild.setAttribute("active",""):o.$.maintainSortContainer.firstElementChild.removeAttribute("active"),o._changeApplyButtonText();const n=o.$.inputNotSorted,r=()=>{const e=o.querySelectorAll(".smart-grid-panel-item");"many"===t.grid.sorting.mode||e.length<1?n.classList.remove("smart-visibility-hidden"):e.length>=1&&n.classList.add("smart-visibility-hidden")};o.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,i=0,o=[],n=[];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--,n.push(r.dataField)),r.visible||(i++,o.push(r.dataField)),t.push(r)})),s<=0&&(a.allowHide=!1,a.disableToggle=!0),e.columns.length===i||s===i&&n.toString()!==o.toString()?a.visible=!1:a.visible=!0}})));const s=e.$.customize,i=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 o;if(e._closeDialog(),e.$.headerDropDown.classList.add("customize-panel"),e.$.headerDropDown.classList.remove("view-panel","colors-panel","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.$.view.classList.add("smart-hidden"),e.$.colors.classList.add("smart-hidden"),e._closeSearchPanel(),e._customizePartCreated)o=s.querySelector("smart-column-panel"),o.locale=e.locale,o.messages=e._innerElementMessages.columnPanel,o.set("dataSource",i),o.propertyChangedHandler("dataSource",void 0,i),o.rightToLeft=e.rightToLeft;else{const t=document.createDocumentFragment(),a=document.createElement("smart-column-panel");a.rightToLeft=e.rightToLeft,a.animation=e.animation,a.dataSource=i,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],i=s[0],o=s[1];a.grid.columnByDataField[i].filter=o}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":e.$.headerDropDown.classList.contains("view-panel")?t="view":e.$.headerDropDown.classList.contains("colors-panel")&&(t="colors"),t}_applyHandler(e){const t=this,a=e.target,s=e.detail,i=t.$.customize;if(t.grid&&"kanban"===t.grid.view&&t.grid._kanban&&i.contains(a))return t.grid._kanban._applyHandler(e,"customize"),void t.closePanel();i.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.$.colors.contains(a)&&t.addColors(s.value,s.decorator,s.filters),t.closePanel()}_documentUpHandler(e){const t=this;let a=e.originalEvent.target,s=t.grid?t.grid.$.header:null;if(t.grid&&t.grid.header.appendTo&&(s=document.querySelector(t.grid.header.appendTo)),!s)return;t.shadowRoot&&a===t&&(a=e.originalEvent.composedPath()[0]);const i=e.originalEvent.composedPath();for(let e=0;e<i.length;e++){const t=i[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 i=a.closest("smart-scroll-viewer"),o=a.closest(".smart-drop-down");if((!i||!s.contains(i.ownerElement))&&(!o||o.ownerElement&&!s.contains(o.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(i&&i.ownerElement){const e=i.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(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(t.$.headerDropDown.querySelector("[open]"))return;t.closePanel()}}}_refreshColumns(e){const t=this,a=t.grid;let s,i=new Map;if("kanban"===a.view&&a._kanban)switch(e){case"customize":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(;i.get(t);)t=e.columnGroup?e.columnGroup+"."+e.label+` (${a})`:e.label+` (${a})`,a++;i.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.grid.appearance.showViewBarAsDropdown||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 i=(e,a,s)=>{const i=document.createElement("smart-menu-item");let o="smart-icon-grid-alt";switch(a){case"grid":o="smart-icon-grid-alt","grid"===t.view&&s&&(i.setAttribute("focus",""),i.checked=!0),i.title=t.localize("gridView");break;case"kanban":o="smart-icon-kanban-alt","kanban"===t.view&&s&&(i.setAttribute("focus",""),i.checked=!0),i.title=t.localize("kanbanView");break;case"card":o="smart-icon-card-alt","card"===t.view&&s&&(i.setAttribute("focus",""),i.checked=!0),i.title=t.localize("cardView");break;case"scheduler":o="smart-icon-scheduler","scheduler"===t.view&&s&&(i.setAttribute("focus",""),i.checked=!0),i.title=t.localize("schedulerView");break;case"timeline":o="smart-icon-timeline","timeline"===t.view&&s&&(i.setAttribute("focus",""),i.checked=!0),i.title=t.localize("timelineView")}return i.label='<span class="smart-grid-icon '+o+'"></span>'+e,i.value=a,i};s.appendChild(i(t.localize("viewGrid"),"grid",!0)),s.appendChild(i(t.localize("viewKanban"),"kanban",!0)),s.appendChild(i(t.localize("viewCard"),"card",!0)),s.appendChild(i(t.localize("viewScheduler"),"scheduler",!0)),s.appendChild(i(t.localize("viewTimeline"),"timeline",!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(t.appearance.showViewBarAsDropdown||e.$.viewStatesButton.removeAttribute("aria-expanded"),t.stateSettings.enabled&&t.appearance.showViewBar){const a=e=>{(!t.users.length||!1!==t.currentUser&&null!==t.currentUser&&void 0!==t.currentUser)&&(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())},s=a=>{const s=document.createElement("input");if(s.value=a.valueName,t.users.length&&(!1===t.currentUser||null===t.currentUser||void 0===t.currentUser))return;const i=()=>{if(s.value){if(t.stateSettings.storage[s.value])return;const i=t.stateSettings.storage[a.valueName];t.stateSettings.current===a.valueName&&(t.stateSettings.current=s.value),delete t.stateSettings.storage[i.name],i.name=s.value,t.stateSettings.storage[i.name]=i,t.stateSettings.onStateChange&&t.stateSettings.onStateChange(t.stateSettings.storage[t.stateSettings.current],i.name,t.stateSettings.storage,t.stringify_object),delete t.stateSettings.storage[a.valueName],s.remove();const o=s.value;a.valueName=o;let n="smart-icon-grid-alt";switch(i.view){case"grid":n="smart-icon-grid-alt";break;case"kanban":n="smart-icon-kanban-alt";break;case"card":n="smart-icon-card-alt";break;case"scheduler":n="smart-icon-scheduler";break;case"timeline":n="smart-icon-timeline"}o===t.stateSettings.current?(a.selected=!0,a.label='<span class="show smart-grid-icon '+n+'"></span><span style="overflow: hidden; text-overflow: ellipsis;">'+o+'</span><span class="show smart-grid-icon smart-icon-mode-edit"></span><span class="smart-grid-icon smart-icon-delete"></span>'):a.label='<span class="show smart-grid-icon '+n+'"></span><span style="overflow: hidden; text-overflow: ellipsis;">'+o+'</span><span class="show smart-grid-icon smart-icon-mode-edit"></span><span class="show smart-grid-icon smart-icon-delete"></span>',e._refreshViewsButton()}};s.onselectstart=e=>{e.stopPropagation()},s.onpointerdown=s.onpointerup=e=>{e.stopPropagation()},s.onkeydown=e=>{e.stopPropagation()},s.onkeyup=e=>{"Escape"===e.key&&(s.onchange=s.onblur=null,s.remove()),"Enter"===e.key&&(s.onchange=s.onblur=null,i()),e.stopPropagation()},s.onchange=()=>{s.onblur=null,s.onkeyup=null,i()},s.onblur=()=>{s.remove()},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"),s.style.backgroundColor="var(--smart-background)",s.style.color="var(--smart-background-color)",a.querySelector(".smart-list-item-label-element").appendChild(s),setTimeout((()=>{s.focus()}),50)},i=(e,a,s)=>{const i=document.createElement("smart-list-item");let o="smart-icon-grid-alt";switch(a){case"grid":o="smart-icon-grid-alt";break;case"kanban":o="smart-icon-kanban-alt";break;case"card":o="smart-icon-card-alt";break;case"scheduler":o="smart-icon-scheduler";break;case"timeline":o="smart-icon-timeline"}return i.value=s,i.valueName=e,e===t.stateSettings.current?(i.selected=!0,i.label='<span class="show smart-grid-icon '+o+'"></span><span style="overflow: hidden; text-overflow: ellipsis;">'+e+'</span><span class="show smart-grid-icon smart-icon-mode-edit"></span><span class="smart-grid-icon smart-icon-delete"></span>'):i.label='<span class="show smart-grid-icon '+o+'"></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>',t.users.length&&(!1!==t.currentUser&&null!==t.currentUser&&void 0!==t.currentUser||(e===t.stateSettings.current?(i.selected=!0,i.label='<span class="show smart-grid-icon '+o+'"></span><span style="overflow: hidden; text-overflow: ellipsis;">'+e+'</span><span class="smart-visibility-hidden smart-grid-icon smart-icon-mode-edit"></span><span class="smart-visibility-hidden smart-grid-icon smart-icon-delete"></span>'):i.label='<span class="show smart-grid-icon '+o+'"></span><span style="overflow: hidden; text-overflow: ellipsis;">'+e+'</span><span class="smart-visibility-hidden smart-grid-icon smart-icon-mode-edit"></span><span class="smart-visibility-hidden smart-grid-icon smart-icon-delete"></span>')),i};t.appearance.showViewBarAsDropdown||e.$.viewStatesButton.setAttribute("aria-expanded",!0);let o=t.$.viewBar;if(t.appearance.showViewBarAsDropdown&&(o=e.$.viewPanel),t.appearance.viewBarAppendTo&&(o=document.querySelector(t.appearance.viewBarAppendTo),o&&o.classList.add("smart-grid-view-bar")),!o.querySelector(".smart-grid-view-chooser-container")){const a=document.createElement("div");a.classList.add("smart-grid-view-chooser-container","smart-container");const s=document.createElement("div");s.classList.add("new-view"),!1===t.editing.enabled&&s.classList.add("smart-hidden");const i=(a,s)=>{a.stopPropagation(),a.preventDefault(),t.beginUpdate();let i=0,n=[];if(t.stateSettings.storage){for(;t.stateSettings.storage[t.localize("view")+" "+i];)i++;for(let e in t.stateSettings.storage){const a=t.stateSettings.storage[e];n[a.view]=n[a.view]++||1}}let r="";switch(s){case"grid":r=t.localize("viewGrid");break;case"kanban":r=t.localize("viewKanban");break;case"card":r=t.localize("viewCard");break;case"scheduler":r=t.localize("viewScheduler");break;case"timeline":r=t.localize("viewTimeline")}if(n[s]||(n[s]=""),t.stateSettings.storage){const e=n[s]?t.localize("view")+" "+n[s]:t.localize("view");for(;t.stateSettings.storage[r+" "+e];)n[s]++}const l=n[s]?t.localize("view")+" "+n[s]:t.localize("view");o._input.value=r+" "+l,t.stateSettings.current||(t.stateSettings.current=o._input.value),t.saveState(),t.stateSettings.current=o._input.value,e._closeViewsMenu(),t.resetState(),t._kanban&&t._kanban._reset(),delete t.columnByDataField.taskStatus,"kanban"===s?e._setView("kanban"):"card"===s?e._setView("card"):"scheduler"===s?e._setView("scheduler"):"timeline"===s&&e._setView("timeline"),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 class="show smart-grid-icon smart-icon-grid-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 r=document.createElement("smart-button");r.innerHTML='<span style="display: flex; align-items: center;"><span class="show smart-grid-icon smart-icon-kanban-alt"></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>',r.classList.add("view"),r.title=t.localize("kanbanView");const l=document.createElement("smart-button");l.classList.add("selected"),l.classList.add("view"),l.innerHTML='<span style="display: flex; align-items: center;"><span class="show smart-grid-icon smart-icon-card-alt"></span>'+t.localize("newCard")+'</span><span style="font-size: 12px; color: rgba(var(--smart-secondary-rgb), 0.6);" class="show smart-grid-icon smart-icon-plus"></span>',l.title=t.localize("cardView");const d=document.createElement("smart-button");d.classList.add("selected"),d.classList.add("view"),d.innerHTML='<span style="display: flex; align-items: center;"><span class="show smart-grid-icon smart-icon-scheduler"></span>'+t.localize("newScheduler")+'</span><span style="font-size: 12px; color: rgba(var(--smart-secondary-rgb), 0.6);" class="show smart-grid-icon smart-icon-plus"></span>',d.title=t.localize("schedulerView");const c=document.createElement("smart-button");c.classList.add("selected"),c.classList.add("view"),c.innerHTML='<span style="display: flex; align-items: center;"><span class="show smart-grid-icon smart-icon-timeline"></span>'+t.localize("newTimeline")+'</span><span style="font-size: 12px; color: rgba(var(--smart-secondary-rgb), 0.6);" class="show smart-grid-icon smart-icon-plus"></span>',c.title=t.localize("timelineView");const u=document.createElement("div");u.classList.add("smart-grid-view-storage"),a.appendChild(u);const p=document.createElement("smart-input");p.classList.add("underlined"),p.placeholder=t.localize("viewNamePlaceholder"),p.hint=t.localize("viewNamePlaceholder"),p.onselectstart=e=>{e.stopPropagation()};const m=document.createElement("div");m.innerHTML="<span>"+t.localize("settings")+'</span><span class="smart-grid-icon show smart-icon-sort-down"></span>',m.classList.add("view-label"),s.appendChild(m);const h=document.createElement("div");s.appendChild(h),h.classList.add("footer"),t.users&&t.users.length&&(!1!==t.currentUser&&null!==t.currentUser&&void 0!==t.currentUser||(h.classList.add("smart-hidden"),m.classList.add("smart-hidden"))),h.appendChild(n),h.appendChild(r),h.appendChild(l),h.appendChild(d),h.appendChild(c),m.onclick=()=>{m.classList.toggle("collapsed"),h.classList.toggle("collapsed")};const g=document.createElement("div");g.innerHTML='<span class="smart-grid-icon show smart-icon-plus"></span><span><a href="javascript:void();">'+t.localize("createView")+"</a></span>",g.classList.add("view-button"),g.onclick=e=>{let t="grid";r.classList.contains("selected")&&(t="kanban"),l.classList.contains("selected")&&(t="card"),d.classList.contains("selected")&&(t="scheduler"),c.classList.contains("selected")&&(t="timeline"),i(e,t,s)},r.onpointerdown=()=>{r.classList.add("selected"),n.classList.remove("selected"),l.classList.remove("selected"),d.classList.remove("selected"),c.classList.remove("selected"),g.click()},n.onpointerdown=()=>{n.classList.add("selected"),r.classList.remove("selected"),l.classList.remove("selected"),d.classList.remove("selected"),c.classList.remove("selected"),g.click()},l.onpointerdown=()=>{n.classList.remove("selected"),r.classList.remove("selected"),l.classList.add("selected"),d.classList.remove("selected"),c.classList.remove("selected"),g.click()},d.onpointerdown=()=>{n.classList.remove("selected"),r.classList.remove("selected"),l.classList.remove("selected"),d.classList.add("selected"),c.classList.remove("selected"),g.click()},c.onpointerdown=()=>{n.classList.remove("selected"),r.classList.remove("selected"),l.classList.remove("selected"),d.classList.remove("selected"),c.classList.add("selected"),g.click()};const v=()=>{t.stateSettings.storage&&!t.stateSettings.storage[p.value]||p.value&&!t.stateSettings.storage?g.classList.remove("disabled"):g.classList.add("disabled")};p.update=()=>v(),p.onkeyup=p.onchange=()=>{v()},v(),a.appendChild(s),o._storage=u,o._input=p,o.appendChild(a)}let n=t.stateSettings.storage;(n&&0===Object.keys(n).length||!n)&&(o._input.value||("kanban"===t.view?o._input.value=t.localize("newKanban")+" "+t.localize("view"):o._input.value=t.localize("newGrid")+" "+t.localize("view")),t.stateSettings.current||(t.stateSettings.current=o._input.value),t.saveState(),t.stateSettings.current=o._input.value,n=t.stateSettings.storage);const r=o._storage;if(r.innerHTML="",n){let e=1;const l=document.createDocumentFragment();let d=[],c=[];for(let e in n){const t=n[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);if(e.value&&e.value.date&&t.value&&t.value.date){if(!e.value.date||!t.value.date)return-1;if(a<s)return-1;if(a>s)return 1;if(a===s)return 0}else{if(e.name<t.name)return-1;if(e.name>t.name)return 1;if(e.name===t.name)return 0}}));let u=[];for(let t in d){const a=d[t],s=a.name,o=a.value;e++,u[o.view]=u[o.view]++||1,l.appendChild(i(s,o.view,o))}if(e){const e=document.createElement("smart-list-box");e.style.width="100%",e.style.height="100%",e.allowDrag=!0,e.allowDrop=!0,e.itemHeight=32,e.mode="vertical",e.style.borderColor="transparent",e.classList.add("smart-grid-views-menu"),e.checkable=!0,e.checkboxes=!0,e.filterable=!0,e.filterInputPlaceholder=t.localize("commandBarSearch")+" "+t.localize("view"),e.selectionMode="one",e.disableAutoCheck=!0,e.rightToLeft=t.rightToLeft,e.ondragend=e=>{const t=e.detail.item,a=n[t.valueName];if(a){const t=e.detail.target;if(t){const e=n[t.valueName].date;if(e){let t=new Smart.Utilities.DateTime(e);const s="top"===Smart.ListBox.DragDrop.DropDetails.position?-10:10;t=t.addSeconds(s),a.date=t.toDate().toJSON()}}}},e.onchange=a=>{if(a.detail&&a.detail.selected){const s=a.detail.addedItems[0];t.loadState(s.valueName),e.querySelectorAll("smart-list-item").forEach((e=>{e.querySelector(".smart-icon-delete").classList.add("show")})),s.querySelector(".smart-icon-delete").classList.remove("show"),t.stateSettings.onStateChange&&t.stateSettings.onStateChange(t.stateSettings.storage[t.stateSettings.current],s.valueName,t.stateSettings.storage,t.stringify_object)}},e.onkeydown=t=>{const a=e.querySelector("smart-list-item[checked]");a&&"F2"===t.key&&s(a)},e.onDoubleClick=e=>{const t=e.target.closest("smart-list-item");s(t)},e.onClick=e=>{if(e.target&&e.target.classList.contains("smart-icon-delete")){const t=e.target.closest("smart-list-item");a(t),e.preventDefault(),e.stopPropagation()}else if(e.target&&e.target.classList.contains("smart-icon-mode-edit")){const t=e.target.closest("smart-list-item");s(t),e.preventDefault(),e.stopPropagation()}else if("INPUT"===e.target.nodeName)return},e.appendChild(l),r.appendChild(e)}if(t.stateSettings.storage)for(;t.stateSettings.storage[t.localize("view")+" "+e];)e++;let p="";switch(t.view){case"grid":p=t.localize("viewGrid");break;case"kanban":p=t.localize("viewKanban");break;case"card":p=t.localize("viewCard");break;case"scheduler":p=t.localize("viewScheduler");break;case"timeline":p=t.localize("viewTimeline")}if(t.stateSettings.storage)for(;t.stateSettings.storage[p+" "+t.localize("view")+" "+u[t.view]];)u[t.view]++;o._input.value=p+" "+t.localize("view")+" "+u[t.view],o._input.update()}}}_setView(e,t){const a=this,s=a.grid;if(s.view===e&&!0!==t)return;s.view;const i=s.context;if("kanban"===e)if(s.context=s,s.view="kanban",s.context=i,s._hideSchedulerView(),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.context=s,s.view="grid",s.context=i,s._hideKanbanView(),s._hideSchedulerView(),a._refresh(),s.layout.isDirty=!0,s._resetCachedLayout(),s._refreshLayout(),s.refresh()):"card"===e?(s.context=s,s.view="card",s.context=i,s._hideKanbanView(),s._hideSchedulerView(),a._refresh(),s.layout.isDirty=!0,s._resetCachedLayout(),s._refreshLayout(),s.refresh()):"scheduler"!==e&&"timeline"!==e||(s.context=s,s.view=e,s.context=i,s._hideKanbanView(),s._createScheduler(),a._refresh(),s.layout.isDirty=!0,s._resetCachedLayout(),s._refreshLayout(),s.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 i=(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 i='<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>'+i+e,a.value=t,a};s.appendChild(i(t.localize("download")+" CSV","csv")),s.appendChild(i(t.localize("download")+" XLSX","xlsx")),s.appendChild(i(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("view-panel","group-panel","colors-panel","customize-panel","filter-panel","sort-panel","search-panel","format-panel"),e.$.group.classList.add("smart-hidden"),e.$.filter.classList.add("smart-hidden"),e.$.colors.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.$.view.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("view-panel","group-panel","colors-panel","customize-panel","filter-panel","sort-panel","search-panel","format-panel"),e.$.group.classList.add("smart-hidden"),e.$.filter.classList.add("smart-hidden"),e.$.colors.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.$.view.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("colors")>=0?e.$.colorsButton.classList.remove("smart-hidden"):e.$.colorsButton.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("states")>=0&&t.stateSettings.enabled&&!t.appearance.viewBarAppendTo?e.$.viewStatesButton.classList.remove("smart-hidden"):e.$.viewStatesButton.classList.add("smart-hidden"),t.users&&t.users.length&&(!1===t.currentUser||null===t.currentUser||void 0===t.currentUser)){const a=!!t.stateSettings.storage&&Object.keys(t.stateSettings.storage).length<=1;t.stateSettings.enabled&&!a&&e.$.viewStatesButton.classList.add("smart-hidden")}if(e.$.downloadButton.onpointerup=a=>{t.closeMenu(),e._openDownloadMenu(),a.stopPropagation()},e.$.viewsButton.onpointerup=a=>{t.closeMenu(),e._openViewsMenu(),a.stopPropagation()},!1===t.appearance.showViewBarAsDropdown&&(e.$.viewStatesButton.onpointerup=a=>{t.closeMenu(),e._closeDownloadMenu(),e._closeViewsMenu(),t.appearance.showViewBar=!t.appearance.showViewBar,a.stopPropagation(),e._updateViews()}),t._sortedColumns){const a=[],s=[],i=[];for(let e=0;e<t._sortedColumns.length;e++){const o=t._sortedColumns[e];a.push(o.dataField),s.push(o.sortOrder),i.push(o.dataType)}e._appliedSorting={dataFields:a,dataTypes:i,orderBy:s},e._refreshSortButton()}if("grid"===t.view||"card"===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 i=t.filters[s];a.filters.push([e,i.condition,i.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._refreshColorsButton(),e.refreshTools(),Smart.Utilities.Core.isMobile&&(e.$.searchButton.classList.add("smart-hidden"),e.$.formatButton.classList.add("smart-hidden"),e.$.colorsButton.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;if(!e.grid)return;let t=e.grid.localize("viewGrid");switch(e.$.viewsButton.classList.remove("kanban"),e.$.viewsButton.classList.remove("card"),e.$.viewsButton.classList.remove("scheduler"),e.$.viewsButton.classList.remove("timeline"),e.grid.view){case"kanban":t=e.grid.localize("viewKanban"),e.$.viewsButton.classList.add("kanban");break;case"grid":t=e.grid.localize("viewGrid");break;case"card":e.$.viewsButton.classList.add("card"),t=e.grid.localize("viewCard");break;case"scheduler":e.$.viewsButton.classList.add("scheduler"),t=e.grid.localize("viewScheduler");break;case"timeline":e.$.viewsButton.classList.add("timeline"),t=e.grid.localize("viewTimeline")}e.$.viewsButton.innerHTML='<div class="smart-tool-label" role="presentation">'+t+"</div>";let a=this.grid.stateSettings.current||"";if(a.length>30)a=a.substring(0,30)+"...";else if(!a){let e=[],t=this.grid.view,s="";switch(t){case"grid":s=this.grid.localize("viewGrid");break;case"kanban":s=this.grid.localize("viewKanban");break;case"card":s=this.grid.localize("viewCard");break;case"scheduler":s=this.grid.localize("viewScheduler");break;case"timeline":s=this.grid.localize("viewTimeline")}if(this.grid&&this.grid.stateSettings.storage)for(;this.grid.stateSettings.storage[s+" "+this.grid.localize("view")+" "+e[t]];)e[t]++;void 0===e[t]&&(e[t]=""),a=s+" "+this.grid.localize("view")+" "+e[t]}const s=""!==a?a:this.grid.localize("views");e.$.viewStatesButton.innerHTML='<div class="smart-tool-label" role="presentation">'+s+"</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,i=t.context;t.context=t,t.editing.dialog.enabled=!0,t.editing.mode="row",t._settingsDialogRowId=e;let o=t._isUpdating;"grid"!==t.view&&"card"!==t.view&&(t._isUpdating=0),t.beginEdit(e),t._isUpdating=o,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=i,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.$.headerBar.$.deleteButton,s=a.closest("smart-grid");(!s||s._currentUser&&(!s._currentUser||s._currentUser.info&&"guest"!==s._currentUser.info))&&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.$.headerBar._refreshDeleteButton()}openGroupPanel(e){const t=this;let a;const s=t.grid;if("kanban"===s.view||"scheduler"===s.view||"timeline"===s.view)return;t.$.headerDropDown.classList.add("group-panel"),t.$.headerDropDown.classList.remove("view-panel","colors-panel","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.$.colors.classList.add("smart-hidden"),t.$.search.classList.add("smart-hidden"),t.$.format.classList.add("smart-hidden"),t.$.view.classList.add("smart-hidden"),t._closeDownloadMenu(),t._closeViewsMenu(),t._refreshColumns("group"),s.closeMenu();const i=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)&&(i.find((t=>t.dataField===e.dataField)).groupIndex=t._appliedGrouping.dataFields.length),t._groupPartCreated?(a=t.$.group.firstElementChild,a.rightToLeft=t.rightToLeft,a.dataSource=i,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=i,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,i=t._appliedGrouping.dataFields;t._appliedGrouping.dataFields=a.dataFields;const o=s.onRowInserted;if(s.onRowInserted=null,s.beginUpdate(),s.grouping.autoHideGroupColumn&&i)for(let e=0;e<i.length;e++){const t=s.columnByDataField[i[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 n=[];for(let e=0;e<s.dataSource.groupBy.length;e++)n.push(s.dataSource.groupBy[e]);s.$.fireEvent("group",{groups:n}),s.paging.enabled&&s._refreshPagesCount(),s.onRowInserted=o}))),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(!e.grid||"scheduler"!==e.grid.view&&"timeline"!==e.grid.view){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")}else{e.$.groupButton.onclick=()=>{"scheduler"!==e.grid.view&&"timeline"!==e.grid.view||e.grid._createScheduler()};const t=e.grid.columnByDataField[e.grid._dateStackedBy];t?(e.$.groupButton.firstElementChild.innerHTML=e.localize("groupedBy",{column:t.label}),e.$.groupButton.classList.add("grouped")):e.$.groupButton.classList.remove("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("view-panel","colors-panel","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.$.colors.classList.add("smart-hidden"),e.$.format.classList.add("smart-hidden"),e.$.view.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 i=new Smart.DataAdapter({id:"id",observable:!1,dataSource:a,dataFields:t.dataSource.dataFields});e._searchInfo={source:i,stringDataFields:e.dataSource.dataFields.filter((e=>"string"===e.dataType)).map((e=>e.name))},""!==e.$.searchInput.value&&e._search(e.$.searchInput.value,!1)}addColors(e,t,a){const s=this,i=s.grid;let o=[e,t],n=[];if(s.closePanel(),JSON.stringify(o)===JSON.stringify(s._appliedColors))return;s._appliedColors=o;const r=[],l=s.grid.getRows();for(let e=0;e<l.length;e++)r.push(Object.assign(l[e].data));if("conditions"===t.type){const t=new Smart.DataAdapter({id:"id",observable:!1,dataSource:r,dataFields:s.grid.dataSource.dataFields});t._filter(a,"or");const o=[];for(let e=0;e<t.length;e++){const a=t[e];!1!==a.$.filtered&&o.push(a)}const l=e,d=[];for(let e=0;e<l.length;e++){const t=l[e],a=t[0],s=t[1],o=t[3]?t[2]:void 0,n=t[3]?t[3]:t[2],r=i.columnByDataField[a].dataType,c=new Smart.Utilities.FilterGroup,u=c.createFilter(r,o,s);c.addFilter("or",u),d.push({dataField:a,color:n,filterGroup:c})}for(let e=0;e<o.length;e++){const t=o[e];for(let e=0;e<d.length;e++){const a=d[e].dataField,s=d[e].filterGroup,i=d[e].color,o=t[a];s.evaluate(o)&&(void 0===n[t.$.id]&&(n[t.$.id]={}),n[t.$.id].color=i,n[t.$.id][a]=i)}}}else{const e=t.singleSelect,a=i.columnByDataField[e],s="collaborator"===a.template?i.users:a.editor.dataSource,o={};s.forEach((e=>"collaborator"===a.template?(void 0===e.id||(o[e.id]=e.color),!0):!e.value||void(o[e.value]=e.color)));for(let t=0;t<l.length;t++){const a=l[t].data,s=a[e],i=o[s];i&&(n[a.$.id]={color:i})}}i._conditionalColors={colors:n,type:t.type,conditions:e,update:e=>{s._updateConditionalColors(e,i,t)},singleSelect:t.singleSelect,decorate:t.decorate},i._recycle(!1),s._refreshColorsButton(),i.autoSaveState(),s.$.fireEvent("colors")}_updateConditionalColors(e,t,a){let s=[];const i=t.getRows();if("conditions"===a.type){const a=t._conditionalColors.conditions,o=[];for(let e=0;e<a.length;e++){const s=a[e],i=s[0],n=s[1],r=s[3]?s[2]:void 0,l=s[3]?s[3]:s[2],d=t.columnByDataField[i].dataType,c=new Smart.Utilities.FilterGroup,u=c.createFilter(d,r,n);c.addFilter("or",u),o.push({dataField:i,color:l,filterGroup:c})}const n=e=>{for(let t=0;t<o.length;t++){const a=o[t].dataField,i=o[t].filterGroup,n=o[t].color,r=e[a];i.evaluate(r)?(void 0===s[e.$.id]&&(s[e.$.id]={}),s[e.$.id].color=n,s[e.$.id][a]=n):delete s[e.$.id]}};if(e)s=t._conditionalColors.colors,n(e.data);else for(let e=0;e<i.length;e++)n(i[e].data)}else{const o=a.singleSelect,n=t.columnByDataField[o],r="collaborator"===n.template?t.users:n.editor.dataSource,l={};if(r.forEach((e=>"collaborator"===n.template?(void 0===e.id||(l[e.id]=e.color),!0):!e.value||void(l[e.value]=e.color))),e){s=t._conditionalColors.colors;const a=e.data,i=a[o],n=l[i];n?s[a.$.id]={color:n}:delete s[a.$.id]}else for(let e=0;e<i.length;e++){const t=i[e].data,a=t[o],n=l[a];n&&(s[t.$.id]={color:n})}}t._conditionalColors.colors=s,t.autoSaveState(),t.summaryRow.visible||t._recycle(!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,i=[],o=[],n={};a._searchInfo.stringDataFields.forEach((t=>{const a=new Smart.Utilities.FilterGroup,s=a.createFilter("string",e,"CONTAINS");a.addFilter("or",s),i.push([t,a])})),s._filter(i,"or");for(let e=0;e<s.length;e++){const t=s[e];!1!==t.$.filtered&&(o.push(t.$.id),n[t.$.id]=!0)}if(a._searchInfo.foundIdsArray=o,a._searchInfo.foundIdsObject=n,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,i=s.createFilter("string",e,"CONTAINS"),o=a.grid.columnByDataField[t];if(o&&o.editor&&o.editor.dataSource)return!1;o&&(s.addFilter("or",i),a.grid.addFilter(t,s),o._filterInfo&&(o._filterInfo.value=o.filter.filters[0].value,o._filterInfo.condition=o.filter.filters[0].condition))})),a.grid.endUpdate(),a.grid.refreshFilters(),void(a.grid.filtering.operator=t)}if(o.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:o.length}),a._searchInfo.highlighted=o[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})}isGrid(){const e=this.grid;return!(e&&("kanban"===e.view&&e._kanban||"scheduler"===e.view&&e._scheduler||"timeline"===e.view&&e._scheduler))}_refreshColorsButton(){const e=this,t=e.grid;if(!e.isGrid())return t._kanban&&(e.$.colorsButton.innerHTML='<div class="smart-tool-label" role="presentation">'+t._kanban.localize("formating")+"</div>",e.$.colorsButton.classList.remove("hidden")),void e.$.colorsButton.classList.add("smart-hidden");e.$.colorsButton.innerHTML='<div class="smart-tool-label" role="presentation">'+t.localize("formating")+"</div>",e.$.colorsButton.classList.remove("hidden"),e._refreshMobileViewTools()}_refreshCustomizeButton(){const e=this,t=e.grid;let a=0;if(!e.isGrid())return t._kanban&&(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 i=0,o=[],n=[],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&&(o.push(a),n.push(l.visible),r.push(a.visible)),l.visible=a.visible,a.visible||i++)}s.onColumnChange=l,s.onColumnChange?s.onColumnChange(o,"visible",n,r):s.$.fireEvent("columnChange",{column:o,propertyName:"visible",oldValue:n,value:r}),i>0?(a.$.customizeButton.innerHTML='<div class="smart-tool-label" role="presentation">'+s.localize("customizeHidden",{n:i})+"</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],i=a.oldIndex,o=a.newIndex,n=s.columns[o+1],r=s.columns[o-1],l=s.columns[i];n?l.columnGroup=n.columnGroup:r&&(l.columnGroup=r.columnGroup),s.reorderColumns(i,o,!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()}});
1540
+ 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="colorsButton" class="smart-data-view-header-button smart-data-view-colors-button smart-unselectable" role="button" aria-expanded="false" aria-haspopup="dialog" aria-label="Colors"><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="view" class="smart-hidden" role="presentation"></div>\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="colors" 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.$.colorsButton.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","colors-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.$.colors.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;if(t.grid.header.appendTo){const e=document.querySelector(t.grid.header.appendTo);t.$.headerDropDown.style.top=t.grid.offset(e).top+e.offsetHeight-s+"px"}else t.$.headerDropDown.style.top=t.grid.offset(t.grid).top+t.grid.$.header.offsetHeight-s+"px";const i=()=>{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;if(t.grid.header.appendTo){const a=document.querySelector(t.grid.header.appendTo);e=t.grid.offset(a).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="",i())}openFilterPanel(e){const t=this,a=t.dataSource;t._refreshColumns("filter"),t.$.view.classList.add("smart-hidden");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)}}openColorsPanel(){const e=this,t=e.dataSource;e._refreshColumns("colors"),e.$.view.classList.add("smart-hidden");const a=this.columns.map((e=>{const a=Object.assign({},e),s=t.dataFields.find((e=>e.name===a.dataField));return s&&(a.dataType=s.dataType),a}));super.openColorsPanel(a,null,e.grid),e._closeDownloadMenu(),e._closeViewsMenu(),e.grid.closeMenu()}openViewPanel(){const e=this;if(e.disabled||"none"===e.headerPosition)return;if(!1===e.grid.appearance.showViewBarAsDropdown)return;let t;e.$.headerDropDown.classList.add("view-panel"),e.$.headerDropDown.classList.remove("customize-panel","filter-panel","sort-panel","search-panel","group-panel","format-panel","colors-panel"),e.$.view.classList.remove("smart-hidden"),e.$.colors.classList.add("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.$.customize.classList.add("smart-hidden"),e.$.format&&e.$.format.classList.add("smart-hidden"),e.$.group&&e.$.group.classList.add("smart-hidden"),e.$.search.classList.add("smart-hidden"),e._closeSearchPanel(),e._viewPartCreated?t=e.$.view.firstElementChild:(t=document.createElement("div"),t.classList.add("smart-view-panel","smart-grid-view-bar"),e.$.view.appendChild(t),e.$.viewPanel=t,e._viewPartCreated=!0,e._updateViews()),e._openHeaderDropDown(e.$.viewStatesButton)}openSortPanel(e){const t=this,a=t.dataSource;t._refreshColumns("sort"),t.$.view.classList.add("smart-hidden");const s=t.columns.map((e=>{const s=Object.assign({},e),i=t._appliedSorting.dataFields.indexOf(s.dataField),o=a.dataFields.find((e=>e.name===s.dataField));return o&&(s.dataType=o.dataType,s.sortIndex=i,-1!==i&&(s.sortDirection=t._appliedSorting.orderBy[i])),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 i=t.grid;i.closeMenu();const o=t.$.headerDropDown.querySelector("smart-sort-panel");if(!o)return;o.grid=i,o.$.maintainSortContainer.classList.remove("smart-hidden"),i.sorting.maintainSort?o.$.maintainSortContainer.firstElementChild.setAttribute("active",""):o.$.maintainSortContainer.firstElementChild.removeAttribute("active"),o._changeApplyButtonText();const n=o.$.inputNotSorted,r=()=>{const e=o.querySelectorAll(".smart-grid-panel-item");"many"===t.grid.sorting.mode||e.length<1?n.classList.remove("smart-visibility-hidden"):e.length>=1&&n.classList.add("smart-visibility-hidden")};o.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,i=0,o=[],n=[];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--,n.push(r.dataField)),r.visible||(i++,o.push(r.dataField)),t.push(r)})),s<=0&&(a.allowHide=!1,a.disableToggle=!0),e.columns.length===i||s===i&&n.toString()!==o.toString()?a.visible=!1:a.visible=!0}})));const s=e.$.customize,i=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 o;if(e._closeDialog(),e.$.headerDropDown.classList.add("customize-panel"),e.$.headerDropDown.classList.remove("view-panel","colors-panel","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.$.view.classList.add("smart-hidden"),e.$.colors.classList.add("smart-hidden"),e._closeSearchPanel(),e._customizePartCreated)o=s.querySelector("smart-column-panel"),o.locale=e.locale,o.messages=e._innerElementMessages.columnPanel,o.set("dataSource",i),o.propertyChangedHandler("dataSource",void 0,i),o.rightToLeft=e.rightToLeft;else{const t=document.createDocumentFragment(),a=document.createElement("smart-column-panel");a.rightToLeft=e.rightToLeft,a.animation=e.animation,a.dataSource=i,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],i=s[0],o=s[1];a.grid.columnByDataField[i].filter=o}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":e.$.headerDropDown.classList.contains("view-panel")?t="view":e.$.headerDropDown.classList.contains("colors-panel")&&(t="colors"),t}_applyHandler(e){const t=this,a=e.target,s=e.detail,i=t.$.customize;if(t.grid&&"kanban"===t.grid.view&&t.grid._kanban&&i.contains(a))return t.grid._kanban._applyHandler(e,"customize"),void t.closePanel();i.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.$.colors.contains(a)&&t.addColors(s.value,s.decorator,s.filters),t.closePanel()}_documentUpHandler(e){const t=this;let a=e.originalEvent.target,s=t.grid?t.grid.$.header:null;if(t.grid&&t.grid.header.appendTo&&(s=document.querySelector(t.grid.header.appendTo)),!s)return;t.shadowRoot&&a===t&&(a=e.originalEvent.composedPath()[0]);const i=e.originalEvent.composedPath();for(let e=0;e<i.length;e++){const t=i[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 i=a.closest("smart-scroll-viewer"),o=a.closest(".smart-drop-down");if((!i||!s.contains(i.ownerElement))&&(!o||o.ownerElement&&!s.contains(o.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(i&&i.ownerElement){const e=i.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(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(t.$.headerDropDown.querySelector("[open]"))return;t.closePanel()}}}_refreshColumns(e){const t=this,a=t.grid;let s,i=new Map;if("kanban"===a.view&&a._kanban)switch(e){case"customize":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(;i.get(t);)t=e.columnGroup?e.columnGroup+"."+e.label+` (${a})`:e.label+` (${a})`,a++;i.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.grid.appearance.showViewBarAsDropdown||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 i=(e,a,s)=>{const i=document.createElement("smart-menu-item");let o="smart-icon-grid-alt";switch(a){case"grid":o="smart-icon-grid-alt","grid"===t.view&&s&&(i.setAttribute("focus",""),i.checked=!0),i.title=t.localize("gridView");break;case"kanban":o="smart-icon-kanban-alt","kanban"===t.view&&s&&(i.setAttribute("focus",""),i.checked=!0),i.title=t.localize("kanbanView");break;case"card":o="smart-icon-card-alt","card"===t.view&&s&&(i.setAttribute("focus",""),i.checked=!0),i.title=t.localize("cardView");break;case"scheduler":o="smart-icon-scheduler","scheduler"===t.view&&s&&(i.setAttribute("focus",""),i.checked=!0),i.title=t.localize("schedulerView");break;case"timeline":o="smart-icon-timeline","timeline"===t.view&&s&&(i.setAttribute("focus",""),i.checked=!0),i.title=t.localize("timelineView")}return i.label='<span class="smart-grid-icon '+o+'"></span>'+e,i.value=a,i};s.appendChild(i(t.localize("viewGrid"),"grid",!0)),s.appendChild(i(t.localize("viewKanban"),"kanban",!0)),s.appendChild(i(t.localize("viewCard"),"card",!0)),s.appendChild(i(t.localize("viewScheduler"),"scheduler",!0)),s.appendChild(i(t.localize("viewTimeline"),"timeline",!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(t.appearance.showViewBarAsDropdown||e.$.viewStatesButton.removeAttribute("aria-expanded"),t.stateSettings.enabled&&t.appearance.showViewBar){const a=e=>{(!t.users.length||!1!==t.currentUser&&null!==t.currentUser&&void 0!==t.currentUser)&&(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())},s=a=>{const s=document.createElement("input");if(s.value=a.valueName,t.users.length&&(!1===t.currentUser||null===t.currentUser||void 0===t.currentUser))return;const i=()=>{if(s.value){if(t.stateSettings.storage[s.value])return;const i=t.stateSettings.storage[a.valueName];t.stateSettings.current===a.valueName&&(t.stateSettings.current=s.value),delete t.stateSettings.storage[i.name],i.name=s.value,t.stateSettings.storage[i.name]=i,t.stateSettings.onStateChange&&t.stateSettings.onStateChange(t.stateSettings.storage[t.stateSettings.current],i.name,t.stateSettings.storage,t.stringify_object),delete t.stateSettings.storage[a.valueName],s.remove();const o=s.value;a.valueName=o;let n="smart-icon-grid-alt";switch(i.view){case"grid":n="smart-icon-grid-alt";break;case"kanban":n="smart-icon-kanban-alt";break;case"card":n="smart-icon-card-alt";break;case"scheduler":n="smart-icon-scheduler";break;case"timeline":n="smart-icon-timeline"}o===t.stateSettings.current?(a.selected=!0,a.label='<span class="show smart-grid-icon '+n+'"></span><span style="overflow: hidden; text-overflow: ellipsis;">'+o+'</span><span class="show smart-grid-icon smart-icon-mode-edit"></span><span class="smart-grid-icon smart-icon-delete"></span>'):a.label='<span class="show smart-grid-icon '+n+'"></span><span style="overflow: hidden; text-overflow: ellipsis;">'+o+'</span><span class="show smart-grid-icon smart-icon-mode-edit"></span><span class="show smart-grid-icon smart-icon-delete"></span>',e._refreshViewsButton()}};s.onselectstart=e=>{e.stopPropagation()},s.onpointerdown=s.onpointerup=e=>{e.stopPropagation()},s.onkeydown=e=>{e.stopPropagation()},s.onkeyup=e=>{"Escape"===e.key&&(s.onchange=s.onblur=null,s.remove()),"Enter"===e.key&&(s.onchange=s.onblur=null,i()),e.stopPropagation()},s.onchange=()=>{s.onblur=null,s.onkeyup=null,i()},s.onblur=()=>{s.remove()},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"),s.style.backgroundColor="var(--smart-background)",s.style.color="var(--smart-background-color)",a.querySelector(".smart-list-item-label-element").appendChild(s),setTimeout((()=>{s.focus()}),50)},i=(e,a,s)=>{const i=document.createElement("smart-list-item");let o="smart-icon-grid-alt";switch(a){case"grid":o="smart-icon-grid-alt";break;case"kanban":o="smart-icon-kanban-alt";break;case"card":o="smart-icon-card-alt";break;case"scheduler":o="smart-icon-scheduler";break;case"timeline":o="smart-icon-timeline"}return i.value=s,i.valueName=e,e===t.stateSettings.current?(i.selected=!0,i.label='<span class="show smart-grid-icon '+o+'"></span><span style="overflow: hidden; text-overflow: ellipsis;">'+e+'</span><span class="show smart-grid-icon smart-icon-mode-edit"></span><span class="smart-grid-icon smart-icon-delete"></span>'):i.label='<span class="show smart-grid-icon '+o+'"></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>',t.users.length&&(!1!==t.currentUser&&null!==t.currentUser&&void 0!==t.currentUser||(e===t.stateSettings.current?(i.selected=!0,i.label='<span class="show smart-grid-icon '+o+'"></span><span style="overflow: hidden; text-overflow: ellipsis;">'+e+'</span><span class="smart-visibility-hidden smart-grid-icon smart-icon-mode-edit"></span><span class="smart-visibility-hidden smart-grid-icon smart-icon-delete"></span>'):i.label='<span class="show smart-grid-icon '+o+'"></span><span style="overflow: hidden; text-overflow: ellipsis;">'+e+'</span><span class="smart-visibility-hidden smart-grid-icon smart-icon-mode-edit"></span><span class="smart-visibility-hidden smart-grid-icon smart-icon-delete"></span>')),i};t.appearance.showViewBarAsDropdown||e.$.viewStatesButton.setAttribute("aria-expanded",!0);let o=t.$.viewBar;if(t.appearance.showViewBarAsDropdown&&(o=e.$.viewPanel),t.appearance.viewBarAppendTo&&(o=document.querySelector(t.appearance.viewBarAppendTo),o&&o.classList.add("smart-grid-view-bar")),!o.querySelector(".smart-grid-view-chooser-container")){const a=document.createElement("div");a.classList.add("smart-grid-view-chooser-container","smart-container");const s=document.createElement("div");s.classList.add("new-view"),!1===t.editing.enabled&&s.classList.add("smart-hidden");const i=(a,s)=>{a.stopPropagation(),a.preventDefault(),t.beginUpdate();let i=0,n=[];if(t.stateSettings.storage){for(;t.stateSettings.storage[t.localize("view")+" "+i];)i++;for(let e in t.stateSettings.storage){const a=t.stateSettings.storage[e];n[a.view]=n[a.view]++||1}}let r="";switch(s){case"grid":r=t.localize("viewGrid");break;case"kanban":r=t.localize("viewKanban");break;case"card":r=t.localize("viewCard");break;case"scheduler":r=t.localize("viewScheduler");break;case"timeline":r=t.localize("viewTimeline")}if(n[s]||(n[s]=""),t.stateSettings.storage){let e=n[s]?t.localize("view")+" "+n[s]:t.localize("view");for(;t.stateSettings.storage[r+" "+e];)e=t.localize("view")+" "+n[s],n[s]++}const l=n[s]?t.localize("view")+" "+n[s]:t.localize("view");o._input.value=r+" "+l,t.stateSettings.current||(t.stateSettings.current=o._input.value),t.saveState(),t.stateSettings.current=o._input.value,e._closeViewsMenu(),t.resetState(),t._kanban&&t._kanban._reset(),delete t.columnByDataField.taskStatus,"kanban"===s?e._setView("kanban"):"card"===s?e._setView("card"):"scheduler"===s?e._setView("scheduler"):"timeline"===s&&e._setView("timeline"),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 class="show smart-grid-icon smart-icon-grid-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 r=document.createElement("smart-button");r.innerHTML='<span style="display: flex; align-items: center;"><span class="show smart-grid-icon smart-icon-kanban-alt"></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>',r.classList.add("view"),r.title=t.localize("kanbanView");const l=document.createElement("smart-button");l.classList.add("selected"),l.classList.add("view"),l.innerHTML='<span style="display: flex; align-items: center;"><span class="show smart-grid-icon smart-icon-card-alt"></span>'+t.localize("newCard")+'</span><span style="font-size: 12px; color: rgba(var(--smart-secondary-rgb), 0.6);" class="show smart-grid-icon smart-icon-plus"></span>',l.title=t.localize("cardView");const d=document.createElement("smart-button");d.classList.add("selected"),d.classList.add("view"),d.innerHTML='<span style="display: flex; align-items: center;"><span class="show smart-grid-icon smart-icon-scheduler"></span>'+t.localize("newScheduler")+'</span><span style="font-size: 12px; color: rgba(var(--smart-secondary-rgb), 0.6);" class="show smart-grid-icon smart-icon-plus"></span>',d.title=t.localize("schedulerView");const c=document.createElement("smart-button");c.classList.add("selected"),c.classList.add("view"),c.innerHTML='<span style="display: flex; align-items: center;"><span class="show smart-grid-icon smart-icon-timeline"></span>'+t.localize("newTimeline")+'</span><span style="font-size: 12px; color: rgba(var(--smart-secondary-rgb), 0.6);" class="show smart-grid-icon smart-icon-plus"></span>',c.title=t.localize("timelineView");const u=document.createElement("div");u.classList.add("smart-grid-view-storage"),a.appendChild(u);const p=document.createElement("smart-input");p.classList.add("underlined"),p.placeholder=t.localize("viewNamePlaceholder"),p.hint=t.localize("viewNamePlaceholder"),p.onselectstart=e=>{e.stopPropagation()};const m=document.createElement("div");m.innerHTML="<span>"+t.localize("settings")+'</span><span class="smart-grid-icon show smart-icon-sort-down"></span>',m.classList.add("view-label"),s.appendChild(m);const h=document.createElement("div");s.appendChild(h),h.classList.add("footer"),t.users&&t.users.length&&(!1!==t.currentUser&&null!==t.currentUser&&void 0!==t.currentUser||(h.classList.add("smart-hidden"),m.classList.add("smart-hidden"))),h.appendChild(n),h.appendChild(r),h.appendChild(l),h.appendChild(d),h.appendChild(c),m.onclick=()=>{m.classList.toggle("collapsed"),h.classList.toggle("collapsed")};const g=document.createElement("div");g.innerHTML='<span class="smart-grid-icon show smart-icon-plus"></span><span><a href="javascript:void();">'+t.localize("createView")+"</a></span>",g.classList.add("view-button"),g.onclick=e=>{let t="grid";r.classList.contains("selected")&&(t="kanban"),l.classList.contains("selected")&&(t="card"),d.classList.contains("selected")&&(t="scheduler"),c.classList.contains("selected")&&(t="timeline"),i(e,t,s)},r.onpointerdown=()=>{r.classList.add("selected"),n.classList.remove("selected"),l.classList.remove("selected"),d.classList.remove("selected"),c.classList.remove("selected"),g.click()},n.onpointerdown=()=>{n.classList.add("selected"),r.classList.remove("selected"),l.classList.remove("selected"),d.classList.remove("selected"),c.classList.remove("selected"),g.click()},l.onpointerdown=()=>{n.classList.remove("selected"),r.classList.remove("selected"),l.classList.add("selected"),d.classList.remove("selected"),c.classList.remove("selected"),g.click()},d.onpointerdown=()=>{n.classList.remove("selected"),r.classList.remove("selected"),l.classList.remove("selected"),d.classList.add("selected"),c.classList.remove("selected"),g.click()},c.onpointerdown=()=>{n.classList.remove("selected"),r.classList.remove("selected"),l.classList.remove("selected"),d.classList.remove("selected"),c.classList.add("selected"),g.click()};const v=()=>{t.stateSettings.storage&&!t.stateSettings.storage[p.value]||p.value&&!t.stateSettings.storage?g.classList.remove("disabled"):g.classList.add("disabled")};p.update=()=>v(),p.onkeyup=p.onchange=()=>{v()},v(),a.appendChild(s),o._storage=u,o._input=p,o.appendChild(a)}let n=t.stateSettings.storage;(n&&0===Object.keys(n).length||!n)&&(o._input.value||("kanban"===t.view?o._input.value=t.localize("newKanban")+" "+t.localize("view"):o._input.value=t.localize("newGrid")+" "+t.localize("view")),t.stateSettings.current||(t.stateSettings.current=o._input.value),t.saveState(),t.stateSettings.current=o._input.value,n=t.stateSettings.storage);const r=o._storage;if(r.innerHTML="",n){let e=1;const l=document.createDocumentFragment();let d=[],c=[];for(let e in n){const t=n[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);if(e.value&&e.value.date&&t.value&&t.value.date){if(!e.value.date||!t.value.date)return-1;if(a<s)return-1;if(a>s)return 1;if(a===s)return 0}else{if(e.name<t.name)return-1;if(e.name>t.name)return 1;if(e.name===t.name)return 0}}));let u=[];for(let t in d){const a=d[t],s=a.name,o=a.value;e++,u[o.view]=u[o.view]++||1,l.appendChild(i(s,o.view,o))}if(e){const e=document.createElement("smart-list-box");e.style.width="100%",e.style.height="100%",e.allowDrag=!0,e.allowDrop=!0,e.itemHeight=32,e.mode="vertical",e.style.borderColor="transparent",e.classList.add("smart-grid-views-menu"),e.checkable=!0,e.checkboxes=!0,e.filterable=!0,e.filterInputPlaceholder=t.localize("commandBarSearch")+" "+t.localize("view"),e.selectionMode="one",e.disableAutoCheck=!0,e.rightToLeft=t.rightToLeft,e.ondragend=e=>{const t=e.detail.item,a=n[t.valueName];if(a){const t=e.detail.target;if(t){const e=n[t.valueName].date;if(e){let t=new Smart.Utilities.DateTime(e);const s="top"===Smart.ListBox.DragDrop.DropDetails.position?-10:10;t=t.addSeconds(s),a.date=t.toDate().toJSON()}}}},e.onchange=a=>{if(a.detail&&a.detail.selected){const s=a.detail.addedItems[0];t.loadState(s.valueName),e.querySelectorAll("smart-list-item").forEach((e=>{e.querySelector(".smart-icon-delete").classList.add("show")})),s.querySelector(".smart-icon-delete").classList.remove("show"),t.stateSettings.onStateChange&&t.stateSettings.onStateChange(t.stateSettings.storage[t.stateSettings.current],s.valueName,t.stateSettings.storage,t.stringify_object)}},e.onkeydown=t=>{const a=e.querySelector("smart-list-item[checked]");a&&"F2"===t.key&&s(a)},e.onDoubleClick=e=>{const t=e.target.closest("smart-list-item");s(t)},e.onClick=e=>{if(e.target&&e.target.classList.contains("smart-icon-delete")){const t=e.target.closest("smart-list-item");a(t),e.preventDefault(),e.stopPropagation()}else if(e.target&&e.target.classList.contains("smart-icon-mode-edit")){const t=e.target.closest("smart-list-item");s(t),e.preventDefault(),e.stopPropagation()}else if("INPUT"===e.target.nodeName)return},e.appendChild(l),r.appendChild(e)}if(t.stateSettings.storage)for(;t.stateSettings.storage[t.localize("view")+" "+e];)e++;let p="";switch(t.view){case"grid":p=t.localize("viewGrid");break;case"kanban":p=t.localize("viewKanban");break;case"card":p=t.localize("viewCard");break;case"scheduler":p=t.localize("viewScheduler");break;case"timeline":p=t.localize("viewTimeline")}if(t.stateSettings.storage)for(;t.stateSettings.storage[p+" "+t.localize("view")+" "+u[t.view]];)u[t.view]++;o._input.value=p+" "+t.localize("view")+" "+u[t.view],o._input.update()}}}_setView(e,t){const a=this,s=a.grid;if(s.view===e&&!0!==t)return;s.view;const i=s.context;if("kanban"===e)if(s.context=s,s.view="kanban",s.context=i,s._hideSchedulerView(),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.context=s,s.view="grid",s.context=i,s._hideKanbanView(),s._hideSchedulerView(),a._refresh(),s.layout.isDirty=!0,s._resetCachedLayout(),s._refreshLayout(),s.refresh()):"card"===e?(s.context=s,s.view="card",s.context=i,s._hideKanbanView(),s._hideSchedulerView(),a._refresh(),s.layout.isDirty=!0,s._resetCachedLayout(),s._refreshLayout(),s.refresh()):"scheduler"!==e&&"timeline"!==e||(s.context=s,s.view=e,s.context=i,s._hideKanbanView(),s._createScheduler(),a._refresh(),s.layout.isDirty=!0,s._resetCachedLayout(),s._refreshLayout(),s.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 i=(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 i='<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>'+i+e,a.value=t,a};s.appendChild(i(t.localize("download")+" CSV","csv")),s.appendChild(i(t.localize("download")+" XLSX","xlsx")),s.appendChild(i(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("view-panel","group-panel","colors-panel","customize-panel","filter-panel","sort-panel","search-panel","format-panel"),e.$.group.classList.add("smart-hidden"),e.$.filter.classList.add("smart-hidden"),e.$.colors.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.$.view.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("view-panel","group-panel","colors-panel","customize-panel","filter-panel","sort-panel","search-panel","format-panel"),e.$.group.classList.add("smart-hidden"),e.$.filter.classList.add("smart-hidden"),e.$.colors.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.$.view.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("colors")>=0?e.$.colorsButton.classList.remove("smart-hidden"):e.$.colorsButton.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("states")>=0&&t.stateSettings.enabled&&!t.appearance.viewBarAppendTo?e.$.viewStatesButton.classList.remove("smart-hidden"):e.$.viewStatesButton.classList.add("smart-hidden"),t.users&&t.users.length&&(!1===t.currentUser||null===t.currentUser||void 0===t.currentUser)){const a=!!t.stateSettings.storage&&Object.keys(t.stateSettings.storage).length<=1;t.stateSettings.enabled&&!a&&e.$.viewStatesButton.classList.add("smart-hidden")}if(e.$.downloadButton.onpointerup=a=>{t.closeMenu(),e._openDownloadMenu(),a.stopPropagation()},e.$.viewsButton.onpointerup=a=>{t.closeMenu(),e._openViewsMenu(),a.stopPropagation()},!1===t.appearance.showViewBarAsDropdown&&(e.$.viewStatesButton.onpointerup=a=>{t.closeMenu(),e._closeDownloadMenu(),e._closeViewsMenu(),t.appearance.showViewBar=!t.appearance.showViewBar,a.stopPropagation(),e._updateViews()}),t._sortedColumns){const a=[],s=[],i=[];for(let e=0;e<t._sortedColumns.length;e++){const o=t._sortedColumns[e];a.push(o.dataField),s.push(o.sortOrder),i.push(o.dataType)}e._appliedSorting={dataFields:a,dataTypes:i,orderBy:s},e._refreshSortButton()}if("grid"===t.view||"card"===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 i=t.filters[s];a.filters.push([e,i.condition,i.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._refreshColorsButton(),e.refreshTools(),Smart.Utilities.Core.isMobile&&(e.$.searchButton.classList.add("smart-hidden"),e.$.formatButton.classList.add("smart-hidden"),e.$.colorsButton.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;if(!e.grid)return;let t=e.grid.localize("viewGrid");switch(e.$.viewsButton.classList.remove("kanban"),e.$.viewsButton.classList.remove("card"),e.$.viewsButton.classList.remove("scheduler"),e.$.viewsButton.classList.remove("timeline"),e.grid.view){case"kanban":t=e.grid.localize("viewKanban"),e.$.viewsButton.classList.add("kanban");break;case"grid":t=e.grid.localize("viewGrid");break;case"card":e.$.viewsButton.classList.add("card"),t=e.grid.localize("viewCard");break;case"scheduler":e.$.viewsButton.classList.add("scheduler"),t=e.grid.localize("viewScheduler");break;case"timeline":e.$.viewsButton.classList.add("timeline"),t=e.grid.localize("viewTimeline")}e.$.viewsButton.innerHTML='<div class="smart-tool-label" role="presentation">'+t+"</div>";let a=this.grid.stateSettings.current||"";if(a.length>30)a=a.substring(0,30)+"...";else if(!a){let e=[],t=this.grid.view,s="";switch(t){case"grid":s=this.grid.localize("viewGrid");break;case"kanban":s=this.grid.localize("viewKanban");break;case"card":s=this.grid.localize("viewCard");break;case"scheduler":s=this.grid.localize("viewScheduler");break;case"timeline":s=this.grid.localize("viewTimeline")}if(this.grid&&this.grid.stateSettings.storage)for(;this.grid.stateSettings.storage[s+" "+this.grid.localize("view")+" "+e[t]];)e[t]++;void 0===e[t]&&(e[t]=""),a=s+" "+this.grid.localize("view")+" "+e[t]}const s=""!==a?a:this.grid.localize("views");e.$.viewStatesButton.innerHTML='<div class="smart-tool-label" role="presentation">'+s+"</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,i=t.context;t.context=t,t.editing.dialog.enabled=!0,t.editing.mode="row",t._settingsDialogRowId=e;let o=t._isUpdating;"grid"!==t.view&&"card"!==t.view&&(t._isUpdating=0),t.beginEdit(e),t._isUpdating=o,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=i,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.$.headerBar.$.deleteButton,s=a.closest("smart-grid");(!s||s._currentUser&&(!s._currentUser||s._currentUser.info&&"guest"!==s._currentUser.info))&&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.$.headerBar._refreshDeleteButton()}openGroupPanel(e){const t=this;let a;const s=t.grid;if("kanban"===s.view||"scheduler"===s.view||"timeline"===s.view)return;t.$.headerDropDown.classList.add("group-panel"),t.$.headerDropDown.classList.remove("view-panel","colors-panel","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.$.colors.classList.add("smart-hidden"),t.$.search.classList.add("smart-hidden"),t.$.format.classList.add("smart-hidden"),t.$.view.classList.add("smart-hidden"),t._closeDownloadMenu(),t._closeViewsMenu(),t._refreshColumns("group"),s.closeMenu();const i=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)&&(i.find((t=>t.dataField===e.dataField)).groupIndex=t._appliedGrouping.dataFields.length),t._groupPartCreated?(a=t.$.group.firstElementChild,a.rightToLeft=t.rightToLeft,a.dataSource=i,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=i,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,i=t._appliedGrouping.dataFields;t._appliedGrouping.dataFields=a.dataFields;const o=s.onRowInserted;if(s.onRowInserted=null,s.beginUpdate(),s.grouping.autoHideGroupColumn&&i)for(let e=0;e<i.length;e++){const t=s.columnByDataField[i[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 n=[];for(let e=0;e<s.dataSource.groupBy.length;e++)n.push(s.dataSource.groupBy[e]);s.$.fireEvent("group",{groups:n}),s.paging.enabled&&s._refreshPagesCount(),s.onRowInserted=o}))),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(!e.grid||"scheduler"!==e.grid.view&&"timeline"!==e.grid.view){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")}else if(e.$.groupButton.onclick=()=>{"scheduler"!==e.grid.view&&"timeline"!==e.grid.view||e.grid._createScheduler("update")},e.grid._dateStackedBy&&Array.isArray(e.grid._dateStackedBy)){const t=e.grid.columnByDataField[e.grid._dateStackedBy[0]].label,a=e.grid.columnByDataField[e.grid._dateStackedBy[1]].label;e.$.groupButton.firstElementChild.innerHTML=e.localize("groupedBy",{column:t+"-"+a}),e.$.groupButton.classList.add("grouped")}else{const t=e.grid.columnByDataField[e.grid._dateStackedBy];t?(e.$.groupButton.firstElementChild.innerHTML=e.localize("groupedBy",{column:t.label}),e.$.groupButton.classList.add("grouped")):e.$.groupButton.classList.remove("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("view-panel","colors-panel","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.$.colors.classList.add("smart-hidden"),e.$.format.classList.add("smart-hidden"),e.$.view.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 i=new Smart.DataAdapter({id:"id",observable:!1,dataSource:a,dataFields:t.dataSource.dataFields});e._searchInfo={source:i,stringDataFields:e.dataSource.dataFields.filter((e=>"string"===e.dataType)).map((e=>e.name))},""!==e.$.searchInput.value&&e._search(e.$.searchInput.value,!1)}addColors(e,t,a){const s=this,i=s.grid;let o=[e,t],n=[];if(s.closePanel(),JSON.stringify(o)===JSON.stringify(s._appliedColors))return;s._appliedColors=o;const r=[],l=s.grid.getRows();for(let e=0;e<l.length;e++)r.push(Object.assign(l[e].data));if("conditions"===t.type){const t=new Smart.DataAdapter({id:"id",observable:!1,dataSource:r,dataFields:s.grid.dataSource.dataFields});t._filter(a,"or");const o=[];for(let e=0;e<t.length;e++){const a=t[e];!1!==a.$.filtered&&o.push(a)}const l=e,d=[];for(let e=0;e<l.length;e++){const t=l[e],a=t[0],s=t[1],o=t[3]?t[2]:void 0,n=t[3]?t[3]:t[2],r=i.columnByDataField[a].dataType,c=new Smart.Utilities.FilterGroup,u=c.createFilter(r,o,s);c.addFilter("or",u),d.push({dataField:a,color:n,filterGroup:c})}for(let e=0;e<o.length;e++){const t=o[e];for(let e=0;e<d.length;e++){const a=d[e].dataField,s=d[e].filterGroup,i=d[e].color,o=t[a];s.evaluate(o)&&(void 0===n[t.$.id]&&(n[t.$.id]={}),n[t.$.id].color=i,n[t.$.id][a]=i)}}}else{const e=t.singleSelect,a=i.columnByDataField[e],s="collaborator"===a.template?i.users:a.editor.dataSource,o={};s.forEach((e=>"collaborator"===a.template?(void 0===e.id||(o[e.id]=e.color),!0):!e.value||void(o[e.value]=e.color)));for(let t=0;t<l.length;t++){const a=l[t].data,s=a[e],i=o[s];i&&(n[a.$.id]={color:i})}}i._conditionalColors={colors:n,type:t.type,conditions:e,update:e=>{s._updateConditionalColors(e,i,t)},singleSelect:t.singleSelect,decorate:t.decorate},i._recycle(!1),s._refreshColorsButton(),i.autoSaveState(),s.$.fireEvent("colors")}_updateConditionalColors(e,t,a){let s=[];const i=t.getRows();if("conditions"===a.type){const a=t._conditionalColors.conditions,o=[];for(let e=0;e<a.length;e++){const s=a[e],i=s[0],n=s[1],r=s[3]?s[2]:void 0,l=s[3]?s[3]:s[2],d=t.columnByDataField[i].dataType,c=new Smart.Utilities.FilterGroup,u=c.createFilter(d,r,n);c.addFilter("or",u),o.push({dataField:i,color:l,filterGroup:c})}const n=e=>{for(let t=0;t<o.length;t++){const a=o[t].dataField,i=o[t].filterGroup,n=o[t].color,r=e[a];i.evaluate(r)?(void 0===s[e.$.id]&&(s[e.$.id]={}),s[e.$.id].color=n,s[e.$.id][a]=n):delete s[e.$.id]}};if(e)s=t._conditionalColors.colors,n(e.data);else for(let e=0;e<i.length;e++)n(i[e].data)}else{const o=a.singleSelect,n=t.columnByDataField[o],r="collaborator"===n.template?t.users:n.editor.dataSource,l={};if(r.forEach((e=>"collaborator"===n.template?(void 0===e.id||(l[e.id]=e.color),!0):!e.value||void(l[e.value]=e.color))),e){s=t._conditionalColors.colors;const a=e.data,i=a[o],n=l[i];n?s[a.$.id]={color:n}:delete s[a.$.id]}else for(let e=0;e<i.length;e++){const t=i[e].data,a=t[o],n=l[a];n&&(s[t.$.id]={color:n})}}t._conditionalColors.colors=s,t.autoSaveState(),t.summaryRow.visible||t._recycle(!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,i=[],o=[],n={};a._searchInfo.stringDataFields.forEach((t=>{const a=new Smart.Utilities.FilterGroup,s=a.createFilter("string",e,"CONTAINS");a.addFilter("or",s),i.push([t,a])})),s._filter(i,"or");for(let e=0;e<s.length;e++){const t=s[e];!1!==t.$.filtered&&(o.push(t.$.id),n[t.$.id]=!0)}if(a._searchInfo.foundIdsArray=o,a._searchInfo.foundIdsObject=n,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,i=s.createFilter("string",e,"CONTAINS"),o=a.grid.columnByDataField[t];if(o&&o.editor&&o.editor.dataSource)return!1;o&&(s.addFilter("or",i),a.grid.addFilter(t,s),o._filterInfo&&(o._filterInfo.value=o.filter.filters[0].value,o._filterInfo.condition=o.filter.filters[0].condition))})),a.grid.endUpdate(),a.grid.refreshFilters(),void(a.grid.filtering.operator=t)}if(o.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:o.length}),a._searchInfo.highlighted=o[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})}isGrid(){const e=this.grid;return!(e&&("kanban"===e.view&&e._kanban||"scheduler"===e.view&&e._scheduler||"timeline"===e.view&&e._scheduler))}_refreshColorsButton(){const e=this,t=e.grid;if(!e.isGrid())return t._kanban&&(e.$.colorsButton.innerHTML='<div class="smart-tool-label" role="presentation">'+t._kanban.localize("formating")+"</div>",e.$.colorsButton.classList.remove("hidden")),void e.$.colorsButton.classList.add("smart-hidden");e.$.colorsButton.innerHTML='<div class="smart-tool-label" role="presentation">'+t.localize("formating")+"</div>",e.$.colorsButton.classList.remove("hidden"),e._refreshMobileViewTools()}_refreshCustomizeButton(){const e=this,t=e.grid;let a=0;if(!e.isGrid())return t._kanban&&(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 i=0,o=[],n=[],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&&(o.push(a),n.push(l.visible),r.push(a.visible)),l.visible=a.visible,a.visible||i++)}s.onColumnChange=l,s.onColumnChange?s.onColumnChange(o,"visible",n,r):s.$.fireEvent("columnChange",{column:o,propertyName:"visible",oldValue:n,value:r}),i>0?(a.$.customizeButton.innerHTML='<div class="smart-tool-label" role="presentation">'+s.localize("customizeHidden",{n:i})+"</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],i=a.oldIndex,o=a.newIndex,n=s.columns[o+1],r=s.columns[o-1],l=s.columns[i];n?l.columnGroup=n.columnGroup:r&&(l.columnGroup=r.columnGroup),s.reorderColumns(i,o,!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()}});
1541
1541
 
1542
1542
  /***/ }),
1543
1543
 
@@ -1551,7 +1551,7 @@ Smart("smart-grid-toolbar",class extends Smart.DataView{template(){return'<div i
1551
1551
  /***/ 2292:
1552
1552
  /***/ (() => {
1553
1553
 
1554
- 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}if(!t){const t=[...e.editor.dataSource];e.editor.dataSource=[{color:"#DD5347",label:a.localize("uncategorized"),value:""}],e.editor.dataSource=e.editor.dataSource.concat(t)}}a.beginUpdate(),a._createKanban(e),a._refreshHeaderBar(),a.endUpdate(!1),a.autoSaveState(),a._showKanbanView(),a.$.headerBar&&a.$.headerBar._refresh()}};const s=()=>{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 s();const o=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 s()}return i&&"dynamic"===e&&a.stateSettings.storage&&o&&o.kanban&&o.kanban.stackedBy===i.dataField&&!a._kanban?(delete l._view,void s()):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=>{if(!e&&"grid"===t){delete a._kanbanInitialized;let e=a.getCurrentState();if(e&&(e.view="grid"),a.view="grid",a._hideKanbanView(),Object.keys(a.stateSettings.storage).length>1)return delete a.stateSettings.storage[e.name],a.loadState(Object.keys(a.stateSettings.storage)[0]),void(a.$.headerBar&&a.$.headerBar._updateViews());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._kanban.parentNode?t._kanban.style.display="":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.style.display="none",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())}_showSchedulerView(e){const t=this;t.classList.contains("smart-scheduler-view")?t._updateSchedulerView():(t.beginUpdate(),t.$.viewContent.classList.remove("smart-hidden"),t.$.content.classList.add("smart-hidden"),t.$.footerPager.classList.add("smart-hidden"),t._showAddNewRowButton("float"),t._scheduler.parentNode?t._scheduler.style.display="":t.$.viewContent.appendChild(t._scheduler),t.classList.add("smart-scheduler-view"),!1!==e&&t._updateSchedulerView(),requestAnimationFrame((()=>{t._scheduler.refresh();const a=t.getCurrentState();a&&a.scheduler&&t._scheduler.isInitialized&&(e=t._scheduler.loadState(a.scheduler))})),t._onFilter=t._onSort=()=>{if("scheduler"===t.view){if(t._isUpdating)return;t._updateSchedulerView()}})}_hideSchedulerView(){const e=this;e.classList.contains("smart-scheduler-view")&&(e.$.viewContent.classList.add("smart-hidden"),e.$.content.classList.remove("smart-hidden"),e.$.footerPager.classList.remove("smart-hidden"),e._scheduler.style.display="none",e.classList.remove("smart-scheduler-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){if("taskStartDate"===this.dataField){if(e>a.taskDueDate&&a.taskDueDate&&e)return t.localize("invalidMaxValue",{value:t.localize("dialogAddColumnTypeStartDate"),max:a.taskDueDate.toLocaleDateString()})}else if(this.boundDateField){const i=this.boundDateField;if(e>a[i]&&a[i]&&e)return t.localize("invalidMaxValue",{value:t.localize("dialogAddColumnTypeStartDate"),max:a[i].toLocaleDateString()})}return!0}},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){if(e<a.taskStartDate&&a.taskStartDate&&e)return t.localize("invalidMinValue",{value:t.localize("dialogAddColumnTypeDueDate"),min:a.taskStartDate.toLocaleDateString()});if(this.boundDateField){const i=this.boundDateField;if(e<a[i]&&a[i]&&e)return t.localize("invalidMaxValue",{value:t.localize("dialogAddColumnTypeDueDate"),min:a[i].toLocaleDateString()})}return!0}},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 s="string"==typeof l[a]&&l[a]?JSON.parse(l[a]):l[a],o=[],n=i.firstElementChild;if(n.isInitialized&&t._kanban&&t._kanban.messages[t.locale]&&(n.messages[t.locale].tagLabel=t._kanban.messages[t.locale].taskCompleted,n.messages[t.locale].tagLabelOne=t._kanban.messages[t.locale].taskCompleted),s){const e=s.map((e=>{const t={label:e.text,value:e.text};return e.completed&&o.push(t),t}));n.dataSource=e}else n.dataSource=[];n.selectedItems=o,!t.editing.editRow&&n.open&&n.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"),s=t._getKanbanTaskField("priority"),o=t._getKanbanTaskField("tags"),n=t._getKanbanTaskField("progress"),d=t._getKanbanTaskField("description"),r=t._getKanbanTaskField("name"),c=t._getKanbanTaskField("color"),u=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(n),a.push(s),a.push(o),a.push(u),a.push(c),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,n,s,o,u,c]}else t._kanbanViewColumns=[i,n,s,o,u,c];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{}}getSchedulerProperties(){const e=this;if(e._schedulerProperties)return e._schedulerProperties;e._schedulerProperties={};const t={currentTimeIndicator:!0,views:["day","week","month","agenda"],view:"month"};return!1===e.editing.enabled&&(t.disableDrag=!0,t.disableDrop=!0,t.disableResize=!0,t.allowColumnRemove=!1,t.allowColumnEdit=!1,t.addNewButton=!1,t.addNewColumn=!1,t.columnActions=!1,t.editable=!1),e._schedulerProperties=Object.assign({},t),e._schedulerProperties}getKanbanProperties(){const e=this;if(e._kanbanProperties)return e._kanbanProperties;e._kanbanProperties={};const t={taskColorEntireSurface:!1,collapsible:!0,addNewButton:e.editing.addNewRow.visible,addNewButtonDisplayMode:"both",addNewColumn:e.editing.addNewColumn.visible,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 s=t.getKanbanProperties();for(let e in s)a[e]=s[e];let o=[];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===o.indexOf(e)&&o.push(e)}}a.$&&a.$.scrollViewer&&(a.$.scrollViewer.scrollLeft=0),a.dialogEditors=o;let n=[];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")),n.push({label:i,value:a.value,status:a.value,dataField:a.value,color:a.color})}a.columns=n;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}_updateSchedulerView(e){const t=this;if(!t._scheduler)return;if(!t.isInitialized)return;t._refreshHeaderBar();const a=t._scheduler,i=a.context;a.context=a,a.users=t.users,a.currentUser=t.currentUser;const l=t.getSchedulerProperties();for(let e in l)a[e]=l[e];a.context=i}_getTaskDataByRow(e,t){const a=this,i={},l=a._kanban,s=a.rowById[e];s&&(s.history?i.history=JSON.parse(JSON.stringify(s.history)):i.history=[],s.comments?i.comments=JSON.parse(JSON.stringify(s.comments)):i.comments=[]),a.columnByDataField.taskStatus||void 0===t.taskStatus&&(t.taskStatus="");for(let e in t){if(e.startsWith("$"))continue;if("parent"===e)continue;if("children"===e)continue;let l=t[e];const s=a.columnByDataField[e];if(s&&s._dataField&&(e=s._dataField),"taskStatus"===e&&s&&a._stackedBy!==s.dataField&&(e=s.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 s=t.columns[l];let o=s.dataField,n=s.dataField;if(s._dataField&&(o=s._dataField),"taskStatus"===o&&t._stackedBy!==s.dataField&&(o=s.dataField),t._stackedBy===s.dataField&&(o="taskStatus"),o.startsWith("task")){let t=o.replace("task","");if(t=t.substring(0,1).toLowerCase()+t.substring(1),"checklist"===t){e.checklist?a[n]=e.checklist:a[n]="";continue}if("history"===t&&(a[n]=e.history),void 0===e[t])continue;if("priority"===t){const i=e[t];a[n]=i}else a[n]="progress"===t?parseFloat(e[t])/100:e[t]}else i.taskCustomFields&&i.taskCustomFields.length&&i.taskCustomFields.find((e=>e.dataField===n))&&(a[n]=e[n])}return a}_createScheduler(){const e=this;e._openDateDialog((t=>{if(t){const t=e._dialogDate.querySelector("smart-input").selectedValues[0];"+"===t?alert("Yes"):e._dateStackedBy=t;const a=document.createElement("smart-scheduler"),i=e.getSchedulerProperties();for(let e in i)a[e]=i[e];e._scheduler=a,e.onViewInit&&e.onViewInit(a),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","scheduler"===e.view&&(e.$.viewContent.classList.remove("smart-hidden"),e.$.content.classList.add("smart-hidden"),e.$.footerPager.classList.add("smart-hidden")),e.$.viewContent.appendChild(a),"scheduler"===e.view&&e.classList.add("smart-scheduler-view"),e.editing.addNewColumn._addButton&&e.editing.addNewColumn._addButton.classList.remove("show");const l=e.getCurrentState();l&&l.scheduler&&a.isInitialized&&a.loadState(l.scheduler),e._showSchedulerView()}else{delete e._schedulerInitialized;let t=e.getCurrentState();if(t&&(t.view="grid"),e.view="grid",e._hideSchedulerView(),Object.keys(e.stateSettings.storage).length>1)return delete e.stateSettings.storage[t.name],e.loadState(Object.keys(e.stateSettings.storage)[0]),void(e.$.headerBar&&e.$.headerBar._updateViews());e._refresh(),e.autoSaveState()}}))}_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,s=t._getTaskData(i),o=t._getTaskData(l);if(JSON.stringify(s)!==JSON.stringify(o)){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,s)}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 n=t.rowById[e.detail.id];n&&(n.history=i.history,i.comments&&(n.comments&&JSON.stringify(n.comments)===JSON.stringify(i.comments)||(n.comments=JSON.parse(JSON.stringify(i.comments)),t.onComment&&t.onComment(e.detail.id,n.comments))))}))}});
1554
+ 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}if(!t){const t=[...e.editor.dataSource];e.editor.dataSource=[{color:"#DD5347",label:a.localize("uncategorized"),value:""}],e.editor.dataSource=e.editor.dataSource.concat(t)}}a.beginUpdate(),a._createKanban(e),a._refreshHeaderBar(),a.endUpdate(!1),a.autoSaveState(),a._showKanbanView(),a.$.headerBar&&a.$.headerBar._refresh()}};const s=()=>{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 s();const o=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 s()}return i&&"dynamic"===e&&a.stateSettings.storage&&o&&o.kanban&&o.kanban.stackedBy===i.dataField&&!a._kanban?(delete l._view,void s()):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=>{if(!e&&"grid"===t){delete a._kanbanInitialized;let e=a.getCurrentState();if(e&&(e.view="grid"),a.view="grid",a._hideKanbanView(),Object.keys(a.stateSettings.storage).length>1)return delete a.stateSettings.storage[e.name],a.loadState(Object.keys(a.stateSettings.storage)[0]),void(a.$.headerBar&&a.$.headerBar._updateViews());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._kanban.parentNode?t._kanban.style.display="":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.style.display="none",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())}_showSchedulerView(e){const t=this;t.classList.contains("smart-scheduler-view")?t._updateSchedulerView():(t.beginUpdate(),t.$.viewContent.classList.remove("smart-hidden"),t.$.content.classList.add("smart-hidden"),t.$.footerPager.classList.add("smart-hidden"),t._showAddNewRowButton("float"),t._scheduler.parentNode?t._scheduler.style.display="":t.$.viewContent.appendChild(t._scheduler),t.classList.add("smart-scheduler-view"),!1!==e&&t._updateSchedulerView(),requestAnimationFrame((()=>{t._scheduler.refresh();const a=t.getCurrentState();a&&a.scheduler&&t._scheduler.isInitialized&&(e=t._scheduler.loadState(a.scheduler))})),t._onFilter=t._onSort=()=>{if("scheduler"===t.view){if(t._isUpdating)return;t._updateSchedulerView()}})}_hideSchedulerView(){const e=this;e.classList.contains("smart-scheduler-view")&&(e.$.viewContent.classList.add("smart-hidden"),e.$.content.classList.remove("smart-hidden"),e.$.footerPager.classList.remove("smart-hidden"),e._scheduler.style.display="none",e.classList.remove("smart-scheduler-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){if("taskStartDate"===this.dataField){if(e>a.taskDueDate&&a.taskDueDate&&e)return t.localize("invalidMaxValue",{value:t.localize("dialogAddColumnTypeStartDate"),max:a.taskDueDate.toLocaleDateString()})}else if(this.boundDateField){const i=this.boundDateField;if(e>a[i]&&a[i]&&e)return t.localize("invalidMaxValue",{value:t.localize("dialogAddColumnTypeStartDate"),max:a[i].toLocaleDateString()})}return!0}},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){if(e<a.taskStartDate&&a.taskStartDate&&e)return t.localize("invalidMinValue",{value:t.localize("dialogAddColumnTypeDueDate"),min:a.taskStartDate.toLocaleDateString()});if(this.boundDateField){const i=this.boundDateField;if(e<a[i]&&a[i]&&e)return t.localize("invalidMaxValue",{value:t.localize("dialogAddColumnTypeDueDate"),min:a[i].toLocaleDateString()})}return!0}},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 s="string"==typeof l[a]&&l[a]?JSON.parse(l[a]):l[a],o=[],n=i.firstElementChild;if(n.isInitialized&&t._kanban&&t._kanban.messages[t.locale]&&(n.messages[t.locale].tagLabel=t._kanban.messages[t.locale].taskCompleted,n.messages[t.locale].tagLabelOne=t._kanban.messages[t.locale].taskCompleted),s){const e=s.map((e=>{const t={label:e.text,value:e.text};return e.completed&&o.push(t),t}));n.dataSource=e}else n.dataSource=[];n.selectedItems=o,!t.editing.editRow&&n.open&&n.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"),s=t._getKanbanTaskField("priority"),o=t._getKanbanTaskField("tags"),n=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(n),a.push(s),a.push(o),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,n,s,o,c,u]}else t._kanbanViewColumns=[i,n,s,o,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{}}getSchedulerProperties(){const e=this;if(e._schedulerProperties)return e._schedulerProperties;e._schedulerProperties={};const t={currentTimeIndicator:!0,views:["day","week","month","agenda"],view:"month"};return!1===e.editing.enabled&&(t.disableDrag=!0,t.disableDrop=!0,t.disableResize=!0,t.allowColumnRemove=!1,t.allowColumnEdit=!1,t.addNewButton=!1,t.addNewColumn=!1,t.columnActions=!1,t.editable=!1),e._schedulerProperties=Object.assign({},t),e._schedulerProperties}getKanbanProperties(){const e=this;if(e._kanbanProperties)return e._kanbanProperties;e._kanbanProperties={};const t={taskColorEntireSurface:!1,collapsible:!0,addNewButton:e.editing.addNewRow.visible,addNewButtonDisplayMode:"both",addNewColumn:e.editing.addNewColumn.visible,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 s=t.getKanbanProperties();for(let e in s)a[e]=s[e];let o=[];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===o.indexOf(e)&&o.push(e)}}a.$&&a.$.scrollViewer&&(a.$.scrollViewer.scrollLeft=0),a.dialogEditors=o;let n=[];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")),n.push({label:i,value:a.value,status:a.value,dataField:a.value,color:a.color})}a.columns=n;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}_updateSchedulerView(e){const t=this;if(!t._scheduler)return;if(!t.isInitialized)return;t._refreshHeaderBar();const a=t._scheduler,i=a.context;a.context=a,a.users=t.users,a.currentUser=t.currentUser;const l=t.getSchedulerProperties();for(let e in l)a[e]=l[e];a.context=i}_getTaskDataByRow(e,t){const a=this,i={},l=a._kanban,s=a.rowById[e];s&&(s.history?i.history=JSON.parse(JSON.stringify(s.history)):i.history=[],s.comments?i.comments=JSON.parse(JSON.stringify(s.comments)):i.comments=[]),a.columnByDataField.taskStatus||void 0===t.taskStatus&&(t.taskStatus="");for(let e in t){if(e.startsWith("$"))continue;if("parent"===e)continue;if("children"===e)continue;let l=t[e];const s=a.columnByDataField[e];if(s&&s._dataField&&(e=s._dataField),"taskStatus"===e&&s&&a._stackedBy!==s.dataField&&(e=s.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 s=t.columns[l];let o=s.dataField,n=s.dataField;if(s._dataField&&(o=s._dataField),"taskStatus"===o&&t._stackedBy!==s.dataField&&(o=s.dataField),t._stackedBy===s.dataField&&(o="taskStatus"),o.startsWith("task")){let t=o.replace("task","");if(t=t.substring(0,1).toLowerCase()+t.substring(1),"checklist"===t){e.checklist?a[n]=e.checklist:a[n]="";continue}if("history"===t&&(a[n]=e.history),void 0===e[t])continue;if("priority"===t){const i=e[t];a[n]=i}else a[n]="progress"===t?parseFloat(e[t])/100:e[t]}else i.taskCustomFields&&i.taskCustomFields.length&&i.taskCustomFields.find((e=>e.dataField===n))&&(a[n]=e[n])}return a}_createScheduler(e){const t=this;t._openDateDialog((a=>{if(a){const a=t._dialogDate.querySelector("smart-input").selectedValues[0];if("+"===a){const e=t._getKanbanTaskField("startDate");e.dataField=e.displayField="dataField"+Math.floor(65536*(1+Math.random())).toString(16).substring(1);let a=1;for(let i=0;i<t.columns.length;i++)t.columns[i].label===e.label&&a++;1!==a&&(e.label+=" "+a),t.columns.push(e),t._dateStackedBy=e.dataField}else if("++"===a){const e=t._getKanbanTaskField("startDate");e.dataField=e.displayField="dataField"+Math.floor(65536*(1+Math.random())).toString(16).substring(1);const a=t._getKanbanTaskField("dueDate");a.dataField=a.displayField="dataField"+Math.floor(65536*(1+Math.random())).toString(16).substring(1),e.editor.boundDateField=a.dataField,a.editor.boundDateField=e.dataField;let i=1,l=1;for(let s=0;s<t.columns.length;s++)t.columns[s].label===e.label&&i++,t.columns[s].label===a.label&&l++;1!==i&&(e.label+=" "+i),1!==l&&(a.label+=" "+l),t.columns.push(e),t.columns.push(a),t._dateStackedBy=[e.dataField,a.dataField]}else t._dateStackedBy=a;if("update"===e)return void t._updateSchedulerView();const i=document.createElement("smart-scheduler"),l=t.getSchedulerProperties();for(let e in l)i[e]=l[e];t._scheduler=i,t.onViewInit&&t.onViewInit(i),i.style.width="100%",i.style.height="100%",i.style.borderTopColor="transparent",i.style.borderLeftColor="transparent",i.style.borderRightColor="transparent",i.style.borderBottomColor="transparent",i.style.background="inherit","scheduler"===t.view&&(t.$.viewContent.classList.remove("smart-hidden"),t.$.content.classList.add("smart-hidden"),t.$.footerPager.classList.add("smart-hidden")),t.$.viewContent.appendChild(i),"scheduler"===t.view&&t.classList.add("smart-scheduler-view"),t.editing.addNewColumn._addButton&&t.editing.addNewColumn._addButton.classList.remove("show");const s=t.getCurrentState();s&&s.scheduler&&i.isInitialized&&i.loadState(s.scheduler),t._showSchedulerView()}else{if("update"===e)return;delete t._schedulerInitialized;let a=t.getCurrentState();if(a&&(a.view="grid"),t.view="grid",t._hideSchedulerView(),Object.keys(t.stateSettings.storage).length>1)return delete t.stateSettings.storage[a.name],t.loadState(Object.keys(t.stateSettings.storage)[0]),void(t.$.headerBar&&t.$.headerBar._updateViews());t._refresh(),t.autoSaveState()}}))}_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,s=t._getTaskData(i),o=t._getTaskData(l);if(JSON.stringify(s)!==JSON.stringify(o)){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,s)}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 n=t.rowById[e.detail.id];n&&(n.history=i.history,i.comments&&(n.comments&&JSON.stringify(n.comments)===JSON.stringify(i.comments)||(n.comments=JSON.parse(JSON.stringify(i.comments)),t.onComment&&t.onComment(e.detail.id,n.comments))))}))}});
1555
1555
 
1556
1556
  /***/ }),
1557
1557
 
@@ -1889,7 +1889,7 @@ var __webpack_exports__ = {};
1889
1889
  /* harmony import */ var _smart_grid_core_js__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(5306);
1890
1890
  /* harmony import */ var _smart_grid_core_js__WEBPACK_IMPORTED_MODULE_61___default = /*#__PURE__*/__webpack_require__.n(_smart_grid_core_js__WEBPACK_IMPORTED_MODULE_61__);
1891
1891
 
1892
- /* Smart UI v19.1.28 (2024-06-13)
1892
+ /* Smart UI v19.1.33 (2024-06-15)
1893
1893
  Copyright (c) 2011-2024 jQWidgets.
1894
1894
  License: https://htmlelements.com/license/ */ //
1895
1895