@progress/kendo-angular-filter 2.0.1-dev.202205171507 → 2.0.1-dev.202205190755

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.
@@ -2,4 +2,4 @@
2
2
  * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@progress/kendo-angular-l10n"),require("@progress/kendo-licensing"),require("@progress/kendo-angular-dropdowns"),require("@progress/kendo-angular-inputs"),require("@progress/kendo-angular-dateinputs"),require("@angular/common"),require("@progress/kendo-angular-buttons"),require("@progress/kendo-angular-label")):"function"==typeof define&&define.amd?define("KendoAngularFilter",["exports","@angular/core","@progress/kendo-angular-l10n","@progress/kendo-licensing","@progress/kendo-angular-dropdowns","@progress/kendo-angular-inputs","@progress/kendo-angular-dateinputs","@angular/common","@progress/kendo-angular-buttons","@progress/kendo-angular-label"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).KendoAngularFilter={},e.ng.core,e.KendoAngularL10N,e.KendoLicensing,e.KendoAngularDropdowns,e.KendoAngularInputs,e.KendoAngularDateinputs,e.ng.common,e.KendoAngularButtons,e.KendoAngularLabel)}(this,function(e,n,t,z,r,o,i,a,l,s){"use strict";function p(r){if(r&&r.__esModule)return r;var n=Object.create(null);return r&&Object.keys(r).forEach(function(e){var t;"default"!==e&&(t=Object.getOwnPropertyDescriptor(r,e),Object.defineProperty(n,e,t.get?t:{enumerable:!0,get:function(){return r[e]}}))}),n.default=r,Object.freeze(n)}var u=p(n),d=p(t),f=p(r),c=p(o),g=p(i),m=p(a),h=p(l),v=(b.prototype.addFilterGroup=function(e){e.filters.push({logic:"or",filters:[]})},b.prototype.addFilterExpression=function(e){e.filters.push({operator:"eq",value:null,field:null})},b.prototype.remove=function(t,r,e){var n,o=this;e=e||this.value,t===e?e.filters=[]:0<=(n=e.filters.indexOf(t))&&n===r?e.filters=e.filters.filter(function(e){return e!==t}):e.filters.forEach(function(e){return e.filters&&o.remove(t,r,e)})},b);function b(){this.value={filters:[],logic:"or"},this.filters=[]}v.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:v,deps:[],target:u.ɵɵFactoryTarget.Injectable}),v.ɵprov=u.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:v}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:v,decorators:[{type:n.Injectable}]});function I(r){return function(t){return Object.keys(r).map(function(e){return{text:t.get(e),value:r[e]}})}}var k=["isnull","isnotnull","isempty","isnotempty"],M={filterEqOperator:"eq",filterNotEqOperator:"neq",filterContainsOperator:"contains",filterNotContainsOperator:"doesnotcontain",filterStartsWithOperator:"startswith",filterEndsWithOperator:"endswith",filterIsNullOperator:"isnull",filterIsNotNullOperator:"isnotnull",filterIsEmptyOperator:"isempty",filterIsNotEmptyOperator:"isnotempty"},B={filterEqOperator:"eq",filterNotEqOperator:"neq",filterGteOperator:"gte",filterGtOperator:"gt",filterLteOperator:"lte",filterLtOperator:"lt",filterIsNullOperator:"isnull",filterIsNotNullOperator:"isnotnull"},G={filterEqOperator:"eq",filterNotEqOperator:"neq",filterAfterOrEqualOperator:"gte",filterAfterOperator:"gt",filterBeforeOrEqualOperator:"lte",filterBeforeOperator:"lt",filterIsNullOperator:"isnull",filterIsNotNullOperator:"isnotnull"},P={string:M,number:B,date:G},j={filterAndLogic:"and",filterOrLogic:"or"},R={name:"@progress/kendo-angular-filter",productName:"Kendo UI for Angular",productCodes:["KENDOUIANGULAR","KENDOUICOMPLETE"],publishDate:1652799999,version:"",licensingDocsUrl:"https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning"},y=(W.prototype.ngOnChanges=function(){var e=this.hostElement.nativeElement.querySelector("input")||this.hostElement.nativeElement;this.renderer.setAttribute(e,"aria-label",this.ariaLabel)},W);function W(e,t){this.hostElement=e,this.renderer=t}y.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:y,deps:[{token:u.ElementRef},{token:u.Renderer2}],target:u.ɵɵFactoryTarget.Directive}),y.ɵdir=u.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:y,selector:"[kendoAriaLabelValue]",inputs:{ariaLabel:["kendoAriaLabelValue","ariaLabel"]},usesOnChanges:!0,ngImport:u}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:y,decorators:[{type:n.Directive,args:[{selector:"[kendoAriaLabelValue]"}]}],ctorParameters:function(){return[{type:u.ElementRef},{type:u.Renderer2}]},propDecorators:{ariaLabel:[{type:n.Input,args:["kendoAriaLabelValue"]}]}});x.prototype.messageFor=function(e){return this.localization.get(e)},x.prototype.operatorValueChange=function(e){this.valueChange.emit(e)};var O=x;function x(e){this.localization=e,this.operators=[],this.valueChange=new n.EventEmitter}O.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:O,deps:[{token:d.LocalizationService}],target:u.ɵɵFactoryTarget.Component}),O.ɵcmp=u.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:O,selector:"kendo-filter-expression-operators",inputs:{currentItem:"currentItem",operators:"operators"},outputs:{valueChange:"valueChange"},ngImport:u,template:'\n <kendo-dropdownlist\n [kendoAriaLabelValue]="messageFor(\'filterOperatorAriaLabel\')"\n [data]="operators"\n [title]="messageFor(\'filterExpressionOperators\')"\n [(value)]="currentItem.operator"\n (valueChange)="operatorValueChange($event)"\n [valuePrimitive]="true"\n textField="text"\n valueField="value"\n >\n </kendo-dropdownlist>\n ',isInline:!0,components:[{type:f.DropDownListComponent,selector:"kendo-dropdownlist",inputs:["iconClass","loading","data","value","textField","valueField","popupSettings","listHeight","defaultItem","disabled","itemDisabled","readonly","filterable","virtual","ignoreCase","delay","valuePrimitive","tabindex","tabIndex","size","rounded","fillMode","id"],outputs:["valueChange","filterChange","selectionChange","open","opened","close","closed","focus","blur"],exportAs:["kendoDropDownList"]}],directives:[{type:y,selector:"[kendoAriaLabelValue]",inputs:["kendoAriaLabelValue"]}]}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:O,decorators:[{type:n.Component,args:[{selector:"kendo-filter-expression-operators",template:'\n <kendo-dropdownlist\n [kendoAriaLabelValue]="messageFor(\'filterOperatorAriaLabel\')"\n [data]="operators"\n [title]="messageFor(\'filterExpressionOperators\')"\n [(value)]="currentItem.operator"\n (valueChange)="operatorValueChange($event)"\n [valuePrimitive]="true"\n textField="text"\n valueField="value"\n >\n </kendo-dropdownlist>\n '}]}],ctorParameters:function(){return[{type:d.LocalizationService}]},propDecorators:{currentItem:[{type:n.Input}],operators:[{type:n.Input}],valueChange:[{type:n.Output}]}});_.prototype.messageFor=function(e){return this.localization.get(e)};var C=_;function _(e){this.localization=e,this.valueChange=new n.EventEmitter}C.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:C,deps:[{token:d.LocalizationService}],target:u.ɵɵFactoryTarget.Component}),C.ɵcmp=u.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:C,selector:"kendo-filter-text-editor",inputs:{currentItem:"currentItem",isDisabled:"isDisabled"},outputs:{valueChange:"valueChange"},ngImport:u,template:'\n <kendo-textbox\n [kendoAriaLabelValue]="messageFor(\'filterValueAriaLabel\')"\n class="k-filter-toolbar-item k-filter-value"\n [(value)]="currentItem.value"\n (valueChange)="valueChange.emit()"\n [disabled]="isDisabled">\n </kendo-textbox>\n ',isInline:!0,components:[{type:c.TextBoxComponent,selector:"kendo-textbox",inputs:["focusableId","title","disabled","readonly","tabindex","value","selectOnFocus","showSuccessIcon","showErrorIcon","clearButton","successIcon","errorIcon","clearButtonIcon","size","rounded","fillMode","tabIndex","placeholder","maxlength"],outputs:["valueChange","inputFocus","inputBlur","focus","blur"],exportAs:["kendoTextBox"]}],directives:[{type:y,selector:"[kendoAriaLabelValue]",inputs:["kendoAriaLabelValue"]}]}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:C,decorators:[{type:n.Component,args:[{selector:"kendo-filter-text-editor",template:'\n <kendo-textbox\n [kendoAriaLabelValue]="messageFor(\'filterValueAriaLabel\')"\n class="k-filter-toolbar-item k-filter-value"\n [(value)]="currentItem.value"\n (valueChange)="valueChange.emit()"\n [disabled]="isDisabled">\n </kendo-textbox>\n '}]}],ctorParameters:function(){return[{type:d.LocalizationService}]},propDecorators:{currentItem:[{type:n.Input}],isDisabled:[{type:n.Input}],valueChange:[{type:n.Output}]}});K.prototype.messageFor=function(e){return this.localization.get(e)};var F=K;function K(e){this.localization=e,this.valueChange=new n.EventEmitter}F.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:F,deps:[{token:d.LocalizationService}],target:u.ɵɵFactoryTarget.Component}),F.ɵcmp=u.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:F,selector:"kendo-filter-numeric-editor",inputs:{currentItem:"currentItem",isDisabled:"isDisabled"},outputs:{valueChange:"valueChange"},ngImport:u,template:'\n <kendo-numerictextbox\n [kendoAriaLabelValue]="messageFor(\'filterValueAriaLabel\')"\n class="k-filter-toolbar-item k-filter-value"\n [(value)]="currentItem.value"\n (valueChange)="valueChange.emit()"\n [disabled]="isDisabled">\n <kendo-numerictextbox-messages\n [increment]="messageFor(\'editorNumericIncrement\')"\n [decrement]="messageFor(\'editorNumericDecrement\')">\n </kendo-numerictextbox-messages>\n </kendo-numerictextbox>\n ',isInline:!0,components:[{type:c.NumericTextBoxComponent,selector:"kendo-numerictextbox",inputs:["focusableId","disabled","readonly","title","autoCorrect","format","max","min","decimals","placeholder","step","spinners","rangeValidation","tabindex","tabIndex","changeValueOnScroll","selectOnFocus","value","maxlength","size","rounded","fillMode"],outputs:["valueChange","focus","blur"],exportAs:["kendoNumericTextBox"]},{type:c.NumericTextBoxCustomMessagesComponent,selector:"kendo-numerictextbox-messages"}],directives:[{type:y,selector:"[kendoAriaLabelValue]",inputs:["kendoAriaLabelValue"]}]}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:F,decorators:[{type:n.Component,args:[{selector:"kendo-filter-numeric-editor",template:'\n <kendo-numerictextbox\n [kendoAriaLabelValue]="messageFor(\'filterValueAriaLabel\')"\n class="k-filter-toolbar-item k-filter-value"\n [(value)]="currentItem.value"\n (valueChange)="valueChange.emit()"\n [disabled]="isDisabled">\n <kendo-numerictextbox-messages\n [increment]="messageFor(\'editorNumericIncrement\')"\n [decrement]="messageFor(\'editorNumericDecrement\')">\n </kendo-numerictextbox-messages>\n </kendo-numerictextbox>\n '}]}],ctorParameters:function(){return[{type:d.LocalizationService}]},propDecorators:{currentItem:[{type:n.Input}],isDisabled:[{type:n.Input}],valueChange:[{type:n.Output}]}});D.prototype.ngOnInit=function(){var e=this;this.localizationSubscription=this.localization.changes.subscribe(function(){e.defaultItem=e.getDefaultItem(),e.items=e.getValueItems(),e.cdr.detectChanges()})},D.prototype.getDefaultItem=function(){return{text:this.localization.get("filterBooleanAll"),value:null}},D.prototype.getValueItems=function(){return[{text:this.localization.get("filterIsTrue"),value:!0},{text:this.localization.get("filterIsFalse"),value:!1}]},D.prototype.ngOnDestroy=function(){this.localizationSubscription&&this.localizationSubscription.unsubscribe()},D.prototype.messageFor=function(e){return this.localization.get(e)};c=D;function D(e,t){this.localization=e,this.cdr=t,this.valueChange=new n.EventEmitter,this.items=this.getValueItems(),this.defaultItem=this.getDefaultItem()}c.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:c,deps:[{token:d.LocalizationService},{token:u.ChangeDetectorRef}],target:u.ɵɵFactoryTarget.Component}),c.ɵcmp=u.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:c,selector:"kendo-filter-boolean-editor",inputs:{currentItem:"currentItem"},outputs:{valueChange:"valueChange"},ngImport:u,template:'\n <kendo-dropdownlist\n [kendoAriaLabelValue]="messageFor(\'filterValueAriaLabel\')"\n class="k-filter-toolbar-item k-filter-value"\n [(value)]="currentItem.value"\n (valueChange)="valueChange.emit()"\n [data]="items"\n [defaultItem]="defaultItem"\n [valuePrimitive]="true"\n textField="text"\n valueField="value"\n >\n </kendo-dropdownlist>\n ',isInline:!0,components:[{type:f.DropDownListComponent,selector:"kendo-dropdownlist",inputs:["iconClass","loading","data","value","textField","valueField","popupSettings","listHeight","defaultItem","disabled","itemDisabled","readonly","filterable","virtual","ignoreCase","delay","valuePrimitive","tabindex","tabIndex","size","rounded","fillMode","id"],outputs:["valueChange","filterChange","selectionChange","open","opened","close","closed","focus","blur"],exportAs:["kendoDropDownList"]}],directives:[{type:y,selector:"[kendoAriaLabelValue]",inputs:["kendoAriaLabelValue"]}]}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:c,decorators:[{type:n.Component,args:[{selector:"kendo-filter-boolean-editor",template:'\n <kendo-dropdownlist\n [kendoAriaLabelValue]="messageFor(\'filterValueAriaLabel\')"\n class="k-filter-toolbar-item k-filter-value"\n [(value)]="currentItem.value"\n (valueChange)="valueChange.emit()"\n [data]="items"\n [defaultItem]="defaultItem"\n [valuePrimitive]="true"\n textField="text"\n valueField="value"\n >\n </kendo-dropdownlist>\n '}]}],ctorParameters:function(){return[{type:d.LocalizationService},{type:u.ChangeDetectorRef}]},propDecorators:{currentItem:[{type:n.Input}],valueChange:[{type:n.Output}]}});U.prototype.messageFor=function(e){return this.localization.get(e)};var T=U;function U(e){this.localization=e,this.valueChange=new n.EventEmitter}T.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:T,deps:[{token:d.LocalizationService}],target:u.ɵɵFactoryTarget.Component}),T.ɵcmp=u.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:T,selector:"kendo-filter-date-editor",inputs:{currentItem:"currentItem",isDisabled:"isDisabled"},outputs:{valueChange:"valueChange"},ngImport:u,template:'\n <kendo-datepicker\n [kendoAriaLabelValue]="messageFor(\'filterValueAriaLabel\')"\n class="k-filter-toolbar-item k-filter-value"\n [(value)]="currentItem.value"\n (valueChange)="valueChange.emit()"\n [disabled]="isDisabled">\n <kendo-datepicker-messages\n [toggle]="messageFor(\'editorDateToggleText\')"\n [today]="messageFor(\'editorDateTodayText\')">\n </kendo-datepicker-messages>\n </kendo-datepicker>\n ',isInline:!0,components:[{type:g.DatePickerComponent,selector:"kendo-datepicker",inputs:["cellTemplate","monthCellTemplate","yearCellTemplate","decadeCellTemplate","centuryCellTemplate","weekNumberTemplate","headerTitleTemplate","navigationItemTemplate","focusableId","activeView","bottomView","topView","calendarType","animateCalendarNavigation","disabled","readonly","readOnlyInput","popupSettings","navigation","min","max","incompleteDateValidation","focusedDate","value","format","twoDigitYearMax","formatPlaceholder","placeholder","tabindex","tabIndex","disabledDates","title","rangeValidation","disabledDatesValidation","weekNumber","size","rounded","fillMode"],outputs:["valueChange","focus","blur","open","close"],exportAs:["kendo-datepicker"]},{type:g.DatePickerCustomMessagesComponent,selector:"kendo-datepicker-messages"}],directives:[{type:y,selector:"[kendoAriaLabelValue]",inputs:["kendoAriaLabelValue"]}]}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:T,decorators:[{type:n.Component,args:[{selector:"kendo-filter-date-editor",template:'\n <kendo-datepicker\n [kendoAriaLabelValue]="messageFor(\'filterValueAriaLabel\')"\n class="k-filter-toolbar-item k-filter-value"\n [(value)]="currentItem.value"\n (valueChange)="valueChange.emit()"\n [disabled]="isDisabled">\n <kendo-datepicker-messages\n [toggle]="messageFor(\'editorDateToggleText\')"\n [today]="messageFor(\'editorDateTodayText\')">\n </kendo-datepicker-messages>\n </kendo-datepicker>\n '}]}],ctorParameters:function(){return[{type:d.LocalizationService}]},propDecorators:{currentItem:[{type:n.Input}],isDisabled:[{type:n.Input}],valueChange:[{type:n.Output}]}});L.prototype.ngOnInit=function(){var e=this,t=(this.isEditorDisabled=0<=k.indexOf(this.currentItem.operator),this.filters=this.filterService.filters,this.getFilterExpressionByField(this.currentItem.field)),r=(this.currentItem.field&&this.setOperators(t),this.getFilterExpressionByField(this.filterService.filters[0].field));this.currentItem.field||(this.currentItem.field=this.filterService.filters[0].field,this.setOperators(r)),this.localizationSubscription=this.localization.changes.subscribe(function(){e.setOperators(t||r),e.cdr.detectChanges()})},L.prototype.ngOnDestroy=function(){this.localizationSubscription&&this.localizationSubscription.unsubscribe()},L.prototype.normalizeOperators=function(e,t){for(var r=[],n=0;n<t.length;n++)0<=["string","number","boolean","date"].indexOf(e)&&r.push({value:t[n],text:this.localization.get(function(t,r){return Object.keys(t).find(function(e){return t[e]===r})}(P[e],t[n]))});return r},L.prototype.messageFor=function(e){return this.localization.get(e)},L.prototype.getFilterExpressionByField=function(t){var e=this.filterService.filters.find(function(e){return e.field===t});return e||null},L.prototype.filterValueChange=function(e){this.currentItem.value=null,this.currentItem.field=e;e=this.getFilterExpressionByField(this.currentItem.field);this.setOperators(e),this.valueChange.emit()},L.prototype.getDefaultOperators=function(e){switch(e){case"string":return I(M)(this.localization);case"number":return I(B)(this.localization);case"date":return I(G)(this.localization)}},L.prototype.getEditorType=function(){var t=this;return this.filterService.filters.find(function(e){return e.field===t.currentItem.field}).editor},L.prototype.removeFilterExpression=function(){this.filterService.remove(this.currentItem,this.index),this.valueChange.emit()},L.prototype.setOperators=function(e){var t;this.isBoolean="boolean"===e.editor,this.isBoolean||(e.operators?(t=this.normalizeOperators(e.editor,e.operators),this.operators=t,this.currentItem.operator||(this.currentItem.operator=t[0].value)):(this.operators=this.getDefaultOperators(e.editor),this.currentItem.operator||(this.currentItem.operator=this.operators[0].value)))},L.prototype.onOperatorChange=function(e){this.valueChange.emit(),0<=k.indexOf(e)?(this.currentItem.value=null,this.isEditorDisabled=!0):this.isEditorDisabled=!1};g=L;function L(e,t,r){this.filterService=e,this.localization=t,this.cdr=r,this.valueChange=new n.EventEmitter,this.operators=[],this.filters=[],this.isBoolean=!1,this.isEditorDisabled=!1}g.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:g,deps:[{token:v},{token:d.LocalizationService},{token:u.ChangeDetectorRef}],target:u.ɵɵFactoryTarget.Component}),g.ɵcmp=u.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:g,selector:"kendo-filter-expression",inputs:{index:"index",currentItem:"currentItem"},outputs:{valueChange:"valueChange"},ngImport:u,template:'\n <div class="k-filter-toolbar" role="group" [attr.aria-label]="messageFor(\'filterAriaLabel\')">\n <div class="k-toolbar">\n <div class="k-filter-toolbar-item k-filter-field">\n <kendo-dropdownlist\n [kendoAriaLabelValue]="messageFor(\'filterFieldAriaLabel\')"\n [title]="messageFor(\'filterExpressionFilters\')"\n [data]="filters"\n textField="title"\n valueField="field"\n [value]="currentItem.field"\n [valuePrimitive]="true"\n (valueChange)="filterValueChange($event)">\n </kendo-dropdownlist>\n </div>\n <div *ngIf="!isBoolean" class="k-filter-toolbar-item k-filter-operator">\n <kendo-filter-expression-operators\n [currentItem]="currentItem"\n [operators]="operators"\n (valueChange)="onOperatorChange($event);">\n </kendo-filter-expression-operators>\n </div>\n\n <ng-container [ngSwitch]="getEditorType()">\n <kendo-filter-text-editor *ngSwitchCase="\'string\'" [currentItem]="currentItem" [isDisabled]="isEditorDisabled" (valueChange)="valueChange.emit()"></kendo-filter-text-editor>\n <kendo-filter-numeric-editor *ngSwitchCase="\'number\'" [currentItem]="currentItem" [isDisabled]="isEditorDisabled" (valueChange)="valueChange.emit()"></kendo-filter-numeric-editor>\n <kendo-filter-boolean-editor *ngSwitchCase="\'boolean\'" [currentItem]="currentItem" (valueChange)="valueChange.emit()"></kendo-filter-boolean-editor>\n <kendo-filter-date-editor *ngSwitchCase="\'date\'" [currentItem]="currentItem" [isDisabled]="isEditorDisabled" (valueChange)="valueChange.emit()"></kendo-filter-date-editor>\n </ng-container>\n\n <div class="k-filter-toolbar-item">\n <button\n kendoButton\n icon="close"\n fillMode="flat"\n [title]="messageFor(\'remove\')"\n (click)="removeFilterExpression()">\n </button>\n </div>\n </div>\n </div>\n ',isInline:!0,components:[{type:f.DropDownListComponent,selector:"kendo-dropdownlist",inputs:["iconClass","loading","data","value","textField","valueField","popupSettings","listHeight","defaultItem","disabled","itemDisabled","readonly","filterable","virtual","ignoreCase","delay","valuePrimitive","tabindex","tabIndex","size","rounded","fillMode","id"],outputs:["valueChange","filterChange","selectionChange","open","opened","close","closed","focus","blur"],exportAs:["kendoDropDownList"]},{type:O,selector:"kendo-filter-expression-operators",inputs:["currentItem","operators"],outputs:["valueChange"]},{type:C,selector:"kendo-filter-text-editor",inputs:["currentItem","isDisabled"],outputs:["valueChange"]},{type:F,selector:"kendo-filter-numeric-editor",inputs:["currentItem","isDisabled"],outputs:["valueChange"]},{type:c,selector:"kendo-filter-boolean-editor",inputs:["currentItem"],outputs:["valueChange"]},{type:T,selector:"kendo-filter-date-editor",inputs:["currentItem","isDisabled"],outputs:["valueChange"]}],directives:[{type:y,selector:"[kendoAriaLabelValue]",inputs:["kendoAriaLabelValue"]},{type:m.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]},{type:m.NgSwitch,selector:"[ngSwitch]",inputs:["ngSwitch"]},{type:m.NgSwitchCase,selector:"[ngSwitchCase]",inputs:["ngSwitchCase"]},{type:h.ButtonDirective,selector:"button[kendoButton], span[kendoButton]",inputs:["toggleable","togglable","selected","tabIndex","icon","iconClass","imageUrl","disabled","size","rounded","fillMode","themeColor","role","primary","look"],outputs:["selectedChange","click"],exportAs:["kendoButton"]}]}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:g,decorators:[{type:n.Component,args:[{selector:"kendo-filter-expression",template:'\n <div class="k-filter-toolbar" role="group" [attr.aria-label]="messageFor(\'filterAriaLabel\')">\n <div class="k-toolbar">\n <div class="k-filter-toolbar-item k-filter-field">\n <kendo-dropdownlist\n [kendoAriaLabelValue]="messageFor(\'filterFieldAriaLabel\')"\n [title]="messageFor(\'filterExpressionFilters\')"\n [data]="filters"\n textField="title"\n valueField="field"\n [value]="currentItem.field"\n [valuePrimitive]="true"\n (valueChange)="filterValueChange($event)">\n </kendo-dropdownlist>\n </div>\n <div *ngIf="!isBoolean" class="k-filter-toolbar-item k-filter-operator">\n <kendo-filter-expression-operators\n [currentItem]="currentItem"\n [operators]="operators"\n (valueChange)="onOperatorChange($event);">\n </kendo-filter-expression-operators>\n </div>\n\n <ng-container [ngSwitch]="getEditorType()">\n <kendo-filter-text-editor *ngSwitchCase="\'string\'" [currentItem]="currentItem" [isDisabled]="isEditorDisabled" (valueChange)="valueChange.emit()"></kendo-filter-text-editor>\n <kendo-filter-numeric-editor *ngSwitchCase="\'number\'" [currentItem]="currentItem" [isDisabled]="isEditorDisabled" (valueChange)="valueChange.emit()"></kendo-filter-numeric-editor>\n <kendo-filter-boolean-editor *ngSwitchCase="\'boolean\'" [currentItem]="currentItem" (valueChange)="valueChange.emit()"></kendo-filter-boolean-editor>\n <kendo-filter-date-editor *ngSwitchCase="\'date\'" [currentItem]="currentItem" [isDisabled]="isEditorDisabled" (valueChange)="valueChange.emit()"></kendo-filter-date-editor>\n </ng-container>\n\n <div class="k-filter-toolbar-item">\n <button\n kendoButton\n icon="close"\n fillMode="flat"\n [title]="messageFor(\'remove\')"\n (click)="removeFilterExpression()">\n </button>\n </div>\n </div>\n </div>\n '}]}],ctorParameters:function(){return[{type:v},{type:d.LocalizationService},{type:u.ChangeDetectorRef}]},propDecorators:{index:[{type:n.Input}],currentItem:[{type:n.Input}],valueChange:[{type:n.Output}]}});E.prototype.ngOnInit=function(){var e=this;this.operators=this.getLogicOperators(),this.localizationSubscription=this.localization.changes.subscribe(function(){e.operators=e.getLogicOperators(),e.cdr.detectChanges()})},E.prototype.ngOnDestroy=function(){this.localizationSubscription&&this.localizationSubscription.unsubscribe()},E.prototype.getLogicOperators=function(){return I(j)(this.localization)},E.prototype.messageFor=function(e){return this.localization.get(e)},E.prototype.selectedChange=function(e){this.currentItem.logic!==e&&(this.currentItem.logic=e,this.valueChange.emit())},E.prototype.addFilterExpression=function(){this.filterService.addFilterExpression(this.currentItem),this.valueChange.emit()},E.prototype.addFilterGroup=function(){this.filterService.addFilterGroup(this.currentItem),this.valueChange.emit()},E.prototype.removeFilterGroup=function(){this.filterService.remove(this.currentItem,this.index),this.valueChange.emit()};f=E;function E(e,t,r){this.filterService=e,this.localization=t,this.cdr=r,this.index=0,this.currentItem={logic:"or",filters:[]},this.valueChange=new n.EventEmitter,this.operators=[]}f.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:f,deps:[{token:v},{token:d.LocalizationService},{token:u.ChangeDetectorRef}],target:u.ɵɵFactoryTarget.Component}),f.ɵcmp=u.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:f,selector:"kendo-filter-group",inputs:{index:"index",currentItem:"currentItem"},outputs:{valueChange:"valueChange"},ngImport:u,template:'\n <div class="k-filter-toolbar" role="toolbar" [attr.aria-label]="messageFor(\'filterToolbarAriaLabel\')">\n <div class="k-toolbar">\n <div class="k-filter-toolbar-item">\n <div class="k-widget k-button-group" role="group">\n <button\n *ngFor="let operator of operators"\n kendoButton\n [ngClass]="{\'k-group-start\': operator.value === \'and\', \'k-group-end\': operator.value === \'or\'}"\n [selected]="currentItem.logic === operator.value"\n [title]="operator.text"\n (click)="selectedChange(operator.value)"\n >\n {{operator.text}}\n </button>\n </div>\n </div>\n <div class="k-filter-toolbar-item">\n <button\n kendoButton\n [title]="messageFor(\'addFilter\')"\n icon="filter-add-expression"\n (click)="addFilterExpression()">\n {{messageFor(\'addFilter\')}}\n </button>\n </div>\n <div class="k-filter-toolbar-item">\n <button\n kendoButton\n [title]="messageFor(\'addGroup\')"\n icon="filter-add-group"\n (click)="addFilterGroup()">\n {{messageFor(\'addGroup\')}}\n </button>\n </div>\n <div class="k-filter-toolbar-item">\n <button\n kendoButton\n icon="close"\n fillMode="flat"\n [title]="messageFor(\'remove\')"\n (click)="removeFilterGroup()">\n </button>\n </div>\n </div>\n </div>\n\n <ul class="k-filter-lines" *ngIf="currentItem.filters">\n <ng-container *ngFor="let item of currentItem.filters; let i = index;">\n <li class="k-filter-item" *ngIf="!item[\'filters\']">\n <kendo-filter-expression (valueChange)="valueChange.emit()" [currentItem]="item" [index]="i">\n </kendo-filter-expression>\n </li>\n <li class="k-filter-item" *ngIf="item[\'filters\']">\n <kendo-filter-group\n (valueChange)="valueChange.emit()"\n [currentItem]="item"\n [index]="i"\n >\n </kendo-filter-group>\n </li>\n </ng-container>\n </ul>\n ',isInline:!0,components:[{type:g,selector:"kendo-filter-expression",inputs:["index","currentItem"],outputs:["valueChange"]},{type:f,selector:"kendo-filter-group",inputs:["index","currentItem"],outputs:["valueChange"]}],directives:[{type:m.NgForOf,selector:"[ngFor][ngForOf]",inputs:["ngForOf","ngForTrackBy","ngForTemplate"]},{type:h.ButtonDirective,selector:"button[kendoButton], span[kendoButton]",inputs:["toggleable","togglable","selected","tabIndex","icon","iconClass","imageUrl","disabled","size","rounded","fillMode","themeColor","role","primary","look"],outputs:["selectedChange","click"],exportAs:["kendoButton"]},{type:m.NgClass,selector:"[ngClass]",inputs:["class","ngClass"]},{type:m.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]}]}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:f,decorators:[{type:n.Component,args:[{selector:"kendo-filter-group",template:'\n <div class="k-filter-toolbar" role="toolbar" [attr.aria-label]="messageFor(\'filterToolbarAriaLabel\')">\n <div class="k-toolbar">\n <div class="k-filter-toolbar-item">\n <div class="k-widget k-button-group" role="group">\n <button\n *ngFor="let operator of operators"\n kendoButton\n [ngClass]="{\'k-group-start\': operator.value === \'and\', \'k-group-end\': operator.value === \'or\'}"\n [selected]="currentItem.logic === operator.value"\n [title]="operator.text"\n (click)="selectedChange(operator.value)"\n >\n {{operator.text}}\n </button>\n </div>\n </div>\n <div class="k-filter-toolbar-item">\n <button\n kendoButton\n [title]="messageFor(\'addFilter\')"\n icon="filter-add-expression"\n (click)="addFilterExpression()">\n {{messageFor(\'addFilter\')}}\n </button>\n </div>\n <div class="k-filter-toolbar-item">\n <button\n kendoButton\n [title]="messageFor(\'addGroup\')"\n icon="filter-add-group"\n (click)="addFilterGroup()">\n {{messageFor(\'addGroup\')}}\n </button>\n </div>\n <div class="k-filter-toolbar-item">\n <button\n kendoButton\n icon="close"\n fillMode="flat"\n [title]="messageFor(\'remove\')"\n (click)="removeFilterGroup()">\n </button>\n </div>\n </div>\n </div>\n\n <ul class="k-filter-lines" *ngIf="currentItem.filters">\n <ng-container *ngFor="let item of currentItem.filters; let i = index;">\n <li class="k-filter-item" *ngIf="!item[\'filters\']">\n <kendo-filter-expression (valueChange)="valueChange.emit()" [currentItem]="item" [index]="i">\n </kendo-filter-expression>\n </li>\n <li class="k-filter-item" *ngIf="item[\'filters\']">\n <kendo-filter-group\n (valueChange)="valueChange.emit()"\n [currentItem]="item"\n [index]="i"\n >\n </kendo-filter-group>\n </li>\n </ng-container>\n </ul>\n '}]}],ctorParameters:function(){return[{type:v},{type:d.LocalizationService},{type:u.ChangeDetectorRef}]},propDecorators:{index:[{type:n.Input}],currentItem:[{type:n.Input}],valueChange:[{type:n.Output}]}});var $=function(e,t){return($=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)};function A(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}$(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}Object.create;function N(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||0<t--)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a}function V(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o<i;o++)!n&&o in t||((n=n||Array.prototype.slice.call(t,0,o))[o]=t[o]);return e.concat(n||Array.prototype.slice.call(t))}Object.create;A(J,H=t.ComponentMessages);var H,h=J;function J(){return null!==H&&H.apply(this,arguments)||this}h.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:h,deps:null,target:u.ɵɵFactoryTarget.Directive}),h.ɵdir=u.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:h,selector:"[kendoFilterMessages]",inputs:{filterExpressionOperators:"filterExpressionOperators",filterExpressionFilters:"filterExpressionFilters",remove:"remove",addGroup:"addGroup",addFilter:"addFilter",filterAndLogic:"filterAndLogic",filterOrLogic:"filterOrLogic",filterEqOperator:"filterEqOperator",filterNotEqOperator:"filterNotEqOperator",filterIsNullOperator:"filterIsNullOperator",filterIsNotNullOperator:"filterIsNotNullOperator",filterIsEmptyOperator:"filterIsEmptyOperator",filterIsNotEmptyOperator:"filterIsNotEmptyOperator",filterStartsWithOperator:"filterStartsWithOperator",filterContainsOperator:"filterContainsOperator",filterNotContainsOperator:"filterNotContainsOperator",filterEndsWithOperator:"filterEndsWithOperator",filterGteOperator:"filterGteOperator",filterGtOperator:"filterGtOperator",filterLteOperator:"filterLteOperator",filterLtOperator:"filterLtOperator",filterIsTrue:"filterIsTrue",filterIsFalse:"filterIsFalse",filterBooleanAll:"filterBooleanAll",filterAfterOrEqualOperator:"filterAfterOrEqualOperator",filterAfterOperator:"filterAfterOperator",filterBeforeOperator:"filterBeforeOperator",filterBeforeOrEqualOperator:"filterBeforeOrEqualOperator",editorNumericDecrement:"editorNumericDecrement",editorNumericIncrement:"editorNumericIncrement",editorDateTodayText:"editorDateTodayText",editorDateToggleText:"editorDateToggleText",filterFieldAriaLabel:"filterFieldAriaLabel",filterOperatorAriaLabel:"filterOperatorAriaLabel",filterValueAriaLabel:"filterValueAriaLabel",filterAriaLabel:"filterAriaLabel",filterToolbarAriaLabel:"filterToolbarAriaLabel"},usesInheritance:!0,ngImport:u}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:h,decorators:[{type:n.Directive,args:[{selector:"[kendoFilterMessages]"}]}],propDecorators:{filterExpressionOperators:[{type:n.Input}],filterExpressionFilters:[{type:n.Input}],remove:[{type:n.Input}],addGroup:[{type:n.Input}],addFilter:[{type:n.Input}],filterAndLogic:[{type:n.Input}],filterOrLogic:[{type:n.Input}],filterEqOperator:[{type:n.Input}],filterNotEqOperator:[{type:n.Input}],filterIsNullOperator:[{type:n.Input}],filterIsNotNullOperator:[{type:n.Input}],filterIsEmptyOperator:[{type:n.Input}],filterIsNotEmptyOperator:[{type:n.Input}],filterStartsWithOperator:[{type:n.Input}],filterContainsOperator:[{type:n.Input}],filterNotContainsOperator:[{type:n.Input}],filterEndsWithOperator:[{type:n.Input}],filterGteOperator:[{type:n.Input}],filterGtOperator:[{type:n.Input}],filterLteOperator:[{type:n.Input}],filterLtOperator:[{type:n.Input}],filterIsTrue:[{type:n.Input}],filterIsFalse:[{type:n.Input}],filterBooleanAll:[{type:n.Input}],filterAfterOrEqualOperator:[{type:n.Input}],filterAfterOperator:[{type:n.Input}],filterBeforeOperator:[{type:n.Input}],filterBeforeOrEqualOperator:[{type:n.Input}],editorNumericDecrement:[{type:n.Input}],editorNumericIncrement:[{type:n.Input}],editorDateTodayText:[{type:n.Input}],editorDateToggleText:[{type:n.Input}],filterFieldAriaLabel:[{type:n.Input}],filterOperatorAriaLabel:[{type:n.Input}],filterValueAriaLabel:[{type:n.Input}],filterAriaLabel:[{type:n.Input}],filterToolbarAriaLabel:[{type:n.Input}]}});A(Y,X=h);var X,w=Y;function Y(e){var t=X.call(this)||this;return t.service=e,t}w.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:w,deps:[{token:d.LocalizationService}],target:u.ɵɵFactoryTarget.Directive}),w.ɵdir=u.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:w,selector:"[kendoFilterLocalizedMessages]",providers:[{provide:h,useExisting:n.forwardRef(function(){return w})}],usesInheritance:!0,ngImport:u}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:w,decorators:[{type:n.Directive,args:[{providers:[{provide:h,useExisting:n.forwardRef(function(){return w})}],selector:"[kendoFilterLocalizedMessages]"}]}],ctorParameters:function(){return[{type:d.LocalizationService}]}});Object.defineProperty(S.prototype,"filters",{get:function(){return this.filterService.filters},set:function(e){if(n.isDevMode()&&(!Array.isArray(e)||0===e.length))throw new Error("Pass at least one user-defined filter through the [filters] input property. See http://www.telerik.com/kendo-angular-ui/components/filter/#data-binding");this.filterService.filters=e.map(function(e){e=Object.assign({},e);return e.title||(e.title=e.field),e})},enumerable:!1,configurable:!0}),Object.defineProperty(S.prototype,"value",{get:function(){return this.filterService.value},set:function(e){e=JSON.parse(JSON.stringify(e));this.normalizeValue(e),this.filterService.value=e},enumerable:!1,configurable:!0}),S.prototype.ngOnInit=function(){var t=this;if(0===this.filters.length)throw new Error("Pass at least one user-defined filter through the [filters] input property. See http://www.telerik.com/kendo-angular-ui/components/filter/#data-binding");this.localizationSubscription=this.localization.changes.subscribe(function(e){e=e.rtl;t.direction=e?"rtl":"ltr",t.cdr.detectChanges()})},S.prototype.ngOnDestroy=function(){this.localizationSubscription&&this.localizationSubscription.unsubscribe()},S.prototype.getCurrentFilter=function(){return this.value},S.prototype.onValueChange=function(){this.valueChange.emit(this.filterService.value)},S.prototype.normalizeFilter=function(t){var e=this.filterService.filters.find(function(e){return e.field===t.field});if(n.isDevMode()&&!e)throw new Error("There is no user-defined filter with '"+t.field+"' field provided through the [filters] input property.");if(n.isDevMode()&&"boolean"===e.editor&&!t.value&&!1!==t.value&&console.warn("Provide a value for the boolean '"+t.field+"' user-defined filter as the operator is always set to 'eq'."),t.operator&&e.operators&&!e.operators.some(function(e){return e===t.operator}))throw new Error("The user-defined filter with field '"+t.field+"' is missing the '"+t.operator+"' operator.");"boolean"===e.editor&&(t.operator="eq"),"date"===e.editor&&t.value&&(t.value=new Date(t.value)),null==t.value&&(t.value=null),0<=k.indexOf(t.operator)&&(t.value=null)},S.prototype.normalizeValue=function(e){var t=this;e.filters.forEach(function(e){e.filters?t.normalizeValue(e):t.normalizeFilter(e)})};m=S;function S(e,t,r){this.filterService=e,this.localization=t,this.cdr=r,this.valueChange=new n.EventEmitter,z.validatePackage(R),this.direction=t.rtl?"rtl":"ltr"}m.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:m,deps:[{token:v},{token:d.LocalizationService},{token:u.ChangeDetectorRef}],target:u.ɵɵFactoryTarget.Component}),m.ɵcmp=u.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:m,selector:"kendo-filter",inputs:{filters:"filters",value:"value"},outputs:{valueChange:"valueChange"},host:{properties:{"attr.dir":"this.direction"}},providers:[t.LocalizationService,{provide:t.L10N_PREFIX,useValue:"kendo.filter"},v],ngImport:u,template:'\n <ng-container kendoFilterLocalizedMessages\n i18n-editorDateTodayText="kendo.filter.editorDateTodayText|The text of the Today button of the Date editor"\n editorDateTodayText="Today"\n\n i18n-editorDateToggleText="kendo.filter.editorDateToggleText|The title of the Toggle button of the Date editor."\n editorDateToggleText="Toggle calendar"\n\n i18n-editorNumericDecrement="kendo.filter.editorNumericDecrement|The title of the Decrement button of the Numeric editor"\n editorNumericDecrement="Decrement"\n\n i18n-editorNumericIncrement="kendo.filter.editorNumericIncrement|The title of the Increment button of the Numeric editor"\n editorNumericIncrement="Increment"\n\n i18n-filterExpressionOperators="kendo.filter.filterExpressionOperators|The text of the Filter Expression Operators drop down"\n filterExpressionOperators="Operators"\n\n i18n-filterExpressionFilters="kendo.filter.filterExpressionFilters|The text of the Filter Expression filters drop down"\n filterExpressionFilters="Fields"\n\n i18n-remove="kendo.filter.remove|The text of the Remove button"\n remove="Remove"\n\n i18n-addFilter="kendo.filter.addFilter|The text of the Add Filter button"\n addFilter="Add Filter"\n\n i18n-addGroup="kendo.filter.addGroup|The text of the Add Group button"\n addGroup="Add Group"\n\n i18n-filterAndLogic="kendo.filter.filterAndLogic|The text of the And filter logic"\n filterAndLogic="And"\n\n i18n-filterOrLogic="kendo.filter.filterOrLogic|The text of the Or filter logic"\n filterOrLogic="Or"\n\n i18n-filterEqOperator="kendo.filter.filterEqOperator|The text of the equal filter operator"\n filterEqOperator="Is equal to"\n\n i18n-filterNotEqOperator="kendo.filter.filterNotEqOperator|The text of the not equal filter operator"\n filterNotEqOperator="Is not equal to"\n\n i18n-filterIsNullOperator="kendo.filter.filterIsNullOperator|The text of the is null filter operator"\n filterIsNullOperator="Is null"\n\n i18n-filterIsNotNullOperator="kendo.filter.filterIsNotNullOperator|The text of the is not null filter operator"\n filterIsNotNullOperator="Is not null"\n\n i18n-filterIsEmptyOperator="kendo.filter.filterIsEmptyOperator|The text of the is empty filter operator"\n filterIsEmptyOperator="Is empty"\n\n i18n-filterIsNotEmptyOperator="kendo.filter.filterIsNotEmptyOperator|The text of the is not empty filter operator"\n filterIsNotEmptyOperator="Is not empty"\n\n i18n-filterStartsWithOperator="kendo.filter.filterStartsWithOperator|The text of the starts with filter operator"\n filterStartsWithOperator="Starts with"\n\n i18n-filterContainsOperator="kendo.filter.filterContainsOperator|The text of the contains filter operator"\n filterContainsOperator="Contains"\n\n i18n-filterNotContainsOperator="kendo.filter.filterNotContainsOperator|The text of the does not contain filter operator"\n filterNotContainsOperator="Does not contain"\n\n i18n-filterEndsWithOperator="kendo.filter.filterEndsWithOperator|The text of the ends with filter operator"\n filterEndsWithOperator="Ends with"\n\n i18n-filterGteOperator="kendo.filter.filterGteOperator|The text of the greater than or equal filter operator"\n filterGteOperator="Is greater than or equal to"\n\n i18n-filterGtOperator="kendo.filter.filterGtOperator|The text of the greater than filter operator"\n filterGtOperator="Is greater than"\n\n i18n-filterLteOperator="kendo.filter.filterLteOperator|The text of the less than or equal filter operator"\n filterLteOperator="Is less than or equal to"\n\n i18n-filterLtOperator="kendo.filter.filterLtOperator|The text of the less than filter operator"\n filterLtOperator="Is less than"\n\n i18n-filterIsTrue="kendo.filter.filterIsTrue|The text of the IsTrue boolean filter option"\n filterIsTrue="Is True"\n\n i18n-filterIsFalse="kendo.filter.filterIsFalse|The text of the IsFalse boolean filter option"\n filterIsFalse="Is False"\n\n i18n-filterBooleanAll="kendo.filter.filterBooleanAll|The text of the (All) boolean filter option"\n filterBooleanAll="(All)"\n\n i18n-filterAfterOrEqualOperator="kendo.filter.filterAfterOrEqualOperator|The text of the after or equal date filter operator"\n filterAfterOrEqualOperator="Is after or equal to"\n\n i18n-filterAfterOperator="kendo.filter.filterAfterOperator|The text of the after date filter operator"\n filterAfterOperator="Is after"\n\n i18n-filterBeforeOperator="kendo.filter.filterBeforeOperator|The text of the before date filter operator"\n filterBeforeOperator="Is before"\n\n i18n-filterBeforeOrEqualOperator="kendo.filter.filterBeforeOrEqualOperator|The text of the before or equal date filter operator"\n filterBeforeOrEqualOperator="Is before or equal to"\n\n i18n-filterFieldAriaLabel="kendo.filter.filterFieldAriaLabel|The text of the filter field aria label"\n filterFieldAriaLabel="field"\n\n i18n-filterOperatorAriaLabel="kendo.filter.filterOperatorAriaLabel|The text of the filter operator aria label"\n filterOperatorAriaLabel="operator"\n\n i18n-filterValueAriaLabel="kendo.filter.filterValueAriaLabel|The text of the filter value aria label"\n filterValueAriaLabel="value"\n\n i18n-filterAriaLabel="kendo.filter.filterAriaLabel|The text of the filter row aria label"\n filterAriaLabel="filter"\n\n i18n-filterToolbarAriaLabel="kendo.filter.filterToolbarAriaLabel|The text of the filter toolbar aria label"\n filterToolbarAriaLabel="filter settings"\n >\n </ng-container>\n <div class="k-widget k-filter" [attr.dir]="direction">\n <ul class=\'k-filter-container\'>\n <li class=\'k-filter-group-main\'>\n <kendo-filter-group\n [currentItem]="getCurrentFilter()"\n (valueChange)="onValueChange()"\n >\n </kendo-filter-group>\n </li>\n </ul>\n </div>\n',isInline:!0,components:[{type:f,selector:"kendo-filter-group",inputs:["index","currentItem"],outputs:["valueChange"]}],directives:[{type:w,selector:"[kendoFilterLocalizedMessages]"}]}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:m,decorators:[{type:n.Component,args:[{providers:[t.LocalizationService,{provide:t.L10N_PREFIX,useValue:"kendo.filter"},v],selector:"kendo-filter",template:'\n <ng-container kendoFilterLocalizedMessages\n i18n-editorDateTodayText="kendo.filter.editorDateTodayText|The text of the Today button of the Date editor"\n editorDateTodayText="Today"\n\n i18n-editorDateToggleText="kendo.filter.editorDateToggleText|The title of the Toggle button of the Date editor."\n editorDateToggleText="Toggle calendar"\n\n i18n-editorNumericDecrement="kendo.filter.editorNumericDecrement|The title of the Decrement button of the Numeric editor"\n editorNumericDecrement="Decrement"\n\n i18n-editorNumericIncrement="kendo.filter.editorNumericIncrement|The title of the Increment button of the Numeric editor"\n editorNumericIncrement="Increment"\n\n i18n-filterExpressionOperators="kendo.filter.filterExpressionOperators|The text of the Filter Expression Operators drop down"\n filterExpressionOperators="Operators"\n\n i18n-filterExpressionFilters="kendo.filter.filterExpressionFilters|The text of the Filter Expression filters drop down"\n filterExpressionFilters="Fields"\n\n i18n-remove="kendo.filter.remove|The text of the Remove button"\n remove="Remove"\n\n i18n-addFilter="kendo.filter.addFilter|The text of the Add Filter button"\n addFilter="Add Filter"\n\n i18n-addGroup="kendo.filter.addGroup|The text of the Add Group button"\n addGroup="Add Group"\n\n i18n-filterAndLogic="kendo.filter.filterAndLogic|The text of the And filter logic"\n filterAndLogic="And"\n\n i18n-filterOrLogic="kendo.filter.filterOrLogic|The text of the Or filter logic"\n filterOrLogic="Or"\n\n i18n-filterEqOperator="kendo.filter.filterEqOperator|The text of the equal filter operator"\n filterEqOperator="Is equal to"\n\n i18n-filterNotEqOperator="kendo.filter.filterNotEqOperator|The text of the not equal filter operator"\n filterNotEqOperator="Is not equal to"\n\n i18n-filterIsNullOperator="kendo.filter.filterIsNullOperator|The text of the is null filter operator"\n filterIsNullOperator="Is null"\n\n i18n-filterIsNotNullOperator="kendo.filter.filterIsNotNullOperator|The text of the is not null filter operator"\n filterIsNotNullOperator="Is not null"\n\n i18n-filterIsEmptyOperator="kendo.filter.filterIsEmptyOperator|The text of the is empty filter operator"\n filterIsEmptyOperator="Is empty"\n\n i18n-filterIsNotEmptyOperator="kendo.filter.filterIsNotEmptyOperator|The text of the is not empty filter operator"\n filterIsNotEmptyOperator="Is not empty"\n\n i18n-filterStartsWithOperator="kendo.filter.filterStartsWithOperator|The text of the starts with filter operator"\n filterStartsWithOperator="Starts with"\n\n i18n-filterContainsOperator="kendo.filter.filterContainsOperator|The text of the contains filter operator"\n filterContainsOperator="Contains"\n\n i18n-filterNotContainsOperator="kendo.filter.filterNotContainsOperator|The text of the does not contain filter operator"\n filterNotContainsOperator="Does not contain"\n\n i18n-filterEndsWithOperator="kendo.filter.filterEndsWithOperator|The text of the ends with filter operator"\n filterEndsWithOperator="Ends with"\n\n i18n-filterGteOperator="kendo.filter.filterGteOperator|The text of the greater than or equal filter operator"\n filterGteOperator="Is greater than or equal to"\n\n i18n-filterGtOperator="kendo.filter.filterGtOperator|The text of the greater than filter operator"\n filterGtOperator="Is greater than"\n\n i18n-filterLteOperator="kendo.filter.filterLteOperator|The text of the less than or equal filter operator"\n filterLteOperator="Is less than or equal to"\n\n i18n-filterLtOperator="kendo.filter.filterLtOperator|The text of the less than filter operator"\n filterLtOperator="Is less than"\n\n i18n-filterIsTrue="kendo.filter.filterIsTrue|The text of the IsTrue boolean filter option"\n filterIsTrue="Is True"\n\n i18n-filterIsFalse="kendo.filter.filterIsFalse|The text of the IsFalse boolean filter option"\n filterIsFalse="Is False"\n\n i18n-filterBooleanAll="kendo.filter.filterBooleanAll|The text of the (All) boolean filter option"\n filterBooleanAll="(All)"\n\n i18n-filterAfterOrEqualOperator="kendo.filter.filterAfterOrEqualOperator|The text of the after or equal date filter operator"\n filterAfterOrEqualOperator="Is after or equal to"\n\n i18n-filterAfterOperator="kendo.filter.filterAfterOperator|The text of the after date filter operator"\n filterAfterOperator="Is after"\n\n i18n-filterBeforeOperator="kendo.filter.filterBeforeOperator|The text of the before date filter operator"\n filterBeforeOperator="Is before"\n\n i18n-filterBeforeOrEqualOperator="kendo.filter.filterBeforeOrEqualOperator|The text of the before or equal date filter operator"\n filterBeforeOrEqualOperator="Is before or equal to"\n\n i18n-filterFieldAriaLabel="kendo.filter.filterFieldAriaLabel|The text of the filter field aria label"\n filterFieldAriaLabel="field"\n\n i18n-filterOperatorAriaLabel="kendo.filter.filterOperatorAriaLabel|The text of the filter operator aria label"\n filterOperatorAriaLabel="operator"\n\n i18n-filterValueAriaLabel="kendo.filter.filterValueAriaLabel|The text of the filter value aria label"\n filterValueAriaLabel="value"\n\n i18n-filterAriaLabel="kendo.filter.filterAriaLabel|The text of the filter row aria label"\n filterAriaLabel="filter"\n\n i18n-filterToolbarAriaLabel="kendo.filter.filterToolbarAriaLabel|The text of the filter toolbar aria label"\n filterToolbarAriaLabel="filter settings"\n >\n </ng-container>\n <div class="k-widget k-filter" [attr.dir]="direction">\n <ul class=\'k-filter-container\'>\n <li class=\'k-filter-group-main\'>\n <kendo-filter-group\n [currentItem]="getCurrentFilter()"\n (valueChange)="onValueChange()"\n >\n </kendo-filter-group>\n </li>\n </ul>\n </div>\n'}]}],ctorParameters:function(){return[{type:v},{type:d.LocalizationService},{type:u.ChangeDetectorRef}]},propDecorators:{direction:[{type:n.HostBinding,args:["attr.dir"]}],filters:[{type:n.Input}],value:[{type:n.Input}],valueChange:[{type:n.Output}]}});A(Z,Q=h),Object.defineProperty(Z.prototype,"override",{get:function(){return!0},enumerable:!1,configurable:!0});var Q,q=Z;function Z(e){var t=Q.call(this)||this;return t.service=e,t}q.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:q,deps:[{token:d.LocalizationService}],target:u.ɵɵFactoryTarget.Component}),q.ɵcmp=u.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:q,selector:"kendo-filter-messages",providers:[{provide:h,useExisting:n.forwardRef(function(){return q})}],usesInheritance:!0,ngImport:u,template:"",isInline:!0}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:q,decorators:[{type:n.Component,args:[{providers:[{provide:h,useExisting:n.forwardRef(function(){return q})}],selector:"kendo-filter-messages",template:""}]}],ctorParameters:function(){return[{type:d.LocalizationService}]}});t=[a.CommonModule,o.InputsModule,s.LabelModule,r.DropDownsModule,l.ButtonsModule,i.DateInputsModule],h=function(){},h.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:h,deps:[],target:u.ɵɵFactoryTarget.NgModule}),h.ɵmod=u.ɵɵngDeclareNgModule({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:h,imports:[a.CommonModule,o.InputsModule,s.LabelModule,r.DropDownsModule,l.ButtonsModule,i.DateInputsModule],exports:[a.CommonModule,o.InputsModule,s.LabelModule,r.DropDownsModule,l.ButtonsModule,i.DateInputsModule]}),h.ɵinj=u.ɵɵngDeclareInjector({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:h,imports:[V([],N(t)),a.CommonModule,o.InputsModule,s.LabelModule,r.DropDownsModule,l.ButtonsModule,i.DateInputsModule]}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:h,decorators:[{type:n.NgModule,args:[{imports:V([],N(t)),exports:V([],N(t))}]}]}),a=function(){};a.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:a,deps:[],target:u.ɵɵFactoryTarget.NgModule}),a.ɵmod=u.ɵɵngDeclareNgModule({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:a,declarations:[m,F,C,g,f,O,c,T,w,q,y],imports:[h],exports:[m,F,C,g,f,O,c,T,w,q,y]}),a.ɵinj=u.ɵɵngDeclareInjector({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:a,imports:[[h]]}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:a,decorators:[{type:n.NgModule,args:[{imports:[h],declarations:[m,F,C,g,f,O,c,T,w,q,y],exports:[m,F,C,g,f,O,c,T,w,q,y]}]}]}),e.AriaLabelValueDirective=y,e.CustomMessagesComponent=q,e.FilterBooleanEditorComponent=c,e.FilterComponent=m,e.FilterDateEditorComponent=T,e.FilterExpressionComponent=g,e.FilterExpressionOperatorsComponent=O,e.FilterGroupComponent=f,e.FilterModule=a,e.FilterNumericEditorComponent=F,e.FilterTextEditorComponent=C,e.LocalizedMessagesDirective=w,Object.defineProperty(e,"__esModule",{value:!0})});
