-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathsmart.grid.dialog.js
6 lines (4 loc) · 134 KB
/
smart.grid.dialog.js
1
2
3
4
5
6
/* Smart UI v15.2.0 (2023-04-20)
Copyright (c) 2011-2023 jQWidgets.
License: https://htmlelements.com/license/ */ //
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),r=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,r-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,r-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,r=window.scrollY||window.pageYOffset;i._windowParent.offsetLeft=n.left+o,i._windowParent.offsetTop=n.top+r,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"></div>\n <div class="smart-buttons-container">\n <button tabindex=-1 class ="smart-hidden smart-button smart-element smart-prev-button" aria-label="Previous Record" smart-id="prevButton"></button>\n <button tabindex=-1 class ="smart-hidden smart-button smart-element smart-next-button" aria-label="Next Record" smart-id="nextButton"></button>\n <button 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 <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.btnClose=a.querySelector(".smart-close-button"),a.btnNext=a.querySelector(".smart-next-button"),a.btnPrev=a.querySelector(".smart-prev-button"),a.headerSection=a.querySelector(".smart-header-section"),!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.overlay=i,a.remove=function(){a.parentNode&&a.parentNode.removeChild(a)},a.close=function(){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),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 t=e.querySelector("smart-input");t&&t.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"},"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 r=null,s=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),r=a._cellEditors[n];r&&(l&&l.error?(e[i.column.dataField]=l.value,r.detach()):(e[i.column.dataField]=l,r.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;s%2==0&&(r=document.createElement("div"),r.classList.add("smart-grid-edit-dialog-row"),n.appendChild(r));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),r.appendChild(i),l.appendChild(o),l.appendChild(d),s++}}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,r=i.querySelector("[editor="+n+"]");if(!r)continue;r.innerHTML="";let s="";void 0!==t.value&&(s=t.value),"int64"!==l.dataType&&"number"!==l.dataType&&"int"!==l.dataType&&"float"!==l.dataType||(s=0),"date"===l.dataType&&(s=new Date),"bool"!==l.dataType&&"boolean"!==l.dataType||(s=!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(s),0===d&&setTimeout((()=>{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]}}r.appendChild(c.element),c.element.onfocus=()=>{r.setAttribute("focus","")},c.element.onblur=()=>{r.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.row=a.editing.editRow,a.editing.recordNavigation&&i.classList.add("disable-animation");let o=null,r=0;if(void 0!==a._settingsDialogRowId){i.btnPrev.classList.remove("smart-hidden"),i.btnNext.classList.remove("smart-hidden");const e=e=>{const t=a.editing.editRow,l=a._recyclingRows.indexOf(t);let n=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(;n&&!n.leaf;)n=e?a._recyclingRows[l+t]:a._recyclingRows[l-t],t++}if(n){i.classList.add("disable-animation"),a.editing.recordNavigation=!0;const e=i.querySelector("[focus]");if(e){const t=e.closest(".smart-grid-edit-dialog-row"),i=t.closest(".smart-grid-edit-dialog-editors-container");let l=-1;if(i&&(l=[...i.children].indexOf(t)),a.cancelEdit(),a._openRowSettingsDialog(n.id),a._dialogEdit&&l>=0){const e=a._dialogEdit.querySelectorAll(".smart-grid-edit-dialog-row")[l];if(e&&a.editing.enabled){const t=e.querySelector(".smart-grid-dialog-editor");t.setAttribute("focus",""),t.querySelector(".smart-grid-cell-editor").focus()}}}else a.cancelEdit(),a._openRowSettingsDialog(n.id)}};i.btnNext.onmousedown=t=>{e(!0),t.preventDefault(),t.stopPropagation()},i.btnPrev.onmousedown=t=>{e(!1),t.preventDefault(),t.stopPropagation()}}if(!a._dialogEdit)if(i.modal=!0,i.btnConfirm.innerHTML=a.localize("dialogEditButtonConfirm"),i.btnCancel.innerHTML=a.localize("dialogEditButtonCancel"),i.onOpen=function(){a.editing.dialog.visible=!0,a._settingsDialogRowId&&i.editorsContent&&i.editorsContent.offsetHeight&&(i.editorsContent.style.maxHeight=i.editorsContent.offsetHeight+40+"px")},i.onClose=function(){a.editing.dialog.visible=!1,i.row&&(i.row.showDetail=!1)},i.btnCancel.onclick=function(){a.cancelEdit()},i.btnClose.onclick=function(){a.cancelEdit()},i.btnConfirm.onclick=function(){if(void 0!==a._settingsDialogRowId){if(a.rowById[a._settingsDialogRowId]){const e=a.editing.editRow;if(!e)return!1;const t=e.cells;let l={};e.element.removeAttribute("error");for(let e=0;e<t.length;e++){const i=t[e],n=a._getEditorValue(i);l[i.column.dataField]=n}const n=a.validateRow(e.id,l);if(Object.keys(n).length>0){let e=!0;for(let l=0;l<t.length;l++){const o=t[l],r=n[o.column.dataField],s=i.querySelector(`[label-for="${o.column.dataField}"]`);if(s&&(s.innerHTML=""),r)for(let t in r){const i=r[t];let l="";if(!i)continue;let n=i[t];"minLength"!==t&&"maxLength"!==t||(n=i[t.toLowerCase()]),l=i.message?i.message:"required"===t||"valueMissing"===t?a.localize("requiredValue",{value:o.column.label}):"min"===t?a.localize("invalidMinValue",{value:o.column.label,min:n.min}):"max"===t?a.localize("invalidMaxValue",{value:o.column.label,max:n.max}):"minLength"===t?a.localize("invalidMinLengthValue",{value:o.column.label,min:n.requiredLength}):"maxLength"===t?a.localize("invalidMaxLengthValue",{value:o.column.label,max:n.requiredLength}):a.localize("invalidValue"),e=!1,s&&(s.innerHTML=l)}}if(!e)return}const o=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)}e.style=i._rowStyle,a.onRowStyle&&o!==e.style&&(null===o?a.onRowStyle(e.index,e,e.style):o.background===e.style.background&&o.color===e.style.color&&o.fontSize===e.style.fontSize&&o.fontStyle===e.style.fontStyle&&o.fontFamily===e.style.fontFamily&&o.fontWeight===e.style.fontWeight&&o.status===e.style.status&&o.textDecoration===e.style.textDecoration||a.onRowStyle(e.index,e,e.style))}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;r%2==0&&(o=document.createElement("div"),o.classList.add("smart-grid-edit-dialog-row"),n.appendChild(o));const i=document.createElement("div");i.classList.add("col-sm-6");const l=document.createElement("div");l.classList.add("column");const s=a._settingsDialogRowId?document.createElement("div"):document.createElement("label");s.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),o.appendChild(i),l.appendChild(s),l.appendChild(d),r++}}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(i.open(),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)),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){const i=this;e.classList.add("smart-grid-dialog-expand-row");const l=e._rowStyle=JSON.parse(JSON.stringify(a._style)),n=e._rowComments=JSON.parse(JSON.stringify(a.comments)),o=[];e.columnVisibility=o;const r=document.createElement("div"),s=document.createElement("div"),d=document.createElement("div");d.appendChild(r),d.appendChild(s),t.appendChild(d),d.classList.add("smart-grid-edit-dialog-layout"),r.classList.add("smart-grid-edit-dialog-editors-container"),s.classList.add("smart-grid-edit-dialog-activity-container"),Smart.Utilities.Core.isMobile&&(d.setAttribute("mobile",""),e.setAttribute("mobile",""));let c=0;for(let e=0;e<i.columns.length;e++){const t=i.columns[e];t.allowEdit&&!1!==t._visible&&c++}c>=8?r.classList.add("many"):r.classList.remove("many"),e.editorsContent=r,e.activityContent=s;const u=document.createElement("div"),m=document.createElement("div");s.appendChild(u),s.appendChild(m);let g=n&&n.length?" ("+n.length+")":"";u.innerHTML=`\n <div class="tabs">\n <div view="details" class="active tab"><div class="tab-label">${i.localize("detailsTab")}</div></div>\n <div view="comments" class="tab"><div class="tab-label">${i.localize("commentsTab")}${g}</div></div>\n <div view="history" class="tab smart-hidden"><div class="tab-label">${i.localize("historyTab")}</div></div>\n </div>\n <div class="details-tab">\n <div class="smart-grid-edit-dialog-row"><div class="column"><div class="header smart-grid-edit-dialog-column-info">${i.localize("format").replace(":","")}\n <span title="${i.localize("resetFormat")}" class="reset-format smart-grid-icon smart-icon-reload show"></span>\n </div>\n </div>\n <div class="format-layout">\n <div title="${i.localize("background")}" class="format smart-grid-edit-dialog-column-info">\n <span class="smart-grid-icon smart-icon-color-background show"></span><div class="background"></div>\n </div>\n <div title="${i.localize("color")}" class="format smart-grid-edit-dialog-column-info">\n <span style="border-bottom: 2px solid #46CA78;" color="#46CA78" class="format smart-grid-icon smart-icon-font show"></span><div class="color"></div>\n </div>\n <div class="format-layout button-group">\n <span title="${i.localize("bold")}" class="formatbtn bold smart-grid-icon smart-icon-bold show"></span>\n <span title="${i.localize("italic")}" class="formatbtn italic smart-grid-icon smart-icon-italic show"></span>\n <span title="${i.localize("underline")}" class="formatbtn underline smart-grid-icon smart-icon-underline show"></span>\n </div>\n </div>\n <div class="format-layout font-group">\n <div title="${i.localize("fontFamily").replace(":","")}" class="format smart-grid-edit-dialog-column-info">\n <span class="smart-grid-icon smart-icon-font show"></span><div class="font-family"></div>\n </div>\n <div title="${i.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="${i.localize("status").replace(":","")}" class="format smart-grid-edit-dialog-column-info">\n <span color="#F1C58B" class="smart-grid-icon smart-icon-star show"></span><div class="status"></div>\n </div>\n </div>\n </div>\n </div>\n <div class="comments-tab smart-hidden">\n <div class="column"><div class="comments-header smart-grid-edit-dialog-column-info">${i.localize("comments").replace(":","")}</div></div>\n <div class="comments-layout">\n <div class="comments"><span class="no-comments">${i.localize("noComments")}</span></div>\n <div class="footer">\n <smart-text-area hint="${i.localize("comment")}" placeholder="${i.localize("comment")}" class="success underlined"></smart-text-area>\n <smart-button class="success">${i.localize("send")}</smart-button>\n </div>\n </div>\n </div>\n <div class="history-tab smart-hidden">\n <div class="history-layout">\n </div>\n </div>\n `;const p=u.querySelectorAll(".tab");i.storeHistory&&(!i._currentUser||i._currentUser&&!i._currentUser.info?p[p.length-1].classList.add("smart-hidden"):p[p.length-1].classList.remove("smart-hidden")),!i.users||i.users&&0===i.users.length||!i._currentUser||i._currentUser&&!i._currentUser.info?p[p.length-2].classList.add("smart-hidden"):p[p.length-2].classList.remove("smart-hidden"),u.querySelector(".tabs").onpointerdown=e=>{const t=e.target.closest(".tab");if(t){const e=t.getAttribute("view"),a=u.querySelector(".details-tab"),l=u.querySelector(".comments-tab"),n=u.querySelector(".history-tab");a.classList.add("smart-hidden"),l.classList.add("smart-hidden"),n.classList.add("smart-hidden");for(let e=0;e<p.length;e++)p[e].classList.remove("active");switch(t.classList.add("active"),e){case"details":a.classList.remove("smart-hidden");break;case"comments":l.classList.remove("smart-hidden");break;case"history":n.classList.remove("smart-hidden"),i._refreshHistory()}}};const b=i._getColorInput();u.querySelector(".background").appendChild(b),b.onchange=()=>{l.background=b.value},l.background&&(b.value=l.background);const f=i._getColorInput();u.querySelector(".color").appendChild(f),f.onchange=()=>{l.color=f.value},l.color&&(f.value=l.color);const h=i._getColorInput();u.querySelector(".status").appendChild(h),h.onchange=()=>{l.status=h.value},l.status&&(h.value=l.status);const v=document.createElement("smart-input");v.style.width="auto",v.classList.add("underlined"),v.dropDownButtonPosition="right",v.readonly=!0,v.dropDownHeight="auto",v.dataSource=["-","Segoe UI","Arial","Georgia","Impact","Tahoma","Times New Roman","Verdana"],v.onchange=()=>{l.fontFamily=v.value},l.fontFamily?v.value=l.fontFamily:v.selectedIndex=0,u.querySelector(".font-family").appendChild(v);const y=document.createElement("smart-input");y.style.width="auto",y.classList.add("underlined"),y.dropDownButtonPosition="right",y.readonly=!0,y.dropDownHeight="auto",y.dataSource=["-","8px","10px","12px","14px","18px","24px","36px"],y.onchange=()=>{l.fontSize=y.value},l.fontSize?y.value=l.fontSize:y.selectedIndex=0,u.querySelector(".font-size").appendChild(y);const C=u.querySelector(".button-group");C.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")?l.fontWeight=a?"bold":null:t.classList.contains("italic")?l.fontStyle=a?"italic":null:t.classList.contains("underline")&&(l.textDecoration=a?"underline":null)},l.fontWeight?C.children[0].classList.add("checked"):C.children[0].classList.remove("checked"),l.fontStyle?C.children[1].classList.add("checked"):C.children[1].classList.remove("checked"),l.textDecoration?C.children[2].classList.add("checked"):C.children[2].classList.remove("checked"),u.querySelector(".reset-format").onclick=()=>{for(let e=0;e<C.children.length;e++)C.children[e].classList.remove("checked");v.selectedIndex=0,y.selectedIndex=0,f.value="",b.value="",h.value="",l.fontWeight=null,l.fontStyle=null,l.textDecoration=null,l.fontSize=null,l.fontFamily=null};const w=u.querySelector(".comments-header"),S=u.querySelector('[view="comments"]'),_=u.querySelector(".comments-layout smart-text-area"),D=u.querySelector(".comments-layout smart-button"),L=u.querySelector(".comments-layout .footer"),k=u.querySelector(".comments-layout .comments");D.disabled=!0,k.innerHTML=`<span class="no-comments">${i.localize("noComments")}</span>`;const A=()=>{const e=k.querySelector(".no-comments");0===n.length?e.classList.remove("smart-hidden"):e.classList.add("smart-hidden")},x=e=>{e.querySelector(".remove-button").onclick=e=>{const t=e.target,l=n.indexOf(t.comment);if(l>-1){const e=n[l];n.splice(l,1),i.$.fireEvent("commentRemove",{id:a.id,value:e}),i.onComment&&i.onComment(a.id,n),t.element.remove();const o=n.length?"("+n.length+")":"";w.innerHTML=S.innerHTML=`${i.localize("comments").replace(":","")} ${o}`}}};for(let e=0;e<n.length;e++){const t=n[e],a=i._createComment(t);x(a),k.appendChild(a)}w.innerHTML=`${i.localize("comments").replace(":","")} ${g}`,A(),_.onfocus=()=>{L.classList.add("focus")},_.onblur=()=>{L.classList.remove("focus")},_.onkeyup=()=>{D.disabled=""===_.value},D.onclick=()=>{if(""===_.value)return;i._refreshCurrentUser();const e={text:_.value,id:function(){const e=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return e()+e()}(),userId:i._currentUser.info?i._currentUser.info.id:-1,time:new Date},t=i._createComment(e);x(t),n.push(e),i.$.fireEvent("commentAdd",{id:a.id,value:e}),i.onComment&&i.onComment(a.id,n),_.value="",D.disabled=!0,A(),k.appendChild(t);const l=n.length?"("+n.length+")":"";w.innerHTML=S.innerHTML=`${i.localize("comments").replace(":","")} ${l}`};for(let e=0;e<i.columns.length;e++){const t=i.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);const l=document.createElement("div"),n=i._settingsDialogRowId?document.createElement("div"):document.createElement("label"),s=t.validationRules&&t.validationRules.length>0?"*":"";n.innerHTML=`<div class="smart-grid-edit-dialog-column-info"><span class="smart-grid-icon ${i.columns[e].icon} show"></span><label>`+i.columns[e].label+s+'</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,o[t.dataField]=t.visible,c.title=i.localize("columnMenuItemHide"),!1===i.editing.enabled&&c.classList.add("smart-visibility-hidden"),c.onclick=()=>{o[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=i.localize("columnMenuItemShow")):(c.classList.add("smart-icon-visibility-on"),c.classList.remove("smart-icon-visibility-off"),c.title=i.localize("columnMenuItemHide"))},t.visible||(c.classList.remove("smart-icon-visibility-on"),c.title=i.localize("columnMenuItemShow")),t.visible?c.classList.add("smart-icon-visibility-on"):c.classList.add("smart-icon-visibility-off"),l.appendChild(n),l.appendChild(d);const u=document.createElement("label");u.classList.add("smart-field-editor-error-label"),u.setAttribute("label-for",t.dataField),l.appendChild(u),a.appendChild(l)}}_refreshHistory(){const e=this,t=e._dialogEdit;if(!t)return;const a=t.querySelector(".history-layout");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=i.length-1;t>=0;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?t.label:a.action})}if(l+='<div class="history-row">',void 0!==a.user){const t=(t=>{const a=t?t.image:null;return{image:a?`background-image: url('${a}');`:"",label:t?t.name||t.id:e.localize("guestUser"),cssClass:a?"image":""}})(e.users.find((e=>e.id===a.user)));l+=`<div class="history-user"><div class="user-icon smart-user ${t.cssClass}" style="${t.image}"></div><div class="user-name">${t.label}</div><div class="time">${new Smart.Utilities.DateTime(a.date).toString("dd/MM/yyyy hh:mm")}</div></div>`}else l+="<div></div>";if(l+='<div class="history-action">',l+=`<div>${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){const 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 smart-truncate">${e._kanban.localize("taskSubtasksCompleted",{value:t.length+"/"+a.details.value.length})}</span>`:l+=`<span class="detail smart-truncate">${e.localize("completed",{value:t.length})}</span>`}else{t&&"object"==typeof t&&t instanceof Date&&(t=t.toLocaleString()),i&&"object"==typeof i&&i instanceof Date&&(i=i.toLocaleString());let n=e.columnByDataField[a.action];n||(n=e.columnByDataField["task"+a.action.substring(0,1).toUpperCase()+a.action.substring(1)]),"user"===a.action&&(n=e.columnByDataField.taskUserId);let o="";n&&n.label&&(o='"'+n.label+'"'),n&&"date"===n.dataType&&(t&&"string"==typeof t&&(t=new Date(t).toLocaleString()),i&&"string"==typeof i&&(i=new Date(i).toLocaleString())),l+=t?`<span class="detail smart-truncate">${e.localize("range",{column:o,oldValue:t,newValue:i})}</span>`:`<span class="detail smart-truncate">${e.localize("nullRange",{column:o,oldValue:t,newValue:i})}</span>`}}else l+=`<div>${a.details.value}</div>`;l+="</div>\n </div>"}l+="",a.innerHTML=l}_createComment(e){const t=this,a=t.users.find((t=>t.id===e.userId)),i=document.createElement("div"),l=a?a.name||a.id:t.localize("guestUser"),n=a?a.name:t.localize("guestUser"),o=a.image?a.image:"";if(i.className="comment",i.setAttribute("role","listitem"),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">${n}</div>\n <div class="time" aria-label="Comment time">${e.time?new Smart.Utilities.DateTime(e.time).toString(t.formatStringTime):""}</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>\n<div class="comment-body" aria-label="Comment text">${e.text||""}</div >\n</div>`,o){const e=i.querySelector(".user-icon");e.style.backgroundImage=`url('${o}')`,e.classList.add("image")}i.comment=e;const r=i.querySelector(".remove-button");return r.comment=e,r.element=i,e.userId!==t._currentUser.info.id&&r.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,o="string"===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"}]:"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 r=e.column;r.summary&&r.summary.forEach((e=>{l.select(e)}));const s=l.offsetHeight;a.column=r,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:r.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-s-0),setTimeout((function(){a.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),r=a.offset(a);i.open(o.left-r.left,o.top+n.offsetHeight-r.top);const s=i.querySelector("smart-input");switch(s.selectedIndex=0,s.readonly=!0,s.dropDownButtonPosition="right",t){case"rename":s.value=e.label;break;case"editDescription":s.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:"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")}];if(e.header.visible&&e.header.buttons.indexOf("views")>=0){const a={value:"startDate",prefix:'<span class="smart-grid-icon visible smart-icon-calendar"></span>',label:e.localize("dialogAddColumnTypeStartDate")},i={value:"dueDate",prefix:'<span class="smart-grid-icon visible smart-icon-calendar"></span>',label:e.localize("dialogAddColumnTypeDueDate")},l={value:"progress",prefix:'<span class="smart-grid-icon visible smart-icon-number"></span>',label:e.localize("dialogAddColumnTypeProgress")},n={value:"priority",prefix:'<span class="smart-grid-icon visible smart-icon-sort-down"></span>',label:e.localize("dialogAddColumnTypePriority")},o={value:"status",prefix:'<span class="smart-grid-icon visible smart-icon-sort-down"></span>',label:e.localize("status")},r={value:"name",prefix:'<span class="smart-grid-icon visible smart-icon-font"></span>',label:e.localize("dialogAddColumnTypeName")},s={value:"description",prefix:'<span class="smart-grid-icon visible smart-icon-fontsize"></span>',label:e.localize("dialogAddColumnTypeDescription")},d={value:"tags",prefix:'<span class="smart-grid-icon visible smart-icon-list-unordered"></span>',label:e.localize("dialogAddColumnTypeTags")},c={value:"checklist",prefix:'<span class="smart-grid-icon visible smart-icon-list-ordered"></span>',label:e.localize("dialogAddColumnTypeChecklist")},u={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(l),t.push(n),t.push(r),t.push(s),t.push(d),t.push(c),t.push(u),t.push(o)}return t}_getAddStackColumnDialogTemplate(){const e=this,t=[];let a=!1,i=!1,l="";for(let n=0;n<e.columns.length;n++){const o=e.columns[n];(o.statusColumn||"taskStatus"===o.dataField||"taskStatus"===o._dataField)&&(t.push({label:o.label,value:o.dataField}),e._stackedBy===o.dataField&&(t[t.length-1].checked=!0,i=!0,l=t[t.length-1].label)),a||o.editor&&o.editor.collaborator&&(t.push({label:o.label,value:o.dataField}),e._stackedBy===o.dataField&&(t[t.length-1].checked=!0,i=!0,l=t[t.length-1].label),a=!0)}const n=t.concat([{value:"blank",label:e.localize("kanbanNone")},{value:"basic",label:e.localize("kanbanBasic")}]);return i||(n[0].checked=!0,l=n[0].label),[{bind:"kanban",name:"kanban",type:"radio",label:2===n.length?e.localize("kanbanNoneDescription"):e.localize("kanbanDescription",{column:l}),filter:"kanban",options:n},{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",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",value:!1,info:""},{bind:"allowCustomDateSeparator",type:"boolean",label:e.localize("dialogAddColumnCustomDateSeparator"),filter:"date",value:!1,info:""},{bind:"dateFormatSeparator",name:"dateFormatSeparator",type:"radio",label:"",filter:"date",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:"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:"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:"allowResize",type:"boolean",filter:"any",width:"50%",label:e.localize("dialogAddColumnResizable"),info:e.localize("dialogAddColumnResizableInfo")},{bind:"required",type:"boolean",width:"50%",filter:"text",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"),r=t._getKanbanFields(),s=e.querySelector('[field-name="kanbanNotes"]');s&&("kanban"!==t.view?s.classList.add("smart-hidden"):s.classList.remove("smart-hidden"));let d=!!a;for(let i=0;i<o.length;i++){const l=o[i],s=l.getAttribute("filter"),c=l.getAttribute("bind"),u=l.parentNode;if(u.classList.add("smart-hidden"),"cellsAlign"===c&&("boolean"===n||"attachment"===n||"image"===n||"email"===n||"url"===n||"collaborator"===n||"createdBy"===n||"password"===n||"phone"===n||"createdTime"===n||"updatedBy"===n||"updatedTime"===n||r.indexOf(n)>=0))u.classList.add("smart-hidden");else if("type"===c&&d)u.classList.add("smart-hidden");else if("allowEdit"===c&&(!1===t.editing.enabled||"autoNumber"===n||"createdBy"===n||"updatedBy"===n||"createdTime"===n||"updatedTime"===n||r.indexOf(n)>=0))u.classList.add("smart-hidden");else if("allowResize"!==c||"none"!==t.behavior.columnResizeMode)if("allowFilter"!==c||!1!==t.filtering.enabled)if("allowSort"!==c||!1!==t.sorting.enabled)if("required"!==c||!1!==t.editing.enabled&&("string"===n||"multiText"===n))if(a&&a.disabledDialogOptions&&a.disabledDialogOptions.length>0&&a.disabledDialogOptions.indexOf(c)>=0)u.classList.add("smart-hidden");else{if(a&&"kanban"===t.view){switch(c){case"options":case"allowColorItems":case"allowSort":case"allowFilter":case"align":case"cellsAlign":case"allowResize":case"allowEdit":u.classList.add("smart-hidden");continue}"kanban"===t.view&&"kanban"===s&&u.classList.remove("smart-hidden")}if(a&&a.editor&&a.editor.collaborator)switch(c){case"options":u.classList.add("smart-hidden");continue;case"users":u.classList.remove("smart-hidden");continue}if("name"!==c||"kanban"!==t.view)if("any"!==s)switch(n){default:case"text":"text"===s&&u.classList.remove("smart-hidden"),a&&"any"===a.dataType&&u.classList.add("smart-hidden");break;case"slider":case"number":if("number"===s&&u.classList.remove("smart-hidden"),"unit"===c||"currency"===c||"allowThousandsSeparator"===c){u.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":s.indexOf("list")>=0&&u.classList.remove("smart-hidden");break;case"collaborator":s.indexOf("collaborator")>=0&&u.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"startDate":case"dueDate":case"progress":case"checklist":case"priority":case"tags":case"name":case"description":case"assigned":case"status":case"color":case"boolean":if("status"===n||"priority"===n){s.indexOf("list")>=0&&u.classList.remove("smart-hidden");break}break;case"date":{const t=e.querySelector('[field-name="dateFormat"]').querySelector(".smart-input").value;"date"===s&&u.classList.remove("smart-hidden");const a=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="")},i=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")},n=t=>{const a=e.querySelector('[field-name="dateFormatSeparator"]');t?a.classList.remove("smart-hidden"):a.classList.add("smart-hidden")};if("allowTimeFormat"===c){const e=l.querySelector(".smart-input").value;l.onchange=e=>{a(e)},a(e)}if("dateFormat"===c){const e=l.querySelector(".smart-input").value;l.onchange=e=>{i(e.detail.value)},i(e)}if("dateFormatSeparator"===c){const t=e.querySelector('[field-name="allowCustomDateSeparator"]').querySelector(".smart-input").value;n(t)}if("allowCustomDateSeparator"===c){t.indexOf("T")>=0&&t.indexOf("-")>0&&l.uncheck();const e=l.querySelector(".smart-input").value;l.onchange=e=>{n(e)},n(e)}i(t);break}}else u.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 u.classList.add("smart-hidden");else u.classList.add("smart-hidden");else u.classList.add("smart-hidden");else u.classList.add("smart-hidden")}}_addColumnDialogInitEditors(e,t,a){const i=this,l=e.editColumn;for(let n in a){const o=a[n],r=o.querySelector("input"),s=o.querySelector("smart-input");switch(n){case"allowTimeFormat":{const e=o.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"allowCustomDateSeparator":{const e=o.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=o.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,r=e.querySelector('[field-name="options"]'),s=e.querySelector('[field-name="allowColorItems"]'),d=e.querySelector('[field-name="name"]'),c=()=>{const t=r.querySelector("smart-sortable");t&&(t._validate(),e&&e.offsetHeight&&e.setPosition("center"))};n===t.length-1?(o.innerHTML=i.localize("kanbanBasicDescription"),s.classList.remove("smart-hidden"),r.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"),s.classList.add("smart-hidden"),r.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}),s.classList.add("smart-hidden"),r.classList.remove("smart-hidden"),r.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?s.selectedIndex=0:l.cellsFormat.indexOf("dddd, MMMM dd, yyyy")>=0?s.selectedIndex=1:l.cellsFormat.indexOf("yyyy-MM-ddTHH:mm:ss.sssZ")>=0?s.selectedIndex=2:l.cellsFormat.indexOf("d/M/yyyy")>=0?s.selectedIndex=3:l.cellsFormat.indexOf("yyyy-MM-dd")>=0?s.selectedIndex=4:l.cellsFormat.indexOf("MMMM, dd, yyyy")>=0&&(s.selectedIndex=5):s.selectedIndex=0;break;case"timeFormat":l&&l.cellsFormat&&l.cellsFormat.indexOf("HH")>=0&&-1===l.cellsFormat.indexOf("T")?s.selectedIndex=1:s.selectedIndex=0;break;case"allowMultipleCollaborators":{let e=!0;l&&l.editor&&l.editor.singleSelect&&(e=!1);const t=o.querySelector(".smart-input");l?e?(t.value=!0,t.setAttribute("checked","")):(t.value=!1,t.removeAttribute("checked")):(t.value=!0,t.setAttribute("checked",""));break}case"allowThousandsSeparator":{const e=o.querySelector(".smart-input");l&&l.editor&&"numberInput"===l.editor.template?(e.value=!0,e.setAttribute("checked",""),"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)s.selectedIndex=0;else if("decimal"===l.editor.numberFormat.style&&2===l.editor.numberFormat.minimumFractionDigits)s.selectedIndex=1;else if("percent"===l.editor.numberFormat.style&&2===l.editor.numberFormat.minimumFractionDigits)s.selectedIndex=2;else if("percent"===l.editor.numberFormat.style&&0===l.editor.numberFormat.maximumFractionDigits)s.selectedIndex=3;else if("decimal"===l.editor.numberFormat.style&&"scientific"===l.editor.numberFormat.notation)s.selectedIndex=4;else if("decimal"===l.editor.numberFormat.style&&"engineering"===l.editor.numberFormat.notation)s.selectedIndex=5;else if("currency"===l.editor.numberFormat.style&&"accounting"===l.editor.numberFormat.currencySign)s.selectedIndex=6;else if("unit"===l.editor.numberFormat.style){s.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?s.selectedIndex=9:"currency"===l.editor.numberFormat.style&&(s.selectedIndex=8);else s.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&&(s.selectedIndex=e)}}else s.selectedIndex=0;break;case"allowCheckItems":{const e=o.querySelector(".smart-input");l?l.editor&&!l.editor.pills?(e.value=!0,e.setAttribute("checked","")):!1===l[n]&&(e.value=!1,e.removeAttribute("checked")):(e.value=!0,e.setAttribute("checked",""));break}case"allowColorItems":{const e=o.querySelector(".smart-input");l?l.editor&&l.editor.colorItems?(e.value=!0,e.setAttribute("checked","")):!1===l[n]&&(e.value=!1,e.removeAttribute("checked")):(e.value=!0,e.setAttribute("checked",""));break}case"allowResize":case"allowSort":case"allowEdit":case"allowFilter":case"required":{const e=o.querySelector(".smart-input"),a=t.find((e=>{if(e.bind===n)return e}));l?l[n]?(e.value=!0,e.setAttribute("checked","")):!1===l[n]&&(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"!==n&&"users"!==n){const e=o.querySelector("smart-sortable");if(e&&e._init)if("users"===n){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,image:i.users[e].image});e._init(t)}else e._init()}else{const e=o.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"===n){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,image:i.users[e].image});e._init(t)}else e._init(JSON.parse(JSON.stringify(l.editor.dataSource)))}if(l&&"type"===n?("number"===l.dataType||"int"===l.dataType?s.selectedIndex=3:"date"===l.dataType?s.selectedIndex=7:"bool"!==l.dataType&&"boolean"!==l.dataType||(s.selectedIndex=6),l.editor&&l.editor.template&&s.dataSource.forEach(((e,t)=>{switch(e.value){case"string":"input"===l.editor.template&&(s.selectedIndex=t);break;case"number":"numberInput"===l.editor.template&&(s.selectedIndex=t);break;case"select":"multiComboInput"===l.editor.template&&l.editor.singleSelect&&"tags"===l.template&&(s.selectedIndex=t);break;case"multiSelect":"multiComboInput"!==l.editor.template||l.editor.singleSelect||"tags"!==l.template||(s.selectedIndex=t);break;case"multiText":"textarea"===l.editor.template&&(s.selectedIndex=t);break;case"date":"dateInput"!==l.editor.template&&"dateTimePicker"!==l.editor.template||(s.selectedIndex=t);break;case"checkBox":"checkBox"===l.editor.template&&(s.selectedIndex=t);break;case"slider":"slider"===l.editor.template&&(s.selectedIndex=t);break;case"image":"image"===l.editor.template&&(s.selectedIndex=t);break;case"attachment":"attachment"===l.editor.template&&(s.selectedIndex=t);break;case"updatedTime":"updatedTime"===l.template&&(s.selectedIndex=t);break;case"createdTime":"createdTime"===l.template&&(s.selectedIndex=t);break;case"createdBy":"createdBy"===l.template&&(s.selectedIndex=t);break;case"updatedBy":"updatedBy"===l.template&&(s.selectedIndex=t);break;case"collaborator":"collaborator"===l.template&&l.editor&&l.editor.collaborator&&(s.selectedIndex=t);break;case"autoNumber":"autoNumber"===l.template&&(s.selectedIndex=t);break;case"phone":"phone"===l.template&&(s.selectedIndex=t);break;case"password":"password"===l.template&&(s.selectedIndex=t);break;case"url":"url"===l.template&&(s.selectedIndex=t);break;case"email":"email"===l.template&&(s.selectedIndex=t)}}))):"type"===n&&(s.selectedIndex=0,s.dataSource=i._getTypesList()),"cellsAlign"===n&&l&&("center"===l.cellsAlign||"middle"===l.cellsAlign?s.selectedIndex=2:"right"===l.cellsAlign&&(s.selectedIndex=1)),!r)continue;if("dataField"!==n&&"type"!==n&&"timeFormat"!==n&&"dateFormat"!==n&&"numberFormat"!==n&&"currency"!==n&&"unit"!==n&&"cellsAlign"!==n&&s&&(s.selectedIndex=0),"name"===n){if(l){const e=l.label;s.value=i._unescapeString(e)}else s.value="";s.placeholder=t.find((e=>{if(e.bind===n)return e})).placeholder}"description"===n&&(s.value=l?i._unescapeString(l.description):"",s.placeholder=t.find((e=>{if(e.bind===n)return e})).placeholder);const d=(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"===n?(r.value=-9999999,d(n,r)):"maxValue"===n?(r.value=9999999,d(n,r)):"minLength"===n?(r.value=0,d(n,r)):"maxLength"===n&&(r.value=500,d(n,r)),"minDateTime"===n){const e=o.querySelector("smart-date-input");e.value=new Date(1900,0,1),d(n,e)}else if("maxDateTime"===n){const e=o.querySelector("smart-date-input");e.value=new Date(2100,0,1),d(n,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){switch(e){case"boolean":case"bool":return"checkBox";case"image":return"image";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";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"),r=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&&r.classList.contains("smart-hidden"))l.value=!1;else if("required"===n&&r.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,"""),value:i.getAttribute("data-item-value"),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}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 r={},s={},d="";if(l=o.minDateTime,n=o.maxDateTime,"date"===o.type){r={template:"dateInput",min:l,max:n};let e=!1;"-"!==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&&(r.template="dateTimePicker",r.dropDownDisplayMode="auto",r.formatString=d),e=!0),r.autoOpen=!0,o.allowTimeFormat&&"-"!==o.timeFormat&&(e&&(d+=" "),d+=o.timeFormat,r.template="dateTimePicker",r.dropDownDisplayMode="auto",r.formatString=d),o.cellsFormat=d,i.push({type:"minDate",value:l}),i.push({type:"maxDate",value:n})}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),r={template:"number"===o.type?"numberInput":"slider",min:l,max:n,numberFormat:o.numberFormat},s={Intl:{NumberFormat:o.numberFormat}},a&&(s=a),d="d",e&&(d=e),i.push({type:"min",value:l}),i.push({type:"max",value:n})}else if("boolean"===o.type)r={template:"checkBox"};else if("image"===o.type)r={template:"image"};else if("attachment"===o.type)r={template:"attachment"};else if("select"===o.type||"multiSelect"===o.type){let a=o.options;if("select"===o.type)if(e.editColumn&&!e.editColumn.editor.allowEmptyItem){a=o.options;for(let e=0;e<o.options.length;e++){if(""===o.options[e].label){o.options[e].value="";break}if(""===o.options[e].value){const t=Smart.Utilities.Core.toCamelCase(o.options[e].label.replaceAll(" ","-"));o.options[e].value=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}else{let e=!1;for(let t=0;t<o.options.length;t++)if(""===o.options[t].label){e=!0,o.options[t].value="";break}a=e?o.options:[""].concat(o.options)}r={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=[""].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)}));r={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,r={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,r={template:"password",min:l,max:n,required:o.required},i.push({type:"minLength",value:l}),i.push({type:"maxLength",value:n})):"phone"===o.type?r={template:"phone",required:o.required}:(l=o.minLength,n=o.maxLength,r={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"date":c="date";break;case"autoNumber":case"slider":case"number":c="number"}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=r.template+"_"+a.dataField+l;t._cellEditors[n]&&delete t._cellEditors[n];let c=!0;"list"!==a.template&&"dropDownList"!==a.template||(c=!1),"autoNumber"!==a.template&&"createdBy"!==a.template&&"updatedBy"!==a.template&&"createdTime"!==a.template&&"updatedTime"!==a.template&&"checklist"!==a.template&&"color"!==a.template||(c=!1),a.dataField.indexOf("taskTags")>=0&&(c=!1),a.editor&&a.editor.template.indexOf("custom")>=0&&(c=!1),a.editor&&a.editor.disabledDialogOptions&&(c=!1),c&&(a.editor=JSON.parse(JSON.stringify(r)),a.template=t._getColumnTemplateByType(o.type),a._cellsCachedValues=[]),a.formatSettings=s,a._isDirty=!0,o.required&&i.push({type:"required"}),a.validationRules=i,a._state&&["label","description","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:r,summary:e,template:t._getColumnTemplateByType(o.type),formatSettings:s,cellsAlign:o.cellsAlign,align:o.cellsAlign,cellsFormat:d,visibleIndex:t.columns.length-1,grid:t});if("autoNumber"===l.template&&(l.autoGenerated=!0,e=[]),o.required&&(i.push({type:"required"}),l.validationRules=i),t._getKanbanFields().indexOf(o.type)>=0){const e=t._getKanbanTaskField(o.type);switch(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":e.editor.dataSource=JSON.parse(JSON.stringify(o.options))}const a=t.columnByDataField[e.dataField];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"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")}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,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 r=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.onOpen=function(){const e=i._dialogAddColumn,t=i._getAddColumnDialogTemplate(),a=i._addColumnDialogEditors;i._addColumnDialogInitEditors(e,t,a),i._addColumnDialogShowHideEditors(e),i.$.fireEvent("openColumnDialog",{dataField:e.editColumn?e.editColumn.dataField:null});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"),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,r,l,e)}const s=()=>{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,r=a.left,s=Math.max(r,o);if(s+t+n.offsetWidth>a.left+i.offsetWidth){const i=s-t+n.offsetWidth;i<0?l.open("center",e.top+n.offsetHeight-a.top):l.open(Math.max(r,i),e.top+n.offsetHeight-a.top)}else l.open(s,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,r=a.left,s=Math.max(r,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,r=a.left,s=Math.max(r,o)),l.open(s,n.top+e.offsetHeight-a.top)}else l.open("center","center"),l.classList.add("center")};s(),l.refresh=()=>{s()}}_initAddColumnDialogEditors(e,t,a,i){const l=this;for(let n=0;n<t.length;n++){const o=t[n],r=document.createElement("div"),s=document.createElement("label");s.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),r.setAttribute("field-name",o.bind),r.setAttribute("field-filter",o.filter),e[o.bind]=d,"type"===o.bind&&d.addEventListener("change",(()=>{l._addColumnDialogShowHideEditors(a);const t=l._dialogAddColumn.querySelector('[bind="type"]'),i=t.querySelector("smart-input"),n=i.getSelectedItem().value;let o="smart-icon-font";switch(n){case"multiText":o="smart-icon-fontsize";break;case"image":o="smart-icon-image";break;case"attachment":o="smart-icon-docs";break;case"number":case"progress":o="smart-icon-number";break;case"priority":case"status":case"select":o="smart-icon-sort-down";break;case"multiSelect":o="smart-icon-list-unordered";break;case"boolean":o="smart-icon-check-squared";break;case"date":case"startDate":case"dueDate":o="smart-icon-calendar";break;case"createdTime":case"updatedTime":o="smart-icon-clock";break;case"createdBy":case"updatedBy":case"collaborator":o="smart-icon-user";break;case"slider":o="smart-icon-number";break;case"autoNumber":case"checklist":o="smart-icon-list-ordered";break;case"url":o="smart-icon-link";break;case"email":o="smart-icon-mail";break;case"password":o="smart-icon-lock";break;case"phone":o="smart-icon-phone";break;case"name":o="smart-icon-font";break;case"description":o="smart-icon-fontsize";break;case"tags":o="smart-icon-font";break;case"color":o="smart-icon-color-background";break;case"assigned":o="smart-icon-user"}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");t&&t._validate&&(t._init(),t._validate())}else if("priority"===n||"status"===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,r,i,s);else{if("label"===o.type){i.appendChild(r),r.classList.add("smart-grid-dialog-field"),r.appendChild(s);const e=document.createElement("div");e.style.height="10px",r.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&&(r.style.width=o.width,r.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 r=()=>{if(a.btnConfirm.disabled=!1,0===i.offsetHeight)return;let e=0;i.querySelectorAll(".edit-column-input").forEach((t=>{""===t.value&&e++,e>1&&(a.btnConfirm.disabled=!0)}))},s=(i,s,d,c)=>{const u=document.createElement("div"),m=l._getColorInput(),g=document.createElement("div"),p=document.createElement("smart-input"),b=e.allowColorItems;if(void 0!==d)p.setAttribute("data-id",d),p.setAttribute("data-item-value",d);else{const e=n.querySelectorAll(".smart-sortable-item").length;p.setAttribute("data-id",e),p.setAttribute("data-item-value",e)}return void 0!==c&&p.setAttribute("data-item-value",c),m.disabled=!b.querySelector(".smart-input").value,g.className="smart-grid-icon smart-icon-close show",g.setAttribute("role","button"),g.setAttribute("aria-label","button"),p.classList.add("underlined","edit-column-input"),p.style.width="100%",p.style.height="30px",p.required=!0,(a.editColumn&&"collaborator"===a.editColumn.template||"users"===o.bind)&&(p.disabled=!0),i&&(p.value=l._unescapeString(i)),s&&(m.value=s),p.onkeyup=p.onchange=p.onblur=e=>{r(),"Enter"===e.key&&(p.parentElement.nextElementSibling||(t.click(),r()))},u.appendChild(m),u.appendChild(p),"users"!==o.bind&&u.appendChild(g),g.onclick=()=>{u.remove(),n.updateItems(),r()},u.classList.add("smart-sortable-item","smart-grid-add-column-dialog-color-item"),"users"===o.bind&&u.setAttribute("disable-drag",""),u};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=s(e.label,e.color,a,e.value);n.$.container.appendChild(i)})),n.updateItems())},n._validate=r,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=()=>{const e=s();n.$.container.appendChild(e),n.updateItems(),e.querySelector(".edit-column-input").focus(),a.btnConfirm.disabled=!0}),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(r),r.classList.add("smart-grid-dialog-field"),r.appendChild(s),r.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:"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:"Euro",sign:"€",abbreviation:"EUR"},{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"),r=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"),l.btnCancel.classList.add("smart-hidden"),i.cancelEdit(),l.content&&(l.content.innerHTML="");const s=document.createElement("div");s.classList.add("smart-content-layout-container"),l.content.appendChild(s),i._addStackColumnDialogEditors=[];const d=i._addStackColumnDialogEditors;if(i._initAddColumnDialogEditors(d,r,l,s),!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),r=parseInt(n.left);if((window.offsetWidth<i||window.offsetHeight<l||o<0||r<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%"},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},r=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")),s.innerHTML=`<img src="${e}"/>`;const a=s.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=()=>{r(i)}}const s=t._dialogImagePreview.content.querySelector(".image-preview");s.innerHTML="",s.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.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();r(a[t-1]),e.stopPropagation(),e.preventDefault()}else if("ArrowDown"===e.key||"ArrowRight"===e.key){const t=o();r(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&&r(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 r=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){r=e[t].value;break}}let s=-1;for(let e=0;e<a.uploadedWithLink.length;e++){const t=a.uploadedWithLink[e];if(t&&t.label===l){s=e;break}}if(s>=0&&a.uploadedWithLink.splice(s,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=r;t.uploadSettings.onUploadRemove(e)}if(t.uploadSettings.removeUrl){let e=new FormData,a=new XMLHttpRequest;e.append(t.uploadSettings.name,r),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"),r=n?`, ${t._getFileSize(e.size)}.`:"";let s;return o.textContent=o.textContentTitle=`${e.name}${r}`,o.textContent.length>20&&(o.textContent=`${e.name.substring(0,5)}...${e.name.substring(e.name.length-4)} ${r}`),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?(s=document.createElement("div"),s.classList.add("attachment","smart-grid-icon","show"),e.name.indexOf(".pdf")>=0?s.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?s.classList.add("smart-icon-image"):e.name.indexOf(".tsv")>=0||e.name.indexOf(".txt")>=0||e.name.indexOf(".csv")>=0?s.classList.add("smart-icon-text"):e.name.indexOf(".xls")>=0||e.name.indexOf(".xlsx")>=0?s.classList.add("smart-icon-excel"):e.name.indexOf(".ppt")>=0?s.classList.add("smart-icon-powerpoint"):e.name.indexOf(".zip")>=0||e.name.indexOf(".rar")>=0||e.name.indexOf(".7z")>=0?s.classList.add("smart-icon-archive"):e.name.indexOf(".doc")>=0||e.name.indexOf(".docx")>=0?s.classList.add("smart-icon-word"):s.classList.add("smart-icon-file")):(s=document.createElement("img"),s.loading="lazy",s.src=a.objectURL[e.name+"_"+n],s.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(s),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,r=t.column.editor.maxImages||e.uploadSettings.uploadMaxCount||5,s=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>=r)c.push(i.name);else if(i.size>s){const t=document.createElement("p");t.textContent=t.textContentTitle=e.localize("dialogFileSize",{value:i.name,fileSize:e._getFileSize(s)}),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:r}),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.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 r=(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 s=[];s.push(n[o]),a._handleFileUpload(i,s,l,t?"file":"image",r),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",r),e=!0)}e||o()}else if(n.length&&a._handleFileUpload(i,n,l,t?"file":"image",r),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",r)}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,r=n.uploadSettings.url;let s=!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]),s=!0;let u=new XMLHttpRequest;u.open("POST",r),n.uploadSettings.onSetHeaders&&"function"==typeof n.uploadSettings.onSetHeaders&&n.uploadSettings.onSetHeaders(u,d),s&&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 r=t[l].name?[]:t[l].split("/"),s="url"===i?r[r.length-1]:t[l].name;n.uploadSettings.url;const d=o((e.files||e[0]&&e[0].files||[e[0]])[l],s);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)},s&&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)}}});