@mescius/wijmo.grid.filter 5.20232.939 → 5.20241.2-rc

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/es5-esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * Wijmo Library 5.20232.939
3
+ * Wijmo Library 5.20241.2
4
4
  * https://developer.mescius.com/wijmo
5
5
  *
6
6
  * Copyright(c) MESCIUS inc. All rights reserved.
@@ -11,4 +11,4 @@
11
11
  *
12
12
  */
13
13
 
14
- var __extends=this&&this.__extends||function(){var extendStatics=function(e,t){return(extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)};return function(e,t){extendStatics(e,t);function __(){this.constructor=e}e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)}}();import{Column,DataMap,FlexGrid,DataMapEditor,CellRange,CellRangeEventArgs}from"@mescius/wijmo.grid";import{Globalize,asString,asNumber,asArray,asBoolean,asType,asEnum,isString,isDate,DateTime,culture,isNumber,copy,changeType,setAttribute,showPopup,hidePopup,isFunction,createElement,toggleClass,removeClass,closestClass,setAriaLabel,Control,Event,DataType,Key,setText,escapeRegExp,setChecked,CollectionView,SortDescription,SortNulls,getUniqueId,_addCultureInfo,enable,moveFocus,hasClass,_registerModule}from"@mescius/wijmo";import{DropDown}from"@mescius/wijmo.input";import*as input from"@mescius/wijmo.input";import*as selfModule from"@mescius/wijmo.grid.filter";export var FilterType;!function(e){e[e.None=0]="None";e[e.Condition=1]="Condition";e[e.Value=2]="Value";e[e.Both=3]="Both"}(FilterType||(FilterType={}));var FlexGridFilter=function(){function FlexGridFilter(e,t){this._showIcons=!0;this._showSort=!0;this._defFilterType=FilterType.Both;this._xValueSearch=!0;this.filterApplied=new Event;this.editingFilter=new Event;this.filterChanging=new Event;this.filterChanged=new Event;this.exclusiveValueSearchChanged=new Event;this._filters=[];this._g=asType(e,FlexGrid,!1);this._g.formatItem.addHandler(this._formatItem.bind(this));this._g.itemsSourceChanged.addHandler(this.clear.bind(this));var i=this._g.hostElement;e.addEventListener(i,"mousedown",this._mousedown.bind(this),!0);e.addEventListener(i,"click",this._click.bind(this),!0);e.addEventListener(i,"keydown",this._keydown.bind(this),!0);this._g.invalidate();copy(this,t)}Object.defineProperty(FlexGridFilter.prototype,"grid",{get:function(){return this._g},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridFilter.prototype,"filterColumns",{get:function(){return this._filterColumns},set:function(e){this._filterColumns=asArray(e);this.clear()},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridFilter.prototype,"showFilterIcons",{get:function(){return this._showIcons},set:function(e){if(e!=this.showFilterIcons){this._showIcons=asBoolean(e);this._g&&this._g.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridFilter.prototype,"showSortButtons",{get:function(){return this._showSort},set:function(e){this._showSort=asBoolean(e)},enumerable:!0,configurable:!0});FlexGridFilter.prototype.getColumnFilter=function(e,t){void 0===t&&(t=!0);if(e=this._asColumn(e)){for(var i=0;i<this._filters.length;i++)if(this._filters[i].column==e)return this._filters[i];if(t&&e.binding){var r=new ColumnFilter(this,e);this._filters.push(r);return r}}return null};Object.defineProperty(FlexGridFilter.prototype,"defaultFilterType",{get:function(){return this._defFilterType},set:function(e){if((e=asEnum(e,FilterType,!1))!=this.defaultFilterType){this._defFilterType=e;this._g.invalidate();this.clear()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridFilter.prototype,"exclusiveValueSearch",{get:function(){return this._xValueSearch},set:function(e){if((e=asBoolean(e))!==this._xValueSearch){this._xValueSearch=e;this.onExclusiveValueSearchChanged()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridFilter.prototype,"filterDefinition",{get:function(){var e=this,t={defaultFilterType:this.defaultFilterType,filters:[]};this._filters.forEach((function(i){var r=i.conditionFilter,l=i.valueFilter,n=l.uniqueValues&&l.uniqueValues.length;if(i&&i.column&&i.column.binding&&(i.isActive||n||i.filterType!=e.defaultFilterType)){var o={binding:i.column.binding};if(r.isActive){var a=r.condition1,s=r.condition2;o={binding:i.column.binding,type:"condition",condition1:{operator:a.operator,value:a.value},and:r.and,condition2:{operator:s.operator,value:s.value}}}else(l.isActive||n)&&(o={binding:i.column.binding,type:"value",uniqueValues:l.uniqueValues,sortValues:l.sortValues,maxValues:l.maxValues,exclusiveValueSearch:l.exclusiveValueSearch,showValues:l.showValues});i.filterType!=e.defaultFilterType&&(o.filterType=i.filterType);t.filters.push(o)}}));return JSON.stringify(t)},set:function(e){e=asString(e);this.clear();if(e){var t=JSON.parse(e);this.defaultFilterType=t.defaultFilterType;for(var _loop_1=function(e){var r=t.filters[e],l=i._asColumn(r.binding);l||(l=new Column({binding:r.binding}));var n=i.getColumnFilter(l,!0);if(n){null!=r.filterType&&(n.filterType=asEnum(r.filterType,FilterType));switch(r.type){case"condition":var o=n.conditionFilter;o.condition1.value=l.dataType==DataType.Date?changeType(r.condition1.value,l.dataType,null):r.condition1.value;o.condition1.operator=r.condition1.operator;o.and=r.and;o.condition2.value=l.dataType==DataType.Date?changeType(r.condition2.value,l.dataType,null):r.condition2.value;o.condition2.operator=r.condition2.operator;break;case"value":var a=n.valueFilter;a.uniqueValues=r.uniqueValues;["sortValues","maxValues","exclusiveValueSearch"].forEach((function(e){null!=r[e]&&(a[e]=r[e])}));a.showValues=r.showValues}}},i=this,r=0;r<t.filters.length;r++)_loop_1(r)}this.apply()},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridFilter.prototype,"activeEditor",{get:function(){return Control.getControl(this._divEdt)},enumerable:!0,configurable:!0});FlexGridFilter.prototype.editColumnFilter=function(e,t,i){var r=this,l=this._g;this.closeEditor();e=this._asColumn(e);var n=new CellRangeEventArgs(l.cells,new CellRange(-1,e.index));if(this.onEditingFilter(n)){var o=createElement('<div class="wj-dropdown-panel"></div>'),a=this.getColumnFilter(e),s=new ColumnFilterEditor(o,a,this.showSortButtons);this._divEdt=o;this._edtCol=e;l.rightToLeft&&(o.dir="rtl");if(this.onFilterChanging(n)){n.cancel=!0;s.filterChanged.addHandler((function(){n.cancel=!1;setTimeout((function(){n.cancel||r.apply()}),s._edtVal&&s._edtVal._isFiltering?Control._SEARCH_DELAY+200:0)}));s.buttonClicked.addHandler((function(){r.closeEditor();l.focus();r.onFilterChanged(n)}));s.lostFocus.addHandler((function(){setTimeout((function(){var e=Control.getControl(r._divEdt);e&&!e.containsFocus()&&r.closeEditor()}),10)}));var u=t?t.col:e.index,d=l.columns[u];t||d&&d.binding==e.binding||(u=l.selection.leftCol);l._edtHdl._commitRowEdits();l.scrollIntoView(-1,u,!0);var c=l.columnHeaders,p=t&&t.panel&&c&&t.panel._uid==c._uid?t.row:c.rows.length-1,h=u,f=i||c.getCellElement(p,h),_=f?null:c.getCellBoundingRect(p,h);f?showPopup(o,f,!1,!1,!1):showPopup(o,_);this._setAriaExpanded(f,!0);this._setAriaExpanded(l.cells.getCellElement(-1,h),!0);for(var b=s.hostElement.querySelectorAll("input"),v=0;v<b.length;v++){var m=b[v];if(m.offsetHeight>0&&m.tabIndex>-1&&!m.disabled){m.focus();break}}s.containsFocus()||s.focus()}else this._divEdt=this._edtCol=null}};FlexGridFilter.prototype._setAriaExpanded=function(e,t){if(e){var i=e.querySelector("."+FlexGridFilter._WJC_FILTER);setAttribute(i,"aria-expanded",t)}};FlexGridFilter.prototype.closeEditor=function(){var e=this._g,t=Control.getControl(this._divEdt),i=this._edtCol;t&&hidePopup(t.hostElement,(function(){t.dispose()}));if(i){var r=e.columnHeaders,l=r.rows.length?r.getCellElement(r.rows.length-1,i.index):null;this._setAriaExpanded(l,!1);l=e.cells.getCellElement(-1,i.index);this._setAriaExpanded(l,!1)}this._divEdt=null;this._edtCol=null};FlexGridFilter.prototype.apply=function(){var e=this._g.collectionView;if(e){var t=this._g.editableCollectionView;if(t){t.commitEdit();t.commitNew()}e.filter=this._filter.bind(this)}var i=e?e.updateFilterDefinition:null;isFunction(i)&&i.call(e,this);this.onFilterApplied()};FlexGridFilter.prototype.clear=function(){if(this._filters.length){this._filters=[];this.apply()}};FlexGridFilter.prototype.onFilterApplied=function(e){this.filterApplied.raise(this,e)};FlexGridFilter.prototype.onEditingFilter=function(e){this.editingFilter.raise(this,e);return!e.cancel};FlexGridFilter.prototype.onFilterChanging=function(e){this.filterChanging.raise(this,e);return!e.cancel};FlexGridFilter.prototype.onFilterChanged=function(e){this.filterChanged.raise(this,e)};FlexGridFilter.prototype.onExclusiveValueSearchChanged=function(e){this.exclusiveValueSearchChanged.raise(this,e)};FlexGridFilter.prototype._asColumn=function(e){return isString(e)?this._g.getColumn(e,!0):isNumber(e)?this._g.columns[e]:asType(e,Column,!1)};FlexGridFilter.prototype._filter=function(e){for(var t=this._filters,i=0;i<t.length;i++){var r=t[i];if(r.column!=FlexGridFilter._skipColumn&&!r.apply(e))return!1}return!0};FlexGridFilter.prototype._formatItem=function(e,t){if(t.panel==e.columnHeaders){var i=this._g,r=i.getMergedRange(t.panel,t.row,t.col)||new CellRange(t.row,t.col),l=i.columns[r.col],n=i._getBindingColumn(t.panel,t.row,l),o=t.cell;if(r.row2==t.panel.rows.length-1||l!=n){var a=this.getColumnFilter(n,this.defaultFilterType!=FilterType.None),s=this._filterColumns;s&&s.length&&s.indexOf(n.binding)<0&&s.indexOf(n.name)<0&&(a=null);if(a){toggleClass(o,"wj-filter-on",a.isActive);toggleClass(o,"wj-filter-off",!a.isActive)}else{removeClass(o,"wj-filter-on");removeClass(o,"wj-filter-off")}if(a&&a.filterType!=FilterType.None){this._showIcons&&this._addFilterButton(n,a,o);0==t.row&&(o=i.cells.getCellElement(-1,t.col))&&this._addFilterButton(l,a,o)}}}};FlexGridFilter.prototype._addFilterButton=function(e,t,i){var r=FlexGridFilter._WJC_FILTER,l=createElement('<button class="wj-btn wj-btn-glyph wj-right '+r+'" type="button" tabindex="-1"><span class="wj-glyph-filter"></span></button>');setAriaLabel(l,culture.FlexGridFilter.ariaLabels.edit+" "+e.header);setAttribute(l,"aria-haspopup","dialog");setAttribute(l,"aria-expanded",!1);setAttribute(l,"aria-describedby",e.describedById);setAttribute(l,"aria-pressed",t.isActive);if(!i.querySelector("."+r)){1==i.children.length&&(i=i.querySelector("div")||i);i.insertBefore(l,i.firstChild)}};FlexGridFilter.prototype._mousedown=function(e){this._edtColPrev=this._edtCol};FlexGridFilter.prototype._click=function(e){if(this._toggleEditor(e)){e.stopPropagation();e.preventDefault()}};FlexGridFilter.prototype._toggleEditor=function(e){var t=this;if(!e.defaultPrevented&&0==e.button)if(closestClass(e.target,FlexGridFilter._WJC_FILTER)){var i=this._g,r=i.hitTest(e.target);r.panel||(r=i.hitTest(e));if(r.panel&&i.columnHeaders&&i.cells&&(r.panel._uid==i.columnHeaders._uid||r.panel._uid==i.cells._uid&&-1==r.row)){var l=i.getMergedRange(r.panel,r.row,r.col)||new CellRange(r.row,r.col),n=i.columns[l.col],o=i._getBindingColumn(r.panel,r.row,n);if(this._divEdt&&this._edtCol==o){this.closeEditor();i.focus()}else o!=this._edtColPrev&&setTimeout((function(){t.editColumnFilter(o,r)}),this._divEdt?100:0);return!0}}else this.closeEditor();return!1};FlexGridFilter.prototype._keydown=function(e){if(!e.defaultPrevented&&!e.ctrlKey&&e.altKey&&(e.keyCode==Key.Down||e.keyCode==Key.Up)){var t=this.grid,i=t.selection,r=i.col>-1?t.columns[i.col]:null,l=r?t._getBindingColumn(t.cells,i.row,r):null,n=l&&l.dataMap&&l.dataMapEditor==DataMapEditor.DropDownList;l&&l.editor instanceof DropDown&&(n=!0);if(l&&!n){var o=this.getColumnFilter(l,!1);if(o&&o.filterType!=FilterType.None){this.editColumnFilter(l);e.preventDefault();e.stopPropagation()}}}};FlexGridFilter._WJC_FILTER="wj-elem-filter";return FlexGridFilter}();export{FlexGridFilter};export var empty={};var ConditionFilter=function(){function ConditionFilter(e){this._c1=new FilterCondition(this);this._c2=new FilterCondition(this);this._and=!0;this._col=e}Object.defineProperty(ConditionFilter.prototype,"condition1",{get:function(){return this._c1},enumerable:!0,configurable:!0});Object.defineProperty(ConditionFilter.prototype,"condition2",{get:function(){return this._c2},enumerable:!0,configurable:!0});Object.defineProperty(ConditionFilter.prototype,"and",{get:function(){return this._and},set:function(e){this._and=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(ConditionFilter.prototype,"dataMap",{get:function(){return this._map},set:function(e){this._map=asType(e,DataMap,!0)},enumerable:!0,configurable:!0});Object.defineProperty(ConditionFilter.prototype,"column",{get:function(){return this._col},enumerable:!0,configurable:!0});Object.defineProperty(ConditionFilter.prototype,"isActive",{get:function(){return this._c1.isActive||this._c2.isActive},enumerable:!0,configurable:!0});ConditionFilter.prototype.apply=function(e){var t=this._col,i=this._c1,r=this._c2,l=!1,n=!1;if(!t||!t._binding||!this.isActive)return!0;e=t._binding.getValue(e);var o=this.dataMap||t.dataMap;if(o)e=o.getDisplayValue(e);else if(isDate(e)){l=!this._hasTimePart();n=!this._hasDatePart();var a=FilterCondition._refDateTime;l?e=DateTime.fromDateTime(e,a):n&&(e=DateTime.fromDateTime(a,e))}else if(isNumber(e)){var s=Globalize,u=t.format,d=s.formatNumber(e,u);e=s.parseFloat(d,u)}var c=i.apply(e,l,n),p=r.apply(e,l,n);return i.isActive&&r.isActive?this._and?c&&p:c||p:i.isActive?c:!r.isActive||p};ConditionFilter.prototype.clear=function(){this._c1.clear();this._c2.clear();this.and=!0};ConditionFilter.prototype._hasDatePart=function(){var e=this._col.format;if(!e)return!0;e=culture.Globalize.calendar.patterns[e]||e;return/[yMd]+/.test(e)};ConditionFilter.prototype._hasTimePart=function(){var e=this._col.format;if(!e)return!1;e=culture.Globalize.calendar.patterns[e]||e;return/[Hmst]+/.test(e)};ConditionFilter.prototype.implementsInterface=function(e){return"IColumnFilter"==e};return ConditionFilter}();export{ConditionFilter};var ConditionFilterEditor=function(e){__extends(ConditionFilterEditor,e);function ConditionFilterEditor(t,i){var r=e.call(this,t)||this;r._canApply=!1;r.canApplyChanged=new Event;r._filter=asType(i,ConditionFilter,!1);var l=r.getTemplate();r.applyTemplate("wj-control wj-conditionfilter-editor",l,{_divHdr:"div-hdr",_divCmb1:"div-cmb1",_divVal1:"div-val1",_btnAnd:"btn-and",_btnOr:"btn-or",_spAnd:"sp-and",_spOr:"sp-or",_divCmb2:"div-cmb2",_divVal2:"div-val2"});var n=culture.FlexGridFilter,o=n.ariaLabels;setAriaLabel(r._btnAnd,o.and);setAriaLabel(r._btnOr,o.or);setText(r._divHdr,n.header);setText(r._spAnd,n.and);setText(r._spOr,n.or);var a=getUniqueId("cmb1");r._divHdr.htmlFor=a;r._divCmb1.id=a;r._cmb1=r._createOperatorCombo(r._divCmb1,o.op1);r._cmb2=r._createOperatorCombo(r._divCmb2,o.op2);r._val1=r._createValueInput(r._divVal1,o.val1);r._val2=r._createValueInput(r._divVal2,o.val2);r._val1.isDisabled=!0;r._cmb1.selectedIndexChanged.addHandler((function(e,t){r._val1.isDisabled=null==e.selectedValue;r.canApply=!r._val1.isDisabled||!r._val2.isDisabled}));r._val2.isDisabled=!0;r._cmb2.selectedIndexChanged.addHandler((function(e,t){r._val2.isDisabled=null==e.selectedValue;r.canApply=!r._val1.isDisabled||!r._val2.isDisabled}));var s=r.hostElement;r.addEventListener(s,"change",r._btnAndOrChanged.bind(r));r.addEventListener(s,"keydown",r._keydown.bind(r));setTimeout((function(){r.updateEditor()}));return r}Object.defineProperty(ConditionFilterEditor.prototype,"filter",{get:function(){return this._filter},enumerable:!0,configurable:!0});Object.defineProperty(ConditionFilterEditor.prototype,"canApply",{get:function(){return this._canApply},set:function(e){if(e!=this._canApply){this._canApply=e;this.onCanApplyChanged()}},enumerable:!0,configurable:!0});ConditionFilterEditor.prototype.updateEditor=function(){var e=this._filter.condition1,t=this._filter.condition2;this._cmb1.selectedValue=e.operator;this._cmb2.selectedValue=t.operator;if(this._val1 instanceof input.ComboBox&&!(this._val1 instanceof input.InputTime)){this._val1.text=changeType(e.value,DataType.String);this._val2.text=changeType(t.value,DataType.String)}else{this._val1.value=e.value;this._val2.value=t.value}var i=this._filter.and;this._checkRadio(this._btnAnd,i);this._checkRadio(this._btnOr,!i)};ConditionFilterEditor.prototype.clearEditor=function(){this._cmb1.selectedValue=this._cmb2.selectedValue=null;this._val1.text=this._val2.text=null;this._checkRadio(this._btnAnd,!0);this._checkRadio(this._btnOr,!1)};Object.defineProperty(ConditionFilterEditor.prototype,"isEditorClear",{get:function(){return null==this._cmb1.selectedValue&&!this._val1.text&&null==this._cmb2.selectedValue&&!this._val2.text},enumerable:!0,configurable:!0});ConditionFilterEditor.prototype.updateFilter=function(){var e=this._filter.condition1,t=this._filter.condition2;e.operator=this._cmb1.selectedValue;t.operator=this._cmb2.selectedValue;if("value"in this._val1){e.value=this._val1.value;t.value=this._val2.value}else{e.value=this._getComboValue(this._val1);t.value=this._getComboValue(this._val2)}this._filter.and=this._btnAnd.checked};ConditionFilterEditor.prototype.onCanApplyChanged=function(e){this.canApplyChanged.raise(this,e)};ConditionFilterEditor.prototype._getComboValue=function(e){return e.selectedIndex>-1?e.selectedValue:e.text};ConditionFilterEditor.prototype._createOperatorCombo=function(e,t){var i=this._filter.column,r=culture.FlexGridFilter,l=r.stringOperators,n=DataType;this._filter.dataMap||i.dataMap||(i.dataType==n.Date?l=r.dateOperators:i.dataType==n.Number?l=r.numberOperators:i.dataType==n.Boolean&&(l=r.booleanOperators));var o=new input.ComboBox(e,{itemsSource:l,displayMemberPath:"name",selectedValuePath:"op"});setAriaLabel(o.inputElement,t);return o};ConditionFilterEditor.prototype._createValueInput=function(e,t){var i=this._filter,r=i.column,l=i.dataMap||r.dataMap,n=null,o=DataType;if(r.dataType==o.Date)(n=i._hasDatePart()?i._hasTimePart()?new input.InputDateTime(e):new input.InputDate(e):new input.InputTime(e)).format=r.format;else if(r.dataType!=o.Number||l){(n=new input.ComboBox(e)).isEditable=!0;if(l){n.itemsSource=l.getDisplayValues();n.caseSensitiveSearch=!!r.grid&&r.grid.caseSensitiveSearch}else r.dataType==o.Boolean&&(n.itemsSource=[!0,!1])}else(n=new input.InputNumber(e)).format=r.format;n.isRequired=!1;setAriaLabel(n.inputElement,t);return n};ConditionFilterEditor.prototype._btnAndOrChanged=function(e){var t=e.target==this._btnAnd,i=e.target==this._btnOr;if(t||i){this._checkRadio(this._btnAnd,t);this._checkRadio(this._btnOr,i)}};ConditionFilterEditor.prototype._checkRadio=function(e,t){e.checked=t;setAttribute(e,"aria-checked",t.toString());setAttribute(e,"tabindex",t?null:"-1")};ConditionFilterEditor.prototype._keydown=function(e){var t=e.target==this._btnAnd,i=e.target==this._btnOr;if(t||i)switch(e.keyCode){case Key.Left:case Key.Right:case Key.Up:case Key.Down:var r=t?this._btnOr:this._btnAnd;r.click();r.focus();e.preventDefault()}};ConditionFilterEditor.controlTemplate='<div><label wj-part="div-hdr"></label><div wj-part="div-cmb1"></div><br/><div wj-part="div-val1"></div><br/><div role="radiogroup" style="text-align:center"><label><input wj-part="btn-and" type="radio" role="radio"> <span wj-part="sp-and"></span> </label>&nbsp;&nbsp;&nbsp;<label><input wj-part="btn-or" type="radio" role="radio"> <span wj-part="sp-or"></span> </label></div><div wj-part="div-cmb2"></div><br/><div wj-part="div-val2"></div><br/></div>';return ConditionFilterEditor}(Control);export{ConditionFilterEditor};var FilterCondition=function(){function FilterCondition(e){this._op=null;this._filter=e}Object.defineProperty(FilterCondition.prototype,"operator",{get:function(){return this._op},set:function(e){this._op=asEnum(e,Operator,!0)},enumerable:!0,configurable:!0});Object.defineProperty(FilterCondition.prototype,"value",{get:function(){return this._val},set:function(e){this._val=e;this._strVal=isString(e)?this._getCaseString(e):null},enumerable:!0,configurable:!0});Object.defineProperty(FilterCondition.prototype,"isActive",{get:function(){switch(this._op){case null:return!1;case Operator.EQ:case Operator.NE:return!0;default:return null!=this._val||null!=this._strVal}},enumerable:!0,configurable:!0});FilterCondition.prototype.clear=function(){this.operator=null;this.value=null};FilterCondition.prototype.apply=function(e,t,i){var r=this._strVal||this._val;isString(e)&&(e=this._getCaseString(e));isString(r)&&null==e&&(e="");isDate(r)&&(t?r=DateTime.fromDateTime(r,FilterCondition._refDateTime):i&&(r=DateTime.fromDateTime(FilterCondition._refDateTime,r)));var l=Operator;switch(this._op){case null:return!0;case l.EQ:return null!=e&&null!=r?e.valueOf()==r.valueOf():e==r;case l.NE:return null!=e&&null!=r?e.valueOf()!=r.valueOf():e!=r;case l.GT:return e>r;case l.GE:return e>=r;case l.LT:return e<r;case l.LE:return e<=r;case l.BW:return!(null==this._strVal||!isString(e))&&0==e.indexOf(this._strVal);case l.EW:return!!(null!=this._strVal&&isString(e)&&e.length>=this._strVal.length)&&e.substr(e.length-this._strVal.length)==r;case l.CT:return!(null==this._strVal||!isString(e))&&e.indexOf(this._strVal)>-1;case l.NC:return!(null==this._strVal||!isString(e))&&e.indexOf(this._strVal)<0}throw"Unknown operator"};FilterCondition.prototype._getCaseString=function(e){var t=this._filter.column,i=t?t.grid:null;return i&&i.caseSensitiveSearch?e:e.toLowerCase()};FilterCondition._refDateTime=new Date(2e3,0,1,0,0,0);return FilterCondition}();export{FilterCondition};export var Operator;!function(e){e[e.EQ=0]="EQ";e[e.NE=1]="NE";e[e.GT=2]="GT";e[e.GE=3]="GE";e[e.LT=4]="LT";e[e.LE=5]="LE";e[e.BW=6]="BW";e[e.EW=7]="EW";e[e.CT=8]="CT";e[e.NC=9]="NC"}(Operator||(Operator={}));var ValueFilter=function(){function ValueFilter(e){this._values=null;this._filterText=null;this._xValueSearch=!0;this._maxValues=250;this._uniqueValues=null;this._sortValues=!0;this._col=e}Object.defineProperty(ValueFilter.prototype,"showValues",{get:function(){return this._values},set:function(e){this._values=e},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"filterText",{get:function(){return this._filterText},set:function(e){this._filterText=asString(e)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"exclusiveValueSearch",{get:function(){return this._xValueSearch},set:function(e){if((e=asBoolean(e))!==this._xValueSearch){this._xValueSearch=asBoolean(e);e&&(this._filterText="")}},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"maxValues",{get:function(){return this._maxValues},set:function(e){this._maxValues=asNumber(e,!1,!0)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"uniqueValues",{get:function(){return this._uniqueValues},set:function(e){this._uniqueValues=asArray(e)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"sortValues",{get:function(){return this._sortValues},set:function(e){this._sortValues=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"dataMap",{get:function(){return this._map},set:function(e){this._map=asType(e,DataMap,!0)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"column",{get:function(){return this._col},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"isActive",{get:function(){return null!=this._values&&Object.keys(this._values).length>0},enumerable:!0,configurable:!0});ValueFilter.prototype.apply=function(e){var t=this.column;if(!(t&&t._binding&&this._values&&Object.keys(this._values).length))return!0;e=t._binding.getValue(e);e=this.dataMap?this.dataMap.getDisplayValue(e)||"":t.dataMap?t.dataMap.getDisplayValue(e)||"":Globalize.format(e,t.format);return null!=this._values[e]};ValueFilter.prototype.clear=function(){this.showValues=null;this.filterText=null};ValueFilter.prototype.getUniqueValues=function(e){void 0===e&&(e=!0);var t=[],i=this.column,r=Globalize.format;if(this.uniqueValues){this.uniqueValues.forEach((function(e){t.push({value:e,text:r(e,i.format)})}));return t}var l={},n=i.collectionView,o=n?n.sourceCollection:[];if(e&&n&&n.sourceCollection&&n.filter)try{FlexGridFilter._skipColumn=this._col;for(var a=[],s=0;s<o.length;s++)n.filter(o[s])&&a.push(o[s]);o=a}finally{FlexGridFilter._skipColumn=null}for(s=0;s<o.length;s++){var u=i._binding.getValue(o[s]),d=this.dataMap?this.dataMap.getDisplayValue(u)||"":i.dataMap?i.dataMap.getDisplayValue(u)||"":r(u,i.format);if(!l[d]){l[d]=!0;t.push({value:u,text:d})}}return t};ValueFilter.prototype.implementsInterface=function(e){return"IColumnFilter"==e};return ValueFilter}();export{ValueFilter};var ValueFilterEditor=function(e){__extends(ValueFilterEditor,e);function ValueFilterEditor(t,i){var r=e.call(this,t)||this;r._canApply=!1;r._isFiltering=!1;r.canApplyChanged=new Event;r._filter=asType(i,ValueFilter,!1);var l=r.getTemplate();r.applyTemplate("wj-control wj-valuefilter-editor",l,{_divFilter:"div-filter",_cbSelectAll:"cb-select-all",_spSelectAll:"sp-select-all",_divValues:"div-values"});r._cbSelectAll.tabIndex=0;var n=culture.FlexGridFilter;setText(r._spSelectAll,n.selectAll);var o=r._view=new CollectionView(null,{sortNulls:SortNulls.First,filter:r._filterValues.bind(r)});if(i.sortValues){var a=i.column.dataMap||i.dataMap?"text":"value",s=i.column.dataType!=DataType.Boolean;o.sortDescriptions.push(new SortDescription(a,s))}o.collectionChanged.addHandler(r._updateSelectAllCheck,r);r._filterText="";r._rxFilter=null;r._cmbFilter=new input.ComboBox(r._divFilter,{isRequired:!1,placeholder:n.search});r._cmbFilter.isEditable=!0;r._lbValues=new input.ListBox(r._divValues,{displayMemberPath:"text",checkedMemberPath:"show",itemsSource:r._view,itemFormatter:function(e,t){return t||n.null},checkedItemsChanged:function(e){return r._updateSelectAllCheck()}});setAriaLabel(r._cmbFilter.inputElement,n.ariaLabels.search);setAttribute(r._lbValues.hostElement,"aria-multiselectable",!0);r._cmbFilter.inputElement.addEventListener("input",r._filterTextChanged.bind(r));r._cbSelectAll.addEventListener("click",r._cbSelectAllClicked.bind(r));r.updateEditor();r._initialItems=r._lbValues.checkedItems;return r}Object.defineProperty(ValueFilterEditor.prototype,"filter",{get:function(){return this._filter},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilterEditor.prototype,"canApply",{get:function(){return this._canApply},set:function(e){if(e!=this._canApply){this._canApply=e;this.onCanApplyChanged()}},enumerable:!0,configurable:!0});ValueFilterEditor.prototype.updateEditor=function(){var e=this,t=this._filter.column,i=this._filter.getUniqueValues(!0);this._lbValues.isContentHtml=t.isContentHtml;var r=this._filter.showValues;if(r&&0!=Object.keys(r).length){for(var l in r)for(var n=0;n<i.length;n++)if(i[n].text==l){i[n].show=!0;break}}else i.forEach((function(e){return e.show=!0}));var o=this._filter.filterText||"",a=this._getCaseSensitive();this._cmbFilter.text=o;this._filterText=a?o:o.toLowerCase();this._rxFilter=o?new RegExp(escapeRegExp(o),a?"":"i"):null;var s=this._view;s.pageSize=this._filter.maxValues;s.sourceCollection=i;setTimeout((function(){e._adjustWidths()}),0)};ValueFilterEditor.prototype.clearEditor=function(e){void 0===e&&(e=!0);this._cmbFilter.text="";this._filterText="";this._rxFilter=null;var t=this._view;t.pageSize=0;t.items.forEach((function(t){t.show=e}));t.moveCurrentTo(-1);t.refresh();t.pageSize=this._filter.maxValues};Object.defineProperty(ValueFilterEditor.prototype,"isEditorClear",{get:function(){return!this._filterText&&!this._cbSelectAll.indeterminate},enumerable:!0,configurable:!0});ValueFilterEditor.prototype._updateFilter=function(){var e=null,t=this._getItems();if(this._filterText||this._cbSelectAll.indeterminate){e={};for(var i=0;i<t.length;i++){var r=t[i];r.show&&(e[r.text]=!0)}}var l=this._filter;l.showValues=e;l.filterText=this._filterText};ValueFilterEditor.prototype.updateFilter=function(){var e=this;this._isFiltering?setTimeout((function(){e._updateFilter()}),Control._SEARCH_DELAY+100):this._updateFilter()};ValueFilterEditor.prototype.onCanApplyChanged=function(e){this.canApplyChanged.raise(this,e)};ValueFilterEditor.prototype._getCaseSensitive=function(){var e=this._filter.column,t=e?e.grid:null;return t&&t.caseSensitiveSearch};ValueFilterEditor.prototype._getItems=function(){return this._filter.exclusiveValueSearch?this._view.items:this._view.sourceCollection};ValueFilterEditor.prototype._filterTextChanged=function(){var e=this;""===this._filterText&&this._cbSelectAll.checked||this._filter.exclusiveValueSearch?this._lbValues._addMode=!1:this._lbValues._addMode=!0;this._toFilter&&clearTimeout(this._toFilter);this._isFiltering=!0;this._toFilter=setTimeout((function(){var t=e._cmbFilter.text,i=e._getCaseSensitive();i||(t=t.toLowerCase());if(t!=e._filterText){e._filterText=t;e._rxFilter=t?new RegExp(escapeRegExp(t),i?"":"i"):null;e._view.refresh();if(!t){var r=e._initialItems;if(r.length&&e._view.sourceCollection.indexOf(r[0])>-1){e._lbValues.checkedItems=e._initialItems;e._updateSelectAllCheck();e._isFiltering=!1;return}}if(e._filter.exclusiveValueSearch){e._cbSelectAll.checked=!0;e._cbSelectAllClicked()}else e._updateSelectAllCheck()}e._isFiltering=!1}),Control._SEARCH_DELAY)};ValueFilterEditor.prototype._filterValues=function(e){var t=this._rxFilter;return null==t||null==e||t.test(e.text)};ValueFilterEditor.prototype._cbSelectAllClicked=function(){for(var e=this,t=this._cbSelectAll.checked,i=this._divValues.scrollTop,r=this._getItems(),l=0;l<r.length;l++)r[l].show=t;this._view.refresh();this._divValues.scrollTop=i;setTimeout((function(){e._adjustWidths()}),0)};ValueFilterEditor.prototype._updateSelectAllCheck=function(){for(var e=this._getItems(),t=0,i=0,r=0;r<e.length;r++){e[r].show?t++:i++;if(t&&i)break}setChecked(this._cbSelectAll,t&&i?null:t>0);this.canApply=t>0};ValueFilterEditor.prototype._adjustWidths=function(){var e=this._lbValues.hostElement;if(e&&e.offsetHeight>0){var t=0,i=e.querySelectorAll(".wj-listbox-item label");if(i.length){for(var r=0;r<i.length;r++)t=Math.max(t,i[r].scrollWidth);if(t){var l=e.querySelectorAll(".wj-listbox-item");if(l.length){var n=l[0],o=getComputedStyle(n),a=parseFloat(o.paddingLeft)+parseFloat(o.paddingRight);for(r=0;r<l.length;r++)l[r].style.width=t+a+"px"}}}}};ValueFilterEditor.controlTemplate='<div><div wj-part="div-filter"></div><div class="wj-listbox-item"><label><input wj-part="cb-select-all" type="checkbox"> <span wj-part="sp-select-all"></span></label></div><div wj-part="div-values"></div></div>';return ValueFilterEditor}(Control);export{ValueFilterEditor};var ColumnFilter=function(){function ColumnFilter(e,t){var i=this;this._owner=e;this._col=t;this._valueFilter=new ValueFilter(t);this._valueFilter.exclusiveValueSearch=e.exclusiveValueSearch;this._conditionFilter=new ConditionFilter(t);e.exclusiveValueSearchChanged.addHandler((function(e){i._valueFilter.exclusiveValueSearch=e.exclusiveValueSearch}))}Object.defineProperty(ColumnFilter.prototype,"filterType",{get:function(){return null!=this._filterType?this._filterType:this._owner.defaultFilterType},set:function(e){if((e=asEnum(e,FilterType,!0))!=this._filterType){var t=this.isActive;this.clear();this._filterType=e;t?this._owner.apply():this._col.grid&&this._col.grid.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(ColumnFilter.prototype,"dataMap",{get:function(){return this.conditionFilter.dataMap||this.valueFilter.dataMap},set:function(e){this.conditionFilter.dataMap=e;this.valueFilter.dataMap=e},enumerable:!0,configurable:!0});Object.defineProperty(ColumnFilter.prototype,"valueFilter",{get:function(){return this._valueFilter},enumerable:!0,configurable:!0});Object.defineProperty(ColumnFilter.prototype,"conditionFilter",{get:function(){return this._conditionFilter},enumerable:!0,configurable:!0});Object.defineProperty(ColumnFilter.prototype,"column",{get:function(){return this._col},enumerable:!0,configurable:!0});Object.defineProperty(ColumnFilter.prototype,"isActive",{get:function(){return this._conditionFilter.isActive||this._valueFilter.isActive},enumerable:!0,configurable:!0});ColumnFilter.prototype.apply=function(e){return this._conditionFilter.apply(e)&&this._valueFilter.apply(e)};ColumnFilter.prototype.clear=function(){this._valueFilter.clear();this._conditionFilter.clear()};ColumnFilter.prototype.implementsInterface=function(e){return"IColumnFilter"==e};return ColumnFilter}();export{ColumnFilter};_addCultureInfo("FlexGridFilter",{ariaLabels:{edit:"Edit Filter for Column",dialog:"Filter Editor for Column",asc:"Sort Column in Ascending Order",dsc:"Sort Column in Descending Order",search:"Search Item List",op1:"First Condition Operator",val1:"First Condition Value",and:"Require both Conditions",or:"Require either Condition",op2:"Second Condition Operator",val2:"Second Condition Value"},ascending:"↑ Ascending",descending:"↓ Descending",apply:"Apply",cancel:"Cancel",clear:"Clear",conditions:"Filter by Condition",values:"Filter by Value",search:"Search",selectAll:"Select All",null:"(nothing)",header:"Show items where the value",and:"And",or:"Or",stringOperators:[{name:"(not set)",op:null},{name:"Equals",op:Operator.EQ},{name:"Does not equal",op:Operator.NE},{name:"Begins with",op:Operator.BW},{name:"Ends with",op:Operator.EW},{name:"Contains",op:Operator.CT},{name:"Does not contain",op:Operator.NC}],numberOperators:[{name:"(not set)",op:null},{name:"Equals",op:Operator.EQ},{name:"Does not equal",op:Operator.NE},{name:"Is Greater than",op:Operator.GT},{name:"Is Greater than or equal to",op:Operator.GE},{name:"Is Less than",op:Operator.LT},{name:"Is Less than or equal to",op:Operator.LE}],dateOperators:[{name:"(not set)",op:null},{name:"Equals",op:Operator.EQ},{name:"Is Before",op:Operator.LT},{name:"Is After",op:Operator.GT}],booleanOperators:[{name:"(not set)",op:null},{name:"Equals",op:Operator.EQ},{name:"Does not equal",op:Operator.NE}]});var ColumnFilterEditor=function(e){__extends(ColumnFilterEditor,e);function ColumnFilterEditor(t,i,r){void 0===r&&(r=!0);var l=e.call(this,t,null,!0)||this;l.filterChanged=new Event;l.buttonClicked=new Event;l._filter=asType(i,ColumnFilter);var n=l.getTemplate();l.applyTemplate("wj-control wj-content wj-columnfiltereditor",n,{_divSort:"div-sort",_btnAsc:"btn-asc",_btnDsc:"btn-dsc",_divType:"div-type",_aVal:"a-val",_aCnd:"a-cnd",_divEdtVal:"div-edt-val",_divEdtCnd:"div-edt-cnd",_btnApply:"btn-apply",_btnCancel:"btn-cancel",_btnClear:"btn-clear"});var o=culture.FlexGridFilter,a=o.ariaLabels,s=l.hostElement,u=l.filter.column,d=u.grid.collectionView;setAttribute(s,"role","dialog");setAriaLabel(s,a.dialog+" "+u.header);setAriaLabel(l._btnAsc,a.asc);setAriaLabel(l._btnDsc,a.dsc);setText(l._btnAsc,o.ascending);setText(l._btnDsc,o.descending);setText(l._aVal,o.values);setText(l._aCnd,o.conditions);setText(l._btnApply,o.apply);setText(l._btnCancel,o.cancel);setText(l._btnClear,o.clear);var c=l.filter.conditionFilter.isActive||0==(i.filterType&FilterType.Value)?FilterType.Condition:FilterType.Value;l._showFilter(c);r&&d&&d.canSort||(l._divSort.style.display="none");l._updateSortButtonState();var p=l._btnClicked.bind(l);l._btnApply.addEventListener("click",p);l._btnCancel.addEventListener("click",p);l._btnClear.addEventListener("click",p);l._btnAsc.addEventListener("click",p);l._btnDsc.addEventListener("click",p);l._aVal.addEventListener("click",p);l._aCnd.addEventListener("click",p);l.addEventListener(s,"keydown",(function(e){if(!e.defaultPrevented){var t=e.target.tagName.match(/^(a|button)$/i);switch(e.keyCode){case Key.Space:if(t){l._btnClicked(e);e.preventDefault()}break;case Key.Enter:if(t)l._btnClicked(e);else{l.updateFilter();l.onFilterChanged();l.onButtonClicked()}e.preventDefault();break;case Key.Escape:l.onButtonClicked();e.preventDefault();break;case Key.Tab:moveFocus(l.hostElement,e.shiftKey?-1:1);e.preventDefault()}}}));l.addEventListener(window,"resize",(function(){l.isTouching||l._wasTouching||l.onButtonClicked()}));return l}Object.defineProperty(ColumnFilterEditor.prototype,"filter",{get:function(){return this._filter},enumerable:!0,configurable:!0});ColumnFilterEditor.prototype.updateEditor=function(){this._edtVal&&this._edtVal.updateEditor();this._edtCnd&&this._edtCnd.updateEditor()};ColumnFilterEditor.prototype.updateFilter=function(){switch(this._getFilterType()){case FilterType.Value:this._edtVal.updateFilter();this.filter.conditionFilter.clear();break;case FilterType.Condition:this._edtCnd.updateFilter();this.filter.valueFilter.clear()}};ColumnFilterEditor.prototype.onFilterChanged=function(e){this.filterChanged.raise(this,e)};ColumnFilterEditor.prototype.onButtonClicked=function(e){this.buttonClicked.raise(this,e)};ColumnFilterEditor.prototype._showFilter=function(e){var t=this;this._wasTouching=this.isTouching;if(e==FilterType.Value&&null==this._edtVal){this._edtVal=new ValueFilterEditor(this._divEdtVal,this.filter.valueFilter);this._edtVal.canApplyChanged.addHandler((function(e){enable(t._btnApply,t._edtVal.canApply)}))}if(e==FilterType.Condition&&null==this._edtCnd){this._edtCnd=new ConditionFilterEditor(this._divEdtCnd,this.filter.conditionFilter);this._edtCnd.canApplyChanged.addHandler((function(e){enable(t._btnApply,t._edtCnd.canApply)}))}if(0!=(e&this.filter.filterType))if(e==FilterType.Value){this._divEdtVal.style.display="";this._divEdtCnd.style.display="none";this._enableLink(this._aVal,!1);this._enableLink(this._aCnd,!0);this._edtVal.focus();enable(this._btnApply,this._edtVal.canApply)}else{this._divEdtVal.style.display="none";this._divEdtCnd.style.display="";this._enableLink(this._aVal,!0);this._enableLink(this._aCnd,!1);this._edtCnd.focus();enable(this._btnApply,this._edtCnd.canApply)}var i=this._divType.style;switch(this.filter.filterType){case FilterType.None:case FilterType.Condition:case FilterType.Value:i.display="none";break;default:i.display=""}};ColumnFilterEditor.prototype._enableLink=function(e,t){toggleClass(e,"wj-state-disabled",!t);setAttribute(e,"href",t?"":null);setAttribute(e,"disabled",t?null:"disabled")};ColumnFilterEditor.prototype._updateSortButtonState=function(){var e=this.filter.column,t=e?e.currentSort:"",i="wj-state-active";toggleClass(this._btnAsc,i,"+"==t);toggleClass(this._btnDsc,i,"-"==t)};ColumnFilterEditor.prototype._getFilterType=function(){var e=FilterType;return"none"!=this._divEdtVal.style.display?e.Value:e.Condition};ColumnFilterEditor.prototype._btnClicked=function(e){var t=this,i=e.target;e.preventDefault();e.stopPropagation();if(!hasClass(i,"wj-state-disabled"))if(i!=this._aVal)if(i!=this._aCnd){if(i==this._btnAsc||i==this._btnDsc){var r=this.filter.column,l=r.sortMemberPath||r.binding,n=r.grid.collectionView.sortDescriptions;n.deferUpdate((function(){n.clear();n.push(new SortDescription(l,e.target==t._btnAsc))}));this._updateSortButtonState()}if(i==this._btnApply){this.updateFilter();this.onFilterChanged()}else if(i==this._btnClear){if(this.filter.isActive){this.filter.clear();this.onFilterChanged()}}else this.updateEditor();this.onButtonClicked()}else{this._showFilter(FilterType.Condition);moveFocus(this._edtCnd.hostElement,0)}else{this._showFilter(FilterType.Value);moveFocus(this._edtVal.hostElement,0)}};ColumnFilterEditor.controlTemplate='<div><div wj-part="div-sort" class="wj-sort-buttons"><button wj-part="btn-asc" class="wj-btn"></button>&nbsp;&nbsp;&nbsp;<button wj-part="btn-dsc" class="wj-btn"></button></div><div wj-part="div-type" class="wj-filtertype"><a wj-part="a-cnd" href="" draggable="false"></a>&nbsp;|&nbsp;<a wj-part="a-val" href="" draggable="false"></a></div><div wj-part="div-edt-val" tabindex="-1"></div><div wj-part="div-edt-cnd" tabindex="-1"></div><div style="text-align:right;margin-top:10px"><button wj-part="btn-apply" class="wj-btn"></button>&nbsp;&nbsp;<button wj-part="btn-cancel" class="wj-btn"></button>&nbsp;&nbsp;<button wj-part="btn-clear" class="wj-btn"></button></div></div>';return ColumnFilterEditor}(Control);export{ColumnFilterEditor};_registerModule("wijmo.grid.filter",selfModule);
14
+ var __extends=this&&this.__extends||function(){var extendStatics=function(e,t){return(extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)};return function(e,t){extendStatics(e,t);function __(){this.constructor=e}e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)}}();import{Column,DataMap,FlexGrid,DataMapEditor,CellRange,CellRangeEventArgs,CellType,_NewRowTemplate}from"@mescius/wijmo.grid";import{Globalize,asString,asNumber,asArray,asBoolean,asType,asEnum,isString,isDate,DateTime,culture,isNumber,copy,changeType,setAttribute,showPopup,hidePopup,isFunction,createElement,toggleClass,removeClass,closestClass,setAriaLabel,Control,Event,DataType,Key,CollectionView,setText,escapeRegExp,setChecked,SortDescription,SortNulls,getUniqueId,_addCultureInfo,enable,moveFocus,hasClass,_registerModule}from"@mescius/wijmo";import{DropDown,Popup}from"@mescius/wijmo.input";import*as input from"@mescius/wijmo.input";import*as selfModule from"@mescius/wijmo.grid.filter";export var FilterType;!function(e){e[e.None=0]="None";e[e.Condition=1]="Condition";e[e.Value=2]="Value";e[e.Both=3]="Both"}(FilterType||(FilterType={}));var FlexGridFilter=function(){function FlexGridFilter(e,t){this._showIcons=!0;this._showSort=!0;this._defFilterType=FilterType.Both;this._xValueSearch=!0;this._includeUpdatedRowsInFilter=!1;this.filterApplied=new Event;this.editingFilter=new Event;this.filterChanging=new Event;this.filterChanged=new Event;this.exclusiveValueSearchChanged=new Event;this._filters=[];this._g=asType(e,FlexGrid,!1);this._g.formatItem.addHandler(this._formatItem.bind(this));this._g.itemsSourceChanged.addHandler(this.clear.bind(this));var i=this._g.hostElement;e.addEventListener(i,"mousedown",this._mousedown.bind(this),!0);e.addEventListener(i,"click",this._click.bind(this),!0);e.addEventListener(i,"keydown",this._keydown.bind(this),!0);this._g.invalidate();copy(this,t);this._init()}FlexGridFilter.prototype._init=function(){var e=this,t=this.grid,_excludeRowFromFilter=function(t){var i=e.grid,r=e.excludedRowsSet;if(i.itemsSource)if(i.rows[t]instanceof _NewRowTemplate){var n=i.editableCollectionView.currentAddItem||i.rows[t].dataItem;n&&r.add(n)}else i.rows[t].dataItem&&r.add(i.rows[t].dataItem);else i.rows[t]&&r.add(i.rows[t])};t.rowChanged&&t.rowChanged.addHandler((function(e,t){t.added&&_excludeRowFromFilter(t.index)}));t.rowEditEnding.addHandler((function(e,t){_excludeRowFromFilter(t.row)}));t.cellEditEnded.addHandler((function(e,t){_excludeRowFromFilter(t.row)}))};Object.defineProperty(FlexGridFilter.prototype,"excludedRowsSet",{get:function(){var e=this.grid;e.selectedSheet&&(e=e.selectedSheet);e._newAddedRowsSet||(e._newAddedRowsSet=new WeakSet);return e._newAddedRowsSet},set:function(e){var t=this.grid;t.selectedSheet&&(t=t.selectedSheet);t._newAddedRowsSet=e},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridFilter.prototype,"grid",{get:function(){return this._g},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridFilter.prototype,"filterColumns",{get:function(){return this._filterColumns},set:function(e){this._filterColumns=asArray(e);this.clear()},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridFilter.prototype,"showFilterIcons",{get:function(){return this._showIcons},set:function(e){if(e!=this.showFilterIcons){this._showIcons=asBoolean(e);this._g&&this._g.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridFilter.prototype,"showSortButtons",{get:function(){return this._showSort},set:function(e){this._showSort=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridFilter.prototype,"reApplyFilterOnUpdate",{get:function(){return this._includeUpdatedRowsInFilter},set:function(e){e!==this._includeUpdatedRowsInFilter&&(this._includeUpdatedRowsInFilter=asBoolean(e))},enumerable:!0,configurable:!0});FlexGridFilter.prototype.getColumnFilter=function(e,t){void 0===t&&(t=!0);if(e=this._asColumn(e)){for(var i=0;i<this._filters.length;i++)if(this._filters[i].column==e)return this._filters[i];if(t&&e.binding){var r=new ColumnFilter(this,e);this._filters.push(r);return r}}return null};Object.defineProperty(FlexGridFilter.prototype,"defaultFilterType",{get:function(){return this._defFilterType},set:function(e){if((e=asEnum(e,FilterType,!1))!=this.defaultFilterType){this._defFilterType=e;this._g.invalidate();this.clear()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridFilter.prototype,"exclusiveValueSearch",{get:function(){return this._xValueSearch},set:function(e){if((e=asBoolean(e))!==this._xValueSearch){this._xValueSearch=e;this.onExclusiveValueSearchChanged()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridFilter.prototype,"filterDefinition",{get:function(){var e=this,t={defaultFilterType:this.defaultFilterType,filters:[]};this._filters.forEach((function(i){var r=i.conditionFilter,n=i.valueFilter,l=n.uniqueValues&&n.uniqueValues.length;if(i&&i.column&&i.column.binding&&(i.isActive||l||i.filterType!=e.defaultFilterType)){var a={binding:i.column.binding};if(r.isActive){var o=r.condition1,s=r.condition2;a={binding:i.column.binding,type:"condition",condition1:{operator:o.operator,value:o.value},and:r.and,condition2:{operator:s.operator,value:s.value}}}else(n.isActive||l)&&(a={binding:i.column.binding,type:"value",uniqueValues:n.uniqueValues,sortValues:n.sortValues,maxValues:n.maxValues,exclusiveValueSearch:n.exclusiveValueSearch,showValues:n.showValues});i.filterType!=e.defaultFilterType&&(a.filterType=i.filterType);t.filters.push(a)}}));return JSON.stringify(t)},set:function(e){e=asString(e);this.clear();if(e){var t=JSON.parse(e);this.defaultFilterType=t.defaultFilterType;for(var _loop_1=function(e){var r=t.filters[e],n=i._asColumn(r.binding);n||(n=new Column({binding:r.binding}));var l=i.getColumnFilter(n,!0);if(l){null!=r.filterType&&(l.filterType=asEnum(r.filterType,FilterType));switch(r.type){case"condition":var a=l.conditionFilter;a.condition1.value=n.dataType==DataType.Date?changeType(r.condition1.value,n.dataType,null):r.condition1.value;a.condition1.operator=r.condition1.operator;a.and=r.and;a.condition2.value=n.dataType==DataType.Date?changeType(r.condition2.value,n.dataType,null):r.condition2.value;a.condition2.operator=r.condition2.operator;break;case"value":var o=l.valueFilter;o.uniqueValues=r.uniqueValues;["sortValues","maxValues","exclusiveValueSearch"].forEach((function(e){null!=r[e]&&(o[e]=r[e])}));o.showValues=r.showValues}}},i=this,r=0;r<t.filters.length;r++)_loop_1(r)}this.apply()},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridFilter.prototype,"activeEditor",{get:function(){return Control.getControl(this._divEdt)},enumerable:!0,configurable:!0});FlexGridFilter.prototype.editColumnFilter=function(e,t,i){var r=this,n=this._g;this.closeEditor();e=this._asColumn(e);var l=new CellRangeEventArgs(n.cells,new CellRange(-1,e.index));if(this.onEditingFilter(l)){var a=createElement('<div class="wj-dropdown-panel"></div>'),o=this.getColumnFilter(e),s=new ColumnFilterEditor(a,o,this.showSortButtons);this._divEdt=a;this._edtCol=e;n.rightToLeft&&(a.dir="rtl");if(this.onFilterChanging(l)){l.cancel=!0;s.filterChanged.addHandler((function(){l.cancel=!1;setTimeout((function(){if(!l.cancel){r.excludedRowsSet=null;r.apply()}}),s._edtVal&&s._edtVal._isFiltering?Control._SEARCH_DELAY+200:0)}));s.buttonClicked.addHandler((function(){r.closeEditor();n.focus();r.onFilterChanged(l)}));s.lostFocus.addHandler((function(){setTimeout((function(){var e=Control.getControl(r._divEdt);e&&!e.containsFocus()&&r.closeEditor()}),10)}));var u=t?t.col:e.index,d=n.columns[u];t||d&&d.binding==e.binding||(u=n.selection.leftCol);n._edtHdl._commitRowEdits();n.scrollIntoView(-1,u,!0);var c=n.columnHeaders,p=t&&t.panel&&c&&t.panel._uid==c._uid?t.row:c.rows.length-1,h=u,f=i||c.getCellElement(p,h),_=f?null:c.getCellBoundingRect(p,h);f?showPopup(a,f,!1,!1,!1):showPopup(a,_);this._setAriaExpanded(f,!0);this._setAriaExpanded(n.cells.getCellElement(-1,h),!0);for(var v=s.hostElement.querySelectorAll("input"),b=0;b<v.length;b++){var m=v[b];if(m.offsetHeight>0&&m.tabIndex>-1&&!m.disabled){m.focus();break}}s.containsFocus()||s.focus()}else this._divEdt=this._edtCol=null}};FlexGridFilter.prototype._setAriaExpanded=function(e,t){if(e){var i=e.querySelector("."+FlexGridFilter._WJC_FILTER);setAttribute(i,"aria-expanded",t)}};FlexGridFilter.prototype.closeEditor=function(){var e=this._g,t=Control.getControl(this._divEdt),i=this._edtCol;t&&hidePopup(t.hostElement,(function(){t.dispose()}));if(i){var r=e.columnHeaders,n=r.rows.length?r.getCellElement(r.rows.length-1,i.index):null;this._setAriaExpanded(n,!1);n=e.cells.getCellElement(-1,i.index);this._setAriaExpanded(n,!1)}this._divEdt=null;this._edtCol=null};FlexGridFilter.prototype.apply=function(){var e=this._g.collectionView;if(e){var t=this._g.editableCollectionView;if(t){t.commitEdit();t.commitNew()}e.filter=this._filter.bind(this)}var i=e?e.updateFilterDefinition:null;isFunction(i)&&i.call(e,this);this.onFilterApplied()};FlexGridFilter.prototype.clear=function(){if(this._filters.length){this._filters=[];this.apply()}};FlexGridFilter.prototype.onFilterApplied=function(e){this.filterApplied.raise(this,e)};FlexGridFilter.prototype.onEditingFilter=function(e){this.editingFilter.raise(this,e);return!e.cancel};FlexGridFilter.prototype.onFilterChanging=function(e){this.filterChanging.raise(this,e);return!e.cancel};FlexGridFilter.prototype.onFilterChanged=function(e){this.filterChanged.raise(this,e)};FlexGridFilter.prototype.onExclusiveValueSearchChanged=function(e){this.exclusiveValueSearchChanged.raise(this,e)};FlexGridFilter.prototype._asColumn=function(e){return isString(e)?this._g.getColumn(e,!0):isNumber(e)?this._g.columns[e]:asType(e,Column,!1)};FlexGridFilter.prototype._filter=function(e){var t=this.excludedRowsSet;if(!this.reApplyFilterOnUpdate&&t.has(e))return!0;for(var i=this._filters,r=0;r<i.length;r++){var n=i[r];if(n.column!=FlexGridFilter._skipColumn&&!n.apply(e))return!1}return!0};FlexGridFilter.prototype._formatItem=function(e,t){if(t.panel==e.columnHeaders){var i=this._g,r=i.getMergedRange(t.panel,t.row,t.col)||new CellRange(t.row,t.col),n=i.columns[r.col],l=i._getBindingColumn(t.panel,t.row,n),a=t.cell;if(r.row2==t.panel.rows.length-1||n!=l){var o=this.getColumnFilter(l,this.defaultFilterType!=FilterType.None),s=this._filterColumns;s&&s.length&&s.indexOf(l.binding)<0&&s.indexOf(l.name)<0&&(o=null);if(o){toggleClass(a,"wj-filter-on",o.isActive);toggleClass(a,"wj-filter-off",!o.isActive)}else{removeClass(a,"wj-filter-on");removeClass(a,"wj-filter-off")}if(o&&o.filterType!=FilterType.None){this._showIcons&&this._addFilterButton(l,o,a);0==t.row&&(a=i.cells.getCellElement(-1,t.col))&&this._addFilterButton(n,o,a)}}}};FlexGridFilter.prototype._addFilterButton=function(e,t,i){var r=FlexGridFilter._WJC_FILTER,n=createElement('<button class="wj-btn wj-btn-glyph wj-right '+r+'" type="button" tabindex="-1"><span class="wj-glyph-filter"></span></button>');setAriaLabel(n,culture.FlexGridFilter.ariaLabels.edit+" "+e.header);setAttribute(n,"aria-haspopup","dialog");setAttribute(n,"aria-expanded",!1);setAttribute(n,"aria-describedby",e.describedById);setAttribute(n,"aria-pressed",t.isActive);if(!i.querySelector("."+r)){1==i.children.length&&(i=i.querySelector("div")||i);i.insertBefore(n,i.firstChild)}};FlexGridFilter.prototype._mousedown=function(e){this._edtColPrev=this._edtCol};FlexGridFilter.prototype._click=function(e){if(this._toggleEditor(e)){e.stopPropagation();e.preventDefault()}};FlexGridFilter.prototype._toggleEditor=function(e){var t=this;if(!e.defaultPrevented&&0==e.button)if(closestClass(e.target,FlexGridFilter._WJC_FILTER)){var i=this._g,r=i.hitTest(e.target);r.panel||(r=i.hitTest(e));if(r.panel&&i.columnHeaders&&i.cells&&(r.panel._uid==i.columnHeaders._uid||r.panel._uid==i.cells._uid&&-1==r.row)){var n=i.getMergedRange(r.panel,r.row,r.col)||new CellRange(r.row,r.col),l=i.columns[n.col],a=i._getBindingColumn(r.panel,r.row,l);if(this._divEdt&&this._edtCol==a){this.closeEditor();i.focus()}else a!=this._edtColPrev&&setTimeout((function(){t.editColumnFilter(a,r)}),this._divEdt?100:0);return!0}}else this.closeEditor();return!1};FlexGridFilter.prototype._keydown=function(e){if(!e.defaultPrevented&&!e.ctrlKey&&e.altKey&&(e.keyCode==Key.Down||e.keyCode==Key.Up)){var t=this.grid,i=t.selection,r=i.col>-1?t.columns[i.col]:null,n=r?t._getBindingColumn(t.cells,i.row,r):null,l=n&&n.dataMap&&n.dataMapEditor==DataMapEditor.DropDownList;if(this.filterColumns&&this.filterColumns.length>0&&!this.filterColumns.includes(n._binding._path)){e.preventDefault();return!1}if(t.activePanelType!=CellType.Cell&&t.activePanelType!=CellType.ColumnHeader){e.preventDefault();return!1}n&&n.editor instanceof DropDown&&(l=!0);if(n&&!l){var a=this.getColumnFilter(n,!1);if(a&&a.filterType!=FilterType.None){this.editColumnFilter(n);e.preventDefault();e.stopPropagation()}}}};FlexGridFilter._WJC_FILTER="wj-elem-filter";return FlexGridFilter}();export{FlexGridFilter};export var empty={};var ConditionFilter=function(){function ConditionFilter(e){this._c1=new FilterCondition(this);this._c2=new FilterCondition(this);this._and=!0;this._col=e}Object.defineProperty(ConditionFilter.prototype,"condition1",{get:function(){return this._c1},enumerable:!0,configurable:!0});Object.defineProperty(ConditionFilter.prototype,"condition2",{get:function(){return this._c2},enumerable:!0,configurable:!0});Object.defineProperty(ConditionFilter.prototype,"and",{get:function(){return this._and},set:function(e){this._and=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(ConditionFilter.prototype,"dataMap",{get:function(){return this._map},set:function(e){this._map=asType(e,DataMap,!0)},enumerable:!0,configurable:!0});Object.defineProperty(ConditionFilter.prototype,"column",{get:function(){return this._col},enumerable:!0,configurable:!0});Object.defineProperty(ConditionFilter.prototype,"isActive",{get:function(){return this._c1.isActive||this._c2.isActive},enumerable:!0,configurable:!0});ConditionFilter.prototype.apply=function(e){var t=this._col,i=this._c1,r=this._c2,n=!1,l=!1;if(!t||!t._binding||!this.isActive)return!0;e=t._binding.getValue(e);var a=this.dataMap||t.dataMap;if(a)e=a.getDisplayValue(e);else if(isDate(e)){n=!this._hasTimePart();l=!this._hasDatePart();var o=FilterCondition._refDateTime;n?e=DateTime.fromDateTime(e,o):l&&(e=DateTime.fromDateTime(o,e))}else if(isNumber(e)){var s=Globalize,u=t.format,d=s.formatNumber(e,u);e=s.parseFloat(d,u)}var c=i.apply(e,n,l),p=r.apply(e,n,l);return i.isActive&&r.isActive?this._and?c&&p:c||p:i.isActive?c:!r.isActive||p};ConditionFilter.prototype.clear=function(){this._c1.clear();this._c2.clear();this.and=!0};ConditionFilter.prototype._hasDatePart=function(){var e=this._col.format;if(!e)return!0;e=culture.Globalize.calendar.patterns[e]||e;return/[yMd]+/.test(e)};ConditionFilter.prototype._hasTimePart=function(){var e=this._col.format;if(!e)return!1;e=culture.Globalize.calendar.patterns[e]||e;return/[Hmst]+/.test(e)};ConditionFilter.prototype.implementsInterface=function(e){return"IColumnFilter"==e};return ConditionFilter}();export{ConditionFilter};var ConditionFilterEditor=function(e){__extends(ConditionFilterEditor,e);function ConditionFilterEditor(t,i){var r=e.call(this,t)||this;r._canApply=!1;r.canApplyChanged=new Event;r._filter=asType(i,ConditionFilter,!1);var n=r.getTemplate();r.applyTemplate("wj-control wj-conditionfilter-editor",n,{_divHdr:"div-hdr",_divCmb1:"div-cmb1",_divVal1:"div-val1",_btnAnd:"btn-and",_btnOr:"btn-or",_spAnd:"sp-and",_spOr:"sp-or",_divCmb2:"div-cmb2",_divVal2:"div-val2"});var l=culture.FlexGridFilter,a=l.ariaLabels;setAriaLabel(r._btnAnd,a.and);setAriaLabel(r._btnOr,a.or);setText(r._divHdr,l.header);setText(r._spAnd,l.and);setText(r._spOr,l.or);var o=getUniqueId("cmb1");r._divHdr.htmlFor=o;r._divCmb1.id=o;r._cmb1=r._createOperatorCombo(r._divCmb1,a.op1);r._cmb2=r._createOperatorCombo(r._divCmb2,a.op2);r._val1=r._createValueInput(r._divVal1,a.val1);r._val2=r._createValueInput(r._divVal2,a.val2);r._val1.isDisabled=!0;r._cmb1.selectedIndexChanged.addHandler((function(e,t){r._val1.isDisabled=null==e.selectedValue;r.canApply=!r._val1.isDisabled||!r._val2.isDisabled}));r._val2.isDisabled=!0;r._cmb2.selectedIndexChanged.addHandler((function(e,t){r._val2.isDisabled=null==e.selectedValue;r.canApply=!r._val1.isDisabled||!r._val2.isDisabled}));var s=r.hostElement;r.addEventListener(s,"change",r._btnAndOrChanged.bind(r));r.addEventListener(s,"keydown",r._keydown.bind(r));setTimeout((function(){r.updateEditor()}));return r}Object.defineProperty(ConditionFilterEditor.prototype,"filter",{get:function(){return this._filter},enumerable:!0,configurable:!0});Object.defineProperty(ConditionFilterEditor.prototype,"canApply",{get:function(){return this._canApply},set:function(e){if(e!=this._canApply){this._canApply=e;this.onCanApplyChanged()}},enumerable:!0,configurable:!0});ConditionFilterEditor.prototype.updateEditor=function(){var e=this._filter.condition1,t=this._filter.condition2;this._cmb1.selectedValue=e.operator;this._cmb2.selectedValue=t.operator;if(this._val1 instanceof input.ComboBox&&!(this._val1 instanceof input.InputTime)){this._val1.text=changeType(e.value,DataType.String);this._val2.text=changeType(t.value,DataType.String)}else{this._val1.value=e.value;this._val2.value=t.value}var i=this._filter.and;this._checkRadio(this._btnAnd,i);this._checkRadio(this._btnOr,!i)};ConditionFilterEditor.prototype.clearEditor=function(){this._cmb1.selectedValue=this._cmb2.selectedValue=null;this._val1.text=this._val2.text=null;this._checkRadio(this._btnAnd,!0);this._checkRadio(this._btnOr,!1)};Object.defineProperty(ConditionFilterEditor.prototype,"isEditorClear",{get:function(){return null==this._cmb1.selectedValue&&!this._val1.text&&null==this._cmb2.selectedValue&&!this._val2.text},enumerable:!0,configurable:!0});ConditionFilterEditor.prototype.updateFilter=function(){var e=this._filter.condition1,t=this._filter.condition2;e.operator=this._cmb1.selectedValue;t.operator=this._cmb2.selectedValue;if("value"in this._val1){e.value=this._val1.value;t.value=this._val2.value}else{e.value=this._getComboValue(this._val1);t.value=this._getComboValue(this._val2)}this._filter.and=this._btnAnd.checked};ConditionFilterEditor.prototype.onCanApplyChanged=function(e){this.canApplyChanged.raise(this,e)};ConditionFilterEditor.prototype._getComboValue=function(e){return e.selectedIndex>-1?e.selectedValue:e.text};ConditionFilterEditor.prototype._createOperatorCombo=function(e,t){var i=this._filter.column,r=culture.FlexGridFilter,n=r.stringOperators,l=DataType;this._filter.dataMap||i.dataMap||(i.dataType==l.Date?n=r.dateOperators:i.dataType==l.Number?n=r.numberOperators:i.dataType==l.Boolean&&(n=r.booleanOperators));var a=new input.ComboBox(e,{itemsSource:n,displayMemberPath:"name",selectedValuePath:"op"});setAriaLabel(a.inputElement,t);return a};ConditionFilterEditor.prototype._createValueInput=function(e,t){var i=this._filter,r=i.column,n=i.dataMap||r.dataMap,l=null,a=DataType;if(r.dataType==a.Date)(l=i._hasDatePart()?i._hasTimePart()?new input.InputDateTime(e):new input.InputDate(e):new input.InputTime(e)).format=r.format;else if(r.dataType!=a.Number||n){(l=new input.ComboBox(e)).isEditable=!0;if(n){l.itemsSource=n.getDisplayValues();l.caseSensitiveSearch=!!r.grid&&r.grid.caseSensitiveSearch}else r.dataType==a.Boolean&&(l.itemsSource=[!0,!1])}else(l=new input.InputNumber(e)).format=r.format;l.isRequired=!1;setAriaLabel(l.inputElement,t);return l};ConditionFilterEditor.prototype._btnAndOrChanged=function(e){var t=e.target==this._btnAnd,i=e.target==this._btnOr;if(t||i){this._checkRadio(this._btnAnd,t);this._checkRadio(this._btnOr,i)}};ConditionFilterEditor.prototype._checkRadio=function(e,t){e.checked=t;setAttribute(e,"aria-checked",t.toString());setAttribute(e,"tabindex",t?null:"-1")};ConditionFilterEditor.prototype._keydown=function(e){var t=e.target==this._btnAnd,i=e.target==this._btnOr;if(t||i)switch(e.keyCode){case Key.Left:case Key.Right:case Key.Up:case Key.Down:var r=t?this._btnOr:this._btnAnd;r.click();r.focus();e.preventDefault()}};ConditionFilterEditor.controlTemplate='<div><label wj-part="div-hdr"></label><div wj-part="div-cmb1"></div><br/><div wj-part="div-val1"></div><br/><div role="radiogroup" style="text-align:center"><label><input wj-part="btn-and" type="radio" role="radio"> <span wj-part="sp-and"></span> </label>&nbsp;&nbsp;&nbsp;<label><input wj-part="btn-or" type="radio" role="radio"> <span wj-part="sp-or"></span> </label></div><div wj-part="div-cmb2"></div><br/><div wj-part="div-val2"></div><br/></div>';return ConditionFilterEditor}(Control);export{ConditionFilterEditor};var FilterCondition=function(){function FilterCondition(e){this._op=null;this._filter=e}Object.defineProperty(FilterCondition.prototype,"operator",{get:function(){return this._op},set:function(e){this._op=asEnum(e,Operator,!0)},enumerable:!0,configurable:!0});Object.defineProperty(FilterCondition.prototype,"value",{get:function(){return this._val},set:function(e){this._val=e;this._strVal=isString(e)?this._getCaseString(e):null},enumerable:!0,configurable:!0});Object.defineProperty(FilterCondition.prototype,"isActive",{get:function(){switch(this._op){case null:return!1;case Operator.EQ:case Operator.NE:return!0;default:return null!=this._val||null!=this._strVal}},enumerable:!0,configurable:!0});FilterCondition.prototype.clear=function(){this.operator=null;this.value=null};FilterCondition.prototype.apply=function(e,t,i){var r=this._strVal||this._val;isString(e)&&(e=this._getCaseString(e));isString(r)&&null==e&&(e="");isDate(r)&&(t?r=DateTime.fromDateTime(r,FilterCondition._refDateTime):i&&(r=DateTime.fromDateTime(FilterCondition._refDateTime,r)));var n=Operator;switch(this._op){case null:return!0;case n.EQ:return null!=e&&null!=r?e.valueOf()==r.valueOf():e==r;case n.NE:return null!=e&&null!=r?e.valueOf()!=r.valueOf():e!=r;case n.GT:return e>r;case n.GE:return e>=r;case n.LT:return e<r;case n.LE:return e<=r;case n.BW:return!(null==this._strVal||!isString(e))&&0==e.indexOf(this._strVal);case n.EW:return!!(null!=this._strVal&&isString(e)&&e.length>=this._strVal.length)&&e.substr(e.length-this._strVal.length)==r;case n.CT:return!(null==this._strVal||!isString(e))&&e.indexOf(this._strVal)>-1;case n.NC:return!(null==this._strVal||!isString(e))&&e.indexOf(this._strVal)<0}throw"Unknown operator"};FilterCondition.prototype._getCaseString=function(e){var t=this._filter.column,i=t?t.grid:null;return i&&i.caseSensitiveSearch?e:e.toLowerCase()};FilterCondition._refDateTime=new Date(2e3,0,1,0,0,0);return FilterCondition}();export{FilterCondition};export var Operator;!function(e){e[e.EQ=0]="EQ";e[e.NE=1]="NE";e[e.GT=2]="GT";e[e.GE=3]="GE";e[e.LT=4]="LT";e[e.LE=5]="LE";e[e.BW=6]="BW";e[e.EW=7]="EW";e[e.CT=8]="CT";e[e.NC=9]="NC"}(Operator||(Operator={}));export var ValueFilterSearchKind;!function(e){e[e.Text=0]="Text";e[e.Regex=1]="Regex";e[e.Excel=2]="Excel"}(ValueFilterSearchKind||(ValueFilterSearchKind={}));var ValueFilter=function(){function ValueFilter(e){this._values=null;this._filterText=null;this._xValueSearch=!0;this._maxValues=250;this._uniqueValues=null;this._sortValues=!0;this._searchType=ValueFilterSearchKind.Excel;this._exceedsMaxValues=!1;this._col=e}Object.defineProperty(ValueFilter.prototype,"searchType",{get:function(){return this._searchType},set:function(e){this._searchType=asEnum(e,ValueFilterSearchKind)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"showValues",{get:function(){return this._values},set:function(e){this._values=e},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"filterText",{get:function(){return this._filterText},set:function(e){this._filterText=asString(e)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"exclusiveValueSearch",{get:function(){return this._xValueSearch},set:function(e){if((e=asBoolean(e))!==this._xValueSearch){this._xValueSearch=asBoolean(e);e&&(this._filterText="")}},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"maxValues",{get:function(){return this._maxValues},set:function(e){this._maxValues=asNumber(e,!1,!0)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"uniqueValues",{get:function(){return this._uniqueValues},set:function(e){this._uniqueValues=asArray(e)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"sortValues",{get:function(){return this._sortValues},set:function(e){this._sortValues=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"dataMap",{get:function(){return this._map},set:function(e){this._map=asType(e,DataMap,!0)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"column",{get:function(){return this._col},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"isActive",{get:function(){return null!=this._values&&Object.keys(this._values).length>0},enumerable:!0,configurable:!0});ValueFilter.prototype.apply=function(e){var t=this.column;if(!(t&&t._binding&&this._values&&Object.keys(this._values).length))return!0;e=t._binding.getValue(e);e=this.dataMap?this.dataMap.getDisplayValue(e)||"":t.dataMap?t.dataMap.getDisplayValue(e)||"":Globalize.format(e,t.format);return null!=this._values[e]};ValueFilter.prototype.clear=function(){this.showValues=null;this.filterText=null};ValueFilter.prototype.getUniqueValues=function(e){void 0===e&&(e=!0);var t=[],i=this.column,r=Globalize.format;if(this.uniqueValues){this.uniqueValues.forEach((function(e){t.push({value:e,text:r(e,i.format)})}));return t}var n={},l=i.collectionView,a=l?l.sourceCollection:[];if(e&&l&&l.sourceCollection&&l.filter)try{FlexGridFilter._skipColumn=this._col;for(var o=[],s=0;s<a.length;s++)l.filter(a[s])&&o.push(a[s]);a=o}finally{FlexGridFilter._skipColumn=null}for(s=0;s<a.length;s++){var u=i._binding.getValue(a[s]),d=this.dataMap?this.dataMap.getDisplayValue(u)||"":i.dataMap?i.dataMap.getDisplayValue(u)||"":r(u,i.format);if(!n[d]){n[d]=!0;t.push({value:u,text:d})}}this._exceedsMaxValues=t.length>this._maxValues;return t};Object.defineProperty(ValueFilter.prototype,"exceedsMaxValues",{get:function(){return this._exceedsMaxValues},enumerable:!0,configurable:!0});ValueFilter.prototype.implementsInterface=function(e){return"IColumnFilter"==e};return ValueFilter}();export{ValueFilter};var ValueFilterEditor=function(e){__extends(ValueFilterEditor,e);function ValueFilterEditor(t,i){var r=e.call(this,t)||this;r._canApply=!1;r._isFiltering=!1;r.canApplyChanged=new Event;r._filter=asType(i,ValueFilter,!1);var n=r.getTemplate();r.applyTemplate("wj-control wj-valuefilter-editor",n,{_divFilter:"div-filter",_cbSelectAll:"cb-select-all",_spSelectAll:"sp-select-all",_divValues:"div-values"});r._cbSelectAll.tabIndex=0;var l=culture.FlexGridFilter;setText(r._spSelectAll,l.selectAll);var a=r._view=new CollectionView(null,{sortNulls:SortNulls.First,filter:r._filterValues.bind(r)});if(i.sortValues){var o=i.column.dataMap||i.dataMap?"text":"value",s=i.column.dataType!=DataType.Boolean;a.sortDescriptions.push(new SortDescription(o,s))}a.collectionChanged.addHandler(r._updateSelectAllCheck,r);r._filterText="";r._rxFilter=null;r._cmbFilter=new input.ComboBox(r._divFilter,{isRequired:!1,placeholder:l.search});r._cmbFilter.isEditable=!0;r._lbValues=new input.ListBox(r._divValues,{displayMemberPath:"text",checkedMemberPath:"show",itemsSource:r._view,itemFormatter:function(e,t){return t||l.null},checkedItemsChanged:function(e){return r._updateSelectAllCheck()}});setAriaLabel(r._cmbFilter.inputElement,l.ariaLabels.search);setAttribute(r._lbValues.hostElement,"aria-multiselectable",!0);r._cmbFilter.inputElement.addEventListener("input",r._filterTextChanged.bind(r));r._cbSelectAll.addEventListener("click",r._cbSelectAllClicked.bind(r));r.updateEditor();r._initialItems=r._lbValues.checkedItems;return r}Object.defineProperty(ValueFilterEditor.prototype,"filter",{get:function(){return this._filter},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilterEditor.prototype,"canApply",{get:function(){return this._canApply},set:function(e){if(e!=this._canApply){this._canApply=e;this.onCanApplyChanged()}},enumerable:!0,configurable:!0});ValueFilterEditor.prototype.updateEditor=function(){var e=this,t=this._filter.column,i=this._filter.getUniqueValues(!0);this._lbValues.isContentHtml=t.isContentHtml;var r=this._filter.showValues;if(r&&0!=Object.keys(r).length){for(var n in r)for(var l=0;l<i.length;l++)if(i[l].text==n){i[l].show=!0;break}}else i.forEach((function(e){return e.show=!0}));var a=this._filter.filterText||"",o=this._getCaseSensitive();this._cmbFilter.text=a;this._filterText=o?a:a.toLowerCase();this._rxFilter=this._getSearchExp(a,o);var s=this._view;s.pageSize=this._filter.maxValues;s.sourceCollection=i;setTimeout((function(){e._adjustWidths()}),0)};ValueFilterEditor.prototype.clearEditor=function(e){void 0===e&&(e=!0);this._cmbFilter.text="";this._filterText="";this._rxFilter=null;var t=this._view;t.pageSize=0;t.items.forEach((function(t){t.show=e}));t.moveCurrentTo(-1);t.refresh();t.pageSize=this._filter.maxValues};Object.defineProperty(ValueFilterEditor.prototype,"isEditorClear",{get:function(){return!this._filterText&&!this._cbSelectAll.indeterminate},enumerable:!0,configurable:!0});ValueFilterEditor.prototype._updateFilter=function(){var e=null,t=this._getItems();if(this._filterText||this._cbSelectAll.indeterminate){e={};for(var i=0;i<t.length;i++){var r=t[i];r.show&&(e[r.text]=!0)}}var n=this._filter;n.showValues=e;n.filterText=this._filterText};ValueFilterEditor.prototype.updateFilter=function(){var e=this;this._isFiltering?setTimeout((function(){e._updateFilter()}),Control._SEARCH_DELAY+100):this._updateFilter()};ValueFilterEditor.prototype.onCanApplyChanged=function(e){this.canApplyChanged.raise(this,e)};ValueFilterEditor.prototype._getCaseSensitive=function(){var e=this._filter.column,t=e?e.grid:null;return t&&t.caseSensitiveSearch};ValueFilterEditor.prototype._getItems=function(){return this._filter.exclusiveValueSearch?this._view.items:this._view.sourceCollection};ValueFilterEditor.prototype._filterTextChanged=function(){var e=this;""===this._filterText&&this._cbSelectAll.checked||this._filter.exclusiveValueSearch?this._lbValues._addMode=!1:this._lbValues._addMode=!0;this._toFilter&&clearTimeout(this._toFilter);this._isFiltering=!0;this._toFilter=setTimeout((function(){var t=e._cmbFilter.text,i=e._getCaseSensitive();i||(t=t.toLowerCase());if(t!=e._filterText){e._filterText=t;e._rxFilter=e._getSearchExp(t,i);e._view.refresh();if(!t){var r=e._initialItems;if(r.length&&e._view.sourceCollection.indexOf(r[0])>-1){e._lbValues.checkedItems=e._initialItems;e._updateSelectAllCheck();e._isFiltering=!1;return}}if(e._filter.exclusiveValueSearch){e._cbSelectAll.checked=!0;e._cbSelectAllClicked()}else e._updateSelectAllCheck()}e._isFiltering=!1}),Control._SEARCH_DELAY)};ValueFilterEditor.prototype._getSearchExp=function(e,t){if(!e)return null;switch(this._filter.searchType){case ValueFilterSearchKind.Text:return this._getTextSearchExp(e,t);case ValueFilterSearchKind.Regex:return this._getRegexSearchExp(e,t);case ValueFilterSearchKind.Excel:return this._getExcelSearchExp(e,t)}};ValueFilterEditor.prototype._getTextSearchExp=function(e,t){return new RegExp(escapeRegExp(e),t?"":"i")};ValueFilterEditor.prototype._getRegexSearchExp=function(e,t){try{return new RegExp(e,t?"s":"is")}catch(e){return new RegExp("(?!)",t?"s":"is")}};ValueFilterEditor.prototype._getExcelSearchExp=function(e,t){var i=e;i=(i=(i=(i=(i=(i=(i=(i=i.replace(/([.+^$[\]\\(){}|-])/g,"\\$1")).replace(/~~/g,"__`$0`__")).replace(/~\?/g,"__`$1`__")).replace(/~\*/g,"__`$2`__")).replace(/~(.)/g,"$1")).replace(/(\?+)/g,(function(e,t){return Array.from(t).map((function(e){return"."})).join("")}))).replace(/(\*+)/g,(function(e,t){return Array.from(t).map((function(e){return".*"})).join("")}))).replace(/__`\$(\d)`__/g,(function(e,t){switch(t){case"0":return"~";case"1":return"\\?";case"2":return"\\*"}}));/([^~]|^)[?*]/g.test(e)&&(i="^"+i+"$");("~"===e||e&&!i.length)&&(i="$a^");return new RegExp(i,t?"s":"is")};ValueFilterEditor.prototype._filterValues=function(e){var t=this._rxFilter;return null==t||null==e||t.test(e.text)};ValueFilterEditor.prototype._cbSelectAllClicked=function(){for(var e=this,t=this._cbSelectAll.checked,i=this._divValues.scrollTop,r=this._getItems(),n=0;n<r.length;n++)r[n].show=t;this._view.refresh();this._divValues.scrollTop=i;setTimeout((function(){e._adjustWidths()}),0)};ValueFilterEditor.prototype._updateSelectAllCheck=function(){for(var e=this._getItems(),t=0,i=0,r=0;r<e.length;r++){e[r].show?t++:i++;if(t&&i)break}setChecked(this._cbSelectAll,t&&i?null:t>0);this.canApply=t>0};ValueFilterEditor.prototype._adjustWidths=function(){var e=this._lbValues.hostElement;if(e&&e.offsetHeight>0){var t=0,i=e.querySelectorAll(".wj-listbox-item label");if(i.length){for(var r=0;r<i.length;r++)t=Math.max(t,i[r].scrollWidth);if(t){var n=e.querySelectorAll(".wj-listbox-item");if(n.length){var l=n[0],a=getComputedStyle(l),o=parseFloat(a.paddingLeft)+parseFloat(a.paddingRight);for(r=0;r<n.length;r++)n[r].style.width=t+o+"px"}}}}};ValueFilterEditor.controlTemplate='<div><div wj-part="div-filter"></div><div class="wj-listbox-item"><label><input wj-part="cb-select-all" type="checkbox"> <span wj-part="sp-select-all"></span></label></div><div wj-part="div-values"></div></div>';return ValueFilterEditor}(Control);export{ValueFilterEditor};var ColumnFilter=function(){function ColumnFilter(e,t){var i=this;this._owner=e;this._col=t;this._valueFilter=new ValueFilter(t);this._valueFilter.exclusiveValueSearch=e.exclusiveValueSearch;this._conditionFilter=new ConditionFilter(t);e.exclusiveValueSearchChanged.addHandler((function(e){i._valueFilter.exclusiveValueSearch=e.exclusiveValueSearch}))}Object.defineProperty(ColumnFilter.prototype,"filterType",{get:function(){return null!=this._filterType?this._filterType:this._owner.defaultFilterType},set:function(e){if((e=asEnum(e,FilterType,!0))!=this._filterType){var t=this.isActive;this.clear();this._filterType=e;t?this._owner.apply():this._col.grid&&this._col.grid.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(ColumnFilter.prototype,"dataMap",{get:function(){return this.conditionFilter.dataMap||this.valueFilter.dataMap},set:function(e){this.conditionFilter.dataMap=e;this.valueFilter.dataMap=e},enumerable:!0,configurable:!0});Object.defineProperty(ColumnFilter.prototype,"valueFilter",{get:function(){return this._valueFilter},enumerable:!0,configurable:!0});Object.defineProperty(ColumnFilter.prototype,"conditionFilter",{get:function(){return this._conditionFilter},enumerable:!0,configurable:!0});Object.defineProperty(ColumnFilter.prototype,"column",{get:function(){return this._col},enumerable:!0,configurable:!0});Object.defineProperty(ColumnFilter.prototype,"isActive",{get:function(){return this._conditionFilter.isActive||this._valueFilter.isActive},enumerable:!0,configurable:!0});ColumnFilter.prototype.apply=function(e){return this._conditionFilter.apply(e)&&this._valueFilter.apply(e)};ColumnFilter.prototype.clear=function(){this._valueFilter.clear();this._conditionFilter.clear()};ColumnFilter.prototype.implementsInterface=function(e){return"IColumnFilter"==e};return ColumnFilter}();export{ColumnFilter};_addCultureInfo("FlexGridFilter",{ariaLabels:{edit:"Edit Filter for Column",dialog:"Filter Editor for Column",asc:"Sort Column in Ascending Order",dsc:"Sort Column in Descending Order",search:"Search Item List",op1:"First Condition Operator",val1:"First Condition Value",and:"Require both Conditions",or:"Require either Condition",op2:"Second Condition Operator",val2:"Second Condition Value"},ascending:"↑ Ascending",descending:"↓ Descending",apply:"Apply",cancel:"Cancel",clear:"Clear",conditions:"Filter by Condition",values:"Filter by Value",search:"Search",selectAll:"Select All",null:"(nothing)",exceedsMaxValues:"Not all items showing",popupBody:"This column has more than 250 unique items. Only the first 250 unique items are displayed. Please set the maxValues property of the ValueFilter to see all the values on the list.",popupOkButton:"OK",header:"Show items where the value",and:"And",or:"Or",stringOperators:[{name:"(not set)",op:null},{name:"Equals",op:Operator.EQ},{name:"Does not equal",op:Operator.NE},{name:"Begins with",op:Operator.BW},{name:"Ends with",op:Operator.EW},{name:"Contains",op:Operator.CT},{name:"Does not contain",op:Operator.NC}],numberOperators:[{name:"(not set)",op:null},{name:"Equals",op:Operator.EQ},{name:"Does not equal",op:Operator.NE},{name:"Is Greater than",op:Operator.GT},{name:"Is Greater than or equal to",op:Operator.GE},{name:"Is Less than",op:Operator.LT},{name:"Is Less than or equal to",op:Operator.LE}],dateOperators:[{name:"(not set)",op:null},{name:"Equals",op:Operator.EQ},{name:"Is Before",op:Operator.LT},{name:"Is After",op:Operator.GT}],booleanOperators:[{name:"(not set)",op:null},{name:"Equals",op:Operator.EQ},{name:"Does not equal",op:Operator.NE}]});var ColumnFilterEditor=function(e){__extends(ColumnFilterEditor,e);function ColumnFilterEditor(t,i,r){void 0===r&&(r=!0);var n=e.call(this,t,null,!0)||this;n.filterChanged=new Event;n.buttonClicked=new Event;n._filter=asType(i,ColumnFilter);var l=n.getTemplate();n.applyTemplate("wj-control wj-content wj-columnfiltereditor",l,{_divSort:"div-sort",_btnAsc:"btn-asc",_btnDsc:"btn-dsc",_divType:"div-type",_aVal:"a-val",_aCnd:"a-cnd",_divEdtVal:"div-edt-val",_divEdtCnd:"div-edt-cnd",_aExceeds:"a-exceeds",_btnApply:"btn-apply",_btnCancel:"btn-cancel",_btnClear:"btn-clear"});var a=culture.FlexGridFilter,o=a.ariaLabels,s=n.hostElement,u=n.filter.column,d=u.grid.collectionView;setAttribute(s,"role","dialog");setAriaLabel(s,o.dialog+" "+u.header);setAriaLabel(n._btnAsc,o.asc);setAriaLabel(n._btnDsc,o.dsc);setText(n._btnAsc,a.ascending);setText(n._btnDsc,a.descending);setText(n._aVal,a.values);setText(n._aCnd,a.conditions);setText(n._aExceeds,a.exceedsMaxValues);setText(n._btnApply,a.apply);setText(n._btnCancel,a.cancel);setText(n._btnClear,a.clear);var c=n.filter.conditionFilter.isActive||0==(i.filterType&FilterType.Value)?FilterType.Condition:FilterType.Value;n._showFilter(c);r&&d&&d.canSort||(n._divSort.style.display="none");n._updateSortButtonState();var p=n._btnClicked.bind(n),h="click";n._btnApply.addEventListener(h,p);n._btnCancel.addEventListener(h,p);n._btnClear.addEventListener(h,p);n._btnAsc.addEventListener(h,p);n._btnDsc.addEventListener(h,p);n._aVal.addEventListener(h,p);n._aCnd.addEventListener(h,p);if(!n._popup){n._initPopup();var f=n.hostElement.querySelector('[wj-part="a-exceeds"]');f&&f.addEventListener(h,(function(){n._popup.show(!0)}))}n.addEventListener(s,"keydown",(function(e){if(!e.defaultPrevented){var t=e.target.tagName.match(/^(a|button)$/i);switch(e.keyCode){case Key.Space:if(t){n._btnClicked(e);e.preventDefault()}break;case Key.Enter:if(t)n._btnClicked(e);else{n.updateFilter();n.onFilterChanged();n.onButtonClicked()}e.preventDefault();break;case Key.Escape:n.onButtonClicked();e.preventDefault();break;case Key.Tab:moveFocus(n.hostElement,e.shiftKey?-1:1);e.preventDefault()}}}));n.addEventListener(window,"resize",(function(){n.isTouching||n._wasTouching||n.onButtonClicked()}));return n}Object.defineProperty(ColumnFilterEditor.prototype,"filter",{get:function(){return this._filter},enumerable:!0,configurable:!0});ColumnFilterEditor.prototype.updateEditor=function(){if(this._edtVal){this._edtVal.updateEditor();this._updateExceedsLinkVisibility()}this._edtCnd&&this._edtCnd.updateEditor()};ColumnFilterEditor.prototype.updateFilter=function(){switch(this._getFilterType()){case FilterType.Value:this._edtVal.updateFilter();this.filter.conditionFilter.clear();break;case FilterType.Condition:this._edtCnd.updateFilter();this.filter.valueFilter.clear()}};ColumnFilterEditor.prototype.onFilterChanged=function(e){this.filterChanged.raise(this,e)};ColumnFilterEditor.prototype.onButtonClicked=function(e){this.buttonClicked.raise(this,e)};ColumnFilterEditor.prototype._showFilter=function(e){var t=this;this._wasTouching=this.isTouching;if(e==FilterType.Value&&null==this._edtVal){this._edtVal=new ValueFilterEditor(this._divEdtVal,this.filter.valueFilter);this._updateExceedsLinkVisibility();this._edtVal.canApplyChanged.addHandler((function(e){enable(t._btnApply,t._edtVal.canApply)}))}if(e==FilterType.Condition&&null==this._edtCnd){this._edtCnd=new ConditionFilterEditor(this._divEdtCnd,this.filter.conditionFilter);this._edtCnd.canApplyChanged.addHandler((function(e){enable(t._btnApply,t._edtCnd.canApply)}))}if(0!=(e&this.filter.filterType))if(e==FilterType.Value){this._divEdtVal.style.display="";this._divEdtCnd.style.display="none";this._enableLink(this._aVal,!1);this._enableLink(this._aCnd,!0);this._edtVal.focus();enable(this._btnApply,this._edtVal.canApply)}else{this._divEdtVal.style.display="none";this._divEdtCnd.style.display="";this._enableLink(this._aVal,!0);this._enableLink(this._aCnd,!1);this._edtCnd.focus();enable(this._btnApply,this._edtCnd.canApply)}var i=this._divType.style;switch(this.filter.filterType){case FilterType.None:case FilterType.Condition:case FilterType.Value:i.display="none";break;default:i.display=""}};ColumnFilterEditor.prototype._enableLink=function(e,t){toggleClass(e,"wj-state-disabled",!t);setAttribute(e,"href",t?"":null);setAttribute(e,"disabled",t?null:"disabled")};ColumnFilterEditor.prototype._updateSortButtonState=function(){var e=this.filter.column,t=e?e.currentSort:"",i="wj-state-active";toggleClass(this._btnAsc,i,"+"==t);toggleClass(this._btnDsc,i,"-"==t)};ColumnFilterEditor.prototype._getFilterType=function(){var e=FilterType;return"none"!=this._divEdtVal.style.display?e.Value:e.Condition};ColumnFilterEditor.prototype._btnClicked=function(e){var t=this,i=e.target;e.preventDefault();e.stopPropagation();if(!hasClass(i,"wj-state-disabled"))if(i!=this._aVal)if(i!=this._aCnd){if(i==this._btnAsc||i==this._btnDsc){var r=this.filter.column,n=r.sortMemberPath||r.binding,l=r.grid.collectionView.sortDescriptions;l.deferUpdate((function(){l.clear();l.push(new SortDescription(n,e.target==t._btnAsc))}));this._updateSortButtonState()}if(i==this._btnApply){this.updateFilter();this.onFilterChanged()}else if(i==this._btnClear){if(this.filter.isActive){this.filter.clear();this.onFilterChanged()}}else this.updateEditor();this.onButtonClicked()}else{this._showFilter(FilterType.Condition);moveFocus(this._edtCnd.hostElement,0)}else{this._showFilter(FilterType.Value);moveFocus(this._edtVal.hostElement,0)}};ColumnFilterEditor.prototype._updateExceedsLinkVisibility=function(){if(this._edtVal&&this._aExceeds){var e=this._edtVal.filter.exceedsMaxValues;this._aExceeds.style.display=e?"":"none";this._aExceeds.textContent=e?culture.FlexGridFilter.exceedsMaxValues:"";this._aExceeds.href=e?"javascript:void(0)":""}};ColumnFilterEditor.prototype._initPopup=function(){var e=document.createElement("div");e.innerHTML='<div class="modal-dialog" role="dialog"><div class="modal-body"><div class="custom-modal-text"><p>'+culture.FlexGridFilter.popupBody+'</p></div></div><div class="modal-footer"><button class="btn btn-primary wj-hide-ok">'+culture.FlexGridFilter.popupOkButton+"</button></div></div>";this._popup=new Popup(e,{modal:!0,fadeIn:!0,fadeOut:!0})};ColumnFilterEditor.controlTemplate='<div><div wj-part="div-sort" class="wj-sort-buttons"><button wj-part="btn-asc" class="wj-btn"></button>&nbsp;&nbsp;&nbsp;<button wj-part="btn-dsc" class="wj-btn"></button></div><div wj-part="div-type" class="wj-filtertype"><a wj-part="a-cnd" href="" draggable="false"></a>&nbsp;|&nbsp;<a wj-part="a-val" href="" draggable="false"></a></div><div wj-part="div-edt-val" tabindex="-1"></div><div wj-part="div-edt-cnd" tabindex="-1"></div><div style="margin: 14px 0px; font-size: 12px;"><a wj-part="a-exceeds" href="" style="display:none;"></a></div><div style="text-align:right;margin-top:10px"><button wj-part="btn-apply" class="wj-btn"></button>&nbsp;&nbsp;<button wj-part="btn-cancel" class="wj-btn"></button>&nbsp;&nbsp;<button wj-part="btn-clear" class="wj-btn"></button></div></div>';return ColumnFilterEditor}(Control);export{ColumnFilterEditor};_registerModule("wijmo.grid.filter",selfModule);
package/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * Wijmo Library 5.20232.939
3
+ * Wijmo Library 5.20241.2
4
4
  * https://developer.mescius.com/wijmo
5
5
  *
6
6
  * Copyright(c) MESCIUS inc. All rights reserved.
@@ -18,9 +18,9 @@
18
18
  *
19
19
  */
20
20
  export declare var ___keepComment: any;
21
- import { Column, DataMap, FlexGrid, HitTestInfo, CellRangeEventArgs } from '@grapecity/wijmo.grid';
22
- import { Control, Event, EventArgs } from '@grapecity/wijmo';
23
- import * as selfModule from '@grapecity/wijmo.grid.filter';
21
+ import { Column, DataMap, FlexGrid, HitTestInfo, CellRangeEventArgs } from '@mescius/wijmo.grid';
22
+ import { Control, Event, EventArgs } from '@mescius/wijmo';
23
+ import * as selfModule from '@mescius/wijmo.grid.filter';
24
24
  /**
25
25
  * Specifies types of column filter.
26
26
  */
@@ -42,8 +42,8 @@ export declare enum FilterType {
42
42
  * constructor. For example:
43
43
  *
44
44
  * ```typescript
45
- * import { FlexGrid } from '@grapecity/wijmo.grid';
46
- * import { FlexGridFilter } from '@grapecity/wijmo.grid.filter';
45
+ * import { FlexGrid } from '@mescius/wijmo.grid';
46
+ * import { FlexGridFilter } from '@mescius/wijmo.grid.filter';
47
47
  * let flex = new FlexGrid('#theGrid'); // create the grid
48
48
  * let filter = new FlexGridFilter(flex); // add a filter to the grid
49
49
  * ```
@@ -72,6 +72,7 @@ export declare class FlexGridFilter {
72
72
  private _showSort;
73
73
  private _defFilterType;
74
74
  private _xValueSearch;
75
+ private _includeUpdatedRowsInFilter;
75
76
  static _skipColumn: Column;
76
77
  /**
77
78
  * Initializes a new instance of the {@link FlexGridFilter} class.
@@ -80,6 +81,15 @@ export declare class FlexGridFilter {
80
81
  * @param options Initialization options for the {@link FlexGridFilter}.
81
82
  */
82
83
  constructor(grid: FlexGrid, options?: any);
84
+ /**
85
+ * Basic initialization steps required for FlexGridFilter
86
+ */
87
+ protected _init(): void;
88
+ /**
89
+ * Gets/set the Set that contains rows updated after filter is applied, WJM-32107
90
+ *
91
+ */
92
+ protected excludedRowsSet: WeakSet<any>;
83
93
  /**
84
94
  * Gets a reference to the {@link FlexGrid} that owns this filter.
85
95
  */
@@ -113,6 +123,32 @@ export declare class FlexGridFilter {
113
123
  * The default value for this property is **true**.
114
124
  */
115
125
  showSortButtons: boolean;
126
+ /**
127
+ * Gets or sets a value indicating whether to apply filter on the updated
128
+ * rows.
129
+ * If this property is set to true, then events such as row update,
130
+ * row insertion, sorting etc refreshes filter and rows which do not pass
131
+ * filter gets filtered out.
132
+ * IF this property is set to false, then filter is not applied immediately
133
+ * and we need to click the apply button again to refresh filter.
134
+ * For complete excel behavior you also need to set the refreshOnEdit property {@link CollectionView.refreshOnEdit}
135
+ * of CollectionView to false
136
+ * * ```typescript
137
+ * // For flexgrid
138
+ * flexgrid.collectionView.refreshOnEdit = false;
139
+ *
140
+ * // For flexsheet
141
+ * flexSheet.itemsSourceChanged.addHandler((s, e) => {
142
+ * if(s.collectionView){
143
+ * s.collectionView.refreshOnEdit = false;
144
+ * }
145
+ * });
146
+ *
147
+ * ```
148
+ *
149
+ * The default value for this property is **false**.
150
+ */
151
+ reApplyFilterOnUpdate: boolean;
116
152
  /**
117
153
  * Gets the filter for the given column.
118
154
  *
@@ -129,7 +165,7 @@ export declare class FlexGridFilter {
129
165
  * conditions on all columns except the "ByValue" column:
130
166
  *
131
167
  * ```typescript
132
- * import { FlexGridFilter, FilterType } from '@grapecity/wijmo.grid.filter';
168
+ * import { FlexGridFilter, FilterType } from '@mescius/wijmo.grid.filter';
133
169
  * let filter = new FlexGridFilter(flex);
134
170
  * filter.defaultFilterType = FilterType.Condition;
135
171
  * let col = flex.getColumn('ByValue'),
@@ -311,7 +347,7 @@ export declare class FlexGridFilter {
311
347
  _mousedown(e: MouseEvent): void;
312
348
  _click(e: MouseEvent): void;
313
349
  private _toggleEditor;
314
- _keydown(e: KeyboardEvent): void;
350
+ _keydown(e: KeyboardEvent): boolean;
315
351
  }
316
352
  /**
317
353
  * Defines a filter for a column on a {@link FlexGrid} control.
@@ -541,6 +577,17 @@ export declare enum Operator {
541
577
  /** Does not contain. */
542
578
  NC = 9
543
579
  }
580
+ /**
581
+ * Specifies type of Search to use inside ValueFilterEditor.
582
+ */
583
+ export declare enum ValueFilterSearchKind {
584
+ /** Simple includes text filter. */
585
+ Text = 0,
586
+ /** Regex filter. */
587
+ Regex = 1,
588
+ /** Excel style wilcard(?, *, ~) character support. */
589
+ Excel = 2
590
+ }
544
591
  /**
545
592
  * Defines a value filter for a column on a {@link FlexGrid} control.
546
593
  *
@@ -556,12 +603,29 @@ export declare class ValueFilter implements IColumnFilter {
556
603
  private _uniqueValues;
557
604
  private _sortValues;
558
605
  private _map;
606
+ private _searchType;
607
+ private _exceedsMaxValues;
559
608
  /**
560
609
  * Initializes a new instance of the {@link ValueFilter} class.
561
610
  *
562
611
  * @param column The column to filter.
563
612
  */
564
613
  constructor(column: Column);
614
+ /**
615
+ * Gets or sets the search type to use for ValueFilterEditor.
616
+ *
617
+ * For example, the code below sets up the ValueFilter for
618
+ * 'country' column to use Excel style wildcards
619
+ *
620
+ * ```typescript
621
+ * import { FlexGridFilter, ValueFilterSearchKind } from '@mescius/wijmo.grid.filter';
622
+ * let filter = new FlexGridFilter(flex);
623
+ * filter.getColumnFilter("country").valueFilter.searchType = ValueFilterSearchKind.Excel;
624
+ * ```
625
+ *
626
+ * The default value for this property is **ValueFilterSearchKind.Excel**.
627
+ */
628
+ searchType: ValueFilterSearchKind;
565
629
  /**
566
630
  * Gets or sets an object with the selected (checked) values on the
567
631
  * value list.
@@ -611,7 +675,7 @@ export declare class ValueFilter implements IColumnFilter {
611
675
  * values for the field:
612
676
  *
613
677
  * ```typescript
614
- * import { FlexGridFilter} from '@grapecity/wijmo.grid.filter';
678
+ * import { FlexGridFilter} from '@mescius/wijmo.grid.filter';
615
679
  *
616
680
  * // change the maxItems property for the 'id' column:
617
681
  * let f = new FlexGridFilter(theGrid);
@@ -637,7 +701,7 @@ export declare class ValueFilter implements IColumnFilter {
637
701
  * {@link ValueFilter} for the column bound to the 'country' field:
638
702
  *
639
703
  * ```typescript
640
- * import { FlexGridFilter} from '@grapecity/wijmo.grid.filter';
704
+ * import { FlexGridFilter} from '@mescius/wijmo.grid.filter';
641
705
  *
642
706
  * // create filter for a FlexGrid
643
707
  * let filter = new FlexGridFilter(grid);
@@ -705,6 +769,7 @@ export declare class ValueFilter implements IColumnFilter {
705
769
  * the values from the data source.
706
770
  */
707
771
  getUniqueValues(filtered?: boolean): any[];
772
+ readonly exceedsMaxValues: boolean;
708
773
  /**
709
774
  * Returns true if this object supports a given interface.
710
775
  *
@@ -789,6 +854,10 @@ export declare class ValueFilterEditor extends Control {
789
854
  protected _getCaseSensitive(): boolean;
790
855
  protected _getItems(): any[];
791
856
  private _filterTextChanged;
857
+ protected _getSearchExp(text: string, isCaseSensitive: boolean): RegExp;
858
+ private _getTextSearchExp;
859
+ private _getRegexSearchExp;
860
+ private _getExcelSearchExp;
792
861
  private _filterValues;
793
862
  private _cbSelectAllClicked;
794
863
  private _updateSelectAllCheck;
@@ -832,7 +901,7 @@ export declare class ColumnFilter implements IColumnFilter {
832
901
  * so the filter editor displays 'Yes' and 'No' instead of 'true' and 'false':
833
902
  *
834
903
  * ```typescript
835
- * import { FlexGridFilter } from '@grapecity/wijmo.grid.filter';
904
+ * import { FlexGridFilter } from '@mescius/wijmo.grid.filter';
836
905
  * var filter = new FlexGridFilter(grid),
837
906
  * map = new wijmo.grid.DataMap([
838
907
  * { value: true, caption: 'Yes' },
@@ -898,9 +967,11 @@ export declare class ColumnFilterEditor extends Control {
898
967
  private _aVal;
899
968
  private _divEdtVal;
900
969
  private _divEdtCnd;
970
+ private _aExceeds;
901
971
  private _btnApply;
902
972
  private _btnCancel;
903
973
  private _btnClear;
974
+ private _popup;
904
975
  /**
905
976
  * Gets or sets the template used to instantiate {@link ColumnFilterEditor} controls.
906
977
  */
@@ -947,4 +1018,6 @@ export declare class ColumnFilterEditor extends Control {
947
1018
  private _updateSortButtonState;
948
1019
  private _getFilterType;
949
1020
  private _btnClicked;
1021
+ private _updateExceedsLinkVisibility;
1022
+ private _initPopup;
950
1023
  }