5
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@progress/kendo-angular-l10n"),require("@progress/kendo-licensing"),require("@progress/kendo-angular-dropdowns"),require("@progress/kendo-angular-inputs"),require("@progress/kendo-angular-dateinputs"),require("@angular/common"),require("@progress/kendo-angular-buttons"),require("@progress/kendo-angular-label")):"function"==typeof define&&define.amd?define("KendoAngularFilter",["exports","@angular/core","@progress/kendo-angular-l10n","@progress/kendo-licensing","@progress/kendo-angular-dropdowns","@progress/kendo-angular-inputs","@progress/kendo-angular-dateinputs","@angular/common","@progress/kendo-angular-buttons","@progress/kendo-angular-label"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).KendoAngularFilter={},e.ng.core,e.KendoAngularL10N,e.KendoLicensing,e.KendoAngularDropdowns,e.KendoAngularInputs,e.KendoAngularDateinputs,e.ng.common,e.KendoAngularButtons,e.KendoAngularLabel)}(this,function(e,n,t,z,r,o,i,a,l,s){"use strict";function p(r){if(r&&r.__esModule)return r;var n=Object.create(null);return r&&Object.keys(r).forEach(function(e){var t;"default"!==e&&(t=Object.getOwnPropertyDescriptor(r,e),Object.defineProperty(n,e,t.get?t:{enumerable:!0,get:function(){return r[e]}}))}),n.default=r,Object.freeze(n)}var u=p(n),d=p(t),f=p(r),c=p(o),g=p(i),m=p(a),h=p(l),v=(b.prototype.addFilterGroup=function(e){e.filters.push({logic:"or",filters:[]})},b.prototype.addFilterExpression=function(e){e.filters.push({operator:"eq",value:null,field:null})},b.prototype.remove=function(t,r,e){var n,o=this;e=e||this.normalizedValue,t===e?e.filters=[]:0<=(n=e.filters.indexOf(t))&&n===r?e.filters=e.filters.filter(function(e){return e!==t}):e.filters.forEach(function(e){return e.filters&&o.remove(t,r,e)})},b);function b(){this.filters=[]}v.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:v,deps:[],target:u.ɵɵFactoryTarget.Injectable}),v.ɵprov=u.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:v}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:v,decorators:[{type:n.Injectable}]});function I(r){return function(t){return Object.keys(r).map(function(e){return{text:t.get(e),value:r[e]}})}}var k=["isnull","isnotnull","isempty","isnotempty"],M={filterEqOperator:"eq",filterNotEqOperator:"neq",filterContainsOperator:"contains",filterNotContainsOperator:"doesnotcontain",filterStartsWithOperator:"startswith",filterEndsWithOperator:"endswith",filterIsNullOperator:"isnull",filterIsNotNullOperator:"isnotnull",filterIsEmptyOperator:"isempty",filterIsNotEmptyOperator:"isnotempty"},B={filterEqOperator:"eq",filterNotEqOperator:"neq",filterGteOperator:"gte",filterGtOperator:"gt",filterLteOperator:"lte",filterLtOperator:"lt",filterIsNullOperator:"isnull",filterIsNotNullOperator:"isnotnull"},G={filterEqOperator:"eq",filterNotEqOperator:"neq",filterAfterOrEqualOperator:"gte",filterAfterOperator:"gt",filterBeforeOrEqualOperator:"lte",filterBeforeOperator:"lt",filterIsNullOperator:"isnull",filterIsNotNullOperator:"isnotnull"},P={string:M,number:B,date:G},j={filterAndLogic:"and",filterOrLogic:"or"},R={name:"@progress/kendo-angular-filter",productName:"Kendo UI for Angular",productCodes:["KENDOUIANGULAR","KENDOUICOMPLETE"],publishDate:1652946928,version:"",licensingDocsUrl:"https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning"},y=(W.prototype.ngOnChanges=function(){var e=this.hostElement.nativeElement.querySelector("input")||this.hostElement.nativeElement;this.renderer.setAttribute(e,"aria-label",this.ariaLabel)},W);function W(e,t){this.hostElement=e,this.renderer=t}y.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:y,deps:[{token:u.ElementRef},{token:u.Renderer2}],target:u.ɵɵFactoryTarget.Directive}),y.ɵdir=u.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:y,selector:"[kendoAriaLabelValue]",inputs:{ariaLabel:["kendoAriaLabelValue","ariaLabel"]},usesOnChanges:!0,ngImport:u}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:y,decorators:[{type:n.Directive,args:[{selector:"[kendoAriaLabelValue]"}]}],ctorParameters:function(){return[{type:u.ElementRef},{type:u.Renderer2}]},propDecorators:{ariaLabel:[{type:n.Input,args:["kendoAriaLabelValue"]}]}});x.prototype.messageFor=function(e){return this.localization.get(e)},x.prototype.operatorValueChange=function(e){this.valueChange.emit(e)};var O=x;function x(e){this.localization=e,this.operators=[],this.valueChange=new n.EventEmitter}O.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:O,deps:[{token:d.LocalizationService}],target:u.ɵɵFactoryTarget.Component}),O.ɵcmp=u.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:O,selector:"kendo-filter-expression-operators",inputs:{currentItem:"currentItem",operators:"operators"},outputs:{valueChange:"valueChange"},ngImport:u,template:'\n <kendo-dropdownlist\n [kendoAriaLabelValue]="messageFor(\'filterOperatorAriaLabel\')"\n [data]="operators"\n [title]="messageFor(\'filterExpressionOperators\')"\n [(value)]="currentItem.operator"\n (valueChange)="operatorValueChange($event)"\n [valuePrimitive]="true"\n textField="text"\n valueField="value"\n >\n </kendo-dropdownlist>\n ',isInline:!0,components:[{type:f.DropDownListComponent,selector:"kendo-dropdownlist",inputs:["iconClass","loading","data","value","textField","valueField","popupSettings","listHeight","defaultItem","disabled","itemDisabled","readonly","filterable","virtual","ignoreCase","delay","valuePrimitive","tabindex","tabIndex","size","rounded","fillMode","id"],outputs:["valueChange","filterChange","selectionChange","open","opened","close","closed","focus","blur"],exportAs:["kendoDropDownList"]}],directives:[{type:y,selector:"[kendoAriaLabelValue]",inputs:["kendoAriaLabelValue"]}]}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:O,decorators:[{type:n.Component,args:[{selector:"kendo-filter-expression-operators",template:'\n <kendo-dropdownlist\n [kendoAriaLabelValue]="messageFor(\'filterOperatorAriaLabel\')"\n [data]="operators"\n [title]="messageFor(\'filterExpressionOperators\')"\n [(value)]="currentItem.operator"\n (valueChange)="operatorValueChange($event)"\n [valuePrimitive]="true"\n textField="text"\n valueField="value"\n >\n </kendo-dropdownlist>\n '}]}],ctorParameters:function(){return[{type:d.LocalizationService}]},propDecorators:{currentItem:[{type:n.Input}],operators:[{type:n.Input}],valueChange:[{type:n.Output}]}});_.prototype.messageFor=function(e){return this.localization.get(e)};var C=_;function _(e){this.localization=e,this.valueChange=new n.EventEmitter}C.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:C,deps:[{token:d.LocalizationService}],target:u.ɵɵFactoryTarget.Component}),C.ɵcmp=u.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:C,selector:"kendo-filter-text-editor",inputs:{currentItem:"currentItem",isDisabled:"isDisabled"},outputs:{valueChange:"valueChange"},ngImport:u,template:'\n <kendo-textbox\n [kendoAriaLabelValue]="messageFor(\'filterValueAriaLabel\')"\n class="k-filter-toolbar-item k-filter-value"\n [(value)]="currentItem.value"\n (valueChange)="valueChange.emit()"\n [disabled]="isDisabled">\n </kendo-textbox>\n ',isInline:!0,components:[{type:c.TextBoxComponent,selector:"kendo-textbox",inputs:["focusableId","title","disabled","readonly","tabindex","value","selectOnFocus","showSuccessIcon","showErrorIcon","clearButton","successIcon","errorIcon","clearButtonIcon","size","rounded","fillMode","tabIndex","placeholder","maxlength"],outputs:["valueChange","inputFocus","inputBlur","focus","blur"],exportAs:["kendoTextBox"]}],directives:[{type:y,selector:"[kendoAriaLabelValue]",inputs:["kendoAriaLabelValue"]}]}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:C,decorators:[{type:n.Component,args:[{selector:"kendo-filter-text-editor",template:'\n <kendo-textbox\n [kendoAriaLabelValue]="messageFor(\'filterValueAriaLabel\')"\n class="k-filter-toolbar-item k-filter-value"\n [(value)]="currentItem.value"\n (valueChange)="valueChange.emit()"\n [disabled]="isDisabled">\n </kendo-textbox>\n '}]}],ctorParameters:function(){return[{type:d.LocalizationService}]},propDecorators:{currentItem:[{type:n.Input}],isDisabled:[{type:n.Input}],valueChange:[{type:n.Output}]}});K.prototype.messageFor=function(e){return this.localization.get(e)};var F=K;function K(e){this.localization=e,this.valueChange=new n.EventEmitter}F.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:F,deps:[{token:d.LocalizationService}],target:u.ɵɵFactoryTarget.Component}),F.ɵcmp=u.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:F,selector:"kendo-filter-numeric-editor",inputs:{currentItem:"currentItem",isDisabled:"isDisabled"},outputs:{valueChange:"valueChange"},ngImport:u,template:'\n <kendo-numerictextbox\n [kendoAriaLabelValue]="messageFor(\'filterValueAriaLabel\')"\n class="k-filter-toolbar-item k-filter-value"\n [(value)]="currentItem.value"\n (valueChange)="valueChange.emit()"\n [disabled]="isDisabled">\n <kendo-numerictextbox-messages\n [increment]="messageFor(\'editorNumericIncrement\')"\n [decrement]="messageFor(\'editorNumericDecrement\')">\n </kendo-numerictextbox-messages>\n </kendo-numerictextbox>\n ',isInline:!0,components:[{type:c.NumericTextBoxComponent,selector:"kendo-numerictextbox",inputs:["focusableId","disabled","readonly","title","autoCorrect","format","max","min","decimals","placeholder","step","spinners","rangeValidation","tabindex","tabIndex","changeValueOnScroll","selectOnFocus","value","maxlength","size","rounded","fillMode"],outputs:["valueChange","focus","blur"],exportAs:["kendoNumericTextBox"]},{type:c.NumericTextBoxCustomMessagesComponent,selector:"kendo-numerictextbox-messages"}],directives:[{type:y,selector:"[kendoAriaLabelValue]",inputs:["kendoAriaLabelValue"]}]}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:F,decorators:[{type:n.Component,args:[{selector:"kendo-filter-numeric-editor",template:'\n <kendo-numerictextbox\n [kendoAriaLabelValue]="messageFor(\'filterValueAriaLabel\')"\n class="k-filter-toolbar-item k-filter-value"\n [(value)]="currentItem.value"\n (valueChange)="valueChange.emit()"\n [disabled]="isDisabled">\n <kendo-numerictextbox-messages\n [increment]="messageFor(\'editorNumericIncrement\')"\n [decrement]="messageFor(\'editorNumericDecrement\')">\n </kendo-numerictextbox-messages>\n </kendo-numerictextbox>\n '}]}],ctorParameters:function(){return[{type:d.LocalizationService}]},propDecorators:{currentItem:[{type:n.Input}],isDisabled:[{type:n.Input}],valueChange:[{type:n.Output}]}});D.prototype.ngOnInit=function(){var e=this;this.localizationSubscription=this.localization.changes.subscribe(function(){e.defaultItem=e.getDefaultItem(),e.items=e.getValueItems(),e.cdr.detectChanges()})},D.prototype.getDefaultItem=function(){return{text:this.localization.get("filterBooleanAll"),value:null}},D.prototype.getValueItems=function(){return[{text:this.localization.get("filterIsTrue"),value:!0},{text:this.localization.get("filterIsFalse"),value:!1}]},D.prototype.ngOnDestroy=function(){this.localizationSubscription&&this.localizationSubscription.unsubscribe()},D.prototype.messageFor=function(e){return this.localization.get(e)};c=D;function D(e,t){this.localization=e,this.cdr=t,this.valueChange=new n.EventEmitter,this.items=this.getValueItems(),this.defaultItem=this.getDefaultItem()}c.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:c,deps:[{token:d.LocalizationService},{token:u.ChangeDetectorRef}],target:u.ɵɵFactoryTarget.Component}),c.ɵcmp=u.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:c,selector:"kendo-filter-boolean-editor",inputs:{currentItem:"currentItem"},outputs:{valueChange:"valueChange"},ngImport:u,template:'\n <kendo-dropdownlist\n [kendoAriaLabelValue]="messageFor(\'filterValueAriaLabel\')"\n class="k-filter-toolbar-item k-filter-value"\n [(value)]="currentItem.value"\n (valueChange)="valueChange.emit()"\n [data]="items"\n [defaultItem]="defaultItem"\n [valuePrimitive]="true"\n textField="text"\n valueField="value"\n >\n </kendo-dropdownlist>\n ',isInline:!0,components:[{type:f.DropDownListComponent,selector:"kendo-dropdownlist",inputs:["iconClass","loading","data","value","textField","valueField","popupSettings","listHeight","defaultItem","disabled","itemDisabled","readonly","filterable","virtual","ignoreCase","delay","valuePrimitive","tabindex","tabIndex","size","rounded","fillMode","id"],outputs:["valueChange","filterChange","selectionChange","open","opened","close","closed","focus","blur"],exportAs:["kendoDropDownList"]}],directives:[{type:y,selector:"[kendoAriaLabelValue]",inputs:["kendoAriaLabelValue"]}]}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:c,decorators:[{type:n.Component,args:[{selector:"kendo-filter-boolean-editor",template:'\n <kendo-dropdownlist\n [kendoAriaLabelValue]="messageFor(\'filterValueAriaLabel\')"\n class="k-filter-toolbar-item k-filter-value"\n [(value)]="currentItem.value"\n (valueChange)="valueChange.emit()"\n [data]="items"\n [defaultItem]="defaultItem"\n [valuePrimitive]="true"\n textField="text"\n valueField="value"\n >\n </kendo-dropdownlist>\n '}]}],ctorParameters:function(){return[{type:d.LocalizationService},{type:u.ChangeDetectorRef}]},propDecorators:{currentItem:[{type:n.Input}],valueChange:[{type:n.Output}]}});U.prototype.messageFor=function(e){return this.localization.get(e)};var T=U;function U(e){this.localization=e,this.valueChange=new n.EventEmitter}T.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:T,deps:[{token:d.LocalizationService}],target:u.ɵɵFactoryTarget.Component}),T.ɵcmp=u.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:T,selector:"kendo-filter-date-editor",inputs:{currentItem:"currentItem",isDisabled:"isDisabled"},outputs:{valueChange:"valueChange"},ngImport:u,template:'\n <kendo-datepicker\n [kendoAriaLabelValue]="messageFor(\'filterValueAriaLabel\')"\n class="k-filter-toolbar-item k-filter-value"\n [(value)]="currentItem.value"\n (valueChange)="valueChange.emit()"\n [disabled]="isDisabled">\n <kendo-datepicker-messages\n [toggle]="messageFor(\'editorDateToggleText\')"\n [today]="messageFor(\'editorDateTodayText\')">\n </kendo-datepicker-messages>\n </kendo-datepicker>\n ',isInline:!0,components:[{type:g.DatePickerComponent,selector:"kendo-datepicker",inputs:["cellTemplate","monthCellTemplate","yearCellTemplate","decadeCellTemplate","centuryCellTemplate","weekNumberTemplate","headerTitleTemplate","navigationItemTemplate","focusableId","activeView","bottomView","topView","calendarType","animateCalendarNavigation","disabled","readonly","readOnlyInput","popupSettings","navigation","min","max","incompleteDateValidation","focusedDate","value","format","twoDigitYearMax","formatPlaceholder","placeholder","tabindex","tabIndex","disabledDates","title","rangeValidation","disabledDatesValidation","weekNumber","size","rounded","fillMode"],outputs:["valueChange","focus","blur","open","close"],exportAs:["kendo-datepicker"]},{type:g.DatePickerCustomMessagesComponent,selector:"kendo-datepicker-messages"}],directives:[{type:y,selector:"[kendoAriaLabelValue]",inputs:["kendoAriaLabelValue"]}]}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:T,decorators:[{type:n.Component,args:[{selector:"kendo-filter-date-editor",template:'\n <kendo-datepicker\n [kendoAriaLabelValue]="messageFor(\'filterValueAriaLabel\')"\n class="k-filter-toolbar-item k-filter-value"\n [(value)]="currentItem.value"\n (valueChange)="valueChange.emit()"\n [disabled]="isDisabled">\n <kendo-datepicker-messages\n [toggle]="messageFor(\'editorDateToggleText\')"\n [today]="messageFor(\'editorDateTodayText\')">\n </kendo-datepicker-messages>\n </kendo-datepicker>\n '}]}],ctorParameters:function(){return[{type:d.LocalizationService}]},propDecorators:{currentItem:[{type:n.Input}],isDisabled:[{type:n.Input}],valueChange:[{type:n.Output}]}});L.prototype.ngOnInit=function(){var e=this,t=(this.isEditorDisabled=0<=k.indexOf(this.currentItem.operator),this.filters=this.filterService.filters,this.getFilterExpressionByField(this.currentItem.field)),r=(this.currentItem.field&&this.setOperators(t),this.getFilterExpressionByField(this.filterService.filters[0].field));this.currentItem.field||(this.currentItem.field=this.filterService.filters[0].field,this.setOperators(r)),this.localizationSubscription=this.localization.changes.subscribe(function(){e.setOperators(t||r),e.cdr.detectChanges()})},L.prototype.ngOnDestroy=function(){this.localizationSubscription&&this.localizationSubscription.unsubscribe()},L.prototype.normalizeOperators=function(e,t){for(var r=[],n=0;n<t.length;n++)0<=["string","number","boolean","date"].indexOf(e)&&r.push({value:t[n],text:this.localization.get(function(t,r){return Object.keys(t).find(function(e){return t[e]===r})}(P[e],t[n]))});return r},L.prototype.messageFor=function(e){return this.localization.get(e)},L.prototype.getFilterExpressionByField=function(t){var e=this.filterService.filters.find(function(e){return e.field===t});return e||null},L.prototype.filterValueChange=function(e){this.currentItem.value=null,this.currentItem.field=e;e=this.getFilterExpressionByField(this.currentItem.field);this.setOperators(e),this.valueChange.emit()},L.prototype.getDefaultOperators=function(e){switch(e){case"string":return I(M)(this.localization);case"number":return I(B)(this.localization);case"date":return I(G)(this.localization)}},L.prototype.getEditorType=function(){var t=this;return this.filterService.filters.find(function(e){return e.field===t.currentItem.field}).editor},L.prototype.removeFilterExpression=function(){this.filterService.remove(this.currentItem,this.index),this.valueChange.emit()},L.prototype.setOperators=function(e){var t;this.isBoolean="boolean"===e.editor,this.isBoolean||(e.operators?(t=this.normalizeOperators(e.editor,e.operators),this.operators=t,this.currentItem.operator||(this.currentItem.operator=t[0].value)):(this.operators=this.getDefaultOperators(e.editor),this.currentItem.operator||(this.currentItem.operator=this.operators[0].value)))},L.prototype.onOperatorChange=function(e){this.valueChange.emit(),0<=k.indexOf(e)?(this.currentItem.value=null,this.isEditorDisabled=!0):this.isEditorDisabled=!1};g=L;function L(e,t,r){this.filterService=e,this.localization=t,this.cdr=r,this.valueChange=new n.EventEmitter,this.operators=[],this.filters=[],this.isBoolean=!1,this.isEditorDisabled=!1}g.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:g,deps:[{token:v},{token:d.LocalizationService},{token:u.ChangeDetectorRef}],target:u.ɵɵFactoryTarget.Component}),g.ɵcmp=u.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:g,selector:"kendo-filter-expression",inputs:{index:"index",currentItem:"currentItem"},outputs:{valueChange:"valueChange"},ngImport:u,template:'\n <div class="k-filter-toolbar" role="group" [attr.aria-label]="messageFor(\'filterAriaLabel\')">\n <div class="k-toolbar">\n <div class="k-filter-toolbar-item k-filter-field">\n <kendo-dropdownlist\n [kendoAriaLabelValue]="messageFor(\'filterFieldAriaLabel\')"\n [title]="messageFor(\'filterExpressionFilters\')"\n [data]="filters"\n textField="title"\n valueField="field"\n [value]="currentItem.field"\n [valuePrimitive]="true"\n (valueChange)="filterValueChange($event)">\n </kendo-dropdownlist>\n </div>\n <div *ngIf="!isBoolean" class="k-filter-toolbar-item k-filter-operator">\n <kendo-filter-expression-operators\n [currentItem]="currentItem"\n [operators]="operators"\n (valueChange)="onOperatorChange($event);">\n </kendo-filter-expression-operators>\n </div>\n\n <ng-container [ngSwitch]="getEditorType()">\n <kendo-filter-text-editor *ngSwitchCase="\'string\'" [currentItem]="currentItem" [isDisabled]="isEditorDisabled" (valueChange)="valueChange.emit()"></kendo-filter-text-editor>\n <kendo-filter-numeric-editor *ngSwitchCase="\'number\'" [currentItem]="currentItem" [isDisabled]="isEditorDisabled" (valueChange)="valueChange.emit()"></kendo-filter-numeric-editor>\n <kendo-filter-boolean-editor *ngSwitchCase="\'boolean\'" [currentItem]="currentItem" (valueChange)="valueChange.emit()"></kendo-filter-boolean-editor>\n <kendo-filter-date-editor *ngSwitchCase="\'date\'" [currentItem]="currentItem" [isDisabled]="isEditorDisabled" (valueChange)="valueChange.emit()"></kendo-filter-date-editor>\n </ng-container>\n\n <div class="k-filter-toolbar-item">\n <button\n kendoButton\n icon="close"\n fillMode="flat"\n [title]="messageFor(\'remove\')"\n (click)="removeFilterExpression()">\n </button>\n </div>\n </div>\n </div>\n ',isInline:!0,components:[{type:f.DropDownListComponent,selector:"kendo-dropdownlist",inputs:["iconClass","loading","data","value","textField","valueField","popupSettings","listHeight","defaultItem","disabled","itemDisabled","readonly","filterable","virtual","ignoreCase","delay","valuePrimitive","tabindex","tabIndex","size","rounded","fillMode","id"],outputs:["valueChange","filterChange","selectionChange","open","opened","close","closed","focus","blur"],exportAs:["kendoDropDownList"]},{type:O,selector:"kendo-filter-expression-operators",inputs:["currentItem","operators"],outputs:["valueChange"]},{type:C,selector:"kendo-filter-text-editor",inputs:["currentItem","isDisabled"],outputs:["valueChange"]},{type:F,selector:"kendo-filter-numeric-editor",inputs:["currentItem","isDisabled"],outputs:["valueChange"]},{type:c,selector:"kendo-filter-boolean-editor",inputs:["currentItem"],outputs:["valueChange"]},{type:T,selector:"kendo-filter-date-editor",inputs:["currentItem","isDisabled"],outputs:["valueChange"]}],directives:[{type:y,selector:"[kendoAriaLabelValue]",inputs:["kendoAriaLabelValue"]},{type:m.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]},{type:m.NgSwitch,selector:"[ngSwitch]",inputs:["ngSwitch"]},{type:m.NgSwitchCase,selector:"[ngSwitchCase]",inputs:["ngSwitchCase"]},{type:h.ButtonDirective,selector:"button[kendoButton], span[kendoButton]",inputs:["toggleable","togglable","selected","tabIndex","icon","iconClass","imageUrl","disabled","size","rounded","fillMode","themeColor","role","primary","look"],outputs:["selectedChange","click"],exportAs:["kendoButton"]}]}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:g,decorators:[{type:n.Component,args:[{selector:"kendo-filter-expression",template:'\n <div class="k-filter-toolbar" role="group" [attr.aria-label]="messageFor(\'filterAriaLabel\')">\n <div class="k-toolbar">\n <div class="k-filter-toolbar-item k-filter-field">\n <kendo-dropdownlist\n [kendoAriaLabelValue]="messageFor(\'filterFieldAriaLabel\')"\n [title]="messageFor(\'filterExpressionFilters\')"\n [data]="filters"\n textField="title"\n valueField="field"\n [value]="currentItem.field"\n [valuePrimitive]="true"\n (valueChange)="filterValueChange($event)">\n </kendo-dropdownlist>\n </div>\n <div *ngIf="!isBoolean" class="k-filter-toolbar-item k-filter-operator">\n <kendo-filter-expression-operators\n [currentItem]="currentItem"\n [operators]="operators"\n (valueChange)="onOperatorChange($event);">\n </kendo-filter-expression-operators>\n </div>\n\n <ng-container [ngSwitch]="getEditorType()">\n <kendo-filter-text-editor *ngSwitchCase="\'string\'" [currentItem]="currentItem" [isDisabled]="isEditorDisabled" (valueChange)="valueChange.emit()"></kendo-filter-text-editor>\n <kendo-filter-numeric-editor *ngSwitchCase="\'number\'" [currentItem]="currentItem" [isDisabled]="isEditorDisabled" (valueChange)="valueChange.emit()"></kendo-filter-numeric-editor>\n <kendo-filter-boolean-editor *ngSwitchCase="\'boolean\'" [currentItem]="currentItem" (valueChange)="valueChange.emit()"></kendo-filter-boolean-editor>\n <kendo-filter-date-editor *ngSwitchCase="\'date\'" [currentItem]="currentItem" [isDisabled]="isEditorDisabled" (valueChange)="valueChange.emit()"></kendo-filter-date-editor>\n </ng-container>\n\n <div class="k-filter-toolbar-item">\n <button\n kendoButton\n icon="close"\n fillMode="flat"\n [title]="messageFor(\'remove\')"\n (click)="removeFilterExpression()">\n </button>\n </div>\n </div>\n </div>\n '}]}],ctorParameters:function(){return[{type:v},{type:d.LocalizationService},{type:u.ChangeDetectorRef}]},propDecorators:{index:[{type:n.Input}],currentItem:[{type:n.Input}],valueChange:[{type:n.Output}]}});E.prototype.ngOnInit=function(){var e=this;this.operators=this.getLogicOperators(),this.localizationSubscription=this.localization.changes.subscribe(function(){e.operators=e.getLogicOperators(),e.cdr.detectChanges()})},E.prototype.ngOnDestroy=function(){this.localizationSubscription&&this.localizationSubscription.unsubscribe()},E.prototype.getLogicOperators=function(){return I(j)(this.localization)},E.prototype.messageFor=function(e){return this.localization.get(e)},E.prototype.selectedChange=function(e){this.currentItem.logic!==e&&(this.currentItem.logic=e,this.valueChange.emit())},E.prototype.addFilterExpression=function(){this.filterService.addFilterExpression(this.currentItem),this.valueChange.emit()},E.prototype.addFilterGroup=function(){this.filterService.addFilterGroup(this.currentItem),this.valueChange.emit()},E.prototype.removeFilterGroup=function(){this.filterService.remove(this.currentItem,this.index),this.valueChange.emit()};f=E;function E(e,t,r){this.filterService=e,this.localization=t,this.cdr=r,this.index=0,this.currentItem={logic:"or",filters:[]},this.valueChange=new n.EventEmitter,this.operators=[]}f.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:f,deps:[{token:v},{token:d.LocalizationService},{token:u.ChangeDetectorRef}],target:u.ɵɵFactoryTarget.Component}),f.ɵcmp=u.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:f,selector:"kendo-filter-group",inputs:{index:"index",currentItem:"currentItem"},outputs:{valueChange:"valueChange"},ngImport:u,template:'\n <div class="k-filter-toolbar" role="toolbar" [attr.aria-label]="messageFor(\'filterToolbarAriaLabel\')">\n <div class="k-toolbar">\n <div class="k-filter-toolbar-item">\n <div class="k-widget k-button-group" role="group">\n <button\n *ngFor="let operator of operators"\n kendoButton\n [ngClass]="{\'k-group-start\': operator.value === \'and\', \'k-group-end\': operator.value === \'or\'}"\n [selected]="currentItem.logic === operator.value"\n [title]="operator.text"\n (click)="selectedChange(operator.value)"\n >\n {{operator.text}}\n </button>\n </div>\n </div>\n <div class="k-filter-toolbar-item">\n <button\n kendoButton\n [title]="messageFor(\'addFilter\')"\n icon="filter-add-expression"\n (click)="addFilterExpression()">\n {{messageFor(\'addFilter\')}}\n </button>\n </div>\n <div class="k-filter-toolbar-item">\n <button\n kendoButton\n [title]="messageFor(\'addGroup\')"\n icon="filter-add-group"\n (click)="addFilterGroup()">\n {{messageFor(\'addGroup\')}}\n </button>\n </div>\n <div class="k-filter-toolbar-item">\n <button\n kendoButton\n icon="close"\n fillMode="flat"\n [title]="messageFor(\'remove\')"\n (click)="removeFilterGroup()">\n </button>\n </div>\n </div>\n </div>\n\n <ul class="k-filter-lines" *ngIf="currentItem.filters">\n <ng-container *ngFor="let item of currentItem.filters; let i = index;">\n <li class="k-filter-item" *ngIf="!item[\'filters\']">\n <kendo-filter-expression (valueChange)="valueChange.emit()" [currentItem]="item" [index]="i">\n </kendo-filter-expression>\n </li>\n <li class="k-filter-item" *ngIf="item[\'filters\']">\n <kendo-filter-group\n (valueChange)="valueChange.emit()"\n [currentItem]="item"\n [index]="i"\n >\n </kendo-filter-group>\n </li>\n </ng-container>\n </ul>\n ',isInline:!0,components:[{type:g,selector:"kendo-filter-expression",inputs:["index","currentItem"],outputs:["valueChange"]},{type:f,selector:"kendo-filter-group",inputs:["index","currentItem"],outputs:["valueChange"]}],directives:[{type:m.NgForOf,selector:"[ngFor][ngForOf]",inputs:["ngForOf","ngForTrackBy","ngForTemplate"]},{type:h.ButtonDirective,selector:"button[kendoButton], span[kendoButton]",inputs:["toggleable","togglable","selected","tabIndex","icon","iconClass","imageUrl","disabled","size","rounded","fillMode","themeColor","role","primary","look"],outputs:["selectedChange","click"],exportAs:["kendoButton"]},{type:m.NgClass,selector:"[ngClass]",inputs:["class","ngClass"]},{type:m.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]}]}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:f,decorators:[{type:n.Component,args:[{selector:"kendo-filter-group",template:'\n <div class="k-filter-toolbar" role="toolbar" [attr.aria-label]="messageFor(\'filterToolbarAriaLabel\')">\n <div class="k-toolbar">\n <div class="k-filter-toolbar-item">\n <div class="k-widget k-button-group" role="group">\n <button\n *ngFor="let operator of operators"\n kendoButton\n [ngClass]="{\'k-group-start\': operator.value === \'and\', \'k-group-end\': operator.value === \'or\'}"\n [selected]="currentItem.logic === operator.value"\n [title]="operator.text"\n (click)="selectedChange(operator.value)"\n >\n {{operator.text}}\n </button>\n </div>\n </div>\n <div class="k-filter-toolbar-item">\n <button\n kendoButton\n [title]="messageFor(\'addFilter\')"\n icon="filter-add-expression"\n (click)="addFilterExpression()">\n {{messageFor(\'addFilter\')}}\n </button>\n </div>\n <div class="k-filter-toolbar-item">\n <button\n kendoButton\n [title]="messageFor(\'addGroup\')"\n icon="filter-add-group"\n (click)="addFilterGroup()">\n {{messageFor(\'addGroup\')}}\n </button>\n </div>\n <div class="k-filter-toolbar-item">\n <button\n kendoButton\n icon="close"\n fillMode="flat"\n [title]="messageFor(\'remove\')"\n (click)="removeFilterGroup()">\n </button>\n </div>\n </div>\n </div>\n\n <ul class="k-filter-lines" *ngIf="currentItem.filters">\n <ng-container *ngFor="let item of currentItem.filters; let i = index;">\n <li class="k-filter-item" *ngIf="!item[\'filters\']">\n <kendo-filter-expression (valueChange)="valueChange.emit()" [currentItem]="item" [index]="i">\n </kendo-filter-expression>\n </li>\n <li class="k-filter-item" *ngIf="item[\'filters\']">\n <kendo-filter-group\n (valueChange)="valueChange.emit()"\n [currentItem]="item"\n [index]="i"\n >\n </kendo-filter-group>\n </li>\n </ng-container>\n </ul>\n '}]}],ctorParameters:function(){return[{type:v},{type:d.LocalizationService},{type:u.ChangeDetectorRef}]},propDecorators:{index:[{type:n.Input}],currentItem:[{type:n.Input}],valueChange:[{type:n.Output}]}});var $=function(e,t){return($=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)};function A(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}$(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}Object.create;function V(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||0<t--)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a}function N(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o<i;o++)!n&&o in t||((n=n||Array.prototype.slice.call(t,0,o))[o]=t[o]);return e.concat(n||Array.prototype.slice.call(t))}Object.create;A(J,H=t.ComponentMessages);var H,h=J;function J(){return null!==H&&H.apply(this,arguments)||this}h.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:h,deps:null,target:u.ɵɵFactoryTarget.Directive}),h.ɵdir=u.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:h,selector:"[kendoFilterMessages]",inputs:{filterExpressionOperators:"filterExpressionOperators",filterExpressionFilters:"filterExpressionFilters",remove:"remove",addGroup:"addGroup",addFilter:"addFilter",filterAndLogic:"filterAndLogic",filterOrLogic:"filterOrLogic",filterEqOperator:"filterEqOperator",filterNotEqOperator:"filterNotEqOperator",filterIsNullOperator:"filterIsNullOperator",filterIsNotNullOperator:"filterIsNotNullOperator",filterIsEmptyOperator:"filterIsEmptyOperator",filterIsNotEmptyOperator:"filterIsNotEmptyOperator",filterStartsWithOperator:"filterStartsWithOperator",filterContainsOperator:"filterContainsOperator",filterNotContainsOperator:"filterNotContainsOperator",filterEndsWithOperator:"filterEndsWithOperator",filterGteOperator:"filterGteOperator",filterGtOperator:"filterGtOperator",filterLteOperator:"filterLteOperator",filterLtOperator:"filterLtOperator",filterIsTrue:"filterIsTrue",filterIsFalse:"filterIsFalse",filterBooleanAll:"filterBooleanAll",filterAfterOrEqualOperator:"filterAfterOrEqualOperator",filterAfterOperator:"filterAfterOperator",filterBeforeOperator:"filterBeforeOperator",filterBeforeOrEqualOperator:"filterBeforeOrEqualOperator",editorNumericDecrement:"editorNumericDecrement",editorNumericIncrement:"editorNumericIncrement",editorDateTodayText:"editorDateTodayText",editorDateToggleText:"editorDateToggleText",filterFieldAriaLabel:"filterFieldAriaLabel",filterOperatorAriaLabel:"filterOperatorAriaLabel",filterValueAriaLabel:"filterValueAriaLabel",filterAriaLabel:"filterAriaLabel",filterToolbarAriaLabel:"filterToolbarAriaLabel"},usesInheritance:!0,ngImport:u}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:h,decorators:[{type:n.Directive,args:[{selector:"[kendoFilterMessages]"}]}],propDecorators:{filterExpressionOperators:[{type:n.Input}],filterExpressionFilters:[{type:n.Input}],remove:[{type:n.Input}],addGroup:[{type:n.Input}],addFilter:[{type:n.Input}],filterAndLogic:[{type:n.Input}],filterOrLogic:[{type:n.Input}],filterEqOperator:[{type:n.Input}],filterNotEqOperator:[{type:n.Input}],filterIsNullOperator:[{type:n.Input}],filterIsNotNullOperator:[{type:n.Input}],filterIsEmptyOperator:[{type:n.Input}],filterIsNotEmptyOperator:[{type:n.Input}],filterStartsWithOperator:[{type:n.Input}],filterContainsOperator:[{type:n.Input}],filterNotContainsOperator:[{type:n.Input}],filterEndsWithOperator:[{type:n.Input}],filterGteOperator:[{type:n.Input}],filterGtOperator:[{type:n.Input}],filterLteOperator:[{type:n.Input}],filterLtOperator:[{type:n.Input}],filterIsTrue:[{type:n.Input}],filterIsFalse:[{type:n.Input}],filterBooleanAll:[{type:n.Input}],filterAfterOrEqualOperator:[{type:n.Input}],filterAfterOperator:[{type:n.Input}],filterBeforeOperator:[{type:n.Input}],filterBeforeOrEqualOperator:[{type:n.Input}],editorNumericDecrement:[{type:n.Input}],editorNumericIncrement:[{type:n.Input}],editorDateTodayText:[{type:n.Input}],editorDateToggleText:[{type:n.Input}],filterFieldAriaLabel:[{type:n.Input}],filterOperatorAriaLabel:[{type:n.Input}],filterValueAriaLabel:[{type:n.Input}],filterAriaLabel:[{type:n.Input}],filterToolbarAriaLabel:[{type:n.Input}]}});A(Y,X=h);var X,w=Y;function Y(e){var t=X.call(this)||this;return t.service=e,t}w.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:w,deps:[{token:d.LocalizationService}],target:u.ɵɵFactoryTarget.Directive}),w.ɵdir=u.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:w,selector:"[kendoFilterLocalizedMessages]",providers:[{provide:h,useExisting:n.forwardRef(function(){return w})}],usesInheritance:!0,ngImport:u}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:w,decorators:[{type:n.Directive,args:[{providers:[{provide:h,useExisting:n.forwardRef(function(){return w})}],selector:"[kendoFilterLocalizedMessages]"}]}],ctorParameters:function(){return[{type:d.LocalizationService}]}});Object.defineProperty(S.prototype,"filters",{get:function(){return this.filterService.filters},set:function(e){if(n.isDevMode()&&(!Array.isArray(e)||0===e.length))throw new Error("Pass at least one user-defined filter through the [filters] input property. See http://www.telerik.com/kendo-angular-ui/components/filter/#data-binding");this.filterService.filters=e.map(function(e){e=Object.assign({},e);return e.title||(e.title=e.field),e}),this.setValue(this.value)},enumerable:!1,configurable:!0}),Object.defineProperty(S.prototype,"value",{get:function(){return this._value},set:function(e){e=JSON.parse(JSON.stringify(e));this._value=e,this.setValue(this.value)},enumerable:!1,configurable:!0}),S.prototype.ngOnInit=function(){var t=this;if(0===this.filters.length)throw new Error("Pass at least one user-defined filter through the [filters] input property. See http://www.telerik.com/kendo-angular-ui/components/filter/#data-binding");this.localizationSubscription=this.localization.changes.subscribe(function(e){e=e.rtl;t.direction=e?"rtl":"ltr",t.cdr.detectChanges()})},S.prototype.ngOnDestroy=function(){this.localizationSubscription&&this.localizationSubscription.unsubscribe()},S.prototype.getCurrentFilter=function(){return this.filterService.normalizedValue},S.prototype.onValueChange=function(){this.valueChange.emit(this.filterService.normalizedValue)},S.prototype.normalizeFilter=function(t){var e=this.filterService.filters.find(function(e){return e.field===t.field});if(n.isDevMode()&&!e)throw new Error("There is no user-defined filter with '"+t.field+"' field provided through the [filters] input property.");if(n.isDevMode()&&"boolean"===e.editor&&!t.value&&!1!==t.value&&console.warn("Provide a value for the boolean '"+t.field+"' user-defined filter as the operator is always set to 'eq'."),t.operator&&e.operators&&!e.operators.some(function(e){return e===t.operator}))throw new Error("The user-defined filter with field '"+t.field+"' is missing the '"+t.operator+"' operator.");"boolean"===e.editor&&(t.operator="eq"),"date"===e.editor&&t.value&&(t.value=new Date(t.value)),null==t.value&&(t.value=null),0<=k.indexOf(t.operator)&&(t.value=null)},S.prototype.setValue=function(e){this.normalizeValue(e),this.filterService.normalizedValue=e},S.prototype.normalizeValue=function(e){var t=this;this.filterService.filters.length&&e.filters.forEach(function(e){e.filters?t.normalizeValue(e):t.normalizeFilter(e)})};m=S;function S(e,t,r){this.filterService=e,this.localization=t,this.cdr=r,this.valueChange=new n.EventEmitter,this._value={filters:[],logic:"and"},z.validatePackage(R),this.direction=t.rtl?"rtl":"ltr"}m.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:m,deps:[{token:v},{token:d.LocalizationService},{token:u.ChangeDetectorRef}],target:u.ɵɵFactoryTarget.Component}),m.ɵcmp=u.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:m,selector:"kendo-filter",inputs:{filters:"filters",value:"value"},outputs:{valueChange:"valueChange"},host:{properties:{"attr.dir":"this.direction"}},providers:[t.LocalizationService,{provide:t.L10N_PREFIX,useValue:"kendo.filter"},v],ngImport:u,template:'\n <ng-container kendoFilterLocalizedMessages\n i18n-editorDateTodayText="kendo.filter.editorDateTodayText|The text of the Today button of the Date editor"\n editorDateTodayText="Today"\n\n i18n-editorDateToggleText="kendo.filter.editorDateToggleText|The title of the Toggle button of the Date editor."\n editorDateToggleText="Toggle calendar"\n\n i18n-editorNumericDecrement="kendo.filter.editorNumericDecrement|The title of the Decrement button of the Numeric editor"\n editorNumericDecrement="Decrement"\n\n i18n-editorNumericIncrement="kendo.filter.editorNumericIncrement|The title of the Increment button of the Numeric editor"\n editorNumericIncrement="Increment"\n\n i18n-filterExpressionOperators="kendo.filter.filterExpressionOperators|The text of the Filter Expression Operators drop down"\n filterExpressionOperators="Operators"\n\n i18n-filterExpressionFilters="kendo.filter.filterExpressionFilters|The text of the Filter Expression filters drop down"\n filterExpressionFilters="Fields"\n\n i18n-remove="kendo.filter.remove|The text of the Remove button"\n remove="Remove"\n\n i18n-addFilter="kendo.filter.addFilter|The text of the Add Filter button"\n addFilter="Add Filter"\n\n i18n-addGroup="kendo.filter.addGroup|The text of the Add Group button"\n addGroup="Add Group"\n\n i18n-filterAndLogic="kendo.filter.filterAndLogic|The text of the And filter logic"\n filterAndLogic="And"\n\n i18n-filterOrLogic="kendo.filter.filterOrLogic|The text of the Or filter logic"\n filterOrLogic="Or"\n\n i18n-filterEqOperator="kendo.filter.filterEqOperator|The text of the equal filter operator"\n filterEqOperator="Is equal to"\n\n i18n-filterNotEqOperator="kendo.filter.filterNotEqOperator|The text of the not equal filter operator"\n filterNotEqOperator="Is not equal to"\n\n i18n-filterIsNullOperator="kendo.filter.filterIsNullOperator|The text of the is null filter operator"\n filterIsNullOperator="Is null"\n\n i18n-filterIsNotNullOperator="kendo.filter.filterIsNotNullOperator|The text of the is not null filter operator"\n filterIsNotNullOperator="Is not null"\n\n i18n-filterIsEmptyOperator="kendo.filter.filterIsEmptyOperator|The text of the is empty filter operator"\n filterIsEmptyOperator="Is empty"\n\n i18n-filterIsNotEmptyOperator="kendo.filter.filterIsNotEmptyOperator|The text of the is not empty filter operator"\n filterIsNotEmptyOperator="Is not empty"\n\n i18n-filterStartsWithOperator="kendo.filter.filterStartsWithOperator|The text of the starts with filter operator"\n filterStartsWithOperator="Starts with"\n\n i18n-filterContainsOperator="kendo.filter.filterContainsOperator|The text of the contains filter operator"\n filterContainsOperator="Contains"\n\n i18n-filterNotContainsOperator="kendo.filter.filterNotContainsOperator|The text of the does not contain filter operator"\n filterNotContainsOperator="Does not contain"\n\n i18n-filterEndsWithOperator="kendo.filter.filterEndsWithOperator|The text of the ends with filter operator"\n filterEndsWithOperator="Ends with"\n\n i18n-filterGteOperator="kendo.filter.filterGteOperator|The text of the greater than or equal filter operator"\n filterGteOperator="Is greater than or equal to"\n\n i18n-filterGtOperator="kendo.filter.filterGtOperator|The text of the greater than filter operator"\n filterGtOperator="Is greater than"\n\n i18n-filterLteOperator="kendo.filter.filterLteOperator|The text of the less than or equal filter operator"\n filterLteOperator="Is less than or equal to"\n\n i18n-filterLtOperator="kendo.filter.filterLtOperator|The text of the less than filter operator"\n filterLtOperator="Is less than"\n\n i18n-filterIsTrue="kendo.filter.filterIsTrue|The text of the IsTrue boolean filter option"\n filterIsTrue="Is True"\n\n i18n-filterIsFalse="kendo.filter.filterIsFalse|The text of the IsFalse boolean filter option"\n filterIsFalse="Is False"\n\n i18n-filterBooleanAll="kendo.filter.filterBooleanAll|The text of the (All) boolean filter option"\n filterBooleanAll="(All)"\n\n i18n-filterAfterOrEqualOperator="kendo.filter.filterAfterOrEqualOperator|The text of the after or equal date filter operator"\n filterAfterOrEqualOperator="Is after or equal to"\n\n i18n-filterAfterOperator="kendo.filter.filterAfterOperator|The text of the after date filter operator"\n filterAfterOperator="Is after"\n\n i18n-filterBeforeOperator="kendo.filter.filterBeforeOperator|The text of the before date filter operator"\n filterBeforeOperator="Is before"\n\n i18n-filterBeforeOrEqualOperator="kendo.filter.filterBeforeOrEqualOperator|The text of the before or equal date filter operator"\n filterBeforeOrEqualOperator="Is before or equal to"\n\n i18n-filterFieldAriaLabel="kendo.filter.filterFieldAriaLabel|The text of the filter field aria label"\n filterFieldAriaLabel="field"\n\n i18n-filterOperatorAriaLabel="kendo.filter.filterOperatorAriaLabel|The text of the filter operator aria label"\n filterOperatorAriaLabel="operator"\n\n i18n-filterValueAriaLabel="kendo.filter.filterValueAriaLabel|The text of the filter value aria label"\n filterValueAriaLabel="value"\n\n i18n-filterAriaLabel="kendo.filter.filterAriaLabel|The text of the filter row aria label"\n filterAriaLabel="filter"\n\n i18n-filterToolbarAriaLabel="kendo.filter.filterToolbarAriaLabel|The text of the filter toolbar aria label"\n filterToolbarAriaLabel="filter settings"\n >\n </ng-container>\n <div class="k-widget k-filter" [attr.dir]="direction">\n <ul class=\'k-filter-container\'>\n <li class=\'k-filter-group-main\'>\n <kendo-filter-group\n [currentItem]="getCurrentFilter()"\n (valueChange)="onValueChange()"\n >\n </kendo-filter-group>\n </li>\n </ul>\n </div>\n ',isInline:!0,components:[{type:f,selector:"kendo-filter-group",inputs:["index","currentItem"],outputs:["valueChange"]}],directives:[{type:w,selector:"[kendoFilterLocalizedMessages]"}]}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:m,decorators:[{type:n.Component,args:[{providers:[t.LocalizationService,{provide:t.L10N_PREFIX,useValue:"kendo.filter"},v],selector:"kendo-filter",template:'\n <ng-container kendoFilterLocalizedMessages\n i18n-editorDateTodayText="kendo.filter.editorDateTodayText|The text of the Today button of the Date editor"\n editorDateTodayText="Today"\n\n i18n-editorDateToggleText="kendo.filter.editorDateToggleText|The title of the Toggle button of the Date editor."\n editorDateToggleText="Toggle calendar"\n\n i18n-editorNumericDecrement="kendo.filter.editorNumericDecrement|The title of the Decrement button of the Numeric editor"\n editorNumericDecrement="Decrement"\n\n i18n-editorNumericIncrement="kendo.filter.editorNumericIncrement|The title of the Increment button of the Numeric editor"\n editorNumericIncrement="Increment"\n\n i18n-filterExpressionOperators="kendo.filter.filterExpressionOperators|The text of the Filter Expression Operators drop down"\n filterExpressionOperators="Operators"\n\n i18n-filterExpressionFilters="kendo.filter.filterExpressionFilters|The text of the Filter Expression filters drop down"\n filterExpressionFilters="Fields"\n\n i18n-remove="kendo.filter.remove|The text of the Remove button"\n remove="Remove"\n\n i18n-addFilter="kendo.filter.addFilter|The text of the Add Filter button"\n addFilter="Add Filter"\n\n i18n-addGroup="kendo.filter.addGroup|The text of the Add Group button"\n addGroup="Add Group"\n\n i18n-filterAndLogic="kendo.filter.filterAndLogic|The text of the And filter logic"\n filterAndLogic="And"\n\n i18n-filterOrLogic="kendo.filter.filterOrLogic|The text of the Or filter logic"\n filterOrLogic="Or"\n\n i18n-filterEqOperator="kendo.filter.filterEqOperator|The text of the equal filter operator"\n filterEqOperator="Is equal to"\n\n i18n-filterNotEqOperator="kendo.filter.filterNotEqOperator|The text of the not equal filter operator"\n filterNotEqOperator="Is not equal to"\n\n i18n-filterIsNullOperator="kendo.filter.filterIsNullOperator|The text of the is null filter operator"\n filterIsNullOperator="Is null"\n\n i18n-filterIsNotNullOperator="kendo.filter.filterIsNotNullOperator|The text of the is not null filter operator"\n filterIsNotNullOperator="Is not null"\n\n i18n-filterIsEmptyOperator="kendo.filter.filterIsEmptyOperator|The text of the is empty filter operator"\n filterIsEmptyOperator="Is empty"\n\n i18n-filterIsNotEmptyOperator="kendo.filter.filterIsNotEmptyOperator|The text of the is not empty filter operator"\n filterIsNotEmptyOperator="Is not empty"\n\n i18n-filterStartsWithOperator="kendo.filter.filterStartsWithOperator|The text of the starts with filter operator"\n filterStartsWithOperator="Starts with"\n\n i18n-filterContainsOperator="kendo.filter.filterContainsOperator|The text of the contains filter operator"\n filterContainsOperator="Contains"\n\n i18n-filterNotContainsOperator="kendo.filter.filterNotContainsOperator|The text of the does not contain filter operator"\n filterNotContainsOperator="Does not contain"\n\n i18n-filterEndsWithOperator="kendo.filter.filterEndsWithOperator|The text of the ends with filter operator"\n filterEndsWithOperator="Ends with"\n\n i18n-filterGteOperator="kendo.filter.filterGteOperator|The text of the greater than or equal filter operator"\n filterGteOperator="Is greater than or equal to"\n\n i18n-filterGtOperator="kendo.filter.filterGtOperator|The text of the greater than filter operator"\n filterGtOperator="Is greater than"\n\n i18n-filterLteOperator="kendo.filter.filterLteOperator|The text of the less than or equal filter operator"\n filterLteOperator="Is less than or equal to"\n\n i18n-filterLtOperator="kendo.filter.filterLtOperator|The text of the less than filter operator"\n filterLtOperator="Is less than"\n\n i18n-filterIsTrue="kendo.filter.filterIsTrue|The text of the IsTrue boolean filter option"\n filterIsTrue="Is True"\n\n i18n-filterIsFalse="kendo.filter.filterIsFalse|The text of the IsFalse boolean filter option"\n filterIsFalse="Is False"\n\n i18n-filterBooleanAll="kendo.filter.filterBooleanAll|The text of the (All) boolean filter option"\n filterBooleanAll="(All)"\n\n i18n-filterAfterOrEqualOperator="kendo.filter.filterAfterOrEqualOperator|The text of the after or equal date filter operator"\n filterAfterOrEqualOperator="Is after or equal to"\n\n i18n-filterAfterOperator="kendo.filter.filterAfterOperator|The text of the after date filter operator"\n filterAfterOperator="Is after"\n\n i18n-filterBeforeOperator="kendo.filter.filterBeforeOperator|The text of the before date filter operator"\n filterBeforeOperator="Is before"\n\n i18n-filterBeforeOrEqualOperator="kendo.filter.filterBeforeOrEqualOperator|The text of the before or equal date filter operator"\n filterBeforeOrEqualOperator="Is before or equal to"\n\n i18n-filterFieldAriaLabel="kendo.filter.filterFieldAriaLabel|The text of the filter field aria label"\n filterFieldAriaLabel="field"\n\n i18n-filterOperatorAriaLabel="kendo.filter.filterOperatorAriaLabel|The text of the filter operator aria label"\n filterOperatorAriaLabel="operator"\n\n i18n-filterValueAriaLabel="kendo.filter.filterValueAriaLabel|The text of the filter value aria label"\n filterValueAriaLabel="value"\n\n i18n-filterAriaLabel="kendo.filter.filterAriaLabel|The text of the filter row aria label"\n filterAriaLabel="filter"\n\n i18n-filterToolbarAriaLabel="kendo.filter.filterToolbarAriaLabel|The text of the filter toolbar aria label"\n filterToolbarAriaLabel="filter settings"\n >\n </ng-container>\n <div class="k-widget k-filter" [attr.dir]="direction">\n <ul class=\'k-filter-container\'>\n <li class=\'k-filter-group-main\'>\n <kendo-filter-group\n [currentItem]="getCurrentFilter()"\n (valueChange)="onValueChange()"\n >\n </kendo-filter-group>\n </li>\n </ul>\n </div>\n '}]}],ctorParameters:function(){return[{type:v},{type:d.LocalizationService},{type:u.ChangeDetectorRef}]},propDecorators:{direction:[{type:n.HostBinding,args:["attr.dir"]}],filters:[{type:n.Input}],value:[{type:n.Input}],valueChange:[{type:n.Output}]}});A(Z,Q=h),Object.defineProperty(Z.prototype,"override",{get:function(){return!0},enumerable:!1,configurable:!0});var Q,q=Z;function Z(e){var t=Q.call(this)||this;return t.service=e,t}q.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:q,deps:[{token:d.LocalizationService}],target:u.ɵɵFactoryTarget.Component}),q.ɵcmp=u.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:q,selector:"kendo-filter-messages",providers:[{provide:h,useExisting:n.forwardRef(function(){return q})}],usesInheritance:!0,ngImport:u,template:"",isInline:!0}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:q,decorators:[{type:n.Component,args:[{providers:[{provide:h,useExisting:n.forwardRef(function(){return q})}],selector:"kendo-filter-messages",template:""}]}],ctorParameters:function(){return[{type:d.LocalizationService}]}});t=[a.CommonModule,o.InputsModule,s.LabelModule,r.DropDownsModule,l.ButtonsModule,i.DateInputsModule],h=function(){},h.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:h,deps:[],target:u.ɵɵFactoryTarget.NgModule}),h.ɵmod=u.ɵɵngDeclareNgModule({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:h,imports:[a.CommonModule,o.InputsModule,s.LabelModule,r.DropDownsModule,l.ButtonsModule,i.DateInputsModule],exports:[a.CommonModule,o.InputsModule,s.LabelModule,r.DropDownsModule,l.ButtonsModule,i.DateInputsModule]}),h.ɵinj=u.ɵɵngDeclareInjector({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:h,imports:[N([],V(t)),a.CommonModule,o.InputsModule,s.LabelModule,r.DropDownsModule,l.ButtonsModule,i.DateInputsModule]}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:h,decorators:[{type:n.NgModule,args:[{imports:N([],V(t)),exports:N([],V(t))}]}]}),a=function(){};a.ɵfac=u.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:a,deps:[],target:u.ɵɵFactoryTarget.NgModule}),a.ɵmod=u.ɵɵngDeclareNgModule({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:a,declarations:[m,F,C,g,f,O,c,T,w,q,y],imports:[h],exports:[m,F,C,g,f,O,c,T,w,q,y]}),a.ɵinj=u.ɵɵngDeclareInjector({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:a,imports:[[h]]}),u.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:u,type:a,decorators:[{type:n.NgModule,args:[{imports:[h],declarations:[m,F,C,g,f,O,c,T,w,q,y],exports:[m,F,C,g,f,O,c,T,w,q,y]}]}]}),e.AriaLabelValueDirective=y,e.CustomMessagesComponent=q,e.FilterBooleanEditorComponent=c,e.FilterComponent=m,e.FilterDateEditorComponent=T,e.FilterExpressionComponent=g,e.FilterExpressionOperatorsComponent=O,e.FilterGroupComponent=f,e.FilterModule=a,e.FilterNumericEditorComponent=F,e.FilterTextEditorComponent=C,e.LocalizedMessagesDirective=w,Object.defineProperty(e,"__esModule",{value:!0})});
@@ -55,6 +55,7 @@ export class FilterComponent {
55
55
  * That is each time a Filter Group or Filter Expression is added, removed, or updated.
56
56
  */
57
57
  this.valueChange = new EventEmitter();
58
+ this._value = { filters: [], logic: 'and' };
58
59
  validatePackage(packageMetadata);
59
60
  this.direction = localization.rtl ? 'rtl' : 'ltr';
60
61
  }
