@grapecity/wijmo.grid.filter 5.20241.19 → 5.20242.30

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.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * Wijmo Library 5.20241.19
3
+ * Wijmo Library 5.20242.30
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
- "use strict";var __importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.hasOwnProperty.call(e,i)&&(t[i]=e[i]);t.default=e;return t};Object.defineProperty(exports,"__esModule",{value:!0});const wijmo_grid_1=require("@grapecity/wijmo.grid"),wijmo_1=require("@grapecity/wijmo"),wijmo_input_1=require("@grapecity/wijmo.input"),input=__importStar(require("@grapecity/wijmo.input")),selfModule=__importStar(require("@grapecity/wijmo.grid.filter"));var FilterType,Operator,ValueFilterSearchKind;!function(e){e[e.None=0]="None";e[e.Condition=1]="Condition";e[e.Value=2]="Value";e[e.Both=3]="Both"}(FilterType=exports.FilterType||(exports.FilterType={}));class FlexGridFilter{constructor(e,t){this._showIcons=!0;this._showSort=!0;this._defFilterType=FilterType.Both;this._xValueSearch=!0;this._includeUpdatedRowsInFilter=!1;this.filterApplied=new wijmo_1.Event;this.editingFilter=new wijmo_1.Event;this.filterChanging=new wijmo_1.Event;this.filterChanged=new wijmo_1.Event;this.exclusiveValueSearchChanged=new wijmo_1.Event;this._filters=[];this._g=wijmo_1.asType(e,wijmo_grid_1.FlexGrid,!1);this._g.formatItem.addHandler(this._formatItem.bind(this));this._g.itemsSourceChanged.addHandler(this.clear.bind(this));let 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();wijmo_1.copy(this,t);this._init()}_init(){const e=this.grid,_excludeRowFromFilter=e=>{let t=this.grid;const i=this.excludedRowsSet;if(t.itemsSource)if(t.rows[e]instanceof wijmo_grid_1._NewRowTemplate){let l=t.editableCollectionView.currentAddItem||t.rows[e].dataItem;l&&i.add(l)}else t.rows[e].dataItem&&i.add(t.rows[e].dataItem);else t.rows[e]&&i.add(t.rows[e])};e.rowChanged&&e.rowChanged.addHandler((e,t)=>{t.added&&_excludeRowFromFilter(t.index)});e.rowEditEnding.addHandler((e,t)=>{_excludeRowFromFilter(t.row)});e.cellEditEnded.addHandler((e,t)=>{_excludeRowFromFilter(t.row)})}get excludedRowsSet(){let e=this.grid;e.selectedSheet&&(e=e.selectedSheet);e._newAddedRowsSet||(e._newAddedRowsSet=new WeakSet);return e._newAddedRowsSet}set excludedRowsSet(e){let t=this.grid;t.selectedSheet&&(t=t.selectedSheet);t._newAddedRowsSet=e}get grid(){return this._g}get filterColumns(){return this._filterColumns}set filterColumns(e){this._filterColumns=wijmo_1.asArray(e);this.clear()}get showFilterIcons(){return this._showIcons}set showFilterIcons(e){if(e!=this.showFilterIcons){this._showIcons=wijmo_1.asBoolean(e);this._g&&this._g.invalidate()}}get showSortButtons(){return this._showSort}set showSortButtons(e){this._showSort=wijmo_1.asBoolean(e)}get reApplyFilterOnUpdate(){return this._includeUpdatedRowsInFilter}set reApplyFilterOnUpdate(e){e!==this._includeUpdatedRowsInFilter&&(this._includeUpdatedRowsInFilter=wijmo_1.asBoolean(e))}getColumnFilter(e,t=!0){if(e=this._asColumn(e)){for(let t=0;t<this._filters.length;t++)if(this._filters[t].column==e)return this._filters[t];if(t&&e.binding){let t=new ColumnFilter(this,e);this._filters.push(t);return t}}return null}get defaultFilterType(){return this._defFilterType}set defaultFilterType(e){if((e=wijmo_1.asEnum(e,FilterType,!1))!=this.defaultFilterType){this._defFilterType=e;this._g.invalidate();this.clear()}}get exclusiveValueSearch(){return this._xValueSearch}set exclusiveValueSearch(e){if((e=wijmo_1.asBoolean(e))!==this._xValueSearch){this._xValueSearch=e;this.onExclusiveValueSearchChanged()}}get filterDefinition(){let e={defaultFilterType:this.defaultFilterType,filters:[]};this._filters.forEach(t=>{let i=t.conditionFilter,l=t.valueFilter,s=l.uniqueValues&&l.uniqueValues.length;if(t&&t.column&&t.column.binding&&(t.isActive||s||t.filterType!=this.defaultFilterType)){let a={binding:t.column.binding};if(i.isActive){let e=i.condition1,l=i.condition2;a={binding:t.column.binding,type:"condition",condition1:{operator:e.operator,value:e.value},and:i.and,condition2:{operator:l.operator,value:l.value}}}else(l.isActive||s)&&(a={binding:t.column.binding,type:"value",uniqueValues:l.uniqueValues,sortValues:l.sortValues,maxValues:l.maxValues,exclusiveValueSearch:l.exclusiveValueSearch,showValues:l.showValues});t.filterType!=this.defaultFilterType&&(a.filterType=t.filterType);e.filters.push(a)}});return JSON.stringify(e)}set filterDefinition(e){e=wijmo_1.asString(e);this.clear();if(e){let t=JSON.parse(e);this.defaultFilterType=t.defaultFilterType;for(let e=0;e<t.filters.length;e++){let i=t.filters[e],l=this._asColumn(i.binding);l||(l=new wijmo_grid_1.Column({binding:i.binding}));let s=this.getColumnFilter(l,!0);if(s){null!=i.filterType&&(s.filterType=wijmo_1.asEnum(i.filterType,FilterType));switch(i.type){case"condition":let e=s.conditionFilter;e.condition1.value=l.dataType==wijmo_1.DataType.Date?wijmo_1.changeType(i.condition1.value,l.dataType,null):i.condition1.value;e.condition1.operator=i.condition1.operator;e.and=i.and;e.condition2.value=l.dataType==wijmo_1.DataType.Date?wijmo_1.changeType(i.condition2.value,l.dataType,null):i.condition2.value;e.condition2.operator=i.condition2.operator;break;case"value":let t=s.valueFilter;t.uniqueValues=i.uniqueValues;["sortValues","maxValues","exclusiveValueSearch"].forEach(e=>{null!=i[e]&&(t[e]=i[e])});t.showValues=i.showValues}}}}this.apply()}get activeEditor(){return wijmo_1.Control.getControl(this._divEdt)}editColumnFilter(e,t,i){let l=this._g;this.closeEditor();e=this._asColumn(e);let s=new wijmo_grid_1.CellRangeEventArgs(l.cells,new wijmo_grid_1.CellRange(-1,e.index));if(!this.onEditingFilter(s))return;let a=wijmo_1.createElement('<div class="wj-dropdown-panel"></div>'),r=this.getColumnFilter(e),n=new ColumnFilterEditor(a,r,this.showSortButtons);this._divEdt=a;this._edtCol=e;l.rightToLeft&&(a.dir="rtl");if(!this.onFilterChanging(s)){this._divEdt=this._edtCol=null;return}s.cancel=!0;n.filterChanged.addHandler(()=>{s.cancel=!1;setTimeout(()=>{if(!s.cancel){this.excludedRowsSet=null;this.apply()}},n._edtVal&&n._edtVal._isFiltering?wijmo_1.Control._SEARCH_DELAY+200:0)});n.buttonClicked.addHandler(()=>{this.closeEditor();l.focus();this.onFilterChanged(s)});n.lostFocus.addHandler(()=>{setTimeout(()=>{let e=wijmo_1.Control.getControl(this._divEdt);e&&!e.containsFocus()&&this.closeEditor()},10)});let o=t?t.col:e.index,d=l.columns[o];t||d&&d.binding==e.binding||(o=l.selection.leftCol);l._edtHdl._commitRowEdits();l.scrollIntoView(-1,o,!0);let h=l.columnHeaders,u=t&&t.panel&&h&&t.panel._uid==h._uid?t.row:h.rows.length-1,_=o,c=i||h.getCellElement(u,_),p=c?null:h.getCellBoundingRect(u,_);c?wijmo_1.showPopup(a,c,!1,!1,!1):wijmo_1.showPopup(a,p);this._setAriaExpanded(c,!0);this._setAriaExpanded(l.cells.getCellElement(-1,_),!0);let m=n.hostElement.querySelectorAll("input");for(let e=0;e<m.length;e++){let t=m[e];if(t.offsetHeight>0&&t.tabIndex>-1&&!t.disabled){t.focus();break}}n.containsFocus()||n.focus()}_setAriaExpanded(e,t){if(e){var i=e.querySelector("."+FlexGridFilter._WJC_FILTER);wijmo_1.setAttribute(i,"aria-expanded",t)}}closeEditor(){let e=this._g,t=wijmo_1.Control.getControl(this._divEdt),i=this._edtCol;t&&wijmo_1.hidePopup(t.hostElement,()=>{t.dispose()});if(i){let t=e.columnHeaders,l=t.rows.length?t.getCellElement(t.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}apply(){let e=this._g.collectionView;if(e){let t=this._g.editableCollectionView;if(t){t.commitEdit();t.commitNew()}e.filter=this._filter.bind(this)}let t=e?e.updateFilterDefinition:null;wijmo_1.isFunction(t)&&t.call(e,this);this.onFilterApplied()}clear(){if(this._filters.length){this._filters=[];this.apply()}}onFilterApplied(e){this.filterApplied.raise(this,e)}onEditingFilter(e){this.editingFilter.raise(this,e);return!e.cancel}onFilterChanging(e){this.filterChanging.raise(this,e);return!e.cancel}onFilterChanged(e){this.filterChanged.raise(this,e)}onExclusiveValueSearchChanged(e){this.exclusiveValueSearchChanged.raise(this,e)}_asColumn(e){return wijmo_1.isString(e)?this._g.getColumn(e,!0):wijmo_1.isNumber(e)?this._g.columns[e]:wijmo_1.asType(e,wijmo_grid_1.Column,!1)}_filter(e){const t=this.excludedRowsSet;if(!this.reApplyFilterOnUpdate&&t.has(e))return!0;let i=this._filters;for(let t=0;t<i.length;t++){let l=i[t];if(l.column!=FlexGridFilter._skipColumn&&!l.apply(e))return!1}return!0}_formatItem(e,t){if(t.panel==e.columnHeaders){let e=this._g,i=e.getMergedRange(t.panel,t.row,t.col)||new wijmo_grid_1.CellRange(t.row,t.col),l=e.columns[i.col],s=e._getBindingColumn(t.panel,t.row,l),a=t.cell;if(i.row2==t.panel.rows.length-1||l!=s){let i=this.getColumnFilter(s,this.defaultFilterType!=FilterType.None),r=this._filterColumns;r&&r.length&&r.indexOf(s.binding)<0&&r.indexOf(s.name)<0&&(i=null);if(i){wijmo_1.toggleClass(a,"wj-filter-on",i.isActive);wijmo_1.toggleClass(a,"wj-filter-off",!i.isActive)}else{wijmo_1.removeClass(a,"wj-filter-on");wijmo_1.removeClass(a,"wj-filter-off")}if(i&&i.filterType!=FilterType.None){this._showIcons&&this._addFilterButton(s,i,a);0==t.row&&(a=e.cells.getCellElement(-1,t.col))&&this._addFilterButton(l,i,a)}}}}_addFilterButton(e,t,i){let l=FlexGridFilter._WJC_FILTER,s=wijmo_1.createElement('<button class="wj-btn wj-btn-glyph wj-right '+l+'" type="button" tabindex="-1"><span class="wj-glyph-filter"></span></button>');wijmo_1.setAriaLabel(s,wijmo_1.culture.FlexGridFilter.ariaLabels.edit+" "+e.header);wijmo_1.setAttribute(s,"aria-haspopup","dialog");wijmo_1.setAttribute(s,"aria-expanded",!1);wijmo_1.setAttribute(s,"aria-describedby",e.describedById);wijmo_1.setAttribute(s,"aria-pressed",t.isActive);if(!i.querySelector("."+l)){1==i.children.length&&(i=i.querySelector("div")||i);i.insertBefore(s,i.firstChild)}}_mousedown(e){this._edtColPrev=this._edtCol}_click(e){if(this._toggleEditor(e)){e.stopPropagation();e.preventDefault()}}_toggleEditor(e){if(!e.defaultPrevented&&0==e.button)if(wijmo_1.closestClass(e.target,FlexGridFilter._WJC_FILTER)){let t=this._g,i=t.hitTest(e.target);i.panel||(i=t.hitTest(e));if(i.panel&&t.columnHeaders&&t.cells&&(i.panel._uid==t.columnHeaders._uid||i.panel._uid==t.cells._uid&&-1==i.row)){let e=t.getMergedRange(i.panel,i.row,i.col)||new wijmo_grid_1.CellRange(i.row,i.col),l=t.columns[e.col],s=t._getBindingColumn(i.panel,i.row,l);if(this._divEdt&&this._edtCol==s){this.closeEditor();t.focus()}else s!=this._edtColPrev&&setTimeout(()=>{this.editColumnFilter(s,i)},this._divEdt?100:0);return!0}}else this.closeEditor();return!1}_keydown(e){if(!e.defaultPrevented&&!e.ctrlKey&&e.altKey&&(e.keyCode==wijmo_1.Key.Down||e.keyCode==wijmo_1.Key.Up)){let t=this.grid,i=t.selection,l=i.col>-1?t.columns[i.col]:null,s=l?t._getBindingColumn(t.cells,i.row,l):null,a=s&&s.dataMap&&s.dataMapEditor==wijmo_grid_1.DataMapEditor.DropDownList;if(this.filterColumns&&this.filterColumns.length>0&&!this.filterColumns.includes(s._binding._path)){e.preventDefault();return!1}if(t.activePanelType!=wijmo_grid_1.CellType.Cell&&t.activePanelType!=wijmo_grid_1.CellType.ColumnHeader){e.preventDefault();return!1}s&&s.editor instanceof wijmo_input_1.DropDown&&(a=!0);if(s&&!a){let t=this.getColumnFilter(s,!1);if(t&&t.filterType!=FilterType.None){this.editColumnFilter(s);e.preventDefault();e.stopPropagation()}}}}}FlexGridFilter._WJC_FILTER="wj-elem-filter";exports.FlexGridFilter=FlexGridFilter;exports.empty={};class ConditionFilter{constructor(e){this._c1=new FilterCondition(this);this._c2=new FilterCondition(this);this._and=!0;this._col=e}get condition1(){return this._c1}get condition2(){return this._c2}get and(){return this._and}set and(e){this._and=wijmo_1.asBoolean(e)}get dataMap(){return this._map}set dataMap(e){this._map=wijmo_1.asType(e,wijmo_grid_1.DataMap,!0)}get column(){return this._col}get isActive(){return this._c1.isActive||this._c2.isActive}apply(e){let t=this._col,i=this._c1,l=this._c2,s=!1,a=!1;if(!t||!t._binding||!this.isActive)return!0;e=t._binding.getValue(e);let r=this.dataMap||t.dataMap;if(r)e=r.getDisplayValue(e);else if(wijmo_1.isDate(e)){s=!this._hasTimePart();a=!this._hasDatePart();let t=FilterCondition._refDateTime;s?e=wijmo_1.DateTime.fromDateTime(e,t):a&&(e=wijmo_1.DateTime.fromDateTime(t,e))}else if(wijmo_1.isNumber(e)){let i=wijmo_1.Globalize,l=t.format,s=i.formatNumber(e,l);e=i.parseFloat(s,l)}let n=i.apply(e,s,a),o=l.apply(e,s,a);return i.isActive&&l.isActive?this._and?n&&o:n||o:i.isActive?n:!l.isActive||o}clear(){this._c1.clear();this._c2.clear();this.and=!0}_hasDatePart(){let e=this._col.format;if(!e)return!0;e=wijmo_1.culture.Globalize.calendar.patterns[e]||e;return/[yMd]+/.test(e)}_hasTimePart(){let e=this._col.format;if(!e)return!1;e=wijmo_1.culture.Globalize.calendar.patterns[e]||e;return/[Hmst]+/.test(e)}implementsInterface(e){return"IColumnFilter"==e}}exports.ConditionFilter=ConditionFilter;class ConditionFilterEditor extends wijmo_1.Control{constructor(e,t){super(e);this._canApply=!1;this.canApplyChanged=new wijmo_1.Event;this._filter=wijmo_1.asType(t,ConditionFilter,!1);let i=this.getTemplate();this.applyTemplate("wj-control wj-conditionfilter-editor",i,{_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"});let l=wijmo_1.culture.FlexGridFilter,s=l.ariaLabels;wijmo_1.setAriaLabel(this._btnAnd,s.and);wijmo_1.setAriaLabel(this._btnOr,s.or);wijmo_1.setText(this._divHdr,l.header);wijmo_1.setText(this._spAnd,l.and);wijmo_1.setText(this._spOr,l.or);const a=wijmo_1.getUniqueId("cmb1");this._divHdr.htmlFor=a;this._divCmb1.id=a;this._cmb1=this._createOperatorCombo(this._divCmb1,s.op1);this._cmb2=this._createOperatorCombo(this._divCmb2,s.op2);this._val1=this._createValueInput(this._divVal1,s.val1);this._val2=this._createValueInput(this._divVal2,s.val2);this._val1.isDisabled=!0;this._cmb1.selectedIndexChanged.addHandler((e,t)=>{this._val1.isDisabled=null==e.selectedValue;this.canApply=!this._val1.isDisabled||!this._val2.isDisabled});this._val2.isDisabled=!0;this._cmb2.selectedIndexChanged.addHandler((e,t)=>{this._val2.isDisabled=null==e.selectedValue;this.canApply=!this._val1.isDisabled||!this._val2.isDisabled});let r=this.hostElement;this.addEventListener(r,"change",this._btnAndOrChanged.bind(this));this.addEventListener(r,"keydown",this._keydown.bind(this));setTimeout(()=>{this.updateEditor()})}get filter(){return this._filter}get canApply(){return this._canApply}set canApply(e){if(e!=this._canApply){this._canApply=e;this.onCanApplyChanged()}}updateEditor(){let 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=wijmo_1.changeType(e.value,wijmo_1.DataType.String);this._val2.text=wijmo_1.changeType(t.value,wijmo_1.DataType.String)}else{this._val1.value=e.value;this._val2.value=t.value}let i=this._filter.and;this._checkRadio(this._btnAnd,i);this._checkRadio(this._btnOr,!i)}clearEditor(){this._cmb1.selectedValue=this._cmb2.selectedValue=null;this._val1.text=this._val2.text=null;this._checkRadio(this._btnAnd,!0);this._checkRadio(this._btnOr,!1)}get isEditorClear(){return null==this._cmb1.selectedValue&&!this._val1.text&&null==this._cmb2.selectedValue&&!this._val2.text}updateFilter(){let 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}onCanApplyChanged(e){this.canApplyChanged.raise(this,e)}_getComboValue(e){return e.selectedIndex>-1?e.selectedValue:e.text}_createOperatorCombo(e,t){let i=this._filter.column,l=wijmo_1.culture.FlexGridFilter,s=l.stringOperators,a=wijmo_1.DataType;this._filter.dataMap||i.dataMap||(i.dataType==a.Date?s=l.dateOperators:i.dataType==a.Number?s=l.numberOperators:i.dataType==a.Boolean&&(s=l.booleanOperators));let r=new input.ComboBox(e,{itemsSource:s,displayMemberPath:"name",selectedValuePath:"op"});wijmo_1.setAriaLabel(r.inputElement,t);return r}_createValueInput(e,t){let i=this._filter,l=i.column,s=i.dataMap||l.dataMap,a=null,r=wijmo_1.DataType;if(l.dataType==r.Date)(a=i._hasDatePart()?i._hasTimePart()?new input.InputDateTime(e):new input.InputDate(e):new input.InputTime(e)).format=l.format;else if(l.dataType!=r.Number||s){(a=new input.ComboBox(e)).isEditable=!0;if(s){a.itemsSource=s.getDisplayValues();a.caseSensitiveSearch=!!l.grid&&l.grid.caseSensitiveSearch}else l.dataType==r.Boolean&&(a.itemsSource=[!0,!1])}else(a=new input.InputNumber(e)).format=l.format;a.isRequired=!1;wijmo_1.setAriaLabel(a.inputElement,t);return a}_btnAndOrChanged(e){let t=e.target==this._btnAnd,i=e.target==this._btnOr;if(t||i){this._checkRadio(this._btnAnd,t);this._checkRadio(this._btnOr,i)}}_checkRadio(e,t){e.checked=t;wijmo_1.setAttribute(e,"aria-checked",t.toString());wijmo_1.setAttribute(e,"tabindex",t?null:"-1")}_keydown(e){let t=e.target==this._btnAnd,i=e.target==this._btnOr;if(t||i)switch(e.keyCode){case wijmo_1.Key.Left:case wijmo_1.Key.Right:case wijmo_1.Key.Up:case wijmo_1.Key.Down:let i=t?this._btnOr:this._btnAnd;i.click();i.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>';exports.ConditionFilterEditor=ConditionFilterEditor;class FilterCondition{constructor(e){this._op=null;this._filter=e}get operator(){return this._op}set operator(e){this._op=wijmo_1.asEnum(e,Operator,!0)}get value(){return this._val}set value(e){this._val=e;this._strVal=wijmo_1.isString(e)?this._getCaseString(e):null}get isActive(){switch(this._op){case null:return!1;case Operator.EQ:case Operator.NE:return!0;default:return null!=this._val||null!=this._strVal}}clear(){this.operator=null;this.value=null}apply(e,t,i){let l=this._strVal||this._val;wijmo_1.isString(e)&&(e=this._getCaseString(e));wijmo_1.isString(l)&&null==e&&(e="");wijmo_1.isDate(l)&&(t?l=wijmo_1.DateTime.fromDateTime(l,FilterCondition._refDateTime):i&&(l=wijmo_1.DateTime.fromDateTime(FilterCondition._refDateTime,l)));let s=Operator;switch(this._op){case null:return!0;case s.EQ:return null!=e&&null!=l?e.valueOf()==l.valueOf():e==l;case s.NE:return null!=e&&null!=l?e.valueOf()!=l.valueOf():e!=l;case s.GT:return e>l;case s.GE:return e>=l;case s.LT:return e<l;case s.LE:return e<=l;case s.BW:return!(null==this._strVal||!wijmo_1.isString(e))&&0==e.indexOf(this._strVal);case s.EW:return!!(null!=this._strVal&&wijmo_1.isString(e)&&e.length>=this._strVal.length)&&e.substr(e.length-this._strVal.length)==l;case s.CT:return!(null==this._strVal||!wijmo_1.isString(e))&&e.indexOf(this._strVal)>-1;case s.NC:return!(null==this._strVal||!wijmo_1.isString(e))&&e.indexOf(this._strVal)<0}throw"Unknown operator"}_getCaseString(e){let 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);exports.FilterCondition=FilterCondition;!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=exports.Operator||(exports.Operator={}));!function(e){e[e.Text=0]="Text";e[e.Regex=1]="Regex";e[e.Excel=2]="Excel"}(ValueFilterSearchKind=exports.ValueFilterSearchKind||(exports.ValueFilterSearchKind={}));class ValueFilter{constructor(e){this._values=null;this._filterText=null;this._xValueSearch=!0;this._maxValues=250;this._uniqueValues=null;this._sortValues=!0;this._searchType=ValueFilterSearchKind.Excel;this._col=e}get searchType(){return this._searchType}set searchType(e){this._searchType=wijmo_1.asEnum(e,ValueFilterSearchKind)}get showValues(){return this._values}set showValues(e){this._values=e}get filterText(){return this._filterText}set filterText(e){this._filterText=wijmo_1.asString(e)}get exclusiveValueSearch(){return this._xValueSearch}set exclusiveValueSearch(e){if((e=wijmo_1.asBoolean(e))!==this._xValueSearch){this._xValueSearch=wijmo_1.asBoolean(e);e&&(this._filterText="")}}get maxValues(){return this._maxValues}set maxValues(e){this._maxValues=wijmo_1.asNumber(e,!1,!0)}get uniqueValues(){return this._uniqueValues}set uniqueValues(e){this._uniqueValues=wijmo_1.asArray(e)}get sortValues(){return this._sortValues}set sortValues(e){this._sortValues=wijmo_1.asBoolean(e)}get dataMap(){return this._map}set dataMap(e){this._map=wijmo_1.asType(e,wijmo_grid_1.DataMap,!0)}get column(){return this._col}get isActive(){return null!=this._values&&Object.keys(this._values).length>0}apply(e){let 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)||"":wijmo_1.Globalize.format(e,t.format);return null!=this._values[e]}clear(){this.showValues=null;this.filterText=null}getUniqueValues(e=!0){let t=[],i=this.column,l=wijmo_1.Globalize.format;if(this.uniqueValues){this.uniqueValues.forEach(e=>{t.push({value:e,text:l(e,i.format)})});return t}let s={},a=i.collectionView,r=a?a.sourceCollection:[];if(e&&a&&a.sourceCollection&&a.filter)try{FlexGridFilter._skipColumn=this._col;let e=[];for(let t=0;t<r.length;t++)a.filter(r[t])&&e.push(r[t]);r=e}finally{FlexGridFilter._skipColumn=null}for(let e=0;e<r.length;e++){let a=i._binding.getValue(r[e]),n=this.dataMap?this.dataMap.getDisplayValue(a)||"":i.dataMap?i.dataMap.getDisplayValue(a)||"":l(a,i.format);if(!s[n]){s[n]=!0;t.push({value:a,text:n})}}return t}implementsInterface(e){return"IColumnFilter"==e}}exports.ValueFilter=ValueFilter;class ValueFilterEditor extends wijmo_1.Control{constructor(e,t){super(e);this._canApply=!1;this._isFiltering=!1;this.canApplyChanged=new wijmo_1.Event;this._filter=wijmo_1.asType(t,ValueFilter,!1);let i=this.getTemplate();this.applyTemplate("wj-control wj-valuefilter-editor",i,{_divFilter:"div-filter",_cbSelectAll:"cb-select-all",_spSelectAll:"sp-select-all",_divValues:"div-values"});this._cbSelectAll.tabIndex=0;let l=wijmo_1.culture.FlexGridFilter;wijmo_1.setText(this._spSelectAll,l.selectAll);let s=this._view=new wijmo_1.CollectionView(null,{sortNulls:wijmo_1.SortNulls.First,filter:this._filterValues.bind(this)});if(t.sortValues){let e=t.column.dataMap||t.dataMap?"text":"value",i=t.column.dataType!=wijmo_1.DataType.Boolean;s.sortDescriptions.push(new wijmo_1.SortDescription(e,i))}s.collectionChanged.addHandler(this._updateSelectAllCheck,this);this._filterText="";this._rxFilter=null;this._cmbFilter=new input.ComboBox(this._divFilter,{isRequired:!1,placeholder:l.search});this._cmbFilter.isEditable=!0;this._lbValues=new input.ListBox(this._divValues,{displayMemberPath:"text",checkedMemberPath:"show",itemsSource:this._view,itemFormatter:(e,t)=>t||l.null,checkedItemsChanged:e=>this._updateSelectAllCheck()});wijmo_1.setAriaLabel(this._cmbFilter.inputElement,l.ariaLabels.search);wijmo_1.setAttribute(this._lbValues.hostElement,"aria-multiselectable",!0);this._cmbFilter.inputElement.addEventListener("input",this._filterTextChanged.bind(this));this._cbSelectAll.addEventListener("click",this._cbSelectAllClicked.bind(this));this.updateEditor();this._initialItems=this._lbValues.checkedItems}get filter(){return this._filter}get canApply(){return this._canApply}set canApply(e){if(e!=this._canApply){this._canApply=e;this.onCanApplyChanged()}}updateEditor(){let e=this._filter.column,t=this._filter.getUniqueValues(!0);this._lbValues.isContentHtml=e.isContentHtml;let i=this._filter.showValues;if(i&&0!=Object.keys(i).length){for(let e in i)for(let i=0;i<t.length;i++)if(t[i].text==e){t[i].show=!0;break}}else t.forEach(e=>e.show=!0);let l=this._filter.filterText||"",s=this._getCaseSensitive();this._cmbFilter.text=l;this._filterText=s?l:l.toLowerCase();this._rxFilter=this._getSearchExp(l,s);let a=this._view;a.pageSize=this._filter.maxValues;a.sourceCollection=t;setTimeout(()=>{this._adjustWidths()},0)}clearEditor(e=!0){this._cmbFilter.text="";this._filterText="";this._rxFilter=null;let t=this._view;t.pageSize=0;t.items.forEach(t=>{t.show=e});t.moveCurrentTo(-1);t.refresh();t.pageSize=this._filter.maxValues}get isEditorClear(){return!this._filterText&&!this._cbSelectAll.indeterminate}_updateFilter(){let e=null,t=this._getItems();if(this._filterText||this._cbSelectAll.indeterminate){e={};for(let i=0;i<t.length;i++){let l=t[i];l.show&&(e[l.text]=!0)}}let i=this._filter;i.showValues=e;i.filterText=this._filterText}updateFilter(){this._isFiltering?setTimeout(()=>{this._updateFilter()},wijmo_1.Control._SEARCH_DELAY+100):this._updateFilter()}onCanApplyChanged(e){this.canApplyChanged.raise(this,e)}_getCaseSensitive(){let e=this._filter.column,t=e?e.grid:null;return t&&t.caseSensitiveSearch}_getItems(){return this._filter.exclusiveValueSearch?this._view.items:this._view.sourceCollection}_filterTextChanged(){""===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(()=>{let e=this._cmbFilter.text,t=this._getCaseSensitive();t||(e=e.toLowerCase());if(e!=this._filterText){this._filterText=e;this._rxFilter=this._getSearchExp(e,t);this._view.refresh();if(!e){let e=this._initialItems;if(e.length&&this._view.sourceCollection.indexOf(e[0])>-1){this._lbValues.checkedItems=this._initialItems;this._updateSelectAllCheck();this._isFiltering=!1;return}}if(this._filter.exclusiveValueSearch){this._cbSelectAll.checked=!0;this._cbSelectAllClicked()}else this._updateSelectAllCheck()}this._isFiltering=!1},wijmo_1.Control._SEARCH_DELAY)}_getSearchExp(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)}}_getTextSearchExp(e,t){return new RegExp(wijmo_1.escapeRegExp(e),t?"":"i")}_getRegexSearchExp(e,t){try{return new RegExp(e,t?"s":"is")}catch(e){return new RegExp("(?!)",t?"s":"is")}}_getExcelSearchExp(e,t){let 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(e=>".").join("")}))).replace(/(\*+)/g,(function(e,t){return Array.from(t).map(e=>".*").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")}_filterValues(e){let t=this._rxFilter;return null==t||null==e||t.test(e.text)}_cbSelectAllClicked(){let e=this._cbSelectAll.checked,t=this._divValues.scrollTop,i=this._getItems();for(let t=0;t<i.length;t++)i[t].show=e;this._view.refresh();this._divValues.scrollTop=t;setTimeout(()=>{this._adjustWidths()},0)}_updateSelectAllCheck(){let e=this._getItems(),t=0,i=0;for(let l=0;l<e.length;l++){e[l].show?t++:i++;if(t&&i)break}wijmo_1.setChecked(this._cbSelectAll,t&&i?null:t>0);this.canApply=t>0}_adjustWidths(){let e=this._lbValues.hostElement;if(e&&e.offsetHeight>0){let t=0,i=e.querySelectorAll(".wj-listbox-item label");if(i.length){for(let e=0;e<i.length;e++)t=Math.max(t,i[e].scrollWidth);if(t){let i=e.querySelectorAll(".wj-listbox-item");if(i.length){let e=i[0],l=getComputedStyle(e),s=parseFloat(l.paddingLeft)+parseFloat(l.paddingRight);for(let e=0;e<i.length;e++)i[e].style.width=t+s+"px"}}}}}get exceedsMaxValues(){return!(!this._view||!this._view._view)&&this._view._view.length>this.filter.maxValues}}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>';exports.ValueFilterEditor=ValueFilterEditor;class ColumnFilter{constructor(e,t){this._owner=e;this._col=t;this._valueFilter=new ValueFilter(t);this._valueFilter.exclusiveValueSearch=e.exclusiveValueSearch;this._conditionFilter=new ConditionFilter(t);e.exclusiveValueSearchChanged.addHandler(e=>{this._valueFilter.exclusiveValueSearch=e.exclusiveValueSearch})}get filterType(){return null!=this._filterType?this._filterType:this._owner.defaultFilterType}set filterType(e){if((e=wijmo_1.asEnum(e,FilterType,!0))!=this._filterType){let t=this.isActive;this.clear();this._filterType=e;t?this._owner.apply():this._col.grid&&this._col.grid.invalidate()}}get dataMap(){return this.conditionFilter.dataMap||this.valueFilter.dataMap}set dataMap(e){this.conditionFilter.dataMap=e;this.valueFilter.dataMap=e}get valueFilter(){return this._valueFilter}get conditionFilter(){return this._conditionFilter}get column(){return this._col}get isActive(){return this._conditionFilter.isActive||this._valueFilter.isActive}apply(e){return this._conditionFilter.apply(e)&&this._valueFilter.apply(e)}clear(){this._valueFilter.clear();this._conditionFilter.clear()}implementsInterface(e){return"IColumnFilter"==e}}exports.ColumnFilter=ColumnFilter;wijmo_1._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.",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}]});class ColumnFilterEditor extends wijmo_1.Control{constructor(e,t,i=!0){super(e,null,!0);this.filterChanged=new wijmo_1.Event;this.buttonClicked=new wijmo_1.Event;this._filter=wijmo_1.asType(t,ColumnFilter);let l=this.getTemplate();this.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"});let s=wijmo_1.culture.FlexGridFilter,a=s.ariaLabels,r=this.hostElement,n=this.filter.column,o=n.grid.collectionView;wijmo_1.setAttribute(r,"role","dialog");wijmo_1.setAriaLabel(r,a.dialog+" "+n.header);wijmo_1.setAriaLabel(this._btnAsc,a.asc);wijmo_1.setAriaLabel(this._btnDsc,a.dsc);wijmo_1.setText(this._btnAsc,s.ascending);wijmo_1.setText(this._btnDsc,s.descending);wijmo_1.setText(this._aVal,s.values);wijmo_1.setText(this._aCnd,s.conditions);wijmo_1.setText(this._aExceeds,s.exceedsMaxValues);wijmo_1.setText(this._btnApply,s.apply);wijmo_1.setText(this._btnCancel,s.cancel);wijmo_1.setText(this._btnClear,s.clear);let d=this.filter.conditionFilter.isActive||0==(t.filterType&FilterType.Value)?FilterType.Condition:FilterType.Value;this._showFilter(d);if(!n.allowSorting){wijmo_1.enable(this._btnAsc,!1);wijmo_1.enable(this._btnDsc,!1)}i&&o&&o.canSort||(this._divSort.style.display="none");this._updateSortButtonState();let h=this._btnClicked.bind(this),u="click";this._btnApply.addEventListener(u,h);this._btnCancel.addEventListener(u,h);this._btnClear.addEventListener(u,h);this._btnAsc.addEventListener(u,h);this._btnDsc.addEventListener(u,h);this._aVal.addEventListener(u,h);this._aCnd.addEventListener(u,h);if(!this._popup){this._initPopup();let e=this.hostElement.querySelector('[wj-part="a-exceeds"]');e&&e.addEventListener(u,()=>{this._popup.show(!0)})}this.addEventListener(r,"keydown",e=>{if(!e.defaultPrevented){let t=e.target.tagName.match(/^(a|button)$/i);switch(e.keyCode){case wijmo_1.Key.Space:if(t){this._btnClicked(e);e.preventDefault()}break;case wijmo_1.Key.Enter:if(t)this._btnClicked(e);else{this.updateFilter();this.onFilterChanged();this.onButtonClicked()}e.preventDefault();break;case wijmo_1.Key.Escape:this.onButtonClicked();e.preventDefault();break;case wijmo_1.Key.Tab:wijmo_1.moveFocus(this.hostElement,e.shiftKey?-1:1);e.preventDefault()}}});this.addEventListener(window,"resize",()=>{this.isTouching||this._wasTouching||this.onButtonClicked()})}get filter(){return this._filter}updateEditor(){if(this._edtVal){this._edtVal.updateEditor();this._updateExceedsLinkVisibility()}this._edtCnd&&this._edtCnd.updateEditor()}updateFilter(){switch(this._getFilterType()){case FilterType.Value:this._edtVal.updateFilter();this.filter.conditionFilter.clear();break;case FilterType.Condition:this._edtCnd.updateFilter();this.filter.valueFilter.clear()}}onFilterChanged(e){this.filterChanged.raise(this,e)}onButtonClicked(e){this.buttonClicked.raise(this,e)}_showFilter(e){this._wasTouching=this.isTouching;if(e==FilterType.Value&&null==this._edtVal){this._edtVal=new ValueFilterEditor(this._divEdtVal,this.filter.valueFilter);this._edtVal.canApplyChanged.addHandler(e=>{wijmo_1.enable(this._btnApply,this._edtVal.canApply)})}if(e==FilterType.Condition&&null==this._edtCnd){this._edtCnd=new ConditionFilterEditor(this._divEdtCnd,this.filter.conditionFilter);this._edtCnd.canApplyChanged.addHandler(e=>{wijmo_1.enable(this._btnApply,this._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();this._updateExceedsLinkVisibility();wijmo_1.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();wijmo_1.enable(this._btnApply,this._edtCnd.canApply);this._aExceeds&&(this._aExceeds.style.display="none")}let t=this._divType.style;switch(this.filter.filterType){case FilterType.None:case FilterType.Condition:case FilterType.Value:t.display="none";break;default:t.display=""}}_enableLink(e,t){wijmo_1.toggleClass(e,"wj-state-disabled",!t);wijmo_1.setAttribute(e,"href",t?"":null);wijmo_1.setAttribute(e,"disabled",t?null:"disabled")}_updateSortButtonState(){let e=this.filter.column,t=e?e.currentSort:"",i="wj-state-active";wijmo_1.toggleClass(this._btnAsc,i,"+"==t);wijmo_1.toggleClass(this._btnDsc,i,"-"==t)}_getFilterType(){let e=FilterType;return"none"!=this._divEdtVal.style.display?e.Value:e.Condition}_btnClicked(e){let t=e.target;e.preventDefault();e.stopPropagation();if(!wijmo_1.hasClass(t,"wj-state-disabled"))if(t!=this._aVal)if(t!=this._aCnd){if(t==this._btnAsc||t==this._btnDsc){let t=this.filter.column,i=t.sortMemberPath||t.binding,l=t.grid.collectionView.sortDescriptions;l.deferUpdate(()=>{l.clear();l.push(new wijmo_1.SortDescription(i,e.target==this._btnAsc))});this._updateSortButtonState()}if(t==this._btnApply){this.updateFilter();this.onFilterChanged()}else if(t==this._btnClear){if(this.filter.isActive){this.filter.clear();this.onFilterChanged()}}else this.updateEditor();this.onButtonClicked()}else{this._showFilter(FilterType.Condition);wijmo_1.moveFocus(this._edtCnd.hostElement,0)}else{this._showFilter(FilterType.Value);wijmo_1.moveFocus(this._edtVal.hostElement,0)}}_updateExceedsLinkVisibility(){if(this._edtVal&&this._aExceeds){let e=this._edtVal.exceedsMaxValues;this._aExceeds.style.display=e?"":"none";this._aExceeds.textContent=e?wijmo_1.culture.FlexGridFilter.exceedsMaxValues:"";this._aExceeds.href=e?"javascript:void(0)":""}}_initPopup(){let e=document.createElement("div");e.innerHTML='<div class="modal-dialog" role="dialog"><div class="modal-body"><div class="custom-modal-text"><p>'+wijmo_1.culture.FlexGridFilter.popupBody+'</p></div></div><div class="modal-footer"><button class="btn btn-primary wj-hide-ok">'+wijmo_1.culture.FlexGridFilter.popupOkButton+"</button></div></div>";this._popup=new wijmo_input_1.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>';exports.ColumnFilterEditor=ColumnFilterEditor;wijmo_1._registerModule("wijmo.grid.filter",selfModule);
14
+ "use strict";var __importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.hasOwnProperty.call(e,i)&&(t[i]=e[i]);t.default=e;return t};Object.defineProperty(exports,"__esModule",{value:!0});const wijmo_grid_1=require("@grapecity/wijmo.grid"),wijmo_1=require("@grapecity/wijmo"),wijmo_input_1=require("@grapecity/wijmo.input"),input=__importStar(require("@grapecity/wijmo.input")),selfModule=__importStar(require("@grapecity/wijmo.grid.filter"));exports.ColumnFilterEditorClsNames={filterType:"wj-filtertype",hostElement:"wj-columnfiltereditor",sortButtons:"wj-sort-buttons"};exports.ConditionFilterEditorClsNames={hostElement:"wj-conditionfilter-editor"};exports.FlexGridFilterClsNames={elemFilter:"wj-elem-filter",filter:"wj-filter",filterOff:"wj-filter-off",filterOn:"wj-filter-on",hostElement:"wj-columnfiltereditor"};exports.ValueFilterEditorClsNames={hostElement:"wj-valuefilter-editor",customModalText:"wj-custom-modal-text",modalFooter:"wj-valuefilter-modal-footer"};var FilterType,Operator,ValueFilterSearchKind;!function(e){e[e.None=0]="None";e[e.Condition=1]="Condition";e[e.Value=2]="Value";e[e.Both=3]="Both"}(FilterType=exports.FilterType||(exports.FilterType={}));class FlexGridFilter{constructor(e,t){this._showIcons=!0;this._showSort=!0;this._defFilterType=FilterType.Both;this._xValueSearch=!0;this._includeUpdatedRowsInFilter=!1;this._showIncludeSelection=!1;this.filterApplied=new wijmo_1.Event;this.editingFilter=new wijmo_1.Event;this.filterChanging=new wijmo_1.Event;this.filterChanged=new wijmo_1.Event;this.exclusiveValueSearchChanged=new wijmo_1.Event;this._showIncludeSelectionChanged=new wijmo_1.Event;this._filters=[];this._g=wijmo_1.asType(e,wijmo_grid_1.FlexGrid,!1);this._g.formatItem.addHandler(this._formatItem.bind(this));this._g.itemsSourceChanged.addHandler(this.clear.bind(this));let 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();wijmo_1.copy(this,t);this._init()}_init(){const e=this.grid,_excludeRowFromFilter=e=>{let t=this.grid;const i=this.excludedRowsSet;if(null!=t&&t.rows.length>e)if(t.itemsSource)if(t.rows[e]instanceof wijmo_grid_1._NewRowTemplate){let l=t.editableCollectionView.currentAddItem||t.rows[e].dataItem;l&&i.add(l)}else t.rows[e].dataItem&&i.add(t.rows[e].dataItem);else t.rows[e]&&i.add(t.rows[e])};e.rowChanged&&e.rowChanged.addHandler((e,t)=>{t.added&&_excludeRowFromFilter(t.index)});e.rowEditEnding.addHandler((e,t)=>{_excludeRowFromFilter(t.row)});e.cellEditEnded.addHandler((e,t)=>{_excludeRowFromFilter(t.row)})}get excludedRowsSet(){let e=this.grid;e.selectedSheet&&(e=e.selectedSheet);e._newAddedRowsSet||(e._newAddedRowsSet=new WeakSet);return e._newAddedRowsSet}set excludedRowsSet(e){let t=this.grid;t.selectedSheet&&(t=t.selectedSheet);t._newAddedRowsSet=e}get grid(){return this._g}get filterColumns(){return this._filterColumns}set filterColumns(e){this._filterColumns=wijmo_1.asArray(e);this.clear()}get showFilterIcons(){return this._showIcons}set showFilterIcons(e){if(e!=this.showFilterIcons){this._showIcons=wijmo_1.asBoolean(e);this._g&&this._g.invalidate()}}get showSortButtons(){return this._showSort}set showSortButtons(e){this._showSort=wijmo_1.asBoolean(e)}get reApplyFilterOnUpdate(){return this._includeUpdatedRowsInFilter}set reApplyFilterOnUpdate(e){e!==this._includeUpdatedRowsInFilter&&(this._includeUpdatedRowsInFilter=wijmo_1.asBoolean(e))}get showIncludeSelection(){return this._showIncludeSelection}set showIncludeSelection(e){if(e!=this._showIncludeSelection){this._showIncludeSelection=wijmo_1.asBoolean(e,!1);this._onShowIncludeSelectionChanged()}}getColumnFilter(e,t=!0){if(e=this._asColumn(e)){for(let t=0;t<this._filters.length;t++)if(this._filters[t].column==e)return this._filters[t];if(t&&e.binding){let t=new ColumnFilter(this,e);this._filters.push(t);return t}}return null}get defaultFilterType(){return this._defFilterType}set defaultFilterType(e){if((e=wijmo_1.asEnum(e,FilterType,!1))!=this.defaultFilterType){this._defFilterType=e;this._g.invalidate();this.clear()}}get exclusiveValueSearch(){return this._xValueSearch}set exclusiveValueSearch(e){if((e=wijmo_1.asBoolean(e))!==this._xValueSearch){this._xValueSearch=e;this.onExclusiveValueSearchChanged()}}get filterDefinition(){let e={defaultFilterType:this.defaultFilterType,filters:[]};this._filters.forEach(t=>{let i=t.conditionFilter,l=t.valueFilter,s=l.uniqueValues&&l.uniqueValues.length;if(t&&t.column&&t.column.binding&&(t.isActive||s||t.filterType!=this.defaultFilterType)){let r={binding:t.column.binding};if(i.isActive){let e=i.condition1,l=i.condition2;r={binding:t.column.binding,type:"condition",condition1:{operator:e.operator,value:e.value},and:i.and,condition2:{operator:l.operator,value:l.value}}}else(l.isActive||s)&&(r={binding:t.column.binding,type:"value",uniqueValues:l.uniqueValues,sortValues:l.sortValues,maxValues:l.maxValues,exclusiveValueSearch:l.exclusiveValueSearch,showValues:l.showValues});t.filterType!=this.defaultFilterType&&(r.filterType=t.filterType);e.filters.push(r)}});return JSON.stringify(e)}set filterDefinition(e){e=wijmo_1.asString(e);this.clear();if(e){let t=JSON.parse(e);this.defaultFilterType=t.defaultFilterType;for(let e=0;e<t.filters.length;e++){let i=t.filters[e],l=this._asColumn(i.binding);l||(l=new wijmo_grid_1.Column({binding:i.binding}));let s=this.getColumnFilter(l,!0);if(s){null!=i.filterType&&(s.filterType=wijmo_1.asEnum(i.filterType,FilterType));switch(i.type){case"condition":let e=s.conditionFilter;e.condition1.value=l.dataType==wijmo_1.DataType.Date?wijmo_1.changeType(i.condition1.value,l.dataType,null):i.condition1.value;e.condition1.operator=i.condition1.operator;e.and=i.and;e.condition2.value=l.dataType==wijmo_1.DataType.Date?wijmo_1.changeType(i.condition2.value,l.dataType,null):i.condition2.value;e.condition2.operator=i.condition2.operator;break;case"value":let t=s.valueFilter;t.uniqueValues=i.uniqueValues;["sortValues","maxValues","exclusiveValueSearch"].forEach(e=>{null!=i[e]&&(t[e]=i[e])});t.showValues=i.showValues}}}}this.apply()}get activeEditor(){return wijmo_1.Control.getControl(this._divEdt)}editColumnFilter(e,t,i){let l=this._g;this.closeEditor();e=this._asColumn(e);let s=new wijmo_grid_1.CellRangeEventArgs(l.cells,new wijmo_grid_1.CellRange(-1,e.index));if(!this.onEditingFilter(s))return;let r=wijmo_1.createElement(`<div class="${wijmo_input_1.DropDownClsNames.dropDownPanel}"></div>`),a=this.getColumnFilter(e),n=new ColumnFilterEditor(r,a,this.showSortButtons);this._divEdt=r;this._edtCol=e;l.rightToLeft&&(r.dir="rtl");if(!this.onFilterChanging(s)){this._divEdt=this._edtCol=null;return}s.cancel=!0;n.filterChanged.addHandler(()=>{s.cancel=!1;setTimeout(()=>{if(!s.cancel){this.excludedRowsSet=null;this.apply()}},n._edtVal&&n._edtVal._isFiltering?wijmo_1.Control._SEARCH_DELAY+200:0)});n.buttonClicked.addHandler(()=>{this.closeEditor();l.focus();this.onFilterChanged(s)});n.lostFocus.addHandler(()=>{setTimeout(()=>{let e=wijmo_1.Control.getControl(this._divEdt);e&&!e.containsFocus()&&this.closeEditor()},10)});let o=t?t.col:e.index,d=l.columns[o];t||d&&d.binding==e.binding||(o=l.selection.leftCol);l._edtHdl._commitRowEdits();l.scrollIntoView(-1,o,!0);let h=l.columnHeaders,u=t&&t.panel&&h&&t.panel._uid==h._uid?t.row:h.rows.length-1,c=o,_=i||h.getCellElement(u,c),p=_?null:h.getCellBoundingRect(u,c);_?wijmo_1.showPopup(r,_,!1,!1,!1):wijmo_1.showPopup(r,p);this._setAriaExpanded(_,!0);this._setAriaExpanded(l.cells.getCellElement(-1,c),!0);let m=n.hostElement.querySelectorAll("input");for(let e=0;e<m.length;e++){let t=m[e];if(t.offsetHeight>0&&t.tabIndex>-1&&!t.disabled){t.focus();break}}n.containsFocus()||n.focus()}_setAriaExpanded(e,t){if(e){var i=e.querySelector("."+FlexGridFilter._WJC_FILTER);wijmo_1.setAttribute(i,"aria-expanded",t)}}closeEditor(){let e=this._g,t=wijmo_1.Control.getControl(this._divEdt),i=this._edtCol;t&&wijmo_1.hidePopup(t.hostElement,()=>{t.dispose()});if(i){let t=e.columnHeaders,l=t.rows.length?t.getCellElement(t.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}apply(){let e=this._g.collectionView;if(e){let t=this._g.editableCollectionView;if(t){t.commitEdit();t.commitNew()}e.filter=this._filter.bind(this)}let t=e?e.updateFilterDefinition:null;wijmo_1.isFunction(t)&&t.call(e,this);this.onFilterApplied()}clear(){if(this._filters.length){this._filters=[];this.excludedRowsSet=null;this.apply()}}onFilterApplied(e){this.filterApplied.raise(this,e)}onEditingFilter(e){this.editingFilter.raise(this,e);return!e.cancel}onFilterChanging(e){this.filterChanging.raise(this,e);return!e.cancel}onFilterChanged(e){this.filterChanged.raise(this,e)}onExclusiveValueSearchChanged(e){this.exclusiveValueSearchChanged.raise(this,e)}_onShowIncludeSelectionChanged(e){this._showIncludeSelectionChanged.raise(this,e)}_asColumn(e){return wijmo_1.isString(e)?this._g.getColumn(e,!0):wijmo_1.isNumber(e)?this._g.columns[e]:wijmo_1.asType(e,wijmo_grid_1.Column,!1)}_filter(e){const t=this.excludedRowsSet;if(!this.reApplyFilterOnUpdate&&t.has(e))return!0;let i=this._filters;for(let t=0;t<i.length;t++){let l=i[t];if(l.column!=FlexGridFilter._skipColumn&&!l.apply(e))return!1}return!0}_formatItem(e,t){if(t.panel==e.columnHeaders){let e=this._g,i=e.getMergedRange(t.panel,t.row,t.col)||new wijmo_grid_1.CellRange(t.row,t.col),l=e.columns[i.col],s=e._getBindingColumn(t.panel,t.row,l),r=t.cell;if(i.row2==t.panel.rows.length-1||l!=s){let i=this.getColumnFilter(s,this.defaultFilterType!=FilterType.None),a=this._filterColumns;a&&a.length&&a.indexOf(s.binding)<0&&a.indexOf(s.name)<0&&(i=null);if(i){wijmo_1.toggleClass(r,exports.FlexGridFilterClsNames.filterOn,i.isActive);wijmo_1.toggleClass(r,exports.FlexGridFilterClsNames.filterOff,!i.isActive)}else{wijmo_1.removeClass(r,exports.FlexGridFilterClsNames.filterOn);wijmo_1.removeClass(r,exports.FlexGridFilterClsNames.filterOff)}if(i&&i.filterType!=FilterType.None){this._showIcons&&this._addFilterButton(s,i,r);0==t.row&&(r=e.cells.getCellElement(-1,t.col))&&this._addFilterButton(l,i,r)}}}}_addFilterButton(e,t,i){let l=FlexGridFilter._WJC_FILTER,s=wijmo_1.createElement(`<button class="${wijmo_1.InputFormElementsClsNames.btn} ${wijmo_1.GlyphClsNames.btnGlyph} ${wijmo_1.UtilitesClsNames.right} `+l+'" type="button" tabindex="-1">'+`<span class=${wijmo_1.GlyphClsNames.filter}></span>`+"</button>");wijmo_1.setAriaLabel(s,wijmo_1.culture.FlexGridFilter.ariaLabels.edit+" "+e.header);wijmo_1.setAttribute(s,"aria-haspopup","dialog");wijmo_1.setAttribute(s,"aria-expanded",!1);wijmo_1.setAttribute(s,"aria-describedby",e.describedById);wijmo_1.setAttribute(s,"aria-pressed",t.isActive);if(!i.querySelector("."+l)){1==i.children.length&&(i=i.querySelector("div")||i);i.insertBefore(s,i.firstChild)}}_mousedown(e){this._edtColPrev=this._edtCol}_click(e){if(this._toggleEditor(e)){e.stopPropagation();e.preventDefault()}}_toggleEditor(e){if(!e.defaultPrevented&&0==e.button)if(wijmo_1.closestClass(e.target,FlexGridFilter._WJC_FILTER)){let t=this._g,i=t.hitTest(e.target);i.panel||(i=t.hitTest(e));if(i.panel&&t.columnHeaders&&t.cells&&(i.panel._uid==t.columnHeaders._uid||i.panel._uid==t.cells._uid&&-1==i.row)){let e=t.getMergedRange(i.panel,i.row,i.col)||new wijmo_grid_1.CellRange(i.row,i.col),l=t.columns[e.col],s=t._getBindingColumn(i.panel,i.row,l);if(this._divEdt&&this._edtCol==s){this.closeEditor();t.focus()}else s!=this._edtColPrev&&setTimeout(()=>{this.editColumnFilter(s,i)},this._divEdt?100:0);return!0}}else this.closeEditor();return!1}_keydown(e){if(!e.defaultPrevented&&!e.ctrlKey&&e.altKey&&(e.keyCode==wijmo_1.Key.Down||e.keyCode==wijmo_1.Key.Up)){let t=this.grid,i=t.selection,l=i.col>-1?t.columns[i.col]:null,s=l?t._getBindingColumn(t.cells,i.row,l):null,r=s&&s.dataMap&&s.dataMapEditor==wijmo_grid_1.DataMapEditor.DropDownList;if(this.filterColumns&&this.filterColumns.length>0&&!this.filterColumns.includes(s._binding._path)){e.preventDefault();return!1}if(t.activePanelType!=wijmo_grid_1.CellType.Cell&&t.activePanelType!=wijmo_grid_1.CellType.ColumnHeader){e.preventDefault();return!1}s&&s.editor instanceof wijmo_input_1.DropDown&&(r=!0);if(s&&!r){let t=this.getColumnFilter(s,!1);if(t&&t.filterType!=FilterType.None){this.editColumnFilter(s);e.preventDefault();e.stopPropagation()}}}}}FlexGridFilter._WJC_FILTER=exports.FlexGridFilterClsNames.elemFilter;exports.FlexGridFilter=FlexGridFilter;exports.empty={};class ConditionFilter{constructor(e){this._c1=new FilterCondition(this);this._c2=new FilterCondition(this);this._and=!0;this._col=e}get condition1(){return this._c1}get condition2(){return this._c2}get and(){return this._and}set and(e){this._and=wijmo_1.asBoolean(e)}get dataMap(){return this._map}set dataMap(e){this._map=wijmo_1.asType(e,wijmo_grid_1.DataMap,!0)}get column(){return this._col}get isActive(){return this._c1.isActive||this._c2.isActive}apply(e){let t=this._col,i=this._c1,l=this._c2,s=!1,r=!1;if(!t||!t._binding||!this.isActive)return!0;e=t._binding.getValue(e);let a=this.dataMap||t.dataMap;if(a)e=a.getDisplayValue(e);else if(wijmo_1.isDate(e)){s=!this._hasTimePart();r=!this._hasDatePart();let t=FilterCondition._refDateTime;s?e=wijmo_1.DateTime.fromDateTime(e,t):r&&(e=wijmo_1.DateTime.fromDateTime(t,e))}else if(wijmo_1.isNumber(e)){let i=wijmo_1.Globalize,l=t.format,s=i.formatNumber(e,l);e=i.parseFloat(s,l)}let n=i.apply(e,s,r),o=l.apply(e,s,r);return i.isActive&&l.isActive?this._and?n&&o:n||o:i.isActive?n:!l.isActive||o}clear(){this._c1.clear();this._c2.clear();this.and=!0}_hasDatePart(){let e=this._col.format;if(!e)return!0;e=wijmo_1.culture.Globalize.calendar.patterns[e]||e;return/[yMd]+/.test(e)}_hasTimePart(){let e=this._col.format;if(!e)return!1;e=wijmo_1.culture.Globalize.calendar.patterns[e]||e;return/[Hmst]+/.test(e)}implementsInterface(e){return"IColumnFilter"==e}}exports.ConditionFilter=ConditionFilter;class ConditionFilterEditor extends wijmo_1.Control{constructor(e,t){super(e);this._canApply=!1;this.canApplyChanged=new wijmo_1.Event;this._filter=wijmo_1.asType(t,ConditionFilter,!1);let i=this.getTemplate();this.applyTemplate(`${wijmo_1.ControlClsNames.hostElement} ${exports.ConditionFilterEditorClsNames.hostElement}`,i,{_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"});let l=wijmo_1.culture.FlexGridFilter,s=l.ariaLabels;wijmo_1.setAriaLabel(this._btnAnd,s.and);wijmo_1.setAriaLabel(this._btnOr,s.or);wijmo_1.setText(this._divHdr,l.header);wijmo_1.setText(this._spAnd,l.and);wijmo_1.setText(this._spOr,l.or);const r=wijmo_1.getUniqueId("cmb1");this._divHdr.htmlFor=r;this._divCmb1.id=r;this._cmb1=this._createOperatorCombo(this._divCmb1,s.op1);this._cmb2=this._createOperatorCombo(this._divCmb2,s.op2);this._val1=this._createValueInput(this._divVal1,s.val1);this._val2=this._createValueInput(this._divVal2,s.val2);this._val1.isDisabled=!0;this._cmb1.selectedIndexChanged.addHandler((e,t)=>{this._val1.isDisabled=null==e.selectedValue;this.canApply=!this._val1.isDisabled||!this._val2.isDisabled});this._val2.isDisabled=!0;this._cmb2.selectedIndexChanged.addHandler((e,t)=>{this._val2.isDisabled=null==e.selectedValue;this.canApply=!this._val1.isDisabled||!this._val2.isDisabled});let a=this.hostElement;this.addEventListener(a,"change",this._btnAndOrChanged.bind(this));this.addEventListener(a,"keydown",this._keydown.bind(this));setTimeout(()=>{this.updateEditor()})}static get controlTemplate(){ConditionFilterEditor._ctrlTemplate||(ConditionFilterEditor._ctrlTemplate='<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._ctrlTemplate}static set controlTemplate(e){ConditionFilterEditor._ctrlTemplate=e}get filter(){return this._filter}get canApply(){return this._canApply}set canApply(e){if(e!=this._canApply){this._canApply=e;this.onCanApplyChanged()}}updateEditor(){let 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=wijmo_1.changeType(e.value,wijmo_1.DataType.String);this._val2.text=wijmo_1.changeType(t.value,wijmo_1.DataType.String)}else{this._val1.value=e.value;this._val2.value=t.value}let i=this._filter.and;this._checkRadio(this._btnAnd,i);this._checkRadio(this._btnOr,!i)}clearEditor(){this._cmb1.selectedValue=this._cmb2.selectedValue=null;this._val1.text=this._val2.text=null;this._checkRadio(this._btnAnd,!0);this._checkRadio(this._btnOr,!1)}get isEditorClear(){return null==this._cmb1.selectedValue&&!this._val1.text&&null==this._cmb2.selectedValue&&!this._val2.text}updateFilter(){let 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}onCanApplyChanged(e){this.canApplyChanged.raise(this,e)}_getComboValue(e){return e.selectedIndex>-1?e.selectedValue:e.text}_createOperatorCombo(e,t){let i=this._filter.column,l=wijmo_1.culture.FlexGridFilter,s=l.stringOperators,r=wijmo_1.DataType;this._filter.dataMap||i.dataMap||(i.dataType==r.Date?s=l.dateOperators:i.dataType==r.Number?s=l.numberOperators:i.dataType==r.Boolean&&(s=l.booleanOperators));let a=new input.ComboBox(e,{itemsSource:s,displayMemberPath:"name",selectedValuePath:"op"});wijmo_1.setAriaLabel(a.inputElement,t);return a}_createValueInput(e,t){let i=this._filter,l=i.column,s=i.dataMap||l.dataMap,r=null,a=wijmo_1.DataType;if(l.dataType==a.Date)(r=i._hasDatePart()?i._hasTimePart()?new input.InputDateTime(e):new input.InputDate(e):new input.InputTime(e)).format=l.format;else if(l.dataType!=a.Number||s){(r=new input.ComboBox(e)).isEditable=!0;r.trimText=!1;if(s){r.itemsSource=s.getDisplayValues();r.caseSensitiveSearch=!!l.grid&&l.grid.caseSensitiveSearch}else l.dataType==a.Boolean&&(r.itemsSource=[!0,!1])}else(r=new input.InputNumber(e)).format=l.format;r.isRequired=!1;wijmo_1.setAriaLabel(r.inputElement,t);return r}_btnAndOrChanged(e){let t=e.target==this._btnAnd,i=e.target==this._btnOr;if(t||i){this._checkRadio(this._btnAnd,t);this._checkRadio(this._btnOr,i)}}_checkRadio(e,t){e.checked=t;wijmo_1.setAttribute(e,"aria-checked",t.toString());wijmo_1.setAttribute(e,"tabindex",t?null:"-1")}_keydown(e){let t=e.target==this._btnAnd,i=e.target==this._btnOr;if(t||i)switch(e.keyCode){case wijmo_1.Key.Left:case wijmo_1.Key.Right:case wijmo_1.Key.Up:case wijmo_1.Key.Down:let i=t?this._btnOr:this._btnAnd;i.click();i.focus();e.preventDefault()}}}ConditionFilterEditor._ctrlTemplate="";exports.ConditionFilterEditor=ConditionFilterEditor;class FilterCondition{constructor(e){this._op=null;this._filter=e}get operator(){return this._op}set operator(e){this._op=wijmo_1.asEnum(e,Operator,!0)}get value(){return this._val}set value(e){this._val=e;this._strVal=wijmo_1.isString(e)?this._getCaseString(e):null}get isActive(){switch(this._op){case null:return!1;case Operator.EQ:case Operator.NE:return!0;default:return null!=this._val||null!=this._strVal}}clear(){this.operator=null;this.value=null}apply(e,t,i){let l=this._strVal||this._val;wijmo_1.isString(e)&&(e=this._getCaseString(e));wijmo_1.isString(l)&&null==e&&(e="");wijmo_1.isDate(l)&&(t?l=wijmo_1.DateTime.fromDateTime(l,FilterCondition._refDateTime):i&&(l=wijmo_1.DateTime.fromDateTime(FilterCondition._refDateTime,l)));let s=Operator;switch(this._op){case null:return!0;case s.EQ:return null!=e&&null!=l?e.valueOf()==l.valueOf():e==l;case s.NE:return null!=e&&null!=l?e.valueOf()!=l.valueOf():e!=l;case s.GT:return e>l;case s.GE:return e>=l;case s.LT:return e<l;case s.LE:return e<=l;case s.BW:return!(null==this._strVal||!wijmo_1.isString(e))&&0==e.indexOf(this._strVal);case s.EW:return!!(null!=this._strVal&&wijmo_1.isString(e)&&e.length>=this._strVal.length)&&e.substr(e.length-this._strVal.length)==l;case s.CT:return!(null==this._strVal||!wijmo_1.isString(e))&&e.indexOf(this._strVal)>-1;case s.NC:return!(null==this._strVal||!wijmo_1.isString(e))&&e.indexOf(this._strVal)<0;case s.NBW:return!(null==this._strVal||!wijmo_1.isString(e))&&0!==e.indexOf(this._strVal);case s.NEW:return!(null==this._strVal||!wijmo_1.isString(e))&&e.substring(e.length-this._strVal.length)!==l}throw"Unknown operator"}_getCaseString(e){let 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);exports.FilterCondition=FilterCondition;!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";e[e.NBW=10]="NBW";e[e.NEW=11]="NEW"}(Operator=exports.Operator||(exports.Operator={}));!function(e){e[e.Text=0]="Text";e[e.Regex=1]="Regex";e[e.Excel=2]="Excel"}(ValueFilterSearchKind=exports.ValueFilterSearchKind||(exports.ValueFilterSearchKind={}));class ValueFilter{constructor(e){this._values=null;this._filterText=null;this._xValueSearch=!0;this._maxValues=250;this._uniqueValues=null;this._sortValues=!0;this._searchType=ValueFilterSearchKind.Excel;this._showIncludeSelection=!1;this._col=e}get searchType(){return this._searchType}set searchType(e){this._searchType=wijmo_1.asEnum(e,ValueFilterSearchKind)}get showValues(){return this._values}set showValues(e){this._values=e}get filterText(){return this._filterText}set filterText(e){this._filterText=wijmo_1.asString(e)}get exclusiveValueSearch(){return this._xValueSearch}set exclusiveValueSearch(e){if((e=wijmo_1.asBoolean(e))!==this._xValueSearch){this._xValueSearch=wijmo_1.asBoolean(e);e&&(this._filterText="")}}get maxValues(){return this._maxValues}set maxValues(e){this._maxValues=wijmo_1.asNumber(e,!1,!0)}get uniqueValues(){return this._uniqueValues}set uniqueValues(e){this._uniqueValues=wijmo_1.asArray(e)}get sortValues(){return this._sortValues}set sortValues(e){this._sortValues=wijmo_1.asBoolean(e)}get dataMap(){return this._map}set dataMap(e){this._map=wijmo_1.asType(e,wijmo_grid_1.DataMap,!0)}get showIncludeSelection(){return this._showIncludeSelection}set showIncludeSelection(e){e!=this._showIncludeSelection&&(this._showIncludeSelection=wijmo_1.asBoolean(e,!1))}get column(){return this._col}get isActive(){return null!=this._values&&Object.keys(this._values).length>0}apply(e){let 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)||"":wijmo_1.Globalize.format(e,t.format);return null!=this._values[e]}clear(){this.showValues=null;this.filterText=null}getUniqueValues(e=!0){let t=[],i=this.column,l=wijmo_1.Globalize.format;if(this.uniqueValues){this.uniqueValues.forEach(e=>{t.push({value:e,text:l(e,i.format)})});return t}let s={},r=i.collectionView,a=r?r.sourceCollection:[];if(e&&r&&r.sourceCollection&&r.filter)try{FlexGridFilter._skipColumn=this._col;let e=[];for(let t=0;t<a.length;t++)r.filter(a[t])&&e.push(a[t]);a=e}finally{FlexGridFilter._skipColumn=null}for(let e=0;e<a.length;e++){let r=i._binding.getValue(a[e]),n=this.dataMap?this.dataMap.getDisplayValue(r)||"":i.dataMap?i.dataMap.getDisplayValue(r)||"":l(r,i.format);if(!s[n]){s[n]=!0;t.push({value:r,text:n})}}return t}implementsInterface(e){return"IColumnFilter"==e}}exports.ValueFilter=ValueFilter;class ValueFilterEditor extends wijmo_1.Control{constructor(e,t){super(e);this._canApply=!1;this._isFiltering=!1;this.canApplyChanged=new wijmo_1.Event;this._filter=wijmo_1.asType(t,ValueFilter,!1);let i=this.getTemplate();this.applyTemplate(`${wijmo_1.ControlClsNames.hostElement} ${exports.ValueFilterEditorClsNames.hostElement}`,i,{_divFilter:"div-filter",_cbSelectAll:"cb-select-all",_spSelectAll:"sp-select-all",_cbIncludeSel:"cb-include-sel",_spIncludeSel:"sp-include-sel",_lblIncludeSel:"lbl-include-sel",_divOptions:"div-options",_divValues:"div-values",_divExceeds:"div-exceeds",_aExceeds:"a-exceeds"});this._cbSelectAll.tabIndex=0;this._cbIncludeSel.tabIndex=0;let l=wijmo_1.culture.FlexGridFilter;wijmo_1.setText(this._spSelectAll,l.selectAll);wijmo_1.setText(this._spIncludeSel,l.includeSelection);wijmo_1.setText(this._aExceeds,l.exceedsMaxValues);let s=this._view=new wijmo_1.CollectionView(null,{sortNulls:wijmo_1.SortNulls.First,filter:this._filterValues.bind(this)});if(t.sortValues){let e=t.column.dataMap||t.dataMap?"text":"value",i=t.column.dataType!=wijmo_1.DataType.Boolean;s.sortDescriptions.push(new wijmo_1.SortDescription(e,i))}s.collectionChanged.addHandler(this._updateSelectAllCheck,this);this._filterText="";this._rxFilter=null;this._cmbFilter=new input.ComboBox(this._divFilter,{trimText:!1,isRequired:!1,placeholder:l.search});this._cmbFilter.isEditable=!0;this._lbValues=new input.ListBox(this._divValues,{displayMemberPath:"text",checkedMemberPath:"show",itemsSource:this._view,itemFormatter:(e,t)=>t||l.null,checkedItemsChanged:e=>this._updateSelectAllCheck()});wijmo_1.setAttribute(this._divValues,"aria-label",wijmo_1.culture.FlexGridFilter.ariaLabels.listBox);wijmo_1.setAriaLabel(this._cmbFilter.inputElement,l.ariaLabels.search);wijmo_1.setAttribute(this._lbValues.hostElement,"aria-multiselectable",!0);this._cmbFilter.inputElement.addEventListener("input",this._filterTextChanged.bind(this));this._cbSelectAll.addEventListener("click",this._cbSelectAllClicked.bind(this));if(!this._popup){this._initPopup();this._aExceeds&&this.addEventListener(this._aExceeds,"click",e=>{e.preventDefault();this._popup.show(!0)})}this.updateEditor();this._filter.showValues?this._initialItems=s.sourceCollection.filter(e=>this._filter.showValues[e.text||e.value]||!1):this._initialItems=this._lbValues.checkedItems}static get controlTemplate(){ValueFilterEditor._ctrlTemplate||(ValueFilterEditor._ctrlTemplate='<div><div wj-part="div-filter"></div>'+`<div wj-part="div-options" class="${input.ListBoxClsNames.listBoxItem}">`+'<label><input wj-part="cb-select-all" type="checkbox"> <span wj-part="sp-select-all"></span></label><br /><label wj-part="lbl-include-sel"><input wj-part="cb-include-sel" type="checkbox"> <span wj-part="sp-include-sel"></span></label></div><div wj-part="div-values"></div><div wj-part="div-exceeds"><a wj-part="a-exceeds"></a></div></div>');return ValueFilterEditor._ctrlTemplate}static set controlTemplate(e){ValueFilterEditor._ctrlTemplate=e}get filter(){return this._filter}get canApply(){return this._canApply}set canApply(e){if(e!=this._canApply){this._canApply=e;this.onCanApplyChanged()}}get _shouldIncludeSelection(){return this._filter.showIncludeSelection&&this._cbIncludeSel.checked}updateEditor(){let e=this._filter.column,t=this._filter.getUniqueValues(!0);this._lbValues.isContentHtml=e.isContentHtml;let i=this._filter.showValues;if(i&&0!=Object.keys(i).length){for(let e in i)for(let i=0;i<t.length;i++)if(t[i].text==e){t[i].show=!0;break}}else t.forEach(e=>e.show=!0);let l=this._filter.filterText||"",s=this._getCaseSensitive();this._cmbFilter.text=l;this._filterText=s?l:l.toLowerCase();this._rxFilter=this._getSearchExp(l,s);this._filter.showIncludeSelection&&!this.hostElement.contains(this._lblIncludeSel)?this._divOptions.appendChild(this._lblIncludeSel):this._filter.showIncludeSelection||this._lblIncludeSel.remove();let r=this._view;r.pageSize=this._filter.maxValues;r.sourceCollection=t;setTimeout(()=>{this._adjustWidths()},0);this._updateExceedsMaxValuesDisplay()}clearEditor(e=!0){this._cmbFilter.text="";this._filterText="";this._rxFilter=null;let t=this._view;t.pageSize=0;t.items.forEach(t=>{t.show=e});t.moveCurrentTo(-1);t.refresh();t.pageSize=this._filter.maxValues}get isEditorClear(){return!this._filterText&&!this._cbSelectAll.indeterminate}_updateFilter(){let e=null,t=this._getItems();if(this._filterText||this._cbSelectAll.indeterminate){e=this._shouldIncludeSelection&&this._filter.showValues||{};for(let i=0;i<t.length;i++){let l=t[i];l.show&&(e[l.text]=!0)}}let i=this._filter;i.showValues=e;i.filterText=this._filterText}updateFilter(){this._isFiltering?setTimeout(()=>{this._updateFilter()},wijmo_1.Control._SEARCH_DELAY+100):this._updateFilter()}onCanApplyChanged(e){this.canApplyChanged.raise(this,e)}_getCaseSensitive(){let e=this._filter.column,t=e?e.grid:null;return t&&t.caseSensitiveSearch}_getItems(){return this._filter.exclusiveValueSearch?this._view.items:this._view.sourceCollection}_filterTextChanged(){""===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(()=>{let e=this._cmbFilter.text,t=this._getCaseSensitive();t||(e=e.toLowerCase());if(e!=this._filterText){this._filterText=e;this._rxFilter=this._getSearchExp(e,t);this._view.refresh();this._updateExceedsMaxValuesDisplay();if(!e){let e=this._initialItems;if(e.length&&this._view.sourceCollection.indexOf(e[0])>-1){this._lbValues.checkedItems=this._initialItems;this._updateSelectAllCheck();this._isFiltering=!1;return}}if(this._filter.exclusiveValueSearch){this._cbSelectAll.checked=!0;this._cbSelectAllClicked()}else this._updateSelectAllCheck()}this._isFiltering=!1},wijmo_1.Control._SEARCH_DELAY)}_getSearchExp(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)}}_getTextSearchExp(e,t){return new RegExp(wijmo_1.escapeRegExp(e),t?"":"i")}_getRegexSearchExp(e,t){try{return new RegExp(e,t?"s":"is")}catch(e){return new RegExp("(?!)",t?"s":"is")}}_getExcelSearchExp(e,t){let 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(e=>".").join("")}))).replace(/(\*+)/g,(function(e,t){return Array.from(t).map(e=>".*").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")}_filterValues(e){let t=this._rxFilter;return null==t||null==e||t.test(e.text)}_cbSelectAllClicked(){let e=this._cbSelectAll.checked,t=this._divValues.scrollTop,i=this._getItems();for(let t=0;t<i.length;t++)i[t].show=e;this._view.refresh();this._divValues.scrollTop=t;setTimeout(()=>{this._adjustWidths()},0)}_updateSelectAllCheck(){let e=this._getItems(),t=0,i=0;for(let l=0;l<e.length;l++){e[l].show?t++:i++;if(t&&i)break}wijmo_1.setChecked(this._cbSelectAll,t&&i?null:t>0);this.canApply=t>0}_adjustWidths(){let e=this._lbValues.hostElement;if(e&&e.offsetHeight>0){let t=0,i=e.querySelectorAll(`.${input.ListBoxClsNames.listBoxItem} label`);if(i.length){for(let e=0;e<i.length;e++)t=Math.max(t,i[e].scrollWidth);if(t){let i=e.querySelectorAll(`.${input.ListBoxClsNames.listBoxItem}`);if(i.length){let e=i[0],l=getComputedStyle(e),s=parseFloat(l.paddingLeft)+parseFloat(l.paddingRight);for(let e=0;e<i.length;e++)i[e].style.width=t+s+"px"}}}}}get exceedsMaxValues(){return!(!this._view||!this._view._view)&&this._view._view.length>this.filter.maxValues}_updateExceedsMaxValuesDisplay(){this._aExceeds.style.display=this.exceedsMaxValues?"":"none"}_initPopup(){let e=document.createElement("div");e.innerHTML='<div role="dialog">'+`<div class=${input.PopupClsNames.dialogBody}>`+`<div class=${exports.ValueFilterEditorClsNames.customModalText}>`+"<p>"+wijmo_1.culture.FlexGridFilter.popupBody+"</p></div></div>"+`<div class="${input.PopupClsNames.dialogFooter} ${exports.ValueFilterEditorClsNames.modalFooter}" >`+`<button class="btn btn-primary ${wijmo_1.UtilitesClsNames.hideOk}">`+wijmo_1.culture.FlexGridFilter.popupOkButton+"</button></div></div>";this._popup=new input.Popup(e,{modal:!0,fadeIn:!0,fadeOut:!0})}}ValueFilterEditor._ctrlTemplate="";exports.ValueFilterEditor=ValueFilterEditor;class ColumnFilter{constructor(e,t){this._owner=e;this._col=t;this._valueFilter=new ValueFilter(t);this._valueFilter.exclusiveValueSearch=e.exclusiveValueSearch;this._valueFilter.showIncludeSelection=e.showIncludeSelection;this._conditionFilter=new ConditionFilter(t);e.exclusiveValueSearchChanged.addHandler(e=>{this._valueFilter.exclusiveValueSearch=e.exclusiveValueSearch});e._showIncludeSelectionChanged.addHandler(e=>{this._valueFilter.showIncludeSelection=e.showIncludeSelection})}get filterType(){return null!=this._filterType?this._filterType:this._owner.defaultFilterType}set filterType(e){if((e=wijmo_1.asEnum(e,FilterType,!0))!=this._filterType){let t=this.isActive;this.clear();this._filterType=e;t?this._owner.apply():this._col.grid&&this._col.grid.invalidate()}}get dataMap(){return this.conditionFilter.dataMap||this.valueFilter.dataMap}set dataMap(e){this.conditionFilter.dataMap=e;this.valueFilter.dataMap=e}get valueFilter(){return this._valueFilter}get conditionFilter(){return this._conditionFilter}get column(){return this._col}get isActive(){return this._conditionFilter.isActive||this._valueFilter.isActive}apply(e){return this._conditionFilter.apply(e)&&this._valueFilter.apply(e)}clear(){this._valueFilter.clear();this._conditionFilter.clear()}implementsInterface(e){return"IColumnFilter"==e}}exports.ColumnFilter=ColumnFilter;wijmo_1._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",active:"active",listBox:"List of options available for filtering"},ascending:"↑ Ascending",descending:"↓ Descending",apply:"Apply",cancel:"Cancel",clear:"Clear",conditions:"Filter by Condition",values:"Filter by Value",search:"Search",selectAll:"Select All",includeSelection:"Include Current Selection",null:"(nothing)",exceedsMaxValues:"Not all items showing",popupBody:"This column has more than 250 unique items. Only the first 250 unique items are displayed.",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:"Does not begin with",op:Operator.NBW},{name:"Ends with",op:Operator.EW},{name:"Does not end with",op:Operator.NEW},{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}]});class ColumnFilterEditor extends wijmo_1.Control{constructor(e,t,i=!0){super(e,null,!0);this.filterChanged=new wijmo_1.Event;this.buttonClicked=new wijmo_1.Event;this._filter=wijmo_1.asType(t,ColumnFilter);let l=this.getTemplate();this.applyTemplate(`${wijmo_1.ControlClsNames.hostElement} ${wijmo_1.ControlClsNames.content} ${wijmo_1.ControlClsNames.content} ${exports.ColumnFilterEditorClsNames.hostElement}`,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",_btnApply:"btn-apply",_btnCancel:"btn-cancel",_btnClear:"btn-clear"});let s=wijmo_1.culture.FlexGridFilter,r=s.ariaLabels,a=this.hostElement,n=this.filter.column,o=n.grid.collectionView;wijmo_1.setAttribute(a,"role","dialog");wijmo_1.setAriaLabel(a,r.dialog+" "+n.header);wijmo_1.setAriaLabel(this._btnAsc,r.asc);wijmo_1.setAriaLabel(this._btnDsc,r.dsc);wijmo_1.setText(this._btnAsc,s.ascending);wijmo_1.setText(this._btnDsc,s.descending);wijmo_1.setText(this._aVal,s.values);wijmo_1.setText(this._aCnd,s.conditions);wijmo_1.setText(this._btnApply,s.apply);wijmo_1.setText(this._btnCancel,s.cancel);wijmo_1.setText(this._btnClear,s.clear);let d=this.filter.conditionFilter.isActive||0==(t.filterType&FilterType.Value)?FilterType.Condition:FilterType.Value;this._showFilter(d);if(!n.allowSorting){wijmo_1.enable(this._btnAsc,!1);wijmo_1.enable(this._btnDsc,!1)}i&&o&&o.canSort||(this._divSort.style.display="none");this._updateSortButtonState();let h=this._btnClicked.bind(this);this._btnApply.addEventListener("click",h);this._btnCancel.addEventListener("click",h);this._btnClear.addEventListener("click",h);this._btnAsc.addEventListener("click",h);this._btnDsc.addEventListener("click",h);this._aVal.addEventListener("click",h);this._aCnd.addEventListener("click",h);this.addEventListener(a,"keydown",e=>{if(!e.defaultPrevented){let t=e.target.tagName.match(/^(a|button)$/i);switch(e.keyCode){case wijmo_1.Key.Space:if(t){this._btnClicked(e);e.preventDefault()}break;case wijmo_1.Key.Enter:if(t)this._btnClicked(e);else{this.updateFilter();this.onFilterChanged();this.onButtonClicked()}e.preventDefault();break;case wijmo_1.Key.Escape:this.onButtonClicked();e.preventDefault();break;case wijmo_1.Key.Tab:wijmo_1.moveFocus(this.hostElement,e.shiftKey?-1:1);e.preventDefault()}}});this.addEventListener(window,"resize",()=>{this.isTouching||this._wasTouching||this.onButtonClicked()})}static get controlTemplate(){ColumnFilterEditor._ctrlTemplate||(ColumnFilterEditor._ctrlTemplate="<div>"+`<div wj-part="div-sort" class="${exports.ColumnFilterEditorClsNames.sortButtons}">`+`<button wj-part="btn-asc" class="${wijmo_1.InputFormElementsClsNames.btn}"></button>&nbsp;&nbsp;&nbsp;`+`<button wj-part="btn-dsc" class="${wijmo_1.InputFormElementsClsNames.btn}"></button>`+"</div>"+`<div wj-part="div-type" class="${exports.ColumnFilterEditorClsNames.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="${wijmo_1.InputFormElementsClsNames.btn}"></button>&nbsp;&nbsp;`+`<button wj-part="btn-cancel" class="${wijmo_1.InputFormElementsClsNames.btn}"></button>&nbsp;&nbsp;`+`<button wj-part="btn-clear" class="${wijmo_1.InputFormElementsClsNames.btn}"></button>`+"</div></div>");return ColumnFilterEditor._ctrlTemplate}static set controlTemplate(e){ColumnFilterEditor._ctrlTemplate=e}get filter(){return this._filter}updateEditor(){this._edtVal&&this._edtVal.updateEditor();this._edtCnd&&this._edtCnd.updateEditor()}updateFilter(){switch(this._getFilterType()){case FilterType.Value:this._edtVal.updateFilter();this.filter.conditionFilter.clear();break;case FilterType.Condition:this._edtCnd.updateFilter();this.filter.valueFilter.clear()}}onFilterChanged(e){this.filterChanged.raise(this,e)}onButtonClicked(e){this.buttonClicked.raise(this,e)}_showFilter(e){this._wasTouching=this.isTouching;if(e==FilterType.Value&&null==this._edtVal){this._edtVal=new ValueFilterEditor(this._divEdtVal,this.filter.valueFilter);this._edtVal.canApplyChanged.addHandler(e=>{wijmo_1.enable(this._btnApply,this._edtVal.canApply)})}if(e==FilterType.Condition&&null==this._edtCnd){this._edtCnd=new ConditionFilterEditor(this._divEdtCnd,this.filter.conditionFilter);this._edtCnd.canApplyChanged.addHandler(e=>{wijmo_1.enable(this._btnApply,this._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();this._edtVal._updateExceedsMaxValuesDisplay();wijmo_1.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();wijmo_1.enable(this._btnApply,this._edtCnd.canApply)}let t=this._divType.style;switch(this.filter.filterType){case FilterType.None:case FilterType.Condition:case FilterType.Value:t.display="none";break;default:t.display=""}}_enableLink(e,t){wijmo_1.toggleClass(e,wijmo_1.ControlStateClsNames.disabled,!t);wijmo_1.setAttribute(e,"href",t?"":null);wijmo_1.setAttribute(e,"disabled",t?null:"disabled")}_updateSortButtonState(){let e=this.filter.column,t=e?e.currentSort:"",i=wijmo_1.ControlStateClsNames.active,l=wijmo_1.culture.FlexGridFilter.ariaLabels;if("+"===t){wijmo_1.addClass(this._btnAsc,i);this._btnAsc.setAttribute("aria-label",`${l.asc} ${l.active}`)}else if("-"===t){wijmo_1.addClass(this._btnDsc,i);this._btnDsc.setAttribute("aria-label",`${l.dsc} ${l.active}`)}}_getFilterType(){let e=FilterType;return"none"!=this._divEdtVal.style.display?e.Value:e.Condition}_btnClicked(e){let t=e.target;e.preventDefault();e.stopPropagation();if(!wijmo_1.hasClass(t,wijmo_1.ControlStateClsNames.disabled))if(t!=this._aVal)if(t!=this._aCnd){if(t==this._btnAsc||t==this._btnDsc){let t=this.filter.column,i=t.sortMemberPath||t.binding,l=t.grid.collectionView.sortDescriptions;l.deferUpdate(()=>{l.clear();l.push(new wijmo_1.SortDescription(i,e.target==this._btnAsc))});this._updateSortButtonState()}if(t==this._btnApply){this.updateFilter();this.onFilterChanged()}else if(t==this._btnClear){if(this.filter.isActive){this.filter.clear();this.onFilterChanged()}}else this.updateEditor();this.onButtonClicked()}else{this._showFilter(FilterType.Condition);wijmo_1.moveFocus(this._edtCnd.hostElement,0)}else{this._showFilter(FilterType.Value);wijmo_1.moveFocus(this._edtVal.hostElement,0)}}}ColumnFilterEditor._ctrlTemplate="";exports.ColumnFilterEditor=ColumnFilterEditor;wijmo_1._registerModule("wijmo.grid.filter",selfModule);
package/es2015-esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * Wijmo Library 5.20241.19
3
+ * Wijmo Library 5.20242.30
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
- import{Column,DataMap,FlexGrid,DataMapEditor,CellRange,CellRangeEventArgs,CellType,_NewRowTemplate}from"@grapecity/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"@grapecity/wijmo";import{DropDown,Popup}from"@grapecity/wijmo.input";import*as input from"@grapecity/wijmo.input";import*as selfModule from"@grapecity/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={}));export class FlexGridFilter{constructor(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));let 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()}_init(){const e=this.grid,_excludeRowFromFilter=e=>{let t=this.grid;const i=this.excludedRowsSet;if(t.itemsSource)if(t.rows[e]instanceof _NewRowTemplate){let l=t.editableCollectionView.currentAddItem||t.rows[e].dataItem;l&&i.add(l)}else t.rows[e].dataItem&&i.add(t.rows[e].dataItem);else t.rows[e]&&i.add(t.rows[e])};e.rowChanged&&e.rowChanged.addHandler((e,t)=>{t.added&&_excludeRowFromFilter(t.index)});e.rowEditEnding.addHandler((e,t)=>{_excludeRowFromFilter(t.row)});e.cellEditEnded.addHandler((e,t)=>{_excludeRowFromFilter(t.row)})}get excludedRowsSet(){let e=this.grid;e.selectedSheet&&(e=e.selectedSheet);e._newAddedRowsSet||(e._newAddedRowsSet=new WeakSet);return e._newAddedRowsSet}set excludedRowsSet(e){let t=this.grid;t.selectedSheet&&(t=t.selectedSheet);t._newAddedRowsSet=e}get grid(){return this._g}get filterColumns(){return this._filterColumns}set filterColumns(e){this._filterColumns=asArray(e);this.clear()}get showFilterIcons(){return this._showIcons}set showFilterIcons(e){if(e!=this.showFilterIcons){this._showIcons=asBoolean(e);this._g&&this._g.invalidate()}}get showSortButtons(){return this._showSort}set showSortButtons(e){this._showSort=asBoolean(e)}get reApplyFilterOnUpdate(){return this._includeUpdatedRowsInFilter}set reApplyFilterOnUpdate(e){e!==this._includeUpdatedRowsInFilter&&(this._includeUpdatedRowsInFilter=asBoolean(e))}getColumnFilter(e,t=!0){if(e=this._asColumn(e)){for(let t=0;t<this._filters.length;t++)if(this._filters[t].column==e)return this._filters[t];if(t&&e.binding){let t=new ColumnFilter(this,e);this._filters.push(t);return t}}return null}get defaultFilterType(){return this._defFilterType}set defaultFilterType(e){if((e=asEnum(e,FilterType,!1))!=this.defaultFilterType){this._defFilterType=e;this._g.invalidate();this.clear()}}get exclusiveValueSearch(){return this._xValueSearch}set exclusiveValueSearch(e){if((e=asBoolean(e))!==this._xValueSearch){this._xValueSearch=e;this.onExclusiveValueSearchChanged()}}get filterDefinition(){let e={defaultFilterType:this.defaultFilterType,filters:[]};this._filters.forEach(t=>{let i=t.conditionFilter,l=t.valueFilter,s=l.uniqueValues&&l.uniqueValues.length;if(t&&t.column&&t.column.binding&&(t.isActive||s||t.filterType!=this.defaultFilterType)){let a={binding:t.column.binding};if(i.isActive){let e=i.condition1,l=i.condition2;a={binding:t.column.binding,type:"condition",condition1:{operator:e.operator,value:e.value},and:i.and,condition2:{operator:l.operator,value:l.value}}}else(l.isActive||s)&&(a={binding:t.column.binding,type:"value",uniqueValues:l.uniqueValues,sortValues:l.sortValues,maxValues:l.maxValues,exclusiveValueSearch:l.exclusiveValueSearch,showValues:l.showValues});t.filterType!=this.defaultFilterType&&(a.filterType=t.filterType);e.filters.push(a)}});return JSON.stringify(e)}set filterDefinition(e){e=asString(e);this.clear();if(e){let t=JSON.parse(e);this.defaultFilterType=t.defaultFilterType;for(let e=0;e<t.filters.length;e++){let i=t.filters[e],l=this._asColumn(i.binding);l||(l=new Column({binding:i.binding}));let s=this.getColumnFilter(l,!0);if(s){null!=i.filterType&&(s.filterType=asEnum(i.filterType,FilterType));switch(i.type){case"condition":let e=s.conditionFilter;e.condition1.value=l.dataType==DataType.Date?changeType(i.condition1.value,l.dataType,null):i.condition1.value;e.condition1.operator=i.condition1.operator;e.and=i.and;e.condition2.value=l.dataType==DataType.Date?changeType(i.condition2.value,l.dataType,null):i.condition2.value;e.condition2.operator=i.condition2.operator;break;case"value":let t=s.valueFilter;t.uniqueValues=i.uniqueValues;["sortValues","maxValues","exclusiveValueSearch"].forEach(e=>{null!=i[e]&&(t[e]=i[e])});t.showValues=i.showValues}}}}this.apply()}get activeEditor(){return Control.getControl(this._divEdt)}editColumnFilter(e,t,i){let l=this._g;this.closeEditor();e=this._asColumn(e);let s=new CellRangeEventArgs(l.cells,new CellRange(-1,e.index));if(!this.onEditingFilter(s))return;let a=createElement('<div class="wj-dropdown-panel"></div>'),r=this.getColumnFilter(e),n=new ColumnFilterEditor(a,r,this.showSortButtons);this._divEdt=a;this._edtCol=e;l.rightToLeft&&(a.dir="rtl");if(!this.onFilterChanging(s)){this._divEdt=this._edtCol=null;return}s.cancel=!0;n.filterChanged.addHandler(()=>{s.cancel=!1;setTimeout(()=>{if(!s.cancel){this.excludedRowsSet=null;this.apply()}},n._edtVal&&n._edtVal._isFiltering?Control._SEARCH_DELAY+200:0)});n.buttonClicked.addHandler(()=>{this.closeEditor();l.focus();this.onFilterChanged(s)});n.lostFocus.addHandler(()=>{setTimeout(()=>{let e=Control.getControl(this._divEdt);e&&!e.containsFocus()&&this.closeEditor()},10)});let o=t?t.col:e.index,d=l.columns[o];t||d&&d.binding==e.binding||(o=l.selection.leftCol);l._edtHdl._commitRowEdits();l.scrollIntoView(-1,o,!0);let h=l.columnHeaders,u=t&&t.panel&&h&&t.panel._uid==h._uid?t.row:h.rows.length-1,c=o,p=i||h.getCellElement(u,c),_=p?null:h.getCellBoundingRect(u,c);p?showPopup(a,p,!1,!1,!1):showPopup(a,_);this._setAriaExpanded(p,!0);this._setAriaExpanded(l.cells.getCellElement(-1,c),!0);let g=n.hostElement.querySelectorAll("input");for(let e=0;e<g.length;e++){let t=g[e];if(t.offsetHeight>0&&t.tabIndex>-1&&!t.disabled){t.focus();break}}n.containsFocus()||n.focus()}_setAriaExpanded(e,t){if(e){var i=e.querySelector("."+FlexGridFilter._WJC_FILTER);setAttribute(i,"aria-expanded",t)}}closeEditor(){let e=this._g,t=Control.getControl(this._divEdt),i=this._edtCol;t&&hidePopup(t.hostElement,()=>{t.dispose()});if(i){let t=e.columnHeaders,l=t.rows.length?t.getCellElement(t.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}apply(){let e=this._g.collectionView;if(e){let t=this._g.editableCollectionView;if(t){t.commitEdit();t.commitNew()}e.filter=this._filter.bind(this)}let t=e?e.updateFilterDefinition:null;isFunction(t)&&t.call(e,this);this.onFilterApplied()}clear(){if(this._filters.length){this._filters=[];this.apply()}}onFilterApplied(e){this.filterApplied.raise(this,e)}onEditingFilter(e){this.editingFilter.raise(this,e);return!e.cancel}onFilterChanging(e){this.filterChanging.raise(this,e);return!e.cancel}onFilterChanged(e){this.filterChanged.raise(this,e)}onExclusiveValueSearchChanged(e){this.exclusiveValueSearchChanged.raise(this,e)}_asColumn(e){return isString(e)?this._g.getColumn(e,!0):isNumber(e)?this._g.columns[e]:asType(e,Column,!1)}_filter(e){const t=this.excludedRowsSet;if(!this.reApplyFilterOnUpdate&&t.has(e))return!0;let i=this._filters;for(let t=0;t<i.length;t++){let l=i[t];if(l.column!=FlexGridFilter._skipColumn&&!l.apply(e))return!1}return!0}_formatItem(e,t){if(t.panel==e.columnHeaders){let e=this._g,i=e.getMergedRange(t.panel,t.row,t.col)||new CellRange(t.row,t.col),l=e.columns[i.col],s=e._getBindingColumn(t.panel,t.row,l),a=t.cell;if(i.row2==t.panel.rows.length-1||l!=s){let i=this.getColumnFilter(s,this.defaultFilterType!=FilterType.None),r=this._filterColumns;r&&r.length&&r.indexOf(s.binding)<0&&r.indexOf(s.name)<0&&(i=null);if(i){toggleClass(a,"wj-filter-on",i.isActive);toggleClass(a,"wj-filter-off",!i.isActive)}else{removeClass(a,"wj-filter-on");removeClass(a,"wj-filter-off")}if(i&&i.filterType!=FilterType.None){this._showIcons&&this._addFilterButton(s,i,a);0==t.row&&(a=e.cells.getCellElement(-1,t.col))&&this._addFilterButton(l,i,a)}}}}_addFilterButton(e,t,i){let l=FlexGridFilter._WJC_FILTER,s=createElement('<button class="wj-btn wj-btn-glyph wj-right '+l+'" type="button" tabindex="-1"><span class="wj-glyph-filter"></span></button>');setAriaLabel(s,culture.FlexGridFilter.ariaLabels.edit+" "+e.header);setAttribute(s,"aria-haspopup","dialog");setAttribute(s,"aria-expanded",!1);setAttribute(s,"aria-describedby",e.describedById);setAttribute(s,"aria-pressed",t.isActive);if(!i.querySelector("."+l)){1==i.children.length&&(i=i.querySelector("div")||i);i.insertBefore(s,i.firstChild)}}_mousedown(e){this._edtColPrev=this._edtCol}_click(e){if(this._toggleEditor(e)){e.stopPropagation();e.preventDefault()}}_toggleEditor(e){if(!e.defaultPrevented&&0==e.button)if(closestClass(e.target,FlexGridFilter._WJC_FILTER)){let t=this._g,i=t.hitTest(e.target);i.panel||(i=t.hitTest(e));if(i.panel&&t.columnHeaders&&t.cells&&(i.panel._uid==t.columnHeaders._uid||i.panel._uid==t.cells._uid&&-1==i.row)){let e=t.getMergedRange(i.panel,i.row,i.col)||new CellRange(i.row,i.col),l=t.columns[e.col],s=t._getBindingColumn(i.panel,i.row,l);if(this._divEdt&&this._edtCol==s){this.closeEditor();t.focus()}else s!=this._edtColPrev&&setTimeout(()=>{this.editColumnFilter(s,i)},this._divEdt?100:0);return!0}}else this.closeEditor();return!1}_keydown(e){if(!e.defaultPrevented&&!e.ctrlKey&&e.altKey&&(e.keyCode==Key.Down||e.keyCode==Key.Up)){let t=this.grid,i=t.selection,l=i.col>-1?t.columns[i.col]:null,s=l?t._getBindingColumn(t.cells,i.row,l):null,a=s&&s.dataMap&&s.dataMapEditor==DataMapEditor.DropDownList;if(this.filterColumns&&this.filterColumns.length>0&&!this.filterColumns.includes(s._binding._path)){e.preventDefault();return!1}if(t.activePanelType!=CellType.Cell&&t.activePanelType!=CellType.ColumnHeader){e.preventDefault();return!1}s&&s.editor instanceof DropDown&&(a=!0);if(s&&!a){let t=this.getColumnFilter(s,!1);if(t&&t.filterType!=FilterType.None){this.editColumnFilter(s);e.preventDefault();e.stopPropagation()}}}}}FlexGridFilter._WJC_FILTER="wj-elem-filter";export const empty={};export class ConditionFilter{constructor(e){this._c1=new FilterCondition(this);this._c2=new FilterCondition(this);this._and=!0;this._col=e}get condition1(){return this._c1}get condition2(){return this._c2}get and(){return this._and}set and(e){this._and=asBoolean(e)}get dataMap(){return this._map}set dataMap(e){this._map=asType(e,DataMap,!0)}get column(){return this._col}get isActive(){return this._c1.isActive||this._c2.isActive}apply(e){let t=this._col,i=this._c1,l=this._c2,s=!1,a=!1;if(!t||!t._binding||!this.isActive)return!0;e=t._binding.getValue(e);let r=this.dataMap||t.dataMap;if(r)e=r.getDisplayValue(e);else if(isDate(e)){s=!this._hasTimePart();a=!this._hasDatePart();let t=FilterCondition._refDateTime;s?e=DateTime.fromDateTime(e,t):a&&(e=DateTime.fromDateTime(t,e))}else if(isNumber(e)){let i=Globalize,l=t.format,s=i.formatNumber(e,l);e=i.parseFloat(s,l)}let n=i.apply(e,s,a),o=l.apply(e,s,a);return i.isActive&&l.isActive?this._and?n&&o:n||o:i.isActive?n:!l.isActive||o}clear(){this._c1.clear();this._c2.clear();this.and=!0}_hasDatePart(){let e=this._col.format;if(!e)return!0;e=culture.Globalize.calendar.patterns[e]||e;return/[yMd]+/.test(e)}_hasTimePart(){let e=this._col.format;if(!e)return!1;e=culture.Globalize.calendar.patterns[e]||e;return/[Hmst]+/.test(e)}implementsInterface(e){return"IColumnFilter"==e}}export class ConditionFilterEditor extends Control{constructor(e,t){super(e);this._canApply=!1;this.canApplyChanged=new Event;this._filter=asType(t,ConditionFilter,!1);let i=this.getTemplate();this.applyTemplate("wj-control wj-conditionfilter-editor",i,{_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"});let l=culture.FlexGridFilter,s=l.ariaLabels;setAriaLabel(this._btnAnd,s.and);setAriaLabel(this._btnOr,s.or);setText(this._divHdr,l.header);setText(this._spAnd,l.and);setText(this._spOr,l.or);const a=getUniqueId("cmb1");this._divHdr.htmlFor=a;this._divCmb1.id=a;this._cmb1=this._createOperatorCombo(this._divCmb1,s.op1);this._cmb2=this._createOperatorCombo(this._divCmb2,s.op2);this._val1=this._createValueInput(this._divVal1,s.val1);this._val2=this._createValueInput(this._divVal2,s.val2);this._val1.isDisabled=!0;this._cmb1.selectedIndexChanged.addHandler((e,t)=>{this._val1.isDisabled=null==e.selectedValue;this.canApply=!this._val1.isDisabled||!this._val2.isDisabled});this._val2.isDisabled=!0;this._cmb2.selectedIndexChanged.addHandler((e,t)=>{this._val2.isDisabled=null==e.selectedValue;this.canApply=!this._val1.isDisabled||!this._val2.isDisabled});let r=this.hostElement;this.addEventListener(r,"change",this._btnAndOrChanged.bind(this));this.addEventListener(r,"keydown",this._keydown.bind(this));setTimeout(()=>{this.updateEditor()})}get filter(){return this._filter}get canApply(){return this._canApply}set canApply(e){if(e!=this._canApply){this._canApply=e;this.onCanApplyChanged()}}updateEditor(){let 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}let i=this._filter.and;this._checkRadio(this._btnAnd,i);this._checkRadio(this._btnOr,!i)}clearEditor(){this._cmb1.selectedValue=this._cmb2.selectedValue=null;this._val1.text=this._val2.text=null;this._checkRadio(this._btnAnd,!0);this._checkRadio(this._btnOr,!1)}get isEditorClear(){return null==this._cmb1.selectedValue&&!this._val1.text&&null==this._cmb2.selectedValue&&!this._val2.text}updateFilter(){let 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}onCanApplyChanged(e){this.canApplyChanged.raise(this,e)}_getComboValue(e){return e.selectedIndex>-1?e.selectedValue:e.text}_createOperatorCombo(e,t){let i=this._filter.column,l=culture.FlexGridFilter,s=l.stringOperators,a=DataType;this._filter.dataMap||i.dataMap||(i.dataType==a.Date?s=l.dateOperators:i.dataType==a.Number?s=l.numberOperators:i.dataType==a.Boolean&&(s=l.booleanOperators));let r=new input.ComboBox(e,{itemsSource:s,displayMemberPath:"name",selectedValuePath:"op"});setAriaLabel(r.inputElement,t);return r}_createValueInput(e,t){let i=this._filter,l=i.column,s=i.dataMap||l.dataMap,a=null,r=DataType;if(l.dataType==r.Date)(a=i._hasDatePart()?i._hasTimePart()?new input.InputDateTime(e):new input.InputDate(e):new input.InputTime(e)).format=l.format;else if(l.dataType!=r.Number||s){(a=new input.ComboBox(e)).isEditable=!0;if(s){a.itemsSource=s.getDisplayValues();a.caseSensitiveSearch=!!l.grid&&l.grid.caseSensitiveSearch}else l.dataType==r.Boolean&&(a.itemsSource=[!0,!1])}else(a=new input.InputNumber(e)).format=l.format;a.isRequired=!1;setAriaLabel(a.inputElement,t);return a}_btnAndOrChanged(e){let t=e.target==this._btnAnd,i=e.target==this._btnOr;if(t||i){this._checkRadio(this._btnAnd,t);this._checkRadio(this._btnOr,i)}}_checkRadio(e,t){e.checked=t;setAttribute(e,"aria-checked",t.toString());setAttribute(e,"tabindex",t?null:"-1")}_keydown(e){let 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:let i=t?this._btnOr:this._btnAnd;i.click();i.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>';export class FilterCondition{constructor(e){this._op=null;this._filter=e}get operator(){return this._op}set operator(e){this._op=asEnum(e,Operator,!0)}get value(){return this._val}set value(e){this._val=e;this._strVal=isString(e)?this._getCaseString(e):null}get isActive(){switch(this._op){case null:return!1;case Operator.EQ:case Operator.NE:return!0;default:return null!=this._val||null!=this._strVal}}clear(){this.operator=null;this.value=null}apply(e,t,i){let l=this._strVal||this._val;isString(e)&&(e=this._getCaseString(e));isString(l)&&null==e&&(e="");isDate(l)&&(t?l=DateTime.fromDateTime(l,FilterCondition._refDateTime):i&&(l=DateTime.fromDateTime(FilterCondition._refDateTime,l)));let s=Operator;switch(this._op){case null:return!0;case s.EQ:return null!=e&&null!=l?e.valueOf()==l.valueOf():e==l;case s.NE:return null!=e&&null!=l?e.valueOf()!=l.valueOf():e!=l;case s.GT:return e>l;case s.GE:return e>=l;case s.LT:return e<l;case s.LE:return e<=l;case s.BW:return!(null==this._strVal||!isString(e))&&0==e.indexOf(this._strVal);case s.EW:return!!(null!=this._strVal&&isString(e)&&e.length>=this._strVal.length)&&e.substr(e.length-this._strVal.length)==l;case s.CT:return!(null==this._strVal||!isString(e))&&e.indexOf(this._strVal)>-1;case s.NC:return!(null==this._strVal||!isString(e))&&e.indexOf(this._strVal)<0}throw"Unknown operator"}_getCaseString(e){let 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);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={}));export class ValueFilter{constructor(e){this._values=null;this._filterText=null;this._xValueSearch=!0;this._maxValues=250;this._uniqueValues=null;this._sortValues=!0;this._searchType=ValueFilterSearchKind.Excel;this._col=e}get searchType(){return this._searchType}set searchType(e){this._searchType=asEnum(e,ValueFilterSearchKind)}get showValues(){return this._values}set showValues(e){this._values=e}get filterText(){return this._filterText}set filterText(e){this._filterText=asString(e)}get exclusiveValueSearch(){return this._xValueSearch}set exclusiveValueSearch(e){if((e=asBoolean(e))!==this._xValueSearch){this._xValueSearch=asBoolean(e);e&&(this._filterText="")}}get maxValues(){return this._maxValues}set maxValues(e){this._maxValues=asNumber(e,!1,!0)}get uniqueValues(){return this._uniqueValues}set uniqueValues(e){this._uniqueValues=asArray(e)}get sortValues(){return this._sortValues}set sortValues(e){this._sortValues=asBoolean(e)}get dataMap(){return this._map}set dataMap(e){this._map=asType(e,DataMap,!0)}get column(){return this._col}get isActive(){return null!=this._values&&Object.keys(this._values).length>0}apply(e){let 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]}clear(){this.showValues=null;this.filterText=null}getUniqueValues(e=!0){let t=[],i=this.column,l=Globalize.format;if(this.uniqueValues){this.uniqueValues.forEach(e=>{t.push({value:e,text:l(e,i.format)})});return t}let s={},a=i.collectionView,r=a?a.sourceCollection:[];if(e&&a&&a.sourceCollection&&a.filter)try{FlexGridFilter._skipColumn=this._col;let e=[];for(let t=0;t<r.length;t++)a.filter(r[t])&&e.push(r[t]);r=e}finally{FlexGridFilter._skipColumn=null}for(let e=0;e<r.length;e++){let a=i._binding.getValue(r[e]),n=this.dataMap?this.dataMap.getDisplayValue(a)||"":i.dataMap?i.dataMap.getDisplayValue(a)||"":l(a,i.format);if(!s[n]){s[n]=!0;t.push({value:a,text:n})}}return t}implementsInterface(e){return"IColumnFilter"==e}}export class ValueFilterEditor extends Control{constructor(e,t){super(e);this._canApply=!1;this._isFiltering=!1;this.canApplyChanged=new Event;this._filter=asType(t,ValueFilter,!1);let i=this.getTemplate();this.applyTemplate("wj-control wj-valuefilter-editor",i,{_divFilter:"div-filter",_cbSelectAll:"cb-select-all",_spSelectAll:"sp-select-all",_divValues:"div-values"});this._cbSelectAll.tabIndex=0;let l=culture.FlexGridFilter;setText(this._spSelectAll,l.selectAll);let s=this._view=new CollectionView(null,{sortNulls:SortNulls.First,filter:this._filterValues.bind(this)});if(t.sortValues){let e=t.column.dataMap||t.dataMap?"text":"value",i=t.column.dataType!=DataType.Boolean;s.sortDescriptions.push(new SortDescription(e,i))}s.collectionChanged.addHandler(this._updateSelectAllCheck,this);this._filterText="";this._rxFilter=null;this._cmbFilter=new input.ComboBox(this._divFilter,{isRequired:!1,placeholder:l.search});this._cmbFilter.isEditable=!0;this._lbValues=new input.ListBox(this._divValues,{displayMemberPath:"text",checkedMemberPath:"show",itemsSource:this._view,itemFormatter:(e,t)=>t||l.null,checkedItemsChanged:e=>this._updateSelectAllCheck()});setAriaLabel(this._cmbFilter.inputElement,l.ariaLabels.search);setAttribute(this._lbValues.hostElement,"aria-multiselectable",!0);this._cmbFilter.inputElement.addEventListener("input",this._filterTextChanged.bind(this));this._cbSelectAll.addEventListener("click",this._cbSelectAllClicked.bind(this));this.updateEditor();this._initialItems=this._lbValues.checkedItems}get filter(){return this._filter}get canApply(){return this._canApply}set canApply(e){if(e!=this._canApply){this._canApply=e;this.onCanApplyChanged()}}updateEditor(){let e=this._filter.column,t=this._filter.getUniqueValues(!0);this._lbValues.isContentHtml=e.isContentHtml;let i=this._filter.showValues;if(i&&0!=Object.keys(i).length){for(let e in i)for(let i=0;i<t.length;i++)if(t[i].text==e){t[i].show=!0;break}}else t.forEach(e=>e.show=!0);let l=this._filter.filterText||"",s=this._getCaseSensitive();this._cmbFilter.text=l;this._filterText=s?l:l.toLowerCase();this._rxFilter=this._getSearchExp(l,s);let a=this._view;a.pageSize=this._filter.maxValues;a.sourceCollection=t;setTimeout(()=>{this._adjustWidths()},0)}clearEditor(e=!0){this._cmbFilter.text="";this._filterText="";this._rxFilter=null;let t=this._view;t.pageSize=0;t.items.forEach(t=>{t.show=e});t.moveCurrentTo(-1);t.refresh();t.pageSize=this._filter.maxValues}get isEditorClear(){return!this._filterText&&!this._cbSelectAll.indeterminate}_updateFilter(){let e=null,t=this._getItems();if(this._filterText||this._cbSelectAll.indeterminate){e={};for(let i=0;i<t.length;i++){let l=t[i];l.show&&(e[l.text]=!0)}}let i=this._filter;i.showValues=e;i.filterText=this._filterText}updateFilter(){this._isFiltering?setTimeout(()=>{this._updateFilter()},Control._SEARCH_DELAY+100):this._updateFilter()}onCanApplyChanged(e){this.canApplyChanged.raise(this,e)}_getCaseSensitive(){let e=this._filter.column,t=e?e.grid:null;return t&&t.caseSensitiveSearch}_getItems(){return this._filter.exclusiveValueSearch?this._view.items:this._view.sourceCollection}_filterTextChanged(){""===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(()=>{let e=this._cmbFilter.text,t=this._getCaseSensitive();t||(e=e.toLowerCase());if(e!=this._filterText){this._filterText=e;this._rxFilter=this._getSearchExp(e,t);this._view.refresh();if(!e){let e=this._initialItems;if(e.length&&this._view.sourceCollection.indexOf(e[0])>-1){this._lbValues.checkedItems=this._initialItems;this._updateSelectAllCheck();this._isFiltering=!1;return}}if(this._filter.exclusiveValueSearch){this._cbSelectAll.checked=!0;this._cbSelectAllClicked()}else this._updateSelectAllCheck()}this._isFiltering=!1},Control._SEARCH_DELAY)}_getSearchExp(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)}}_getTextSearchExp(e,t){return new RegExp(escapeRegExp(e),t?"":"i")}_getRegexSearchExp(e,t){try{return new RegExp(e,t?"s":"is")}catch(e){return new RegExp("(?!)",t?"s":"is")}}_getExcelSearchExp(e,t){let 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(e=>".").join("")}))).replace(/(\*+)/g,(function(e,t){return Array.from(t).map(e=>".*").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")}_filterValues(e){let t=this._rxFilter;return null==t||null==e||t.test(e.text)}_cbSelectAllClicked(){let e=this._cbSelectAll.checked,t=this._divValues.scrollTop,i=this._getItems();for(let t=0;t<i.length;t++)i[t].show=e;this._view.refresh();this._divValues.scrollTop=t;setTimeout(()=>{this._adjustWidths()},0)}_updateSelectAllCheck(){let e=this._getItems(),t=0,i=0;for(let l=0;l<e.length;l++){e[l].show?t++:i++;if(t&&i)break}setChecked(this._cbSelectAll,t&&i?null:t>0);this.canApply=t>0}_adjustWidths(){let e=this._lbValues.hostElement;if(e&&e.offsetHeight>0){let t=0,i=e.querySelectorAll(".wj-listbox-item label");if(i.length){for(let e=0;e<i.length;e++)t=Math.max(t,i[e].scrollWidth);if(t){let i=e.querySelectorAll(".wj-listbox-item");if(i.length){let e=i[0],l=getComputedStyle(e),s=parseFloat(l.paddingLeft)+parseFloat(l.paddingRight);for(let e=0;e<i.length;e++)i[e].style.width=t+s+"px"}}}}}get exceedsMaxValues(){return!(!this._view||!this._view._view)&&this._view._view.length>this.filter.maxValues}}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>';export class ColumnFilter{constructor(e,t){this._owner=e;this._col=t;this._valueFilter=new ValueFilter(t);this._valueFilter.exclusiveValueSearch=e.exclusiveValueSearch;this._conditionFilter=new ConditionFilter(t);e.exclusiveValueSearchChanged.addHandler(e=>{this._valueFilter.exclusiveValueSearch=e.exclusiveValueSearch})}get filterType(){return null!=this._filterType?this._filterType:this._owner.defaultFilterType}set filterType(e){if((e=asEnum(e,FilterType,!0))!=this._filterType){let t=this.isActive;this.clear();this._filterType=e;t?this._owner.apply():this._col.grid&&this._col.grid.invalidate()}}get dataMap(){return this.conditionFilter.dataMap||this.valueFilter.dataMap}set dataMap(e){this.conditionFilter.dataMap=e;this.valueFilter.dataMap=e}get valueFilter(){return this._valueFilter}get conditionFilter(){return this._conditionFilter}get column(){return this._col}get isActive(){return this._conditionFilter.isActive||this._valueFilter.isActive}apply(e){return this._conditionFilter.apply(e)&&this._valueFilter.apply(e)}clear(){this._valueFilter.clear();this._conditionFilter.clear()}implementsInterface(e){return"IColumnFilter"==e}}_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.",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}]});export class ColumnFilterEditor extends Control{constructor(e,t,i=!0){super(e,null,!0);this.filterChanged=new Event;this.buttonClicked=new Event;this._filter=asType(t,ColumnFilter);let l=this.getTemplate();this.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"});let s=culture.FlexGridFilter,a=s.ariaLabels,r=this.hostElement,n=this.filter.column,o=n.grid.collectionView;setAttribute(r,"role","dialog");setAriaLabel(r,a.dialog+" "+n.header);setAriaLabel(this._btnAsc,a.asc);setAriaLabel(this._btnDsc,a.dsc);setText(this._btnAsc,s.ascending);setText(this._btnDsc,s.descending);setText(this._aVal,s.values);setText(this._aCnd,s.conditions);setText(this._aExceeds,s.exceedsMaxValues);setText(this._btnApply,s.apply);setText(this._btnCancel,s.cancel);setText(this._btnClear,s.clear);let d=this.filter.conditionFilter.isActive||0==(t.filterType&FilterType.Value)?FilterType.Condition:FilterType.Value;this._showFilter(d);if(!n.allowSorting){enable(this._btnAsc,!1);enable(this._btnDsc,!1)}i&&o&&o.canSort||(this._divSort.style.display="none");this._updateSortButtonState();let h=this._btnClicked.bind(this),u="click";this._btnApply.addEventListener(u,h);this._btnCancel.addEventListener(u,h);this._btnClear.addEventListener(u,h);this._btnAsc.addEventListener(u,h);this._btnDsc.addEventListener(u,h);this._aVal.addEventListener(u,h);this._aCnd.addEventListener(u,h);if(!this._popup){this._initPopup();let e=this.hostElement.querySelector('[wj-part="a-exceeds"]');e&&e.addEventListener(u,()=>{this._popup.show(!0)})}this.addEventListener(r,"keydown",e=>{if(!e.defaultPrevented){let t=e.target.tagName.match(/^(a|button)$/i);switch(e.keyCode){case Key.Space:if(t){this._btnClicked(e);e.preventDefault()}break;case Key.Enter:if(t)this._btnClicked(e);else{this.updateFilter();this.onFilterChanged();this.onButtonClicked()}e.preventDefault();break;case Key.Escape:this.onButtonClicked();e.preventDefault();break;case Key.Tab:moveFocus(this.hostElement,e.shiftKey?-1:1);e.preventDefault()}}});this.addEventListener(window,"resize",()=>{this.isTouching||this._wasTouching||this.onButtonClicked()})}get filter(){return this._filter}updateEditor(){if(this._edtVal){this._edtVal.updateEditor();this._updateExceedsLinkVisibility()}this._edtCnd&&this._edtCnd.updateEditor()}updateFilter(){switch(this._getFilterType()){case FilterType.Value:this._edtVal.updateFilter();this.filter.conditionFilter.clear();break;case FilterType.Condition:this._edtCnd.updateFilter();this.filter.valueFilter.clear()}}onFilterChanged(e){this.filterChanged.raise(this,e)}onButtonClicked(e){this.buttonClicked.raise(this,e)}_showFilter(e){this._wasTouching=this.isTouching;if(e==FilterType.Value&&null==this._edtVal){this._edtVal=new ValueFilterEditor(this._divEdtVal,this.filter.valueFilter);this._edtVal.canApplyChanged.addHandler(e=>{enable(this._btnApply,this._edtVal.canApply)})}if(e==FilterType.Condition&&null==this._edtCnd){this._edtCnd=new ConditionFilterEditor(this._divEdtCnd,this.filter.conditionFilter);this._edtCnd.canApplyChanged.addHandler(e=>{enable(this._btnApply,this._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();this._updateExceedsLinkVisibility();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);this._aExceeds&&(this._aExceeds.style.display="none")}let t=this._divType.style;switch(this.filter.filterType){case FilterType.None:case FilterType.Condition:case FilterType.Value:t.display="none";break;default:t.display=""}}_enableLink(e,t){toggleClass(e,"wj-state-disabled",!t);setAttribute(e,"href",t?"":null);setAttribute(e,"disabled",t?null:"disabled")}_updateSortButtonState(){let e=this.filter.column,t=e?e.currentSort:"",i="wj-state-active";toggleClass(this._btnAsc,i,"+"==t);toggleClass(this._btnDsc,i,"-"==t)}_getFilterType(){let e=FilterType;return"none"!=this._divEdtVal.style.display?e.Value:e.Condition}_btnClicked(e){let t=e.target;e.preventDefault();e.stopPropagation();if(!hasClass(t,"wj-state-disabled"))if(t!=this._aVal)if(t!=this._aCnd){if(t==this._btnAsc||t==this._btnDsc){let t=this.filter.column,i=t.sortMemberPath||t.binding,l=t.grid.collectionView.sortDescriptions;l.deferUpdate(()=>{l.clear();l.push(new SortDescription(i,e.target==this._btnAsc))});this._updateSortButtonState()}if(t==this._btnApply){this.updateFilter();this.onFilterChanged()}else if(t==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)}}_updateExceedsLinkVisibility(){if(this._edtVal&&this._aExceeds){let e=this._edtVal.exceedsMaxValues;this._aExceeds.style.display=e?"":"none";this._aExceeds.textContent=e?culture.FlexGridFilter.exceedsMaxValues:"";this._aExceeds.href=e?"javascript:void(0)":""}}_initPopup(){let 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>';_registerModule("wijmo.grid.filter",selfModule);
14
+ import{Column,DataMap,FlexGrid,DataMapEditor,CellRange,CellRangeEventArgs,CellType,_NewRowTemplate}from"@grapecity/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,GlyphClsNames,InputFormElementsClsNames,UtilitesClsNames,setText,escapeRegExp,setChecked,SortDescription,SortNulls,ControlClsNames,getUniqueId,_addCultureInfo,enable,moveFocus,hasClass,addClass,ControlStateClsNames,_registerModule}from"@grapecity/wijmo";import{DropDown,DropDownClsNames}from"@grapecity/wijmo.input";import*as input from"@grapecity/wijmo.input";import*as selfModule from"@grapecity/wijmo.grid.filter";export const ColumnFilterEditorClsNames={filterType:"wj-filtertype",hostElement:"wj-columnfiltereditor",sortButtons:"wj-sort-buttons"};export const ConditionFilterEditorClsNames={hostElement:"wj-conditionfilter-editor"};export const FlexGridFilterClsNames={elemFilter:"wj-elem-filter",filter:"wj-filter",filterOff:"wj-filter-off",filterOn:"wj-filter-on",hostElement:"wj-columnfiltereditor"};export const ValueFilterEditorClsNames={hostElement:"wj-valuefilter-editor",customModalText:"wj-custom-modal-text",modalFooter:"wj-valuefilter-modal-footer"};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={}));export class FlexGridFilter{constructor(e,t){this._showIcons=!0;this._showSort=!0;this._defFilterType=FilterType.Both;this._xValueSearch=!0;this._includeUpdatedRowsInFilter=!1;this._showIncludeSelection=!1;this.filterApplied=new Event;this.editingFilter=new Event;this.filterChanging=new Event;this.filterChanged=new Event;this.exclusiveValueSearchChanged=new Event;this._showIncludeSelectionChanged=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));let 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()}_init(){const e=this.grid,_excludeRowFromFilter=e=>{let t=this.grid;const i=this.excludedRowsSet;if(null!=t&&t.rows.length>e)if(t.itemsSource)if(t.rows[e]instanceof _NewRowTemplate){let l=t.editableCollectionView.currentAddItem||t.rows[e].dataItem;l&&i.add(l)}else t.rows[e].dataItem&&i.add(t.rows[e].dataItem);else t.rows[e]&&i.add(t.rows[e])};e.rowChanged&&e.rowChanged.addHandler((e,t)=>{t.added&&_excludeRowFromFilter(t.index)});e.rowEditEnding.addHandler((e,t)=>{_excludeRowFromFilter(t.row)});e.cellEditEnded.addHandler((e,t)=>{_excludeRowFromFilter(t.row)})}get excludedRowsSet(){let e=this.grid;e.selectedSheet&&(e=e.selectedSheet);e._newAddedRowsSet||(e._newAddedRowsSet=new WeakSet);return e._newAddedRowsSet}set excludedRowsSet(e){let t=this.grid;t.selectedSheet&&(t=t.selectedSheet);t._newAddedRowsSet=e}get grid(){return this._g}get filterColumns(){return this._filterColumns}set filterColumns(e){this._filterColumns=asArray(e);this.clear()}get showFilterIcons(){return this._showIcons}set showFilterIcons(e){if(e!=this.showFilterIcons){this._showIcons=asBoolean(e);this._g&&this._g.invalidate()}}get showSortButtons(){return this._showSort}set showSortButtons(e){this._showSort=asBoolean(e)}get reApplyFilterOnUpdate(){return this._includeUpdatedRowsInFilter}set reApplyFilterOnUpdate(e){e!==this._includeUpdatedRowsInFilter&&(this._includeUpdatedRowsInFilter=asBoolean(e))}get showIncludeSelection(){return this._showIncludeSelection}set showIncludeSelection(e){if(e!=this._showIncludeSelection){this._showIncludeSelection=asBoolean(e,!1);this._onShowIncludeSelectionChanged()}}getColumnFilter(e,t=!0){if(e=this._asColumn(e)){for(let t=0;t<this._filters.length;t++)if(this._filters[t].column==e)return this._filters[t];if(t&&e.binding){let t=new ColumnFilter(this,e);this._filters.push(t);return t}}return null}get defaultFilterType(){return this._defFilterType}set defaultFilterType(e){if((e=asEnum(e,FilterType,!1))!=this.defaultFilterType){this._defFilterType=e;this._g.invalidate();this.clear()}}get exclusiveValueSearch(){return this._xValueSearch}set exclusiveValueSearch(e){if((e=asBoolean(e))!==this._xValueSearch){this._xValueSearch=e;this.onExclusiveValueSearchChanged()}}get filterDefinition(){let e={defaultFilterType:this.defaultFilterType,filters:[]};this._filters.forEach(t=>{let i=t.conditionFilter,l=t.valueFilter,s=l.uniqueValues&&l.uniqueValues.length;if(t&&t.column&&t.column.binding&&(t.isActive||s||t.filterType!=this.defaultFilterType)){let a={binding:t.column.binding};if(i.isActive){let e=i.condition1,l=i.condition2;a={binding:t.column.binding,type:"condition",condition1:{operator:e.operator,value:e.value},and:i.and,condition2:{operator:l.operator,value:l.value}}}else(l.isActive||s)&&(a={binding:t.column.binding,type:"value",uniqueValues:l.uniqueValues,sortValues:l.sortValues,maxValues:l.maxValues,exclusiveValueSearch:l.exclusiveValueSearch,showValues:l.showValues});t.filterType!=this.defaultFilterType&&(a.filterType=t.filterType);e.filters.push(a)}});return JSON.stringify(e)}set filterDefinition(e){e=asString(e);this.clear();if(e){let t=JSON.parse(e);this.defaultFilterType=t.defaultFilterType;for(let e=0;e<t.filters.length;e++){let i=t.filters[e],l=this._asColumn(i.binding);l||(l=new Column({binding:i.binding}));let s=this.getColumnFilter(l,!0);if(s){null!=i.filterType&&(s.filterType=asEnum(i.filterType,FilterType));switch(i.type){case"condition":let e=s.conditionFilter;e.condition1.value=l.dataType==DataType.Date?changeType(i.condition1.value,l.dataType,null):i.condition1.value;e.condition1.operator=i.condition1.operator;e.and=i.and;e.condition2.value=l.dataType==DataType.Date?changeType(i.condition2.value,l.dataType,null):i.condition2.value;e.condition2.operator=i.condition2.operator;break;case"value":let t=s.valueFilter;t.uniqueValues=i.uniqueValues;["sortValues","maxValues","exclusiveValueSearch"].forEach(e=>{null!=i[e]&&(t[e]=i[e])});t.showValues=i.showValues}}}}this.apply()}get activeEditor(){return Control.getControl(this._divEdt)}editColumnFilter(e,t,i){let l=this._g;this.closeEditor();e=this._asColumn(e);let s=new CellRangeEventArgs(l.cells,new CellRange(-1,e.index));if(!this.onEditingFilter(s))return;let a=createElement(`<div class="${DropDownClsNames.dropDownPanel}"></div>`),n=this.getColumnFilter(e),r=new ColumnFilterEditor(a,n,this.showSortButtons);this._divEdt=a;this._edtCol=e;l.rightToLeft&&(a.dir="rtl");if(!this.onFilterChanging(s)){this._divEdt=this._edtCol=null;return}s.cancel=!0;r.filterChanged.addHandler(()=>{s.cancel=!1;setTimeout(()=>{if(!s.cancel){this.excludedRowsSet=null;this.apply()}},r._edtVal&&r._edtVal._isFiltering?Control._SEARCH_DELAY+200:0)});r.buttonClicked.addHandler(()=>{this.closeEditor();l.focus();this.onFilterChanged(s)});r.lostFocus.addHandler(()=>{setTimeout(()=>{let e=Control.getControl(this._divEdt);e&&!e.containsFocus()&&this.closeEditor()},10)});let o=t?t.col:e.index,d=l.columns[o];t||d&&d.binding==e.binding||(o=l.selection.leftCol);l._edtHdl._commitRowEdits();l.scrollIntoView(-1,o,!0);let h=l.columnHeaders,u=t&&t.panel&&h&&t.panel._uid==h._uid?t.row:h.rows.length-1,c=o,p=i||h.getCellElement(u,c),_=p?null:h.getCellBoundingRect(u,c);p?showPopup(a,p,!1,!1,!1):showPopup(a,_);this._setAriaExpanded(p,!0);this._setAriaExpanded(l.cells.getCellElement(-1,c),!0);let m=r.hostElement.querySelectorAll("input");for(let e=0;e<m.length;e++){let t=m[e];if(t.offsetHeight>0&&t.tabIndex>-1&&!t.disabled){t.focus();break}}r.containsFocus()||r.focus()}_setAriaExpanded(e,t){if(e){var i=e.querySelector("."+FlexGridFilter._WJC_FILTER);setAttribute(i,"aria-expanded",t)}}closeEditor(){let e=this._g,t=Control.getControl(this._divEdt),i=this._edtCol;t&&hidePopup(t.hostElement,()=>{t.dispose()});if(i){let t=e.columnHeaders,l=t.rows.length?t.getCellElement(t.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}apply(){let e=this._g.collectionView;if(e){let t=this._g.editableCollectionView;if(t){t.commitEdit();t.commitNew()}e.filter=this._filter.bind(this)}let t=e?e.updateFilterDefinition:null;isFunction(t)&&t.call(e,this);this.onFilterApplied()}clear(){if(this._filters.length){this._filters=[];this.excludedRowsSet=null;this.apply()}}onFilterApplied(e){this.filterApplied.raise(this,e)}onEditingFilter(e){this.editingFilter.raise(this,e);return!e.cancel}onFilterChanging(e){this.filterChanging.raise(this,e);return!e.cancel}onFilterChanged(e){this.filterChanged.raise(this,e)}onExclusiveValueSearchChanged(e){this.exclusiveValueSearchChanged.raise(this,e)}_onShowIncludeSelectionChanged(e){this._showIncludeSelectionChanged.raise(this,e)}_asColumn(e){return isString(e)?this._g.getColumn(e,!0):isNumber(e)?this._g.columns[e]:asType(e,Column,!1)}_filter(e){const t=this.excludedRowsSet;if(!this.reApplyFilterOnUpdate&&t.has(e))return!0;let i=this._filters;for(let t=0;t<i.length;t++){let l=i[t];if(l.column!=FlexGridFilter._skipColumn&&!l.apply(e))return!1}return!0}_formatItem(e,t){if(t.panel==e.columnHeaders){let e=this._g,i=e.getMergedRange(t.panel,t.row,t.col)||new CellRange(t.row,t.col),l=e.columns[i.col],s=e._getBindingColumn(t.panel,t.row,l),a=t.cell;if(i.row2==t.panel.rows.length-1||l!=s){let i=this.getColumnFilter(s,this.defaultFilterType!=FilterType.None),n=this._filterColumns;n&&n.length&&n.indexOf(s.binding)<0&&n.indexOf(s.name)<0&&(i=null);if(i){toggleClass(a,FlexGridFilterClsNames.filterOn,i.isActive);toggleClass(a,FlexGridFilterClsNames.filterOff,!i.isActive)}else{removeClass(a,FlexGridFilterClsNames.filterOn);removeClass(a,FlexGridFilterClsNames.filterOff)}if(i&&i.filterType!=FilterType.None){this._showIcons&&this._addFilterButton(s,i,a);0==t.row&&(a=e.cells.getCellElement(-1,t.col))&&this._addFilterButton(l,i,a)}}}}_addFilterButton(e,t,i){let l=FlexGridFilter._WJC_FILTER,s=createElement(`<button class="${InputFormElementsClsNames.btn} ${GlyphClsNames.btnGlyph} ${UtilitesClsNames.right} `+l+'" type="button" tabindex="-1">'+`<span class=${GlyphClsNames.filter}></span>`+"</button>");setAriaLabel(s,culture.FlexGridFilter.ariaLabels.edit+" "+e.header);setAttribute(s,"aria-haspopup","dialog");setAttribute(s,"aria-expanded",!1);setAttribute(s,"aria-describedby",e.describedById);setAttribute(s,"aria-pressed",t.isActive);if(!i.querySelector("."+l)){1==i.children.length&&(i=i.querySelector("div")||i);i.insertBefore(s,i.firstChild)}}_mousedown(e){this._edtColPrev=this._edtCol}_click(e){if(this._toggleEditor(e)){e.stopPropagation();e.preventDefault()}}_toggleEditor(e){if(!e.defaultPrevented&&0==e.button)if(closestClass(e.target,FlexGridFilter._WJC_FILTER)){let t=this._g,i=t.hitTest(e.target);i.panel||(i=t.hitTest(e));if(i.panel&&t.columnHeaders&&t.cells&&(i.panel._uid==t.columnHeaders._uid||i.panel._uid==t.cells._uid&&-1==i.row)){let e=t.getMergedRange(i.panel,i.row,i.col)||new CellRange(i.row,i.col),l=t.columns[e.col],s=t._getBindingColumn(i.panel,i.row,l);if(this._divEdt&&this._edtCol==s){this.closeEditor();t.focus()}else s!=this._edtColPrev&&setTimeout(()=>{this.editColumnFilter(s,i)},this._divEdt?100:0);return!0}}else this.closeEditor();return!1}_keydown(e){if(!e.defaultPrevented&&!e.ctrlKey&&e.altKey&&(e.keyCode==Key.Down||e.keyCode==Key.Up)){let t=this.grid,i=t.selection,l=i.col>-1?t.columns[i.col]:null,s=l?t._getBindingColumn(t.cells,i.row,l):null,a=s&&s.dataMap&&s.dataMapEditor==DataMapEditor.DropDownList;if(this.filterColumns&&this.filterColumns.length>0&&!this.filterColumns.includes(s._binding._path)){e.preventDefault();return!1}if(t.activePanelType!=CellType.Cell&&t.activePanelType!=CellType.ColumnHeader){e.preventDefault();return!1}s&&s.editor instanceof DropDown&&(a=!0);if(s&&!a){let t=this.getColumnFilter(s,!1);if(t&&t.filterType!=FilterType.None){this.editColumnFilter(s);e.preventDefault();e.stopPropagation()}}}}}FlexGridFilter._WJC_FILTER=FlexGridFilterClsNames.elemFilter;export const empty={};export class ConditionFilter{constructor(e){this._c1=new FilterCondition(this);this._c2=new FilterCondition(this);this._and=!0;this._col=e}get condition1(){return this._c1}get condition2(){return this._c2}get and(){return this._and}set and(e){this._and=asBoolean(e)}get dataMap(){return this._map}set dataMap(e){this._map=asType(e,DataMap,!0)}get column(){return this._col}get isActive(){return this._c1.isActive||this._c2.isActive}apply(e){let t=this._col,i=this._c1,l=this._c2,s=!1,a=!1;if(!t||!t._binding||!this.isActive)return!0;e=t._binding.getValue(e);let n=this.dataMap||t.dataMap;if(n)e=n.getDisplayValue(e);else if(isDate(e)){s=!this._hasTimePart();a=!this._hasDatePart();let t=FilterCondition._refDateTime;s?e=DateTime.fromDateTime(e,t):a&&(e=DateTime.fromDateTime(t,e))}else if(isNumber(e)){let i=Globalize,l=t.format,s=i.formatNumber(e,l);e=i.parseFloat(s,l)}let r=i.apply(e,s,a),o=l.apply(e,s,a);return i.isActive&&l.isActive?this._and?r&&o:r||o:i.isActive?r:!l.isActive||o}clear(){this._c1.clear();this._c2.clear();this.and=!0}_hasDatePart(){let e=this._col.format;if(!e)return!0;e=culture.Globalize.calendar.patterns[e]||e;return/[yMd]+/.test(e)}_hasTimePart(){let e=this._col.format;if(!e)return!1;e=culture.Globalize.calendar.patterns[e]||e;return/[Hmst]+/.test(e)}implementsInterface(e){return"IColumnFilter"==e}}export class ConditionFilterEditor extends Control{constructor(e,t){super(e);this._canApply=!1;this.canApplyChanged=new Event;this._filter=asType(t,ConditionFilter,!1);let i=this.getTemplate();this.applyTemplate(`${ControlClsNames.hostElement} ${ConditionFilterEditorClsNames.hostElement}`,i,{_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"});let l=culture.FlexGridFilter,s=l.ariaLabels;setAriaLabel(this._btnAnd,s.and);setAriaLabel(this._btnOr,s.or);setText(this._divHdr,l.header);setText(this._spAnd,l.and);setText(this._spOr,l.or);const a=getUniqueId("cmb1");this._divHdr.htmlFor=a;this._divCmb1.id=a;this._cmb1=this._createOperatorCombo(this._divCmb1,s.op1);this._cmb2=this._createOperatorCombo(this._divCmb2,s.op2);this._val1=this._createValueInput(this._divVal1,s.val1);this._val2=this._createValueInput(this._divVal2,s.val2);this._val1.isDisabled=!0;this._cmb1.selectedIndexChanged.addHandler((e,t)=>{this._val1.isDisabled=null==e.selectedValue;this.canApply=!this._val1.isDisabled||!this._val2.isDisabled});this._val2.isDisabled=!0;this._cmb2.selectedIndexChanged.addHandler((e,t)=>{this._val2.isDisabled=null==e.selectedValue;this.canApply=!this._val1.isDisabled||!this._val2.isDisabled});let n=this.hostElement;this.addEventListener(n,"change",this._btnAndOrChanged.bind(this));this.addEventListener(n,"keydown",this._keydown.bind(this));setTimeout(()=>{this.updateEditor()})}static get controlTemplate(){ConditionFilterEditor._ctrlTemplate||(ConditionFilterEditor._ctrlTemplate='<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._ctrlTemplate}static set controlTemplate(e){ConditionFilterEditor._ctrlTemplate=e}get filter(){return this._filter}get canApply(){return this._canApply}set canApply(e){if(e!=this._canApply){this._canApply=e;this.onCanApplyChanged()}}updateEditor(){let 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}let i=this._filter.and;this._checkRadio(this._btnAnd,i);this._checkRadio(this._btnOr,!i)}clearEditor(){this._cmb1.selectedValue=this._cmb2.selectedValue=null;this._val1.text=this._val2.text=null;this._checkRadio(this._btnAnd,!0);this._checkRadio(this._btnOr,!1)}get isEditorClear(){return null==this._cmb1.selectedValue&&!this._val1.text&&null==this._cmb2.selectedValue&&!this._val2.text}updateFilter(){let 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}onCanApplyChanged(e){this.canApplyChanged.raise(this,e)}_getComboValue(e){return e.selectedIndex>-1?e.selectedValue:e.text}_createOperatorCombo(e,t){let i=this._filter.column,l=culture.FlexGridFilter,s=l.stringOperators,a=DataType;this._filter.dataMap||i.dataMap||(i.dataType==a.Date?s=l.dateOperators:i.dataType==a.Number?s=l.numberOperators:i.dataType==a.Boolean&&(s=l.booleanOperators));let n=new input.ComboBox(e,{itemsSource:s,displayMemberPath:"name",selectedValuePath:"op"});setAriaLabel(n.inputElement,t);return n}_createValueInput(e,t){let i=this._filter,l=i.column,s=i.dataMap||l.dataMap,a=null,n=DataType;if(l.dataType==n.Date)(a=i._hasDatePart()?i._hasTimePart()?new input.InputDateTime(e):new input.InputDate(e):new input.InputTime(e)).format=l.format;else if(l.dataType!=n.Number||s){(a=new input.ComboBox(e)).isEditable=!0;a.trimText=!1;if(s){a.itemsSource=s.getDisplayValues();a.caseSensitiveSearch=!!l.grid&&l.grid.caseSensitiveSearch}else l.dataType==n.Boolean&&(a.itemsSource=[!0,!1])}else(a=new input.InputNumber(e)).format=l.format;a.isRequired=!1;setAriaLabel(a.inputElement,t);return a}_btnAndOrChanged(e){let t=e.target==this._btnAnd,i=e.target==this._btnOr;if(t||i){this._checkRadio(this._btnAnd,t);this._checkRadio(this._btnOr,i)}}_checkRadio(e,t){e.checked=t;setAttribute(e,"aria-checked",t.toString());setAttribute(e,"tabindex",t?null:"-1")}_keydown(e){let 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:let i=t?this._btnOr:this._btnAnd;i.click();i.focus();e.preventDefault()}}}ConditionFilterEditor._ctrlTemplate="";export class FilterCondition{constructor(e){this._op=null;this._filter=e}get operator(){return this._op}set operator(e){this._op=asEnum(e,Operator,!0)}get value(){return this._val}set value(e){this._val=e;this._strVal=isString(e)?this._getCaseString(e):null}get isActive(){switch(this._op){case null:return!1;case Operator.EQ:case Operator.NE:return!0;default:return null!=this._val||null!=this._strVal}}clear(){this.operator=null;this.value=null}apply(e,t,i){let l=this._strVal||this._val;isString(e)&&(e=this._getCaseString(e));isString(l)&&null==e&&(e="");isDate(l)&&(t?l=DateTime.fromDateTime(l,FilterCondition._refDateTime):i&&(l=DateTime.fromDateTime(FilterCondition._refDateTime,l)));let s=Operator;switch(this._op){case null:return!0;case s.EQ:return null!=e&&null!=l?e.valueOf()==l.valueOf():e==l;case s.NE:return null!=e&&null!=l?e.valueOf()!=l.valueOf():e!=l;case s.GT:return e>l;case s.GE:return e>=l;case s.LT:return e<l;case s.LE:return e<=l;case s.BW:return!(null==this._strVal||!isString(e))&&0==e.indexOf(this._strVal);case s.EW:return!!(null!=this._strVal&&isString(e)&&e.length>=this._strVal.length)&&e.substr(e.length-this._strVal.length)==l;case s.CT:return!(null==this._strVal||!isString(e))&&e.indexOf(this._strVal)>-1;case s.NC:return!(null==this._strVal||!isString(e))&&e.indexOf(this._strVal)<0;case s.NBW:return!(null==this._strVal||!isString(e))&&0!==e.indexOf(this._strVal);case s.NEW:return!(null==this._strVal||!isString(e))&&e.substring(e.length-this._strVal.length)!==l}throw"Unknown operator"}_getCaseString(e){let 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);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";e[e.NBW=10]="NBW";e[e.NEW=11]="NEW"}(Operator||(Operator={}));export var ValueFilterSearchKind;!function(e){e[e.Text=0]="Text";e[e.Regex=1]="Regex";e[e.Excel=2]="Excel"}(ValueFilterSearchKind||(ValueFilterSearchKind={}));export class ValueFilter{constructor(e){this._values=null;this._filterText=null;this._xValueSearch=!0;this._maxValues=250;this._uniqueValues=null;this._sortValues=!0;this._searchType=ValueFilterSearchKind.Excel;this._showIncludeSelection=!1;this._col=e}get searchType(){return this._searchType}set searchType(e){this._searchType=asEnum(e,ValueFilterSearchKind)}get showValues(){return this._values}set showValues(e){this._values=e}get filterText(){return this._filterText}set filterText(e){this._filterText=asString(e)}get exclusiveValueSearch(){return this._xValueSearch}set exclusiveValueSearch(e){if((e=asBoolean(e))!==this._xValueSearch){this._xValueSearch=asBoolean(e);e&&(this._filterText="")}}get maxValues(){return this._maxValues}set maxValues(e){this._maxValues=asNumber(e,!1,!0)}get uniqueValues(){return this._uniqueValues}set uniqueValues(e){this._uniqueValues=asArray(e)}get sortValues(){return this._sortValues}set sortValues(e){this._sortValues=asBoolean(e)}get dataMap(){return this._map}set dataMap(e){this._map=asType(e,DataMap,!0)}get showIncludeSelection(){return this._showIncludeSelection}set showIncludeSelection(e){e!=this._showIncludeSelection&&(this._showIncludeSelection=asBoolean(e,!1))}get column(){return this._col}get isActive(){return null!=this._values&&Object.keys(this._values).length>0}apply(e){let 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]}clear(){this.showValues=null;this.filterText=null}getUniqueValues(e=!0){let t=[],i=this.column,l=Globalize.format;if(this.uniqueValues){this.uniqueValues.forEach(e=>{t.push({value:e,text:l(e,i.format)})});return t}let s={},a=i.collectionView,n=a?a.sourceCollection:[];if(e&&a&&a.sourceCollection&&a.filter)try{FlexGridFilter._skipColumn=this._col;let e=[];for(let t=0;t<n.length;t++)a.filter(n[t])&&e.push(n[t]);n=e}finally{FlexGridFilter._skipColumn=null}for(let e=0;e<n.length;e++){let a=i._binding.getValue(n[e]),r=this.dataMap?this.dataMap.getDisplayValue(a)||"":i.dataMap?i.dataMap.getDisplayValue(a)||"":l(a,i.format);if(!s[r]){s[r]=!0;t.push({value:a,text:r})}}return t}implementsInterface(e){return"IColumnFilter"==e}}export class ValueFilterEditor extends Control{constructor(e,t){super(e);this._canApply=!1;this._isFiltering=!1;this.canApplyChanged=new Event;this._filter=asType(t,ValueFilter,!1);let i=this.getTemplate();this.applyTemplate(`${ControlClsNames.hostElement} ${ValueFilterEditorClsNames.hostElement}`,i,{_divFilter:"div-filter",_cbSelectAll:"cb-select-all",_spSelectAll:"sp-select-all",_cbIncludeSel:"cb-include-sel",_spIncludeSel:"sp-include-sel",_lblIncludeSel:"lbl-include-sel",_divOptions:"div-options",_divValues:"div-values",_divExceeds:"div-exceeds",_aExceeds:"a-exceeds"});this._cbSelectAll.tabIndex=0;this._cbIncludeSel.tabIndex=0;let l=culture.FlexGridFilter;setText(this._spSelectAll,l.selectAll);setText(this._spIncludeSel,l.includeSelection);setText(this._aExceeds,l.exceedsMaxValues);let s=this._view=new CollectionView(null,{sortNulls:SortNulls.First,filter:this._filterValues.bind(this)});if(t.sortValues){let e=t.column.dataMap||t.dataMap?"text":"value",i=t.column.dataType!=DataType.Boolean;s.sortDescriptions.push(new SortDescription(e,i))}s.collectionChanged.addHandler(this._updateSelectAllCheck,this);this._filterText="";this._rxFilter=null;this._cmbFilter=new input.ComboBox(this._divFilter,{trimText:!1,isRequired:!1,placeholder:l.search});this._cmbFilter.isEditable=!0;this._lbValues=new input.ListBox(this._divValues,{displayMemberPath:"text",checkedMemberPath:"show",itemsSource:this._view,itemFormatter:(e,t)=>t||l.null,checkedItemsChanged:e=>this._updateSelectAllCheck()});setAttribute(this._divValues,"aria-label",culture.FlexGridFilter.ariaLabels.listBox);setAriaLabel(this._cmbFilter.inputElement,l.ariaLabels.search);setAttribute(this._lbValues.hostElement,"aria-multiselectable",!0);this._cmbFilter.inputElement.addEventListener("input",this._filterTextChanged.bind(this));this._cbSelectAll.addEventListener("click",this._cbSelectAllClicked.bind(this));if(!this._popup){this._initPopup();this._aExceeds&&this.addEventListener(this._aExceeds,"click",e=>{e.preventDefault();this._popup.show(!0)})}this.updateEditor();this._filter.showValues?this._initialItems=s.sourceCollection.filter(e=>this._filter.showValues[e.text||e.value]||!1):this._initialItems=this._lbValues.checkedItems}static get controlTemplate(){ValueFilterEditor._ctrlTemplate||(ValueFilterEditor._ctrlTemplate='<div><div wj-part="div-filter"></div>'+`<div wj-part="div-options" class="${input.ListBoxClsNames.listBoxItem}">`+'<label><input wj-part="cb-select-all" type="checkbox"> <span wj-part="sp-select-all"></span></label><br /><label wj-part="lbl-include-sel"><input wj-part="cb-include-sel" type="checkbox"> <span wj-part="sp-include-sel"></span></label></div><div wj-part="div-values"></div><div wj-part="div-exceeds"><a wj-part="a-exceeds"></a></div></div>');return ValueFilterEditor._ctrlTemplate}static set controlTemplate(e){ValueFilterEditor._ctrlTemplate=e}get filter(){return this._filter}get canApply(){return this._canApply}set canApply(e){if(e!=this._canApply){this._canApply=e;this.onCanApplyChanged()}}get _shouldIncludeSelection(){return this._filter.showIncludeSelection&&this._cbIncludeSel.checked}updateEditor(){let e=this._filter.column,t=this._filter.getUniqueValues(!0);this._lbValues.isContentHtml=e.isContentHtml;let i=this._filter.showValues;if(i&&0!=Object.keys(i).length){for(let e in i)for(let i=0;i<t.length;i++)if(t[i].text==e){t[i].show=!0;break}}else t.forEach(e=>e.show=!0);let l=this._filter.filterText||"",s=this._getCaseSensitive();this._cmbFilter.text=l;this._filterText=s?l:l.toLowerCase();this._rxFilter=this._getSearchExp(l,s);this._filter.showIncludeSelection&&!this.hostElement.contains(this._lblIncludeSel)?this._divOptions.appendChild(this._lblIncludeSel):this._filter.showIncludeSelection||this._lblIncludeSel.remove();let a=this._view;a.pageSize=this._filter.maxValues;a.sourceCollection=t;setTimeout(()=>{this._adjustWidths()},0);this._updateExceedsMaxValuesDisplay()}clearEditor(e=!0){this._cmbFilter.text="";this._filterText="";this._rxFilter=null;let t=this._view;t.pageSize=0;t.items.forEach(t=>{t.show=e});t.moveCurrentTo(-1);t.refresh();t.pageSize=this._filter.maxValues}get isEditorClear(){return!this._filterText&&!this._cbSelectAll.indeterminate}_updateFilter(){let e=null,t=this._getItems();if(this._filterText||this._cbSelectAll.indeterminate){e=this._shouldIncludeSelection&&this._filter.showValues||{};for(let i=0;i<t.length;i++){let l=t[i];l.show&&(e[l.text]=!0)}}let i=this._filter;i.showValues=e;i.filterText=this._filterText}updateFilter(){this._isFiltering?setTimeout(()=>{this._updateFilter()},Control._SEARCH_DELAY+100):this._updateFilter()}onCanApplyChanged(e){this.canApplyChanged.raise(this,e)}_getCaseSensitive(){let e=this._filter.column,t=e?e.grid:null;return t&&t.caseSensitiveSearch}_getItems(){return this._filter.exclusiveValueSearch?this._view.items:this._view.sourceCollection}_filterTextChanged(){""===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(()=>{let e=this._cmbFilter.text,t=this._getCaseSensitive();t||(e=e.toLowerCase());if(e!=this._filterText){this._filterText=e;this._rxFilter=this._getSearchExp(e,t);this._view.refresh();this._updateExceedsMaxValuesDisplay();if(!e){let e=this._initialItems;if(e.length&&this._view.sourceCollection.indexOf(e[0])>-1){this._lbValues.checkedItems=this._initialItems;this._updateSelectAllCheck();this._isFiltering=!1;return}}if(this._filter.exclusiveValueSearch){this._cbSelectAll.checked=!0;this._cbSelectAllClicked()}else this._updateSelectAllCheck()}this._isFiltering=!1},Control._SEARCH_DELAY)}_getSearchExp(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)}}_getTextSearchExp(e,t){return new RegExp(escapeRegExp(e),t?"":"i")}_getRegexSearchExp(e,t){try{return new RegExp(e,t?"s":"is")}catch(e){return new RegExp("(?!)",t?"s":"is")}}_getExcelSearchExp(e,t){let 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(e=>".").join("")}))).replace(/(\*+)/g,(function(e,t){return Array.from(t).map(e=>".*").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")}_filterValues(e){let t=this._rxFilter;return null==t||null==e||t.test(e.text)}_cbSelectAllClicked(){let e=this._cbSelectAll.checked,t=this._divValues.scrollTop,i=this._getItems();for(let t=0;t<i.length;t++)i[t].show=e;this._view.refresh();this._divValues.scrollTop=t;setTimeout(()=>{this._adjustWidths()},0)}_updateSelectAllCheck(){let e=this._getItems(),t=0,i=0;for(let l=0;l<e.length;l++){e[l].show?t++:i++;if(t&&i)break}setChecked(this._cbSelectAll,t&&i?null:t>0);this.canApply=t>0}_adjustWidths(){let e=this._lbValues.hostElement;if(e&&e.offsetHeight>0){let t=0,i=e.querySelectorAll(`.${input.ListBoxClsNames.listBoxItem} label`);if(i.length){for(let e=0;e<i.length;e++)t=Math.max(t,i[e].scrollWidth);if(t){let i=e.querySelectorAll(`.${input.ListBoxClsNames.listBoxItem}`);if(i.length){let e=i[0],l=getComputedStyle(e),s=parseFloat(l.paddingLeft)+parseFloat(l.paddingRight);for(let e=0;e<i.length;e++)i[e].style.width=t+s+"px"}}}}}get exceedsMaxValues(){return!(!this._view||!this._view._view)&&this._view._view.length>this.filter.maxValues}_updateExceedsMaxValuesDisplay(){this._aExceeds.style.display=this.exceedsMaxValues?"":"none"}_initPopup(){let e=document.createElement("div");e.innerHTML='<div role="dialog">'+`<div class=${input.PopupClsNames.dialogBody}>`+`<div class=${ValueFilterEditorClsNames.customModalText}>`+"<p>"+culture.FlexGridFilter.popupBody+"</p></div></div>"+`<div class="${input.PopupClsNames.dialogFooter} ${ValueFilterEditorClsNames.modalFooter}" >`+`<button class="btn btn-primary ${UtilitesClsNames.hideOk}">`+culture.FlexGridFilter.popupOkButton+"</button></div></div>";this._popup=new input.Popup(e,{modal:!0,fadeIn:!0,fadeOut:!0})}}ValueFilterEditor._ctrlTemplate="";export class ColumnFilter{constructor(e,t){this._owner=e;this._col=t;this._valueFilter=new ValueFilter(t);this._valueFilter.exclusiveValueSearch=e.exclusiveValueSearch;this._valueFilter.showIncludeSelection=e.showIncludeSelection;this._conditionFilter=new ConditionFilter(t);e.exclusiveValueSearchChanged.addHandler(e=>{this._valueFilter.exclusiveValueSearch=e.exclusiveValueSearch});e._showIncludeSelectionChanged.addHandler(e=>{this._valueFilter.showIncludeSelection=e.showIncludeSelection})}get filterType(){return null!=this._filterType?this._filterType:this._owner.defaultFilterType}set filterType(e){if((e=asEnum(e,FilterType,!0))!=this._filterType){let t=this.isActive;this.clear();this._filterType=e;t?this._owner.apply():this._col.grid&&this._col.grid.invalidate()}}get dataMap(){return this.conditionFilter.dataMap||this.valueFilter.dataMap}set dataMap(e){this.conditionFilter.dataMap=e;this.valueFilter.dataMap=e}get valueFilter(){return this._valueFilter}get conditionFilter(){return this._conditionFilter}get column(){return this._col}get isActive(){return this._conditionFilter.isActive||this._valueFilter.isActive}apply(e){return this._conditionFilter.apply(e)&&this._valueFilter.apply(e)}clear(){this._valueFilter.clear();this._conditionFilter.clear()}implementsInterface(e){return"IColumnFilter"==e}}_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",active:"active",listBox:"List of options available for filtering"},ascending:"↑ Ascending",descending:"↓ Descending",apply:"Apply",cancel:"Cancel",clear:"Clear",conditions:"Filter by Condition",values:"Filter by Value",search:"Search",selectAll:"Select All",includeSelection:"Include Current Selection",null:"(nothing)",exceedsMaxValues:"Not all items showing",popupBody:"This column has more than 250 unique items. Only the first 250 unique items are displayed.",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:"Does not begin with",op:Operator.NBW},{name:"Ends with",op:Operator.EW},{name:"Does not end with",op:Operator.NEW},{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}]});export class ColumnFilterEditor extends Control{constructor(e,t,i=!0){super(e,null,!0);this.filterChanged=new Event;this.buttonClicked=new Event;this._filter=asType(t,ColumnFilter);let l=this.getTemplate();this.applyTemplate(`${ControlClsNames.hostElement} ${ControlClsNames.content} ${ControlClsNames.content} ${ColumnFilterEditorClsNames.hostElement}`,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",_btnApply:"btn-apply",_btnCancel:"btn-cancel",_btnClear:"btn-clear"});let s=culture.FlexGridFilter,a=s.ariaLabels,n=this.hostElement,r=this.filter.column,o=r.grid.collectionView;setAttribute(n,"role","dialog");setAriaLabel(n,a.dialog+" "+r.header);setAriaLabel(this._btnAsc,a.asc);setAriaLabel(this._btnDsc,a.dsc);setText(this._btnAsc,s.ascending);setText(this._btnDsc,s.descending);setText(this._aVal,s.values);setText(this._aCnd,s.conditions);setText(this._btnApply,s.apply);setText(this._btnCancel,s.cancel);setText(this._btnClear,s.clear);let d=this.filter.conditionFilter.isActive||0==(t.filterType&FilterType.Value)?FilterType.Condition:FilterType.Value;this._showFilter(d);if(!r.allowSorting){enable(this._btnAsc,!1);enable(this._btnDsc,!1)}i&&o&&o.canSort||(this._divSort.style.display="none");this._updateSortButtonState();let h=this._btnClicked.bind(this);this._btnApply.addEventListener("click",h);this._btnCancel.addEventListener("click",h);this._btnClear.addEventListener("click",h);this._btnAsc.addEventListener("click",h);this._btnDsc.addEventListener("click",h);this._aVal.addEventListener("click",h);this._aCnd.addEventListener("click",h);this.addEventListener(n,"keydown",e=>{if(!e.defaultPrevented){let t=e.target.tagName.match(/^(a|button)$/i);switch(e.keyCode){case Key.Space:if(t){this._btnClicked(e);e.preventDefault()}break;case Key.Enter:if(t)this._btnClicked(e);else{this.updateFilter();this.onFilterChanged();this.onButtonClicked()}e.preventDefault();break;case Key.Escape:this.onButtonClicked();e.preventDefault();break;case Key.Tab:moveFocus(this.hostElement,e.shiftKey?-1:1);e.preventDefault()}}});this.addEventListener(window,"resize",()=>{this.isTouching||this._wasTouching||this.onButtonClicked()})}static get controlTemplate(){ColumnFilterEditor._ctrlTemplate||(ColumnFilterEditor._ctrlTemplate="<div>"+`<div wj-part="div-sort" class="${ColumnFilterEditorClsNames.sortButtons}">`+`<button wj-part="btn-asc" class="${InputFormElementsClsNames.btn}"></button>&nbsp;&nbsp;&nbsp;`+`<button wj-part="btn-dsc" class="${InputFormElementsClsNames.btn}"></button>`+"</div>"+`<div wj-part="div-type" class="${ColumnFilterEditorClsNames.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="${InputFormElementsClsNames.btn}"></button>&nbsp;&nbsp;`+`<button wj-part="btn-cancel" class="${InputFormElementsClsNames.btn}"></button>&nbsp;&nbsp;`+`<button wj-part="btn-clear" class="${InputFormElementsClsNames.btn}"></button>`+"</div></div>");return ColumnFilterEditor._ctrlTemplate}static set controlTemplate(e){ColumnFilterEditor._ctrlTemplate=e}get filter(){return this._filter}updateEditor(){this._edtVal&&this._edtVal.updateEditor();this._edtCnd&&this._edtCnd.updateEditor()}updateFilter(){switch(this._getFilterType()){case FilterType.Value:this._edtVal.updateFilter();this.filter.conditionFilter.clear();break;case FilterType.Condition:this._edtCnd.updateFilter();this.filter.valueFilter.clear()}}onFilterChanged(e){this.filterChanged.raise(this,e)}onButtonClicked(e){this.buttonClicked.raise(this,e)}_showFilter(e){this._wasTouching=this.isTouching;if(e==FilterType.Value&&null==this._edtVal){this._edtVal=new ValueFilterEditor(this._divEdtVal,this.filter.valueFilter);this._edtVal.canApplyChanged.addHandler(e=>{enable(this._btnApply,this._edtVal.canApply)})}if(e==FilterType.Condition&&null==this._edtCnd){this._edtCnd=new ConditionFilterEditor(this._divEdtCnd,this.filter.conditionFilter);this._edtCnd.canApplyChanged.addHandler(e=>{enable(this._btnApply,this._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();this._edtVal._updateExceedsMaxValuesDisplay();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)}let t=this._divType.style;switch(this.filter.filterType){case FilterType.None:case FilterType.Condition:case FilterType.Value:t.display="none";break;default:t.display=""}}_enableLink(e,t){toggleClass(e,ControlStateClsNames.disabled,!t);setAttribute(e,"href",t?"":null);setAttribute(e,"disabled",t?null:"disabled")}_updateSortButtonState(){let e=this.filter.column,t=e?e.currentSort:"",i=ControlStateClsNames.active,l=culture.FlexGridFilter.ariaLabels;if("+"===t){addClass(this._btnAsc,i);this._btnAsc.setAttribute("aria-label",`${l.asc} ${l.active}`)}else if("-"===t){addClass(this._btnDsc,i);this._btnDsc.setAttribute("aria-label",`${l.dsc} ${l.active}`)}}_getFilterType(){let e=FilterType;return"none"!=this._divEdtVal.style.display?e.Value:e.Condition}_btnClicked(e){let t=e.target;e.preventDefault();e.stopPropagation();if(!hasClass(t,ControlStateClsNames.disabled))if(t!=this._aVal)if(t!=this._aCnd){if(t==this._btnAsc||t==this._btnDsc){let t=this.filter.column,i=t.sortMemberPath||t.binding,l=t.grid.collectionView.sortDescriptions;l.deferUpdate(()=>{l.clear();l.push(new SortDescription(i,e.target==this._btnAsc))});this._updateSortButtonState()}if(t==this._btnApply){this.updateFilter();this.onFilterChanged()}else if(t==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._ctrlTemplate="";_registerModule("wijmo.grid.filter",selfModule);
package/es5-esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * Wijmo Library 5.20241.19
3
+ * Wijmo Library 5.20242.30
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,CellType,_NewRowTemplate}from"@grapecity/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"@grapecity/wijmo";import{DropDown,Popup}from"@grapecity/wijmo.input";import*as input from"@grapecity/wijmo.input";import*as selfModule from"@grapecity/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._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})}}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 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"}}}}};Object.defineProperty(ValueFilterEditor.prototype,"exceedsMaxValues",{get:function(){return!(!this._view||!this._view._view)&&this._view._view.length>this.filter.maxValues},enumerable:!0,configurable:!0});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.",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);if(!u.allowSorting){enable(n._btnAsc,!1);enable(n._btnDsc,!1)}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._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();this._updateExceedsLinkVisibility();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);this._aExceeds&&(this._aExceeds.style.display="none")}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.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);
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"@grapecity/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,GlyphClsNames,InputFormElementsClsNames,UtilitesClsNames,setText,escapeRegExp,setChecked,SortDescription,SortNulls,ControlClsNames,getUniqueId,_addCultureInfo,enable,moveFocus,hasClass,addClass,ControlStateClsNames,_registerModule}from"@grapecity/wijmo";import{DropDown,DropDownClsNames}from"@grapecity/wijmo.input";import*as input from"@grapecity/wijmo.input";import*as selfModule from"@grapecity/wijmo.grid.filter";export var ColumnFilterEditorClsNames={filterType:"wj-filtertype",hostElement:"wj-columnfiltereditor",sortButtons:"wj-sort-buttons"};export var ConditionFilterEditorClsNames={hostElement:"wj-conditionfilter-editor"};export var FlexGridFilterClsNames={elemFilter:"wj-elem-filter",filter:"wj-filter",filterOff:"wj-filter-off",filterOn:"wj-filter-on",hostElement:"wj-columnfiltereditor"};export var ValueFilterEditorClsNames={hostElement:"wj-valuefilter-editor",customModalText:"wj-custom-modal-text",modalFooter:"wj-valuefilter-modal-footer"};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._showIncludeSelection=!1;this.filterApplied=new Event;this.editingFilter=new Event;this.filterChanging=new Event;this.filterChanged=new Event;this.exclusiveValueSearchChanged=new Event;this._showIncludeSelectionChanged=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,l=e.excludedRowsSet;if(null!=i&&i.rows.length>t)if(i.itemsSource)if(i.rows[t]instanceof _NewRowTemplate){var r=i.editableCollectionView.currentAddItem||i.rows[t].dataItem;r&&l.add(r)}else i.rows[t].dataItem&&l.add(i.rows[t].dataItem);else i.rows[t]&&l.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});Object.defineProperty(FlexGridFilter.prototype,"showIncludeSelection",{get:function(){return this._showIncludeSelection},set:function(e){if(e!=this._showIncludeSelection){this._showIncludeSelection=asBoolean(e,!1);this._onShowIncludeSelectionChanged()}},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 l=new ColumnFilter(this,e);this._filters.push(l);return l}}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 l=i.conditionFilter,r=i.valueFilter,n=r.uniqueValues&&r.uniqueValues.length;if(i&&i.column&&i.column.binding&&(i.isActive||n||i.filterType!=e.defaultFilterType)){var o={binding:i.column.binding};if(l.isActive){var a=l.condition1,s=l.condition2;o={binding:i.column.binding,type:"condition",condition1:{operator:a.operator,value:a.value},and:l.and,condition2:{operator:s.operator,value:s.value}}}else(r.isActive||n)&&(o={binding:i.column.binding,type:"value",uniqueValues:r.uniqueValues,sortValues:r.sortValues,maxValues:r.maxValues,exclusiveValueSearch:r.exclusiveValueSearch,showValues:r.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 l=t.filters[e],r=i._asColumn(l.binding);r||(r=new Column({binding:l.binding}));var n=i.getColumnFilter(r,!0);if(n){null!=l.filterType&&(n.filterType=asEnum(l.filterType,FilterType));switch(l.type){case"condition":var o=n.conditionFilter;o.condition1.value=r.dataType==DataType.Date?changeType(l.condition1.value,r.dataType,null):l.condition1.value;o.condition1.operator=l.condition1.operator;o.and=l.and;o.condition2.value=r.dataType==DataType.Date?changeType(l.condition2.value,r.dataType,null):l.condition2.value;o.condition2.operator=l.condition2.operator;break;case"value":var a=n.valueFilter;a.uniqueValues=l.uniqueValues;["sortValues","maxValues","exclusiveValueSearch"].forEach((function(e){null!=l[e]&&(a[e]=l[e])}));a.showValues=l.showValues}}},i=this,l=0;l<t.filters.length;l++)_loop_1(l)}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 l=this,r=this._g;this.closeEditor();e=this._asColumn(e);var n=new CellRangeEventArgs(r.cells,new CellRange(-1,e.index));if(this.onEditingFilter(n)){var o=createElement('<div class="'+DropDownClsNames.dropDownPanel+'"></div>'),a=this.getColumnFilter(e),s=new ColumnFilterEditor(o,a,this.showSortButtons);this._divEdt=o;this._edtCol=e;r.rightToLeft&&(o.dir="rtl");if(this.onFilterChanging(n)){n.cancel=!0;s.filterChanged.addHandler((function(){n.cancel=!1;setTimeout((function(){if(!n.cancel){l.excludedRowsSet=null;l.apply()}}),s._edtVal&&s._edtVal._isFiltering?Control._SEARCH_DELAY+200:0)}));s.buttonClicked.addHandler((function(){l.closeEditor();r.focus();l.onFilterChanged(n)}));s.lostFocus.addHandler((function(){setTimeout((function(){var e=Control.getControl(l._divEdt);e&&!e.containsFocus()&&l.closeEditor()}),10)}));var u=t?t.col:e.index,d=r.columns[u];t||d&&d.binding==e.binding||(u=r.selection.leftCol);r._edtHdl._commitRowEdits();r.scrollIntoView(-1,u,!0);var c=r.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(r.cells.getCellElement(-1,h),!0);for(var m=s.hostElement.querySelectorAll("input"),b=0;b<m.length;b++){var v=m[b];if(v.offsetHeight>0&&v.tabIndex>-1&&!v.disabled){v.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 l=e.columnHeaders,r=l.rows.length?l.getCellElement(l.rows.length-1,i.index):null;this._setAriaExpanded(r,!1);r=e.cells.getCellElement(-1,i.index);this._setAriaExpanded(r,!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.excludedRowsSet=null;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._onShowIncludeSelectionChanged=function(e){this._showIncludeSelectionChanged.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,l=0;l<i.length;l++){var r=i[l];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,l=i.getMergedRange(t.panel,t.row,t.col)||new CellRange(t.row,t.col),r=i.columns[l.col],n=i._getBindingColumn(t.panel,t.row,r),o=t.cell;if(l.row2==t.panel.rows.length-1||r!=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,FlexGridFilterClsNames.filterOn,a.isActive);toggleClass(o,FlexGridFilterClsNames.filterOff,!a.isActive)}else{removeClass(o,FlexGridFilterClsNames.filterOn);removeClass(o,FlexGridFilterClsNames.filterOff)}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(r,a,o)}}}};FlexGridFilter.prototype._addFilterButton=function(e,t,i){var l=FlexGridFilter._WJC_FILTER,r=createElement('<button class="'+InputFormElementsClsNames.btn+" "+GlyphClsNames.btnGlyph+" "+UtilitesClsNames.right+" "+l+'" type="button" tabindex="-1"><span class='+GlyphClsNames.filter+"></span></button>");setAriaLabel(r,culture.FlexGridFilter.ariaLabels.edit+" "+e.header);setAttribute(r,"aria-haspopup","dialog");setAttribute(r,"aria-expanded",!1);setAttribute(r,"aria-describedby",e.describedById);setAttribute(r,"aria-pressed",t.isActive);if(!i.querySelector("."+l)){1==i.children.length&&(i=i.querySelector("div")||i);i.insertBefore(r,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,l=i.hitTest(e.target);l.panel||(l=i.hitTest(e));if(l.panel&&i.columnHeaders&&i.cells&&(l.panel._uid==i.columnHeaders._uid||l.panel._uid==i.cells._uid&&-1==l.row)){var r=i.getMergedRange(l.panel,l.row,l.col)||new CellRange(l.row,l.col),n=i.columns[r.col],o=i._getBindingColumn(l.panel,l.row,n);if(this._divEdt&&this._edtCol==o){this.closeEditor();i.focus()}else o!=this._edtColPrev&&setTimeout((function(){t.editColumnFilter(o,l)}),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,l=i.col>-1?t.columns[i.col]:null,r=l?t._getBindingColumn(t.cells,i.row,l):null,n=r&&r.dataMap&&r.dataMapEditor==DataMapEditor.DropDownList;if(this.filterColumns&&this.filterColumns.length>0&&!this.filterColumns.includes(r._binding._path)){e.preventDefault();return!1}if(t.activePanelType!=CellType.Cell&&t.activePanelType!=CellType.ColumnHeader){e.preventDefault();return!1}r&&r.editor instanceof DropDown&&(n=!0);if(r&&!n){var o=this.getColumnFilter(r,!1);if(o&&o.filterType!=FilterType.None){this.editColumnFilter(r);e.preventDefault();e.stopPropagation()}}}};FlexGridFilter._WJC_FILTER=FlexGridFilterClsNames.elemFilter;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,l=this._c2,r=!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)){r=!this._hasTimePart();n=!this._hasDatePart();var a=FilterCondition._refDateTime;r?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,r,n),p=l.apply(e,r,n);return i.isActive&&l.isActive?this._and?c&&p:c||p:i.isActive?c:!l.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 l=e.call(this,t)||this;l._canApply=!1;l.canApplyChanged=new Event;l._filter=asType(i,ConditionFilter,!1);var r=l.getTemplate();l.applyTemplate(ControlClsNames.hostElement+" "+ConditionFilterEditorClsNames.hostElement,r,{_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(l._btnAnd,o.and);setAriaLabel(l._btnOr,o.or);setText(l._divHdr,n.header);setText(l._spAnd,n.and);setText(l._spOr,n.or);var a=getUniqueId("cmb1");l._divHdr.htmlFor=a;l._divCmb1.id=a;l._cmb1=l._createOperatorCombo(l._divCmb1,o.op1);l._cmb2=l._createOperatorCombo(l._divCmb2,o.op2);l._val1=l._createValueInput(l._divVal1,o.val1);l._val2=l._createValueInput(l._divVal2,o.val2);l._val1.isDisabled=!0;l._cmb1.selectedIndexChanged.addHandler((function(e,t){l._val1.isDisabled=null==e.selectedValue;l.canApply=!l._val1.isDisabled||!l._val2.isDisabled}));l._val2.isDisabled=!0;l._cmb2.selectedIndexChanged.addHandler((function(e,t){l._val2.isDisabled=null==e.selectedValue;l.canApply=!l._val1.isDisabled||!l._val2.isDisabled}));var s=l.hostElement;l.addEventListener(s,"change",l._btnAndOrChanged.bind(l));l.addEventListener(s,"keydown",l._keydown.bind(l));setTimeout((function(){l.updateEditor()}));return l}Object.defineProperty(ConditionFilterEditor,"controlTemplate",{get:function(){ConditionFilterEditor._ctrlTemplate||(ConditionFilterEditor._ctrlTemplate='<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._ctrlTemplate},set:function(e){ConditionFilterEditor._ctrlTemplate=e},enumerable:!0,configurable:!0});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,l=culture.FlexGridFilter,r=l.stringOperators,n=DataType;this._filter.dataMap||i.dataMap||(i.dataType==n.Date?r=l.dateOperators:i.dataType==n.Number?r=l.numberOperators:i.dataType==n.Boolean&&(r=l.booleanOperators));var o=new input.ComboBox(e,{itemsSource:r,displayMemberPath:"name",selectedValuePath:"op"});setAriaLabel(o.inputElement,t);return o};ConditionFilterEditor.prototype._createValueInput=function(e,t){var i=this._filter,l=i.column,r=i.dataMap||l.dataMap,n=null,o=DataType;if(l.dataType==o.Date)(n=i._hasDatePart()?i._hasTimePart()?new input.InputDateTime(e):new input.InputDate(e):new input.InputTime(e)).format=l.format;else if(l.dataType!=o.Number||r){(n=new input.ComboBox(e)).isEditable=!0;n.trimText=!1;if(r){n.itemsSource=r.getDisplayValues();n.caseSensitiveSearch=!!l.grid&&l.grid.caseSensitiveSearch}else l.dataType==o.Boolean&&(n.itemsSource=[!0,!1])}else(n=new input.InputNumber(e)).format=l.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 l=t?this._btnOr:this._btnAnd;l.click();l.focus();e.preventDefault()}};ConditionFilterEditor._ctrlTemplate="";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 l=this._strVal||this._val;isString(e)&&(e=this._getCaseString(e));isString(l)&&null==e&&(e="");isDate(l)&&(t?l=DateTime.fromDateTime(l,FilterCondition._refDateTime):i&&(l=DateTime.fromDateTime(FilterCondition._refDateTime,l)));var r=Operator;switch(this._op){case null:return!0;case r.EQ:return null!=e&&null!=l?e.valueOf()==l.valueOf():e==l;case r.NE:return null!=e&&null!=l?e.valueOf()!=l.valueOf():e!=l;case r.GT:return e>l;case r.GE:return e>=l;case r.LT:return e<l;case r.LE:return e<=l;case r.BW:return!(null==this._strVal||!isString(e))&&0==e.indexOf(this._strVal);case r.EW:return!!(null!=this._strVal&&isString(e)&&e.length>=this._strVal.length)&&e.substr(e.length-this._strVal.length)==l;case r.CT:return!(null==this._strVal||!isString(e))&&e.indexOf(this._strVal)>-1;case r.NC:return!(null==this._strVal||!isString(e))&&e.indexOf(this._strVal)<0;case r.NBW:return!(null==this._strVal||!isString(e))&&0!==e.indexOf(this._strVal);case r.NEW:return!(null==this._strVal||!isString(e))&&e.substring(e.length-this._strVal.length)!==l}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";e[e.NBW=10]="NBW";e[e.NEW=11]="NEW"}(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._showIncludeSelection=!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,"showIncludeSelection",{get:function(){return this._showIncludeSelection},set:function(e){e!=this._showIncludeSelection&&(this._showIncludeSelection=asBoolean(e,!1))},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,l=Globalize.format;if(this.uniqueValues){this.uniqueValues.forEach((function(e){t.push({value:e,text:l(e,i.format)})}));return t}var r={},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)||"":l(u,i.format);if(!r[d]){r[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 l=e.call(this,t)||this;l._canApply=!1;l._isFiltering=!1;l.canApplyChanged=new Event;l._filter=asType(i,ValueFilter,!1);var r=l.getTemplate();l.applyTemplate(ControlClsNames.hostElement+" "+ValueFilterEditorClsNames.hostElement,r,{_divFilter:"div-filter",_cbSelectAll:"cb-select-all",_spSelectAll:"sp-select-all",_cbIncludeSel:"cb-include-sel",_spIncludeSel:"sp-include-sel",_lblIncludeSel:"lbl-include-sel",_divOptions:"div-options",_divValues:"div-values",_divExceeds:"div-exceeds",_aExceeds:"a-exceeds"});l._cbSelectAll.tabIndex=0;l._cbIncludeSel.tabIndex=0;var n=culture.FlexGridFilter;setText(l._spSelectAll,n.selectAll);setText(l._spIncludeSel,n.includeSelection);setText(l._aExceeds,n.exceedsMaxValues);var o=l._view=new CollectionView(null,{sortNulls:SortNulls.First,filter:l._filterValues.bind(l)});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(l._updateSelectAllCheck,l);l._filterText="";l._rxFilter=null;l._cmbFilter=new input.ComboBox(l._divFilter,{trimText:!1,isRequired:!1,placeholder:n.search});l._cmbFilter.isEditable=!0;l._lbValues=new input.ListBox(l._divValues,{displayMemberPath:"text",checkedMemberPath:"show",itemsSource:l._view,itemFormatter:function(e,t){return t||n.null},checkedItemsChanged:function(e){return l._updateSelectAllCheck()}});setAttribute(l._divValues,"aria-label",culture.FlexGridFilter.ariaLabels.listBox);setAriaLabel(l._cmbFilter.inputElement,n.ariaLabels.search);setAttribute(l._lbValues.hostElement,"aria-multiselectable",!0);l._cmbFilter.inputElement.addEventListener("input",l._filterTextChanged.bind(l));l._cbSelectAll.addEventListener("click",l._cbSelectAllClicked.bind(l));if(!l._popup){l._initPopup();l._aExceeds&&l.addEventListener(l._aExceeds,"click",(function(e){e.preventDefault();l._popup.show(!0)}))}l.updateEditor();l._filter.showValues?l._initialItems=o.sourceCollection.filter((function(e){return l._filter.showValues[e.text||e.value]||!1})):l._initialItems=l._lbValues.checkedItems;return l}Object.defineProperty(ValueFilterEditor,"controlTemplate",{get:function(){ValueFilterEditor._ctrlTemplate||(ValueFilterEditor._ctrlTemplate='<div><div wj-part="div-filter"></div><div wj-part="div-options" class="'+input.ListBoxClsNames.listBoxItem+'"><label><input wj-part="cb-select-all" type="checkbox"> <span wj-part="sp-select-all"></span></label><br /><label wj-part="lbl-include-sel"><input wj-part="cb-include-sel" type="checkbox"> <span wj-part="sp-include-sel"></span></label></div><div wj-part="div-values"></div><div wj-part="div-exceeds"><a wj-part="a-exceeds"></a></div></div>');return ValueFilterEditor._ctrlTemplate},set:function(e){ValueFilterEditor._ctrlTemplate=e},enumerable:!0,configurable:!0});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});Object.defineProperty(ValueFilterEditor.prototype,"_shouldIncludeSelection",{get:function(){return this._filter.showIncludeSelection&&this._cbIncludeSel.checked},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 l=this._filter.showValues;if(l&&0!=Object.keys(l).length){for(var r in l)for(var n=0;n<i.length;n++)if(i[n].text==r){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=this._getSearchExp(o,a);this._filter.showIncludeSelection&&!this.hostElement.contains(this._lblIncludeSel)?this._divOptions.appendChild(this._lblIncludeSel):this._filter.showIncludeSelection||this._lblIncludeSel.remove();var s=this._view;s.pageSize=this._filter.maxValues;s.sourceCollection=i;setTimeout((function(){e._adjustWidths()}),0);this._updateExceedsMaxValuesDisplay()};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=this._shouldIncludeSelection&&this._filter.showValues||{};for(var i=0;i<t.length;i++){var l=t[i];l.show&&(e[l.text]=!0)}}var r=this._filter;r.showValues=e;r.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();e._updateExceedsMaxValuesDisplay();if(!t){var l=e._initialItems;if(l.length&&e._view.sourceCollection.indexOf(l[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,l=this._getItems(),r=0;r<l.length;r++)l[r].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,l=0;l<e.length;l++){e[l].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("."+input.ListBoxClsNames.listBoxItem+" label");if(i.length){for(var l=0;l<i.length;l++)t=Math.max(t,i[l].scrollWidth);if(t){var r=e.querySelectorAll("."+input.ListBoxClsNames.listBoxItem);if(r.length){var n=r[0],o=getComputedStyle(n),a=parseFloat(o.paddingLeft)+parseFloat(o.paddingRight);for(l=0;l<r.length;l++)r[l].style.width=t+a+"px"}}}}};Object.defineProperty(ValueFilterEditor.prototype,"exceedsMaxValues",{get:function(){return!(!this._view||!this._view._view)&&this._view._view.length>this.filter.maxValues},enumerable:!0,configurable:!0});ValueFilterEditor.prototype._updateExceedsMaxValuesDisplay=function(){this._aExceeds.style.display=this.exceedsMaxValues?"":"none"};ValueFilterEditor.prototype._initPopup=function(){var e=document.createElement("div");e.innerHTML='<div role="dialog"><div class='+input.PopupClsNames.dialogBody+"><div class="+ValueFilterEditorClsNames.customModalText+"><p>"+culture.FlexGridFilter.popupBody+'</p></div></div><div class="'+input.PopupClsNames.dialogFooter+" "+ValueFilterEditorClsNames.modalFooter+'" ><button class="btn btn-primary '+UtilitesClsNames.hideOk+'">'+culture.FlexGridFilter.popupOkButton+"</button></div></div>";this._popup=new input.Popup(e,{modal:!0,fadeIn:!0,fadeOut:!0})};ValueFilterEditor._ctrlTemplate="";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._valueFilter.showIncludeSelection=e.showIncludeSelection;this._conditionFilter=new ConditionFilter(t);e.exclusiveValueSearchChanged.addHandler((function(e){i._valueFilter.exclusiveValueSearch=e.exclusiveValueSearch}));e._showIncludeSelectionChanged.addHandler((function(e){i._valueFilter.showIncludeSelection=e.showIncludeSelection}))}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",active:"active",listBox:"List of options available for filtering"},ascending:"↑ Ascending",descending:"↓ Descending",apply:"Apply",cancel:"Cancel",clear:"Clear",conditions:"Filter by Condition",values:"Filter by Value",search:"Search",selectAll:"Select All",includeSelection:"Include Current Selection",null:"(nothing)",exceedsMaxValues:"Not all items showing",popupBody:"This column has more than 250 unique items. Only the first 250 unique items are displayed.",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:"Does not begin with",op:Operator.NBW},{name:"Ends with",op:Operator.EW},{name:"Does not end with",op:Operator.NEW},{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,l){void 0===l&&(l=!0);var r=e.call(this,t,null,!0)||this;r.filterChanged=new Event;r.buttonClicked=new Event;r._filter=asType(i,ColumnFilter);var n=r.getTemplate();r.applyTemplate(ControlClsNames.hostElement+" "+ControlClsNames.content+" "+ControlClsNames.content+" "+ColumnFilterEditorClsNames.hostElement,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=r.hostElement,u=r.filter.column,d=u.grid.collectionView;setAttribute(s,"role","dialog");setAriaLabel(s,a.dialog+" "+u.header);setAriaLabel(r._btnAsc,a.asc);setAriaLabel(r._btnDsc,a.dsc);setText(r._btnAsc,o.ascending);setText(r._btnDsc,o.descending);setText(r._aVal,o.values);setText(r._aCnd,o.conditions);setText(r._btnApply,o.apply);setText(r._btnCancel,o.cancel);setText(r._btnClear,o.clear);var c=r.filter.conditionFilter.isActive||0==(i.filterType&FilterType.Value)?FilterType.Condition:FilterType.Value;r._showFilter(c);if(!u.allowSorting){enable(r._btnAsc,!1);enable(r._btnDsc,!1)}l&&d&&d.canSort||(r._divSort.style.display="none");r._updateSortButtonState();var p=r._btnClicked.bind(r);r._btnApply.addEventListener("click",p);r._btnCancel.addEventListener("click",p);r._btnClear.addEventListener("click",p);r._btnAsc.addEventListener("click",p);r._btnDsc.addEventListener("click",p);r._aVal.addEventListener("click",p);r._aCnd.addEventListener("click",p);r.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){r._btnClicked(e);e.preventDefault()}break;case Key.Enter:if(t)r._btnClicked(e);else{r.updateFilter();r.onFilterChanged();r.onButtonClicked()}e.preventDefault();break;case Key.Escape:r.onButtonClicked();e.preventDefault();break;case Key.Tab:moveFocus(r.hostElement,e.shiftKey?-1:1);e.preventDefault()}}}));r.addEventListener(window,"resize",(function(){r.isTouching||r._wasTouching||r.onButtonClicked()}));return r}Object.defineProperty(ColumnFilterEditor,"controlTemplate",{get:function(){ColumnFilterEditor._ctrlTemplate||(ColumnFilterEditor._ctrlTemplate='<div><div wj-part="div-sort" class="'+ColumnFilterEditorClsNames.sortButtons+'"><button wj-part="btn-asc" class="'+InputFormElementsClsNames.btn+'"></button>&nbsp;&nbsp;&nbsp;<button wj-part="btn-dsc" class="'+InputFormElementsClsNames.btn+'"></button></div><div wj-part="div-type" class="'+ColumnFilterEditorClsNames.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="'+InputFormElementsClsNames.btn+'"></button>&nbsp;&nbsp;<button wj-part="btn-cancel" class="'+InputFormElementsClsNames.btn+'"></button>&nbsp;&nbsp;<button wj-part="btn-clear" class="'+InputFormElementsClsNames.btn+'"></button></div></div>');return ColumnFilterEditor._ctrlTemplate},set:function(e){ColumnFilterEditor._ctrlTemplate=e},enumerable:!0,configurable:!0});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();this._edtVal._updateExceedsMaxValuesDisplay();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,ControlStateClsNames.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=ControlStateClsNames.active,l=culture.FlexGridFilter.ariaLabels;if("+"===t){addClass(this._btnAsc,i);this._btnAsc.setAttribute("aria-label",l.asc+" "+l.active)}else if("-"===t){addClass(this._btnDsc,i);this._btnDsc.setAttribute("aria-label",l.dsc+" "+l.active)}};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,ControlStateClsNames.disabled))if(i!=this._aVal)if(i!=this._aCnd){if(i==this._btnAsc||i==this._btnDsc){var l=this.filter.column,r=l.sortMemberPath||l.binding,n=l.grid.collectionView.sortDescriptions;n.deferUpdate((function(){n.clear();n.push(new SortDescription(r,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._ctrlTemplate="";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.20241.19
3
+ * Wijmo Library 5.20242.30
4
4
  * https://developer.mescius.com/wijmo
5
5
  *
6
6
  * Copyright(c) MESCIUS inc. All rights reserved.
@@ -21,6 +21,26 @@ export declare var ___keepComment: any;
21
21
  import { Column, DataMap, FlexGrid, HitTestInfo, CellRangeEventArgs } from '@grapecity/wijmo.grid';
22
22
  import { Control, Event, EventArgs } from '@grapecity/wijmo';
23
23
  import * as selfModule from '@grapecity/wijmo.grid.filter';
24
+ export declare const ColumnFilterEditorClsNames: {
25
+ filterType: string;
26
+ hostElement: string;
27
+ sortButtons: string;
28
+ };
29
+ export declare const ConditionFilterEditorClsNames: {
30
+ hostElement: string;
31
+ };
32
+ export declare const FlexGridFilterClsNames: {
33
+ elemFilter: string;
34
+ filter: string;
35
+ filterOff: string;
36
+ filterOn: string;
37
+ hostElement: string;
38
+ };
39
+ export declare const ValueFilterEditorClsNames: {
40
+ hostElement: string;
41
+ customModalText: string;
42
+ modalFooter: string;
43
+ };
24
44
  /**
25
45
  * Specifies types of column filter.
26
46
  */
@@ -73,6 +93,7 @@ export declare class FlexGridFilter {
73
93
  private _defFilterType;
74
94
  private _xValueSearch;
75
95
  private _includeUpdatedRowsInFilter;
96
+ private _showIncludeSelection;
76
97
  static _skipColumn: Column;
77
98
  /**
78
99
  * Initializes a new instance of the {@link FlexGridFilter} class.
@@ -124,31 +145,37 @@ export declare class FlexGridFilter {
124
145
  */
125
146
  showSortButtons: boolean;
126
147
  /**
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
- */
148
+ * Gets or sets a value indicating whether to apply filter on the updated
149
+ * rows.
150
+ * If this property is set to true, then events such as row update,
151
+ * row insertion, sorting etc refreshes filter and rows which do not pass
152
+ * filter gets filtered out.
153
+ * If this property is set to false, then filter is not applied immediately
154
+ * and we need to click the apply button again to refresh filter.
155
+ * For complete excel behavior you also need to set the refreshOnEdit property {@link CollectionView.refreshOnEdit}
156
+ * of CollectionView to false
157
+ *
158
+ * ```typescript
159
+ * // For flexgrid
160
+ * flexgrid.collectionView.refreshOnEdit = false;
161
+ *
162
+ * // For flexsheet
163
+ * flexSheet.itemsSourceChanged.addHandler((s, e) => {
164
+ * if(s.collectionView){
165
+ * s.collectionView.refreshOnEdit = false;
166
+ * }
167
+ * });
168
+ * ```
169
+ *
170
+ * The default value for this property is **false**.
171
+ */
151
172
  reApplyFilterOnUpdate: boolean;
173
+ /**
174
+ * Gets or sets a value that indicates whether the
175
+ * value filter should display excel like 'Add current selection to filter' option
176
+ * The default value for this property is **False**
177
+ */
178
+ showIncludeSelection: boolean;
152
179
  /**
153
180
  * Gets the filter for the given column.
154
181
  *
@@ -340,6 +367,14 @@ export declare class FlexGridFilter {
340
367
  * Raises the {@link exclusiveValueSearchChanged} event.
341
368
  */
342
369
  onExclusiveValueSearchChanged(e?: EventArgs): void;
370
+ /**
371
+ * Occurs after the showIncludeSelectionBtn property is changed.
372
+ */
373
+ readonly _showIncludeSelectionChanged: Event<FlexGridFilter, EventArgs>;
374
+ /**
375
+ * Raises the {@link showIncludeSelectionChanged} event.
376
+ */
377
+ _onShowIncludeSelectionChanged(e?: EventArgs): void;
343
378
  _asColumn(col: Column | string | number): Column;
344
379
  private _filter;
345
380
  private _formatItem;
@@ -455,6 +490,7 @@ export declare class ConditionFilterEditor extends Control {
455
490
  private _spOr;
456
491
  private _btnAnd;
457
492
  private _btnOr;
493
+ static _ctrlTemplate: string;
458
494
  /**
459
495
  * Gets or sets the template used to instantiate {@link ConditionFilterEditor} controls.
460
496
  */
@@ -575,7 +611,11 @@ export declare enum Operator {
575
611
  /** Contains. */
576
612
  CT = 8,
577
613
  /** Does not contain. */
578
- NC = 9
614
+ NC = 9,
615
+ /** Does not begin with */
616
+ NBW = 10,
617
+ /** Does not end with */
618
+ NEW = 11
579
619
  }
580
620
  /**
581
621
  * Specifies type of Search to use inside ValueFilterEditor.
@@ -604,6 +644,7 @@ export declare class ValueFilter implements IColumnFilter {
604
644
  private _sortValues;
605
645
  private _map;
606
646
  private _searchType;
647
+ private _showIncludeSelection;
607
648
  /**
608
649
  * Initializes a new instance of the {@link ValueFilter} class.
609
650
  *
@@ -725,6 +766,12 @@ export declare class ValueFilter implements IColumnFilter {
725
766
  * values shown when editing this filter.
726
767
  */
727
768
  dataMap: DataMap;
769
+ /**
770
+ * Gets or sets a value that indicates whether the
771
+ * value filter should display excel like 'Add current selection to filter' option
772
+ * The default value for this property is **true**
773
+ */
774
+ showIncludeSelection: boolean;
728
775
  /**
729
776
  * Gets the {@link Column} to filter.
730
777
  */
@@ -794,8 +841,15 @@ export declare class ValueFilterEditor extends Control {
794
841
  private _cmbFilter;
795
842
  private _cbSelectAll;
796
843
  private _spSelectAll;
844
+ private _cbIncludeSel;
845
+ private _spIncludeSel;
846
+ protected _lblIncludeSel: HTMLLabelElement;
797
847
  private _divValues;
848
+ protected _divOptions: HTMLElement;
798
849
  private _lbValues;
850
+ private _aExceeds;
851
+ private _popup;
852
+ static _ctrlTemplate: string;
799
853
  /**
800
854
  * Gets or sets the template used to instantiate {@link ColumnFilterEditor} controls.
801
855
  */
@@ -817,6 +871,7 @@ export declare class ValueFilterEditor extends Control {
817
871
  * can be applied to make the filter active.
818
872
  */
819
873
  canApply: boolean;
874
+ protected readonly _shouldIncludeSelection: boolean;
820
875
  /**
821
876
  * Updates editor with current filter settings.
822
877
  */
@@ -861,6 +916,8 @@ export declare class ValueFilterEditor extends Control {
861
916
  private _updateSelectAllCheck;
862
917
  private _adjustWidths;
863
918
  readonly exceedsMaxValues: boolean;
919
+ _updateExceedsMaxValuesDisplay(): void;
920
+ private _initPopup;
864
921
  }
865
922
  /**
866
923
  * Defines a filter for a column on a {@link FlexGrid} control.
@@ -966,11 +1023,10 @@ export declare class ColumnFilterEditor extends Control {
966
1023
  private _aVal;
967
1024
  private _divEdtVal;
968
1025
  private _divEdtCnd;
969
- private _aExceeds;
970
1026
  private _btnApply;
971
1027
  private _btnCancel;
972
1028
  private _btnClear;
973
- private _popup;
1029
+ static _ctrlTemplate: string;
974
1030
  /**
975
1031
  * Gets or sets the template used to instantiate {@link ColumnFilterEditor} controls.
976
1032
  */
@@ -1017,6 +1073,4 @@ export declare class ColumnFilterEditor extends Control {
1017
1073
  private _updateSortButtonState;
1018
1074
  private _getFilterType;
1019
1075
  private _btnClicked;
1020
- private _updateExceedsLinkVisibility;
1021
- private _initPopup;
1022
1076
  }
package/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * Wijmo Library 5.20241.19
3
+ * Wijmo Library 5.20242.30
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
- "use strict";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 __)}}(),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.hasOwnProperty.call(e,i)&&(t[i]=e[i]);t.default=e;return t};Object.defineProperty(exports,"__esModule",{value:!0});var FilterType,wijmo_grid_1=require("@grapecity/wijmo.grid"),wijmo_1=require("@grapecity/wijmo"),wijmo_input_1=require("@grapecity/wijmo.input"),input=__importStar(require("@grapecity/wijmo.input")),selfModule=__importStar(require("@grapecity/wijmo.grid.filter"));!function(e){e[e.None=0]="None";e[e.Condition=1]="Condition";e[e.Value=2]="Value";e[e.Both=3]="Both"}(FilterType=exports.FilterType||(exports.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 wijmo_1.Event;this.editingFilter=new wijmo_1.Event;this.filterChanging=new wijmo_1.Event;this.filterChanged=new wijmo_1.Event;this.exclusiveValueSearchChanged=new wijmo_1.Event;this._filters=[];this._g=wijmo_1.asType(e,wijmo_grid_1.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();wijmo_1.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 wijmo_grid_1._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=wijmo_1.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=wijmo_1.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=wijmo_1.asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridFilter.prototype,"reApplyFilterOnUpdate",{get:function(){return this._includeUpdatedRowsInFilter},set:function(e){e!==this._includeUpdatedRowsInFilter&&(this._includeUpdatedRowsInFilter=wijmo_1.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=wijmo_1.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=wijmo_1.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 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(n.isActive||l)&&(o={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&&(o.filterType=i.filterType);t.filters.push(o)}}));return JSON.stringify(t)},set:function(e){e=wijmo_1.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 wijmo_grid_1.Column({binding:r.binding}));var l=i.getColumnFilter(n,!0);if(l){null!=r.filterType&&(l.filterType=wijmo_1.asEnum(r.filterType,FilterType));switch(r.type){case"condition":var o=l.conditionFilter;o.condition1.value=n.dataType==wijmo_1.DataType.Date?wijmo_1.changeType(r.condition1.value,n.dataType,null):r.condition1.value;o.condition1.operator=r.condition1.operator;o.and=r.and;o.condition2.value=n.dataType==wijmo_1.DataType.Date?wijmo_1.changeType(r.condition2.value,n.dataType,null):r.condition2.value;o.condition2.operator=r.condition2.operator;break;case"value":var a=l.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 wijmo_1.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 wijmo_grid_1.CellRangeEventArgs(n.cells,new wijmo_grid_1.CellRange(-1,e.index));if(this.onEditingFilter(l)){var o=wijmo_1.createElement('<div class="wj-dropdown-panel"></div>'),a=this.getColumnFilter(e),s=new ColumnFilterEditor(o,a,this.showSortButtons);this._divEdt=o;this._edtCol=e;n.rightToLeft&&(o.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?wijmo_1.Control._SEARCH_DELAY+200:0)}));s.buttonClicked.addHandler((function(){r.closeEditor();n.focus();r.onFilterChanged(l)}));s.lostFocus.addHandler((function(){setTimeout((function(){var e=wijmo_1.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,_=u,h=i||c.getCellElement(p,_),f=h?null:c.getCellBoundingRect(p,_);h?wijmo_1.showPopup(o,h,!1,!1,!1):wijmo_1.showPopup(o,f);this._setAriaExpanded(h,!0);this._setAriaExpanded(n.cells.getCellElement(-1,_),!0);for(var m=s.hostElement.querySelectorAll("input"),v=0;v<m.length;v++){var b=m[v];if(b.offsetHeight>0&&b.tabIndex>-1&&!b.disabled){b.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);wijmo_1.setAttribute(i,"aria-expanded",t)}};FlexGridFilter.prototype.closeEditor=function(){var e=this._g,t=wijmo_1.Control.getControl(this._divEdt),i=this._edtCol;t&&wijmo_1.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;wijmo_1.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 wijmo_1.isString(e)?this._g.getColumn(e,!0):wijmo_1.isNumber(e)?this._g.columns[e]:wijmo_1.asType(e,wijmo_grid_1.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 wijmo_grid_1.CellRange(t.row,t.col),n=i.columns[r.col],l=i._getBindingColumn(t.panel,t.row,n),o=t.cell;if(r.row2==t.panel.rows.length-1||n!=l){var a=this.getColumnFilter(l,this.defaultFilterType!=FilterType.None),s=this._filterColumns;s&&s.length&&s.indexOf(l.binding)<0&&s.indexOf(l.name)<0&&(a=null);if(a){wijmo_1.toggleClass(o,"wj-filter-on",a.isActive);wijmo_1.toggleClass(o,"wj-filter-off",!a.isActive)}else{wijmo_1.removeClass(o,"wj-filter-on");wijmo_1.removeClass(o,"wj-filter-off")}if(a&&a.filterType!=FilterType.None){this._showIcons&&this._addFilterButton(l,a,o);0==t.row&&(o=i.cells.getCellElement(-1,t.col))&&this._addFilterButton(n,a,o)}}}};FlexGridFilter.prototype._addFilterButton=function(e,t,i){var r=FlexGridFilter._WJC_FILTER,n=wijmo_1.createElement('<button class="wj-btn wj-btn-glyph wj-right '+r+'" type="button" tabindex="-1"><span class="wj-glyph-filter"></span></button>');wijmo_1.setAriaLabel(n,wijmo_1.culture.FlexGridFilter.ariaLabels.edit+" "+e.header);wijmo_1.setAttribute(n,"aria-haspopup","dialog");wijmo_1.setAttribute(n,"aria-expanded",!1);wijmo_1.setAttribute(n,"aria-describedby",e.describedById);wijmo_1.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(wijmo_1.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 wijmo_grid_1.CellRange(r.row,r.col),l=i.columns[n.col],o=i._getBindingColumn(r.panel,r.row,l);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==wijmo_1.Key.Down||e.keyCode==wijmo_1.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==wijmo_grid_1.DataMapEditor.DropDownList;if(this.filterColumns&&this.filterColumns.length>0&&!this.filterColumns.includes(n._binding._path)){e.preventDefault();return!1}if(t.activePanelType!=wijmo_grid_1.CellType.Cell&&t.activePanelType!=wijmo_grid_1.CellType.ColumnHeader){e.preventDefault();return!1}n&&n.editor instanceof wijmo_input_1.DropDown&&(l=!0);if(n&&!l){var o=this.getColumnFilter(n,!1);if(o&&o.filterType!=FilterType.None){this.editColumnFilter(n);e.preventDefault();e.stopPropagation()}}}};FlexGridFilter._WJC_FILTER="wj-elem-filter";return FlexGridFilter}();exports.FlexGridFilter=FlexGridFilter;exports.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=wijmo_1.asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(ConditionFilter.prototype,"dataMap",{get:function(){return this._map},set:function(e){this._map=wijmo_1.asType(e,wijmo_grid_1.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 o=this.dataMap||t.dataMap;if(o)e=o.getDisplayValue(e);else if(wijmo_1.isDate(e)){n=!this._hasTimePart();l=!this._hasDatePart();var a=FilterCondition._refDateTime;n?e=wijmo_1.DateTime.fromDateTime(e,a):l&&(e=wijmo_1.DateTime.fromDateTime(a,e))}else if(wijmo_1.isNumber(e)){var s=wijmo_1.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=wijmo_1.culture.Globalize.calendar.patterns[e]||e;return/[yMd]+/.test(e)};ConditionFilter.prototype._hasTimePart=function(){var e=this._col.format;if(!e)return!1;e=wijmo_1.culture.Globalize.calendar.patterns[e]||e;return/[Hmst]+/.test(e)};ConditionFilter.prototype.implementsInterface=function(e){return"IColumnFilter"==e};return ConditionFilter}();exports.ConditionFilter=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 wijmo_1.Event;r._filter=wijmo_1.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=wijmo_1.culture.FlexGridFilter,o=l.ariaLabels;wijmo_1.setAriaLabel(r._btnAnd,o.and);wijmo_1.setAriaLabel(r._btnOr,o.or);wijmo_1.setText(r._divHdr,l.header);wijmo_1.setText(r._spAnd,l.and);wijmo_1.setText(r._spOr,l.or);var a=wijmo_1.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=wijmo_1.changeType(e.value,wijmo_1.DataType.String);this._val2.text=wijmo_1.changeType(t.value,wijmo_1.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=wijmo_1.culture.FlexGridFilter,n=r.stringOperators,l=wijmo_1.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 o=new input.ComboBox(e,{itemsSource:n,displayMemberPath:"name",selectedValuePath:"op"});wijmo_1.setAriaLabel(o.inputElement,t);return o};ConditionFilterEditor.prototype._createValueInput=function(e,t){var i=this._filter,r=i.column,n=i.dataMap||r.dataMap,l=null,o=wijmo_1.DataType;if(r.dataType==o.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!=o.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==o.Boolean&&(l.itemsSource=[!0,!1])}else(l=new input.InputNumber(e)).format=r.format;l.isRequired=!1;wijmo_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;wijmo_1.setAttribute(e,"aria-checked",t.toString());wijmo_1.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 wijmo_1.Key.Left:case wijmo_1.Key.Right:case wijmo_1.Key.Up:case wijmo_1.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}(wijmo_1.Control);exports.ConditionFilterEditor=ConditionFilterEditor;var Operator,ValueFilterSearchKind,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=wijmo_1.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=wijmo_1.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;wijmo_1.isString(e)&&(e=this._getCaseString(e));wijmo_1.isString(r)&&null==e&&(e="");wijmo_1.isDate(r)&&(t?r=wijmo_1.DateTime.fromDateTime(r,FilterCondition._refDateTime):i&&(r=wijmo_1.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||!wijmo_1.isString(e))&&0==e.indexOf(this._strVal);case n.EW:return!!(null!=this._strVal&&wijmo_1.isString(e)&&e.length>=this._strVal.length)&&e.substr(e.length-this._strVal.length)==r;case n.CT:return!(null==this._strVal||!wijmo_1.isString(e))&&e.indexOf(this._strVal)>-1;case n.NC:return!(null==this._strVal||!wijmo_1.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}();exports.FilterCondition=FilterCondition;!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=exports.Operator||(exports.Operator={}));!function(e){e[e.Text=0]="Text";e[e.Regex=1]="Regex";e[e.Excel=2]="Excel"}(ValueFilterSearchKind=exports.ValueFilterSearchKind||(exports.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._col=e}Object.defineProperty(ValueFilter.prototype,"searchType",{get:function(){return this._searchType},set:function(e){this._searchType=wijmo_1.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=wijmo_1.asString(e)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"exclusiveValueSearch",{get:function(){return this._xValueSearch},set:function(e){if((e=wijmo_1.asBoolean(e))!==this._xValueSearch){this._xValueSearch=wijmo_1.asBoolean(e);e&&(this._filterText="")}},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"maxValues",{get:function(){return this._maxValues},set:function(e){this._maxValues=wijmo_1.asNumber(e,!1,!0)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"uniqueValues",{get:function(){return this._uniqueValues},set:function(e){this._uniqueValues=wijmo_1.asArray(e)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"sortValues",{get:function(){return this._sortValues},set:function(e){this._sortValues=wijmo_1.asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"dataMap",{get:function(){return this._map},set:function(e){this._map=wijmo_1.asType(e,wijmo_grid_1.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)||"":wijmo_1.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=wijmo_1.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,o=l?l.sourceCollection:[];if(e&&l&&l.sourceCollection&&l.filter)try{FlexGridFilter._skipColumn=this._col;for(var a=[],s=0;s<o.length;s++)l.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(!n[d]){n[d]=!0;t.push({value:u,text:d})}}return t};ValueFilter.prototype.implementsInterface=function(e){return"IColumnFilter"==e};return ValueFilter}();exports.ValueFilter=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 wijmo_1.Event;r._filter=wijmo_1.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=wijmo_1.culture.FlexGridFilter;wijmo_1.setText(r._spSelectAll,l.selectAll);var o=r._view=new wijmo_1.CollectionView(null,{sortNulls:wijmo_1.SortNulls.First,filter:r._filterValues.bind(r)});if(i.sortValues){var a=i.column.dataMap||i.dataMap?"text":"value",s=i.column.dataType!=wijmo_1.DataType.Boolean;o.sortDescriptions.push(new wijmo_1.SortDescription(a,s))}o.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()}});wijmo_1.setAriaLabel(r._cmbFilter.inputElement,l.ariaLabels.search);wijmo_1.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 o=this._filter.filterText||"",a=this._getCaseSensitive();this._cmbFilter.text=o;this._filterText=a?o:o.toLowerCase();this._rxFilter=this._getSearchExp(o,a);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()}),wijmo_1.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}),wijmo_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(wijmo_1.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}wijmo_1.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],o=getComputedStyle(l),a=parseFloat(o.paddingLeft)+parseFloat(o.paddingRight);for(r=0;r<n.length;r++)n[r].style.width=t+a+"px"}}}}};Object.defineProperty(ValueFilterEditor.prototype,"exceedsMaxValues",{get:function(){return!(!this._view||!this._view._view)&&this._view._view.length>this.filter.maxValues},enumerable:!0,configurable:!0});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}(wijmo_1.Control);exports.ValueFilterEditor=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=wijmo_1.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}();exports.ColumnFilter=ColumnFilter;wijmo_1._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.",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 wijmo_1.Event;n.buttonClicked=new wijmo_1.Event;n._filter=wijmo_1.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 o=wijmo_1.culture.FlexGridFilter,a=o.ariaLabels,s=n.hostElement,u=n.filter.column,d=u.grid.collectionView;wijmo_1.setAttribute(s,"role","dialog");wijmo_1.setAriaLabel(s,a.dialog+" "+u.header);wijmo_1.setAriaLabel(n._btnAsc,a.asc);wijmo_1.setAriaLabel(n._btnDsc,a.dsc);wijmo_1.setText(n._btnAsc,o.ascending);wijmo_1.setText(n._btnDsc,o.descending);wijmo_1.setText(n._aVal,o.values);wijmo_1.setText(n._aCnd,o.conditions);wijmo_1.setText(n._aExceeds,o.exceedsMaxValues);wijmo_1.setText(n._btnApply,o.apply);wijmo_1.setText(n._btnCancel,o.cancel);wijmo_1.setText(n._btnClear,o.clear);var c=n.filter.conditionFilter.isActive||0==(i.filterType&FilterType.Value)?FilterType.Condition:FilterType.Value;n._showFilter(c);if(!u.allowSorting){wijmo_1.enable(n._btnAsc,!1);wijmo_1.enable(n._btnDsc,!1)}r&&d&&d.canSort||(n._divSort.style.display="none");n._updateSortButtonState();var p=n._btnClicked.bind(n),_="click";n._btnApply.addEventListener(_,p);n._btnCancel.addEventListener(_,p);n._btnClear.addEventListener(_,p);n._btnAsc.addEventListener(_,p);n._btnDsc.addEventListener(_,p);n._aVal.addEventListener(_,p);n._aCnd.addEventListener(_,p);if(!n._popup){n._initPopup();var h=n.hostElement.querySelector('[wj-part="a-exceeds"]');h&&h.addEventListener(_,(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 wijmo_1.Key.Space:if(t){n._btnClicked(e);e.preventDefault()}break;case wijmo_1.Key.Enter:if(t)n._btnClicked(e);else{n.updateFilter();n.onFilterChanged();n.onButtonClicked()}e.preventDefault();break;case wijmo_1.Key.Escape:n.onButtonClicked();e.preventDefault();break;case wijmo_1.Key.Tab:wijmo_1.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._edtVal.canApplyChanged.addHandler((function(e){wijmo_1.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){wijmo_1.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();this._updateExceedsLinkVisibility();wijmo_1.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();wijmo_1.enable(this._btnApply,this._edtCnd.canApply);this._aExceeds&&(this._aExceeds.style.display="none")}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){wijmo_1.toggleClass(e,"wj-state-disabled",!t);wijmo_1.setAttribute(e,"href",t?"":null);wijmo_1.setAttribute(e,"disabled",t?null:"disabled")};ColumnFilterEditor.prototype._updateSortButtonState=function(){var e=this.filter.column,t=e?e.currentSort:"",i="wj-state-active";wijmo_1.toggleClass(this._btnAsc,i,"+"==t);wijmo_1.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(!wijmo_1.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 wijmo_1.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);wijmo_1.moveFocus(this._edtCnd.hostElement,0)}else{this._showFilter(FilterType.Value);wijmo_1.moveFocus(this._edtVal.hostElement,0)}};ColumnFilterEditor.prototype._updateExceedsLinkVisibility=function(){if(this._edtVal&&this._aExceeds){var e=this._edtVal.exceedsMaxValues;this._aExceeds.style.display=e?"":"none";this._aExceeds.textContent=e?wijmo_1.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>'+wijmo_1.culture.FlexGridFilter.popupBody+'</p></div></div><div class="modal-footer"><button class="btn btn-primary wj-hide-ok">'+wijmo_1.culture.FlexGridFilter.popupOkButton+"</button></div></div>";this._popup=new wijmo_input_1.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}(wijmo_1.Control);exports.ColumnFilterEditor=ColumnFilterEditor;wijmo_1._registerModule("wijmo.grid.filter",selfModule);
14
+ "use strict";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 __)}}(),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.hasOwnProperty.call(e,i)&&(t[i]=e[i]);t.default=e;return t};Object.defineProperty(exports,"__esModule",{value:!0});var FilterType,wijmo_grid_1=require("@grapecity/wijmo.grid"),wijmo_1=require("@grapecity/wijmo"),wijmo_input_1=require("@grapecity/wijmo.input"),input=__importStar(require("@grapecity/wijmo.input")),selfModule=__importStar(require("@grapecity/wijmo.grid.filter"));exports.ColumnFilterEditorClsNames={filterType:"wj-filtertype",hostElement:"wj-columnfiltereditor",sortButtons:"wj-sort-buttons"};exports.ConditionFilterEditorClsNames={hostElement:"wj-conditionfilter-editor"};exports.FlexGridFilterClsNames={elemFilter:"wj-elem-filter",filter:"wj-filter",filterOff:"wj-filter-off",filterOn:"wj-filter-on",hostElement:"wj-columnfiltereditor"};exports.ValueFilterEditorClsNames={hostElement:"wj-valuefilter-editor",customModalText:"wj-custom-modal-text",modalFooter:"wj-valuefilter-modal-footer"};!function(e){e[e.None=0]="None";e[e.Condition=1]="Condition";e[e.Value=2]="Value";e[e.Both=3]="Both"}(FilterType=exports.FilterType||(exports.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._showIncludeSelection=!1;this.filterApplied=new wijmo_1.Event;this.editingFilter=new wijmo_1.Event;this.filterChanging=new wijmo_1.Event;this.filterChanged=new wijmo_1.Event;this.exclusiveValueSearchChanged=new wijmo_1.Event;this._showIncludeSelectionChanged=new wijmo_1.Event;this._filters=[];this._g=wijmo_1.asType(e,wijmo_grid_1.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();wijmo_1.copy(this,t);this._init()}FlexGridFilter.prototype._init=function(){var e=this,t=this.grid,_excludeRowFromFilter=function(t){var i=e.grid,l=e.excludedRowsSet;if(null!=i&&i.rows.length>t)if(i.itemsSource)if(i.rows[t]instanceof wijmo_grid_1._NewRowTemplate){var r=i.editableCollectionView.currentAddItem||i.rows[t].dataItem;r&&l.add(r)}else i.rows[t].dataItem&&l.add(i.rows[t].dataItem);else i.rows[t]&&l.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=wijmo_1.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=wijmo_1.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=wijmo_1.asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridFilter.prototype,"reApplyFilterOnUpdate",{get:function(){return this._includeUpdatedRowsInFilter},set:function(e){e!==this._includeUpdatedRowsInFilter&&(this._includeUpdatedRowsInFilter=wijmo_1.asBoolean(e))},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridFilter.prototype,"showIncludeSelection",{get:function(){return this._showIncludeSelection},set:function(e){if(e!=this._showIncludeSelection){this._showIncludeSelection=wijmo_1.asBoolean(e,!1);this._onShowIncludeSelectionChanged()}},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 l=new ColumnFilter(this,e);this._filters.push(l);return l}}return null};Object.defineProperty(FlexGridFilter.prototype,"defaultFilterType",{get:function(){return this._defFilterType},set:function(e){if((e=wijmo_1.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=wijmo_1.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 l=i.conditionFilter,r=i.valueFilter,n=r.uniqueValues&&r.uniqueValues.length;if(i&&i.column&&i.column.binding&&(i.isActive||n||i.filterType!=e.defaultFilterType)){var o={binding:i.column.binding};if(l.isActive){var a=l.condition1,s=l.condition2;o={binding:i.column.binding,type:"condition",condition1:{operator:a.operator,value:a.value},and:l.and,condition2:{operator:s.operator,value:s.value}}}else(r.isActive||n)&&(o={binding:i.column.binding,type:"value",uniqueValues:r.uniqueValues,sortValues:r.sortValues,maxValues:r.maxValues,exclusiveValueSearch:r.exclusiveValueSearch,showValues:r.showValues});i.filterType!=e.defaultFilterType&&(o.filterType=i.filterType);t.filters.push(o)}}));return JSON.stringify(t)},set:function(e){e=wijmo_1.asString(e);this.clear();if(e){var t=JSON.parse(e);this.defaultFilterType=t.defaultFilterType;for(var _loop_1=function(e){var l=t.filters[e],r=i._asColumn(l.binding);r||(r=new wijmo_grid_1.Column({binding:l.binding}));var n=i.getColumnFilter(r,!0);if(n){null!=l.filterType&&(n.filterType=wijmo_1.asEnum(l.filterType,FilterType));switch(l.type){case"condition":var o=n.conditionFilter;o.condition1.value=r.dataType==wijmo_1.DataType.Date?wijmo_1.changeType(l.condition1.value,r.dataType,null):l.condition1.value;o.condition1.operator=l.condition1.operator;o.and=l.and;o.condition2.value=r.dataType==wijmo_1.DataType.Date?wijmo_1.changeType(l.condition2.value,r.dataType,null):l.condition2.value;o.condition2.operator=l.condition2.operator;break;case"value":var a=n.valueFilter;a.uniqueValues=l.uniqueValues;["sortValues","maxValues","exclusiveValueSearch"].forEach((function(e){null!=l[e]&&(a[e]=l[e])}));a.showValues=l.showValues}}},i=this,l=0;l<t.filters.length;l++)_loop_1(l)}this.apply()},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridFilter.prototype,"activeEditor",{get:function(){return wijmo_1.Control.getControl(this._divEdt)},enumerable:!0,configurable:!0});FlexGridFilter.prototype.editColumnFilter=function(e,t,i){var l=this,r=this._g;this.closeEditor();e=this._asColumn(e);var n=new wijmo_grid_1.CellRangeEventArgs(r.cells,new wijmo_grid_1.CellRange(-1,e.index));if(this.onEditingFilter(n)){var o=wijmo_1.createElement('<div class="'+wijmo_input_1.DropDownClsNames.dropDownPanel+'"></div>'),a=this.getColumnFilter(e),s=new ColumnFilterEditor(o,a,this.showSortButtons);this._divEdt=o;this._edtCol=e;r.rightToLeft&&(o.dir="rtl");if(this.onFilterChanging(n)){n.cancel=!0;s.filterChanged.addHandler((function(){n.cancel=!1;setTimeout((function(){if(!n.cancel){l.excludedRowsSet=null;l.apply()}}),s._edtVal&&s._edtVal._isFiltering?wijmo_1.Control._SEARCH_DELAY+200:0)}));s.buttonClicked.addHandler((function(){l.closeEditor();r.focus();l.onFilterChanged(n)}));s.lostFocus.addHandler((function(){setTimeout((function(){var e=wijmo_1.Control.getControl(l._divEdt);e&&!e.containsFocus()&&l.closeEditor()}),10)}));var u=t?t.col:e.index,d=r.columns[u];t||d&&d.binding==e.binding||(u=r.selection.leftCol);r._edtHdl._commitRowEdits();r.scrollIntoView(-1,u,!0);var c=r.columnHeaders,p=t&&t.panel&&c&&t.panel._uid==c._uid?t.row:c.rows.length-1,_=u,h=i||c.getCellElement(p,_),m=h?null:c.getCellBoundingRect(p,_);h?wijmo_1.showPopup(o,h,!1,!1,!1):wijmo_1.showPopup(o,m);this._setAriaExpanded(h,!0);this._setAriaExpanded(r.cells.getCellElement(-1,_),!0);for(var f=s.hostElement.querySelectorAll("input"),b=0;b<f.length;b++){var v=f[b];if(v.offsetHeight>0&&v.tabIndex>-1&&!v.disabled){v.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);wijmo_1.setAttribute(i,"aria-expanded",t)}};FlexGridFilter.prototype.closeEditor=function(){var e=this._g,t=wijmo_1.Control.getControl(this._divEdt),i=this._edtCol;t&&wijmo_1.hidePopup(t.hostElement,(function(){t.dispose()}));if(i){var l=e.columnHeaders,r=l.rows.length?l.getCellElement(l.rows.length-1,i.index):null;this._setAriaExpanded(r,!1);r=e.cells.getCellElement(-1,i.index);this._setAriaExpanded(r,!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;wijmo_1.isFunction(i)&&i.call(e,this);this.onFilterApplied()};FlexGridFilter.prototype.clear=function(){if(this._filters.length){this._filters=[];this.excludedRowsSet=null;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._onShowIncludeSelectionChanged=function(e){this._showIncludeSelectionChanged.raise(this,e)};FlexGridFilter.prototype._asColumn=function(e){return wijmo_1.isString(e)?this._g.getColumn(e,!0):wijmo_1.isNumber(e)?this._g.columns[e]:wijmo_1.asType(e,wijmo_grid_1.Column,!1)};FlexGridFilter.prototype._filter=function(e){var t=this.excludedRowsSet;if(!this.reApplyFilterOnUpdate&&t.has(e))return!0;for(var i=this._filters,l=0;l<i.length;l++){var r=i[l];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,l=i.getMergedRange(t.panel,t.row,t.col)||new wijmo_grid_1.CellRange(t.row,t.col),r=i.columns[l.col],n=i._getBindingColumn(t.panel,t.row,r),o=t.cell;if(l.row2==t.panel.rows.length-1||r!=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){wijmo_1.toggleClass(o,exports.FlexGridFilterClsNames.filterOn,a.isActive);wijmo_1.toggleClass(o,exports.FlexGridFilterClsNames.filterOff,!a.isActive)}else{wijmo_1.removeClass(o,exports.FlexGridFilterClsNames.filterOn);wijmo_1.removeClass(o,exports.FlexGridFilterClsNames.filterOff)}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(r,a,o)}}}};FlexGridFilter.prototype._addFilterButton=function(e,t,i){var l=FlexGridFilter._WJC_FILTER,r=wijmo_1.createElement('<button class="'+wijmo_1.InputFormElementsClsNames.btn+" "+wijmo_1.GlyphClsNames.btnGlyph+" "+wijmo_1.UtilitesClsNames.right+" "+l+'" type="button" tabindex="-1"><span class='+wijmo_1.GlyphClsNames.filter+"></span></button>");wijmo_1.setAriaLabel(r,wijmo_1.culture.FlexGridFilter.ariaLabels.edit+" "+e.header);wijmo_1.setAttribute(r,"aria-haspopup","dialog");wijmo_1.setAttribute(r,"aria-expanded",!1);wijmo_1.setAttribute(r,"aria-describedby",e.describedById);wijmo_1.setAttribute(r,"aria-pressed",t.isActive);if(!i.querySelector("."+l)){1==i.children.length&&(i=i.querySelector("div")||i);i.insertBefore(r,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(wijmo_1.closestClass(e.target,FlexGridFilter._WJC_FILTER)){var i=this._g,l=i.hitTest(e.target);l.panel||(l=i.hitTest(e));if(l.panel&&i.columnHeaders&&i.cells&&(l.panel._uid==i.columnHeaders._uid||l.panel._uid==i.cells._uid&&-1==l.row)){var r=i.getMergedRange(l.panel,l.row,l.col)||new wijmo_grid_1.CellRange(l.row,l.col),n=i.columns[r.col],o=i._getBindingColumn(l.panel,l.row,n);if(this._divEdt&&this._edtCol==o){this.closeEditor();i.focus()}else o!=this._edtColPrev&&setTimeout((function(){t.editColumnFilter(o,l)}),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==wijmo_1.Key.Down||e.keyCode==wijmo_1.Key.Up)){var t=this.grid,i=t.selection,l=i.col>-1?t.columns[i.col]:null,r=l?t._getBindingColumn(t.cells,i.row,l):null,n=r&&r.dataMap&&r.dataMapEditor==wijmo_grid_1.DataMapEditor.DropDownList;if(this.filterColumns&&this.filterColumns.length>0&&!this.filterColumns.includes(r._binding._path)){e.preventDefault();return!1}if(t.activePanelType!=wijmo_grid_1.CellType.Cell&&t.activePanelType!=wijmo_grid_1.CellType.ColumnHeader){e.preventDefault();return!1}r&&r.editor instanceof wijmo_input_1.DropDown&&(n=!0);if(r&&!n){var o=this.getColumnFilter(r,!1);if(o&&o.filterType!=FilterType.None){this.editColumnFilter(r);e.preventDefault();e.stopPropagation()}}}};FlexGridFilter._WJC_FILTER=exports.FlexGridFilterClsNames.elemFilter;return FlexGridFilter}();exports.FlexGridFilter=FlexGridFilter;exports.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=wijmo_1.asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(ConditionFilter.prototype,"dataMap",{get:function(){return this._map},set:function(e){this._map=wijmo_1.asType(e,wijmo_grid_1.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,l=this._c2,r=!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(wijmo_1.isDate(e)){r=!this._hasTimePart();n=!this._hasDatePart();var a=FilterCondition._refDateTime;r?e=wijmo_1.DateTime.fromDateTime(e,a):n&&(e=wijmo_1.DateTime.fromDateTime(a,e))}else if(wijmo_1.isNumber(e)){var s=wijmo_1.Globalize,u=t.format,d=s.formatNumber(e,u);e=s.parseFloat(d,u)}var c=i.apply(e,r,n),p=l.apply(e,r,n);return i.isActive&&l.isActive?this._and?c&&p:c||p:i.isActive?c:!l.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=wijmo_1.culture.Globalize.calendar.patterns[e]||e;return/[yMd]+/.test(e)};ConditionFilter.prototype._hasTimePart=function(){var e=this._col.format;if(!e)return!1;e=wijmo_1.culture.Globalize.calendar.patterns[e]||e;return/[Hmst]+/.test(e)};ConditionFilter.prototype.implementsInterface=function(e){return"IColumnFilter"==e};return ConditionFilter}();exports.ConditionFilter=ConditionFilter;var ConditionFilterEditor=function(e){__extends(ConditionFilterEditor,e);function ConditionFilterEditor(t,i){var l=e.call(this,t)||this;l._canApply=!1;l.canApplyChanged=new wijmo_1.Event;l._filter=wijmo_1.asType(i,ConditionFilter,!1);var r=l.getTemplate();l.applyTemplate(wijmo_1.ControlClsNames.hostElement+" "+exports.ConditionFilterEditorClsNames.hostElement,r,{_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=wijmo_1.culture.FlexGridFilter,o=n.ariaLabels;wijmo_1.setAriaLabel(l._btnAnd,o.and);wijmo_1.setAriaLabel(l._btnOr,o.or);wijmo_1.setText(l._divHdr,n.header);wijmo_1.setText(l._spAnd,n.and);wijmo_1.setText(l._spOr,n.or);var a=wijmo_1.getUniqueId("cmb1");l._divHdr.htmlFor=a;l._divCmb1.id=a;l._cmb1=l._createOperatorCombo(l._divCmb1,o.op1);l._cmb2=l._createOperatorCombo(l._divCmb2,o.op2);l._val1=l._createValueInput(l._divVal1,o.val1);l._val2=l._createValueInput(l._divVal2,o.val2);l._val1.isDisabled=!0;l._cmb1.selectedIndexChanged.addHandler((function(e,t){l._val1.isDisabled=null==e.selectedValue;l.canApply=!l._val1.isDisabled||!l._val2.isDisabled}));l._val2.isDisabled=!0;l._cmb2.selectedIndexChanged.addHandler((function(e,t){l._val2.isDisabled=null==e.selectedValue;l.canApply=!l._val1.isDisabled||!l._val2.isDisabled}));var s=l.hostElement;l.addEventListener(s,"change",l._btnAndOrChanged.bind(l));l.addEventListener(s,"keydown",l._keydown.bind(l));setTimeout((function(){l.updateEditor()}));return l}Object.defineProperty(ConditionFilterEditor,"controlTemplate",{get:function(){ConditionFilterEditor._ctrlTemplate||(ConditionFilterEditor._ctrlTemplate='<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._ctrlTemplate},set:function(e){ConditionFilterEditor._ctrlTemplate=e},enumerable:!0,configurable:!0});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=wijmo_1.changeType(e.value,wijmo_1.DataType.String);this._val2.text=wijmo_1.changeType(t.value,wijmo_1.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,l=wijmo_1.culture.FlexGridFilter,r=l.stringOperators,n=wijmo_1.DataType;this._filter.dataMap||i.dataMap||(i.dataType==n.Date?r=l.dateOperators:i.dataType==n.Number?r=l.numberOperators:i.dataType==n.Boolean&&(r=l.booleanOperators));var o=new input.ComboBox(e,{itemsSource:r,displayMemberPath:"name",selectedValuePath:"op"});wijmo_1.setAriaLabel(o.inputElement,t);return o};ConditionFilterEditor.prototype._createValueInput=function(e,t){var i=this._filter,l=i.column,r=i.dataMap||l.dataMap,n=null,o=wijmo_1.DataType;if(l.dataType==o.Date)(n=i._hasDatePart()?i._hasTimePart()?new input.InputDateTime(e):new input.InputDate(e):new input.InputTime(e)).format=l.format;else if(l.dataType!=o.Number||r){(n=new input.ComboBox(e)).isEditable=!0;n.trimText=!1;if(r){n.itemsSource=r.getDisplayValues();n.caseSensitiveSearch=!!l.grid&&l.grid.caseSensitiveSearch}else l.dataType==o.Boolean&&(n.itemsSource=[!0,!1])}else(n=new input.InputNumber(e)).format=l.format;n.isRequired=!1;wijmo_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;wijmo_1.setAttribute(e,"aria-checked",t.toString());wijmo_1.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 wijmo_1.Key.Left:case wijmo_1.Key.Right:case wijmo_1.Key.Up:case wijmo_1.Key.Down:var l=t?this._btnOr:this._btnAnd;l.click();l.focus();e.preventDefault()}};ConditionFilterEditor._ctrlTemplate="";return ConditionFilterEditor}(wijmo_1.Control);exports.ConditionFilterEditor=ConditionFilterEditor;var Operator,ValueFilterSearchKind,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=wijmo_1.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=wijmo_1.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 l=this._strVal||this._val;wijmo_1.isString(e)&&(e=this._getCaseString(e));wijmo_1.isString(l)&&null==e&&(e="");wijmo_1.isDate(l)&&(t?l=wijmo_1.DateTime.fromDateTime(l,FilterCondition._refDateTime):i&&(l=wijmo_1.DateTime.fromDateTime(FilterCondition._refDateTime,l)));var r=Operator;switch(this._op){case null:return!0;case r.EQ:return null!=e&&null!=l?e.valueOf()==l.valueOf():e==l;case r.NE:return null!=e&&null!=l?e.valueOf()!=l.valueOf():e!=l;case r.GT:return e>l;case r.GE:return e>=l;case r.LT:return e<l;case r.LE:return e<=l;case r.BW:return!(null==this._strVal||!wijmo_1.isString(e))&&0==e.indexOf(this._strVal);case r.EW:return!!(null!=this._strVal&&wijmo_1.isString(e)&&e.length>=this._strVal.length)&&e.substr(e.length-this._strVal.length)==l;case r.CT:return!(null==this._strVal||!wijmo_1.isString(e))&&e.indexOf(this._strVal)>-1;case r.NC:return!(null==this._strVal||!wijmo_1.isString(e))&&e.indexOf(this._strVal)<0;case r.NBW:return!(null==this._strVal||!wijmo_1.isString(e))&&0!==e.indexOf(this._strVal);case r.NEW:return!(null==this._strVal||!wijmo_1.isString(e))&&e.substring(e.length-this._strVal.length)!==l}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}();exports.FilterCondition=FilterCondition;!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";e[e.NBW=10]="NBW";e[e.NEW=11]="NEW"}(Operator=exports.Operator||(exports.Operator={}));!function(e){e[e.Text=0]="Text";e[e.Regex=1]="Regex";e[e.Excel=2]="Excel"}(ValueFilterSearchKind=exports.ValueFilterSearchKind||(exports.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._showIncludeSelection=!1;this._col=e}Object.defineProperty(ValueFilter.prototype,"searchType",{get:function(){return this._searchType},set:function(e){this._searchType=wijmo_1.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=wijmo_1.asString(e)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"exclusiveValueSearch",{get:function(){return this._xValueSearch},set:function(e){if((e=wijmo_1.asBoolean(e))!==this._xValueSearch){this._xValueSearch=wijmo_1.asBoolean(e);e&&(this._filterText="")}},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"maxValues",{get:function(){return this._maxValues},set:function(e){this._maxValues=wijmo_1.asNumber(e,!1,!0)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"uniqueValues",{get:function(){return this._uniqueValues},set:function(e){this._uniqueValues=wijmo_1.asArray(e)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"sortValues",{get:function(){return this._sortValues},set:function(e){this._sortValues=wijmo_1.asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"dataMap",{get:function(){return this._map},set:function(e){this._map=wijmo_1.asType(e,wijmo_grid_1.DataMap,!0)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,"showIncludeSelection",{get:function(){return this._showIncludeSelection},set:function(e){e!=this._showIncludeSelection&&(this._showIncludeSelection=wijmo_1.asBoolean(e,!1))},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)||"":wijmo_1.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,l=wijmo_1.Globalize.format;if(this.uniqueValues){this.uniqueValues.forEach((function(e){t.push({value:e,text:l(e,i.format)})}));return t}var r={},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)||"":l(u,i.format);if(!r[d]){r[d]=!0;t.push({value:u,text:d})}}return t};ValueFilter.prototype.implementsInterface=function(e){return"IColumnFilter"==e};return ValueFilter}();exports.ValueFilter=ValueFilter;var ValueFilterEditor=function(e){__extends(ValueFilterEditor,e);function ValueFilterEditor(t,i){var l=e.call(this,t)||this;l._canApply=!1;l._isFiltering=!1;l.canApplyChanged=new wijmo_1.Event;l._filter=wijmo_1.asType(i,ValueFilter,!1);var r=l.getTemplate();l.applyTemplate(wijmo_1.ControlClsNames.hostElement+" "+exports.ValueFilterEditorClsNames.hostElement,r,{_divFilter:"div-filter",_cbSelectAll:"cb-select-all",_spSelectAll:"sp-select-all",_cbIncludeSel:"cb-include-sel",_spIncludeSel:"sp-include-sel",_lblIncludeSel:"lbl-include-sel",_divOptions:"div-options",_divValues:"div-values",_divExceeds:"div-exceeds",_aExceeds:"a-exceeds"});l._cbSelectAll.tabIndex=0;l._cbIncludeSel.tabIndex=0;var n=wijmo_1.culture.FlexGridFilter;wijmo_1.setText(l._spSelectAll,n.selectAll);wijmo_1.setText(l._spIncludeSel,n.includeSelection);wijmo_1.setText(l._aExceeds,n.exceedsMaxValues);var o=l._view=new wijmo_1.CollectionView(null,{sortNulls:wijmo_1.SortNulls.First,filter:l._filterValues.bind(l)});if(i.sortValues){var a=i.column.dataMap||i.dataMap?"text":"value",s=i.column.dataType!=wijmo_1.DataType.Boolean;o.sortDescriptions.push(new wijmo_1.SortDescription(a,s))}o.collectionChanged.addHandler(l._updateSelectAllCheck,l);l._filterText="";l._rxFilter=null;l._cmbFilter=new input.ComboBox(l._divFilter,{trimText:!1,isRequired:!1,placeholder:n.search});l._cmbFilter.isEditable=!0;l._lbValues=new input.ListBox(l._divValues,{displayMemberPath:"text",checkedMemberPath:"show",itemsSource:l._view,itemFormatter:function(e,t){return t||n.null},checkedItemsChanged:function(e){return l._updateSelectAllCheck()}});wijmo_1.setAttribute(l._divValues,"aria-label",wijmo_1.culture.FlexGridFilter.ariaLabels.listBox);wijmo_1.setAriaLabel(l._cmbFilter.inputElement,n.ariaLabels.search);wijmo_1.setAttribute(l._lbValues.hostElement,"aria-multiselectable",!0);l._cmbFilter.inputElement.addEventListener("input",l._filterTextChanged.bind(l));l._cbSelectAll.addEventListener("click",l._cbSelectAllClicked.bind(l));if(!l._popup){l._initPopup();l._aExceeds&&l.addEventListener(l._aExceeds,"click",(function(e){e.preventDefault();l._popup.show(!0)}))}l.updateEditor();l._filter.showValues?l._initialItems=o.sourceCollection.filter((function(e){return l._filter.showValues[e.text||e.value]||!1})):l._initialItems=l._lbValues.checkedItems;return l}Object.defineProperty(ValueFilterEditor,"controlTemplate",{get:function(){ValueFilterEditor._ctrlTemplate||(ValueFilterEditor._ctrlTemplate='<div><div wj-part="div-filter"></div><div wj-part="div-options" class="'+input.ListBoxClsNames.listBoxItem+'"><label><input wj-part="cb-select-all" type="checkbox"> <span wj-part="sp-select-all"></span></label><br /><label wj-part="lbl-include-sel"><input wj-part="cb-include-sel" type="checkbox"> <span wj-part="sp-include-sel"></span></label></div><div wj-part="div-values"></div><div wj-part="div-exceeds"><a wj-part="a-exceeds"></a></div></div>');return ValueFilterEditor._ctrlTemplate},set:function(e){ValueFilterEditor._ctrlTemplate=e},enumerable:!0,configurable:!0});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});Object.defineProperty(ValueFilterEditor.prototype,"_shouldIncludeSelection",{get:function(){return this._filter.showIncludeSelection&&this._cbIncludeSel.checked},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 l=this._filter.showValues;if(l&&0!=Object.keys(l).length){for(var r in l)for(var n=0;n<i.length;n++)if(i[n].text==r){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=this._getSearchExp(o,a);this._filter.showIncludeSelection&&!this.hostElement.contains(this._lblIncludeSel)?this._divOptions.appendChild(this._lblIncludeSel):this._filter.showIncludeSelection||this._lblIncludeSel.remove();var s=this._view;s.pageSize=this._filter.maxValues;s.sourceCollection=i;setTimeout((function(){e._adjustWidths()}),0);this._updateExceedsMaxValuesDisplay()};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=this._shouldIncludeSelection&&this._filter.showValues||{};for(var i=0;i<t.length;i++){var l=t[i];l.show&&(e[l.text]=!0)}}var r=this._filter;r.showValues=e;r.filterText=this._filterText};ValueFilterEditor.prototype.updateFilter=function(){var e=this;this._isFiltering?setTimeout((function(){e._updateFilter()}),wijmo_1.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();e._updateExceedsMaxValuesDisplay();if(!t){var l=e._initialItems;if(l.length&&e._view.sourceCollection.indexOf(l[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}),wijmo_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(wijmo_1.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,l=this._getItems(),r=0;r<l.length;r++)l[r].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,l=0;l<e.length;l++){e[l].show?t++:i++;if(t&&i)break}wijmo_1.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("."+input.ListBoxClsNames.listBoxItem+" label");if(i.length){for(var l=0;l<i.length;l++)t=Math.max(t,i[l].scrollWidth);if(t){var r=e.querySelectorAll("."+input.ListBoxClsNames.listBoxItem);if(r.length){var n=r[0],o=getComputedStyle(n),a=parseFloat(o.paddingLeft)+parseFloat(o.paddingRight);for(l=0;l<r.length;l++)r[l].style.width=t+a+"px"}}}}};Object.defineProperty(ValueFilterEditor.prototype,"exceedsMaxValues",{get:function(){return!(!this._view||!this._view._view)&&this._view._view.length>this.filter.maxValues},enumerable:!0,configurable:!0});ValueFilterEditor.prototype._updateExceedsMaxValuesDisplay=function(){this._aExceeds.style.display=this.exceedsMaxValues?"":"none"};ValueFilterEditor.prototype._initPopup=function(){var e=document.createElement("div");e.innerHTML='<div role="dialog"><div class='+input.PopupClsNames.dialogBody+"><div class="+exports.ValueFilterEditorClsNames.customModalText+"><p>"+wijmo_1.culture.FlexGridFilter.popupBody+'</p></div></div><div class="'+input.PopupClsNames.dialogFooter+" "+exports.ValueFilterEditorClsNames.modalFooter+'" ><button class="btn btn-primary '+wijmo_1.UtilitesClsNames.hideOk+'">'+wijmo_1.culture.FlexGridFilter.popupOkButton+"</button></div></div>";this._popup=new input.Popup(e,{modal:!0,fadeIn:!0,fadeOut:!0})};ValueFilterEditor._ctrlTemplate="";return ValueFilterEditor}(wijmo_1.Control);exports.ValueFilterEditor=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._valueFilter.showIncludeSelection=e.showIncludeSelection;this._conditionFilter=new ConditionFilter(t);e.exclusiveValueSearchChanged.addHandler((function(e){i._valueFilter.exclusiveValueSearch=e.exclusiveValueSearch}));e._showIncludeSelectionChanged.addHandler((function(e){i._valueFilter.showIncludeSelection=e.showIncludeSelection}))}Object.defineProperty(ColumnFilter.prototype,"filterType",{get:function(){return null!=this._filterType?this._filterType:this._owner.defaultFilterType},set:function(e){if((e=wijmo_1.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}();exports.ColumnFilter=ColumnFilter;wijmo_1._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",active:"active",listBox:"List of options available for filtering"},ascending:"↑ Ascending",descending:"↓ Descending",apply:"Apply",cancel:"Cancel",clear:"Clear",conditions:"Filter by Condition",values:"Filter by Value",search:"Search",selectAll:"Select All",includeSelection:"Include Current Selection",null:"(nothing)",exceedsMaxValues:"Not all items showing",popupBody:"This column has more than 250 unique items. Only the first 250 unique items are displayed.",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:"Does not begin with",op:Operator.NBW},{name:"Ends with",op:Operator.EW},{name:"Does not end with",op:Operator.NEW},{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,l){void 0===l&&(l=!0);var r=e.call(this,t,null,!0)||this;r.filterChanged=new wijmo_1.Event;r.buttonClicked=new wijmo_1.Event;r._filter=wijmo_1.asType(i,ColumnFilter);var n=r.getTemplate();r.applyTemplate(wijmo_1.ControlClsNames.hostElement+" "+wijmo_1.ControlClsNames.content+" "+wijmo_1.ControlClsNames.content+" "+exports.ColumnFilterEditorClsNames.hostElement,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=wijmo_1.culture.FlexGridFilter,a=o.ariaLabels,s=r.hostElement,u=r.filter.column,d=u.grid.collectionView;wijmo_1.setAttribute(s,"role","dialog");wijmo_1.setAriaLabel(s,a.dialog+" "+u.header);wijmo_1.setAriaLabel(r._btnAsc,a.asc);wijmo_1.setAriaLabel(r._btnDsc,a.dsc);wijmo_1.setText(r._btnAsc,o.ascending);wijmo_1.setText(r._btnDsc,o.descending);wijmo_1.setText(r._aVal,o.values);wijmo_1.setText(r._aCnd,o.conditions);wijmo_1.setText(r._btnApply,o.apply);wijmo_1.setText(r._btnCancel,o.cancel);wijmo_1.setText(r._btnClear,o.clear);var c=r.filter.conditionFilter.isActive||0==(i.filterType&FilterType.Value)?FilterType.Condition:FilterType.Value;r._showFilter(c);if(!u.allowSorting){wijmo_1.enable(r._btnAsc,!1);wijmo_1.enable(r._btnDsc,!1)}l&&d&&d.canSort||(r._divSort.style.display="none");r._updateSortButtonState();var p=r._btnClicked.bind(r);r._btnApply.addEventListener("click",p);r._btnCancel.addEventListener("click",p);r._btnClear.addEventListener("click",p);r._btnAsc.addEventListener("click",p);r._btnDsc.addEventListener("click",p);r._aVal.addEventListener("click",p);r._aCnd.addEventListener("click",p);r.addEventListener(s,"keydown",(function(e){if(!e.defaultPrevented){var t=e.target.tagName.match(/^(a|button)$/i);switch(e.keyCode){case wijmo_1.Key.Space:if(t){r._btnClicked(e);e.preventDefault()}break;case wijmo_1.Key.Enter:if(t)r._btnClicked(e);else{r.updateFilter();r.onFilterChanged();r.onButtonClicked()}e.preventDefault();break;case wijmo_1.Key.Escape:r.onButtonClicked();e.preventDefault();break;case wijmo_1.Key.Tab:wijmo_1.moveFocus(r.hostElement,e.shiftKey?-1:1);e.preventDefault()}}}));r.addEventListener(window,"resize",(function(){r.isTouching||r._wasTouching||r.onButtonClicked()}));return r}Object.defineProperty(ColumnFilterEditor,"controlTemplate",{get:function(){ColumnFilterEditor._ctrlTemplate||(ColumnFilterEditor._ctrlTemplate='<div><div wj-part="div-sort" class="'+exports.ColumnFilterEditorClsNames.sortButtons+'"><button wj-part="btn-asc" class="'+wijmo_1.InputFormElementsClsNames.btn+'"></button>&nbsp;&nbsp;&nbsp;<button wj-part="btn-dsc" class="'+wijmo_1.InputFormElementsClsNames.btn+'"></button></div><div wj-part="div-type" class="'+exports.ColumnFilterEditorClsNames.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="'+wijmo_1.InputFormElementsClsNames.btn+'"></button>&nbsp;&nbsp;<button wj-part="btn-cancel" class="'+wijmo_1.InputFormElementsClsNames.btn+'"></button>&nbsp;&nbsp;<button wj-part="btn-clear" class="'+wijmo_1.InputFormElementsClsNames.btn+'"></button></div></div>');return ColumnFilterEditor._ctrlTemplate},set:function(e){ColumnFilterEditor._ctrlTemplate=e},enumerable:!0,configurable:!0});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){wijmo_1.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){wijmo_1.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();this._edtVal._updateExceedsMaxValuesDisplay();wijmo_1.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();wijmo_1.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){wijmo_1.toggleClass(e,wijmo_1.ControlStateClsNames.disabled,!t);wijmo_1.setAttribute(e,"href",t?"":null);wijmo_1.setAttribute(e,"disabled",t?null:"disabled")};ColumnFilterEditor.prototype._updateSortButtonState=function(){var e=this.filter.column,t=e?e.currentSort:"",i=wijmo_1.ControlStateClsNames.active,l=wijmo_1.culture.FlexGridFilter.ariaLabels;if("+"===t){wijmo_1.addClass(this._btnAsc,i);this._btnAsc.setAttribute("aria-label",l.asc+" "+l.active)}else if("-"===t){wijmo_1.addClass(this._btnDsc,i);this._btnDsc.setAttribute("aria-label",l.dsc+" "+l.active)}};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(!wijmo_1.hasClass(i,wijmo_1.ControlStateClsNames.disabled))if(i!=this._aVal)if(i!=this._aCnd){if(i==this._btnAsc||i==this._btnDsc){var l=this.filter.column,r=l.sortMemberPath||l.binding,n=l.grid.collectionView.sortDescriptions;n.deferUpdate((function(){n.clear();n.push(new wijmo_1.SortDescription(r,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);wijmo_1.moveFocus(this._edtCnd.hostElement,0)}else{this._showFilter(FilterType.Value);wijmo_1.moveFocus(this._edtVal.hostElement,0)}};ColumnFilterEditor._ctrlTemplate="";return ColumnFilterEditor}(wijmo_1.Control);exports.ColumnFilterEditor=ColumnFilterEditor;wijmo_1._registerModule("wijmo.grid.filter",selfModule);
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@grapecity/wijmo.grid.filter",
3
- "version": "5.20241.19",
3
+ "version": "5.20242.30",
4
4
  "description": "UI library for pure JS, Angular, React, Vue and more...",
5
5
  "author": "MESCIUS inc",
6
6
  "license": "Commercial",
7
7
  "main": "./index.js",
8
8
  "types": "./index.d.ts",
9
9
  "dependencies": {
10
- "@grapecity/wijmo": "5.20241.19",
11
- "@grapecity/wijmo.input": "5.20241.19",
12
- "@grapecity/wijmo.grid": "5.20241.19"
10
+ "@grapecity/wijmo": "5.20242.30",
11
+ "@grapecity/wijmo.input": "5.20242.30",
12
+ "@grapecity/wijmo.grid": "5.20242.30"
13
13
  },
14
14
  "homepage": "https://developer.mescius.com/wijmo",
15
15
  "bugs": {