UNPKG

smart-webcomponents-react

Version:

[![Price](https://img.shields.io/badge/price-COMMERCIAL-00JS8f7.svg)](https://jqwidgets.com/license/)

6 lines (4 loc) 20.9 kB
/* Smart UI v23.0.8 (2025-05-13) Copyright (c) 2011-2024 jQWidgets. License: https://htmlelements.com/license/ */ // Smart.Utilities.Assign("Grid.Filter",class{addFilter(e,t,l){const a=this,i=a.columnByDataField[e];if(!i){if(!a.dataSource||!a.dataSource.dataFields)return;if(!a.dataSource.dataFields.find((e=>e.name===e)))return}const r=a._getFilterDataType(i);if("string"==typeof t?t=a.dataSource._createFilter(r,[t]):t&&Array.isArray(t)&&(t=a.dataSource._createFilter(r,t)),"string"===r&&i.editor&&i.editor.dataSource&&i.dataField===i.displayField&&i.editor.dataSource[0]){const e=i.editor.dataSource[0];void 0!==e.label&&void 0!==e.value&&i.editor.dataSource.forEach((e=>{e.value===t.filters[0].value&&(t.filters[0].value=e.label)}))}if(i&&i.canNotify){if(i.setProperty("filter",t),a._isUpdating)return;!1!==l&&(a._filterRowInputOnFocus=!0,a.refreshFilters(),delete a._filterRowInputOnFocus)}}removeFilter(e,t){const l=this,a=l.columnByDataField[e];if(a&&a.canNotify){if(a.setProperty("filter",null),l._isUpdating)return;!1!==t&&(l._filterRowInputOnFocus=!0,l.refreshFilters(),delete l._filterRowInputOnFocus)}a&&delete a._filterState}findCells(e){const t=this,l=t.find(e,null,null,"or"),a=[];"string"==typeof e&&e.indexOf(",")>=0&&(e=e.split(","));for(let i=0;i<l.length;i++){const r=l[i];for(let l=0;l<t.columns.length;l++){const i=t.columns[l],n=r[i.dataField];if(Array.isArray(e))for(let t=0;t<e.length;t++)(""+n).trim().toLowerCase()===(""+e[t]).trim().toLowerCase()&&a.push([r.$.id,i.dataField,e[t]]);else(""+n).trim().toLowerCase()===(""+e).trim().toLowerCase()&&a.push([r.$.id,i.dataField,e])}}return a}find(e,t,l,a="and"){const i=this;let r=[];if(l){const e={"=":"EQUAL","<>":"NOT_EQUAL","!=":"NOT_EQUAL",not_like:"DOES_NOT_CONTAIN",like:"CONTAINS","<":"LESS_THAN",">":"GREATER_THAN","<=":"LESS_THAN_OR_EQUAL",">=":"GREATER_THAN_OR_EQUAL",equal:"EQUAL","not equal":"NOT_EQUAL","less than":"LESS_THAN","greater than":"GREATER_THAN","greater than or equal":"GREATER_THAN_OR_EQUAL","less than or equal":"LESS_THAN_OR_EQUAL","starts with":"STARTS_WITH","ends with":"ENDS_WITH",notEqual:"NOT_EQUAL",not_equal:"NOT_EQUAL",lessThan:"LESS_THAN",greaterThan:"GREATER_THAN",greaterThanOrEqual:"GREATER_THAN_OR_EQUAL",lessThanOrEqual:"LESS_THAN_OR_EQUAL",less_than:"LESS_THAN",greater_than:"GREATER_THAN",greater_than_or_equal:"GREATER_THAN_OR_EQUAL",less_than_or_equal:"LESS_THAN_OR_EQUAL",null:"null","":"EMPTY",isblank:"EMPTY",isnotblank:"NOT_EMPTY",isBlank:"EMPTY",isNotBlank:"NOT_EMPTY",CONTAINS:"CONTAINS",DOES_NOT_CONTAIN:"DOES_NOT_CONTAIN",contains:"CONTAINS",does_not_contain:"DOES_NOT_CONTAIN","not contains":"DOES_NOT_CONTAIN",notcontains:"DOES_NOT_CONTAIN",notContains:"DOES_NOT_CONTAIN",startswith:"STARTS_WITH",endswith:"ENDS_WITH",starts_with:"STARTS_WITH",ends_with:"ENDS_WITH",startsWith:"STARTS_WITH",endsWith:"ENDS_WITH",NULL:"NULL",NOT_NULL:"NOT_NULL"};e[l]&&(l=e[l])}const n=(e,a="or")=>{let r=[];for(let n=0;n<i.columns.length;n++){const o=i.columns[n],s=new Smart.Utilities.FilterGroup;let d;t&&o.dataField!==t||("string"===o.dataType?(l||(l="CONTAINS"),d=s.createFilter("string",e,l)):"number"===o.dataType?(l||(l="EQUAL"),d=s.createFilter("number",e,l)):"date"===o.dataType&&(l||(l="EQUAL"),d=s.createFilter("date",e,l)),s.addFilter(a,d),r.push([o.dataField,s]))}return r};void 0!==e&&"string"==typeof e&&e.indexOf(",")>=0&&(e=e.split(","));let o=[];if(Array.isArray(e))for(let t=0;t<e.length;t++)o.push(n(e[t].trim()));else r=n(e);const s=i.dataSource;if(!s)return[];let d=[];const u=(e,t)=>{let l=!1;for(let a=0;a<t.length;a++){const i=t[a],r=e[i[0]];l=l||i[1].evaluate(r)}return l};for(let e=0;e<s.length;e++){const t=s[e];if(o.length)if("and"===a){let e=!0;for(let l=0;l<o.length;l++)e=e&&u(t,o[l]);e&&d.push(t)}else{let e=!1;for(let l=0;l<o.length;l++)e=e||u(t,o[l]);e&&d.push(t)}else u(t,r)&&d.push(t)}return d}filterBy(e,t){const l=this;let a,i=[];void 0!==e&&"string"==typeof e&&e.indexOf(",")>=0&&(e=e.split(",")),i=((e,i="or")=>{let r=[];for(let n=0;n<l.columns.length;n++){const o=l.columns[n],s=new Smart.Utilities.FilterGroup;let d;t&&o.dataType!==t||("string"===o.dataType?(a="CONTAINS",d=s.createFilter("string",e,a)):"number"===o.dataType?(a="EQUAL",d=s.createFilter("number",e,a)):"date"===o.dataType&&(a="EQUAL",d=s.createFilter("date",e,a)),s.addFilter(i,d),r.push([o.dataField,s]))}return r})(e),l.beginUpdate(),l.clearFilter();const r=l.filtering.operator;l.filtering.operator="or";for(let e=0;e<i.length;e++){const t=i[e];l.addFilter(t[0],t[1],!1)}l.endUpdate(),l.refreshFilters(),l.filtering.operator=r}clearFilter(){const e=this;for(let t=0;t<e.columns.length;t++){const l=e.columns[t];l&&(l.setProperty("filter",null),l._filterInfo&&(delete l._filterInfo.value,delete l._filterInfo.condition))}e._refreshFilterRowEditors(),e.refreshFilters()}getFilteredColumns(){const e=this;if(e._filters){const t=[];for(let l=0;l<e._filters.length;l++){const a=e._filters[l];t.push({dataField:a[0],filter:a[1].toString()})}return t}return[]}getFilteredColumnsByDataField(){const e=this;if(e._filters){const t=[];for(let l=0;l<e._filters.length;l++){const a=e._filters[l];t[a[0]]=a[1],t.length++}return t}return[]}getVisibleRows(){const e=this;if(e._visibleRows)return e._visibleRows;const t=[],l=e._viewRows,a=e.editing.addNewRow.visible&&"far"!==e.editing.addNewRow.position&&"button"!==e.editing.addNewRow.displayMode?1:0,i=e.grouping.enabled&&e.dataSource.groupBy&&e.dataSource.groupBy.length>0;let r=0;for(let e=0;e<l.length;e++){const n=l[e];n.canNotify=!1,n.visibleIndex=-1,!n.visible||!1===n.filtered&&void 0!==n.filtered||(i?n.leaf?n.visibleIndex=r++:n.visibleIndex=-1:n.visibleIndex=t.length-a,t.push(n)),n.canNotify=!0}return e._visibleRows=t,t}_refreshFilterRowEditors(){const e=this;if(e.filtering.filterRow)for(let t=0;t<e.columns.length;t++)e.columns[t]._filterEditorInitialized&&(e.columns[t]._filterEditorInitialized=!1)}refreshSortAndFilters(){this._refreshDataFilters()}_refreshDataFilters(){const e=this;!1!==e.editing.autoUpdateFilterAndSort&&(e._supressFilter||(!e._filters||e._filters&&0===e._filters.length)&&(!e._sortedColumns||e._sortedColumns&&0===e._sortedColumns.length)||(e.beginUpdate(),e._sortedColumns&&e._sortedColumns.length>0&&e.refreshSort(),e._filters&&e._filters.length>0&&e.refreshFilters(!0),e.endUpdate()))}refreshFilters(e){const t=this,l=[];t._filters||(t._filters=[]);for(let e=0;e<t.columns.length;e++){const a=t.columns[e];a.filter&&l.push([a.displayField,a.filter])}if(t.scrollTop=0,t.closeMenu(),t.dataSource&&!t.dataSource.onFilter&&(t.dataSource.onFilter=function(){const e=t._viewRows;for(let t=0;t<e.length;t++){const l=e[t];if(l.data&&!l.addNewRow){if(!l.data.$){l.filtered=!0;continue}l.filtered=void 0===l.data.$.filtered||l.data.$.filtered}}t.refresh()}),JSON.stringify(t._filters)===JSON.stringify(l)&&!0!==e)return void(t._visibleRows=null);if(t._filters=l,t._visibleRows=null,t.dataSource&&t.dataSource.virtualDataSource)t.closeMenu(),t._virtualDataRequest("filter");else{const e=t._filterOperator||t.filtering.operator;t.dataSource._filter(l,e)}t.paging.enabled&&t.dataSource&&!t.dataSource.virtualDataSource&&t._refreshPagesCount();let a=[];for(let e=0;e<t.columns.length;e++){const l=t.columns[e];l.filter&&a.push(l)}let i=[],r=[],n=[];if(t._filters)for(let e=0;e<t._filters.length;e++){const l=t._filters[e];n.push(l[0]);let a="";const o=t.columnByDataField[l[0]];for(let e=0;e<l[1].filters.length;e++){const t=l[1].filters[e].condition,i=l[1].filters[e].value,r=l[1].logicalOperators[e],n=1===r||"or"===r?"or":"and";o&&"string"===o.dataType?a+=`"${t}" "${i}"`:!o||"date"!==o.dataType&&"time"!==o.dataType&&"datetime"!==o.dataType?a+=`"${t}" ${i}`:a+=`"${t}" ${i.getFullYear()+"-"+(1+i.getMonth())+"-"+i.getDate()}`,e<l[1].filters.length-1&&(a+=` ${n} `)}r.push([l[0],a]),i.push({dataField:l[0],filter:l[1]})}t.summaryRow.visible&&(t._calculateSummary(),t._recycle(!1)),e||t.$.fireEvent("filter",{columns:a,expressions:JSON.parse(JSON.stringify(r)),dataFields:n,data:JSON.parse(JSON.stringify(i))}),t._onFilter&&t._onFilter()}_getFilterDataType(e){const t=this;let l=e.dataType;if(e.displayField!==e.dataField&&t.dataSource&&t.dataSource.dataFields){const a=t.dataSource.dataFields.find((t=>t.name===e.displayField));a&&(l=a.dataType||"string")}return l}_handleFilterCellFocus(e){const t=this,l=e.column._filterInfo,a=l.editor,i=l.input,r=e.column;let n=r.dataType;if(a.setAttribute("focus",""),t.filtering.filterRow.cell=e,"RANGE"===l.condition)t._openFilterCellDialog(e,(e=>{const l=e._filterInfo,a=l.editor,i=l.range,r=l.input,n=l.cell;if(i){const l=new Smart.FilterGroup;l.addFilter("and",l.createFilter(e.dataType,i.min,"GREATER_THAN_OR_EQUAL")),l.addFilter("and",l.createFilter(e.dataType,i.max,"LESS_THAN_OR_EQUAL")),t.addFilter(e.dataField,l)}else t.removeFilter(e.dataField);if(t.autoSaveState(),a&&r)if(r.type="",i){const t=n.getFormattedValue(i.min,e.cellsFormat),l=n.getFormattedValue(i.max,e.cellsFormat);r.value=t+" - "+l}else r.value=""}));else if(r.displayField!==r.dataField&&(n=t._getFilterDataType(r)),i.type="number"===n||"int"===n||"float"===n?"number":"",l.value&&(i.value=l.value,"date"===n)){const t=new Smart.FilterGroup;if("string"==typeof l.value?i.value=e.getFormattedValue(l.value,r.cellsFormat):i.value=e.getFormattedValue(l.value[0],r.cellsFormat),l.value.length>1){let a=[];for(let i=0;i<l.value.length;i++)t.addFilter("or",t.createFilter(r.dataType,l.value[i],l.condition||"EQUAL")),a.push(e.getFormattedValue(l.value[i],r.cellsFormat||""));i.value=a.toString()}}}_handleFilterCellBlur(e){const t=this,l=e.column._filterInfo,a=l.editor,i=l.input,r=e.column,n=l.condition,o=t._getFilterDataType(r);if(t.filtering.filterRow.cell=null,r.filterRowMenu&&r.filterRowMenu.classList.contains("open"))a.removeAttribute("focus");else{if(""!==i.value&&"RANGE"!==n)if("date"===r.dataType){let t=[];if(i.value.indexOf(",")>=0&&(t=i.value.split(","),t=t.forEach((e=>Smart.Utilities.DateTime.ParseDate(e.trim(),r.cellsFormat)))),t.length>1){l.value=t;let a=[];const n=new Smart.FilterGroup;for(let i=0;i<t.length;i++)n.addFilter("or",n.createFilter(r.dataType,t[i],l.condition||"EQUAL")),a.push(e.getFormattedValue(t[i],r.cellsFormat||""));i.value=a.toString()}else r.cellsFormat?l.value=Smart.Utilities.DateTime.ParseDate(i.value,r.cellsFormat):l.value=new Date(i.value),i.value=e.getFormattedValue(l.value,r.cellsFormat)}else"number"===o||"int"===o||"float"===o?(l.value=parseFloat(i.value),i.type="",i.value=e.getFormattedValue(l.value,r.cellsFormat)):l.value=i.value;"auto"===t.filtering.filterRow.applyMode&&t._handleFilterCellValue(e),a.removeAttribute("focus")}}_handleFilterCellValue(e){const t=this,l=e.column._filterInfo,a=e.column,i=l.condition,r=t._getFilterDataType(a);if("RANGE"===i){const e=l.range;if(e){const l=new Smart.FilterGroup;l.addFilter("and",l.createFilter(a.dataType,e.min,"GREATER_THAN_OR_EQUAL")),l.addFilter("and",l.createFilter(a.dataType,e.max,"LESS_THAN_OR_EQUAL")),t.addFilter(a.dataField,l)}else t.removeFilter(a.dataField)}else{let e=l.value;if(""!==e&&void 0!==e){const i=new Smart.FilterGroup;let n=!1;if("date"===a.dataType){let t=null;e&&"object"==typeof e&&e instanceof Date?n=!0:e&&((e.split("/").length>2||e.split("-").length>2||e.split(".").length>2)&&(n=!0),n&&a.cellsFormat&&(t=Smart.Utilities.DateTime.ParseDate(e,a.cellsFormat),null!==t&&(n=!0,e=t)))}if("date"!==a.dataType||n){if("string"==typeof e){const t=e=>{e.forEach((e=>{const t=e.trim();t.length&&i.addFilter("or",i.createFilter(r,t,l.condition||("string"===r?"CONTAINS":"EQUAL")))}))};e.indexOf(" or ")>=0?(e=e.split("or"),t(e)):e.indexOf(" and ")>=0?(e=e.split("and"),t(e)):e.indexOf(" & ")>=0?(e=e.split("&"),t(e)):e.indexOf(' | " ')>=0?(e=e.split("|"),t(e)):i.addFilter("and",i.createFilter(r,e,l.condition||("string"===r?"CONTAINS":"EQUAL")))}else i.addFilter("and",i.createFilter(r,e,l.condition||("string"===r?"CONTAINS":"EQUAL")));t.addFilter(a.dataField,i)}}else t.removeFilter(a.dataField)}t.autoSaveState()}_handleFilterCellKeyDown(e,t){const l=this,a=e.column._filterInfo.input;t.ctrlKey&&"a"===t.key?a.select():t.altKey&&"ArrowDown"===t.key&&l._handleFilterCellIconClick(e)}_handleFilterCellKeyUp(e,t){const l=e.column,a=l._filterInfo.input,i=this,r=l._filterInfo,n=t.key;r.value!==a.value&&(r.value=a.value,"Control"===n||t.ctrlKey||("Escape"===n&&(r.value="",r.range=null,a.value=""),"Enter"===n||"Escape"===n||""===a.value?i._handleFilterCellValue(e):"auto"===i.filtering.filterRow.applyMode&&"Ctrl"!==n&&"Shift"!==n&&(i._filterRowTimer&&clearTimeout(i._filterRowTimer),i._filterRowTimer=setTimeout((()=>{i._handleFilterCellValue(e)}),i.filtering.filterRow.autoApplyModeDelay)),t.ctrlKey&&"a"===n&&a.select()))}_handleFilterCellCheckBoxClick(e){const t=this,l=e.column,a=l._filterInfo;void 0===a.value&&(a.value=null),!0===a.value?a.value=!1:!1===a.value?a.value=null:null===a.value&&(a.value=!0);const i=e.element.querySelector(".smart-input");if(a.value?i.setAttribute("checked",a.value):null===a.value?i.setAttribute("checked","indeterminate"):i.removeAttribute("checked"),null===a.value)return t.removeFilter(l.dataField),void t.autoSaveState();const r=new Smart.FilterGroup;r.addFilter("and",r.createFilter(l.dataType,!0===a.value,"EQUAL")),t.addFilter(l.dataField,r),t.autoSaveState()}_handleFilterCellIconClick(e){const t=this,l=e.column;l.filterRowMenu&&l.filterRowMenu.classList.contains("open")?t._closeMenu(l.filterRowMenu):t._openColumnFilterMenu(l)}_handleFilterCalendarCellClick(e){const t=this;t._openFilterCellDialog(e,(l=>{const a=l._filterInfo,i=a.editor.querySelector("input"),r=a.value;if(i){if(r||"RANGE"===a.condition)if(!r&&"RANGE"===a.condition&&a.range){t.removeFilter(l.dataField,!1);const e=new Smart.FilterGroup,i=a.range;e.addFilter("and",e.createFilter(l.dataType,i.min,"GREATER_THAN_OR_EQUAL")),e.addFilter("and",e.createFilter(l.dataType,i.max,"LESS_THAN_OR_EQUAL"));const r=a.cell.getFormattedValue(i.min,l.cellsFormat),n=a.cell.getFormattedValue(i.max,l.cellsFormat);t.addFilter(l.dataField,e),a.editor.querySelector("input").value=r+" - "+n}else if(r||"RANGE"!==a.condition||a.range){i.value=e.getFormattedValue(r[0],l.cellsFormat||"");const n=new Smart.FilterGroup;if(1===r.length)n.addFilter("and",n.createFilter(l.dataType,r[0],a.condition||"EQUAL"));else{let t=[];for(let i=0;i<r.length;i++)n.addFilter("or",n.createFilter(l.dataType,r[i],a.condition||"EQUAL")),t.push(e.getFormattedValue(r[i],l.cellsFormat||""));i.value=t.toString()}t.removeFilter(l.dataField,!1),t.addFilter(l.dataField,n)}else i.value="",t.removeFilter(l.dataField);else i.value="",t.removeFilter(l.dataField);t.autoSaveState()}}))}_handleFilterMenuClick(e,t){const l=this,a=e._filterInfo,i=a.editor,r=a.input;if(i.firstElementChild.innerHTML=`<i class="smart-grid-icon ${t.icon} show"></i>`,"CLEAR_FILTER"===t.value&&(r.value="",i.firstElementChild.innerHTML='<i class="smart-grid-icon smart-icon-search show"></i>',a.condition=null,a.value="",a.range=null),r.type="","RANGE"===a.condition&&"RANGE"!==t.value){let e=a.range;a.value=e.min}else if("RANGE"===t.value&&"RANGE"!==a.condition&&null!==a.condition){let e=a.range;a.value&&(e=a.value&&Array.isArray(a.value)?{min:a.value[0],max:a.value[0]}:{min:a.value,max:a.value},a.range=e)}if("RANGE"===t.value){r.readonly=!0;const i=new Smart.FilterGroup,n=a.range;if(n){i.addFilter("and",i.createFilter(e.dataType,n.min,"GREATER_THAN_OR_EQUAL")),i.addFilter("and",i.createFilter(e.dataType,n.max,"LESS_THAN_OR_EQUAL")),l.addFilter(e.dataField,i);const t=a.cell.getFormattedValue(n.min,e.cellsFormat),o=a.cell.getFormattedValue(n.max,e.cellsFormat);r.value=t+" - "+o}else r.value="";return a.condition=t.value,void l.autoSaveState()}if(r.readonly=!1,"CLEAR_FILTER"!==t.value&&(a.condition=t.value),""===r.value)l.removeFilter(e.dataField);else{const t=new Smart.FilterGroup,i=a.value,n=l._getFilterDataType(e);t.addFilter("and",t.createFilter(n,i,a.condition||"EQUAL")),l.addFilter(e.dataField,t),r.value=a.cell.getFormattedValue(i,e.cellsFormat)}l.autoSaveState(),setTimeout((()=>{r.focus()}),25)}_handleFilterNumberCellEditor(e,t,l){const a=t.querySelector("input"),i=t.querySelector(".up"),r=t.querySelector(".down"),n=e.column,o=this;let s=t=>{const l=n._filterInfo;if("RANGE"===l.condition)return void a.focus();let i=parseFloat(l.value);if(isNaN(i))return l.value=0,void(a.value=0);(t<0?i>a.min||""===a.min:i<a.max||""===a.max)&&(a.value=i+t,l.value=a.value,a.focus(),o._handleFilterCellValue(e))};l&&(s=l);const d=(e,t)=>{let l,a;e.onpointerdown=function(e){s(t),l&&clearTimeout(l),l=setTimeout((()=>{a&&clearInterval(a),a=setInterval((()=>{s(t)}),50)}),300),e.preventDefault(),e.stopPropagation()},e.onpointerup=()=>{a&&clearInterval(a),l&&clearTimeout(l),a=null},e.onpointerenter=()=>{a&&(clearInterval(a),a=setInterval((()=>{s(1)}),50))},e.onpointerleave=()=>{clearInterval(a)},document.addEventListener("pointerup",(()=>{a&&clearInterval(a),a=null,l&&clearTimeout(l)}))};d(i,1),d(r,-1)}_openFilterCellDialog(e,t){const l=this,a=l._dialogFilter||l._createDialog(),i=l.localize("dialogFilterHeader")+" "+e.column.label,r=a.content;a.header.innerHTML=i,a.confirm=t;let n=null,o=0;l._cellEditors||(l._cellEditors=[]),l._dialogFilter||(a.modal=!0,a.btnConfirm.innerHTML=l.localize("dialogFilterButtonConfirm"),a.btnCancel.innerHTML=l.localize("dialogFilterButtonCancel"),a.onOpen=function(){a.focus();const e=l._dialogFilterCell,t=e.column._filterInfo.range,i=e.column._filterInfo.value;if("date"===e.column.dataType){const a=r.querySelector("smart-calendar");a.locale=l.locale,setTimeout((()=>{"RANGE"===e.column._filterInfo.condition&&t?(a.selectedDates=[new Date(t.min.getTime()),new Date(t.max.getTime())],a._selectMultipleDates(new Date(t.min.getTime()),new Date(t.max.getTime()))):i&&(a.selectedDates=[new Date(i[0]?i[0].getTime():i.getTime())]),a.focus()}),100),a.focus()}else{const e=r.querySelectorAll("input");e[0].focus(),t&&(e[0].value=t.min,e[1].value=t.max)}},a.onClose=function(){},a.btnCancel.onclick=function(){a.close();const e=l._dialogFilterCell;e.column._filterInfo.range=null,e.column._filterInfo.value=null,a.confirm(e.column)},a.btnClose.onclick=function(){a.close()},a.btnConfirm.onclick=function(){const e=l._dialogFilterCell;if(e.column._filterInfo.range=null,e.column._filterInfo.value=null,"date"===e.column.dataType){const t=r.querySelector("smart-calendar"),l=t.selectedDates;if("range"===t.selectionMode)e.column._filterInfo.range={min:new Date(l[0].getTime()),max:new Date(l[l.length-1].getTime())};else{const t=[];l.forEach((e=>{const l=new Date(e.getTime());t.push(l)})),e.column._filterInfo.value=t}}else{const t=r.querySelectorAll("input");let l=t[0].value,a=t[1].value;""===a&&(a=100),""===l&&(l=0),e.column._filterInfo.range={min:l,max:a}}a.confirm(e.column),a.close()},a.onkeydown=function(e){const t=e.key;"Enter"===t?a.btnConfirm.onclick():"Escape"===t&&a.close()}),r.classList.remove("smart-grid-layout"),r.innerHTML="";const s=()=>{const e=r.querySelectorAll("input");a.btnConfirm.disabled=!0,""===e[0].value&&(e[0].value=0),""===e[1].value&&(e[1].value=100),parseFloat(e[0].value)<=parseFloat(e[1].value)&&(a.btnConfirm.disabled=!1)};"date"!==e.column.dataType&&r.classList.add("smart-grid-layout");for(let t=0;t<2;t++){const a=e.column;if("date"===a.dataType){const e=document.createElement("div");"RANGE"===a._filterInfo.condition?e.innerHTML='<smart-calendar selection-mode="range"></smart-calendar>':e.innerHTML="<smart-calendar></smart-calendar>",r.appendChild(e);break}o%2==0&&(n=document.createElement("div"),n.classList.add("row"),r.appendChild(n));const i=document.createElement("div");i.classList.add("col-sm-6");const d=document.createElement("div");d.classList.add("column");const u=document.createElement("label");u.innerHTML=0===t?l.localize("dialogFilterMinLabel"):l.localize("dialogFilterMaxLabel");const c=document.createElement("div");c.classList.add("smart-grid-dialog-editor"),c.setAttribute("editor",a.dataField),c.setAttribute("template",a.editor.template),i.appendChild(d),n.appendChild(i),d.appendChild(u),d.appendChild(c),o++,c.innerHTML='<div class="smart-grid-cell-editor smart-filter-input-value smart-grid-number-input-cell-editor"><input class="smart-input" type="number"><div class="nav"><div tabindex="-1" class="up"></div><div tabindex="-1" class="down"></div></div></div>';const f=c.querySelector("input");f.onchange=()=>{s()},l._handleFilterNumberCellEditor(e,c,(e=>{let t=parseFloat(f.value);isNaN(t)?f.value=0:((e<0?t>f.min||""===f.min:t<f.max||""===f.max)&&(f.value=t+e),s())}))}l._dialogFilter=a,l._dialogFilterCell=e;const d=e.column.element.getBoundingClientRect(),u=l.offset(l);let c=d.left+window.pageXOffset-u.left,f=d.bottom+l.layout.rowMinHeight+window.pageYOffset-u.top,m=Math.max(a.offsetWidth,314);c+m>u.left+l.offsetWidth&&(c=d.left+d.width+window.pageXOffset-u.left-m),e.column.filterRowMenu&&e.column.filterRowMenu.classList.contains("open")&&l._closeMenu(e.column.filterRowMenu),a.open(c,f)}});