smart-webcomponents-react 17.0.0 → 17.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion.d.ts +0 -1
- package/accordion/accordion.esm.js +19 -10
- package/accordion/accordion.umd.js +8 -3
- package/accordion/accordionitem.d.ts +0 -1
- package/alertwindow/alertwindow.d.ts +0 -1
- package/alertwindow/alertwindow.esm.js +15 -9
- package/alertwindow/alertwindow.umd.js +4 -2
- package/array/array.d.ts +0 -1
- package/array/array.esm.js +15 -9
- package/array/array.umd.js +4 -2
- package/barcode/barcode.d.ts +0 -1
- package/barcode/barcode.esm.js +15 -9
- package/barcode/barcode.umd.js +4 -2
- package/breadcrumb/breadcrumb.d.ts +0 -1
- package/breadcrumb/breadcrumb.esm.js +15 -9
- package/breadcrumb/breadcrumb.umd.js +4 -2
- package/button/button.d.ts +0 -1
- package/button/button.esm.js +27 -12
- package/button/button.umd.js +16 -5
- package/button/buttongroup.d.ts +0 -1
- package/button/dropdownbutton.d.ts +0 -1
- package/button/multisplitbutton.d.ts +0 -1
- package/button/powerbutton.d.ts +0 -1
- package/button/radiobutton.d.ts +0 -1
- package/button/repeatbutton.d.ts +0 -1
- package/button/switchbutton.d.ts +0 -1
- package/button/togglebutton.d.ts +0 -1
- package/buttongroup/buttongroup.d.ts +0 -1
- package/buttongroup/buttongroup.esm.js +15 -9
- package/buttongroup/buttongroup.umd.js +4 -2
- package/calendar/calendar.d.ts +0 -1
- package/calendar/calendar.esm.js +15 -9
- package/calendar/calendar.umd.js +4 -2
- package/card/card.d.ts +0 -1
- package/card/card.esm.js +15 -9
- package/card/card.umd.js +4 -2
- package/card/cardview.d.ts +0 -1
- package/cardview/cardview.d.ts +0 -1
- package/cardview/cardview.esm.js +15 -9
- package/cardview/cardview.umd.js +4 -2
- package/carousel/carousel.d.ts +0 -1
- package/carousel/carousel.esm.js +15 -9
- package/carousel/carousel.umd.js +4 -2
- package/chart/chart.d.ts +0 -1
- package/chart/chart.esm.js +15 -9
- package/chart/chart.umd.js +4 -2
- package/chart/ganttchart.d.ts +0 -11
- package/chart/threedchart.d.ts +0 -1
- package/checkbox/checkbox.d.ts +0 -1
- package/checkbox/checkbox.esm.js +15 -9
- package/checkbox/checkbox.umd.js +4 -2
- package/checkinput/checkinput.d.ts +0 -1
- package/checkinput/checkinput.esm.js +15 -9
- package/checkinput/checkinput.umd.js +4 -2
- package/chip/chip.d.ts +0 -1
- package/chip/chip.esm.js +15 -9
- package/chip/chip.umd.js +4 -2
- package/colorinput/colorinput.d.ts +0 -1
- package/colorinput/colorinput.esm.js +15 -9
- package/colorinput/colorinput.umd.js +4 -2
- package/colorpanel/colorpanel.d.ts +0 -1
- package/colorpanel/colorpanel.esm.js +15 -9
- package/colorpanel/colorpanel.umd.js +4 -2
- package/colorpicker/colorpicker.d.ts +0 -1
- package/colorpicker/colorpicker.esm.js +15 -9
- package/colorpicker/colorpicker.umd.js +4 -2
- package/columnpanel/columnpanel.d.ts +0 -1
- package/columnpanel/columnpanel.esm.js +15 -9
- package/columnpanel/columnpanel.umd.js +4 -2
- package/combobox/combobox.d.ts +0 -1
- package/combobox/combobox.esm.js +23 -11
- package/combobox/combobox.umd.js +12 -4
- package/countryinput/countryinput.d.ts +0 -1
- package/countryinput/countryinput.esm.js +15 -9
- package/countryinput/countryinput.umd.js +4 -2
- package/customizationdialog/customizationdialog.d.ts +0 -1
- package/customizationdialog/customizationdialog.esm.js +15 -9
- package/customizationdialog/customizationdialog.umd.js +4 -2
- package/dateinput/dateinput.d.ts +0 -1
- package/dateinput/dateinput.esm.js +15 -9
- package/dateinput/dateinput.umd.js +4 -2
- package/daterangeinput/daterangeinput.d.ts +0 -1
- package/daterangeinput/daterangeinput.esm.js +15 -9
- package/daterangeinput/daterangeinput.umd.js +4 -2
- package/datetimepicker/datetimepicker.d.ts +0 -1
- package/datetimepicker/datetimepicker.esm.js +15 -9
- package/datetimepicker/datetimepicker.umd.js +4 -2
- package/dialogwindow/dialogwindow.d.ts +0 -1
- package/dialogwindow/dialogwindow.esm.js +15 -9
- package/dialogwindow/dialogwindow.umd.js +4 -2
- package/dockinglayout/dockinglayout.d.ts +0 -1
- package/dockinglayout/dockinglayout.esm.js +15 -9
- package/dockinglayout/dockinglayout.umd.js +4 -2
- package/dropdownbutton/dropdownbutton.d.ts +0 -1
- package/dropdownbutton/dropdownbutton.esm.js +15 -9
- package/dropdownbutton/dropdownbutton.umd.js +4 -2
- package/dropdownlist/dropdownlist.d.ts +0 -1
- package/dropdownlist/dropdownlist.esm.js +23 -11
- package/dropdownlist/dropdownlist.umd.js +12 -4
- package/editor/editor.d.ts +0 -1
- package/editor/editor.esm.js +15 -9
- package/editor/editor.umd.js +4 -2
- package/element/element.d.ts +0 -1
- package/element/element.esm.js +15 -9
- package/element/element.umd.js +4 -2
- package/fileupload/fileupload.d.ts +0 -1
- package/fileupload/fileupload.esm.js +15 -9
- package/fileupload/fileupload.umd.js +4 -2
- package/filterbuilder/filterbuilder.d.ts +0 -1
- package/filterbuilder/filterbuilder.esm.js +15 -9
- package/filterbuilder/filterbuilder.umd.js +4 -2
- package/filterpanel/filterpanel.d.ts +0 -1
- package/filterpanel/filterpanel.esm.js +15 -9
- package/filterpanel/filterpanel.umd.js +4 -2
- package/filterpanel/multicolumnfilterpanel.d.ts +0 -1
- package/form/form.d.ts +0 -1
- package/form/form.esm.js +23 -11
- package/form/form.umd.js +12 -4
- package/form/formcontrol.d.ts +0 -1
- package/form/formgroup.d.ts +0 -1
- package/ganttchart/ganttchart.d.ts +0 -11
- package/ganttchart/ganttchart.esm.js +16 -32
- package/ganttchart/ganttchart.umd.js +5 -25
- package/gauge/gauge.d.ts +0 -1
- package/gauge/gauge.esm.js +15 -9
- package/gauge/gauge.umd.js +4 -2
- package/grid/grid.d.ts +0 -1
- package/grid/grid.esm.js +15 -9
- package/grid/grid.umd.js +4 -2
- package/grouppanel/grouppanel.d.ts +0 -1
- package/grouppanel/grouppanel.esm.js +15 -9
- package/grouppanel/grouppanel.umd.js +4 -2
- package/index.d.ts +1 -11
- package/input/checkinput.d.ts +0 -1
- package/input/colorinput.d.ts +0 -1
- package/input/countryinput.d.ts +0 -1
- package/input/dateinput.d.ts +0 -1
- package/input/daterangeinput.d.ts +0 -1
- package/input/input.d.ts +0 -1
- package/input/input.esm.js +15 -9
- package/input/input.umd.js +4 -2
- package/input/multicomboinput.d.ts +0 -1
- package/input/multiinput.d.ts +0 -1
- package/input/numberinput.d.ts +0 -1
- package/input/passwordinput.d.ts +0 -1
- package/input/phoneinput.d.ts +0 -1
- package/input/timeinput.d.ts +0 -1
- package/kanban/kanban.d.ts +0 -1
- package/kanban/kanban.esm.js +15 -9
- package/kanban/kanban.umd.js +4 -2
- package/layout/dockinglayout.d.ts +0 -1
- package/layout/layout.d.ts +0 -1
- package/layout/layout.esm.js +31 -13
- package/layout/layout.umd.js +20 -6
- package/layout/layoutgroup.d.ts +0 -1
- package/layout/layoutitem.d.ts +0 -1
- package/layout/tablayoutgroup.d.ts +0 -1
- package/layout/tablayoutitem.d.ts +0 -1
- package/led/led.d.ts +0 -1
- package/led/led.esm.js +15 -9
- package/led/led.umd.js +4 -2
- package/listbox/listbox.d.ts +0 -1
- package/listbox/listbox.esm.js +23 -11
- package/listbox/listbox.umd.js +12 -4
- package/listmenu/listmenu.d.ts +0 -1
- package/listmenu/listmenu.esm.js +23 -11
- package/listmenu/listmenu.umd.js +12 -4
- package/map/map.d.ts +0 -1
- package/map/map.esm.js +15 -9
- package/map/map.umd.js +4 -2
- package/maskedtextbox/maskedtextbox.d.ts +0 -1
- package/maskedtextbox/maskedtextbox.esm.js +15 -9
- package/maskedtextbox/maskedtextbox.umd.js +4 -2
- package/menu/listmenu.d.ts +0 -1
- package/menu/menu.d.ts +0 -1
- package/menu/menu.esm.js +23 -11
- package/menu/menu.umd.js +12 -4
- package/menu/menuitem.d.ts +0 -1
- package/menu/menuitemsgroup.d.ts +0 -1
- package/multicolumnfilterpanel/multicolumnfilterpanel.d.ts +0 -1
- package/multicolumnfilterpanel/multicolumnfilterpanel.esm.js +15 -9
- package/multicolumnfilterpanel/multicolumnfilterpanel.umd.js +4 -2
- package/multicomboinput/multicomboinput.d.ts +0 -1
- package/multicomboinput/multicomboinput.esm.js +15 -9
- package/multicomboinput/multicomboinput.umd.js +4 -2
- package/multiinput/multiinput.d.ts +0 -1
- package/multiinput/multiinput.esm.js +15 -9
- package/multiinput/multiinput.umd.js +4 -2
- package/multilinetextbox/multilinetextbox.d.ts +0 -1
- package/multilinetextbox/multilinetextbox.esm.js +23 -11
- package/multilinetextbox/multilinetextbox.umd.js +12 -4
- package/multilinewindow/multilinewindow.d.ts +0 -1
- package/multilinewindow/multilinewindow.esm.js +15 -9
- package/multilinewindow/multilinewindow.umd.js +4 -2
- package/multisplitbutton/multisplitbutton.d.ts +0 -1
- package/multisplitbutton/multisplitbutton.esm.js +23 -11
- package/multisplitbutton/multisplitbutton.umd.js +12 -4
- package/numberinput/numberinput.d.ts +0 -1
- package/numberinput/numberinput.esm.js +15 -9
- package/numberinput/numberinput.umd.js +4 -2
- package/numerictextbox/numerictextbox.d.ts +0 -1
- package/numerictextbox/numerictextbox.esm.js +15 -9
- package/numerictextbox/numerictextbox.umd.js +4 -2
- package/package.json +2 -1
- package/pager/pager.d.ts +0 -1
- package/pager/pager.esm.js +15 -9
- package/pager/pager.umd.js +4 -2
- package/passwordinput/passwordinput.d.ts +0 -1
- package/passwordinput/passwordinput.esm.js +15 -9
- package/passwordinput/passwordinput.umd.js +4 -2
- package/passwordtextbox/passwordtextbox.d.ts +0 -1
- package/passwordtextbox/passwordtextbox.esm.js +15 -9
- package/passwordtextbox/passwordtextbox.umd.js +4 -2
- package/path/path.d.ts +0 -1
- package/path/path.esm.js +15 -9
- package/path/path.umd.js +4 -2
- package/phoneinput/phoneinput.d.ts +0 -1
- package/phoneinput/phoneinput.esm.js +15 -9
- package/phoneinput/phoneinput.umd.js +4 -2
- package/pivottable/pivottable.d.ts +0 -1
- package/pivottable/pivottable.esm.js +15 -9
- package/pivottable/pivottable.umd.js +4 -2
- package/progressbar/circularprogressbar.d.ts +0 -1
- package/progressbar/progressbar.d.ts +0 -1
- package/progressbar/progressbar.esm.js +19 -10
- package/progressbar/progressbar.umd.js +8 -3
- package/progresswindow/progresswindow.d.ts +0 -1
- package/progresswindow/progresswindow.esm.js +15 -9
- package/progresswindow/progresswindow.umd.js +4 -2
- package/promptwindow/promptwindow.d.ts +0 -1
- package/promptwindow/promptwindow.esm.js +15 -9
- package/promptwindow/promptwindow.umd.js +4 -2
- package/qrcode/qrcode.d.ts +0 -1
- package/qrcode/qrcode.esm.js +15 -9
- package/qrcode/qrcode.umd.js +4 -2
- package/querybuilder/querybuilder.d.ts +0 -1
- package/querybuilder/querybuilder.esm.js +15 -9
- package/querybuilder/querybuilder.umd.js +4 -2
- package/radiobutton/radiobutton.d.ts +0 -1
- package/radiobutton/radiobutton.esm.js +15 -9
- package/radiobutton/radiobutton.umd.js +4 -2
- package/rating/rating.d.ts +0 -1
- package/rating/rating.esm.js +15 -9
- package/rating/rating.umd.js +4 -2
- package/ribbon/ribbon.d.ts +0 -1
- package/ribbon/ribbon.esm.js +27 -12
- package/ribbon/ribbon.umd.js +16 -5
- package/ribbon/ribbongroup.d.ts +0 -1
- package/ribbon/ribbonitem.d.ts +0 -1
- package/ribbon/ribbontab.d.ts +0 -1
- package/scheduler/scheduler.d.ts +0 -1
- package/scheduler/scheduler.esm.js +15 -9
- package/scheduler/scheduler.umd.js +4 -2
- package/scrollbar/scrollbar.d.ts +0 -1
- package/scrollbar/scrollbar.esm.js +15 -9
- package/scrollbar/scrollbar.umd.js +4 -2
- package/slider/slider.d.ts +0 -1
- package/slider/slider.esm.js +15 -9
- package/slider/slider.umd.js +4 -2
- package/sortable/sortable.d.ts +0 -1
- package/sortable/sortable.esm.js +15 -9
- package/sortable/sortable.umd.js +4 -2
- package/sortpanel/sortpanel.d.ts +0 -1
- package/sortpanel/sortpanel.esm.js +15 -9
- package/sortpanel/sortpanel.umd.js +4 -2
- package/source/modules/smart.3dchart.js +2 -2
- package/source/modules/smart.accordion.js +1 -1
- package/source/modules/smart.array.js +2 -2
- package/source/modules/smart.barcode.js +1 -1
- package/source/modules/smart.breadcrumb.js +1 -1
- package/source/modules/smart.button.js +1 -1
- package/source/modules/smart.buttongroup.js +1 -1
- package/source/modules/smart.calendar.js +2 -2
- package/source/modules/smart.card.js +1 -1
- package/source/modules/smart.cardview.js +5 -5
- package/source/modules/smart.carousel.js +1 -1
- package/source/modules/smart.chart.js +2 -2
- package/source/modules/smart.checkbox.js +1 -1
- package/source/modules/smart.checkinput.js +1 -1
- package/source/modules/smart.chip.js +1 -1
- package/source/modules/smart.colorinput.js +1 -1
- package/source/modules/smart.colorpanel.js +2 -2
- package/source/modules/smart.colorpicker.js +2 -2
- package/source/modules/smart.combobox.js +2 -2
- package/source/modules/smart.common.js +3 -3
- package/source/modules/smart.countryinput.js +1 -1
- package/source/modules/smart.dateinput.js +2 -2
- package/source/modules/smart.daterangeinput.js +3 -3
- package/source/modules/smart.datetimepicker.js +4 -4
- package/source/modules/smart.dockinglayout.js +1 -1
- package/source/modules/smart.dropdownbutton.js +1 -1
- package/source/modules/smart.dropdownlist.js +2 -2
- package/source/modules/smart.editor.js +2 -2
- package/source/modules/smart.element.js +1 -1
- package/source/modules/smart.fileupload.js +2 -2
- package/source/modules/smart.form.js +1 -1
- package/source/modules/smart.formulaparser.js +1 -1
- package/source/modules/smart.ganttchart.js +5 -5
- package/source/modules/smart.gauge.js +2 -2
- package/source/modules/smart.grid.js +15 -15
- package/source/modules/smart.gridpanel.js +5 -5
- package/source/modules/smart.input.js +1 -1
- package/source/modules/smart.kanban.js +6 -6
- package/source/modules/smart.layout.js +1 -1
- package/source/modules/smart.led.js +1 -1
- package/source/modules/smart.listbox.js +1 -1
- package/source/modules/smart.listmenu.js +1 -1
- package/source/modules/smart.map.js +1 -1
- package/source/modules/smart.maskedtextbox.js +1 -1
- package/source/modules/smart.menu.js +1 -1
- package/source/modules/smart.multicomboinput.js +1 -1
- package/source/modules/smart.multiinput.js +1 -1
- package/source/modules/smart.multilinetextbox.js +2 -2
- package/source/modules/smart.multisplitbutton.js +2 -2
- package/source/modules/smart.numberinput.js +1 -1
- package/source/modules/smart.numerictextbox.js +2 -2
- package/source/modules/smart.pager.js +1 -1
- package/source/modules/smart.passwordinput.js +1 -1
- package/source/modules/smart.passwordtextbox.js +1 -1
- package/source/modules/smart.path.js +1 -1
- package/source/modules/smart.phoneinput.js +1 -1
- package/source/modules/smart.pivottable.js +4 -4
- package/source/modules/smart.progressbar.js +1 -1
- package/source/modules/smart.qrcode.js +1 -1
- package/source/modules/smart.querybuilder.js +4 -4
- package/source/modules/smart.radiobutton.js +1 -1
- package/source/modules/smart.rating.js +1 -1
- package/source/modules/smart.ribbon.js +2 -2
- package/source/modules/smart.router.js +2 -2
- package/source/modules/smart.scheduler.js +6 -6
- package/source/modules/smart.scrollbar.js +1 -1
- package/source/modules/smart.slider.js +2 -2
- package/source/modules/smart.sortable.js +1 -1
- package/source/modules/smart.splitter.js +1 -1
- package/source/modules/smart.switchbutton.js +1 -1
- package/source/modules/smart.table.js +4 -4
- package/source/modules/smart.tabs.js +1 -1
- package/source/modules/smart.tank.js +2 -2
- package/source/modules/smart.textarea.js +1 -1
- package/source/modules/smart.textbox.js +2 -2
- package/source/modules/smart.timeinput.js +1 -1
- package/source/modules/smart.timepicker.js +1 -1
- package/source/modules/smart.toast.js +1 -1
- package/source/modules/smart.tooltip.js +1 -1
- package/source/modules/smart.tree.js +1 -1
- package/source/modules/smart.validator.js +1 -1
- package/source/modules/smart.window.js +2 -2
- package/source/smart.3dchart.js +1 -1
- package/source/smart.accordion.js +1 -1
- package/source/smart.ajax.js +1 -1
- package/source/smart.array.js +1 -1
- package/source/smart.barcode.js +1 -1
- package/source/smart.bootstrap.js +1 -1
- package/source/smart.breadcrumb.js +1 -1
- package/source/smart.button.js +1 -1
- package/source/smart.buttongroup.js +1 -1
- package/source/smart.calendar.js +1 -1
- package/source/smart.card.js +1 -1
- package/source/smart.cardview.js +1 -1
- package/source/smart.carousel.js +1 -1
- package/source/smart.chart.annotations.js +1 -1
- package/source/smart.chart.api.js +1 -1
- package/source/smart.chart.core.js +1 -1
- package/source/smart.chart.js +1 -1
- package/source/smart.chart.rangeselector.js +1 -1
- package/source/smart.chart.waterfall.js +1 -1
- package/source/smart.checkbox.js +1 -1
- package/source/smart.checkinput.js +1 -1
- package/source/smart.chip.js +1 -1
- package/source/smart.colorinput.js +1 -1
- package/source/smart.colorpanel.js +1 -1
- package/source/smart.colorpicker.js +1 -1
- package/source/smart.combobox.js +1 -1
- package/source/smart.complex.js +1 -1
- package/source/smart.core.js +1 -1
- package/source/smart.countryinput.js +1 -1
- package/source/smart.data.js +2 -2
- package/source/smart.date.js +2 -2
- package/source/smart.dateformatpanel.js +1 -1
- package/source/smart.dateinput.js +1 -1
- package/source/smart.daterangeinput.js +1 -1
- package/source/smart.datetimepicker.js +2 -2
- package/source/smart.dockinglayout.js +1 -1
- package/source/smart.draw.js +1 -1
- package/source/smart.dropdownbutton.js +1 -1
- package/source/smart.dropdownlist.js +2 -2
- package/source/smart.editor.js +2 -2
- package/source/smart.element.js +1 -1
- package/source/smart.elements.js +17 -17
- package/source/smart.export.js +1 -1
- package/source/smart.fileupload.js +1 -1
- package/source/smart.filter.js +1 -1
- package/source/smart.filterbuilder.js +1 -1
- package/source/smart.filterpanel.js +1 -1
- package/source/smart.form.js +1 -1
- package/source/smart.format.js +1 -1
- package/source/smart.formulaparser.js +1 -1
- package/source/smart.ganttchart.js +1 -1
- package/source/smart.gauge.js +1 -1
- package/source/smart.grid.cell.js +2 -2
- package/source/smart.grid.chart.js +1 -1
- package/source/smart.grid.column.js +1 -1
- package/source/smart.grid.core.js +2 -2
- package/source/smart.grid.dialog.js +2 -2
- package/source/smart.grid.edit.js +2 -2
- package/source/smart.grid.export.js +1 -1
- package/source/smart.grid.filter.js +1 -1
- package/source/smart.grid.group.js +2 -2
- package/source/smart.grid.js +1 -1
- package/source/smart.grid.menu.js +1 -1
- package/source/smart.grid.pager.js +1 -1
- package/source/smart.grid.reorder.js +2 -2
- package/source/smart.grid.resize.js +1 -1
- package/source/smart.grid.row.js +1 -1
- package/source/smart.grid.select.js +2 -2
- package/source/smart.grid.sort.js +2 -2
- package/source/smart.grid.toolbar.js +2 -2
- package/source/smart.grid.tree.js +1 -1
- package/source/smart.grid.view.js +2 -2
- package/source/smart.gridpanel.js +1 -1
- package/source/smart.input.js +1 -1
- package/source/smart.kanban.js +2 -2
- package/source/smart.layout.js +1 -1
- package/source/smart.led.js +1 -1
- package/source/smart.listbox.js +1 -1
- package/source/smart.listmenu.js +1 -1
- package/source/smart.map.js +1 -1
- package/source/smart.maskedtextbox.js +1 -1
- package/source/smart.math.js +1 -1
- package/source/smart.menu.js +1 -1
- package/source/smart.multicomboinput.js +1 -1
- package/source/smart.multiinput.js +1 -1
- package/source/smart.multilinetextbox.js +1 -1
- package/source/smart.multisplitbutton.js +1 -1
- package/source/smart.numberformatpanel.js +1 -1
- package/source/smart.numberinput.js +1 -1
- package/source/smart.numeric.js +1 -1
- package/source/smart.numerictextbox.js +1 -1
- package/source/smart.pager.js +1 -1
- package/source/smart.passwordinput.js +1 -1
- package/source/smart.passwordtextbox.js +1 -1
- package/source/smart.path.js +1 -1
- package/source/smart.phoneinput.js +1 -1
- package/source/smart.pivottable.js +1 -1
- package/source/smart.powerbutton.js +1 -1
- package/source/smart.progressbar.js +1 -1
- package/source/smart.qrcode.js +1 -1
- package/source/smart.radiobutton.js +1 -1
- package/source/smart.rating.js +1 -1
- package/source/smart.ribbon.js +1 -1
- package/source/smart.router.js +1 -1
- package/source/smart.scheduler.js +2 -2
- package/source/smart.scrollbar.js +1 -1
- package/source/smart.slider.js +1 -1
- package/source/smart.sortable.js +1 -1
- package/source/smart.splitter.js +1 -1
- package/source/smart.switchbutton.js +1 -1
- package/source/smart.table.js +1 -1
- package/source/smart.tabs.js +1 -1
- package/source/smart.tank.js +1 -1
- package/source/smart.textarea.js +1 -1
- package/source/smart.textbox.js +1 -1
- package/source/smart.tickintervalhandler.js +1 -1
- package/source/smart.timeinput.js +1 -1
- package/source/smart.timepicker.js +1 -1
- package/source/smart.toast.js +1 -1
- package/source/smart.tooltip.js +1 -1
- package/source/smart.tree.js +1 -1
- package/source/smart.validationpanel.js +1 -1
- package/source/smart.validator.js +1 -1
- package/source/smart.window.js +1 -1
- package/source/styles/components/smart.grid.css +1 -1
- package/source/styles/components/smart.kanban.css +1 -1
- package/source/styles/default/scss/smart.grid.scss +14 -3
- package/source/styles/default/scss/smart.kanban.scss +13 -2
- package/source/styles/default/smart.grid.css +15 -3
- package/source/styles/default/smart.kanban.css +1607 -1599
- package/source/styles/smart.default.css +2 -2
- package/source/typescript/smart.elements.d.ts +1 -11
- package/source/typescript/smart.ganttchart.d.ts +0 -10
- package/source/typescript/smart.ribbon.d.ts +1 -1
- package/splitter/splitter.d.ts +0 -1
- package/splitter/splitter.esm.js +23 -11
- package/splitter/splitter.umd.js +12 -4
- package/splitter/splitterbar.d.ts +0 -1
- package/splitter/splitteritem.d.ts +0 -1
- package/switchbutton/switchbutton.d.ts +0 -1
- package/switchbutton/switchbutton.esm.js +15 -9
- package/switchbutton/switchbutton.umd.js +4 -2
- package/table/pivottable.d.ts +0 -1
- package/table/sortable.d.ts +0 -1
- package/table/table.d.ts +0 -1
- package/table/table.esm.js +15 -9
- package/table/table.umd.js +4 -2
- package/tabs/tabs.d.ts +0 -1
- package/tabs/tabs.esm.js +23 -11
- package/tabs/tabs.umd.js +12 -4
- package/tabs/tabswindow.d.ts +0 -1
- package/tabswindow/tabswindow.d.ts +0 -1
- package/tabswindow/tabswindow.esm.js +15 -9
- package/tabswindow/tabswindow.umd.js +4 -2
- package/tank/tank.d.ts +0 -1
- package/tank/tank.esm.js +15 -9
- package/tank/tank.umd.js +4 -2
- package/textarea/textarea.d.ts +0 -1
- package/textarea/textarea.esm.js +15 -9
- package/textarea/textarea.umd.js +4 -2
- package/textbox/maskedtextbox.d.ts +0 -1
- package/textbox/multilinetextbox.d.ts +0 -1
- package/textbox/numerictextbox.d.ts +0 -1
- package/textbox/passwordtextbox.d.ts +0 -1
- package/textbox/textbox.d.ts +0 -1
- package/textbox/textbox.esm.js +23 -11
- package/textbox/textbox.umd.js +12 -4
- package/threedchart/threedchart.d.ts +0 -1
- package/threedchart/threedchart.esm.js +15 -9
- package/threedchart/threedchart.umd.js +4 -2
- package/timeinput/timeinput.d.ts +0 -1
- package/timeinput/timeinput.esm.js +15 -9
- package/timeinput/timeinput.umd.js +4 -2
- package/timepicker/datetimepicker.d.ts +0 -1
- package/timepicker/timepicker.d.ts +0 -1
- package/timepicker/timepicker.esm.js +15 -9
- package/timepicker/timepicker.umd.js +4 -2
- package/toast/toast.d.ts +0 -1
- package/toast/toast.esm.js +15 -9
- package/toast/toast.umd.js +4 -2
- package/tooltip/tooltip.d.ts +0 -1
- package/tooltip/tooltip.esm.js +15 -9
- package/tooltip/tooltip.umd.js +4 -2
- package/tree/tree.d.ts +0 -1
- package/tree/tree.esm.js +23 -11
- package/tree/tree.umd.js +12 -4
- package/tree/treeitem.d.ts +0 -1
- package/tree/treeitemsgroup.d.ts +0 -1
- package/validator/validator.d.ts +0 -1
- package/validator/validator.esm.js +15 -9
- package/validator/validator.umd.js +4 -2
- package/waitwindow/waitwindow.d.ts +0 -1
- package/waitwindow/waitwindow.esm.js +15 -9
- package/waitwindow/waitwindow.umd.js +4 -2
- package/window/alertwindow.d.ts +0 -1
- package/window/dialogwindow.d.ts +0 -1
- package/window/multilinewindow.d.ts +0 -1
- package/window/progresswindow.d.ts +0 -1
- package/window/promptwindow.d.ts +0 -1
- package/window/tabswindow.d.ts +0 -1
- package/window/waitwindow.d.ts +0 -1
- package/window/window.d.ts +0 -1
- package/window/window.esm.js +15 -9
- package/window/window.umd.js +4 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
|
-
/* Smart UI v17.0.
|
|
2
|
+
/* Smart UI v17.0.17 (2023-11-08)
|
|
3
3
|
Copyright (c) 2011-2023 jQWidgets.
|
|
4
4
|
License: https://htmlelements.com/license/ */ //
|
|
5
5
|
|
|
6
|
-
Smart.Utilities.Assign("Grid.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}_dragDialog(e,t){const a=this,i=a._dialogDragDetails.dialog;if(!e||i.pinned||i.maximized)return;if(!a._dialogDragDetails.started)return;let l,n;l=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+l,s-i.offsetWidth)),i.style.left=a._dialogDragDetails.windowX+"px";break;case"vertical":a._dialogDragDetails.windowY=Math.max(0,Math.min(a._dialogDragDetails.windowY+n,o-i.offsetHeight)),i.style.top=a._dialogDragDetails.windowY+"px";break;case"both":a._dialogDragDetails.windowX=Math.max(0,Math.min(a._dialogDragDetails.windowX+l,s-i.offsetWidth)),a._dialogDragDetails.windowY=Math.max(0,Math.min(a._dialogDragDetails.windowY+n,o-i.offsetHeight)),i.style.left=a._dialogDragDetails.windowX+"px",i.style.top=a._dialogDragDetails.windowY+"px"}a._dialogDragDetails.top=i.offsetTop,a._dialogDragDetails.left=i.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-i.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-i.offsetTop)+a._dialogDragDetails.offsetY,e.pageY))}_updateDialogDragDetails(e,t,a){const i=this;if(i._windowParent={initialParent:t.parentElement,element:document.documentElement,scrollElement:document.scrollingElement},i._dialogDragDetails||(i._dialogDragDetails={}),void 0===i._dialogDragDetails.minWidth||void 0===i._dialogDragDetails.minHeight||void 0===i._dialogDragDetails.maxWidth||void 0===i._dialogDragDetails.maxHeight){const e=getComputedStyle(t);i._dialogDragDetails.minWidth=parseFloat(e.getPropertyValue("min-width"))||0,i._dialogDragDetails.minHeight=parseFloat(e.getPropertyValue("min-height"))||0,i._dialogDragDetails.maxWidth=parseFloat(e.getPropertyValue("max-width"))||0,i._dialogDragDetails.maxHeight=parseFloat(e.getPropertyValue("max-height"))||0}i._dialogDragDetails.dialog=t,i._dialogDragDetails.windowX=t.offsetLeft,i._dialogDragDetails.windowY=t.offsetTop;const l=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;i._windowParent.offsetLeft=n.left+o,i._windowParent.offsetTop=n.top+s,a&&"object"==typeof a&&(i._dialogDragDetails.offsetX=a.clientX-l.left,i._dialogDragDetails.offsetY=a.clientY-l.top),t.collapsed||(i.hasAnimation&&"minimize"===e?(i._dialogDragDetails.width=i._dialogDragDetails.width?i._dialogDragDetails.width:t.offsetWidth,i._dialogDragDetails.height=i._dialogDragDetails.height?i._dialogDragDetails.height:t.offsetHeight):(i._dialogDragDetails.width=t.offsetWidth,i._dialogDragDetails.height=t.offsetHeight),(t.style.width||t.style.height)&&(i._dialogDragDetails.resized=!0)),"minimize"!==e&&e&&(i._dialogDragDetails.type=e,i._dialogDragDetails.started=!0,i._dialogDragDetails.snapWindowWidth=t.offsetWidth,i._dialogDragDetails.snapWindowHeight=t.offsetHeight,a&&"object"==typeof a?(i._dialogDragDetails.x=a.pageX,i._dialogDragDetails.y=a.pageY):(i._dialogDragDetails.x=t.offsetLeft,i._dialogDragDetails.y=t.offsetTop))}_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("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.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,i=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=i,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 i=document.createElement("div");return i.classList.add("smart-grid-dialog-overlay"),i.onclick=function(){a.overlayClick&&a.overlayClick()},a.overlay=i,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(i,l){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===i&&(i=e.left),void 0===l&&(l=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,i){const l=t.offset(t);switch("center"===e&&"horizontal"===i&&(e="middle"),e){case"top":return l.top;case"bottom":return Math.max(l.top,l.top+t.offsetHeight-a.offsetHeight);case"center":return Math.max(l.top,l.top+t.offsetHeight/2-a.offsetHeight/2);case"left":return l.left;case"middle":return l.left+t.offsetWidth/2-a.offsetWidth/2;case"right":return l.left+t.offsetWidth-a.offsetWidth}return"horizontal"===i?parseInt(e)+l.left:"vertical"===i?parseInt(e)+l.top:"number"==typeof e?e:parseInt(e)};a.style.left=n(i,"horizontal")+"px",a.style.top=n(l,"vertical")+"px",a.setPosition=(e,t)=>{t?a.style.left=n(e,"horizontal")+"px":a.style.top=n(e,"vertical")+"px"},"center"===i&&parseInt(a.style.left)<0&&(a.style.left="5%",a.style.maxWidth="90%"),"screenMiddle"===i&&(a.style.left="calc(50% - "+a.offsetWidth/2+"px)"),"screenCenter"===l&&(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 i=a._dialogAddRow||a._createDialog(),l="{{message}}"===a.editing.dialog.header?a.localize("dialogAddHeader"):a.editing.dialog.header,n=i.content;i.header.innerHTML=l,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){i.modal=!0,i.btnConfirm.innerHTML=a.localize("dialogAddButtonConfirm"),i.btnCancel.innerHTML=a.localize("dialogAddButtonCancel"),i.onOpen=function(){a.editing.dialog.visible=!0},i.onClose=function(){a.editing.dialog.visible=!1},i.btnCancel.onclick=function(){i.close()},i.btnClose.onclick=function(){i.close()},i.btnConfirm.onclick=function(){const e={};for(let t=0;t<o.length;t++){const i=o[t],l=a._getEditorValue(i),n=a._getEditorId(i),s=a._cellEditors[n];s&&(l&&l.error?(e[i.column.dataField]=l.value,s.detach()):(e[i.column.dataField]=l,s.detach()))}const l=a._rowsAdded?a._rowsAdded.length:0,n=new Smart.Grid.Row({index:a.rows.length+l,id:Smart.Utilities.Core.createGUID(),grid:a,data:e});i.close(),t(n,0===i.index)},i.onkeydown=function(e){const t=e.key;"Enter"===t?i.btnConfirm.onclick():"Escape"===t&&i.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 i=document.createElement("div");i.classList.add("col-sm-6");const l=document.createElement("div");l.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),i.appendChild(l),s.appendChild(i),l.appendChild(o),l.appendChild(d),r++}}i.open(),i.index=e.index;let d=0;for(let e=0;e<o.length;e++){const t=o[e],l=t.column,n=l.dataField,s=i.querySelector("[editor="+n+"]");if(!s)continue;s.innerHTML="";let r="";void 0!==t.value&&(r=t.value),"int64"!==l.dataType&&"number"!==l.dataType&&"int"!==l.dataType&&"float"!==l.dataType||(r=0),"date"===l.dataType&&(r=new Date),"bool"!==l.dataType&&"boolean"!==l.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,i="custom"===t.editor.template?t.editor.instance.element.firstElementChild:t.editor.instance.element;for(let e in a)i[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,i="custom"===t.editor.template?t.editor.instance.element.firstElementChild:t.editor.instance.element;for(let e in a)i[e]=a[e]}}s.appendChild(c.element),c.element.onfocus=()=>{s.setAttribute("focus","")},c.element.onblur=()=>{s.removeAttribute("focus")},d++}a._dialogAddRow=i}_openEditDialog(e,t){const a=this;if(!a.editing.dialog.enabled)return!1;const i=a._dialogEdit||a._createDialog();let l="{{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=i.content;!1===a.editing.enabled?(i.classList.add("disable-edit"),l="{{message}}"===a.editing.dialog.header?a.localize("dialogEditHeaderDisabled",{value:a.editing.editRow?e.row.visibleIndex+1:e.column.label}):a.editing.dialog.header):i.classList.remove("disable-edit"),i.header.innerHTML=l,i.footer.classList.add("smart-hidden"),i.row=a.editing.editRow;const o=i.row.canNotify;i.row.canNotify=!1,i.row.showDetail=!1,i.row.canNotify=o,i.overlayClick=()=>{i.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>`;i.header.innerHTML=e+"<span>"+l+"</span>",i.btnPrev=i.querySelector(".smart-prev-button"),i.btnNext=i.querySelector(".smart-next-button"),i.header.style.display="flex",i.header.style.alignItems="center",a.editing.enabled?(i.btnDelete.classList.remove("smart-hidden"),i.btnComments.classList.remove("smart-hidden"),i.btnLink.classList.remove("smart-hidden"),i.btnDelete.classList.remove("smart-visibility-hidden"),i.btnComments.classList.remove("smart-visibility-hidden"),i.btnLink.classList.remove("smart-visibility-hidden"),0===a.users.length||a.users.length&&"guest"===a._currentUser.info?(i.btnLink.classList.add("smart-visibility-hidden"),i.btnDelete.classList.add("smart-visibility-hidden"),i.btnComments.classList.add("smart-visibility-hidden")):(i.btnLink.classList.remove("smart-visibility-hidden"),i.btnDelete.classList.remove("smart-visibility-hidden"),i.btnComments.classList.remove("smart-visibility-hidden"))):i.btnLink.style.width=i.btnDelete.style.width=i.btnComments.style.width="0px";const t=e=>{const t=a.editing.editRow,l=a._recyclingRows.indexOf(t);let o=e?a._recyclingRows[l+1]:a._recyclingRows[l-1];if(a.grouping.enabled&&a.dataSource.groupBy&&a.dataSource.groupBy.length>0){let t=1;for(;o&&!o.leaf;)o=e?a._recyclingRows[l+t]:a._recyclingRows[l-t],t++}const s=t;if(void 0!==a._settingsDialogRowId&&a.editing.dialog.autoSave){const e=a.rowById[a._settingsDialogRowId];e&&(i.saveRowData(e,!1),a._disableEndEdit=!0,a._recycle(!1,!0),a._disableEndEdit=!1)}if(o){a.editing.recordNavigation=!0,a.editing.editRow=o,a._settingsDialogRowId=o.id,s.isEditing=!1,s.element.removeAttribute("edit");const e=o,t=s.cells,l=e.cells;"kanban"===a.view&&a._kanban&&a._kanban.selectTask(e.id),i.row=o,i.header.querySelector("span").innerHTML=a.localize("dialogEditHeader",{value:a.editing.editRow.visibleIndex+1}),e.element.row.data.$.id===e.data.$.id&&e.element.setAttribute("edit","");for(let a=0;a<l.length;a++){const i=l[a],n=i.column;if(!n.allowEdit||!1===n._visible)continue;i.isEditing=!0,t[a].isEditing=!1;const o=e.data[n.dataField];i.editor&&i.editor.instance&&i.editor.instance.setValue(o)}a._applySettingsDialogLayout(i,n,a.editing.editRow,!0),a.editing.enabled&&setTimeout((()=>{const e=i.querySelector(".smart-grid-dialog-editor input");e&&e.focus()}),100)}};i.btnNext.onmousedown=e=>{t(!0),e.preventDefault(),e.stopPropagation()},i.btnPrev.onmousedown=e=>{t(!1),e.preventDefault(),e.stopPropagation()}}if(!a._dialogEdit){i.modal=!0,i.btnConfirm.innerHTML=a.localize("dialogEditButtonConfirm"),i.btnCancel.innerHTML=a.localize("dialogEditButtonCancel"),i.onOpen=function(){a.editing.dialog.visible||(a.editing.dialog.visible=!0,void 0!==a._settingsDialogRowId&&i.editorsContent&&i.editorsContent.offsetHeight&&(i.editorsContent.style.maxHeight=i.editorsContent.offsetHeight+40+"px",i.editorsContent.offsetHeight>a.offsetHeight||i.editorsContent.offsetWidth>a.offsetWidth||i.editorsContent.offsetHeight>window.innerHeight||i.editorsContent.offsetWidth>window.innerWidth?setTimeout((()=>{const e=a.offset(a);i.style.left=e.left+"px",i.style.top=e.top+"px",i.style.width=i.style.minWidth=a.offsetWidth+"px",i.style.height=i.style.minHeight=a.offsetHeight+"px",i.editorsContent.style.maxHeight=""})):(i.style.width=i.style.minWidth="",i.style.height=i.style.minHeight=""),a.editing.enabled&&setTimeout((()=>{const e=i.querySelector(".smart-grid-dialog-editor input");e&&e.focus()}),100)))},i.onClose=function(){a.editing.dialog.visible=!1,i.row&&(i.row.showDetail=!1)},i.btnCancel.onclick=function(){a.editing.isEditing=!0,a.cancelEdit()},i.btnClose.onclick=function(){a.editing.isEditing=!0,a.cancelEdit()};const t=(e,t=!0)=>{if(!e)return!1;const l=e.cells;let n={};e.element.removeAttribute("error");for(let e=0;e<l.length;e++){const t=l[e],i=a._getEditorValue(t);n[t.column.dataField]=i}const o=a.validateRow(e.id,n);if(Object.keys(o).length>0){let e=!0;for(let t=0;t<l.length;t++){const n=l[t],s=o[n.column.dataField],r=i.querySelector(`[label-for="${n.column.dataField}"]`);if(r&&(r.innerHTML=""),s)for(let t in s){const i=s[t];let l="";if(!i)continue;let o=i[t];"minLength"!==t&&"maxLength"!==t||(o=i[t.toLowerCase()]),l=i.message?i.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=l)}}if(!e)return!1}const s=e.style;e.updatedDate=new Date,e.updatedBy=a.currentUser,e.style=i._rowStyle,e.comments=i._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=i._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<l.length;t++){const i=l[t],n=a._getEditorValue(i),o=i.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(i.saveRowData=t,i.btnConfirm.onclick=function(){if(void 0!==a._settingsDialogRowId){const e=a.rowById[a._settingsDialogRowId];let l=!0;if(e&&(l=t(e)),!l)return;if(i.columnVisibility){let e=!1;const t=a.columns.canNotify;a.columns.canNotify=!1;for(let t in i.columnVisibility){const l=a.columnByDataField[t];l.visible!==i.columnVisibility[t]&&(l.visible=i.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())},i.onkeydown=function(e){const t=e.key,i=a.editing.commandKeys;for(let e in i){const l=i[e];if(t===l.key){a._applyCommand(l.command);break}}},a.editing.editRow)if(void 0!==a._settingsDialogRowId)a._applySettingsDialogLayout(i,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 i=document.createElement("div");i.classList.add("col-sm-6");const l=document.createElement("div");l.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),i.appendChild(l),d.appendChild(i),l.appendChild(o),l.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||i.open(s,r),a.editing.editRow){const a=i.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,l=i.querySelector("[editor]");l.innerHTML="",l.setAttribute("template",a.editor.template),l.appendChild(t.element),l.editor=t,l.editorValue=t.getValue(),t.element.onfocus=()=>{l.setAttribute("focus",""),l.setAttribute("touched",""),l.editorValue=t.getValue()},t.element.onblur=()=>{l.removeAttribute("focus"),l.editorValue!==t.getValue()&&l.setAttribute("pending","")}}a._dialogEdit=i}_refreshCurrentUser(){const e=this,t=e.users;let a=e.currentUser,i=!0,l=!0,n=e.editing.enabled,o=!0;t&&null!==a&&(a=t.find((e=>e.id===a)),a&&(i=!1!==a.allowAdd,l=!1!==a.allowComment,n=n&&!1!==a.allowEdit,o=!1!==a.allowRemove)),t&&t.length&&(null!==e.currentUser&&!1!==e.currentUser||(i=!1,l=!1,n=!1,o=!1,a="guest")),e._currentUser={allowAdd:i,allowComment:l,allowEdit:n,allowRemove:o,info:a}}_getColorInput(){const e=document.createElement("smart-color-input");return e.dataSource=["#D50000","#E67C73","#F4511E","#F6BF26","#33B679","#0B8043","#039BE5","#3F51B5","#7986CB","#8E24AA","#616161","#FFFFFF","#000000",""],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,i){const l=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));i&&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");i?(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")),(0===l.users.length||l.users.length&&"guest"===l._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>${l.localize("dialogEditButtonSave")}</span>`,m.classList.add("primary");const p=document.createElement("smart-button");p.innerHTML=`<span>${l.localize("dialogEditButtonCancel")}</span>`;const g=document.createElement("div");g.classList.add("smart-flex"),g.style.flexDirection="row-reverse",g.appendChild(m),g.appendChild(p),u.appendChild(g);const b=document.createElement("div");b.classList.add("smart-flex"),b.style.alignItems="center",b.innerHTML=`<label style="margin-right: 5px;">${l.localize("dialogEditButtonAutoSave")}</label>\n <label title="${l.localize("dialogEditButtonAutoSave")}" class="smart-switch">\n <input type="checkbox">\n <span class="slider round"></span>\n </label>`,u.appendChild(b),l.users&&l.users.length&&(!1!==l.currentUser&&null!==l.currentUser&&void 0!==l.currentUser||u.classList.add("smart-hidden"));const f=b.querySelector("input");f.onchange=()=>{l.editing.dialog.autoSave=f.checked},l._currentUser.info&&!l._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===l.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<l.columns.length;e++){const t=l.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>${l.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>${l.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>${l.localize("detailsTab")}</div></div>\n </div>\n <div class="smart-hidden details-tab">\n <div class="smart-grid-edit-dialog-row"><div class="column"><div class="header smart-grid-edit-dialog-column-info">${l.localize("format").replace(":","")}\n <span title="${l.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="${l.localize("background")}" class="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="${l.localize("color")}" class="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="${l.localize("bold")}" class="formatbtn bold smart-grid-icon smart-icon-bold show"></span>\n <span title="${l.localize("italic")}" class="formatbtn italic smart-grid-icon smart-icon-italic show"></span>\n <span title="${l.localize("underline")}" class="formatbtn underline smart-grid-icon smart-icon-underline show"></span>\n </div>\n </div>\n <div class="format-layout font-group">\n <div title="${l.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 title="${l.localize("fontSize").replace(":","")}" class="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 font-group">\n <div title="${l.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">${l.localize("comments").replace(":","")}</div></div>\n <div class="comments-layout">\n <div class="comments"><span class="no-comments"><span>${l.localize("noComments")}</span></span></div>\n <div class="footer">\n <smart-text-area hint="${l.localize("comment")}" placeholder="${l.localize("commentPlaceholder")}" class="smart-text-area success underlined"></smart-text-area>\n <smart-button class="success">${l.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");l.storeHistory&&(!l._currentUser||l._currentUser&&!l._currentUser.info?S[S.length-1].classList.add("smart-hidden"):S[S.length-1].classList.remove("smart-hidden")),!l.users||l.users&&0===l.users.length||!l._currentUser||l._currentUser&&!l._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"),i=y.querySelector(".comments-tab"),n=y.querySelector(".history-tab");a.classList.add("smart-hidden"),i.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":i.classList.remove("smart-hidden");break;case"history":n.classList.remove("smart-hidden"),l._refreshHistory()}}};const w=l._getColorInput();y.querySelector(".background").appendChild(w),w.onchange=()=>{n.background=w.value},n.background&&(w.value=n.background);const _=l._getColorInput();y.querySelector(".color").appendChild(_),_.onchange=()=>{n.color=_.value},n.color&&(_.value=n.color);const D=l._getColorInput();y.querySelector(".status").appendChild(D),D.onchange=()=>{n.status=D.value},n.status&&(D.value=n.status);const L=document.createElement("smart-input");L.style.width="auto",L.classList.add("underlined"),L.dropDownButtonPosition="right",L.readonly=!0,L.dropDownHeight="auto",L.dataSource=["-","Segoe UI","Arial","Georgia","Impact","Tahoma","Times New Roman","Verdana"],L.onchange=()=>{n.fontFamily=L.value},n.fontFamily?L.value=n.fontFamily:L.selectedIndex=0,y.querySelector(".font-family").appendChild(L);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=["-","8px","10px","12px","14px","18px","24px","36px"],x.onchange=()=>{n.fontSize=x.value},n.fontSize?x.value=n.fontSize:x.selectedIndex=0,y.querySelector(".font-size").appendChild(x);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)},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");L.selectedIndex=0,x.selectedIndex=0,_.value="",w.value="",D.value="",n.fontWeight=null,n.fontStyle=null,n.textDecoration=null,n.fontSize=null,n.fontFamily=null};const A=y.querySelector(".comments-header"),T=y.querySelector('[view="comments"]'),F=y.querySelector(".comments-layout smart-text-area"),z=y.querySelector(".comments-layout smart-button"),E=y.querySelector(".comments-layout .footer"),I=y.querySelector(".comments-layout .comments");F.users=l.users,z.disabled=!0,I.innerHTML=`<span class="no-comments"><span>${l.localize("noComments")}</span></span>`;const M=()=>{const e=I.querySelector(".no-comments");0===o.length?e.classList.remove("smart-hidden"):e.classList.add("smart-hidden")},H=()=>{l._commentEditing&&(l._commentEditing.parentNode&&l._commentEditing.parentNode.removeChild(l._commentEditing),delete l._commentEditing)};H();const R=e=>{const t=e.querySelector(".remove-button");H(),t.onclick=e=>{const t=e.target,i=o.indexOf(t.comment);if(H(),i>-1){const e=o[i];o.splice(i,1),l.$.fireEvent("commentRemove",{id:a.id,value:e}),l.onComment&&l.onComment(a.id,o),t.element.remove();const n=o.length?"("+o.length+")":"";A.innerHTML=T.lastElementChild.lastElementChild.innerHTML=`${l.localize("comments").replace(":","")} <span>${n}</span>`,M()}}},N=e=>{const t=e.querySelector(".edit-button");H();const a=e.querySelector(".comment-body");t.onclick=t=>{H();const a=t.target,i=o.indexOf(a.comment);if(!l._commentEditing&&i>-1){const t=o[i];let n=!1;if(l._currentUser.info&&t.userId===l._currentUser.info.id&&l._currentUser.allowComment&&(n=!0),!n)return;const s=document.createElement("smart-text-area");s.users=l.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 i=l._createComment(t);a.element.parentNode===I&&(I.insertBefore(i,a.element),a.element.parentNode.removeChild(a.element),delete l._commentEditing),R(i),N(i)},s.focus(),l._commentEditing=s}},a.ondblclick=e=>{t.click()}};for(let e=0;e<o.length;e++){const t=o[e],a=l._createComment(t);R(a),N(a),I.appendChild(a)}if(setTimeout((()=>{I.scrollTop=I.scrollHeight}),200),l._commentUpdateInterval=setInterval((()=>{e.classList.contains("open")?l._commentEditing:clearInterval(l._commentUpdateInterval)}),5e3),A.innerHTML=`${l.localize("comments").replace(":","")} ${C}`,M(),F.onfocus=()=>{E.classList.add("focus")},F.onblur=()=>{E.classList.remove("focus")},F.onkeyup=()=>{z.disabled=""===F.value},z.onclick=t=>{if(""===F.value)return;l._refreshCurrentUser();const i={text:F.value,id:function(){const e=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return e()+e()}(),userId:l._currentUser.info?l._currentUser.info.id:-1,time:new Date},n=l._createComment(i);if(!n)return t.preventDefault(),void t.stopPropagation();R(n),N(n),o.push(i),l.$.fireEvent("commentAdd",{id:a.id,value:i}),l.onComment&&l.onComment(a.id,o),F.value="",z.disabled=!0,M(),I.appendChild(n),(()=>{const t=e._rowComments;if(H(),I.innerHTML=`<span class="no-comments"><span>${l.localize("noComments")}</span></span>`,M(),e.classList.contains("open"))for(let e=0;e<t.length;e++){const a=t[e],i=l._createComment(a);R(i),N(i),I.appendChild(i)}else clearInterval(l._commentUpdateInterval)})(),F.focus();const s=o.length?"("+o.length+")":"";A.innerHTML=T.lastElementChild.lastElementChild.innerHTML=`${l.localize("comments").replace(":","")} <span>${s}</span>`,I.scrollTop=I.scrollHeight,t.preventDefault(),t.stopPropagation()},!i)for(let e=0;e<l.columns.length;e++){const t=l.columns[e];if(!t.allowEdit||!1===t._visible)continue;const a=document.createElement("div");a.classList.add("smart-grid-edit-dialog-row"),r.appendChild(a),"textarea"!==t.editor.template&&"input"!==t.editor.template||(a.style.gridColumn="span 2",a.previousElementSibling&&!a.previousElementSibling.style.gridColumn&&e<l.columns.length-1&&(a.previousElementSibling.style.gridColumn="span 2"));const i=document.createElement("div"),n=l._settingsDialogRowId?document.createElement("div"):document.createElement("label"),o=t.validationRules&&t.validationRules.length>0?"*":"";n.innerHTML=`<div class="smart-grid-edit-dialog-column-info"><span class="smart-grid-icon ${l.columns[e].icon} show"></span><label>`+l.columns[e].label+o+'</label><span toggle class="smart-grid-icon smart-icon-visibility-on show"</div>';const d=document.createElement("div");d.classList.add("smart-grid-dialog-editor"),d.setAttribute("editor",t.dataField),d.setAttribute("template",t.editor.template);const c=n.querySelector("[toggle]");c.column=t,s[t.dataField]=t.visible,c.title=l.localize("columnMenuItemHide"),!1===l.editing.enabled&&c.classList.add("smart-visibility-hidden"),c.onclick=()=>{s[c.column.dataField]=!c.column.visible,c.classList.contains("smart-icon-visibility-on")?(c.classList.remove("smart-icon-visibility-on"),c.classList.add("smart-icon-visibility-off"),c.title=l.localize("columnMenuItemShow")):(c.classList.add("smart-icon-visibility-on"),c.classList.remove("smart-icon-visibility-off"),c.title=l.localize("columnMenuItemHide"))},t.visible||(c.classList.remove("smart-icon-visibility-on"),c.title=l.localize("columnMenuItemShow")),t.visible?c.classList.add("smart-icon-visibility-on"):c.classList.add("smart-icon-visibility-off"),i.appendChild(n),i.appendChild(d);const u=document.createElement("label");u.classList.add("smart-field-editor-error-label"),u.setAttribute("label-for",t.dataField),i.appendChild(u),a.appendChild(i)}}_getDateFormat(e){const t=new Smart.Utilities.DateTime(e),a=((new Date).getTime()-e.getTime())/1e3,i=Math.floor(Math.abs(a));if(""===this.locale||"en"===this.locale)return 0===i?"now":i<60?i+"s ago":i<3600?Math.floor(i/60)+"m ago":i<86400?Math.floor(i/3600)+"h ago":t.toString("dd/MM/yyyy hh:mm");dateString=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 i=t.row.history;if(!i)return;let l="\n ";for(let t=0;t<i.length;t++){const a=i[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>"})}l+='<div class="history-row">';const o=t=>{const a=t?t.image:null;let i=t?t.name||t.id:e.localize("guestUser");const l=a?"image":"",n=a?`background-image: url('${a}');`:"";return e._currentUser.info&&t.id===e._currentUser.info.id&&(""!==e.locale&&"en"!==e.locale||(i="You")),{image:n,label:i,cssClass:l}};let s="";if(void 0!==a.user){const t=o(e.users.find((e=>e.id===a.user)));l+=`<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 l+='<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(l+='<div class="history-main">',l+=s,l+=`<div class="history-body"><div class="title">${n}</div>`,"created"!==a.action){let t=a.details.oldValue,i=a.details.value;if("user"===a.action){const a=e.users.find((e=>e.id===t||e.id===parseFloat(t))),l=e.users.find((e=>e.id===i||e.id===parseFloat(i)));a?t=a.name:(t="",t||(t=e.localize("unassigned"))),l?i=l.name:(i="",i||(i=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?l+=`<span class="detail">${e._kanban.localize("taskSubtasksCompleted",{value:t.length+"/"+a.details.value.length})}</span>`:l+=`<span class="detail">${e.localize("completed",{value:t.length})}</span>`}else{t&&"object"==typeof t&&t instanceof Date&&(t=e._getDateFormat(t)),i&&"object"==typeof i&&i instanceof Date&&(i=e._getDateFormat(i));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===i&&(i=a.label)}t||(t=e.localize("unassigned")),i||(i=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))),i&&"string"==typeof i&&(i=e._getDateFormat(new Date(i)))):(t&&"string"==typeof t&&(t=e._fromHTMLEntities(t)),i&&"string"==typeof i&&(i=e._fromHTMLEntities(i))),l+=t?`<div class="detail">${e.localize("range",{column:o,oldValue:"<i>"+t+"</i>",newValue:"<i>"+i+"</i>"})}</div>`:`<div class="detail">${e.localize("nullRange",{column:o,oldValue:"<i>"+t+"</i>",newValue:"<i>"+i+"</i>"})}</div>`}}else l+=`<div>${a.details.value}</div>`;l+="",l+="</div>",l+="</div>\n </div>"}l+="",a.innerHTML=l,setTimeout((()=>{a.scrollTop=a.scrollHeight}))}_createComment(e){const t=this,a=t.users.find((t=>t.id===e.userId));if(!a)return;const i=document.createElement("div"),l=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,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/"/g,"""):"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)}}i.className="comment",i.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,i=Math.floor(Math.abs(a));r=""!==t.locale&&"en"!==t.locale?r.toString("dd/MM/yyyy hh:mm"):0===i?"now":i<60?i+"s ago":i<3600?Math.floor(i/60)+"m ago":i<86400?Math.floor(i/3600)+"h ago":r.toString("dd/MM/yyyy hh:mm")}if(i.innerHTML=`<div class="comment-indent" role="presentation">\n<div class="user-icon smart-icon" role="img" aria-label="Icon of user ${l}"></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=i.querySelector(".user-icon");e.style.backgroundImage=`url('${n}')`,e.classList.add("image")}i.comment=e;const d=i.querySelector(".remove-button");d.comment=e,d.element=i,e.userId!==t._currentUser.info.id&&d.classList.add("smart-visibility-hidden");const c=i.querySelector(".edit-button");return c.comment=e,c.element=i,e.userId!==t._currentUser.info.id&&c.classList.add("smart-visibility-hidden"),i}_openSummaryRowDialog(e){const t=this,a=t._summaryRowDialog||t._createDialog(),i="{{message}}"===t.editing.dialog.header?t.localize("summary"):t.editing.dialog.header;if(a.header.innerHTML=i,!a.listBox){const e=document.createElement("smart-list-box");e.selectionMode="checkBox",e.style.borderColor="transparent",a.content.innerHTML="",a.listBox=e}const l=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"}],l.dataSource=o,l.style.position="absolute",l.style.visibility="hidden",l.style.height="auto",t.isInShadowDOM?t.getRootNode().appendChild(l):document.body.appendChild(l);const s=e.column;s.summary&&s.summary.forEach((e=>{l.select(e)}));const r=l.offsetHeight;a.column=s,a.content.appendChild(l),a.classList.add("smart-grid-dialog-summary"),a.header.parentElement.classList.add("smart-hidden"),a.footer.classList.add("smart-hidden"),l.style.visibility="",l.style.position="",l.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=l.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 i=this;delete i._dialogTextArea;const l=i._dialogTextArea||i._createDialog();if(l.header.innerHTML=e.label,l.column=e,l.classList.add("smart-grid-textarea-dialog"),l.style.minWidth="250px",l.style.minHeight="250px",l.style.zIndex=99999,l.textarea=t,"richText"!==e.template?l.initialValue=t.value:l.initialValue=t.getHTML(),l.cell=a,!i._dialogTextArea){l.modal=!0,l.btnConfirm.innerHTML=i.localize("dialogEditButtonSave"),l.btnCancel.innerHTML=i.localize("dialogEditButtonCancel"),l.onOpen=function(){const t=l.querySelector("smart-text-area");t.value=l.textarea.value,t.onchange=t.oninput=()=>{setTimeout((()=>{"richText"===e.template?l.textarea.setHTML(t.getHTML()):l.textarea.value=t.value}))},i.editing.enabled&&setTimeout((()=>{t.focus()}),250)},l.onClose=function(){};const t=()=>{const e=document.querySelector(".smart-grid-text-area-dialog");e&&e.remove()};l.btnCancel.onclick=function(){if(l.close(),i.editing.dialog.enabled)return l.textarea.value=l.initialValue,void t();i.cancelEdit(),t()},l.btnClose.onclick=function(){if(l.close(),i.editing.dialog.enabled)return l.textarea.value=l.initialValue,void t();i.cancelEdit(),t()},l.btnConfirm.onclick=function(){if(l.close(),i.editing.dialog.enabled)return t(),void l.cell.editor.instance.setValue(l.textarea.value);l.cell.editor.instance.setValue(l.textarea.value),t(),i.endEdit()},l.onkeydown=function(e){"Escape"===e.key&&l.close()},i._dialogTextArea=l;const a=document.createElement("smart-text-area");a.classList.add("smart-text-area"),a.resize="both","richText"===e.template&&(a.richText=!0),a.users=i.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,l.input=a,l.content.appendChild(a)}const n=i.offset(t),o=i.offset(i);l.open(n.left-o.left+e.computedWidth,n.top-o.top),setTimeout((function(){if("auto"!==l.style.height){const e=l.input;e.style.width="450px",e.style.height="400px",l.style.height="auto",l.style.width="auto",e.resize="both"}if(l.offsetHeight+n.top-o.top>window.innerHeight&&(l.style.top=o.top+"px",l.style.left=o.left+"px",l.style.width=i.offsetWidth+"px",l.style.height=i.offsetHeight+"px",l.input.style.width=i.offsetWidth-20+"px",l.input.style.height=i.offsetHeight-20+"px",l.input.resize="none"),n.left-o.left+e.computedWidth+l.offsetWidth>window.innerWidth){let t=n.left-o.left+e.computedWidth-l.offsetWidth;l.style.left=Math.max(t,0)+"px"}l.btnConfirm.focus()}),100)}_openDescriptionDialog(e,t){const a=this,i=a._dialogDescription||a._createDialog(),l=a.localize("dialogDescriptionHeader",{value:e.label});if(i.header.innerHTML=l,i.column=e,i.command=t,i.classList.add("smart-grid-dialog-add-column"),!a._dialogDescription){i.modal=!0,i.btnConfirm.innerHTML=a.localize("dialogEditButtonConfirm"),i.btnCancel.innerHTML=a.localize("dialogEditButtonCancel"),i.onOpen=function(){const e=i.querySelector("smart-input");"duplicate"!==t&&setTimeout((()=>{e.select()}),250)},i.onClose=function(){},i.btnCancel.onclick=function(){i.close()},i.btnClose.onclick=function(){i.close()},i.btnConfirm.onclick=function(){const e=i.querySelector("smart-input");switch(i.command){case"duplicate":0===e.selectedIndex?a.duplicateCommand(i.column,null,!0):a.duplicateCommand(i.column,null,!1);break;case"rename":i.column.label=e.value;break;case"editDescription":i.column.description=e.value}i.close()},i.onkeydown=function(e){"Escape"===e.key&&i.close()},a._dialogDescription=i;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"}],i.content.appendChild(e)}const n=e.element,o=a.offset(n),s=a.offset(a);i.open(o.left-s.left,o.top+n.offsetHeight-s.top);const r=i.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(){i.btnConfirm.focus()}),100)}_openDeleteRowDialog(e,t){const a=this;if(!a.editing.deleteDialog.enabled)return!1;const i=a._dialogDelete||a._createDialog(),l="{{message}}"===a.editing.dialog.header?a.localize("dialogDeleteHeader",{value:e.visibleIndex+1}):a.editing.dialog.header;i.header.innerHTML=l,i.content.innerHTML=a.localize("dialogDeleteContent"),i.row=e,a._dialogDelete||(i.modal=!0,i.btnConfirm.innerHTML=a.localize("dialogDeleteButtonConfirm"),i.btnCancel.innerHTML=a.localize("dialogDeleteButtonCancel"),i.onOpen=function(){a.editing.dialog.visible=!0},i.onClose=function(){a.editing.dialog.visible=!1},i.btnCancel.onclick=function(){i.close()},i.btnClose.onclick=function(){i.close()},i.btnConfirm.onclick=function(){t(i.row),i.close()},i.onkeydown=function(e){"Escape"===e.key&&i.close()},a._dialogDelete=i),i.open(),setTimeout((function(){i.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:"image",prefix:'<span class="smart-grid-icon visible smart-icon-image"></span>',label:e.localize("dialogAddColumnTypeImage")},{value:"number",prefix:'<span class="smart-grid-icon visible smart-icon-number"></span>',label:e.localize("dialogAddColumnTypeNumber")},{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:"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")}];if(e.header.visible&&e.header.buttons.indexOf("views")>=0){const a={value:"progress",prefix:'<span class="smart-grid-icon visible smart-icon-number"></span>',label:e.localize("dialogAddColumnTypeProgress")},i={value:"priority",prefix:'<span class="smart-grid-icon visible smart-icon-sort-down"></span>',label:e.localize("dialogAddColumnTypePriority")},l={value:"status",prefix:'<span class="smart-grid-icon visible smart-icon-sort-down"></span>',label:e.localize("status")},n={value:"tags",prefix:'<span class="smart-grid-icon visible smart-icon-list-unordered"></span>',label:e.localize("dialogAddColumnTypeTags")},o={value:"checklist",prefix:'<span class="smart-grid-icon visible smart-icon-list-ordered"></span>',label:e.localize("dialogAddColumnTypeChecklist")},s={value:"color",prefix:'<span class="smart-grid-icon visible smart-icon-color-background"></span>',label:e.localize("dialogAddColumnTypeColor")};t.push(a),t.push(i),t.push(n),t.push(o),t.push(s),t.push(l)}return t}_getAddStackColumnDialogTemplate(){const e=this,t=[];let a=!1,i="";for(let l=0;l<e.columns.length;l++){const n=e.columns[l];(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,i=t[t.length-1].label))}const l=t.concat([{value:"blank",label:e.localize("kanbanNone")},{value:"basic",label:e.localize("kanbanBasic")}]);return a||(l[0].checked=!0,i=l[0].label),[{bind:"kanban",name:"kanban",type:"radio",label:2===l.length?e.localize("kanbanNoneDescription"):e.localize("kanbanDescription",{column:i}),filter:"kanban",options:l},{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:"description",type:"input",label:e.localize("dialogAddColumnDescription"),filter:"any",placeholder:e.localize("dialogAddColumnDescriptionPlaceholder"),info:e.localize("dialogAddColumnDescriptionInfo")},{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:"deadlineDueDate",name:"deadlineDueDate",type:"dropDownList",label:e.localize("dialogAddColumnTypeDueDate"),info:"",filter:"date",options:[]},{bind:"allowColorItems",type:"boolean",label:e.localize("dialogAddColumnColorItems"),filter:"list, collaborator",value:!0,info:""},{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:""},{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,i=e.querySelector('[bind="type"]'),l=i?i.querySelector("smart-input"):null,n=i?l.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"]'),i=e.querySelector('[field-name="defaultDateValue"]');if(!t)return a.classList.add("smart-hidden"),void i.classList.add("smart-hidden");a.classList.remove("smart-hidden"),"specific"===t?(i.classList.remove("smart-hidden"),i.style.width="50%",i.style.float="left",a.style.width="50%",a.style.float="left",a.style.clear="both"):(i.classList.add("smart-hidden"),i.style.width="",i.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"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 i=0;i<o.length;i++){const l=o[i],r=l.getAttribute("filter"),u=l.getAttribute("bind"),m=l.parentNode;if("deadlineStatus"!==u&&"deadlineDueDate"!==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||"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("allowEdit"!==u||!1!==t.editing.enabled&&"autoNumber"!==n&&"createdBy"!==n&&"updatedBy"!==n&&"createdTime"!==n&&"updatedTime"!==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"]'),i=e.querySelector('[field-name="unit"]'),l=e.querySelector('[field-name="currency"]'),n=a.querySelector("smart-input"),o=()=>{const e=n.getSelectedItem();l.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?i.classList.remove("smart-hidden"):e&&"currency"===e.value.style?l.classList.remove("smart-hidden"):i.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"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"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"]'),i=e.querySelector('[field-name="defaultDateValue"]'),l=t.querySelector(".smart-input"),n=i.querySelector(".smart-input");a&&a.defaultValue?"today"===a.defaultValue?(l.selectedValues=["current"],n.value=null):(l.selectedValues=["specific"],n.value=a.defaultValue):(l.selectedValues=["current"],n.value=null),d(l.selectedValue)}"date"===r&&m.classList.remove("smart-hidden");const i=t=>{const a=e.querySelector('[field-filter="time"]'),i=e.querySelector('[field-name="dateFormat"]');t?(a.classList.remove("smart-hidden"),i.style.width="50%",i.style.float="left"):(a.classList.add("smart-hidden"),i.style.width="",i.style.float="")},n=t=>{const a=e.querySelector('[field-name="allowTimeFormat"]'),i=a.querySelector(".smart-grid-dialog-editor");t.indexOf("T")>=0?(a.classList.add("smart-hidden"),i.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=l.querySelector(".smart-input").value;l.onchange=e=>{i(e)},i(e)}if("dateFormat"===u){const e=l.querySelector(".smart-input").value;l.onchange=e=>{n(e.detail.value)},n(e)}if("defaultDate"===u){const e=l.querySelector(".smart-input").value;l.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&&l.uncheck();const e=l.querySelector(".smart-input").value;l.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?l.classList.remove("smart-hidden"):l.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"]'),i=a?a.querySelector("smart-input"):null,l=a?i.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"===l||"dueDate"===l||"startDate"===l){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"===l||"slider"===l)o&&o.classList.remove("smart-hidden");else if("string"===l||"multiText"===l||"name"===l||"description"===l)s&&s.classList.remove("smart-hidden");else for(let e=0;e<c.length;e++)c[e].classList.remove("smart-hidden")};l.onchange=e=>{t(e)};const i=e.querySelector('[field-name="setDefaultValue"]'),o=!(!a||null===a.defaultValue||void 0===a.defaultValue)||i.value;t(o)}else m.classList.add("smart-hidden"),t.header.visible&&t.header.buttons.indexOf("views")>=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 i=this,l=e.editColumn,n=()=>{const e=a.deadline.parentElement.querySelector(".smart-input"),t=a.deadlineStatus.parentElement,i=a.deadlineDueDate.parentElement,l=t.querySelector("smart-input"),n=i.querySelector("smart-input");t.classList.add("smart-hidden"),i.classList.add("smart-hidden"),2===e.selectedIndex?i.classList.remove("smart-hidden"):1===e.selectedIndex&&t.classList.remove("smart-hidden"),l.dataSource&&0===l.dataSource.length&&t.classList.add("smart-hidden"),n.dataSource&&0===n.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");l&&l.editor?"dateInput"===l.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");l&&"richText"===l.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;l&&l.cellsFormat&&(l.cellsFormat.indexOf(".")>=0?(e.value=!0,e.setAttribute("checked",""),t=2):(l.cellsFormat.indexOf("M-d-yyyy")>=0||l.cellsFormat.indexOf("d-M-yyyy")>=0||l.cellsFormat.indexOf("yyyy/MM/dd")>=0)&&(e.value=!0,e.setAttribute("checked",""),t=1));const i=a.dateFormatSeparator.querySelectorAll(".smart-grid-dialog-boolean-field");i.forEach((e=>{e.value=!1,e.removeAttribute("checked")})),i[t].setAttribute("checked",""),i[t].click(),i[t].value=!0;break}case"kanban":{const t=s.querySelectorAll(".smart-grid-dialog-boolean-field");for(let a=0;a<t.length;a++){const l=t[a];l.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=i.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=i.localize("dialogNewColumn"),c()):n===t.length-2?(o.innerHTML=i.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=i.localize("dialogNewColumn"),c()):(o.innerHTML=i.localize("kanbanDescription",{column:l.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=l.label.innerHTML,d.querySelector(".smart-grid-dialog-editor").classList.add("smart-hidden"),c())}}break}case"dateFormat":l&&l.cellsFormat?l.cellsFormat.indexOf("M/d/yyyy")>=0?d.selectedIndex=0:l.cellsFormat.indexOf("dddd, MMMM dd, yyyy")>=0?d.selectedIndex=1:l.cellsFormat.indexOf("yyyy-MM-ddTHH:mm:ss.sssZ")>=0?d.selectedIndex=2:l.cellsFormat.indexOf("d/M/yyyy")>=0?d.selectedIndex=3:l.cellsFormat.indexOf("yyyy-MM-dd")>=0?d.selectedIndex=4:l.cellsFormat.indexOf("MMMM, dd, yyyy")>=0&&(d.selectedIndex=5):d.selectedIndex=0;break;case"timeFormat":l&&l.cellsFormat&&l.cellsFormat.indexOf("HH")>=0&&-1===l.cellsFormat.indexOf("T")?d.selectedIndex=1:d.selectedIndex=0;break;case"allowMultipleCollaborators":{let e=!1;l&&l.editor&&l.editor.singleSelect&&(e=!1);const t=s.querySelector(".smart-input");l&&e?(t.value=!0,t.setAttribute("checked","")):(t.value=!1,t.removeAttribute("checked"));break}case"allowThousandsSeparator":{const e=s.querySelector(".smart-input");l&&l.editor&&"numberInput"===l.editor.template&&"progress"!==l.template&&"rating"!==l.template?(e.value=!0,e.setAttribute("checked",""),l.editor.numberFormat&&("decimal"!==l.editor.numberFormat.style||l.editor.numberFormat.notation||l.editor.numberFormat.useGrouping||(e.value=!1,e.removeAttribute("checked")))):(e.value=!0,e.setAttribute("checked",""));break}case"numberFormat":if(l&&"numberInput"===l.editor.template&&l.editor.numberFormat)if("decimal"===l.editor.numberFormat.style&&0===l.editor.numberFormat.maximumFractionDigits)d.selectedIndex=0;else if("decimal"===l.editor.numberFormat.style&&2===l.editor.numberFormat.minimumFractionDigits)d.selectedIndex=1;else if("percent"===l.editor.numberFormat.style&&2===l.editor.numberFormat.minimumFractionDigits)d.selectedIndex=2;else if("percent"===l.editor.numberFormat.style&&0===l.editor.numberFormat.maximumFractionDigits)d.selectedIndex=3;else if("decimal"===l.editor.numberFormat.style&&"scientific"===l.editor.numberFormat.notation)d.selectedIndex=4;else if("decimal"===l.editor.numberFormat.style&&"engineering"===l.editor.numberFormat.notation)d.selectedIndex=5;else if("currency"===l.editor.numberFormat.style&&"accounting"===l.editor.numberFormat.currencySign)d.selectedIndex=6;else if("unit"===l.editor.numberFormat.style){d.selectedIndex=7;const e=l.editor.numberFormat.unit,t=a.unit.querySelector("smart-input");t.dataSource.forEach(((a,i)=>{if(a.value===e)return t.selectedIndex=i,!0}))}else"currency"===l.editor.numberFormat.style&&0===l.editor.numberFormat.maximumFractionDigits&&0===l.editor.numberFormat.minimumFractionDigits?d.selectedIndex=9:"currency"===l.editor.numberFormat.style&&(d.selectedIndex=8);else d.selectedIndex=0;break;case"currency":if(l&&"numberInput"===l.editor.template&&l.editor.numberFormat){if("currency"===l.editor.numberFormat.style){const e=i._getCurrencies().findIndex((e=>e.value===l.editor.numberFormat.currency));e>=0&&(d.selectedIndex=e)}}else d.selectedIndex=0;break;case"allowCheckItems":{const e=s.querySelector(".smart-input");l?l.editor&&!l.editor.pills?(e.value=!0,e.setAttribute("checked","")):!1===l[o]&&(e.value=!1,e.removeAttribute("checked")):(e.value=!0,e.setAttribute("checked",""));break}case"allowColorItems":{const e=s.querySelector(".smart-input");l?l.editor&&l.editor.colorItems?(e.value=!0,e.setAttribute("checked","")):!1===l[o]&&(e.value=!1,e.removeAttribute("checked")):(e.value=!0,e.setAttribute("checked",""));break}case"setDefaultValue":{const e=s.querySelector(".smart-input");l?(e.value=!1,e.removeAttribute("checked"),l&&void 0!==l.defaultValue&&(e.value=!0,e.setAttribute("checked",""))):(e.value=!1,e.removeAttribute("checked"));break}case"defaultString":{const e=s.querySelector("smart-input");l&&void 0!==l.defaultValue&&null!==l.defaultValue?e.value=l.defaultValue:e.value="";break}case"defaultNumber":{const e=s.querySelector("smart-number-input");l&&void 0!==l.defaultValue&&null!==l.defaultValue?e.value=l.defaultValue:e.value=0;break}case"deadline":{const e=s.querySelector(".smart-input");e.selectedIndex=0,e.onchange=()=>{n()},l&&l.editor&&(e.selectedIndex=0,l.editor.onValidate&&"dueDate"!==l.template&&(e.selectedIndex=2),"dueDate"===l.template&&(e.selectedIndex=1)),n();break}case"deadlineStatus":{const t=s.querySelector(".smart-input"),a=[];for(let e=0;e<i.columns.length;e++){const t=i.columns[e];t&&t.editor&&t.editor.dataSource&&t.editor.singleSelect&&a.push({label:t.label,value:t.dataField})}a.length?t.dataSource=[{label:i.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"deadlineDueDate":{const t=s.querySelector(".smart-input"),a=[];for(let e=0;e<i.columns.length;e++){const t=i.columns[e];t&&"dueDate"===t.template&&a.push({label:t.label,value:t.dataField})}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"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}));l?l[o]?(e.value=!0,e.setAttribute("checked","")):!1===l[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(!l||"options"!==o&&"users"!==o){const e=s.querySelector("smart-sortable");if(e&&e._init)if("users"===o){let t=[];for(let e=0;e<i.users.length;e++)t.push({color:i.users[e].color,label:i.users[e].name,id:i.users[e].id,value:i.users[e].id,image:i.users[e].image});e._init(t)}else e._init()}else{const e=s.querySelector("smart-sortable");if(e&&e._init)if(l.editor.singleSelect){const t=l.editor.dataSource.filter((e=>""!==e));e._init(t)}else if("multiComboInput"===l.editor.template)if("users"===o){let t=[];for(let e=0;e<i.users.length;e++)t.push({color:i.users[e].color,label:i.users[e].name,id:i.users[e].id,value:i.users[e].id,image:i.users[e].image});e._init(t)}else e._init(JSON.parse(JSON.stringify(l.editor.dataSource)))}if(l&&"type"===o?(d.dataSource=i._getTypesList(),"number"===l.dataType||"int"===l.dataType?d.dataSource.length>3&&(d.selectedIndex=3):"date"===l.dataType?d.dataSource.length>3&&(d.selectedIndex=7):"bool"!==l.dataType&&"boolean"!==l.dataType||d.dataSource.length>3&&(d.selectedIndex=6),l.editor&&l.editor.template&&d.dataSource.forEach(((e,t)=>{switch(e.value){case"string":"input"===l.editor.template&&(d.selectedIndex=t);break;case"number":"numberInput"===l.editor.template&&"progress"!==l.template&&"rating"!==l.template&&(d.selectedIndex=t);break;case"select":"multiComboInput"===l.editor.template&&l.editor.singleSelect&&"tags"===l.template&&(d.selectedIndex=t);break;case"multiSelect":"multiComboInput"!==l.editor.template||l.editor.singleSelect||"tags"!==l.template||(d.selectedIndex=t);break;case"multiText":"textarea"===l.editor.template&&(d.selectedIndex=t);break;case"date":"dateInput"!==l.editor.template&&"dateTimePicker"!==l.editor.template||(d.selectedIndex=t);break;case"duration":"dateRangeInput"===l.editor.template&&(d.selectedIndex=t);break;case"checkBox":"checkBox"===l.editor.template&&(d.selectedIndex=t);break;case"slider":"slider"===l.editor.template&&(d.selectedIndex=t);break;case"image":"image"===l.editor.template&&(d.selectedIndex=t);break;case"attachment":"attachment"===l.editor.template&&(d.selectedIndex=t);break;case"updatedTime":"updatedTime"===l.template&&(d.selectedIndex=t);break;case"createdTime":"createdTime"===l.template&&(d.selectedIndex=t);break;case"createdBy":"createdBy"===l.template&&(d.selectedIndex=t);break;case"updatedBy":"updatedBy"===l.template&&(d.selectedIndex=t);break;case"collaborator":("collaborator"===l.template&&l.editor&&l.editor.collaborator||"tags"===l.template&&l.editor&&l.editor.collaborator)&&(d.selectedIndex=t);break;case"autoNumber":"autoNumber"===l.template&&(d.selectedIndex=t);break;case"phone":"phone"===l.template&&(d.selectedIndex=t);break;case"password":"password"===l.template&&(d.selectedIndex=t);break;case"url":"url"===l.template&&(d.selectedIndex=t);break;case"email":"email"===l.template&&(d.selectedIndex=t);break;case"dueDate":"dueDate"===l.template&&(d.selectedIndex=t);break;case"rating":"rating"===l.template&&(d.selectedIndex=t);break;case"progress":"progress"===l.template&&(d.selectedIndex=t);break;case"color":"color"===l.template&&(d.selectedIndex=t)}}))):"type"===o&&(d.selectedIndex=0,d.dropDownOpenPosition="auto",d.dataSource=i._getTypesList()),"cellsAlign"===o&&l&&("center"===l.cellsAlign||"middle"===l.cellsAlign?d.selectedIndex=2:"right"===l.cellsAlign&&(d.selectedIndex=1)),!r)continue;if("dataField"!==o&&"type"!==o&&"deadline"!==o&&"timeFormat"!==o&&"dateFormat"!==o&&"deadlineStatus"!==o&&"deadlineDueDate"!==o&&"numberFormat"!==o&&"currency"!==o&&"unit"!==o&&"cellsAlign"!==o&&d&&(d.selectedIndex=0),"name"===o){if(l){const e=l.label;d.value=i._unescapeString(e)}else d.value="";d.placeholder=t.find((e=>{if(e.bind===o)return e})).placeholder}"description"===o&&(d.value=l?i._unescapeString(l.description):"",d.placeholder=t.find((e=>{if(e.bind===o)return e})).placeholder);const c=(e,t)=>{l&&l.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,i,l){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=l.onclick=()=>{e.toggle()},i.appendChild(a),a.classList.add("smart-grid-dialog-boolean-field"),a.appendChild(e),a.appendChild(l),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"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"multiText":return t.allowRichText?"richText":"";default:return""}}_confirmAddColumnDialog(e){const t=this,a=e.querySelectorAll(".smart-grid-dialog-editor"),i=[];let l,n,o={};e===t._dialogAddStackColumn&&(o.type="select");for(let e=0;e<a.length;e++){const i=a[e],l=i.querySelector(".smart-input"),n=i.getAttribute("bind"),s=i.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("allowEdit"===n&&s.classList.contains("smart-hidden"))l.value=!1;else if("required"===n&&s.classList.contains("smart-hidden"))l.value=!1;else if("dateFormatSeparator"===n){const e=i.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}}l&&(l.getSelectedItem?o[n]=l.getSelectedItem().value:o[n]=l.value)}else{const e=[],a=i.querySelectorAll(".smart-grid-add-column-dialog-color-item .edit-column-input"),l=i.querySelectorAll(".smart-grid-add-column-dialog-color-item smart-color-input");for(let t=0;t<a.length;t++){const i=a[t],n={label:i.value.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/"/g,""").replace(/\\/g,""),value:i.getAttribute("data-item-value").replace(/\\/g,""),id:parseInt(i.getAttribute("data-id")),color:l[t].value};n.color=l[t].value,e.push(n)}if("users"===n&&"collaborator"===o.type){t.users||(t.users=[]);for(let a=0;a<e.length;a++){const i=e[a],l=t.users.find((e=>e.id===i.id));l&&(l.name=i.label,l.color=i.color)}}o[n]=e;const s=i.querySelector(".smart-default-item");o["default_"+n]=s.selectedValues?s.selectedValues[0]:null}else o[n]=l.getValue();else o[n]=l.value.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/"/g,""");else{const e=i.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(l=o.minDateTime,n=o.maxDateTime,"date"===o.type||"dueDate"===o.type||"startDate"===o.type){s={template:"dateInput",min:l,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,i.push({type:"minDate",value:l}),i.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){l=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:l,max:n,numberFormat:o.numberFormat},r={Intl:{NumberFormat:o.numberFormat}},a&&(r=a),d="d",e&&(d=e),i.push({type:"min",value:l}),i.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("select"===o.type||"multiSelect"===o.type||"tags"===o.type){let a=o.options,i=!1;if("select"===o.type)if(e.editColumn&&!e.editColumn.editor.allowEmptyItem){a=o.options;const l=[];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(l[t])continue;o.options[e].value=t,l.push(t)}else if(!isNaN(parseInt(o.options[e].value))){const t=o.options[e].label.trim();if(l[t])continue;o.options[e].value=t,l.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,i=!0,o.options[e].value="";break}a=n?o.options:[{color:"#F47A54",value:"",label:""}].concat(o.options)}else{const e=[];let t=!1;for(let a=0;a<o.options.length;a++)if(""===o.options[a].label)t=!0,i=!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:[{color:"#F4511E",value:"",label:""}].concat(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]&&!i&&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?(l=o.minLength,n=o.maxLength,s={template:"textarea",min:l,max:n,required:o.required},i.push({type:"minLength",value:l}),i.push({type:"maxLength",value:n})):"password"===o.type?(l=o.minLength,n=o.maxLength,s={template:"password",min:l,max:n,required:o.required},i.push({type:"minLength",value:l}),i.push({type:"maxLength",value:n})):"phone"===o.type?s={template:"phone",required:o.required}:(l=o.minLength,n=o.maxLength,s={template:"input",min:l,max:n,required:o.required},i.push({type:"minLength",value:l}),i.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":c="date";break;case"time":c="time";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);const l=a._editorId?a._editorId:"",n=s.template+"_"+a.dataField+l;t._cellEditors[n]&&delete t._cellEditors[n];let m=!0;"list"!==a.template&&"dropDownList"!==a.template||(m=!1),"autoNumber"!==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),m&&(a.editor=JSON.parse(JSON.stringify(s)),a.template=t._getColumnTemplateByType(o.type,o),a._cellsCachedValues=[]),"date"===o.type&&("dueDate"===o.deadline?(s=t._getKanbanTaskField("dueDate").editor,o.deadlineStatus&&(s.boundDataField=o.deadlineStatus),a.template="dueDate"):"startDate"===o.deadline?(s=t._getKanbanTaskField("startDate").editor,o.deadlineDueDate&&(s.boundDataField=o.deadlineDueDate),a.template="startDate"):(a.template="",s.template="dateInput",s.onValidate=null)),a.formatSettings=r,o.type!==e.columnType&&e.columnType&&(a.dataType=c),a.icon=t._getIconByType(o.type),a._isDirty=!0,o.required&&i.push({type:"required"}),a.validationRules=i,a._state&&["label","description","defaultValue","showDescriptionButton","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),l=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),formatSettings:r,cellsAlign:o.cellsAlign,align:o.cellsAlign,cellsFormat:d,visibleIndex:t.columns.length-1,grid:t});if("autoNumber"===l.template&&(l.autoGenerated=!0,e=[]),u(l),o.required&&(i.push({type:"required"}),l.validationRules=i),"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||(l._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.boundDataField=o.deadlineDueDate),"dueDate"===o.type&&o.deadlineStatus&&(e.editor.boundDataField=o.deadlineStatus),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 i=t.columns[e];if(i._dataField&&!t.columnByDataField[i._dataField]&&(t.columnByDataField[i._dataField]=i),i.statusColumn||"taskStatus"===i._dataField){a=i;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(l);t._refreshHeaderBar(),t.$.fireEvent("closeColumnDialog",{dataField:l.dataField})}}_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"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")}let i=1;for(let e=0;e<t.columns.length;e++)t.columns[e].label.indexOf(a)>=0&&i++;return 1===i?a:a+" "+i}return a}_openAddColumnDialog(e,t,a){const i=this,l=i._dialogAddColumn||i._createDialog(i.editing.addColumnDialog),n=e?i.localize("dialogEditColumn",{value:e.label}):i.localize("dialogAddColumn"),o=l.querySelector(".smart-footer").querySelector(".smart-stack-layout");l.classList.add("smart-grid-dialog-add-column"),l.type=e?"customize":"add",l.editColumn=e||null,delete l._randomOptionIndex,e&&e.element?e.element.setAttribute("focus",""):i._addNewColumn&&i._addNewColumn.element.setAttribute("focus",""),o.classList.remove("right"),o.classList.add("center"),i._cellEditors||(i._cellEditors=[]);const s=i._getAddColumnDialogTemplate();if(l.header.innerHTML=n,l.header.parentElement.classList.add("smart-hidden"),l.callback=a,!0===t&&(l.header.parentElement.classList.remove("smart-hidden"),"kanban"===i.view?(l.header.innerHTML=i.localize("dialogAddColumnStatus"),l.header.parentElement.querySelector(".smart-close-button").classList.add("smart-hidden"),l.classList.add("view")):l.classList.remove("kanban")),l.stackLabel&&l.stackLabel.classList.add("smart-hidden"),"kanban"===i.view?l.btnCancel.classList.add("smart-hidden"):l.btnCancel.classList.remove("smart-hidden"),i.cancelEdit(),!i._dialogAddColumn){l.modal=!0,l.btnConfirm.innerHTML=i.localize("dialogEditButtonConfirm"),l.btnCancel.innerHTML=i.localize("dialogEditButtonCancel"),l._refreshPosition=()=>{const e=i.offset(i.$.columnHeader),t=i.$.columnHeader.offsetHeight,a=i.offset(i);if(l.style.maxHeight="",l.style.minHeight="",e.top+t+l.offsetHeight>window.innerHeight-a.top){const i=t+e.top+l.offsetHeight-window.innerHeight+a.top;l.style.maxHeight=Math.max(250,l.offsetHeight-i)+"px",l.style.minHeight="250px"}else l.style.maxHeight="",l.style.minHeight=""},l.onOpen=function(){const e=i._dialogAddColumn,t=i._getAddColumnDialogTemplate(),a=i._addColumnDialogEditors;if(delete e.columnType,i._addColumnDialogInitEditors(e,t,a),i._addColumnDialogShowHideEditors(e),e.editColumn){const t=e.querySelector('[bind="type"]'),a=t?t.querySelector("smart-input"):null,i=t?a.getSelectedItem().value:"kanban";e.columnType=i}else delete e.columnType;i._filterColumnTypes(),i.$.fireEvent("openColumnDialog",{dataField:e.editColumn?e.editColumn.dataField:null}),e._refreshPosition()},l.onClose=function(){l.editColumn&&l.editColumn.element&&l.editColumn.element.removeAttribute("focus"),i._addNewColumn&&i._addNewColumn.element.removeAttribute("focus"),l.classList.remove("view"),l.callback&&l.callback(l.result)},l.btnCancel.onclick=function(){l.result=!1,l.close()},l.btnClose.onclick=function(){l.result=!1,l.close()},l.btnConfirm.onclick=function(){i._confirmAddColumnDialog(l),l.result=!0,l.close()},l.onkeydown=function(e){"Escape"===e.key&&"kanban"!==i.view&&(l.result=!1,l.close())},i._dialogAddColumn=l;const e=document.createElement("div");e.classList.add("smart-content-layout-container"),l.content.appendChild(e),i._addColumnDialogEditors=[];const t=i._addColumnDialogEditors;i._initAddColumnDialogEditors(t,s,l,e)}const r=()=>{const t=parseInt(l.style.width),a=i.offset(i);if(window.screen.availWidth<400)return l.open("left","top"),l.style.width=i.offsetWidth+"px",void(l.style.height=i.offsetHeight+"px");{const e=i.editing.addColumnDialog;l.style.width="auto"===e.width?e.width:e.width+"px",l.style.height="auto"===e.height?e.height:e.height+"px"}if(e){const n=e.element;if(n){const e=i.offset(n),o=e.left-a.left,s=a.left,r=Math.max(s,o);if(r+t+n.offsetWidth>a.left+i.offsetWidth){const i=r-t+n.offsetWidth;i<0?l.open("center",e.top+n.offsetHeight-a.top):l.open(Math.max(s,i),e.top+n.offsetHeight-a.top)}else l.open(r,e.top+n.offsetHeight-a.top)}else l.classList.add("center"),l.open("center","center")}else if(i._addNewColumn){let e=i._addNewColumn.element,n=i.offset(e),o=n.left-a.left-t+e.offsetWidth,s=a.left,r=Math.max(s,o);i.editing.addNewColumn._addButton&&i.editing.addNewColumn._addButton.classList.contains("show")&&(e=i.editing.addNewColumn._addButton,n=i.offset(i.editing.addNewColumn._addButton),o=n.left-a.left-t+e.offsetWidth,s=a.left,r=Math.max(s,o)),l.open(r,n.top+e.offsetHeight-a.top)}else l.open("center","center"),l.classList.add("center")};r(),l.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 i=e._getTypesList().find((e=>{if(e.value===t.columnType)return e}));if(i)if("string"===t.columnType||"multiText"===t.columnType)a.dataSource=e._getTypesList().filter((e=>!(["createdTime","updatedTime","createdBy","updatedBy","autoNumber","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(i);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":case"description":t="smart-icon-fontsize";break;case"image":t="smart-icon-image";break;case"attachment":t="smart-icon-docs";break;case"number":case"progress":case"slider":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":case"assigned":t="smart-icon-user";break;case"autoNumber":case"checklist":case"tags":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"color":t="smart-icon-color-background";break;case"rating":t="smart-icon-star"}return t}_initAddColumnDialogEditors(e,t,a,i){const l=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",(()=>{l._addColumnDialogShowHideEditors(a),a.editColumn&&l._filterColumnTypes();const t=l._dialogAddColumn.querySelector('[bind="type"]'),i=t.querySelector("smart-input"),n=i.getSelectedItem().value,o=l._getIconByType(n);if(e.type.icon=o,e.name.querySelector("input").setAttribute("data-label",i.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)t._init([...a.editColumn.editor.dataSource]);else{const e=[];for(let t=0;t<l.rows.length;t++){const i=l.rows[t].data[a.editColumn.dataField];if(i&&i.indexOf(",")>=0){const t=i.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(i)&&void 0!==i){if(""===i&&"multiSelect"===n)continue;e.push(i)}}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=l._getKanbanTaskField(n);t&&t._validate&&(t._init([...a.editor.dataSource]),t._validate())}else a.btnConfirm.disabled=!1})),"boolean"===o.type)l._createColumnBooleanEditor(d,o,s,i,r);else{if("label"===o.type){i.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}{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>'+l.localize("commandBarAddRow")+"</span></div>";const i=document.createElement("div");i.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===i.offsetHeight)return;let e=0;i.querySelectorAll(".edit-column-input").forEach((t=>{""===t.value&&e++;const i=a.querySelector('[field-name="type"]');i&&("multiSelect"===i.querySelector("smart-input").selectedValues[0]&&e>=1&&(a.btnConfirm.disabled=!0),e>1&&(a.btnConfirm.disabled=!0))})),n._updateDefaultInput()},r=(i,r,d,c)=>{const u=document.createElement("div"),m=l._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),i&&(g.value=l._unescapeString(i)),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.click(),s()))},m.onchange=()=>{n._updateDefaultInput()},u.appendChild(m),u.appendChild(g),"users"!==o.bind&&u.appendChild(p),p.onmouseenter=()=>{if(l._dialogAddColumn&&l._dialogAddColumn.editColumn){if(p.title="",p.classList.remove("smart-quiet"),!c)return;const e=l._dialogAddColumn.editColumn;if(e)for(let t=0;t<l.rows.length;t++)if(l.rows[t].data[e.dataField]===c){p.title=l.localize("dialogAddColumnListItemsError"),p.classList.add("smart-quiet");break}}},c&&l._dialogAddColumn){const e=l._dialogAddColumn.editColumn;if(e)for(let t=0;t<l.rows.length;t++)if(l.rows[t].data[e.dataField]===c){p.title=l.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};n._getOptions=e=>{const t=[],a=i.querySelectorAll(".smart-grid-add-column-dialog-color-item .edit-column-input"),n=i.querySelectorAll(".smart-grid-add-column-dialog-color-item smart-color-input");for(let e=0;e<a.length;e++){const i=a[e],l={label:i.value.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/"/g,""").replace(/\\/g,""),value:i.getAttribute("data-item-value").replace(/\\/g,""),id:parseInt(i.getAttribute("data-id")),color:n[e].value};l.color=n[e].value;const o=parseInt(l.value);if(!isNaN(o)){const e=l.label.trim();l.value=e}t.push(l)}if("users"===e.bind){l.users||(l.users=[]);for(let e=0;e<t.length;e++){const a=t[e],i=l.users.find((e=>e.id===a.id));i&&(i.name=a.label,i.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"===l.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,i=r(e.label,e.color,a,e.value,t);n.$.container.appendChild(i)})),n.updateItems()),n._updateDefaultInput(e)},n._validate=s,e.allowColorItems.onchange=t=>{let a=e.allowColorItems.parentElement.nextElementSibling,i=null;for(;a;){if("options"===a.getAttribute("field-name")){if(i=a,i&&i.classList.contains("smart-hidden")){a=a.nextElementSibling;continue}break}if("users"===a.getAttribute("field-name")){if(i=a,i&&i.classList.contains("smart-hidden")){a=a.nextElementSibling;continue}break}a=a.nextElementSibling}i&&i.querySelectorAll("smart-color-input").forEach((e=>{e.disabled=!t}))},i.appendChild(n),"users"!==o.bind&&(i.appendChild(t),t.onclick=e=>{const t=r();n.$.container.appendChild(t),n.updateItems(),t.querySelector(".edit-column-input").focus(),a.btnConfirm.disabled=!0,a._refreshPosition(),e.preventDefault()});const u=document.createElement("div");u.innerHTML=l.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),i.appendChild(p),n._defaultInput=m,n._defaultOption=u,c=i,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 i=document.createElement("div"),l=document.createElement("label"),n=document.createElement("div");return l.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),i.onclick=function(){if(n.value=!0,!1===n.value?n.removeAttribute("checked"):n.setAttribute("checked",n.value?"":"indeterminate"),i.onchange&&i.onchange(i),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}},i.appendChild(n),i.appendChild(l),i.classList.add("smart-grid-dialog-boolean-field"),i.setAttribute("template","checkBox"),i.setAttribute("editor",""),i.label=l,i.value=t,i.name=a,i},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 i=o.options[a],l=e(i.label,i.checked,i.value);if(o.columns){const e=100/o.columns;l.style.width=e+"%",l.style.float="left"}t.appendChild(l),i.checked&&(d.value=i.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!==l.currentUser&&null!==l.currentUser||(e=e.filter((e=>"updatedBy"!==e.value&&"createdBy"!==e.value))),(void 0===l.users||null===l.users||l.users&&0===l.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(i.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",i.appendChild(e)}}}}}_getLocaleByCurrency(e){const t={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"};return t[e]?t[e].replace("_","-"):"en-US"}_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 i=this,l=i._dialogAddStackColumn||i._createDialog(i.editing.addColumnDialog),n=e?i.localize("dialogEditColumn",{value:e.label}):i.localize("dialogAddColumn"),o=l.querySelector(".smart-footer").querySelector(".smart-stack-layout"),s=i._getAddStackColumnDialogTemplate();l.classList.add("smart-grid-dialog-add-column"),l.type="add",l.editColumn=e||null,e&&e.element&&e.element.setAttribute("focus",""),o.classList.remove("right"),o.classList.add("center"),i._cellEditors||(i._cellEditors=[]),l.header.innerHTML=n,l.header.parentElement.classList.add("smart-hidden"),l.callback=a,!0===t&&(l.header.parentElement.classList.remove("smart-hidden"),"kanban"===i.view?(l.header.innerHTML=i.localize("dialogAddColumnStatus"),l.header.parentElement.querySelector(".smart-close-button").classList.add("smart-hidden"),l.classList.add("view")):l.classList.remove("kanban")),l.stackLabel&&l.stackLabel.classList.add("smart-hidden"),i.cancelEdit(),l.content&&(l.content.innerHTML="");const r=document.createElement("div");r.classList.add("smart-content-layout-container"),l.content.appendChild(r),i._addStackColumnDialogEditors=[];const d=i._addStackColumnDialogEditors;if(i._initAddColumnDialogEditors(d,s,l,r),!i._dialogAddStackColumn){l.modal=!0,l.btnConfirm.innerHTML=i.localize("dialogEditButtonConfirm"),l.btnCancel.innerHTML=i.localize("dialogEditButtonCancel"),l.onOpen=function(){const e=i._dialogAddStackColumn,t=i._getAddStackColumnDialogTemplate(),a=i._addStackColumnDialogEditors;i._addColumnDialogInitEditors(e,t,a),i._addColumnDialogShowHideEditors(e);const l=i.offset(i.$.columnHeader),n=i.$.columnHeader.offsetHeight,o=i.offset(i);if(e.style.maxHeight="",e.style.minHeight="",l.top+n+e.offsetHeight>window.innerHeight-o.top){const t=n+l.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=""},l.onClose=function(){l.editColumn&&l.editColumn.element&&l.editColumn.element.removeAttribute("focus"),l.classList.remove("view"),l.callback&&l.callback(l.result)},l.btnCancel.onclick=function(){l.result=!1,l.close()},l.btnClose.onclick=function(){l.result=!1,l.close()},l.btnConfirm.onclick=function(){i._confirmAddColumnDialog(l),l.result=!0,l.close()},l.onkeydown=function(e){"Escape"===e.key&&"kanban"!==i.view&&(l.result=!1,l.close())},i._dialogAddStackColumn=l;const e=document.createElement("div");e.classList.add("smart-content-layout-container"),l.content.appendChild(e)}const c=()=>{if(window.screen.availWidth<400)return l.open("left","top"),l.style.width=i.offsetWidth+"px",void(l.style.height=i.offsetHeight+"px");{const e=i.editing.addColumnDialog;l.style.width="auto"===e.width?e.width:e.width+"px",l.style.height="auto"===e.height?e.height:e.height+"px"}l.open("center","center"),l.classList.add("center")};c(),l.refresh=()=>{c()}}_openImagePreviewDialog(e){const t=this,a=e?[...e.parentNode.parentNode.querySelectorAll("img")]:[];let i=e.hasAttribute("data-url")?e.getAttribute("data-url"):e.src;if((e=e.cloneNode()).src=i,!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 l=t._dialogImagePreview.querySelector(".images-container");l.innerHTML="";const n=(e,a)=>{e.width=e.naturalWidth,e.height=e.naturalHeight;const i=150+Math.min(850,e.naturalWidth),l=150+Math.min(650,e.naturalHeight);t._dialogImagePreview.style.width=i+"px",t._dialogImagePreview.style.height=l+"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<i||window.offsetHeight<l||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+l>window.innerHeight){const e=o+l-window.innerHeight;t._dialogImagePreview.style.height=l-e-20+"px"}e.style.maxWidth="100%",e.style.objectFit="contain",e.style.width="100%",e.style.height="100%"},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 i=a[t].cloneNode();i.style.width="40px",i.style.height="40px",i.style.cursor="pointer",i.style.borderStyle="solid",i.style.borderWidth="1px",i.style.borderColor="transparent",i.style.borderRadius="var(--smart-border)",i.style.marginTop="10px",i.title=a[t].title||a[t].parentNode.title,a[t].src===e.src&&(i.style.borderColor="var(--smart-primary)",i.setAttribute("active","")),l.appendChild(i),i.onmouseenter=()=>{i.style.borderColor="var(--smart-primary)"},i.onmouseleave=()=>{i.hasAttribute("active")||(i.style.borderColor="transparent")},i.onclick=()=>{s(i)}}const r=t._dialogImagePreview.content.querySelector(".image-preview");r.innerHTML="",r.style.overflow="auto",r.appendChild(e),t._dialogImagePreview.btnClose.onclick=e=>{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(","),i=a[0].match(/:(.*?);/)[1],l=atob(a[1]),n=l.length,o=new Uint8Array(n);for(;n--;)o[n]=l.charCodeAt(n);return new File([o],t,{type:i})}_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 i=t.uploadSettings.userFiles[a];if(i){let t=e.name||e.label;if(!t&&!e.label&&e.value){const a=e.value.split("/");t=a[a.length-1]}if(i.label===t)return i;if(i.label.indexOf("_")>=0&&(i.label.substring(0,i.label.lastIndexOf("_"))+i.label.substring(i.label.indexOf("."))).indexOf(t)>=0)return i;const a=i.value.replaceAll("\\","/");if(a===e.value||a===e.url)return i}}return null}_removeFiles(){const e=this,t=e._dialogFile,a=(t.preview.querySelectorAll(".item"),t.fileUpload),i=t.cell.value&&t.cell.value.indexOf("[{")>=0?JSON.parse(t.cell.value):[];if(e.uploadSettings.removeUrl){let l=new FormData,n=new XMLHttpRequest;for(let n=0;n<a.files.length;n++){let o=i[n]?i[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])||l.append(e.uploadSettings.name,a.files[n])}for(let a=0;a<t.uploadedWithLink.length;a++){const i=t.uploadedWithLink[a];e._findUserFile(i)||l.append(e.uploadSettings.name,i)}n.open("POST",e.uploadSettings.removeUrl),n.send(l)}if(e.uploadSettings.onUploadRemove){const i=t.cell.value&&t.cell.value.indexOf("[{")>=0?JSON.parse(t.cell.value):[];for(let t=0;t<a.files.length;t++)i&&i[t]?e.uploadSettings.onUploadRemove(i[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,i=a.preview.querySelectorAll(".item"),l=e.name||e.label,n=a.fileUpload,o=new DataTransfer;i.forEach((e=>{let t=!0;e.file.name!==l&&e.file.label!==l||(t=!1),e.file.value&&(t=!1),t&&o.items.add(e.file)})),n.files=o.files,a.clearButton&&0===i.length&&a.clearButton.classList.remove("show");let s=t.uploadSettings.url+"/"+l;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===l){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===l){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 i=t.uploadSettings.userFiles[e];if(i&&i.label===l)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,i=a.acceptFiles,l=document.createElement("div");e.name||(e.name=e.label);const n=e.size||0;l.classList.add("item"),l.onpointerdown=n=>{const o=l.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&&(l.remove(),t._removeFile(l.file));else if(i){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(l.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)),i?(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(l.style.display="none",a.uploadedWithLink.length){const t=a.uploadedWithLink.indexOf(e);t>=0&&a.uploadedWithLink.splice(t,1)}}),l.file=e,l.title=o.textContentTitle||o.textContent,l.appendChild(r),l.appendChild(o),l}_updateFilePreview(){const e=this,t=e._dialogFile,a=t.preview,i=t.fileUpload;for(;a.firstChild;)a.removeChild(a.firstChild);const l=()=>{const i=document.createElement("div");i.classList.add("list");const l=document.createElement("div");l.classList.add("smart-grid-icon","show","smart-icon-delete"),l.title=e.localize("clear"),a.appendChild(l),l.onclick=()=>{e._removeFiles()},t.clearButton=l,a.appendChild(i)},n=i.files;if(0===n.length)if(0===t.uploadedWithLink.length){const t=document.createElement("p");t.textContent=e.localize("dialogFileFileUpload"),a.appendChild(t)}else l();else{l();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 i of n){if(!e._validateFileType(i))continue;const l=e._getFileListItem(i);if(d>=s)c.push(i.name);else if(i.size>r){const t=document.createElement("p");t.textContent=t.textContentTitle=e.localize("dialogFileSize",{value:i.name,fileSize:e._getFileSize(r)}),a.appendChild(t)}else o.items.add(i),t.preview.querySelector(".list").appendChild(l),d++}if(c.length>0){const t=document.createElement("p");t.textContent=e.localize("dialogFileCount",{files:c.toString(),fileCount:s}),a.appendChild(t)}i.files=o.files}if(t.uploadedWithLink&&t.uploadedWithLink.length)for(let a=0;a<t.uploadedWithLink.length;a++){const i=t.uploadedWithLink[a];if(i){const a=e._getFileListItem(i);i.name=i.label,a.file=i,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 i=0;i<t.uploadedWithLink.length;i++){const l=t.uploadedWithLink[i];if(l.label===e.name||l.label===e.label&&(void 0!==l.label||void 0!==e.label)){a=i;break}if(l.name===e.name||l.name===e.label){a=i;break}if(e.label.indexOf(l.name.substring(0,l.name.indexOf(".")))>=0){a=i;break}}for(let i=0;i<t.fileUpload.files.length;i++){const l=t.fileUpload.files[i];if(l.label===e.name||l.label===e.label&&(void 0!==l.label||void 0!==e.label)){a=i;break}if(l.name===e.name||l.name===e.label){a=i;break}if(e.label&&e.label.indexOf(l.name.substring(0,l.name.indexOf(".")))>=0){a=i;break}if(e.name&&e.name.indexOf(l.name.substring(0,l.name.indexOf(".")))>=0){a=i;break}}return a}_openFileDialog(e,t=!1){const a=this,i=a._dialogFile||a._createDialog(),l='<span class="smart-grid-icon '+(!1===t?"smart-icon-image":"smart-icon-docs")+' show"></span>'+(!1===t?a.localize("dialogImageFileHeader"):a.localize("dialogFileHeader"));if(i.cell=e,i.header.innerHTML=l,i.column=e.column,i.acceptFiles=t,i.classList.add("smart-grid-image-dialog"),!a._dialogFile){i.modal=!0,i.btnConfirm.innerHTML=a.localize("dialogEditButtonConfirm"),i.btnCancel.innerHTML=a.localize("dialogEditButtonCancel");const e=()=>{i.loader&&i.loader.classList.add("smart-hidden"),i.close()};i.onOpen=function(){i.fileUpload.value="",i.input.value="",i.uploadedWithLink=[];let e=i.cell.editor.instance.getValue();if("[]"===e)return void i.tabs[0].click();i.tabs[0].click();let t=!0;const l=new DataTransfer;if(("string"==typeof e&&e.indexOf("base64")>=0||"string"==typeof e&&e.indexOf("[{")>=0)&&(e=JSON.parse(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)l.items.add(a._getFileFromBase64(o.value,o.label));else{const t=(t,l)=>{a.uploadSettings.url&&(a._findUserFile(t)?(i.uploadedWithLink.push(t),n++,n===e.length&&a._updateFilePreview()):l("error"))};o.value.indexOf(window.location.host)>=0?t(o,(t=>{"error"!==t&&l.items.add(t),n++,n===e.length&&(i.fileUpload.files=l.files,a._updateFilePreview())})):(i.uploadedWithLink.push(o),n++,n===e.length&&a._updateFilePreview())}})),i.fileUpload.files=l.files,a._updateFilePreview()}else a._updateFilePreview()},i.onClose=function(){},i.btnCancel.onclick=function(){i.close()},i.btnClose.onclick=function(){i.close()},i.btnConfirm.onclick=function(){let l=[],n=[...i.fileUpload.files];i.loader?i.loader.classList.remove("smart-hidden"):(i.loader=document.createElement("div"),i.loader.classList.add("smart-grid-loader"),i.loader.style.width=i.loader.style.height="24px",i.btnConfirm.parentNode.insertBefore(i.loader,i.btnConfirm)),i.uploadedWithLink&&i.uploadedWithLink&&i.uploadedWithLink.length&&(l=l.concat(i.uploadedWithLink)),(()=>{if(i.cell.value&&"string"==typeof i.cell.value){const e=JSON.parse(i.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),l.push(t)}})),a})))}})();const o=()=>{const t=i.cell.value;i.cell.editor.instance.setValue(l),!(a.editing.dialog.enabled&&a.editing.dialog.visible)&&(a._endCellEdit(i.cell),a._handleFileColumnHistory(i.cell.row,i.cell.column.dataField,t,l)),e()};if(a.uploadSettings.url){const s=(t,l)=>{const n=t.filter((e=>-1!==e.value.indexOf(window.location.host)));if(l&&l[0]&&"error"===l[0].response&&(a.cancelEdit(),e()),n.length===i.fileUpload.files.length+i.uploadedWithLink.length){(l.files||l[0])&&a.uploadSettings.onUploadCompleted&&a.uploadSettings.onUploadCompleted({files:i.fileUpload.files,status:200,serverResponse:l});const t=i.cell.column.dataField;let o=i.cell.value;i.cell.editor.instance.setValue(n),!(a.editing.dialog.enabled&&a.editing.dialog.visible)&&(a._endCellEdit(i.cell),a._handleFileColumnHistory(i.cell.row,t,o,n)),e()}};if(0===n.length&&0===i.uploadedWithLink.length)i.cell.editor.instance.setValue(l),!(a.editing.dialog.enabled&&a.editing.dialog.visible)&&a._endCellEdit(i.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(i,r,l,t?"file":"image",s),e=!0}for(let t=0;t<i.uploadedWithLink.length;t++){const n=[];a._findUserFile(i.uploadedWithLink[t])||(n.push(i.uploadedWithLink[t].value),a._handleFileUpload(i,n,l,"url",s),e=!0)}e||o()}else if(n.length&&a._handleFileUpload(i,n,l,t?"file":"image",s),i.uploadedWithLink.length){const e=i.uploadedWithLink.filter((e=>!a._findUserFile(e)));if(e.length){const t=e.map((e=>e.value));a._handleFileUpload(i,t,l,"url",s)}else l.length===i.fileUpload.files.length+i.uploadedWithLink.length&&o()}}else{let e=0;for(let t=0;t<n.length;t++){const i=n[t];a._getBase64(i,(t=>{"error"===t&&console.log("Image load error"),e++,l.push({value:t,label:i.name}),e===n.length&&o()}))}0===n.length&&o()}},i.onkeydown=function(e){"Escape"===e.key&&i.close()},a._dialogFile=i,i.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>`,i.input=i.querySelector("smart-input"),i.dropZone=i.querySelector(".smart-grid-drop-zone"),i.upload=i.querySelector(".title"),i.fileUpload=i.querySelector("input"),i.preview=i.querySelector(".preview"),i.tabs=i.querySelectorAll(".tab"),i.urlZone=i.querySelector(".url-zone"),i.fileZone=i.querySelector(".smart-grid-file-zone"),i.files=i.querySelector(".smart-grid-file-zone .files"),i.uploadButton=i.querySelector("smart-button"),i.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",i.dropZone.ondrop=i.dropZone.dropHere=e=>{if(e.preventDefault(),e.dataTransfer.items){let t=0;const l=i.column.editor.maxImages||5;for(let i=0;i<e.dataTransfer.items.length;i++)if("file"===e.dataTransfer.items[i].kind){const l=e.dataTransfer.items[i].getAsFile();a._validateFileType(l)&&t++}if(t===e.dataTransfer.files.length||t===l){const t=new DataTransfer;let n=[...e.dataTransfer.files],o=[...i.fileUpload.files];n.length>l&&(n=n.slice(0,5)),o.length>l&&(o=o.slice(0,5)),o.forEach(((e,a)=>{a<l&&t.items.add(e)})),n.forEach(((e,a)=>{a<l&&t.items.add(e)})),i.fileUpload.files=t.files,a._updateFilePreview()}}else i.fileUpload.files=e.dataTransfer.files,a._updateFilePreview()},i.dropZone.ondragover=e=>{e.preventDefault()},i.tabs[0].onclick=()=>{i.tabs[0].classList.add("active"),i.tabs[1].classList.remove("active"),i.tabs[2].classList.remove("active"),i.dropZone.classList.remove("smart-hidden"),i.fileZone.classList.add("smart-hidden"),i.urlZone.classList.add("smart-hidden")},i.tabs[1].onclick=()=>{i.tabs[0].classList.remove("active"),i.tabs[1].classList.add("active"),i.tabs[2].classList.remove("active"),i.dropZone.classList.add("smart-hidden"),i.fileZone.classList.add("smart-hidden"),i.urlZone.classList.remove("smart-hidden")},i.tabs[2].onclick=()=>{if(i.tabs[0].classList.remove("active"),i.tabs[1].classList.remove("active"),i.tabs[2].classList.add("active"),i.dropZone.classList.add("smart-hidden"),i.urlZone.classList.add("smart-hidden"),i.fileZone.classList.remove("smart-hidden"),i.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 l=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&&i.uploadedWithLink.push({label:l.name||l.label,value:l.value}):a._removeFile(l),a._updateFilePreview()},e.appendChild(n))})),i.files.appendChild(e)}},i.uploadButton.onclick=()=>{const e=this,t=i.input.value,a=t.split("/"),l=a[a.length-1];if(i.column&&i.column.editor&&e.uploadSettings.url){const a={value:t,label:l},n=e._findUserFile(a);for(let e=0;e<i.uploadedWithLink.length;e++){if(i.uploadedWithLink[e].label===l)return;if(n&&i.uploadedWithLink[e].label===n.label)return}i.uploadedWithLink.push(n||a),e._updateFilePreview()}else{const a={value:t,label:l};for(let e=0;e<i.uploadedWithLink.length;e++)if(i.uploadedWithLink[e].label===l)return;i.uploadedWithLink.push(a),e._updateFilePreview()}i.input.value="",i.uploadButton.disabled=!0},i.fileUpload.onchange=()=>{if(0===i.fileUpload.files.length&&i._tempFiles)i.fileUpload.files=i._tempFiles;else if(i._tempFiles){const e=new DataTransfer,t=[...i.fileUpload.files],l=[...i._tempFiles];l.forEach((t=>{e.items.add(t)})),t.forEach((t=>{let i=!0;a._validateFileType(t)||(i=!1),l.forEach((e=>{e.name===t.name&&e.size===t.size&&e.lastModified===t.lastModified&&(i=!1)})),i&&e.items.add(t)})),i.fileUpload.files=e.files}a._updateFilePreview()},i.input.onchange=i.input.onblur=i.input.onkeyup=()=>{i.uploadButton.disabled=!i.input.value||!i.input.value.startsWith("https://");const e=i.input.value,t=e.split("/"),l=t[t.length-1];if(i.column&&i.column.editor&&a.uploadSettings.url){const t={value:e,label:l},n=a._findUserFile(t);for(let e=0;e<i.uploadedWithLink.length;e++)i.uploadedWithLink[e].label===l&&(i.uploadButton.disabled=!0),n&&i.uploadedWithLink[e].label===n.label&&(i.uploadButton.disabled=!0)}},i.upload.onclick=()=>{i._tempFiles=[];const e=new DataTransfer;[...i.fileUpload.files].forEach((t=>{e.items.add(t)})),i._tempFiles=e.files,i.fileUpload.click()}}i.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",i.open(),setTimeout((function(){i.btnConfirm.focus()}),100)}_handleFileUpload(e,t,a,i,l){const n=this;if(i||(i="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",i);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 i={};e&&e.file_url?a=e.file_url:e&&e[0]&&e[0].file_url&&(a=e[0].file_url);let l=!1;e&&e.file_url_small?l=e.file_url_small:e&&e[0]&&e[0].file_url_small&&(l=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&&(i.value=a),l&&(i.small=l),n&&(i.medium=n),o&&(i.large=o),i.label=t,i};for(let l=0;l<t.length;l++){const s=t[l].name?[]:t[l].split("/"),r="url"===i?s[s.length-1]:t[l].name;n.uploadSettings.url;const d=o((e.files||e[0]&&e[0].files||[e[0]])[l],r);d&&a.push(d)}l(a,e)}else l(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,i){const l=this;if(l.storeHistory){a&&"string"==typeof a&&(a=(a=(a=JSON.parse(a)).map((e=>e.label))).toString()),a&&(Array.isArray(a)&&(a=a.map((e=>e.label))),a=a.toString()),null==a&&(a=""),i&&"string"==typeof i&&(i=(i=(i=JSON.parse(i)).map((e=>e.label))).toString()),null==i&&(i=""),i&&(Array.isArray(i)&&(i=i.map((e=>e.label))),i=i.toString());const n={user:l._currentUser.info.id,date:e.updatedDate};n.action=t,n.details={oldValue:a,value:i},e.addHistory(n)}}});
|
|
6
|
+
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}_dragDialog(e,t){const a=this,i=a._dialogDragDetails.dialog;if(!e||i.pinned||i.maximized)return;if(!a._dialogDragDetails.started)return;let l,n;l=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+l,s-i.offsetWidth)),i.style.left=a._dialogDragDetails.windowX+"px";break;case"vertical":a._dialogDragDetails.windowY=Math.max(0,Math.min(a._dialogDragDetails.windowY+n,o-i.offsetHeight)),i.style.top=a._dialogDragDetails.windowY+"px";break;case"both":a._dialogDragDetails.windowX=Math.max(0,Math.min(a._dialogDragDetails.windowX+l,s-i.offsetWidth)),a._dialogDragDetails.windowY=Math.max(0,Math.min(a._dialogDragDetails.windowY+n,o-i.offsetHeight)),i.style.left=a._dialogDragDetails.windowX+"px",i.style.top=a._dialogDragDetails.windowY+"px"}a._dialogDragDetails.top=i.offsetTop,a._dialogDragDetails.left=i.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-i.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-i.offsetTop)+a._dialogDragDetails.offsetY,e.pageY))}_updateDialogDragDetails(e,t,a){const i=this;if(i._windowParent={initialParent:t.parentElement,element:document.documentElement,scrollElement:document.scrollingElement},i._dialogDragDetails||(i._dialogDragDetails={}),void 0===i._dialogDragDetails.minWidth||void 0===i._dialogDragDetails.minHeight||void 0===i._dialogDragDetails.maxWidth||void 0===i._dialogDragDetails.maxHeight){const e=getComputedStyle(t);i._dialogDragDetails.minWidth=parseFloat(e.getPropertyValue("min-width"))||0,i._dialogDragDetails.minHeight=parseFloat(e.getPropertyValue("min-height"))||0,i._dialogDragDetails.maxWidth=parseFloat(e.getPropertyValue("max-width"))||0,i._dialogDragDetails.maxHeight=parseFloat(e.getPropertyValue("max-height"))||0}i._dialogDragDetails.dialog=t,i._dialogDragDetails.windowX=t.offsetLeft,i._dialogDragDetails.windowY=t.offsetTop;const l=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;i._windowParent.offsetLeft=n.left+o,i._windowParent.offsetTop=n.top+s,a&&"object"==typeof a&&(i._dialogDragDetails.offsetX=a.clientX-l.left,i._dialogDragDetails.offsetY=a.clientY-l.top),t.collapsed||(i.hasAnimation&&"minimize"===e?(i._dialogDragDetails.width=i._dialogDragDetails.width?i._dialogDragDetails.width:t.offsetWidth,i._dialogDragDetails.height=i._dialogDragDetails.height?i._dialogDragDetails.height:t.offsetHeight):(i._dialogDragDetails.width=t.offsetWidth,i._dialogDragDetails.height=t.offsetHeight),(t.style.width||t.style.height)&&(i._dialogDragDetails.resized=!0)),"minimize"!==e&&e&&(i._dialogDragDetails.type=e,i._dialogDragDetails.started=!0,i._dialogDragDetails.snapWindowWidth=t.offsetWidth,i._dialogDragDetails.snapWindowHeight=t.offsetHeight,a&&"object"==typeof a?(i._dialogDragDetails.x=a.pageX,i._dialogDragDetails.y=a.pageY):(i._dialogDragDetails.x=t.offsetLeft,i._dialogDragDetails.y=t.offsetTop))}_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("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.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,i=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=i,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 i=document.createElement("div");return i.classList.add("smart-grid-dialog-overlay"),i.onclick=function(){a.overlayClick&&a.overlayClick()},a.overlay=i,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(i,l){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===i&&(i=e.left),void 0===l&&(l=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,i){const l=t.offset(t);switch("center"===e&&"horizontal"===i&&(e="middle"),e){case"top":return l.top;case"bottom":return Math.max(l.top,l.top+t.offsetHeight-a.offsetHeight);case"center":return Math.max(l.top,l.top+t.offsetHeight/2-a.offsetHeight/2);case"left":return l.left;case"middle":return l.left+t.offsetWidth/2-a.offsetWidth/2;case"right":return l.left+t.offsetWidth-a.offsetWidth}return"horizontal"===i?parseInt(e)+l.left:"vertical"===i?parseInt(e)+l.top:"number"==typeof e?e:parseInt(e)};a.style.left=n(i,"horizontal")+"px",a.style.top=n(l,"vertical")+"px",a.setPosition=(e,t)=>{t?a.style.left=n(e,"horizontal")+"px":a.style.top=n(e,"vertical")+"px"},"center"===i&&parseInt(a.style.left)<0&&(a.style.left="5%",a.style.maxWidth="90%"),"screenMiddle"===i&&(a.style.left="calc(50% - "+a.offsetWidth/2+"px)"),"screenCenter"===l&&(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 i=a._dialogAddRow||a._createDialog(),l="{{message}}"===a.editing.dialog.header?a.localize("dialogAddHeader"):a.editing.dialog.header,n=i.content;i.header.innerHTML=l,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){i.modal=!0,i.btnConfirm.innerHTML=a.localize("dialogAddButtonConfirm"),i.btnCancel.innerHTML=a.localize("dialogAddButtonCancel"),i.onOpen=function(){a.editing.dialog.visible=!0},i.onClose=function(){a.editing.dialog.visible=!1},i.btnCancel.onclick=function(){i.close()},i.btnClose.onclick=function(){i.close()},i.btnConfirm.onclick=function(){const e={};for(let t=0;t<o.length;t++){const i=o[t],l=a._getEditorValue(i),n=a._getEditorId(i),s=a._cellEditors[n];s&&(l&&l.error?(e[i.column.dataField]=l.value,s.detach()):(e[i.column.dataField]=l,s.detach()))}const l=a._rowsAdded?a._rowsAdded.length:0,n=new Smart.Grid.Row({index:a.rows.length+l,id:Smart.Utilities.Core.createGUID(),grid:a,data:e});i.close(),t(n,0===i.index)},i.onkeydown=function(e){const t=e.key;"Enter"===t?i.btnConfirm.onclick():"Escape"===t&&i.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 i=document.createElement("div");i.classList.add("col-sm-6");const l=document.createElement("div");l.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),i.appendChild(l),s.appendChild(i),l.appendChild(o),l.appendChild(d),r++}}i.open(),i.index=e.index;let d=0;for(let e=0;e<o.length;e++){const t=o[e],l=t.column,n=l.dataField,s=i.querySelector("[editor="+n+"]");if(!s)continue;s.innerHTML="";let r="";void 0!==t.value&&(r=t.value),"int64"!==l.dataType&&"number"!==l.dataType&&"int"!==l.dataType&&"float"!==l.dataType||(r=0),"date"===l.dataType&&(r=new Date),"bool"!==l.dataType&&"boolean"!==l.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,i="custom"===t.editor.template?t.editor.instance.element.firstElementChild:t.editor.instance.element;for(let e in a)i[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,i="custom"===t.editor.template?t.editor.instance.element.firstElementChild:t.editor.instance.element;for(let e in a)i[e]=a[e]}}s.appendChild(c.element),c.element.onfocus=()=>{s.setAttribute("focus","")},c.element.onblur=()=>{s.removeAttribute("focus")},d++}a._dialogAddRow=i}_openEditDialog(e,t){const a=this;if(!a.editing.dialog.enabled)return!1;const i=a._dialogEdit||a._createDialog();let l="{{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=i.content;!1===a.editing.enabled?(i.classList.add("disable-edit"),l="{{message}}"===a.editing.dialog.header?a.localize("dialogEditHeaderDisabled",{value:a.editing.editRow?e.row.visibleIndex+1:e.column.label}):a.editing.dialog.header):i.classList.remove("disable-edit"),i.header.innerHTML=l,i.footer.classList.add("smart-hidden"),i.row=a.editing.editRow;const o=i.row.canNotify;i.row.canNotify=!1,i.row.showDetail=!1,i.row.canNotify=o,i.overlayClick=()=>{i.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>`;i.header.innerHTML=e+"<span>"+l+"</span>",i.btnPrev=i.querySelector(".smart-prev-button"),i.btnNext=i.querySelector(".smart-next-button"),i.header.style.display="flex",i.header.style.alignItems="center",a.editing.enabled?(i.btnDelete.classList.remove("smart-hidden"),i.btnComments.classList.remove("smart-hidden"),i.btnLink.classList.remove("smart-hidden"),i.btnDelete.classList.remove("smart-visibility-hidden"),i.btnComments.classList.remove("smart-visibility-hidden"),i.btnLink.classList.remove("smart-visibility-hidden"),0===a.users.length||a.users.length&&"guest"===a._currentUser.info?(i.btnLink.classList.add("smart-visibility-hidden"),i.btnDelete.classList.add("smart-visibility-hidden"),i.btnComments.classList.add("smart-visibility-hidden")):(i.btnLink.classList.remove("smart-visibility-hidden"),i.btnDelete.classList.remove("smart-visibility-hidden"),i.btnComments.classList.remove("smart-visibility-hidden"))):i.btnLink.style.width=i.btnDelete.style.width=i.btnComments.style.width="0px";const t=e=>{const t=a.editing.editRow,l=a._recyclingRows.indexOf(t);let o=e?a._recyclingRows[l+1]:a._recyclingRows[l-1];if(a.grouping.enabled&&a.dataSource.groupBy&&a.dataSource.groupBy.length>0){let t=1;for(;o&&!o.leaf;)o=e?a._recyclingRows[l+t]:a._recyclingRows[l-t],t++}const s=t;if(void 0!==a._settingsDialogRowId&&a.editing.dialog.autoSave){const e=a.rowById[a._settingsDialogRowId];e&&(i.saveRowData(e,!1),a._disableEndEdit=!0,a._recycle(!1,!0),a._disableEndEdit=!1)}if(o){a.editing.recordNavigation=!0,a.editing.editRow=o,a._settingsDialogRowId=o.id,s.isEditing=!1,s.element.removeAttribute("edit");const e=o,t=s.cells,l=e.cells;"kanban"===a.view&&a._kanban&&a._kanban.selectTask(e.id),i.row=o,i.header.querySelector("span").innerHTML=a.localize("dialogEditHeader",{value:a.editing.editRow.visibleIndex+1}),e.element.row.data.$.id===e.data.$.id&&e.element.setAttribute("edit","");for(let a=0;a<l.length;a++){const i=l[a],n=i.column;if(!n.allowEdit||!1===n._visible)continue;i.isEditing=!0,t[a].isEditing=!1;const o=e.data[n.dataField];i.editor&&i.editor.instance&&i.editor.instance.setValue(o)}a._applySettingsDialogLayout(i,n,a.editing.editRow,!0),a.editing.enabled&&setTimeout((()=>{const e=i.querySelector(".smart-grid-dialog-editor input");e&&e.focus()}),100)}};i.btnNext.onmousedown=e=>{t(!0),e.preventDefault(),e.stopPropagation()},i.btnPrev.onmousedown=e=>{t(!1),e.preventDefault(),e.stopPropagation()}}if(!a._dialogEdit){i.modal=!0,i.btnConfirm.innerHTML=a.localize("dialogEditButtonConfirm"),i.btnCancel.innerHTML=a.localize("dialogEditButtonCancel"),i.onOpen=function(){a.editing.dialog.visible||(a.editing.dialog.visible=!0,void 0!==a._settingsDialogRowId&&i.editorsContent&&i.editorsContent.offsetHeight&&(i.editorsContent.style.maxHeight=i.editorsContent.offsetHeight+40+"px",i.editorsContent.offsetHeight>a.offsetHeight||i.editorsContent.offsetWidth>a.offsetWidth||i.editorsContent.offsetHeight>window.innerHeight||i.editorsContent.offsetWidth>window.innerWidth?setTimeout((()=>{const e=a.offset(a);i.style.left=e.left+"px",i.style.top=e.top+"px",i.style.width=i.style.minWidth=a.offsetWidth+"px",i.style.height=i.style.minHeight=a.offsetHeight+"px",i.editorsContent.style.maxHeight=""})):(i.style.width=i.style.minWidth="",i.style.height=i.style.minHeight=""),a.editing.enabled&&setTimeout((()=>{const e=i.querySelector(".smart-grid-dialog-editor input");e&&e.focus()}),100)))},i.onClose=function(){a.editing.dialog.visible=!1,i.row&&(i.row.showDetail=!1)},i.btnCancel.onclick=function(){a.editing.isEditing=!0,a.cancelEdit()},i.btnClose.onclick=function(){a.editing.isEditing=!0,a.cancelEdit()};const t=(e,t=!0)=>{if(!e)return!1;const l=e.cells;let n={};e.element.removeAttribute("error");for(let e=0;e<l.length;e++){const t=l[e],i=a._getEditorValue(t);n[t.column.dataField]=i}const o=a.validateRow(e.id,n);if(Object.keys(o).length>0){let e=!0;for(let t=0;t<l.length;t++){const n=l[t],s=o[n.column.dataField],r=i.querySelector(`[label-for="${n.column.dataField}"]`);if(r&&(r.innerHTML=""),s)for(let t in s){const i=s[t];let l="";if(!i)continue;let o=i[t];"minLength"!==t&&"maxLength"!==t||(o=i[t.toLowerCase()]),l=i.message?i.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=l)}}if(!e)return!1}const s=e.style;e.updatedDate=new Date,e.updatedBy=a.currentUser,e.style=i._rowStyle,e.comments=i._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=i._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<l.length;t++){const i=l[t],n=a._getEditorValue(i),o=i.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(i.saveRowData=t,i.btnConfirm.onclick=function(){if(void 0!==a._settingsDialogRowId){const e=a.rowById[a._settingsDialogRowId];let l=!0;if(e&&(l=t(e)),!l)return;if(i.columnVisibility){let e=!1;const t=a.columns.canNotify;a.columns.canNotify=!1;for(let t in i.columnVisibility){const l=a.columnByDataField[t];l.visible!==i.columnVisibility[t]&&(l.visible=i.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())},i.onkeydown=function(e){const t=e.key,i=a.editing.commandKeys;for(let e in i){const l=i[e];if(t===l.key){a._applyCommand(l.command);break}}},a.editing.editRow)if(void 0!==a._settingsDialogRowId)a._applySettingsDialogLayout(i,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 i=document.createElement("div");i.classList.add("col-sm-6");const l=document.createElement("div");l.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),i.appendChild(l),d.appendChild(i),l.appendChild(o),l.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||i.open(s,r),a.editing.editRow){const a=i.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,l=i.querySelector("[editor]");l.innerHTML="",l.setAttribute("template",a.editor.template),l.appendChild(t.element),l.editor=t,l.editorValue=t.getValue(),t.element.onfocus=()=>{l.setAttribute("focus",""),l.setAttribute("touched",""),l.editorValue=t.getValue()},t.element.onblur=()=>{l.removeAttribute("focus"),l.editorValue!==t.getValue()&&l.setAttribute("pending","")}}a._dialogEdit=i}_refreshCurrentUser(){const e=this,t=e.users;let a=e.currentUser,i=!0,l=!0,n=e.editing.enabled,o=!0;t&&null!==a&&(a=t.find((e=>e.id===a)),a&&(i=!1!==a.allowAdd,l=!1!==a.allowComment,n=n&&!1!==a.allowEdit,o=!1!==a.allowRemove)),t&&t.length&&(null!==e.currentUser&&!1!==e.currentUser||(i=!1,l=!1,n=!1,o=!1,a="guest")),e._currentUser={allowAdd:i,allowComment:l,allowEdit:n,allowRemove:o,info:a}}_getColorInput(){const e=document.createElement("smart-color-input");return e.dataSource=["#D50000","#E67C73","#F4511E","#F6BF26","#33B679","#0B8043","#039BE5","#3F51B5","#7986CB","#8E24AA","#616161","#FFFFFF","#000000",""],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,i){const l=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));i&&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");i?(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")),(0===l.users.length||l.users.length&&"guest"===l._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>${l.localize("dialogEditButtonSave")}</span>`,m.classList.add("primary");const p=document.createElement("smart-button");p.innerHTML=`<span>${l.localize("dialogEditButtonCancel")}</span>`;const g=document.createElement("div");g.classList.add("smart-flex"),g.style.flexDirection="row-reverse",g.appendChild(m),g.appendChild(p),u.appendChild(g);const b=document.createElement("div");b.classList.add("smart-flex"),b.style.alignItems="center",b.innerHTML=`<label style="margin-right: 5px;">${l.localize("dialogEditButtonAutoSave")}</label>\n <label title="${l.localize("dialogEditButtonAutoSave")}" class="smart-switch">\n <input type="checkbox">\n <span class="slider round"></span>\n </label>`,u.appendChild(b),l.users&&l.users.length&&(!1!==l.currentUser&&null!==l.currentUser&&void 0!==l.currentUser||u.classList.add("smart-hidden"));const f=b.querySelector("input");f.onchange=()=>{l.editing.dialog.autoSave=f.checked},l._currentUser.info&&!l._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===l.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<l.columns.length;e++){const t=l.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>${l.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>${l.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>${l.localize("detailsTab")}</div></div>\n </div>\n <div class="smart-hidden details-tab">\n <div class="smart-grid-edit-dialog-row"><div class="column"><div class="header smart-grid-edit-dialog-column-info">${l.localize("format").replace(":","")}\n <span title="${l.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="${l.localize("background")}" class="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="${l.localize("color")}" class="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="${l.localize("bold")}" class="formatbtn bold smart-grid-icon smart-icon-bold show"></span>\n <span title="${l.localize("italic")}" class="formatbtn italic smart-grid-icon smart-icon-italic show"></span>\n <span title="${l.localize("underline")}" class="formatbtn underline smart-grid-icon smart-icon-underline show"></span>\n </div>\n </div>\n <div class="format-layout font-group">\n <div title="${l.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 title="${l.localize("fontSize").replace(":","")}" class="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 font-group">\n <div title="${l.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">${l.localize("comments").replace(":","")}</div></div>\n <div class="comments-layout">\n <div class="comments"><span class="no-comments"><span>${l.localize("noComments")}</span></span></div>\n <div class="footer">\n <smart-text-area hint="${l.localize("comment")}" placeholder="${l.localize("commentPlaceholder")}" class="smart-text-area success underlined"></smart-text-area>\n <smart-button class="success">${l.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");l.storeHistory&&(!l._currentUser||l._currentUser&&!l._currentUser.info?S[S.length-1].classList.add("smart-hidden"):S[S.length-1].classList.remove("smart-hidden")),!l.users||l.users&&0===l.users.length||!l._currentUser||l._currentUser&&!l._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"),i=y.querySelector(".comments-tab"),n=y.querySelector(".history-tab");a.classList.add("smart-hidden"),i.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":i.classList.remove("smart-hidden");break;case"history":n.classList.remove("smart-hidden"),l._refreshHistory()}}};const w=l._getColorInput();y.querySelector(".background").appendChild(w),w.onchange=()=>{n.background=w.value},n.background&&(w.value=n.background);const _=l._getColorInput();y.querySelector(".color").appendChild(_),_.onchange=()=>{n.color=_.value},n.color&&(_.value=n.color);const D=l._getColorInput();y.querySelector(".status").appendChild(D),D.onchange=()=>{n.status=D.value},n.status&&(D.value=n.status);const L=document.createElement("smart-input");L.style.width="auto",L.classList.add("underlined"),L.dropDownButtonPosition="right",L.readonly=!0,L.dropDownHeight="auto",L.dataSource=["-","Segoe UI","Arial","Georgia","Impact","Tahoma","Times New Roman","Verdana"],L.onchange=()=>{n.fontFamily=L.value},n.fontFamily?L.value=n.fontFamily:L.selectedIndex=0,y.querySelector(".font-family").appendChild(L);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=["-","8px","10px","12px","14px","18px","24px","36px"],x.onchange=()=>{n.fontSize=x.value},n.fontSize?x.value=n.fontSize:x.selectedIndex=0,y.querySelector(".font-size").appendChild(x);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)},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");L.selectedIndex=0,x.selectedIndex=0,_.value="",w.value="",D.value="",n.fontWeight=null,n.fontStyle=null,n.textDecoration=null,n.fontSize=null,n.fontFamily=null};const A=y.querySelector(".comments-header"),T=y.querySelector('[view="comments"]'),F=y.querySelector(".comments-layout smart-text-area"),z=y.querySelector(".comments-layout smart-button"),E=y.querySelector(".comments-layout .footer"),I=y.querySelector(".comments-layout .comments");F.users=l.users,z.disabled=!0,I.innerHTML=`<span class="no-comments"><span>${l.localize("noComments")}</span></span>`;const M=()=>{const e=I.querySelector(".no-comments");0===o.length?e.classList.remove("smart-hidden"):e.classList.add("smart-hidden")},H=()=>{l._commentEditing&&(l._commentEditing.parentNode&&l._commentEditing.parentNode.removeChild(l._commentEditing),delete l._commentEditing)};H();const R=e=>{const t=e.querySelector(".remove-button");H(),t.onclick=e=>{const t=e.target,i=o.indexOf(t.comment);if(H(),i>-1){const e=o[i];o.splice(i,1),l.$.fireEvent("commentRemove",{id:a.id,value:e}),l.onComment&&l.onComment(a.id,o),t.element.remove();const n=o.length?"("+o.length+")":"";A.innerHTML=T.lastElementChild.lastElementChild.innerHTML=`${l.localize("comments").replace(":","")} <span>${n}</span>`,M()}}},N=e=>{const t=e.querySelector(".edit-button");H();const a=e.querySelector(".comment-body");t.onclick=t=>{H();const a=t.target,i=o.indexOf(a.comment);if(!l._commentEditing&&i>-1){const t=o[i];let n=!1;if(l._currentUser.info&&t.userId===l._currentUser.info.id&&l._currentUser.allowComment&&(n=!0),!n)return;const s=document.createElement("smart-text-area");s.users=l.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 i=l._createComment(t);a.element.parentNode===I&&(I.insertBefore(i,a.element),a.element.parentNode.removeChild(a.element),delete l._commentEditing),R(i),N(i)},s.focus(),l._commentEditing=s}},a.ondblclick=e=>{t.click()}};for(let e=0;e<o.length;e++){const t=o[e],a=l._createComment(t);R(a),N(a),I.appendChild(a)}if(setTimeout((()=>{I.scrollTop=I.scrollHeight}),200),l._commentUpdateInterval=setInterval((()=>{e.classList.contains("open")?l._commentEditing:clearInterval(l._commentUpdateInterval)}),5e3),A.innerHTML=`${l.localize("comments").replace(":","")} ${C}`,M(),F.onfocus=()=>{E.classList.add("focus")},F.onblur=()=>{E.classList.remove("focus")},F.onkeyup=()=>{z.disabled=""===F.value},z.onclick=t=>{if(""===F.value)return;l._refreshCurrentUser();const i={text:F.value,id:function(){const e=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return e()+e()}(),userId:l._currentUser.info?l._currentUser.info.id:-1,time:new Date},n=l._createComment(i);if(!n)return t.preventDefault(),void t.stopPropagation();R(n),N(n),o.push(i),l.$.fireEvent("commentAdd",{id:a.id,value:i}),l.onComment&&l.onComment(a.id,o),F.value="",z.disabled=!0,M(),I.appendChild(n),(()=>{const t=e._rowComments;if(H(),I.innerHTML=`<span class="no-comments"><span>${l.localize("noComments")}</span></span>`,M(),e.classList.contains("open"))for(let e=0;e<t.length;e++){const a=t[e],i=l._createComment(a);R(i),N(i),I.appendChild(i)}else clearInterval(l._commentUpdateInterval)})(),F.focus();const s=o.length?"("+o.length+")":"";A.innerHTML=T.lastElementChild.lastElementChild.innerHTML=`${l.localize("comments").replace(":","")} <span>${s}</span>`,I.scrollTop=I.scrollHeight,t.preventDefault(),t.stopPropagation()},!i)for(let e=0;e<l.columns.length;e++){const t=l.columns[e];if(!t.allowEdit||!1===t._visible)continue;const a=document.createElement("div");a.classList.add("smart-grid-edit-dialog-row"),r.appendChild(a),"textarea"!==t.editor.template&&"input"!==t.editor.template||(a.style.gridColumn="span 2",a.previousElementSibling&&!a.previousElementSibling.style.gridColumn&&e<l.columns.length-1&&(a.previousElementSibling.style.gridColumn="span 2"));const i=document.createElement("div"),n=l._settingsDialogRowId?document.createElement("div"):document.createElement("label"),o=t.validationRules&&t.validationRules.length>0?"*":"";n.innerHTML=`<div class="smart-grid-edit-dialog-column-info"><span class="smart-grid-icon ${l.columns[e].icon} show"></span><label>`+l.columns[e].label+o+'</label><span toggle class="smart-grid-icon smart-icon-visibility-on show"</div>';const d=document.createElement("div");d.classList.add("smart-grid-dialog-editor"),d.setAttribute("editor",t.dataField),d.setAttribute("template",t.editor.template);const c=n.querySelector("[toggle]");c.column=t,s[t.dataField]=t.visible,c.title=l.localize("columnMenuItemHide"),!1===l.editing.enabled&&c.classList.add("smart-visibility-hidden"),c.onclick=()=>{s[c.column.dataField]=!c.column.visible,c.classList.contains("smart-icon-visibility-on")?(c.classList.remove("smart-icon-visibility-on"),c.classList.add("smart-icon-visibility-off"),c.title=l.localize("columnMenuItemShow")):(c.classList.add("smart-icon-visibility-on"),c.classList.remove("smart-icon-visibility-off"),c.title=l.localize("columnMenuItemHide"))},t.visible||(c.classList.remove("smart-icon-visibility-on"),c.title=l.localize("columnMenuItemShow")),t.visible?c.classList.add("smart-icon-visibility-on"):c.classList.add("smart-icon-visibility-off"),i.appendChild(n),i.appendChild(d);const u=document.createElement("label");u.classList.add("smart-field-editor-error-label"),u.setAttribute("label-for",t.dataField),i.appendChild(u),a.appendChild(i)}}_getDateFormat(e){const t=new Smart.Utilities.DateTime(e),a=((new Date).getTime()-e.getTime())/1e3,i=Math.floor(Math.abs(a));if(""===this.locale||"en"===this.locale)return 0===i?"now":i<60?i+"s ago":i<3600?Math.floor(i/60)+"m ago":i<86400?Math.floor(i/3600)+"h ago":t.toString("dd/MM/yyyy hh:mm");dateString=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 i=t.row.history;if(!i)return;let l="\n ";for(let t=0;t<i.length;t++){const a=i[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>"})}l+='<div class="history-row">';const o=t=>{const a=t?t.image:null;let i=t?t.name||t.id:e.localize("guestUser");const l=a?"image":"",n=a?`background-image: url('${a}');`:"";return e._currentUser.info&&t.id===e._currentUser.info.id&&(""!==e.locale&&"en"!==e.locale||(i="You")),{image:n,label:i,cssClass:l}};let s="";if(void 0!==a.user){const t=o(e.users.find((e=>e.id===a.user)));l+=`<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 l+='<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(l+='<div class="history-main">',l+=s,l+=`<div class="history-body"><div class="title">${n}</div>`,"created"!==a.action){let t=a.details.oldValue,i=a.details.value;if("user"===a.action){const a=e.users.find((e=>e.id===t||e.id===parseFloat(t))),l=e.users.find((e=>e.id===i||e.id===parseFloat(i)));a?t=a.name:(t="",t||(t=e.localize("unassigned"))),l?i=l.name:(i="",i||(i=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?l+=`<span class="detail">${e._kanban.localize("taskSubtasksCompleted",{value:t.length+"/"+a.details.value.length})}</span>`:l+=`<span class="detail">${e.localize("completed",{value:t.length})}</span>`}else{t&&"object"==typeof t&&t instanceof Date&&(t=e._getDateFormat(t)),i&&"object"==typeof i&&i instanceof Date&&(i=e._getDateFormat(i));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===i&&(i=a.label)}t||(t=e.localize("unassigned")),i||(i=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))),i&&"string"==typeof i&&(i=e._getDateFormat(new Date(i)))):(t&&"string"==typeof t&&(t=e._fromHTMLEntities(t)),i&&"string"==typeof i&&(i=e._fromHTMLEntities(i))),l+=t?`<div class="detail">${e.localize("range",{column:o,oldValue:"<i>"+t+"</i>",newValue:"<i>"+i+"</i>"})}</div>`:`<div class="detail">${e.localize("nullRange",{column:o,oldValue:"<i>"+t+"</i>",newValue:"<i>"+i+"</i>"})}</div>`}}else l+=`<div>${a.details.value}</div>`;l+="",l+="</div>",l+="</div>\n </div>"}l+="",a.innerHTML=l,setTimeout((()=>{a.scrollTop=a.scrollHeight}))}_createComment(e){const t=this,a=t.users.find((t=>t.id===e.userId));if(!a)return;const i=document.createElement("div"),l=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,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/"/g,"""):"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)}}i.className="comment",i.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,i=Math.floor(Math.abs(a));r=""!==t.locale&&"en"!==t.locale?r.toString("dd/MM/yyyy hh:mm"):0===i?"now":i<60?i+"s ago":i<3600?Math.floor(i/60)+"m ago":i<86400?Math.floor(i/3600)+"h ago":r.toString("dd/MM/yyyy hh:mm")}if(i.innerHTML=`<div class="comment-indent" role="presentation">\n<div class="user-icon smart-icon" role="img" aria-label="Icon of user ${l}"></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=i.querySelector(".user-icon");e.style.backgroundImage=`url('${n}')`,e.classList.add("image")}i.comment=e;const d=i.querySelector(".remove-button");d.comment=e,d.element=i,e.userId!==t._currentUser.info.id&&d.classList.add("smart-visibility-hidden");const c=i.querySelector(".edit-button");return c.comment=e,c.element=i,e.userId!==t._currentUser.info.id&&c.classList.add("smart-visibility-hidden"),i}_openSummaryRowDialog(e){const t=this,a=t._summaryRowDialog||t._createDialog(),i="{{message}}"===t.editing.dialog.header?t.localize("summary"):t.editing.dialog.header;if(a.header.innerHTML=i,!a.listBox){const e=document.createElement("smart-list-box");e.selectionMode="checkBox",e.style.borderColor="transparent",a.content.innerHTML="",a.listBox=e}const l=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"}],l.dataSource=o,l.style.position="absolute",l.style.visibility="hidden",l.style.height="auto",t.isInShadowDOM?t.getRootNode().appendChild(l):document.body.appendChild(l);const s=e.column;s.summary&&s.summary.forEach((e=>{l.select(e)}));const r=l.offsetHeight;a.column=s,a.content.appendChild(l),a.classList.add("smart-grid-dialog-summary"),a.header.parentElement.classList.add("smart-hidden"),a.footer.classList.add("smart-hidden"),l.style.visibility="",l.style.position="",l.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=l.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 i=this;delete i._dialogTextArea;const l=i._dialogTextArea||i._createDialog();if(l.header.innerHTML=e.label,l.column=e,l.classList.add("smart-grid-textarea-dialog"),l.style.minWidth="250px",l.style.minHeight="250px",l.style.zIndex=99999,l.textarea=t,"richText"!==e.template?l.initialValue=t.value:l.initialValue=t.getHTML(),l.cell=a,!i._dialogTextArea){l.modal=!0,l.btnConfirm.innerHTML=i.localize("dialogEditButtonSave"),l.btnCancel.innerHTML=i.localize("dialogEditButtonCancel"),l.onOpen=function(){const t=l.querySelector("smart-text-area");t.value=l.textarea.value,t.onchange=t.oninput=()=>{setTimeout((()=>{"richText"===e.template?l.textarea.setHTML(t.getHTML()):l.textarea.value=t.value}))},i.editing.enabled&&setTimeout((()=>{t.focus()}),250)},l.onClose=function(){};const t=()=>{const e=document.querySelector(".smart-grid-text-area-dialog");e&&e.remove()};l.btnCancel.onclick=function(){if(l.close(),i.editing.dialog.enabled)return l.textarea.value=l.initialValue,void t();i.cancelEdit(),t()},l.btnClose.onclick=function(){if(l.close(),i.editing.dialog.enabled)return l.textarea.value=l.initialValue,void t();i.cancelEdit(),t()},l.btnConfirm.onclick=function(){if(l.close(),i.editing.dialog.enabled)return t(),void l.cell.editor.instance.setValue(l.textarea.value);l.cell.editor.instance.setValue(l.textarea.value),t(),i.endEdit()},l.onkeydown=function(e){"Escape"===e.key&&l.close()},i._dialogTextArea=l;const a=document.createElement("smart-text-area");a.classList.add("smart-text-area"),a.resize="both","richText"===e.template&&(a.richText=!0),a.users=i.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,l.input=a,l.content.appendChild(a)}const n=i.offset(t),o=i.offset(i);l.open(n.left-o.left+e.computedWidth,n.top-o.top),setTimeout((function(){if("auto"!==l.style.height){const e=l.input;e.style.width="450px",e.style.height="400px",l.style.height="auto",l.style.width="auto",e.resize="both"}if(l.offsetHeight+n.top-o.top>window.innerHeight&&(l.style.top=o.top+"px",l.style.left=o.left+"px",l.style.width=i.offsetWidth+"px",l.style.height=i.offsetHeight+"px",l.input.style.width=i.offsetWidth-20+"px",l.input.style.height=i.offsetHeight-20+"px",l.input.resize="none"),n.left-o.left+e.computedWidth+l.offsetWidth>window.innerWidth){let t=n.left-o.left+e.computedWidth-l.offsetWidth;l.style.left=Math.max(t,0)+"px"}l.btnConfirm.focus()}),100)}_openDescriptionDialog(e,t){const a=this,i=a._dialogDescription||a._createDialog(),l=a.localize("dialogDescriptionHeader",{value:e.label});if(i.header.innerHTML=l,i.column=e,i.command=t,i.classList.add("smart-grid-dialog-add-column"),!a._dialogDescription){i.modal=!0,i.btnConfirm.innerHTML=a.localize("dialogEditButtonConfirm"),i.btnCancel.innerHTML=a.localize("dialogEditButtonCancel"),i.onOpen=function(){const e=i.querySelector("smart-input");"duplicate"!==t&&setTimeout((()=>{e.select()}),250)},i.onClose=function(){},i.btnCancel.onclick=function(){i.close()},i.btnClose.onclick=function(){i.close()},i.btnConfirm.onclick=function(){const e=i.querySelector("smart-input");switch(i.command){case"duplicate":0===e.selectedIndex?a.duplicateCommand(i.column,null,!0):a.duplicateCommand(i.column,null,!1);break;case"rename":i.column.label=e.value;break;case"editDescription":i.column.description=e.value}i.close()},i.onkeydown=function(e){"Escape"===e.key&&i.close()},a._dialogDescription=i;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"}],i.content.appendChild(e)}const n=e.element,o=a.offset(n),s=a.offset(a);i.open(o.left-s.left,o.top+n.offsetHeight-s.top);const r=i.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(){i.btnConfirm.focus()}),100)}_openDeleteRowDialog(e,t){const a=this;if(!a.editing.deleteDialog.enabled)return!1;const i=a._dialogDelete||a._createDialog(),l="{{message}}"===a.editing.dialog.header?a.localize("dialogDeleteHeader",{value:e.visibleIndex+1}):a.editing.dialog.header;i.header.innerHTML=l,i.content.innerHTML=a.localize("dialogDeleteContent"),i.row=e,a._dialogDelete||(i.modal=!0,i.btnConfirm.innerHTML=a.localize("dialogDeleteButtonConfirm"),i.btnCancel.innerHTML=a.localize("dialogDeleteButtonCancel"),i.onOpen=function(){a.editing.dialog.visible=!0},i.onClose=function(){a.editing.dialog.visible=!1},i.btnCancel.onclick=function(){i.close()},i.btnClose.onclick=function(){i.close()},i.btnConfirm.onclick=function(){t(i.row),i.close()},i.onkeydown=function(e){"Escape"===e.key&&i.close()},a._dialogDelete=i),i.open(),setTimeout((function(){i.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:"image",prefix:'<span class="smart-grid-icon visible smart-icon-image"></span>',label:e.localize("dialogAddColumnTypeImage")},{value:"number",prefix:'<span class="smart-grid-icon visible smart-icon-number"></span>',label:e.localize("dialogAddColumnTypeNumber")},{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:"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")}];if(e.header.visible&&e.header.buttons.indexOf("views")>=0){const a={value:"progress",prefix:'<span class="smart-grid-icon visible smart-icon-number"></span>',label:e.localize("dialogAddColumnTypeProgress")},i={value:"priority",prefix:'<span class="smart-grid-icon visible smart-icon-sort-down"></span>',label:e.localize("dialogAddColumnTypePriority")},l={value:"status",prefix:'<span class="smart-grid-icon visible smart-icon-sort-down"></span>',label:e.localize("status")},n={value:"tags",prefix:'<span class="smart-grid-icon visible smart-icon-list-unordered"></span>',label:e.localize("dialogAddColumnTypeTags")},o={value:"checklist",prefix:'<span class="smart-grid-icon visible smart-icon-list-ordered"></span>',label:e.localize("dialogAddColumnTypeChecklist")},s={value:"color",prefix:'<span class="smart-grid-icon visible smart-icon-color-background"></span>',label:e.localize("dialogAddColumnTypeColor")};t.push(a),t.push(i),t.push(n),t.push(o),t.push(s),t.push(l)}return t}_getAddStackColumnDialogTemplate(){const e=this,t=[];let a=!1,i="";for(let l=0;l<e.columns.length;l++){const n=e.columns[l];(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,i=t[t.length-1].label))}const l=t.concat([{value:"blank",label:e.localize("kanbanNone")},{value:"basic",label:e.localize("kanbanBasic")}]);return a||(l[0].checked=!0,i=l[0].label),[{bind:"kanban",name:"kanban",type:"radio",label:2===l.length?e.localize("kanbanNoneDescription"):e.localize("kanbanDescription",{column:i}),filter:"kanban",options:l},{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:"description",type:"input",label:e.localize("dialogAddColumnDescription"),filter:"any",placeholder:e.localize("dialogAddColumnDescriptionPlaceholder"),info:e.localize("dialogAddColumnDescriptionInfo")},{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:"deadlineDueDate",name:"deadlineDueDate",type:"dropDownList",label:e.localize("dialogAddColumnTypeDueDate"),info:"",filter:"date",options:[]},{bind:"allowColorItems",type:"boolean",label:e.localize("dialogAddColumnColorItems"),filter:"list, collaborator",value:!0,info:""},{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:""},{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,i=e.querySelector('[bind="type"]'),l=i?i.querySelector("smart-input"):null,n=i?l.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"]'),i=e.querySelector('[field-name="defaultDateValue"]');if(!t)return a.classList.add("smart-hidden"),void i.classList.add("smart-hidden");a.classList.remove("smart-hidden"),"specific"===t?(i.classList.remove("smart-hidden"),i.style.width="50%",i.style.float="left",a.style.width="50%",a.style.float="left",a.style.clear="both"):(i.classList.add("smart-hidden"),i.style.width="",i.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"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 i=0;i<o.length;i++){const l=o[i],r=l.getAttribute("filter"),u=l.getAttribute("bind"),m=l.parentNode;if("deadlineStatus"!==u&&"deadlineDueDate"!==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||"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("allowEdit"!==u||!1!==t.editing.enabled&&"autoNumber"!==n&&"createdBy"!==n&&"updatedBy"!==n&&"createdTime"!==n&&"updatedTime"!==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"]'),i=e.querySelector('[field-name="unit"]'),l=e.querySelector('[field-name="currency"]'),n=a.querySelector("smart-input"),o=()=>{const e=n.getSelectedItem();l.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?i.classList.remove("smart-hidden"):e&&"currency"===e.value.style?l.classList.remove("smart-hidden"):i.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"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"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"]'),i=e.querySelector('[field-name="defaultDateValue"]'),l=t.querySelector(".smart-input"),n=i.querySelector(".smart-input");a&&a.defaultValue?"today"===a.defaultValue?(l.selectedValues=["current"],n.value=null):(l.selectedValues=["specific"],n.value=a.defaultValue):(l.selectedValues=["current"],n.value=null),d(l.selectedValue)}"date"===r&&m.classList.remove("smart-hidden");const i=t=>{const a=e.querySelector('[field-filter="time"]'),i=e.querySelector('[field-name="dateFormat"]');t?(a.classList.remove("smart-hidden"),i.style.width="50%",i.style.float="left"):(a.classList.add("smart-hidden"),i.style.width="",i.style.float="")},n=t=>{const a=e.querySelector('[field-name="allowTimeFormat"]'),i=a.querySelector(".smart-grid-dialog-editor");t.indexOf("T")>=0?(a.classList.add("smart-hidden"),i.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=l.querySelector(".smart-input").value;l.onchange=e=>{i(e)},i(e)}if("dateFormat"===u){const e=l.querySelector(".smart-input").value;l.onchange=e=>{n(e.detail.value)},n(e)}if("defaultDate"===u){const e=l.querySelector(".smart-input").value;l.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&&l.uncheck();const e=l.querySelector(".smart-input").value;l.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?l.classList.remove("smart-hidden"):l.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"]'),i=a?a.querySelector("smart-input"):null,l=a?i.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"===l||"dueDate"===l||"startDate"===l){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"===l||"slider"===l)o&&o.classList.remove("smart-hidden");else if("string"===l||"multiText"===l||"name"===l||"description"===l)s&&s.classList.remove("smart-hidden");else for(let e=0;e<c.length;e++)c[e].classList.remove("smart-hidden")};l.onchange=e=>{t(e)};const i=e.querySelector('[field-name="setDefaultValue"]'),o=!(!a||null===a.defaultValue||void 0===a.defaultValue)||i.value;t(o)}else m.classList.add("smart-hidden"),t.header.visible&&t.header.buttons.indexOf("views")>=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 i=this,l=e.editColumn,n=()=>{const e=a.deadline.parentElement.querySelector(".smart-input"),t=a.deadlineStatus.parentElement,i=a.deadlineDueDate.parentElement,l=t.querySelector("smart-input"),n=i.querySelector("smart-input");t.classList.add("smart-hidden"),i.classList.add("smart-hidden"),2===e.selectedIndex?i.classList.remove("smart-hidden"):1===e.selectedIndex&&t.classList.remove("smart-hidden"),l.dataSource&&0===l.dataSource.length&&t.classList.add("smart-hidden"),n.dataSource&&0===n.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");l&&l.editor?"dateInput"===l.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");l&&"richText"===l.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;l&&l.cellsFormat&&(l.cellsFormat.indexOf(".")>=0?(e.value=!0,e.setAttribute("checked",""),t=2):(l.cellsFormat.indexOf("M-d-yyyy")>=0||l.cellsFormat.indexOf("d-M-yyyy")>=0||l.cellsFormat.indexOf("yyyy/MM/dd")>=0)&&(e.value=!0,e.setAttribute("checked",""),t=1));const i=a.dateFormatSeparator.querySelectorAll(".smart-grid-dialog-boolean-field");i.forEach((e=>{e.value=!1,e.removeAttribute("checked")})),i[t].setAttribute("checked",""),i[t].click(),i[t].value=!0;break}case"kanban":{const t=s.querySelectorAll(".smart-grid-dialog-boolean-field");for(let a=0;a<t.length;a++){const l=t[a];l.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=i.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=i.localize("dialogNewColumn"),c()):n===t.length-2?(o.innerHTML=i.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=i.localize("dialogNewColumn"),c()):(o.innerHTML=i.localize("kanbanDescription",{column:l.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=l.label.innerHTML,d.querySelector(".smart-grid-dialog-editor").classList.add("smart-hidden"),c())}}break}case"dateFormat":l&&l.cellsFormat?l.cellsFormat.indexOf("M/d/yyyy")>=0?d.selectedIndex=0:l.cellsFormat.indexOf("dddd, MMMM dd, yyyy")>=0?d.selectedIndex=1:l.cellsFormat.indexOf("yyyy-MM-ddTHH:mm:ss.sssZ")>=0?d.selectedIndex=2:l.cellsFormat.indexOf("d/M/yyyy")>=0?d.selectedIndex=3:l.cellsFormat.indexOf("yyyy-MM-dd")>=0?d.selectedIndex=4:l.cellsFormat.indexOf("MMMM, dd, yyyy")>=0&&(d.selectedIndex=5):d.selectedIndex=0;break;case"timeFormat":l&&l.cellsFormat&&l.cellsFormat.indexOf("HH")>=0&&-1===l.cellsFormat.indexOf("T")?d.selectedIndex=1:d.selectedIndex=0;break;case"allowMultipleCollaborators":{let e=!1;l&&l.editor&&l.editor.singleSelect&&(e=!1);const t=s.querySelector(".smart-input");l&&e?(t.value=!0,t.setAttribute("checked","")):(t.value=!1,t.removeAttribute("checked"));break}case"allowThousandsSeparator":{const e=s.querySelector(".smart-input");l&&l.editor&&"numberInput"===l.editor.template&&"progress"!==l.template&&"rating"!==l.template?(e.value=!0,e.setAttribute("checked",""),l.editor.numberFormat&&("decimal"!==l.editor.numberFormat.style||l.editor.numberFormat.notation||l.editor.numberFormat.useGrouping||(e.value=!1,e.removeAttribute("checked")))):(e.value=!0,e.setAttribute("checked",""));break}case"numberFormat":if(l&&"numberInput"===l.editor.template&&l.editor.numberFormat)if("decimal"===l.editor.numberFormat.style&&0===l.editor.numberFormat.maximumFractionDigits)d.selectedIndex=0;else if("decimal"===l.editor.numberFormat.style&&2===l.editor.numberFormat.minimumFractionDigits)d.selectedIndex=1;else if("percent"===l.editor.numberFormat.style&&2===l.editor.numberFormat.minimumFractionDigits)d.selectedIndex=2;else if("percent"===l.editor.numberFormat.style&&0===l.editor.numberFormat.maximumFractionDigits)d.selectedIndex=3;else if("decimal"===l.editor.numberFormat.style&&"scientific"===l.editor.numberFormat.notation)d.selectedIndex=4;else if("decimal"===l.editor.numberFormat.style&&"engineering"===l.editor.numberFormat.notation)d.selectedIndex=5;else if("currency"===l.editor.numberFormat.style&&"accounting"===l.editor.numberFormat.currencySign)d.selectedIndex=6;else if("unit"===l.editor.numberFormat.style){d.selectedIndex=7;const e=l.editor.numberFormat.unit,t=a.unit.querySelector("smart-input");t.dataSource.forEach(((a,i)=>{if(a.value===e)return t.selectedIndex=i,!0}))}else"currency"===l.editor.numberFormat.style&&0===l.editor.numberFormat.maximumFractionDigits&&0===l.editor.numberFormat.minimumFractionDigits?d.selectedIndex=9:"currency"===l.editor.numberFormat.style&&(d.selectedIndex=8);else d.selectedIndex=0;break;case"currency":if(l&&"numberInput"===l.editor.template&&l.editor.numberFormat){if("currency"===l.editor.numberFormat.style){const e=i._getCurrencies().findIndex((e=>e.value===l.editor.numberFormat.currency));e>=0&&(d.selectedIndex=e)}}else d.selectedIndex=0;break;case"allowCheckItems":{const e=s.querySelector(".smart-input");l?l.editor&&!l.editor.pills?(e.value=!0,e.setAttribute("checked","")):!1===l[o]&&(e.value=!1,e.removeAttribute("checked")):(e.value=!0,e.setAttribute("checked",""));break}case"allowColorItems":{const e=s.querySelector(".smart-input");l?l.editor&&l.editor.colorItems?(e.value=!0,e.setAttribute("checked","")):!1===l[o]&&(e.value=!1,e.removeAttribute("checked")):(e.value=!0,e.setAttribute("checked",""));break}case"setDefaultValue":{const e=s.querySelector(".smart-input");l?(e.value=!1,e.removeAttribute("checked"),l&&void 0!==l.defaultValue&&(e.value=!0,e.setAttribute("checked",""))):(e.value=!1,e.removeAttribute("checked"));break}case"defaultString":{const e=s.querySelector("smart-input");l&&void 0!==l.defaultValue&&null!==l.defaultValue?e.value=l.defaultValue:e.value="";break}case"defaultNumber":{const e=s.querySelector("smart-number-input");l&&void 0!==l.defaultValue&&null!==l.defaultValue?e.value=l.defaultValue:e.value=0;break}case"deadline":{const e=s.querySelector(".smart-input");e.selectedIndex=0,e.onchange=()=>{n()},l&&l.editor&&(e.selectedIndex=0,l.editor.onValidate&&"dueDate"!==l.template&&(e.selectedIndex=2),"dueDate"===l.template&&(e.selectedIndex=1)),n();break}case"deadlineStatus":{const t=s.querySelector(".smart-input"),a=[];for(let e=0;e<i.columns.length;e++){const t=i.columns[e];t&&t.editor&&t.editor.dataSource&&t.editor.singleSelect&&a.push({label:t.label,value:t.dataField})}a.length?t.dataSource=[{label:i.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"deadlineDueDate":{const t=s.querySelector(".smart-input"),a=[];for(let e=0;e<i.columns.length;e++){const t=i.columns[e];t&&"dueDate"===t.template&&a.push({label:t.label,value:t.dataField})}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"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}));l?l[o]?(e.value=!0,e.setAttribute("checked","")):!1===l[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(!l||"options"!==o&&"users"!==o){const e=s.querySelector("smart-sortable");if(e&&e._init)if("users"===o){let t=[];for(let e=0;e<i.users.length;e++)t.push({color:i.users[e].color,label:i.users[e].name,id:i.users[e].id,value:i.users[e].id,image:i.users[e].image});e._init(t)}else e._init()}else{const e=s.querySelector("smart-sortable");if(e&&e._init)if(l.editor.singleSelect){const t=l.editor.dataSource.filter((e=>""!==e));e._init(t)}else if("multiComboInput"===l.editor.template)if("users"===o){let t=[];for(let e=0;e<i.users.length;e++)t.push({color:i.users[e].color,label:i.users[e].name,id:i.users[e].id,value:i.users[e].id,image:i.users[e].image});e._init(t)}else e._init(JSON.parse(JSON.stringify(l.editor.dataSource)))}if(l&&"type"===o?(d.dataSource=i._getTypesList(),"number"===l.dataType||"int"===l.dataType?d.dataSource.length>3&&(d.selectedIndex=3):"date"===l.dataType?d.dataSource.length>3&&(d.selectedIndex=7):"bool"!==l.dataType&&"boolean"!==l.dataType||d.dataSource.length>3&&(d.selectedIndex=6),l.editor&&l.editor.template&&d.dataSource.forEach(((e,t)=>{switch(e.value){case"string":"input"===l.editor.template&&(d.selectedIndex=t);break;case"number":"numberInput"===l.editor.template&&"progress"!==l.template&&"rating"!==l.template&&(d.selectedIndex=t);break;case"select":"multiComboInput"===l.editor.template&&l.editor.singleSelect&&"tags"===l.template&&(d.selectedIndex=t);break;case"multiSelect":"multiComboInput"!==l.editor.template||l.editor.singleSelect||"tags"!==l.template||(d.selectedIndex=t);break;case"multiText":"textarea"===l.editor.template&&(d.selectedIndex=t);break;case"date":"dateInput"!==l.editor.template&&"dateTimePicker"!==l.editor.template||(d.selectedIndex=t);break;case"duration":"dateRangeInput"===l.editor.template&&(d.selectedIndex=t);break;case"time":"timeInput"===l.editor.template&&(d.selectedIndex=t);break;case"checkBox":"checkBox"===l.editor.template&&(d.selectedIndex=t);break;case"slider":"slider"===l.editor.template&&(d.selectedIndex=t);break;case"image":"image"===l.editor.template&&(d.selectedIndex=t);break;case"attachment":"attachment"===l.editor.template&&(d.selectedIndex=t);break;case"updatedTime":"updatedTime"===l.template&&(d.selectedIndex=t);break;case"createdTime":"createdTime"===l.template&&(d.selectedIndex=t);break;case"createdBy":"createdBy"===l.template&&(d.selectedIndex=t);break;case"updatedBy":"updatedBy"===l.template&&(d.selectedIndex=t);break;case"collaborator":("collaborator"===l.template&&l.editor&&l.editor.collaborator||"tags"===l.template&&l.editor&&l.editor.collaborator)&&(d.selectedIndex=t);break;case"autoNumber":"autoNumber"===l.template&&(d.selectedIndex=t);break;case"phone":"phone"===l.template&&(d.selectedIndex=t);break;case"password":"password"===l.template&&(d.selectedIndex=t);break;case"url":"url"===l.template&&(d.selectedIndex=t);break;case"email":"email"===l.template&&(d.selectedIndex=t);break;case"dueDate":"dueDate"===l.template&&(d.selectedIndex=t);break;case"rating":"rating"===l.template&&(d.selectedIndex=t);break;case"progress":"progress"===l.template&&(d.selectedIndex=t);break;case"color":"color"===l.template&&(d.selectedIndex=t)}}))):"type"===o&&(d.selectedIndex=0,d.dropDownOpenPosition="auto",d.dataSource=i._getTypesList()),"cellsAlign"===o&&l&&("center"===l.cellsAlign||"middle"===l.cellsAlign?d.selectedIndex=2:"right"===l.cellsAlign&&(d.selectedIndex=1)),!r)continue;if("dataField"!==o&&"type"!==o&&"deadline"!==o&&"timeFormat"!==o&&"dateFormat"!==o&&"deadlineStatus"!==o&&"deadlineDueDate"!==o&&"numberFormat"!==o&&"currency"!==o&&"unit"!==o&&"cellsAlign"!==o&&d&&(d.selectedIndex=0),"name"===o){if(l){const e=l.label;d.value=i._unescapeString(e)}else d.value="";d.placeholder=t.find((e=>{if(e.bind===o)return e})).placeholder}"description"===o&&(d.value=l?i._unescapeString(l.description):"",d.placeholder=t.find((e=>{if(e.bind===o)return e})).placeholder);const c=(e,t)=>{l&&l.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,i,l){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=l.onclick=()=>{e.toggle()},i.appendChild(a),a.classList.add("smart-grid-dialog-boolean-field"),a.appendChild(e),a.appendChild(l),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"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"multiText":return t.allowRichText?"richText":"";default:return""}}_confirmAddColumnDialog(e){const t=this,a=e.querySelectorAll(".smart-grid-dialog-editor"),i=[];let l,n,o={};e===t._dialogAddStackColumn&&(o.type="select");for(let e=0;e<a.length;e++){const i=a[e],l=i.querySelector(".smart-input"),n=i.getAttribute("bind"),s=i.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("allowEdit"===n&&s.classList.contains("smart-hidden"))l.value=!1;else if("required"===n&&s.classList.contains("smart-hidden"))l.value=!1;else if("dateFormatSeparator"===n){const e=i.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}}l&&(l.getSelectedItem?o[n]=l.getSelectedItem().value:o[n]=l.value)}else{const e=[],a=i.querySelectorAll(".smart-grid-add-column-dialog-color-item .edit-column-input"),l=i.querySelectorAll(".smart-grid-add-column-dialog-color-item smart-color-input");for(let t=0;t<a.length;t++){const i=a[t],n={label:i.value.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/"/g,""").replace(/\\/g,""),value:i.getAttribute("data-item-value").replace(/\\/g,""),id:parseInt(i.getAttribute("data-id")),color:l[t].value};n.color=l[t].value,e.push(n)}if("users"===n&&"collaborator"===o.type){t.users||(t.users=[]);for(let a=0;a<e.length;a++){const i=e[a],l=t.users.find((e=>e.id===i.id));l&&(l.name=i.label,l.color=i.color)}}o[n]=e;const s=i.querySelector(".smart-default-item");o["default_"+n]=s.selectedValues?s.selectedValues[0]:null}else o[n]=l.getValue();else o[n]=l.value.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/"/g,""");else{const e=i.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(l=o.minDateTime,n=o.maxDateTime,"date"===o.type||"dueDate"===o.type||"startDate"===o.type){s={template:"dateInput",min:l,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,i.push({type:"minDate",value:l}),i.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){l=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:l,max:n,numberFormat:o.numberFormat},r={Intl:{NumberFormat:o.numberFormat}},a&&(r=a),d="d",e&&(d=e),i.push({type:"min",value:l}),i.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("select"===o.type||"multiSelect"===o.type||"tags"===o.type){let a=o.options,i=!1;if("select"===o.type)if(e.editColumn&&!e.editColumn.editor.allowEmptyItem){a=o.options;const l=[];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(l[t])continue;o.options[e].value=t,l.push(t)}else if(!isNaN(parseInt(o.options[e].value))){const t=o.options[e].label.trim();if(l[t])continue;o.options[e].value=t,l.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,i=!0,o.options[e].value="";break}a=n?o.options:[{color:"#F47A54",value:"",label:""}].concat(o.options)}else{const e=[];let t=!1;for(let a=0;a<o.options.length;a++)if(""===o.options[a].label)t=!0,i=!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:[{color:"#F4511E",value:"",label:""}].concat(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]&&!i&&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?(l=o.minLength,n=o.maxLength,s={template:"textarea",min:l,max:n,required:o.required},i.push({type:"minLength",value:l}),i.push({type:"maxLength",value:n})):"password"===o.type?(l=o.minLength,n=o.maxLength,s={template:"password",min:l,max:n,required:o.required},i.push({type:"minLength",value:l}),i.push({type:"maxLength",value:n})):"phone"===o.type?s={template:"phone",required:o.required}:(l=o.minLength,n=o.maxLength,s={template:"input",min:l,max:n,required:o.required},i.push({type:"minLength",value:l}),i.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);const l=a._editorId?a._editorId:"",n=s.template+"_"+a.dataField+l;t._cellEditors[n]&&delete t._cellEditors[n];let m=!0;"list"!==a.template&&"dropDownList"!==a.template||(m=!1),"autoNumber"!==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),m&&(a.editor=JSON.parse(JSON.stringify(s)),a.template=t._getColumnTemplateByType(o.type,o),a._cellsCachedValues=[]),"date"===o.type&&("dueDate"===o.deadline?(s=t._getKanbanTaskField("dueDate").editor,o.deadlineStatus&&(s.boundDataField=o.deadlineStatus),a.template="dueDate"):"startDate"===o.deadline?(s=t._getKanbanTaskField("startDate").editor,o.deadlineDueDate&&(s.boundDataField=o.deadlineDueDate),a.template="startDate"):(a.template="",s.template="dateInput",s.onValidate=null)),a.formatSettings=r,o.type!==e.columnType&&e.columnType&&(a.dataType=c),a.icon=t._getIconByType(o.type),a._isDirty=!0,o.required&&i.push({type:"required"}),a.validationRules=i,a._state&&["label","description","defaultValue","showDescriptionButton","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),l=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),formatSettings:r,cellsAlign:o.cellsAlign,align:o.cellsAlign,cellsFormat:d,visibleIndex:t.columns.length-1,grid:t});if("autoNumber"===l.template&&(l.autoGenerated=!0,e=[]),u(l),o.required&&(i.push({type:"required"}),l.validationRules=i),"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||(l._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.boundDataField=o.deadlineDueDate),"dueDate"===o.type&&o.deadlineStatus&&(e.editor.boundDataField=o.deadlineStatus),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 i=t.columns[e];if(i._dataField&&!t.columnByDataField[i._dataField]&&(t.columnByDataField[i._dataField]=i),i.statusColumn||"taskStatus"===i._dataField){a=i;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(l);t._refreshHeaderBar(),t.$.fireEvent("closeColumnDialog",{dataField:l.dataField})}}_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"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")}let i=1;for(let e=0;e<t.columns.length;e++)t.columns[e].label.indexOf(a)>=0&&i++;return 1===i?a:a+" "+i}return a}_openAddColumnDialog(e,t,a){const i=this,l=i._dialogAddColumn||i._createDialog(i.editing.addColumnDialog),n=e?i.localize("dialogEditColumn",{value:e.label}):i.localize("dialogAddColumn"),o=l.querySelector(".smart-footer").querySelector(".smart-stack-layout");l.classList.add("smart-grid-dialog-add-column"),l.type=e?"customize":"add",l.editColumn=e||null,delete l._randomOptionIndex,e&&e.element?e.element.setAttribute("focus",""):i._addNewColumn&&i._addNewColumn.element.setAttribute("focus",""),o.classList.remove("right"),o.classList.add("center"),i._cellEditors||(i._cellEditors=[]);const s=i._getAddColumnDialogTemplate();if(l.header.innerHTML=n,l.header.parentElement.classList.add("smart-hidden"),l.callback=a,!0===t&&(l.header.parentElement.classList.remove("smart-hidden"),"kanban"===i.view?(l.header.innerHTML=i.localize("dialogAddColumnStatus"),l.header.parentElement.querySelector(".smart-close-button").classList.add("smart-hidden"),l.classList.add("view")):l.classList.remove("kanban")),l.stackLabel&&l.stackLabel.classList.add("smart-hidden"),"kanban"===i.view?l.btnCancel.classList.add("smart-hidden"):l.btnCancel.classList.remove("smart-hidden"),i.cancelEdit(),!i._dialogAddColumn){l.modal=!0,l.btnConfirm.innerHTML=i.localize("dialogEditButtonConfirm"),l.btnCancel.innerHTML=i.localize("dialogEditButtonCancel"),l._refreshPosition=()=>{const e=i.offset(i.$.columnHeader),t=i.$.columnHeader.offsetHeight,a=i.offset(i);if(l.style.maxHeight="",l.style.minHeight="",e.top+t+l.offsetHeight>window.innerHeight-a.top){const i=t+e.top+l.offsetHeight-window.innerHeight+a.top;l.style.maxHeight=Math.max(250,l.offsetHeight-i)+"px",l.style.minHeight="250px"}else l.style.maxHeight="",l.style.minHeight=""},l.onOpen=function(){const e=i._dialogAddColumn,t=i._getAddColumnDialogTemplate(),a=i._addColumnDialogEditors;if(delete e.columnType,i._addColumnDialogInitEditors(e,t,a),i._addColumnDialogShowHideEditors(e),e.editColumn){const t=e.querySelector('[bind="type"]'),a=t?t.querySelector("smart-input"):null,i=t?a.getSelectedItem().value:"kanban";e.columnType=i}else delete e.columnType;i._filterColumnTypes(),i.$.fireEvent("openColumnDialog",{dataField:e.editColumn?e.editColumn.dataField:null}),e._refreshPosition()},l.onClose=function(){l.editColumn&&l.editColumn.element&&l.editColumn.element.removeAttribute("focus"),i._addNewColumn&&i._addNewColumn.element.removeAttribute("focus"),l.classList.remove("view"),l.callback&&l.callback(l.result)},l.btnCancel.onclick=function(){l.result=!1,l.close()},l.btnClose.onclick=function(){l.result=!1,l.close()},l.btnConfirm.onclick=function(){i._confirmAddColumnDialog(l),l.result=!0,l.close()},l.onkeydown=function(e){"Escape"===e.key&&"kanban"!==i.view&&(l.result=!1,l.close())},i._dialogAddColumn=l;const e=document.createElement("div");e.classList.add("smart-content-layout-container"),l.content.appendChild(e),i._addColumnDialogEditors=[];const t=i._addColumnDialogEditors;i._initAddColumnDialogEditors(t,s,l,e)}const r=()=>{const t=parseInt(l.style.width),a=i.offset(i);if(window.screen.availWidth<400)return l.open("left","top"),l.style.width=i.offsetWidth+"px",void(l.style.height=i.offsetHeight+"px");{const e=i.editing.addColumnDialog;l.style.width="auto"===e.width?e.width:e.width+"px",l.style.height="auto"===e.height?e.height:e.height+"px"}if(e){const n=e.element;if(n){const e=i.offset(n),o=e.left-a.left,s=a.left,r=Math.max(s,o);if(r+t+n.offsetWidth>a.left+i.offsetWidth){const i=r-t+n.offsetWidth;i<0?l.open("center",e.top+n.offsetHeight-a.top):l.open(Math.max(s,i),e.top+n.offsetHeight-a.top)}else l.open(r,e.top+n.offsetHeight-a.top)}else l.classList.add("center"),l.open("center","center")}else if(i._addNewColumn){let e=i._addNewColumn.element,n=i.offset(e),o=n.left-a.left-t+e.offsetWidth,s=a.left,r=Math.max(s,o);i.editing.addNewColumn._addButton&&i.editing.addNewColumn._addButton.classList.contains("show")&&(e=i.editing.addNewColumn._addButton,n=i.offset(i.editing.addNewColumn._addButton),o=n.left-a.left-t+e.offsetWidth,s=a.left,r=Math.max(s,o)),l.open(r,n.top+e.offsetHeight-a.top)}else l.open("center","center"),l.classList.add("center")};r(),l.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 i=e._getTypesList().find((e=>{if(e.value===t.columnType)return e}));if(i)if("string"===t.columnType||"multiText"===t.columnType)a.dataSource=e._getTypesList().filter((e=>!(["createdTime","updatedTime","createdBy","updatedBy","autoNumber","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(i);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":case"description":t="smart-icon-fontsize";break;case"image":t="smart-icon-image";break;case"attachment":t="smart-icon-docs";break;case"number":case"progress":case"slider":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":case"assigned":t="smart-icon-user";break;case"autoNumber":case"checklist":case"tags":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"color":t="smart-icon-color-background";break;case"rating":t="smart-icon-star"}return t}_initAddColumnDialogEditors(e,t,a,i){const l=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",(()=>{l._addColumnDialogShowHideEditors(a),a.editColumn&&l._filterColumnTypes();const t=l._dialogAddColumn.querySelector('[bind="type"]'),i=t.querySelector("smart-input"),n=i.getSelectedItem().value,o=l._getIconByType(n);if(e.type.icon=o,e.name.querySelector("input").setAttribute("data-label",i.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)t._init([...a.editColumn.editor.dataSource]);else{const e=[];for(let t=0;t<l.rows.length;t++){const i=l.rows[t].data[a.editColumn.dataField];if(i&&i.indexOf(",")>=0){const t=i.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(i)&&void 0!==i){if(""===i&&"multiSelect"===n)continue;e.push(i)}}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=l._getKanbanTaskField(n);t&&t._validate&&(t._init([...a.editor.dataSource]),t._validate())}else a.btnConfirm.disabled=!1})),"boolean"===o.type)l._createColumnBooleanEditor(d,o,s,i,r);else{if("label"===o.type){i.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}{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>'+l.localize("commandBarAddRow")+"</span></div>";const i=document.createElement("div");i.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===i.offsetHeight)return;let e=0;i.querySelectorAll(".edit-column-input").forEach((t=>{""===t.value&&e++;const i=a.querySelector('[field-name="type"]');i&&("multiSelect"===i.querySelector("smart-input").selectedValues[0]&&e>=1&&(a.btnConfirm.disabled=!0),e>1&&(a.btnConfirm.disabled=!0))})),n._updateDefaultInput()},r=(i,r,d,c)=>{const u=document.createElement("div"),m=l._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),i&&(g.value=l._unescapeString(i)),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.click(),s()))},m.onchange=()=>{n._updateDefaultInput()},u.appendChild(m),u.appendChild(g),"users"!==o.bind&&u.appendChild(p),p.onmouseenter=()=>{if(l._dialogAddColumn&&l._dialogAddColumn.editColumn){if(p.title="",p.classList.remove("smart-quiet"),!c)return;const e=l._dialogAddColumn.editColumn;if(e)for(let t=0;t<l.rows.length;t++)if(l.rows[t].data[e.dataField]===c){p.title=l.localize("dialogAddColumnListItemsError"),p.classList.add("smart-quiet");break}}},c&&l._dialogAddColumn){const e=l._dialogAddColumn.editColumn;if(e)for(let t=0;t<l.rows.length;t++)if(l.rows[t].data[e.dataField]===c){p.title=l.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};n._getOptions=e=>{const t=[],a=i.querySelectorAll(".smart-grid-add-column-dialog-color-item .edit-column-input"),n=i.querySelectorAll(".smart-grid-add-column-dialog-color-item smart-color-input");for(let e=0;e<a.length;e++){const i=a[e],l={label:i.value.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/"/g,""").replace(/\\/g,""),value:i.getAttribute("data-item-value").replace(/\\/g,""),id:parseInt(i.getAttribute("data-id")),color:n[e].value};l.color=n[e].value;const o=parseInt(l.value);if(!isNaN(o)){const e=l.label.trim();l.value=e}t.push(l)}if("users"===e.bind){l.users||(l.users=[]);for(let e=0;e<t.length;e++){const a=t[e],i=l.users.find((e=>e.id===a.id));i&&(i.name=a.label,i.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"===l.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,i=r(e.label,e.color,a,e.value,t);n.$.container.appendChild(i)})),n.updateItems()),n._updateDefaultInput(e)},n._validate=s,e.allowColorItems.onchange=t=>{let a=e.allowColorItems.parentElement.nextElementSibling,i=null;for(;a;){if("options"===a.getAttribute("field-name")){if(i=a,i&&i.classList.contains("smart-hidden")){a=a.nextElementSibling;continue}break}if("users"===a.getAttribute("field-name")){if(i=a,i&&i.classList.contains("smart-hidden")){a=a.nextElementSibling;continue}break}a=a.nextElementSibling}i&&i.querySelectorAll("smart-color-input").forEach((e=>{e.disabled=!t}))},i.appendChild(n),"users"!==o.bind&&(i.appendChild(t),t.onclick=e=>{const t=r();n.$.container.appendChild(t),n.updateItems(),t.querySelector(".edit-column-input").focus(),a.btnConfirm.disabled=!0,a._refreshPosition(),e.preventDefault()});const u=document.createElement("div");u.innerHTML=l.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),i.appendChild(p),n._defaultInput=m,n._defaultOption=u,c=i,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 i=document.createElement("div"),l=document.createElement("label"),n=document.createElement("div");return l.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),i.onclick=function(){if(n.value=!0,!1===n.value?n.removeAttribute("checked"):n.setAttribute("checked",n.value?"":"indeterminate"),i.onchange&&i.onchange(i),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}},i.appendChild(n),i.appendChild(l),i.classList.add("smart-grid-dialog-boolean-field"),i.setAttribute("template","checkBox"),i.setAttribute("editor",""),i.label=l,i.value=t,i.name=a,i},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 i=o.options[a],l=e(i.label,i.checked,i.value);if(o.columns){const e=100/o.columns;l.style.width=e+"%",l.style.float="left"}t.appendChild(l),i.checked&&(d.value=i.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!==l.currentUser&&null!==l.currentUser||(e=e.filter((e=>"updatedBy"!==e.value&&"createdBy"!==e.value))),(void 0===l.users||null===l.users||l.users&&0===l.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(i.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",i.appendChild(e)}}}}}_getLocaleByCurrency(e){const t={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"};return t[e]?t[e].replace("_","-"):"en-US"}_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 i=this,l=i._dialogAddStackColumn||i._createDialog(i.editing.addColumnDialog),n=e?i.localize("dialogEditColumn",{value:e.label}):i.localize("dialogAddColumn"),o=l.querySelector(".smart-footer").querySelector(".smart-stack-layout"),s=i._getAddStackColumnDialogTemplate();l.classList.add("smart-grid-dialog-add-column"),l.type="add",l.editColumn=e||null,e&&e.element&&e.element.setAttribute("focus",""),o.classList.remove("right"),o.classList.add("center"),i._cellEditors||(i._cellEditors=[]),l.header.innerHTML=n,l.header.parentElement.classList.add("smart-hidden"),l.callback=a,!0===t&&(l.header.parentElement.classList.remove("smart-hidden"),"kanban"===i.view?(l.header.innerHTML=i.localize("dialogAddColumnStatus"),l.header.parentElement.querySelector(".smart-close-button").classList.add("smart-hidden"),l.classList.add("view")):l.classList.remove("kanban")),l.stackLabel&&l.stackLabel.classList.add("smart-hidden"),i.cancelEdit(),l.content&&(l.content.innerHTML="");const r=document.createElement("div");r.classList.add("smart-content-layout-container"),l.content.appendChild(r),i._addStackColumnDialogEditors=[];const d=i._addStackColumnDialogEditors;if(i._initAddColumnDialogEditors(d,s,l,r),!i._dialogAddStackColumn){l.modal=!0,l.btnConfirm.innerHTML=i.localize("dialogEditButtonConfirm"),l.btnCancel.innerHTML=i.localize("dialogEditButtonCancel"),l.onOpen=function(){const e=i._dialogAddStackColumn,t=i._getAddStackColumnDialogTemplate(),a=i._addStackColumnDialogEditors;i._addColumnDialogInitEditors(e,t,a),i._addColumnDialogShowHideEditors(e);const l=i.offset(i.$.columnHeader),n=i.$.columnHeader.offsetHeight,o=i.offset(i);if(e.style.maxHeight="",e.style.minHeight="",l.top+n+e.offsetHeight>window.innerHeight-o.top){const t=n+l.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=""},l.onClose=function(){l.editColumn&&l.editColumn.element&&l.editColumn.element.removeAttribute("focus"),l.classList.remove("view"),l.callback&&l.callback(l.result)},l.btnCancel.onclick=function(){l.result=!1,l.close()},l.btnClose.onclick=function(){l.result=!1,l.close()},l.btnConfirm.onclick=function(){i._confirmAddColumnDialog(l),l.result=!0,l.close()},l.onkeydown=function(e){"Escape"===e.key&&"kanban"!==i.view&&(l.result=!1,l.close())},i._dialogAddStackColumn=l;const e=document.createElement("div");e.classList.add("smart-content-layout-container"),l.content.appendChild(e)}const c=()=>{if(window.screen.availWidth<400)return l.open("left","top"),l.style.width=i.offsetWidth+"px",void(l.style.height=i.offsetHeight+"px");{const e=i.editing.addColumnDialog;l.style.width="auto"===e.width?e.width:e.width+"px",l.style.height="auto"===e.height?e.height:e.height+"px"}l.open("center","center"),l.classList.add("center")};c(),l.refresh=()=>{c()}}_openImagePreviewDialog(e){const t=this,a=e?[...e.parentNode.parentNode.querySelectorAll("img")]:[];let i=e.hasAttribute("data-url")?e.getAttribute("data-url"):e.src;if((e=e.cloneNode()).src=i,!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 l=t._dialogImagePreview.querySelector(".images-container");l.innerHTML="";const n=(e,a)=>{e.width=e.naturalWidth,e.height=e.naturalHeight;const i=150+Math.min(850,e.naturalWidth),l=150+Math.min(650,e.naturalHeight);t._dialogImagePreview.style.width=i+"px",t._dialogImagePreview.style.height=l+"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<i||window.offsetHeight<l||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+l>window.innerHeight){const e=o+l-window.innerHeight;t._dialogImagePreview.style.height=l-e-20+"px"}e.style.maxWidth="100%",e.style.objectFit="contain",e.style.width="100%",e.style.height="100%"},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 i=a[t].cloneNode();i.style.width="40px",i.style.height="40px",i.style.cursor="pointer",i.style.borderStyle="solid",i.style.borderWidth="1px",i.style.borderColor="transparent",i.style.borderRadius="var(--smart-border)",i.style.marginTop="10px",i.title=a[t].title||a[t].parentNode.title,a[t].src===e.src&&(i.style.borderColor="var(--smart-primary)",i.setAttribute("active","")),l.appendChild(i),i.onmouseenter=()=>{i.style.borderColor="var(--smart-primary)"},i.onmouseleave=()=>{i.hasAttribute("active")||(i.style.borderColor="transparent")},i.onclick=()=>{s(i)}}const r=t._dialogImagePreview.content.querySelector(".image-preview");r.innerHTML="",r.style.overflow="auto",r.appendChild(e),t._dialogImagePreview.btnClose.onclick=e=>{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(","),i=a[0].match(/:(.*?);/)[1],l=atob(a[1]),n=l.length,o=new Uint8Array(n);for(;n--;)o[n]=l.charCodeAt(n);return new File([o],t,{type:i})}_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 i=t.uploadSettings.userFiles[a];if(i){let t=e.name||e.label;if(!t&&!e.label&&e.value){const a=e.value.split("/");t=a[a.length-1]}if(i.label===t)return i;if(i.label.indexOf("_")>=0&&(i.label.substring(0,i.label.lastIndexOf("_"))+i.label.substring(i.label.indexOf("."))).indexOf(t)>=0)return i;const a=i.value.replaceAll("\\","/");if(a===e.value||a===e.url)return i}}return null}_removeFiles(){const e=this,t=e._dialogFile,a=(t.preview.querySelectorAll(".item"),t.fileUpload),i=t.cell.value&&t.cell.value.indexOf("[{")>=0?JSON.parse(t.cell.value):[];if(e.uploadSettings.removeUrl){let l=new FormData,n=new XMLHttpRequest;for(let n=0;n<a.files.length;n++){let o=i[n]?i[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])||l.append(e.uploadSettings.name,a.files[n])}for(let a=0;a<t.uploadedWithLink.length;a++){const i=t.uploadedWithLink[a];e._findUserFile(i)||l.append(e.uploadSettings.name,i)}n.open("POST",e.uploadSettings.removeUrl),n.send(l)}if(e.uploadSettings.onUploadRemove){const i=t.cell.value&&t.cell.value.indexOf("[{")>=0?JSON.parse(t.cell.value):[];for(let t=0;t<a.files.length;t++)i&&i[t]?e.uploadSettings.onUploadRemove(i[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,i=a.preview.querySelectorAll(".item"),l=e.name||e.label,n=a.fileUpload,o=new DataTransfer;i.forEach((e=>{let t=!0;e.file.name!==l&&e.file.label!==l||(t=!1),e.file.value&&(t=!1),t&&o.items.add(e.file)})),n.files=o.files,a.clearButton&&0===i.length&&a.clearButton.classList.remove("show");let s=t.uploadSettings.url+"/"+l;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===l){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===l){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 i=t.uploadSettings.userFiles[e];if(i&&i.label===l)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,i=a.acceptFiles,l=document.createElement("div");e.name||(e.name=e.label);const n=e.size||0;l.classList.add("item"),l.onpointerdown=n=>{const o=l.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&&(l.remove(),t._removeFile(l.file));else if(i){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(l.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)),i?(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(l.style.display="none",a.uploadedWithLink.length){const t=a.uploadedWithLink.indexOf(e);t>=0&&a.uploadedWithLink.splice(t,1)}}),l.file=e,l.title=o.textContentTitle||o.textContent,l.appendChild(r),l.appendChild(o),l}_updateFilePreview(){const e=this,t=e._dialogFile,a=t.preview,i=t.fileUpload;for(;a.firstChild;)a.removeChild(a.firstChild);const l=()=>{const i=document.createElement("div");i.classList.add("list");const l=document.createElement("div");l.classList.add("smart-grid-icon","show","smart-icon-delete"),l.title=e.localize("clear"),a.appendChild(l),l.onclick=()=>{e._removeFiles()},t.clearButton=l,a.appendChild(i)},n=i.files;if(0===n.length)if(0===t.uploadedWithLink.length){const t=document.createElement("p");t.textContent=e.localize("dialogFileFileUpload"),a.appendChild(t)}else l();else{l();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 i of n){if(!e._validateFileType(i))continue;const l=e._getFileListItem(i);if(d>=s)c.push(i.name);else if(i.size>r){const t=document.createElement("p");t.textContent=t.textContentTitle=e.localize("dialogFileSize",{value:i.name,fileSize:e._getFileSize(r)}),a.appendChild(t)}else o.items.add(i),t.preview.querySelector(".list").appendChild(l),d++}if(c.length>0){const t=document.createElement("p");t.textContent=e.localize("dialogFileCount",{files:c.toString(),fileCount:s}),a.appendChild(t)}i.files=o.files}if(t.uploadedWithLink&&t.uploadedWithLink.length)for(let a=0;a<t.uploadedWithLink.length;a++){const i=t.uploadedWithLink[a];if(i){const a=e._getFileListItem(i);i.name=i.label,a.file=i,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 i=0;i<t.uploadedWithLink.length;i++){const l=t.uploadedWithLink[i];if(l.label===e.name||l.label===e.label&&(void 0!==l.label||void 0!==e.label)){a=i;break}if(l.name===e.name||l.name===e.label){a=i;break}if(e.label.indexOf(l.name.substring(0,l.name.indexOf(".")))>=0){a=i;break}}for(let i=0;i<t.fileUpload.files.length;i++){const l=t.fileUpload.files[i];if(l.label===e.name||l.label===e.label&&(void 0!==l.label||void 0!==e.label)){a=i;break}if(l.name===e.name||l.name===e.label){a=i;break}if(e.label&&e.label.indexOf(l.name.substring(0,l.name.indexOf(".")))>=0){a=i;break}if(e.name&&e.name.indexOf(l.name.substring(0,l.name.indexOf(".")))>=0){a=i;break}}return a}_openFileDialog(e,t=!1){const a=this,i=a._dialogFile||a._createDialog(),l='<span class="smart-grid-icon '+(!1===t?"smart-icon-image":"smart-icon-docs")+' show"></span>'+(!1===t?a.localize("dialogImageFileHeader"):a.localize("dialogFileHeader"));if(i.cell=e,i.header.innerHTML=l,i.column=e.column,i.acceptFiles=t,i.classList.add("smart-grid-image-dialog"),!a._dialogFile){i.modal=!0,i.btnConfirm.innerHTML=a.localize("dialogEditButtonConfirm"),i.btnCancel.innerHTML=a.localize("dialogEditButtonCancel");const e=()=>{i.loader&&i.loader.classList.add("smart-hidden"),i.close()};i.onOpen=function(){i.fileUpload.value="",i.input.value="",i.uploadedWithLink=[];let e=i.cell.editor.instance.getValue();if("[]"===e)return void i.tabs[0].click();i.tabs[0].click();let t=!0;const l=new DataTransfer;if(("string"==typeof e&&e.indexOf("base64")>=0||"string"==typeof e&&e.indexOf("[{")>=0)&&(e=JSON.parse(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)l.items.add(a._getFileFromBase64(o.value,o.label));else{const t=(t,l)=>{a.uploadSettings.url&&(a._findUserFile(t)?(i.uploadedWithLink.push(t),n++,n===e.length&&a._updateFilePreview()):l("error"))};o.value.indexOf(window.location.host)>=0?t(o,(t=>{"error"!==t&&l.items.add(t),n++,n===e.length&&(i.fileUpload.files=l.files,a._updateFilePreview())})):(i.uploadedWithLink.push(o),n++,n===e.length&&a._updateFilePreview())}})),i.fileUpload.files=l.files,a._updateFilePreview()}else a._updateFilePreview()},i.onClose=function(){},i.btnCancel.onclick=function(){i.close()},i.btnClose.onclick=function(){i.close()},i.btnConfirm.onclick=function(){let l=[],n=[...i.fileUpload.files];i.loader?i.loader.classList.remove("smart-hidden"):(i.loader=document.createElement("div"),i.loader.classList.add("smart-grid-loader"),i.loader.style.width=i.loader.style.height="24px",i.btnConfirm.parentNode.insertBefore(i.loader,i.btnConfirm)),i.uploadedWithLink&&i.uploadedWithLink&&i.uploadedWithLink.length&&(l=l.concat(i.uploadedWithLink)),(()=>{if(i.cell.value&&"string"==typeof i.cell.value){const e=JSON.parse(i.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),l.push(t)}})),a})))}})();const o=()=>{const t=i.cell.value;i.cell.editor.instance.setValue(l),!(a.editing.dialog.enabled&&a.editing.dialog.visible)&&(a._endCellEdit(i.cell),a._handleFileColumnHistory(i.cell.row,i.cell.column.dataField,t,l)),e()};if(a.uploadSettings.url){const s=(t,l)=>{const n=t.filter((e=>-1!==e.value.indexOf(window.location.host)));if(l&&l[0]&&"error"===l[0].response&&(a.cancelEdit(),e()),n.length===i.fileUpload.files.length+i.uploadedWithLink.length){(l.files||l[0])&&a.uploadSettings.onUploadCompleted&&a.uploadSettings.onUploadCompleted({files:i.fileUpload.files,status:200,serverResponse:l});const t=i.cell.column.dataField;let o=i.cell.value;i.cell.editor.instance.setValue(n),!(a.editing.dialog.enabled&&a.editing.dialog.visible)&&(a._endCellEdit(i.cell),a._handleFileColumnHistory(i.cell.row,t,o,n)),e()}};if(0===n.length&&0===i.uploadedWithLink.length)i.cell.editor.instance.setValue(l),!(a.editing.dialog.enabled&&a.editing.dialog.visible)&&a._endCellEdit(i.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(i,r,l,t?"file":"image",s),e=!0}for(let t=0;t<i.uploadedWithLink.length;t++){const n=[];a._findUserFile(i.uploadedWithLink[t])||(n.push(i.uploadedWithLink[t].value),a._handleFileUpload(i,n,l,"url",s),e=!0)}e||o()}else if(n.length&&a._handleFileUpload(i,n,l,t?"file":"image",s),i.uploadedWithLink.length){const e=i.uploadedWithLink.filter((e=>!a._findUserFile(e)));if(e.length){const t=e.map((e=>e.value));a._handleFileUpload(i,t,l,"url",s)}else l.length===i.fileUpload.files.length+i.uploadedWithLink.length&&o()}}else{let e=0;for(let t=0;t<n.length;t++){const i=n[t];a._getBase64(i,(t=>{"error"===t&&console.log("Image load error"),e++,l.push({value:t,label:i.name}),e===n.length&&o()}))}0===n.length&&o()}},i.onkeydown=function(e){"Escape"===e.key&&i.close()},a._dialogFile=i,i.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>`,i.input=i.querySelector("smart-input"),i.dropZone=i.querySelector(".smart-grid-drop-zone"),i.upload=i.querySelector(".title"),i.fileUpload=i.querySelector("input"),i.preview=i.querySelector(".preview"),i.tabs=i.querySelectorAll(".tab"),i.urlZone=i.querySelector(".url-zone"),i.fileZone=i.querySelector(".smart-grid-file-zone"),i.files=i.querySelector(".smart-grid-file-zone .files"),i.uploadButton=i.querySelector("smart-button"),i.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",i.dropZone.ondrop=i.dropZone.dropHere=e=>{if(e.preventDefault(),e.dataTransfer.items){let t=0;const l=i.column.editor.maxImages||5;for(let i=0;i<e.dataTransfer.items.length;i++)if("file"===e.dataTransfer.items[i].kind){const l=e.dataTransfer.items[i].getAsFile();a._validateFileType(l)&&t++}if(t===e.dataTransfer.files.length||t===l){const t=new DataTransfer;let n=[...e.dataTransfer.files],o=[...i.fileUpload.files];n.length>l&&(n=n.slice(0,5)),o.length>l&&(o=o.slice(0,5)),o.forEach(((e,a)=>{a<l&&t.items.add(e)})),n.forEach(((e,a)=>{a<l&&t.items.add(e)})),i.fileUpload.files=t.files,a._updateFilePreview()}}else i.fileUpload.files=e.dataTransfer.files,a._updateFilePreview()},i.dropZone.ondragover=e=>{e.preventDefault()},i.tabs[0].onclick=()=>{i.tabs[0].classList.add("active"),i.tabs[1].classList.remove("active"),i.tabs[2].classList.remove("active"),i.dropZone.classList.remove("smart-hidden"),i.fileZone.classList.add("smart-hidden"),i.urlZone.classList.add("smart-hidden")},i.tabs[1].onclick=()=>{i.tabs[0].classList.remove("active"),i.tabs[1].classList.add("active"),i.tabs[2].classList.remove("active"),i.dropZone.classList.add("smart-hidden"),i.fileZone.classList.add("smart-hidden"),i.urlZone.classList.remove("smart-hidden")},i.tabs[2].onclick=()=>{if(i.tabs[0].classList.remove("active"),i.tabs[1].classList.remove("active"),i.tabs[2].classList.add("active"),i.dropZone.classList.add("smart-hidden"),i.urlZone.classList.add("smart-hidden"),i.fileZone.classList.remove("smart-hidden"),i.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 l=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&&i.uploadedWithLink.push({label:l.name||l.label,value:l.value}):a._removeFile(l),a._updateFilePreview()},e.appendChild(n))})),i.files.appendChild(e)}},i.uploadButton.onclick=()=>{const e=this,t=i.input.value,a=t.split("/"),l=a[a.length-1];if(i.column&&i.column.editor&&e.uploadSettings.url){const a={value:t,label:l},n=e._findUserFile(a);for(let e=0;e<i.uploadedWithLink.length;e++){if(i.uploadedWithLink[e].label===l)return;if(n&&i.uploadedWithLink[e].label===n.label)return}i.uploadedWithLink.push(n||a),e._updateFilePreview()}else{const a={value:t,label:l};for(let e=0;e<i.uploadedWithLink.length;e++)if(i.uploadedWithLink[e].label===l)return;i.uploadedWithLink.push(a),e._updateFilePreview()}i.input.value="",i.uploadButton.disabled=!0},i.fileUpload.onchange=()=>{if(0===i.fileUpload.files.length&&i._tempFiles)i.fileUpload.files=i._tempFiles;else if(i._tempFiles){const e=new DataTransfer,t=[...i.fileUpload.files],l=[...i._tempFiles];l.forEach((t=>{e.items.add(t)})),t.forEach((t=>{let i=!0;a._validateFileType(t)||(i=!1),l.forEach((e=>{e.name===t.name&&e.size===t.size&&e.lastModified===t.lastModified&&(i=!1)})),i&&e.items.add(t)})),i.fileUpload.files=e.files}a._updateFilePreview()},i.input.onchange=i.input.onblur=i.input.onkeyup=()=>{i.uploadButton.disabled=!i.input.value||!i.input.value.startsWith("https://");const e=i.input.value,t=e.split("/"),l=t[t.length-1];if(i.column&&i.column.editor&&a.uploadSettings.url){const t={value:e,label:l},n=a._findUserFile(t);for(let e=0;e<i.uploadedWithLink.length;e++)i.uploadedWithLink[e].label===l&&(i.uploadButton.disabled=!0),n&&i.uploadedWithLink[e].label===n.label&&(i.uploadButton.disabled=!0)}},i.upload.onclick=()=>{i._tempFiles=[];const e=new DataTransfer;[...i.fileUpload.files].forEach((t=>{e.items.add(t)})),i._tempFiles=e.files,i.fileUpload.click()}}i.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",i.open(),setTimeout((function(){i.btnConfirm.focus()}),100)}_handleFileUpload(e,t,a,i,l){const n=this;if(i||(i="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",i);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 i={};e&&e.file_url?a=e.file_url:e&&e[0]&&e[0].file_url&&(a=e[0].file_url);let l=!1;e&&e.file_url_small?l=e.file_url_small:e&&e[0]&&e[0].file_url_small&&(l=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&&(i.value=a),l&&(i.small=l),n&&(i.medium=n),o&&(i.large=o),i.label=t,i};for(let l=0;l<t.length;l++){const s=t[l].name?[]:t[l].split("/"),r="url"===i?s[s.length-1]:t[l].name;n.uploadSettings.url;const d=o((e.files||e[0]&&e[0].files||[e[0]])[l],r);d&&a.push(d)}l(a,e)}else l(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,i){const l=this;if(l.storeHistory){a&&"string"==typeof a&&(a=(a=(a=JSON.parse(a)).map((e=>e.label))).toString()),a&&(Array.isArray(a)&&(a=a.map((e=>e.label))),a=a.toString()),null==a&&(a=""),i&&"string"==typeof i&&(i=(i=(i=JSON.parse(i)).map((e=>e.label))).toString()),null==i&&(i=""),i&&(Array.isArray(i)&&(i=i.map((e=>e.label))),i=i.toString());const n={user:l._currentUser.info.id,date:e.updatedDate};n.action=t,n.details={oldValue:a,value:i},e.addHistory(n)}}});
|