@@ -72,6 +73,7 @@ export class FilterComponent {
72
73
  }
73
74
  return clonedFilter;
74
75
  });
76
+ this.setValue(this.value);
75
77
  }
76
78
  get filters() {
77
79
  return this.filterService.filters;
@@ -81,11 +83,11 @@ export class FilterComponent {
81
83
  */
82
84
  set value(value) {
83
85
  const clonedValue = JSON.parse(JSON.stringify(value));
84
- this.normalizeValue(clonedValue);
85
- this.filterService.value = clonedValue;
86
+ this._value = clonedValue;
87
+ this.setValue(this.value);
86
88
  }
87
89
  get value() {
88
- return this.filterService.value;
90
+ return this._value;
89
91
  }
90
92
  ngOnInit() {
91
93
  if (this.filters.length === 0) {
@@ -105,13 +107,13 @@ export class FilterComponent {
105
107
  * @hidden
106
108
  */
107
109
  getCurrentFilter() {
108
- return this.value;
110
+ return this.filterService.normalizedValue;
109
111
  }
110
112
  /**
111
113
  * @hidden
112
114
  */
113
115
  onValueChange() {
114
- this.valueChange.emit(this.filterService.value);
116
+ this.valueChange.emit(this.filterService.normalizedValue);
115
117
  }
116
118
  normalizeFilter(filterDescriptor) {
117
119
  const foundFilter = this.filterService.filters.find((filter) => filter.field === filterDescriptor.field);
@@ -137,8 +139,15 @@ export class FilterComponent {
137
139
  filterDescriptor.value = null;
138
140
  }
139
141
  }
140
- normalizeValue(item) {
141
- item.filters.forEach((item) => {
142
+ setValue(items) {
143
+ this.normalizeValue(items);
144
+ this.filterService.normalizedValue = items;
145
+ }
146
+ normalizeValue(items) {
147
+ if (!this.filterService.filters.length) {
148
+ return;
149
+ }
150
+ items.filters.forEach((item) => {
142
151
  if (item.filters) {
143
152
  this.normalizeValue(item);
144
153
  }
@@ -281,7 +290,7 @@ FilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
281
290
  </li>
282
291
  </ul>
283
292
  </div>
284
- `, isInline: true, components: [{ type: i3.FilterGroupComponent, selector: "kendo-filter-group", inputs: ["index", "currentItem"], outputs: ["valueChange"] }], directives: [{ type: i4.LocalizedMessagesDirective, selector: "[kendoFilterLocalizedMessages]" }] });
293
+ `, isInline: true, components: [{ type: i3.FilterGroupComponent, selector: "kendo-filter-group", inputs: ["index", "currentItem"], outputs: ["valueChange"] }], directives: [{ type: i4.LocalizedMessagesDirective, selector: "[kendoFilterLocalizedMessages]" }] });
285
294
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FilterComponent, decorators: [{
286
295
  type: Component,
287
296
  args: [{
@@ -419,7 +428,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
419
428
  </li>
420
429
  </ul>
421
430
  </div>
422
- `
431
+ `
423
432
  }]
424
433
  }], ctorParameters: function () { return [{ type: i1.FilterService }, { type: i2.LocalizationService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { direction: [{
425
434
  type: HostBinding,
@@ -9,7 +9,6 @@ import * as i0 from "@angular/core";
9
9
  */
10
10
  export class FilterService {
11
11
  constructor() {
12
- this.value = { filters: [], logic: 'or' };
13
12
  this.filters = [];
14
13
  }
15
14
  addFilterGroup(item) {
@@ -22,7 +21,7 @@ export class FilterService {
22
21
  }
23
22
  remove(item, positionIndex, parentItem) {
24
23
  if (!parentItem) {
25
- parentItem = this.value;
24
+ parentItem = this.normalizedValue;
26
25
  }
27
26
  if (item === parentItem) {
28
27
  parentItem.filters = [];
@@ -9,7 +9,7 @@ export const packageMetadata = {
9
9
  name: '@progress/kendo-angular-filter',
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
12
- publishDate: 1652799999,
12
+ publishDate: 1652946928,
13
13
  version: '',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
15
15
  };
@@ -24,7 +24,6 @@ import { LabelModule } from '@progress/kendo-angular-label';
24
24
  */
25
25
  class FilterService {
26
26
  constructor() {
27
- this.value = { filters: [], logic: 'or' };
28
27
  this.filters = [];
29
28
  }
30
29
  addFilterGroup(item) {
@@ -37,7 +36,7 @@ class FilterService {
37
36
  }
38
37
  remove(item, positionIndex, parentItem) {
39
38
  if (!parentItem) {
40
- parentItem = this.value;
39
+ parentItem = this.normalizedValue;
41
40
  }
42
41
  if (item === parentItem) {
43
42
  parentItem.filters = [];
@@ -201,7 +200,7 @@ const packageMetadata = {
201
200
  name: '@progress/kendo-angular-filter',
202
201
  productName: 'Kendo UI for Angular',
203
202
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
204
- publishDate: 1652799999,
203
+ publishDate: 1652946928,
205
204
  version: '',
206
205
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
207
206
  };
@@ -1076,6 +1075,7 @@ class FilterComponent {
1076
1075
  * That is each time a Filter Group or Filter Expression is added, removed, or updated.
1077
1076
  */
1078
1077
  this.valueChange = new EventEmitter();
1078
+ this._value = { filters: [], logic: 'and' };
1079
1079
  validatePackage(packageMetadata);
1080
1080
  this.direction = localization.rtl ? 'rtl' : 'ltr';
1081
1081
  }
@@ -1093,6 +1093,7 @@ class FilterComponent {
1093
1093
  }
1094
1094
  return clonedFilter;
1095
1095
  });
1096
+ this.setValue(this.value);
1096
1097
  }
1097
1098
  get filters() {
1098
1099
  return this.filterService.filters;
@@ -1102,11 +1103,11 @@ class FilterComponent {
1102
1103
  */
1103
1104
  set value(value) {
1104
1105
  const clonedValue = JSON.parse(JSON.stringify(value));
1105
- this.normalizeValue(clonedValue);
1106
- this.filterService.value = clonedValue;
1106
+ this._value = clonedValue;
1107
+ this.setValue(this.value);
1107
1108
  }
1108
1109
  get value() {
1109
- return this.filterService.value;
1110
+ return this._value;
1110
1111
  }
1111
1112
  ngOnInit() {
1112
1113
  if (this.filters.length === 0) {
@@ -1126,13 +1127,13 @@ class FilterComponent {
1126
1127
  * @hidden
1127
1128
  */
1128
1129
  getCurrentFilter() {
1129
- return this.value;
1130
+ return this.filterService.normalizedValue;
1130
1131
  }
1131
1132
  /**
1132
1133
  * @hidden
1133
1134
  */
1134
1135
  onValueChange() {
1135
- this.valueChange.emit(this.filterService.value);
1136
+ this.valueChange.emit(this.filterService.normalizedValue);
1136
1137
  }
1137
1138
  normalizeFilter(filterDescriptor) {
1138
1139
  const foundFilter = this.filterService.filters.find((filter) => filter.field === filterDescriptor.field);
@@ -1158,8 +1159,15 @@ class FilterComponent {
1158
1159
  filterDescriptor.value = null;
1159
1160
  }
1160
1161
  }
1161
- normalizeValue(item) {
1162
- item.filters.forEach((item) => {
1162
+ setValue(items) {
1163
+ this.normalizeValue(items);
1164
+ this.filterService.normalizedValue = items;
1165
+ }
1166
+ normalizeValue(items) {
1167
+ if (!this.filterService.filters.length) {
1168
+ return;
1169
+ }
1170
+ items.filters.forEach((item) => {
1163
1171
  if (item.filters) {
1164
1172
  this.normalizeValue(item);
1165
1173
  }
@@ -1302,7 +1310,7 @@ FilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
1302
1310
  </li>
1303
1311
  </ul>
1304
1312
  </div>
1305
- `, isInline: true, components: [{ type: FilterGroupComponent, selector: "kendo-filter-group", inputs: ["index", "currentItem"], outputs: ["valueChange"] }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoFilterLocalizedMessages]" }] });
1313
+ `, isInline: true, components: [{ type: FilterGroupComponent, selector: "kendo-filter-group", inputs: ["index", "currentItem"], outputs: ["valueChange"] }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoFilterLocalizedMessages]" }] });
1306
1314
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FilterComponent, decorators: [{
1307
1315
  type: Component,
1308
1316
  args: [{
@@ -1440,7 +1448,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
1440
1448
  </li>
1441
1449
  </ul>
1442
1450
  </div>
1443
- `
1451
+ `
1444
1452
  }]
1445
1453
  }], ctorParameters: function () { return [{ type: FilterService }, { type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { direction: [{
1446
1454
  type: HostBinding,
@@ -64,6 +64,7 @@ export declare class FilterComponent implements OnInit, OnDestroy {
64
64
  */
65
65
  valueChange: EventEmitter<CompositeFilterDescriptor>;
66
66
  private localizationSubscription;
67
+ private _value;
67
68
  constructor(filterService: FilterService, localization: LocalizationService, cdr: ChangeDetectorRef);
68
69
  ngOnInit(): void;
69
70
  ngOnDestroy(): void;
@@ -76,6 +77,7 @@ export declare class FilterComponent implements OnInit, OnDestroy {
76
77
  */
77
78
  onValueChange(): void;
78
79
  private normalizeFilter;
80
+ private setValue;
79
81
  private normalizeValue;
80
82
  static ɵfac: i0.ɵɵFactoryDeclaration<FilterComponent, never>;
81
83
  static ɵcmp: i0.ɵɵComponentDeclaration<FilterComponent, "kendo-filter", never, { "filters": "filters"; "value": "value"; }, { "valueChange": "valueChange"; }, never, never>;
@@ -9,7 +9,7 @@ import * as i0 from "@angular/core";
9
9
  * @hidden
10
10
  */
11
11
  export declare class FilterService {
12
- value: CompositeFilterDescriptor;
12
+ normalizedValue: CompositeFilterDescriptor;
13
13
  filters: FilterExpression[];
14
14
  addFilterGroup(item: CompositeFilterDescriptor): void;
15
15
  addFilterExpression(item: CompositeFilterDescriptor): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-filter",
3
- "version": "2.0.1-dev.202205171507",
3
+ "version": "2.0.1-dev.202205190755",
4
4
  "description": "Kendo UI Angular Filter",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",