@grapecity/wijmo.grid.filter 5.20252.44 → 5.20261.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  # Wijmo
4
4
 
5
+ **Note: Starting from 2027v1, Wijmo npm packages will be published only under the @mescius scope. Users using the @grapecity scope during the 2026 period will need to migrate to @mescius.**
6
+
7
+ ---
8
+
5
9
  Wijmo is a complete set of [JavaScript UI components](https://developer.mescius.com/wijmo?utm_source=npmwebsite&utm_medium=prospects&utm_campaign=wijmo_npm) for enterprise development. It includes a powerful data grid, charts, pivot tools, inputs, and much more and is available in your favorite framework, including [Angular](https://developer.mescius.com/wijmo/angular-ui-components?utm_source=npmwebsite&utm_medium=prospects&utm_campaign=wijmo_npm), [React](https://developer.mescius.com/wijmo/react-ui-components?utm_source=npmwebsite&utm_medium=prospects&utm_campaign=wijmo_npm), and [Vue](https://developer.mescius.com/wijmo/vue-ui-components?utm_source=npmwebsite&utm_medium=prospects&utm_campaign=wijmo_npm).
6
10
 
7
11
  Cut your development time in half with Wijmo's lightweight, high-performance JavaScript UI components.
@@ -122,6 +126,10 @@ Submit questions to our team of [Wijmo Experts](https://developer.mescius.com/fo
122
126
 
123
127
  ## Wijmo JP
124
128
 
129
+ **注:2027v1以降、Wijmoのnpmパッケージは@mesciusスコープでのみ公開されます。2026年期間中に@grapecityスコープを使用しているユーザーは、@mesciusに移行する必要があります。**
130
+
131
+ ---
132
+
125
133
  [Wijmo](https://developer.mescius.jp/wijmo)は、Webアプリケーション開発に最適な数多くのUIを搭載するJavaScriptコンポーネントセットです。高速・軽量であり、開発工数の削減に大きく寄与します。データグリッド、チャート、ピボットテーブル、入力など、業務アプリケーション開発に必要となるコントロールを多数収録し、またAngularやReact、Vue.jsといったJavaScriptフレームワークにも対応しています。
126
134
 
127
135
  なお、日本語版での動作保証は日本語版サイトで公開しているバージョンのみとなります。
@@ -161,6 +169,10 @@ Submit questions to our team of [Wijmo Experts](https://developer.mescius.com/fo
161
169
 
162
170
  ## Wijmo CN
163
171
 
172
+ **注意:从 2027v1 开始,Wijmo 的 npm 包将仅在 @mescius 作用域下发布。在 2026 年期间仍在使用 @grapecity 作用域的用户,需要迁移到 @mescius。**
173
+
174
+ ---
175
+
164
176
  Wijmo 是一套完整的企业级 JavaScript UI 开发组件。 它包括强大的表格、图表、数据透视、输入等组件,并且可以支持各类主流前端框架,包括 Angular、React 和 Vue。
165
177
 
166
178
  Wijmo 的轻量级、高性能 JavaScript UI 组件可以将您的开发时间缩短一半。
@@ -255,6 +267,11 @@ Wijmo 开发包可以从 [这里](https://www.grapecity.com.cn/developer/wijmojs
255
267
 
256
268
  # Wijmo KR
257
269
 
270
+ **참고: 2027 v1부터 Wijmo npm 패키지는 @mescius 스코프에서만 제공됩니다.
271
+ 현재 @grapecity 스코프를 사용 중인 사용자는 2026년 내에 @mescius 스코프로 마이그레이션해 주시기 바랍니다.**
272
+
273
+ ---
274
+
258
275
  Wijmo(위즈모)는 고성능의 Web App 개발을 위한 완전한 JavaScript UI 컴포넌트 세트입니다. 강력한 데이터 그리드(DataGrid), 차트(Chart), 피벗 도구(OLAP/Pivop), 입력(Input) 등 개발에 필요한 100+의 다양한 컨트롤이 포함되어 있습니다.
259
276
 
260
277
  또한, Wijmo는 Angular, React 및 Vue 등 개발자가 빠른 웹 개발과 효율적인 코드 유지 관리를 쉽게 할 수 있도록 JavaScript 프레임워크에 대한 지원을 제공합니다.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * Wijmo Library 5.20252.44
3
+ * Wijmo Library 5.20261.48
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"),wijmo_nav_1=require("@grapecity/wijmo.nav"),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",filterHeader:"wj-filter-header"};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",filterTopBorder:"wj-filter-tabPanel-top-border"};exports.ValueFilterEditorClsNames={hostElement:"wj-valuefilter-editor",customModalText:"wj-custom-modal-text",modalFooter:"wj-valuefilter-modal-footer",filterOptions:"wj-filter-options"};var FilterType,FilterMode,ValueFilterSearchKind,Operator;!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={}));!function(e){e[e.SingleFilter=0]="SingleFilter";e[e.MultiFilter=1]="MultiFilter"}(FilterMode=exports.FilterMode||(exports.FilterMode={}));class FlexGridFilter{constructor(e,t){this._showIcons=!0;this._showSort=!0;this._defFilterType=FilterType.Both;this._defFilterMode=FilterMode.SingleFilter;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));this._g.columns.collectionChanged.addHandler(this._adjustBindingColumns,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(wijmo_1._ENV_TOOLS.isSameInstance(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 defaultFilterMode(){return this._defFilterMode}set defaultFilterMode(e){if((e=wijmo_1.asEnum(e,FilterMode,!1))!=this._defFilterMode){this._defFilterMode=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>`),n=this.getColumnFilter(e),a=new ColumnFilterEditor(r,n,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;a.filterChanged.addHandler(()=>{s.cancel=!1;setTimeout(()=>{s.cancel||this.apply()},a._edtVal&&a._edtVal._isFiltering?wijmo_1.Control._SEARCH_DELAY+200:0)});a.buttonClicked.addHandler(()=>{this.closeEditor();l.focus();this.onFilterChanged(s)});a.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,_=t&&t.panel&&h&&t.panel._uid==h._uid?t.row:h.rows.length-1,u=o,c=i||h.getCellElement(_,u),p=c?null:h.getCellBoundingRect(_,u);c?wijmo_1.showPopup(r,c,!1,!1,!1):wijmo_1.showPopup(r,p);let m=e.header,w=wijmo_1.format(wijmo_1.culture.FlexGridFilter.accessibilityHelperMessage.filter.filterColumn,{name:m});l.announceShortcut(w);this._adjustTabPanelStyle(n);this._setAriaExpanded(c,!0);this._setAriaExpanded(l.cells.getCellElement(-1,u),!0);let f=a.hostElement.querySelectorAll("input");for(let e=0;e<f.length;e++){let t=f[e];if(t.offsetHeight>0&&t.tabIndex>-1&&!t.disabled){t.focus();break}}a.containsFocus()||a.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;if(t){wijmo_1.hidePopup(t.hostElement,()=>{t.dispose()});let i=wijmo_1.culture.FlexGridFilter.accessibilityHelperMessage.filter.closeFilterDialog;e.announceShortcut(i)}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()}this.excludedRowsSet=null;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)}_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}_adjustTabPanelStyle(e){if(e){const t=e.filterType!==FilterType.Both,i=document.querySelector('[wj-part="tabpanes"]');t&&i&&wijmo_1.toggleClass(i,exports.FlexGridFilterClsNames.filterTopBorder)}}_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),n=this._filterColumns;n&&n.length&&n.indexOf(s.binding)<0&&n.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);if(0==t.row){r=e.cells.getCellElement(-1,t.col);r&&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){const t=e.ctrlKey||e.metaKey,i=!e.defaultPrevented&&!t&&e.altKey,l=i&&e.keyCode===wijmo_1.Key.Up,s=i&&e.keyCode===wijmo_1.Key.Down,r=!e.defaultPrevented&&t&&e.shiftKey&&e.keyCode===wijmo_1.Key.F;if(l||s||r){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,n=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&&(n=!0);if(s&&(!n||r)){let t=this.getColumnFilter(s,!1);if(t&&t.filterType!=FilterType.None){this.editColumnFilter(s);e.preventDefault();e.stopPropagation()}}}}_removeFilter(e){this._filters.splice(e,1)}_adjustBindingColumns(e,t){if(t.action==wijmo_1.NotifyCollectionChangedAction.Reset){const e=this._filters;if(e&&e.length>0)for(let t=e.length-1;t>=0;t--){const i=e[t],l=i.column;if(l.binding){const e=this._asColumn(l.binding);e?e!==l&&i._setColumn(e):this._removeFilter(t)}}}}}FlexGridFilter._WJC_FILTER=exports.FlexGridFilterClsNames.elemFilter;exports.FlexGridFilter=FlexGridFilter;exports.empty={};class ColumnFilter{constructor(e,t){this._ariaLabel=wijmo_1.culture.FlexGridFilter.ariaLabels.dialog;this._owner=e;this._col=t;this._valueFilter=new ValueFilter(t);this._valueFilter.setColumnFilter(this);this._valueFilter.exclusiveValueSearch=e.exclusiveValueSearch;this._valueFilter.showIncludeSelection=e.showIncludeSelection;this._conditionFilter=new ConditionFilter(t);this._conditionFilter.setColumnFilter(this);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 filterMode(){return null!=this._filterMode?this._filterMode:this._owner.defaultFilterMode}set filterMode(e){if((e=wijmo_1.asEnum(e,FilterMode,!0))!=this._filterMode){let t=this.isActive;this.clear();this._filterMode=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}_setColumn(e){this._col=e;this._valueFilter&&this._valueFilter._setColumn(e);this._conditionFilter&&this._conditionFilter._setColumn(e)}get ariaLabel(){return this._ariaLabel}set ariaLabel(e){e!=this._ariaLabel&&(this._ariaLabel=e)}get isActive(){return this._conditionFilter.isActive||this._valueFilter.isActive}apply(e){let t=this._conditionFilter.apply(e);this._valueFilter._cancelFilter||(t=t&&this._valueFilter.apply(e));return t}clear(){this._valueFilter.clear();this._conditionFilter.clear()}implementsInterface(e){return"IColumnFilter"==e}}exports.ColumnFilter=ColumnFilter;!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._allValues=null;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}_setColumn(e){this._col=e}get isActive(){let e=null!=this._values;return this._columnFilter&&this._columnFilter.filterMode===FilterMode.MultiFilter?e:e&&Object.keys(this._values).length>0}apply(e){let t=this.column;if(!t||!t._binding||!this.isActive)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,n=r?r.sourceCollection:[];if(e&&r&&r.sourceCollection&&r.filter)try{this._columnFilter&&this._columnFilter.filterMode===FilterMode.MultiFilter&&this._columnFilter.conditionFilter.isActive?this._cancelFilter=!0:FlexGridFilter._skipColumn=this._col;let e=[];for(let t=0;t<n.length;t++)r.filter(n[t])&&e.push(n[t]);n=e}finally{this._cancelFilter=!1;FlexGridFilter._skipColumn=null}for(let e=0;e<n.length;e++){let r=i._binding.getValue(n[e]),a=this.dataMap?this.dataMap.getDisplayValue(r)||"":i.dataMap?i.dataMap.getDisplayValue(r)||"":l(r,i.format);if(!s[a]){s[a]=!0;t.push({value:r,text:a})}}return t}implementsInterface(e){return"IColumnFilter"==e}setColumnFilter(e){this._columnFilter=e}updateShowStatus(e){if(this.showValues&&0!=Object.keys(this.showValues).length){for(let t in this.showValues)for(let i=0;i<e.length;i++)if(e[i].text==t){e[i].show=!0;break}}else e.forEach(e=>e.show=!0);return e}setInitialAllValues(){let e=this.getUniqueValues(!1);this._allValues=this.updateShowStatus(e)}}exports.ValueFilter=ValueFilter;class ValueFilterEditor extends wijmo_1.Control{constructor(e,t){super(e);this._canApply=!1;this._isFiltering=!1;this._filterTextChangedBnd=this._filterTextChanged.bind(this);this._cbSelectAllClickedBnd=this._cbSelectAllClicked.bind(this);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;this._divExceeds.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);wijmo_1.setAttribute(this._divValues,"aria-live","polite");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,keyActionPrintCharacters:0,keyActionTab:0});this._cmbFilter.isEditable=!0;const r=this._divFilter.querySelector(".wj-input-group");if(r){const e=document.createElement("span");e.classList.add("wj-glyph-search");r.insertBefore(e,r.firstChild)}this._lbValues=new input.ListBox(this._divValues,{displayMemberPath:"text",checkedMemberPath:"show",itemsSource:this._view,itemFormatter:(e,t)=>t||l.null,checkedItemsChanged:e=>this._updateSelectAllCheck()});this._lbValues._isNeedUpdateBnd=this._isSingleFilterMode();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._filterTextChangedBnd);this._cbSelectAll.addEventListener("click",this._cbSelectAllClickedBnd);if(!this._popup){this._initPopup();this._aExceeds&&this.addEventListener(this._aExceeds,"click",e=>{e.preventDefault();this._popup.show(!0)})}this.updateEditor();wijmo_1.setAttribute(this._lbValues.hostElement,"tabindex","-1");this._filter.showValues?this._initialItems=s.sourceCollection.filter(e=>this._filter.showValues[e.text||e.value]||!1):this._initialItems=this._lbValues.checkedItems;this._isSingleFilterMode()||this._filter.setInitialAllValues()}static get controlTemplate(){ValueFilterEditor._ctrlTemplate||(ValueFilterEditor._ctrlTemplate=`<div><div wj-part="div-filter"></div><div wj-part="div-options" class="${input.ListBoxClsNames.listBoxItem} ${exports.ValueFilterEditorClsNames.filterOptions}"><label wj-part="select-all-container"><input wj-part="cb-select-all" type="checkbox" class="wj-custom-checkbox"> <span wj-part="sp-select-all"></span></label><br /><label wj-part="lbl-include-sel"><input wj-part="cb-include-sel" type="checkbox" class="wj-custom-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&&this._isSingleFilterMode())t.forEach(e=>e.show=!0);else for(let e in i)for(let i=0;i<t.length;i++)if(t[i].text==e){t[i].show=!0;break}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;this._adjustWidthsTimer=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,t=this._filter,i=null;e=this._isSingleFilterMode()?this._getItems():this._filter._allValues=wijmo_1.replaceItems(this._filter._allValues,this._view.sourceCollection);if(!this._isSingleFilterMode()||this._filterText||this._cbSelectAll.indeterminate){i=this._shouldIncludeSelection&&this._filter.showValues||{};for(let t=0;t<e.length;t++){let l=e[t];l.show&&(i[l.text]=!0)}}t.showValues=i;t.filterText=this._filterText}updateFilter(){this._isFiltering?this._updateFilterTimer=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(this._isSingleFilterMode()){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}}}else this._filter.filterText=e;if(this._filter.exclusiveValueSearch){this._cbSelectAll.checked=!1;this._cbSelectAll.click()}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.replace(/([.+^$[\]\\(){}|-])/g,"\\$1");i=i.replace(/~~/g,"__`$0`__");i=i.replace(/~\?/g,"__`$1`__");i=i.replace(/~\*/g,"__`$2`__");i=i.replace(/~(.)/g,"$1");i=i.replace(/(\?+)/g,(function(e,t){return Array.from(t).map(e=>".").join("")}));i=i.replace(/(\*+)/g,(function(e,t){return Array.from(t).map(e=>".*").join("")}));i=i.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)}_getActualItems(){return this._isSingleFilterMode()?this._getItems():this.exceedsMaxValues?this._view._view:this._view.items}_cbSelectAllClicked(){let e=this._cbSelectAll.checked,t=this._divValues.scrollTop,i=this._getActualItems();for(let t=0;t<i.length;t++)i[t].show=e;this._view.refresh();this._divValues.scrollTop=t;this._adjustWidthsTimer=setTimeout(()=>{this._adjustWidths()},0)}_updateSelectAllCheck(){let e=this._getActualItems(),t=0,i=0;for(let l=0;l<e.length;l++){e[l].show?t++:i++;if(t&&i)break}let l=t&&i?null:t>0;wijmo_1.setChecked(this._cbSelectAll,l);null==l?this._cbSelectAll.setAttribute("data-indeterminate","true"):this._cbSelectAll.removeAttribute("data-indeterminate");this.canApply=t>0}_adjustWidths(){let e=this._lbValues.hostElement;if(e&&e.offsetHeight>0){let t=0,i=e.querySelectorAll("."+input.ListBoxClsNames.listBoxItem);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)for(let e=0;e<i.length;e++)i[e].style.width=t+"px"}}}}get exceedsMaxValues(){return!(!this._view||!this._view._view)&&this._view._view.length>this.filter.maxValues}_updateExceedsMaxValuesDisplay(){this._divExceeds.style.display=this.exceedsMaxValues?"":"none"}_initPopup(){let e=document.createElement("div");const t=this.hostElement.getAttribute("lang");e.innerHTML=`\n <div role="dialog" aria-modal="true" aria-describedby="dialogDesc" ${t?`lang="${t}"`:""}><div class=${input.PopupClsNames.dialogBody}><div class=${exports.ValueFilterEditorClsNames.customModalText}><p id="dialogDesc">`+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})}_isSingleFilterMode(){return!this._filter._columnFilter||this._filter._columnFilter.filterMode==FilterMode.SingleFilter}dispose(){if(this._lbValues){this._lbValues.dispose();this._lbValues=null}this._cbSelectAll&&this._cbSelectAll.removeEventListener("click",this._cbSelectAllClickedBnd);if(this._cmbFilter){this._cmbFilter.inputElement&&this._cmbFilter.inputElement.removeEventListener("input",this._filterTextChangedBnd);this._cmbFilter.dispose();this._cmbFilter=null}if(this._view){this._view.collectionChanged.removeHandler(this._updateSelectAllCheck,this);this._view=null}if(this._adjustWidthsTimer){clearTimeout(this._adjustWidthsTimer);this._adjustWidthsTimer=null}if(this._updateFilterTimer){clearTimeout(this._updateFilterTimer);this._updateFilterTimer=null}if(this._toFilter){clearTimeout(this._toFilter);this._toFilter=null}if(this._popup&&!this._popup.isVisible){this._popup.dispose();this._popup=null}this._filter=null;this._initialItems=null;this._rxFilter=null;this._filterText=null;super.dispose()}}ValueFilterEditor._ctrlTemplate="";exports.ValueFilterEditor=ValueFilterEditor;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}_setColumn(e){this._col=e}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 n=this.dataMap||t.dataMap;if(n)e=n.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 a=i.apply(e,s,r),o=l.apply(e,s,r);return i.isActive&&l.isActive?this._and?a&&o:a||o:i.isActive?a:!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}setColumnFilter(e){this._columnFilter=e}}exports.ConditionFilter=ConditionFilter;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(){if(this._filter._columnFilter&&this._filter._columnFilter.filterMode==FilterMode.MultiFilter)switch(this._op){case null:return!1;case Operator.BLANK:case Operator.NOTBLANK:return!0;default:return""!==this._val&&null!==this._val}else 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;case s.BLANK:return isBlankValue(e);case s.NOTBLANK:return!isBlankValue(e)}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";e[e.BLANK=100]="BLANK";e[e.NOTBLANK=101]="NOTBLANK"}(Operator=exports.Operator||(exports.Operator={}));function isBlankValue(e){return null==e||""===e}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",_lblVal:"lbl-val",_divHdr2:"div-hdr-second",_lblVal2:"lbl-val-second"});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.setAttribute(this._btnAnd,"aria-describedby","filterAndDesc");wijmo_1.setAttribute(this._btnOr,"aria-describedby","filterOrDesc");this._spAnd.id="filterAndDesc";this._spOr.id="filterOrDesc";wijmo_1.setText(this._divHdr,l.header);wijmo_1.setText(this._spAnd,l.and);wijmo_1.setText(this._spOr,l.or);wijmo_1.setText(this._lblVal,s.val1);wijmo_1.setText(this._divHdr2,l.header);wijmo_1.setText(this._lblVal2,s.val2);this._linkLabelToInput(this._divHdr,this._divCmb1,"cmb1");this._linkLabelToInput(this._divHdr2,this._divCmb2,"cmb2");this._cmb1=this._createOperatorCombo(this._divCmb1,s.op1);this._val1=this._createValueInput(this._divVal1,s.val1);this._cmb2=this._createOperatorCombo(this._divCmb2,s.op2);this._val2=this._createValueInput(this._divVal2,s.val2);this._val1.hostElement.style.display="none";this._lblVal.style.display="none";this._cmb1.selectedIndexChanged.addHandler((e,t)=>{const i=null==e.selectedValue||this._isShowConditionValuePart(e.selectedValue);this._val1.hostElement.style.display=i?"none":"";this._lblVal.style.display=i?"none":"";wijmo_1.setAttribute(this._val1.hostElement,"aria-hidden",i.toString());this.canApply=!i||"none"!==this._val2.hostElement.style.display});this._val2.hostElement.style.display="none";this._lblVal2.style.display="none";this._cmb2.selectedIndexChanged.addHandler((e,t)=>{const i=null==e.selectedValue||this._isShowConditionValuePart(e.selectedValue);this._val2.hostElement.style.display=i?"none":"";this._lblVal2.style.display=i?"none":"";wijmo_1.setAttribute(this._val2.hostElement,"aria-hidden",i.toString());this.canApply="none"!==this._val1.hostElement.style.display||!i});this.addEventListener(this._lblVal,"click",e=>this._onLabelClick(e,this._val1));this.addEventListener(this._lblVal2,"click",e=>this._onLabelClick(e,this._val2));let r=this.hostElement;this.addEventListener(r,"change",this._btnAndOrChanged.bind(this));this.addEventListener(r,"keydown",this._keydown.bind(this));this.updateEditor()}static get controlTemplate(){ConditionFilterEditor._ctrlTemplate||(ConditionFilterEditor._ctrlTemplate='<div><label wj-part="div-hdr"></label><div wj-part="div-cmb1"></div><br/><label wj-part="lbl-val"></label><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><label wj-part="div-hdr-second"></label><div wj-part="div-cmb2"></div><br/><label wj-part="lbl-val-second"></label><div wj-part="div-val2"></div><br/></div>');return ConditionFilterEditor._ctrlTemplate}static set controlTemplate(e){ConditionFilterEditor._ctrlTemplate=e}_isShowConditionValuePart(e){return e==Operator.BLANK||e==Operator.NOTBLANK}_linkLabelToInput(e,t,i){const l=wijmo_1.getUniqueId(i);e.htmlFor=l;t.id=l}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)if(!this._isSingleFilterMode()&&this._val1._cal&&this._val1._getParsedValue){e.value=this._val1._getParsedValue();t.value=this._val2._getParsedValue()}else{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));this._isSingleFilterMode()||(s=s.concat(l.multiFilterBlankOperators));let n=new input.ComboBox(e,{itemsSource:s,displayMemberPath:"name",selectedValuePath:"op",keyActionPrintCharacters:0});wijmo_1.setAriaLabel(n.inputElement,t);return n}_createValueInput(e,t){let i=this._filter,l=i.column,s=i.dataMap||l.dataMap,r=null,n=wijmo_1.DataType;if(l.dataType==n.Date){r=i._hasDatePart()?i._hasTimePart()?new input.InputDateTime(e):new input.InputDate(e):new input.InputTime(e,{keyActionPrintCharacters:0});r.format=l.format}else if(l.dataType!=n.Number||s){r=new input.ComboBox(e);r.isEditable=!0;r.trimText=!1;r.keyActionPrintCharacters=0;if(s){r.itemsSource=s.getDisplayValues();r.caseSensitiveSearch=!!l.grid&&l.grid.caseSensitiveSearch}else l.dataType==n.Boolean&&(r.itemsSource=[!0,!1])}else{r=new input.InputNumber(e);r.step=1;r.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()}}_onLabelClick(e,t){t.focus()}_isSingleFilterMode(){return!this._filter._columnFilter||this._filter._columnFilter.filterMode==FilterMode.SingleFilter}}ConditionFilterEditor._ctrlTemplate="";exports.ConditionFilterEditor=ConditionFilterEditor;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"},accessibilityHelperMessage:{filter:{filterColumn:"Show column {name} filter dialog",closeFilterDialog:"Close Filter dialog"}},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}],multiFilterBlankOperators:[{name:"Nothing",op:Operator.BLANK},{name:"Not Nothing",op:Operator.NOTBLANK}],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._disallowedControls=new Set(["TransposedGrid","WjTransposedGrid","TransposedMultiRow","WjTransposedMultiRow"]);this._btnClickedHandle=this._btnClicked.bind(this);this._cbSelectAllClickedHandle=this._cbSelectAllClicked.bind(this);this._andOrChangedHandle=this._andOrChanged.bind(this);this._isConditionFilterChanged=!1;this.filterChanged=new wijmo_1.Event;this.buttonClicked=new wijmo_1.Event;this._filter=wijmo_1.asType(t,ColumnFilter);ColumnFilterEditor.isCustomedTemplate(ColumnFilterEditor.controlTemplate)&&(this._filter.filterMode===FilterMode.MultiFilter?ColumnFilterEditor.controlTemplate=ColumnFilterEditor._multiFilterTemplate:ColumnFilterEditor.controlTemplate=ColumnFilterEditor._singleFilterTemplate);let l=this.getTemplate();this._filter.filterMode===FilterMode.MultiFilter?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",_divEdtVal:"div-edt-val",_divEdtCnd:"div-edt-cnd",_btnClear:"btn-clear"}):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",_tVal:"t-val",_tCnd:"t-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,n=this.hostElement,a=this.filter.column,o=a.grid.collectionView;wijmo_1.setAttribute(n,"role","dialog");wijmo_1.setAttribute(n,"aria-label",this._filter._ariaLabel);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._btnClear,s.clear);if(this._filter.filterMode===FilterMode.SingleFilter){wijmo_1.setText(this._tVal,s.values);wijmo_1.setText(this._tCnd,s.conditions);wijmo_1.setText(this._btnApply,s.apply);wijmo_1.setText(this._btnCancel,s.cancel);this._tabPanel=new wijmo_nav_1.TabPanel(this._divType.querySelector(".wj-tabpanel"),{isAnimated:!1,autoSwitch:!0,selectedIndexChanged:e=>{if(this.filter.filterType===FilterType.Both)if(e._isInitialized){let i=this.getActiveFilterType(t);e.selectedIndex=i===FilterType.Value?0:1;this._showFilter(i)}else this._showFilter(0===e.selectedIndex?FilterType.Value:FilterType.Condition);else{e.selectedIndex=this.filter.filterType===FilterType.Value?0:1;this._showFilter(this.filter.filterType)}}});this._showFilter(this.getActiveFilterType(t))}else this._showFilter();if(!a.allowSorting||this._disallowedControls.has(a.grid.constructor.name)){wijmo_1.enable(this._btnAsc,!1);wijmo_1.enable(this._btnDsc,!1)}i&&o&&o.canSort||(this._divSort.style.display="none");this._updateSortButtonState();this._btnApply&&this._btnApply.addEventListener("click",this._btnClickedHandle);this._btnCancel&&this._btnCancel.addEventListener("click",this._btnClickedHandle);this._btnClear.addEventListener("click",this._btnClickedHandle);this._btnAsc.addEventListener("click",this._btnClickedHandle);this._btnDsc.addEventListener("click",this._btnClickedHandle);this.addEventListener(n,"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",()=>{if(!this.isTouching&&!this._wasTouching)if(this.filter.filterMode===FilterMode.SingleFilter)this.onButtonClicked();else{let e=this.filter.column,t=e.grid.columnHeaders,i=t.rows.length-1,l=e.index,s=t.getCellElement(i,l),r=s?null:t.getCellBoundingRect(i,l);s?wijmo_1._updatePopupPosition(this.hostElement,s,wijmo_1.PopupPosition.BelowLeft):wijmo_1._updatePopupPosition(this.hostElement,r,wijmo_1.PopupPosition.BelowLeft)}})}static get controlTemplate(){ColumnFilterEditor._ctrlTemplate||(ColumnFilterEditor._ctrlTemplate=ColumnFilterEditor._singleFilterTemplate);return ColumnFilterEditor._ctrlTemplate}static set controlTemplate(e){ColumnFilterEditor._ctrlTemplate=e}static get _multiFilterTemplate(){const e=`\n <div wj-part="div-multi-filter">\n <div wj-part="div-edt-cnd" tabindex="-1"></div>\n <div wj-part="div-edt-val" tabindex="-1"></div>\n ${`\n <div style="text-align:right;margin-top:10px">\n <button wj-part="btn-clear" class="${wijmo_1.InputFormElementsClsNames.btn}"></button>\n </div>\n `}\n </div>\n `;return`\n <div>\n ${`\n <div wj-part="div-sort" class="${exports.ColumnFilterEditorClsNames.sortButtons}">\n <button wj-part="btn-asc" class="${wijmo_1.InputFormElementsClsNames.btn}"></button>&nbsp;&nbsp;&nbsp;\n <button wj-part="btn-dsc" class="${wijmo_1.InputFormElementsClsNames.btn}"></button>\n </div>\n `}\n ${e}\n </div>\n `}static get _singleFilterTemplate(){const e=`\n <div style="text-align:right;margin-top:10px">\n <button wj-part="btn-apply" class="${wijmo_1.InputFormElementsClsNames.btn}"></button>&nbsp;&nbsp;\n <button wj-part="btn-cancel" class="${wijmo_1.InputFormElementsClsNames.btn}"></button>&nbsp;&nbsp;\n <button wj-part="btn-clear" class="${wijmo_1.InputFormElementsClsNames.btn}"></button>\n </div>\n `,t=`\n <div wj-part="div-type">\n <div class="wj-tabpanel">\n <div>\n <div wj-part="t-val" class="${exports.ColumnFilterEditorClsNames.filterHeader}"></div>\n <div>\n <div wj-part="div-edt-val" tabindex="-1"></div>\n </div>\n </div>\n <div>\n <div wj-part="t-cnd" class="${exports.ColumnFilterEditorClsNames.filterHeader}"></div>\n <div>\n <div wj-part="div-edt-cnd" tabindex="-1"></div>\n </div>\n </div>\n </div>\n ${e}\n </div>\n `;return`\n <div>\n ${`\n <div wj-part="div-sort" class="${exports.ColumnFilterEditorClsNames.sortButtons}">\n <button wj-part="btn-asc" class="${wijmo_1.InputFormElementsClsNames.btn}"></button>&nbsp;&nbsp;&nbsp;\n <button wj-part="btn-dsc" class="${wijmo_1.InputFormElementsClsNames.btn}"></button>\n </div>\n `}\n ${t}\n </div>\n `}static isCustomedTemplate(e){return e===ColumnFilterEditor._multiFilterTemplate||e===ColumnFilterEditor._singleFilterTemplate}get filter(){return this._filter}updateEditor(){this._edtVal&&this._edtVal.updateEditor();this._edtCnd&&this._edtCnd.updateEditor()}updateFilter(){let e=this.filter.filterMode;if(e==FilterMode.SingleFilter)switch(this._getFilterType()){case FilterType.Value:this._edtVal.updateFilter();this.filter.conditionFilter.clear();break;case FilterType.Condition:this._edtCnd.updateFilter();this.filter.valueFilter.clear()}else if(e==FilterMode.MultiFilter){this._edtVal&&this._edtVal.updateFilter();this._edtCnd&&this._edtCnd.updateFilter()}}onFilterChanged(e){this.filterChanged.raise(this,e)}onButtonClicked(e){this.buttonClicked.raise(this,e)}_showFilter(e){this._wasTouching=this.isTouching;if(this._filter.filterMode===FilterMode.MultiFilter){this._edtCnd||(this._edtCnd=new ConditionFilterEditor(this._divEdtCnd,this.filter.conditionFilter));this._edtVal||(this._edtVal=new ValueFilterEditor(this._divEdtVal,this.filter.valueFilter));this._edtVal._updateExceedsMaxValuesDisplay();this.bindEventsForMultiFilter();return}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._edtVal.focus();this._edtVal._updateExceedsMaxValuesDisplay();wijmo_1.enable(this._btnApply,this._edtVal.canApply)}else{this._divEdtVal.style.display="none";this._divEdtCnd.style.display="";this._edtCnd.focus();wijmo_1.enable(this._btnApply,this._edtCnd.canApply)}let t=[this._tCnd,this._tVal];switch(this.filter.filterType){case FilterType.None:case FilterType.Condition:case FilterType.Value:t.forEach(e=>{e.style.display="none"});break;default:t.forEach(e=>{e.style.display=""})}}getActiveFilterType(e){return this.filter.conditionFilter.isActive||0==(e.filterType&FilterType.Value)?FilterType.Condition:FilterType.Value}raiseFilterChangedHandler(){let e=this.filter._owner;e.onFilterChanged(new wijmo_grid_1.CellRangeEventArgs(e.grid.cells,new wijmo_grid_1.CellRange(-1,this.filter.column.index)))}bindEventsForMultiFilter(){const e=this._edtCnd,t=this._edtVal;e._cmb1.selectedIndexChanged.addHandler((t,i)=>{this.setConditionFilterChanged(e._val1);this._cmb1Timer=this.updateConditionEditorAndTirggerFilterChanged()});e._cmb2.selectedIndexChanged.addHandler((t,i)=>{this.setConditionFilterChanged(e._val2);this._cmb2Timer=this.updateConditionEditorAndTirggerFilterChanged()});e._val1.textChanged.addHandler(()=>{this._isConditionFilterChanged=!0;this._val1Timer=this.updateConditionEditorAndTirggerFilterChanged()});e._val2.textChanged.addHandler(()=>{this._isConditionFilterChanged=!0;this._val2Timer=this.updateConditionEditorAndTirggerFilterChanged()});e.hostElement.addEventListener("change",this._andOrChangedHandle);t._lbValues.itemChecked.addHandler(()=>{t.updateFilter();this.raiseFilterChangedHandler();this.onFilterChanged()});t._cbSelectAll.addEventListener("click",this._cbSelectAllClickedHandle);this._filterAppliedHandler=()=>{if(this._isConditionFilterChanged){this._edtVal.updateEditor();this._isConditionFilterChanged=!1}};this._filter._owner.filterApplied.addHandler(this._filterAppliedHandler)}updateConditionEditorAndTirggerFilterChanged(){return setTimeout(()=>{this.raiseFilterChangedHandler();this._edtCnd.updateFilter();this._isConditionFilterChanged&&this.onFilterChanged()},wijmo_1.Control._SEARCH_DELAY+100)}_cbSelectAllClicked(){this._edtVal.updateFilter();this.raiseFilterChangedHandler();this.onFilterChanged()}_andOrChanged(e){let t=e.target==this._edtCnd._btnAnd,i=e.target==this._edtCnd._btnOr;if(t||i){this.filter.conditionFilter.isActive&&(this._isConditionFilterChanged=!0);this._andOrTimer=this.updateConditionEditorAndTirggerFilterChanged()}}_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}setConditionFilterChanged(e){isValueInputDisplay(e.hostElement)?e.text&&(this._isConditionFilterChanged=!0):this._isConditionFilterChanged=!0}_btnClicked(e){let t=e.target;e.preventDefault();e.stopPropagation();if(!wijmo_1.hasClass(t,wijmo_1.ControlStateClsNames.disabled)){if(t==this._btnAsc||t==this._btnDsc){let t=this.filter.column.grid,i=this.filter.column,l=i.sortMemberPath||i.binding,s=i.grid.collectionView.sortDescriptions,r=this.hostElement["$WJ-OWNR"]&&this.hostElement["$WJ-OWNR"]["wj-cell-index"];if(r){let i=r.panel,n=r.rng;null==n&&(n=new wijmo_grid_1.CellRange(r.row,r.col,r.row,r.col));let a=new wijmo_grid_1.CellRangeEventArgs(i,n,e);if(t.onSortingColumn(a)){s.deferUpdate(()=>{s.clear();s.push(new wijmo_1.SortDescription(l,e.target==this._btnAsc))});this._updateSortButtonState();t.onSortedColumn(a)}}}if(t==this._btnApply){this.updateFilter();this.onFilterChanged()}else if(t==this._btnClear){const e=this.filter.isActive;this.filter.clear();e&&this.onFilterChanged()}else this.updateEditor();this.onButtonClicked()}}dispose(){this._filterAppliedHandler&&this._filter._owner.filterApplied.removeHandler(this._filterAppliedHandler);if(this._cmb1Timer){clearTimeout(this._cmb1Timer);this._cmb1Timer=null}if(this._cmb2Timer){clearTimeout(this._cmb2Timer);this._cmb2Timer=null}if(this._val1Timer){clearTimeout(this._val1Timer);this._val1Timer=null}if(this._val2Timer){clearTimeout(this._val2Timer);this._val2Timer=null}if(this._andOrTimer){clearTimeout(this._andOrTimer);this._andOrTimer=null}this._btnApply&&this._btnApply.removeEventListener("click",this._btnClickedHandle);this._btnCancel&&this._btnCancel.removeEventListener("click",this._btnClickedHandle);this._btnClear&&this._btnClear.removeEventListener("click",this._btnClickedHandle);this._btnAsc&&this._btnAsc.removeEventListener("click",this._btnClickedHandle);this._btnDsc&&this._btnDsc.removeEventListener("click",this._btnClickedHandle);this._edtCnd&&this._andOrChangedHandle&&this._edtCnd.hostElement.removeEventListener("change",this._andOrChangedHandle);this._edtVal&&this._edtVal._cbSelectAll&&this._edtVal._cbSelectAll.removeEventListener("click",this._cbSelectAllClickedHandle);if(this._edtVal){this._edtVal.dispose();this._edtVal=null}if(this._edtCnd){this._edtCnd.dispose();this._edtCnd=null}if(this._tabPanel){this._tabPanel.dispose();this._tabPanel=null}super.dispose()}}ColumnFilterEditor._ctrlTemplate="";exports.ColumnFilterEditor=ColumnFilterEditor;function isValueInputDisplay(e){return"none"!==e.style.display}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"),wijmo_nav_1=require("@grapecity/wijmo.nav"),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",filterHeader:"wj-filter-header"};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",filterTopBorder:"wj-filter-tabPanel-top-border"};exports.ValueFilterEditorClsNames={hostElement:"wj-valuefilter-editor",customModalText:"wj-custom-modal-text",modalFooter:"wj-valuefilter-modal-footer",filterOptions:"wj-filter-options"};var FilterType,FilterMode,ValueFilterSearchKind,Operator;!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={}));!function(e){e[e.SingleFilter=0]="SingleFilter";e[e.MultiFilter=1]="MultiFilter"}(FilterMode=exports.FilterMode||(exports.FilterMode={}));class FlexGridFilter{constructor(e,t){this._showIcons=!0;this._showSort=!0;this._defFilterType=FilterType.Both;this._defFilterMode=FilterMode.SingleFilter;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));this._g.columns.collectionChanged.addHandler(this._adjustBindingColumns,this);const 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=>{const t=this.grid,i=this.excludedRowsSet;if(null!=t&&t.rows.length>e)if(t.itemsSource)if(t.rows[e]instanceof wijmo_grid_1._NewRowTemplate){const 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(wijmo_1._ENV_TOOLS.isSameInstance(this._filters[t].column,e))return this._filters[t];if(t&&e.binding){const 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 defaultFilterMode(){return this._defFilterMode}set defaultFilterMode(e){if((e=wijmo_1.asEnum(e,FilterMode,!1))!=this._defFilterMode){this._defFilterMode=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(){const e={defaultFilterType:this.defaultFilterType,filters:[]};this._filters.forEach(t=>{const 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 n={binding:t.column.binding};if(i.isActive){const e=i.condition1,l=i.condition2;n={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)&&(n={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&&(n.filterType=t.filterType);e.filters.push(n)}});return JSON.stringify(e)}set filterDefinition(e){e=wijmo_1.asString(e);this.clear();if(e){const 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}));const s=this.getColumnFilter(l,!0);if(s){null!=i.filterType&&(s.filterType=wijmo_1.asEnum(i.filterType,FilterType));switch(i.type){case"condition":{const 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":{const e=s.valueFilter;e.uniqueValues=i.uniqueValues;["sortValues","maxValues","exclusiveValueSearch"].forEach(t=>{null!=i[t]&&(e[t]=i[t])});e.showValues=i.showValues;break}}}}}this.apply()}get activeEditor(){return wijmo_1.Control.getControl(this._divEdt)}editColumnFilter(e,t,i){const l=this._g;this.closeEditor();e=this._asColumn(e);const s=new wijmo_grid_1.CellRangeEventArgs(l.cells,new wijmo_grid_1.CellRange(-1,e.index));if(!this.onEditingFilter(s))return;const n=wijmo_1.createElement(`<div class="${wijmo_input_1.DropDownClsNames.dropDownPanel}"></div>`),r=this.getColumnFilter(e),a=new ColumnFilterEditor(n,r,this.showSortButtons);this._divEdt=n;this._edtCol=e;l.rightToLeft&&(n.dir="rtl");if(!this.onFilterChanging(s)){this._divEdt=this._edtCol=null;return}s.cancel=!0;a.filterChanged.addHandler(()=>{s.cancel=!1;setTimeout(()=>{s.cancel||this.apply()},a._edtVal&&a._edtVal._isFiltering?wijmo_1.Control._SEARCH_DELAY+200:0)});a.buttonClicked.addHandler(()=>{this.closeEditor();l.focus();this.onFilterChanged(s)});a.lostFocus.addHandler(()=>{setTimeout(()=>{const 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);const h=l.columnHeaders,c=t&&t.panel&&h&&t.panel._uid==h._uid?t.row:h.rows.length-1,_=o,u=i||h.getCellElement(c,_),p=u?null:h.getCellBoundingRect(c,_);u?wijmo_1.showPopup(n,u,!1,!1,!1):wijmo_1.showPopup(n,p);const m=e.header,w=wijmo_1.format(wijmo_1.culture.FlexGridFilter.accessibilityHelperMessage.filter.filterColumn,{name:m});l.announceShortcut(w);this._adjustTabPanelStyle(r);this._setAriaExpanded(u,!0);this._setAriaExpanded(l.cells.getCellElement(-1,_),!0);const f=a.hostElement.querySelectorAll("input");for(let e=0;e<f.length;e++){const t=f[e];if(t.offsetHeight>0&&t.tabIndex>-1&&!t.disabled){t.focus();break}}a.containsFocus()||a.focus()}_setAriaExpanded(e,t){if(e){const i=e.querySelector("."+FlexGridFilter._WJC_FILTER);wijmo_1.setAttribute(i,"aria-expanded",t)}}closeEditor(){const e=this._g,t=wijmo_1.Control.getControl(this._divEdt),i=this._edtCol;if(t){wijmo_1.hidePopup(t.hostElement,()=>{t.dispose()});const i=wijmo_1.culture.FlexGridFilter.accessibilityHelperMessage.filter.closeFilterDialog;e.announceShortcut(i)}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(){const e=this._g.collectionView;if(e){const t=this._g.editableCollectionView;if(t){t.commitEdit();t.commitNew()}this.excludedRowsSet=null;e.filter=this._filter.bind(this)}const 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)}_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;const i=this._filters;for(let t=0;t<i.length;t++){const l=i[t];if(l.column!=FlexGridFilter._skipColumn&&!l.apply(e))return!1}return!0}_adjustTabPanelStyle(e){if(e){const t=e.filterType!==FilterType.Both,i=document.querySelector('[wj-part="tabpanes"]');t&&i&&wijmo_1.toggleClass(i,exports.FlexGridFilterClsNames.filterTopBorder)}}_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),n=t.cell;if(i.row2==t.panel.rows.length-1||l!=s){let i=this.getColumnFilter(s,this.defaultFilterType!=FilterType.None);const r=this._filterColumns;r&&r.length&&r.indexOf(s.binding)<0&&r.indexOf(s.name)<0&&(i=null);if(i){wijmo_1.toggleClass(n,exports.FlexGridFilterClsNames.filterOn,i.isActive);wijmo_1.toggleClass(n,exports.FlexGridFilterClsNames.filterOff,!i.isActive)}else{wijmo_1.removeClass(n,exports.FlexGridFilterClsNames.filterOn);wijmo_1.removeClass(n,exports.FlexGridFilterClsNames.filterOff)}if(i&&i.filterType!=FilterType.None){this._showIcons&&this._addFilterButton(s,i,n);if(0==t.row){n=e.cells.getCellElement(-1,t.col);n&&this._addFilterButton(l,i,n)}}}}}_addFilterButton(e,t,i){const 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)){const 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){const t=e.ctrlKey||e.metaKey,i=!e.defaultPrevented&&!t&&e.altKey,l=i&&e.keyCode===wijmo_1.Key.Up,s=i&&e.keyCode===wijmo_1.Key.Down,n=!e.defaultPrevented&&t&&e.shiftKey&&e.keyCode===wijmo_1.Key.F;if(l||s||n){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))return!1;if(t.activePanelType!=wijmo_grid_1.CellType.Cell&&t.activePanelType!=wijmo_grid_1.CellType.ColumnHeader)return!1;s&&s.editor instanceof wijmo_input_1.DropDown&&(r=!0);if(s&&(!r||n)){const t=this.getColumnFilter(s,!1);if(t&&t.filterType!=FilterType.None){this.editColumnFilter(s);e.preventDefault();e.stopPropagation()}}}}_removeFilter(e){this._filters.splice(e,1)}_adjustBindingColumns(e,t){if(t.action==wijmo_1.NotifyCollectionChangedAction.Reset){const e=this._filters;if(e&&e.length>0)for(let t=e.length-1;t>=0;t--){const i=e[t],l=i.column;if(l.binding){const e=this._asColumn(l.binding);e?e!==l&&i._setColumn(e):this._removeFilter(t)}}}}}FlexGridFilter._WJC_FILTER=exports.FlexGridFilterClsNames.elemFilter;exports.FlexGridFilter=FlexGridFilter;exports.empty={};class ColumnFilter{constructor(e,t){this._ariaLabel=wijmo_1.culture.FlexGridFilter.ariaLabels.dialog;this._owner=e;this._col=t;this._valueFilter=new ValueFilter(t);this._valueFilter.setColumnFilter(this);this._valueFilter.exclusiveValueSearch=e.exclusiveValueSearch;this._valueFilter.showIncludeSelection=e.showIncludeSelection;this._conditionFilter=new ConditionFilter(t);this._conditionFilter.setColumnFilter(this);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){const t=this.isActive;this.clear();this._filterType=e;t?this._owner.apply():this._col.grid&&this._col.grid.invalidate()}}get filterMode(){return null!=this._filterMode?this._filterMode:this._owner.defaultFilterMode}set filterMode(e){if((e=wijmo_1.asEnum(e,FilterMode,!0))!=this._filterMode){const t=this.isActive;this.clear();this._filterMode=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}_setColumn(e){this._col=e;this._valueFilter&&this._valueFilter._setColumn(e);this._conditionFilter&&this._conditionFilter._setColumn(e)}get ariaLabel(){return this._ariaLabel}set ariaLabel(e){e!=this._ariaLabel&&(this._ariaLabel=e)}get isActive(){return this._conditionFilter.isActive||this._valueFilter.isActive}apply(e){let t=this._conditionFilter.apply(e);this._valueFilter._cancelFilter||(t=t&&this._valueFilter.apply(e));return t}clear(){this._valueFilter.clear();this._conditionFilter.clear()}implementsInterface(e){return"IColumnFilter"==e}}exports.ColumnFilter=ColumnFilter;!function(e){e[e.Text=0]="Text";e[e.Regex=1]="Regex";e[e.Excel=2]="Excel";e[e.Custom=3]="Custom"}(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._allValues=null;this._customFilter=null;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}_setColumn(e){this._col=e}get isActive(){const e=null!=this._values;return this._columnFilter&&this._columnFilter.filterMode===FilterMode.MultiFilter?e:e&&Object.keys(this._values).length>0}get customFilter(){return this._customFilter}set customFilter(e){this._customFilter=wijmo_1.asFunction(e)}apply(e){const t=this.column;if(!t||!t._binding||!this.isActive)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){const 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={},n=i.collectionView,r=n?n.sourceCollection:[];if(e&&n&&n.sourceCollection&&n.filter)try{this._columnFilter&&this._columnFilter.filterMode===FilterMode.MultiFilter&&this._columnFilter.conditionFilter.isActive?this._cancelFilter=!0:FlexGridFilter._skipColumn=this._col;const e=[];for(let t=0;t<r.length;t++)n.filter(r[t])&&e.push(r[t]);r=e}finally{this._cancelFilter=!1;FlexGridFilter._skipColumn=null}for(let e=0;e<r.length;e++){const n=i._binding.getValue(r[e]),a=this.dataMap?this.dataMap.getDisplayValue(n)||"":i.dataMap?i.dataMap.getDisplayValue(n)||"":l(n,i.format);if(!s[a]){s[a]=!0;t.push({value:n,text:a})}}return t}implementsInterface(e){return"IColumnFilter"==e}setColumnFilter(e){this._columnFilter=e}updateShowStatus(e){if(this.showValues&&0!=Object.keys(this.showValues).length){for(const t in this.showValues)for(let i=0;i<e.length;i++)if(e[i].text==t){e[i].show=!0;break}}else e.forEach(e=>{e.show=!0});return e}setInitialAllValues(){const e=this.getUniqueValues(!1);this._allValues=this.updateShowStatus(e)}}exports.ValueFilter=ValueFilter;class ValueFilterEditor extends wijmo_1.Control{constructor(e,t){super(e);this._canApply=!1;this._isFiltering=!1;this._filterTextChangedBnd=this._filterTextChanged.bind(this);this._cbSelectAllClickedBnd=this._cbSelectAllClicked.bind(this);this.canApplyChanged=new wijmo_1.Event;this._filter=wijmo_1.asType(t,ValueFilter,!1);const 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;this._divExceeds.tabIndex=0;const 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);wijmo_1.setAttribute(this._divValues,"aria-live","polite");this._view=new wijmo_1.CollectionView(null,{sortNulls:wijmo_1.SortNulls.First,filter:this._filterValues.bind(this)});const s=this._view;if(t.sortValues){const 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,keyActionPrintCharacters:0,keyActionTab:0});this._cmbFilter.isEditable=!0;const n=this._divFilter.querySelector(".wj-input-group");if(n){const e=document.createElement("span");e.classList.add("wj-glyph-search");n.insertBefore(e,n.firstChild)}this._lbValues=new input.ListBox(this._divValues,{displayMemberPath:"text",checkedMemberPath:"show",itemsSource:this._view,itemFormatter:(e,t)=>t||l.null,checkedItemsChanged:e=>this._updateSelectAllCheck()});this._lbValues._isNeedUpdateBnd=this._isSingleFilterMode();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._filterTextChangedBnd);this._cbSelectAll.addEventListener("click",this._cbSelectAllClickedBnd);if(!this._popup){this._initPopup();this._aExceeds&&this.addEventListener(this._aExceeds,"click",e=>{e.preventDefault();this._popup.show(!0)})}this.updateEditor();wijmo_1.setAttribute(this._lbValues.hostElement,"tabindex","-1");this._filter.showValues?this._initialItems=s.sourceCollection.filter(e=>this._filter.showValues[e.text||e.value]||!1):this._initialItems=this._lbValues.checkedItems;this._isSingleFilterMode()||this._filter.setInitialAllValues()}static get controlTemplate(){ValueFilterEditor._ctrlTemplate||(ValueFilterEditor._ctrlTemplate=`<div><div wj-part="div-filter"></div><div wj-part="div-options" class="${input.ListBoxClsNames.listBoxItem} ${exports.ValueFilterEditorClsNames.filterOptions}"><label wj-part="select-all-container"><input wj-part="cb-select-all" type="checkbox" class="wj-custom-checkbox"> <span wj-part="sp-select-all"></span></label><br /><label wj-part="lbl-include-sel"><input wj-part="cb-include-sel" type="checkbox" class="wj-custom-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(){if(!this._lbValues||!this.hostElement)return;const e=this._filter.column,t=this._filter.getUniqueValues(!0);this._lbValues.isContentHtml=e.isContentHtml;const i=this._filter.showValues;if(!i||0==Object.keys(i).length&&this._isSingleFilterMode())t.forEach(e=>{e.show=!0});else for(let e=0;e<t.length;e++){let l=!1;for(const s in i)if(t[e].text==s){l=!0;break}t[e].show=l}const 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();const n=this._view;n.pageSize=this._filter.maxValues;n.sourceCollection=t;this._adjustWidthsTimer=setTimeout(()=>{this._adjustWidths()},0);this._updateExceedsMaxValuesDisplay()}clearEditor(e=!0){this._cmbFilter.text="";this._filterText="";this._rxFilter=null;const 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(){const e=this._filter;let t,i=null;t=this._isSingleFilterMode()?this._getItems():this._filter._allValues=wijmo_1.replaceItems(this._filter._allValues,this._view.sourceCollection);if(!this._isSingleFilterMode()||this._filterText||this._cbSelectAll.indeterminate){i=this._shouldIncludeSelection&&this._filter.showValues||{};for(let e=0;e<t.length;e++){const l=t[e];l.show&&(i[l.text]=!0)}}e.showValues=i;e.filterText=this._filterText}updateFilter(){this._isFiltering?this._updateFilterTimer=setTimeout(()=>{this._updateFilter()},wijmo_1.Control._SEARCH_DELAY+100):this._updateFilter()}onCanApplyChanged(e){this.canApplyChanged.raise(this,e)}_getCaseSensitive(){const 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||this.isCustomFilterType()||(e=e.toLowerCase());if(e!=this._filterText){this._filterText=e;this._rxFilter=this.isCustomFilterType()?null:this._getSearchExp(e,t);this._view.refresh();this._updateExceedsMaxValuesDisplay();if(this._isSingleFilterMode()){if(!e){const e=this._initialItems;if(e.length&&this._view.sourceCollection.indexOf(e[0])>-1){this._lbValues.checkedItems=this._initialItems;this._updateSelectAllCheck();this._isFiltering=!1;return}}}else this._filter.filterText=e;if(this._filter.exclusiveValueSearch){this._cbSelectAll.checked=!1;this._cbSelectAll.click()}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:case ValueFilterSearchKind.Custom:return this._getExcelSearchExp(e,t)}}isCustomFilterType(){return!!this._filter&&(this._filter.searchType===ValueFilterSearchKind.Custom&&!!this._filter.customFilter)}_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.replace(/([.+^$[\]\\(){}|-])/g,"\\$1");i=i.replace(/~~/g,"__`$0`__");i=i.replace(/~\?/g,"__`$1`__");i=i.replace(/~\*/g,"__`$2`__");i=i.replace(/~(.)/g,"$1");i=i.replace(/(\?+)/g,(e,t)=>Array.from(t).map(e=>".").join(""));i=i.replace(/(\*+)/g,(e,t)=>Array.from(t).map(e=>".*").join(""));i=i.replace(/__`\$(\d)`__/g,(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){if(this.isCustomFilterType()&&this._filter.customFilter)return!!this._filter.customFilter(this._filterText,e);const t=this._rxFilter;return null==t||null==e||t.test(e.text)}_getActualItems(){return this._isSingleFilterMode()?this._getItems():this.exceedsMaxValues?this._view._view:this._view.items}_cbSelectAllClicked(){const e=this._cbSelectAll.checked,t=this._divValues.scrollTop,i=this._getActualItems();for(let t=0;t<i.length;t++)i[t].show=e;this._view.refresh();this._divValues.scrollTop=t;this._adjustWidthsTimer=setTimeout(()=>{this._adjustWidths()},0)}_updateSelectAllCheck(){const e=this._getActualItems();let t=0,i=0;for(let l=0;l<e.length;l++){e[l].show?t++:i++;if(t&&i)break}const l=t&&i?null:t>0;wijmo_1.setChecked(this._cbSelectAll,l);null==l?this._cbSelectAll.setAttribute("data-indeterminate","true"):this._cbSelectAll.removeAttribute("data-indeterminate");this.canApply=t>0}_adjustWidths(){const e=this._lbValues&&this._lbValues.hostElement;if(e&&e.offsetHeight>0){let t=0,i=e.querySelectorAll("."+input.ListBoxClsNames.listBoxItem);if(i.length){for(let e=0;e<i.length;e++)t=Math.max(t,i[e].scrollWidth);if(t){const i=e.querySelectorAll("."+input.ListBoxClsNames.listBoxItem);if(i.length)for(let e=0;e<i.length;e++)i[e].style.width=t+"px"}}}}get exceedsMaxValues(){return!(!this._view||!this._view._view)&&this._view._view.length>this.filter.maxValues}_updateExceedsMaxValuesDisplay(){this._divExceeds.style.display=this.exceedsMaxValues?"":"none"}_initPopup(){const e=document.createElement("div"),t=this.hostElement.getAttribute("lang");e.innerHTML=`\n <div role="dialog" aria-modal="true" aria-describedby="dialogDesc" ${t?`lang="${t}"`:""}><div class=${input.PopupClsNames.dialogBody}><div class=${exports.ValueFilterEditorClsNames.customModalText}><p id="dialogDesc">`+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})}_isSingleFilterMode(){return!this._filter._columnFilter||this._filter._columnFilter.filterMode==FilterMode.SingleFilter}dispose(){if(this._adjustWidthsTimer){clearTimeout(this._adjustWidthsTimer);this._adjustWidthsTimer=null}if(this._updateFilterTimer){clearTimeout(this._updateFilterTimer);this._updateFilterTimer=null}if(this._toFilter){clearTimeout(this._toFilter);this._toFilter=null}if(this._lbValues){this._lbValues.dispose();this._lbValues=null}this._cbSelectAll&&this._cbSelectAll.removeEventListener("click",this._cbSelectAllClickedBnd);if(this._cmbFilter){this._cmbFilter.inputElement&&this._cmbFilter.inputElement.removeEventListener("input",this._filterTextChangedBnd);this._cmbFilter.dispose();this._cmbFilter=null}if(this._view){this._view.collectionChanged.removeHandler(this._updateSelectAllCheck,this);this._view=null}if(this._popup&&!this._popup.isVisible){this._popup.dispose();this._popup=null}this._filter=null;this._initialItems=null;this._rxFilter=null;this._filterText=null;super.dispose()}}ValueFilterEditor._ctrlTemplate="";exports.ValueFilterEditor=ValueFilterEditor;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}_setColumn(e){this._col=e}get isActive(){return this._c1.isActive||this._c2.isActive}apply(e){let t=this._col,i=this._c1,l=this._c2,s=!1,n=!1;if(!t||!t._binding||!this.isActive)return!0;e=t._binding.getValue(e);const r=this.dataMap||t.dataMap;if(r)e=r.getDisplayValue(e);else if(wijmo_1.isDate(e)){s=!this._hasTimePart();n=!this._hasDatePart();const t=FilterCondition._refDateTime;s?e=wijmo_1.DateTime.fromDateTime(e,t):n&&(e=wijmo_1.DateTime.fromDateTime(t,e))}else if(wijmo_1.isNumber(e)){const i=wijmo_1.Globalize,l=t.format,s=i.formatNumber(e,l);e=i.parseFloat(s,l)}const a=i.apply(e,s,n),o=l.apply(e,s,n);return i.isActive&&l.isActive?this._and?a&&o:a||o:i.isActive?a:!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}setColumnFilter(e){this._columnFilter=e}}exports.ConditionFilter=ConditionFilter;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(){if(this._filter._columnFilter&&this._filter._columnFilter.filterMode==FilterMode.MultiFilter)switch(this._op){case null:return!1;case Operator.BLANK:case Operator.NOTBLANK:return!0;default:return""!==this._val&&null!==this._val}else 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)));const 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;case s.BLANK:return isBlankValue(e);case s.NOTBLANK:return!isBlankValue(e)}throw"Unknown operator"}_getCaseString(e){const 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";e[e.BLANK=100]="BLANK";e[e.NOTBLANK=101]="NOTBLANK"}(Operator=exports.Operator||(exports.Operator={}));function isBlankValue(e){return null==e||""===e}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);const 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",_lblVal:"lbl-val",_divHdr2:"div-hdr-second",_lblVal2:"lbl-val-second"});const l=wijmo_1.culture.FlexGridFilter,s=l.ariaLabels;wijmo_1.setAriaLabel(this._btnAnd,s.and);wijmo_1.setAriaLabel(this._btnOr,s.or);wijmo_1.setAttribute(this._btnAnd,"aria-describedby","filterAndDesc");wijmo_1.setAttribute(this._btnOr,"aria-describedby","filterOrDesc");this._spAnd.id="filterAndDesc";this._spOr.id="filterOrDesc";wijmo_1.setText(this._divHdr,l.header);wijmo_1.setText(this._spAnd,l.and);wijmo_1.setText(this._spOr,l.or);wijmo_1.setText(this._lblVal,s.val1);wijmo_1.setText(this._divHdr2,l.header);wijmo_1.setText(this._lblVal2,s.val2);this._linkLabelToInput(this._divHdr,this._divCmb1,"cmb1");this._linkLabelToInput(this._divHdr2,this._divCmb2,"cmb2");this._cmb1=this._createOperatorCombo(this._divCmb1,s.op1);this._val1=this._createValueInput(this._divVal1,s.val1);this._cmb2=this._createOperatorCombo(this._divCmb2,s.op2);this._val2=this._createValueInput(this._divVal2,s.val2);this._val1.hostElement.style.display="none";this._lblVal.style.display="none";this._cmb1.selectedIndexChanged.addHandler((e,t)=>{const i=null==e.selectedValue||this._isShowConditionValuePart(e.selectedValue);this._val1.hostElement.style.display=i?"none":"";this._lblVal.style.display=i?"none":"";wijmo_1.setAttribute(this._val1.hostElement,"aria-hidden",i.toString());this.canApply=!i||"none"!==this._val2.hostElement.style.display});this._val2.hostElement.style.display="none";this._lblVal2.style.display="none";this._cmb2.selectedIndexChanged.addHandler((e,t)=>{const i=null==e.selectedValue||this._isShowConditionValuePart(e.selectedValue);this._val2.hostElement.style.display=i?"none":"";this._lblVal2.style.display=i?"none":"";wijmo_1.setAttribute(this._val2.hostElement,"aria-hidden",i.toString());this.canApply="none"!==this._val1.hostElement.style.display||!i});this.addEventListener(this._lblVal,"click",e=>this._onLabelClick(e,this._val1));this.addEventListener(this._lblVal2,"click",e=>this._onLabelClick(e,this._val2));const n=this.hostElement;this.addEventListener(n,"change",this._btnAndOrChanged.bind(this));this.addEventListener(n,"keydown",this._keydown.bind(this));this.updateEditor()}static get controlTemplate(){ConditionFilterEditor._ctrlTemplate||(ConditionFilterEditor._ctrlTemplate='<div><label wj-part="div-hdr"></label><div wj-part="div-cmb1"></div><br/><label wj-part="lbl-val"></label><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><label wj-part="div-hdr-second"></label><div wj-part="div-cmb2"></div><br/><label wj-part="lbl-val-second"></label><div wj-part="div-val2"></div><br/></div>');return ConditionFilterEditor._ctrlTemplate}static set controlTemplate(e){ConditionFilterEditor._ctrlTemplate=e}_isShowConditionValuePart(e){return e==Operator.BLANK||e==Operator.NOTBLANK}_linkLabelToInput(e,t,i){const l=wijmo_1.getUniqueId(i);e.htmlFor=l;t.id=l}get filter(){return this._filter}get canApply(){return this._canApply}set canApply(e){if(e!=this._canApply){this._canApply=e;this.onCanApplyChanged()}}updateEditor(){const 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}const 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(){const e=this._filter.condition1,t=this._filter.condition2;e.operator=this._cmb1.selectedValue;t.operator=this._cmb2.selectedValue;if("value"in this._val1)if(!this._isSingleFilterMode()&&this._val1._cal&&this._val1._getParsedValue){e.value=this._val1._getParsedValue();t.value=this._val2._getParsedValue()}else{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,n=wijmo_1.DataType;this._filter.dataMap||i.dataMap||(i.dataType==n.Date?s=l.dateOperators:i.dataType==n.Number?s=l.numberOperators:i.dataType==n.Boolean&&(s=l.booleanOperators));this._isSingleFilterMode()||(s=s.concat(l.multiFilterBlankOperators));const r=new input.ComboBox(e,{itemsSource:s,displayMemberPath:"name",selectedValuePath:"op",keyActionPrintCharacters:0});wijmo_1.setAriaLabel(r.inputElement,t);return r}_createValueInput(e,t){let i=this._filter,l=i.column,s=i.dataMap||l.dataMap,n=null,r=wijmo_1.DataType;if(l.dataType==r.Date){n=i._hasDatePart()?i._hasTimePart()?new input.InputDateTime(e):new input.InputDate(e):new input.InputTime(e,{keyActionPrintCharacters:0});n.format=l.format}else if(l.dataType!=r.Number||s){n=new input.ComboBox(e);n.isEditable=!0;n.trimText=!1;n.keyActionPrintCharacters=0;if(s){n.itemsSource=s.getDisplayValues();n.caseSensitiveSearch=!!l.grid&&l.grid.caseSensitiveSearch}else l.dataType==r.Boolean&&(n.itemsSource=[!0,!1])}else{n=new input.InputNumber(e);n.step=1;n.format=l.format}n.isRequired=!1;wijmo_1.setAriaLabel(n.inputElement,t);return n}_btnAndOrChanged(e){const 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){const 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:{const i=t?this._btnOr:this._btnAnd;i.click();i.focus();e.preventDefault();break}}}_onLabelClick(e,t){t.focus()}_isSingleFilterMode(){return!this._filter._columnFilter||this._filter._columnFilter.filterMode==FilterMode.SingleFilter}}ConditionFilterEditor._ctrlTemplate="";exports.ConditionFilterEditor=ConditionFilterEditor;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"},accessibilityHelperMessage:{filter:{filterColumn:"Show column {name} filter dialog",closeFilterDialog:"Close Filter dialog"}},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}],multiFilterBlankOperators:[{name:"Nothing",op:Operator.BLANK},{name:"Not Nothing",op:Operator.NOTBLANK}],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._disallowedControls=new Set(["TransposedGrid","WjTransposedGrid","TransposedMultiRow","WjTransposedMultiRow"]);this._btnClickedHandle=this._btnClicked.bind(this);this._cbSelectAllClickedHandle=this._cbSelectAllClicked.bind(this);this._andOrChangedHandle=this._andOrChanged.bind(this);this._isConditionFilterChanged=!1;this.filterChanged=new wijmo_1.Event;this.buttonClicked=new wijmo_1.Event;this._filter=wijmo_1.asType(t,ColumnFilter);ColumnFilterEditor.isCustomedTemplate(ColumnFilterEditor.controlTemplate)&&(this._filter.filterMode===FilterMode.MultiFilter?ColumnFilterEditor.controlTemplate=ColumnFilterEditor._multiFilterTemplate:ColumnFilterEditor.controlTemplate=ColumnFilterEditor._singleFilterTemplate);const l=this.getTemplate();this._filter.filterMode===FilterMode.MultiFilter?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",_divEdtVal:"div-edt-val",_divEdtCnd:"div-edt-cnd",_btnClear:"btn-clear"}):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",_tVal:"t-val",_tCnd:"t-cnd",_divEdtVal:"div-edt-val",_divEdtCnd:"div-edt-cnd",_btnApply:"btn-apply",_btnCancel:"btn-cancel",_btnClear:"btn-clear"});const s=wijmo_1.culture.FlexGridFilter,n=s.ariaLabels,r=this.hostElement,a=this.filter.column,o=a.grid.collectionView;wijmo_1.setAttribute(r,"role","dialog");wijmo_1.setAttribute(r,"aria-label",this._filter._ariaLabel);wijmo_1.setAriaLabel(this._btnAsc,n.asc);wijmo_1.setAriaLabel(this._btnDsc,n.dsc);wijmo_1.setText(this._btnAsc,s.ascending);wijmo_1.setText(this._btnDsc,s.descending);wijmo_1.setText(this._btnClear,s.clear);if(this._filter.filterMode===FilterMode.SingleFilter){wijmo_1.setText(this._tVal,s.values);wijmo_1.setText(this._tCnd,s.conditions);wijmo_1.setText(this._btnApply,s.apply);wijmo_1.setText(this._btnCancel,s.cancel);this._tabPanel=new wijmo_nav_1.TabPanel(this._divType.querySelector(".wj-tabpanel"),{isAnimated:!1,autoSwitch:!0,selectedIndexChanged:e=>{if(this.filter.filterType===FilterType.Both)if(e._isInitialized){const i=this.getActiveFilterType(t);e.selectedIndex=i===FilterType.Value?0:1;this._showFilter(i)}else this._showFilter(0===e.selectedIndex?FilterType.Value:FilterType.Condition);else{e.selectedIndex=this.filter.filterType===FilterType.Value?0:1;this._showFilter(this.filter.filterType)}}});this._showFilter(this.getActiveFilterType(t))}else this._showFilter();if(!a.allowSorting||this._disallowedControls.has(a.grid.constructor.name)){wijmo_1.enable(this._btnAsc,!1);wijmo_1.enable(this._btnDsc,!1)}i&&o&&o.canSort||(this._divSort.style.display="none");this._updateSortButtonState();this._btnApply&&this._btnApply.addEventListener("click",this._btnClickedHandle);this._btnCancel&&this._btnCancel.addEventListener("click",this._btnClickedHandle);this._btnClear.addEventListener("click",this._btnClickedHandle);this._btnAsc.addEventListener("click",this._btnClickedHandle);this._btnDsc.addEventListener("click",this._btnClickedHandle);this.addEventListener(r,"keydown",e=>{if(!e.defaultPrevented){const 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",()=>{if(!this.isTouching&&!this._wasTouching)if(this.filter.filterMode===FilterMode.SingleFilter)this.onButtonClicked();else{const e=this.filter.column,t=e.grid.columnHeaders,i=t.rows.length-1,l=e.index,s=t.getCellElement(i,l),n=s?null:t.getCellBoundingRect(i,l);s?wijmo_1._updatePopupPosition(this.hostElement,s,wijmo_1.PopupPosition.BelowLeft):wijmo_1._updatePopupPosition(this.hostElement,n,wijmo_1.PopupPosition.BelowLeft)}})}static get controlTemplate(){ColumnFilterEditor._ctrlTemplate||(ColumnFilterEditor._ctrlTemplate=ColumnFilterEditor._singleFilterTemplate);return ColumnFilterEditor._ctrlTemplate}static set controlTemplate(e){ColumnFilterEditor._ctrlTemplate=e}static get _multiFilterTemplate(){const e=`\n <div wj-part="div-multi-filter">\n <div wj-part="div-edt-cnd" tabindex="-1"></div>\n <div wj-part="div-edt-val" tabindex="-1"></div>\n ${`\n <div style="text-align:right;margin-top:10px">\n <button wj-part="btn-clear" class="${wijmo_1.InputFormElementsClsNames.btn}"></button>\n </div>\n `}\n </div>\n `;return`\n <div>\n ${`\n <div wj-part="div-sort" class="${exports.ColumnFilterEditorClsNames.sortButtons}" style="display:flex;gap:10px">\n <div><button wj-part="btn-asc" class="${wijmo_1.InputFormElementsClsNames.btn}"></button></div>\n <div><button wj-part="btn-dsc" class="${wijmo_1.InputFormElementsClsNames.btn}"></button></div>\n </div>\n `}\n ${e}\n </div>\n `}static get _singleFilterTemplate(){const e=`\n <div style="display:flex;justify-content:flex-end;gap:8px;margin-top:10px">\n <div><button wj-part="btn-apply" class="${wijmo_1.InputFormElementsClsNames.btn}"></button></div>\n <div><button wj-part="btn-cancel" class="${wijmo_1.InputFormElementsClsNames.btn}"></button></div>\n <div><button wj-part="btn-clear" class="${wijmo_1.InputFormElementsClsNames.btn}"></button></div>\n </div>\n `,t=`\n <div wj-part="div-type">\n <div class="wj-tabpanel">\n <div>\n <div wj-part="t-val" class="${exports.ColumnFilterEditorClsNames.filterHeader}"></div>\n <div>\n <div wj-part="div-edt-val" tabindex="-1"></div>\n </div>\n </div>\n <div>\n <div wj-part="t-cnd" class="${exports.ColumnFilterEditorClsNames.filterHeader}"></div>\n <div>\n <div wj-part="div-edt-cnd" tabindex="-1"></div>\n </div>\n </div>\n </div>\n ${e}\n </div>\n `;return`\n <div>\n ${`\n <div wj-part="div-sort" class="${exports.ColumnFilterEditorClsNames.sortButtons}" style="display:flex;gap:10px">\n <div><button wj-part="btn-asc" class="${wijmo_1.InputFormElementsClsNames.btn}"></button></div>\n <div><button wj-part="btn-dsc" class="${wijmo_1.InputFormElementsClsNames.btn}"></button></div>\n </div>\n `}\n ${t}\n </div>\n `}static isCustomedTemplate(e){return e===ColumnFilterEditor._multiFilterTemplate||e===ColumnFilterEditor._singleFilterTemplate}get filter(){return this._filter}updateEditor(){this._edtVal&&this._edtVal.updateEditor();this._edtCnd&&this._edtCnd.updateEditor()}updateFilter(){const e=this.filter.filterMode;if(e==FilterMode.SingleFilter)switch(this._getFilterType()){case FilterType.Value:this._edtVal.updateFilter();this.filter.conditionFilter.clear();break;case FilterType.Condition:this._edtCnd.updateFilter();this.filter.valueFilter.clear()}else if(e==FilterMode.MultiFilter){this._edtVal&&this._edtVal.updateFilter();this._edtCnd&&this._edtCnd.updateFilter()}}onFilterChanged(e){this.filterChanged.raise(this,e)}onButtonClicked(e){this.buttonClicked.raise(this,e)}_showFilter(e){this._wasTouching=this.isTouching;if(this._filter.filterMode===FilterMode.MultiFilter){this._edtCnd||(this._edtCnd=new ConditionFilterEditor(this._divEdtCnd,this.filter.conditionFilter));this._edtVal||(this._edtVal=new ValueFilterEditor(this._divEdtVal,this.filter.valueFilter));this._edtVal._updateExceedsMaxValuesDisplay();this.bindEventsForMultiFilter();return}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._edtVal.focus();this._edtVal._updateExceedsMaxValuesDisplay();wijmo_1.enable(this._btnApply,this._edtVal.canApply)}else{this._divEdtVal.style.display="none";this._divEdtCnd.style.display="";this._edtCnd.focus();wijmo_1.enable(this._btnApply,this._edtCnd.canApply)}const t=[this._tCnd,this._tVal];switch(this.filter.filterType){case FilterType.None:case FilterType.Condition:case FilterType.Value:t.forEach(e=>{e.style.display="none"});break;default:t.forEach(e=>{e.style.display=""})}}getActiveFilterType(e){return this.filter.conditionFilter.isActive||0==(e.filterType&FilterType.Value)?FilterType.Condition:FilterType.Value}raiseFilterChangedHandler(){const e=this.filter._owner;e.onFilterChanged(new wijmo_grid_1.CellRangeEventArgs(e.grid.cells,new wijmo_grid_1.CellRange(-1,this.filter.column.index)))}bindEventsForMultiFilter(){const e=this._edtCnd,t=this._edtVal;e._cmb1.selectedIndexChanged.addHandler((t,i)=>{this.setConditionFilterChanged(e._val1);this._cmb1Timer=this.updateConditionEditorAndTirggerFilterChanged()});e._cmb2.selectedIndexChanged.addHandler((t,i)=>{this.setConditionFilterChanged(e._val2);this._cmb2Timer=this.updateConditionEditorAndTirggerFilterChanged()});e._val1.textChanged.addHandler(()=>{this._isConditionFilterChanged=!0;this._val1Timer=this.updateConditionEditorAndTirggerFilterChanged()});e._val2.textChanged.addHandler(()=>{this._isConditionFilterChanged=!0;this._val2Timer=this.updateConditionEditorAndTirggerFilterChanged()});e.hostElement.addEventListener("change",this._andOrChangedHandle);t._lbValues.itemChecked.addHandler(()=>{t.updateFilter();this.raiseFilterChangedHandler();this.onFilterChanged()});t._cbSelectAll.addEventListener("click",this._cbSelectAllClickedHandle);this._filterAppliedHandler=()=>{if(this._isConditionFilterChanged){this._edtVal.updateEditor();this._isConditionFilterChanged=!1}};this._filter._owner.filterApplied.addHandler(this._filterAppliedHandler)}updateConditionEditorAndTirggerFilterChanged(){return setTimeout(()=>{this.raiseFilterChangedHandler();this._edtCnd.updateFilter();this._isConditionFilterChanged&&this.onFilterChanged()},wijmo_1.Control._SEARCH_DELAY+100)}_cbSelectAllClicked(){this._edtVal.updateFilter();this.raiseFilterChangedHandler();this.onFilterChanged()}_andOrChanged(e){const t=e.target==this._edtCnd._btnAnd,i=e.target==this._edtCnd._btnOr;if(t||i){this.filter.conditionFilter.isActive&&(this._isConditionFilterChanged=!0);this._andOrTimer=this.updateConditionEditorAndTirggerFilterChanged()}}_updateSortButtonState(){const 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(){const e=FilterType;return"none"!=this._divEdtVal.style.display?e.Value:e.Condition}setConditionFilterChanged(e){isValueInputDisplay(e.hostElement)?e.text&&(this._isConditionFilterChanged=!0):this._isConditionFilterChanged=!0}_btnClicked(e){const t=e.target;e.preventDefault();e.stopPropagation();if(!wijmo_1.hasClass(t,wijmo_1.ControlStateClsNames.disabled)){if(t==this._btnAsc||t==this._btnDsc){const t=this.filter.column.grid,i=this.filter.column,l=i.sortMemberPath||i.binding,s=i.grid.collectionView.sortDescriptions,n=this.hostElement["$WJ-OWNR"]&&this.hostElement["$WJ-OWNR"]["wj-cell-index"];if(n){let i=n.panel,r=n.rng;null==r&&(r=new wijmo_grid_1.CellRange(n.row,n.col,n.row,n.col));const a=new wijmo_grid_1.CellRangeEventArgs(i,r,e);if(t.onSortingColumn(a)){s.deferUpdate(()=>{s.clear();s.push(new wijmo_1.SortDescription(l,e.target==this._btnAsc))});this._updateSortButtonState();t.onSortedColumn(a)}}}if(t==this._btnApply){this.updateFilter();this.onFilterChanged()}else if(t==this._btnClear){const e=this.filter.isActive;this.filter.clear();e&&this.onFilterChanged()}else this.updateEditor();this.onButtonClicked()}}dispose(){this._filterAppliedHandler&&this._filter._owner.filterApplied.removeHandler(this._filterAppliedHandler);if(this._cmb1Timer){clearTimeout(this._cmb1Timer);this._cmb1Timer=null}if(this._cmb2Timer){clearTimeout(this._cmb2Timer);this._cmb2Timer=null}if(this._val1Timer){clearTimeout(this._val1Timer);this._val1Timer=null}if(this._val2Timer){clearTimeout(this._val2Timer);this._val2Timer=null}if(this._andOrTimer){clearTimeout(this._andOrTimer);this._andOrTimer=null}this._btnApply&&this._btnApply.removeEventListener("click",this._btnClickedHandle);this._btnCancel&&this._btnCancel.removeEventListener("click",this._btnClickedHandle);this._btnClear&&this._btnClear.removeEventListener("click",this._btnClickedHandle);this._btnAsc&&this._btnAsc.removeEventListener("click",this._btnClickedHandle);this._btnDsc&&this._btnDsc.removeEventListener("click",this._btnClickedHandle);this._edtCnd&&this._andOrChangedHandle&&this._edtCnd.hostElement.removeEventListener("change",this._andOrChangedHandle);this._edtVal&&this._edtVal._cbSelectAll&&this._edtVal._cbSelectAll.removeEventListener("click",this._cbSelectAllClickedHandle);if(this._edtVal){this._edtVal.dispose();this._edtVal=null}if(this._edtCnd){this._edtCnd.dispose();this._edtCnd=null}if(this._tabPanel){this._tabPanel.dispose();this._tabPanel=null}super.dispose()}}ColumnFilterEditor._ctrlTemplate="";exports.ColumnFilterEditor=ColumnFilterEditor;function isValueInputDisplay(e){return"none"!==e.style.display}wijmo_1._registerModule("wijmo.grid.filter",selfModule);