@progress/kendo-angular-filter 0.1.3-dev.202201211601 → 0.1.5-dev.202202160956

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.
@@ -13,9 +13,10 @@ var util_1 = require("./util");
13
13
  * @hidden
14
14
  */
15
15
  var FilterExpressionComponent = /** @class */ (function () {
16
- function FilterExpressionComponent(filterService, localization) {
16
+ function FilterExpressionComponent(filterService, localization, cdr) {
17
17
  this.filterService = filterService;
18
18
  this.localization = localization;
19
+ this.cdr = cdr;
19
20
  this.valueChange = new core_1.EventEmitter();
20
21
  this.operators = [];
21
22
  this.filters = [];
@@ -23,16 +24,26 @@ var FilterExpressionComponent = /** @class */ (function () {
23
24
  this.isEditorDisabled = false;
24
25
  }
25
26
  FilterExpressionComponent.prototype.ngOnInit = function () {
27
+ var _this = this;
26
28
  this.filters = this.filterService.filters;
29
+ var foundFilter = this.getFilterExpressionByField(this.currentItem.field);
27
30
  if (this.currentItem.field) {
28
- var foundFilter = this.getFilterExpressionByField(this.currentItem.field);
29
31
  this.setOperators(foundFilter);
30
32
  }
33
+ var defaultFilter = this.getFilterExpressionByField(this.filterService.filters[0].field);
31
34
  if (!this.currentItem.field) {
32
35
  this.currentItem.field = this.filterService.filters[0].field;
33
- var defaultFilter = this.getFilterExpressionByField(this.filterService.filters[0].field);
34
36
  this.setOperators(defaultFilter);
35
37
  }
38
+ this.localizationSubscription = this.localization.changes.subscribe(function () {
39
+ _this.setOperators(foundFilter || defaultFilter);
40
+ _this.cdr.detectChanges();
41
+ });
42
+ };
43
+ FilterExpressionComponent.prototype.ngOnDestroy = function () {
44
+ if (this.localizationSubscription) {
45
+ this.localizationSubscription.unsubscribe();
46
+ }
36
47
  };
37
48
  FilterExpressionComponent.prototype.normalizeOperators = function (filterEditor, operators) {
38
49
  var result = [];
@@ -66,11 +77,11 @@ var FilterExpressionComponent = /** @class */ (function () {
66
77
  FilterExpressionComponent.prototype.getDefaultOperators = function (operatorsType) {
67
78
  switch (operatorsType) {
68
79
  case 'string':
69
- return this.filterService.defaultStringOperators;
80
+ return util_1.localizeOperators(util_1.defaultStringOperators)(this.localization);
70
81
  case 'number':
71
- return this.filterService.defaultNumericOperators;
82
+ return util_1.localizeOperators(util_1.defaultNumericOperators)(this.localization);
72
83
  case 'date':
73
- return this.filterService.defaultDateOperators;
84
+ return util_1.localizeOperators(util_1.defaultDateOperators)(this.localization);
74
85
  default:
75
86
  break;
76
87
  }
@@ -116,7 +127,7 @@ var FilterExpressionComponent = /** @class */ (function () {
116
127
  selector: 'kendo-filter-expression',
117
128
  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)=\"valueChange.emit();\">\n </kendo-filter-expression-operators>\n </div>\n\n <ng-container [ngSwitch]=\"getEditorType()\">\n <kendo-filter-text-editor *ngSwitchCase=\"'string'\" [currentItem]=\"currentItem\" (valueChange)=\"valueChange.emit()\"></kendo-filter-text-editor>\n <kendo-filter-numeric-editor *ngSwitchCase=\"'number'\" [currentItem]=\"currentItem\" (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\" (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 "
118
129
  }),
119
- tslib_1.__metadata("design:paramtypes", [filter_service_1.FilterService, kendo_angular_l10n_1.LocalizationService])
130
+ tslib_1.__metadata("design:paramtypes", [filter_service_1.FilterService, kendo_angular_l10n_1.LocalizationService, core_1.ChangeDetectorRef])
120
131
  ], FilterExpressionComponent);
121
132
  return FilterExpressionComponent;
122
133
  }());
@@ -8,23 +8,38 @@ var tslib_1 = require("tslib");
8
8
  var core_1 = require("@angular/core");
9
9
  var kendo_angular_l10n_1 = require("@progress/kendo-angular-l10n");
10
10
  var filter_service_1 = require("./filter.service");
11
+ var util_1 = require("./util");
11
12
  /**
12
13
  * @hidden
13
14
  */
14
15
  var FilterGroupComponent = /** @class */ (function () {
15
- function FilterGroupComponent(filterService, localization) {
16
+ function FilterGroupComponent(filterService, localization, cdr) {
16
17
  this.filterService = filterService;
17
18
  this.localization = localization;
19
+ this.cdr = cdr;
18
20
  this.index = 0;
19
21
  this.currentItem = {
20
22
  logic: 'or',
21
23
  filters: []
22
24
  };
23
25
  this.valueChange = new core_1.EventEmitter();
24
- this.logicOperators = [];
26
+ this.operators = [];
25
27
  }
26
28
  FilterGroupComponent.prototype.ngOnInit = function () {
27
- this.logicOperators = this.filterService.logicOperators;
29
+ var _this = this;
30
+ this.operators = this.getLogicOperators();
31
+ this.localizationSubscription = this.localization.changes.subscribe(function () {
32
+ _this.operators = _this.getLogicOperators();
33
+ _this.cdr.detectChanges();
34
+ });
35
+ };
36
+ FilterGroupComponent.prototype.ngOnDestroy = function () {
37
+ if (this.localizationSubscription) {
38
+ this.localizationSubscription.unsubscribe();
39
+ }
40
+ };
41
+ FilterGroupComponent.prototype.getLogicOperators = function () {
42
+ return util_1.localizeOperators(util_1.logicOperators)(this.localization);
28
43
  };
29
44
  FilterGroupComponent.prototype.messageFor = function (key) {
30
45
  return this.localization.get(key);
@@ -62,9 +77,9 @@ var FilterGroupComponent = /** @class */ (function () {
62
77
  FilterGroupComponent = tslib_1.__decorate([
63
78
  core_1.Component({
64
79
  selector: 'kendo-filter-group',
65
- 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 logicOperators\"\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 "
80
+ 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 "
66
81
  }),
67
- tslib_1.__metadata("design:paramtypes", [filter_service_1.FilterService, kendo_angular_l10n_1.LocalizationService])
82
+ tslib_1.__metadata("design:paramtypes", [filter_service_1.FilterService, kendo_angular_l10n_1.LocalizationService, core_1.ChangeDetectorRef])
68
83
  ], FilterGroupComponent);
69
84
  return FilterGroupComponent;
70
85
  }());
@@ -6,53 +6,15 @@
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  var tslib_1 = require("tslib");
8
8
  var core_1 = require("@angular/core");
9
- var kendo_angular_l10n_1 = require("@progress/kendo-angular-l10n");
10
- var util_1 = require("./util");
11
- /**
12
- * @hidden
13
- */
14
- exports.localizeOperators = function (operators) { return function (localization) { return Object.keys(operators).map(function (key) { return ({
15
- text: localization.get(key),
16
- value: operators[key]
17
- }); }); }; };
18
9
  /**
19
10
  * @hidden
20
11
  */
21
12
  var FilterService = /** @class */ (function () {
22
- function FilterService(localization) {
23
- this.localization = localization;
13
+ function FilterService() {
24
14
  this.value = { filters: [], logic: 'or' };
25
15
  this.filters = [];
26
16
  this.isEditorDisabled = false;
27
17
  }
28
- Object.defineProperty(FilterService.prototype, "defaultNumericOperators", {
29
- get: function () {
30
- return exports.localizeOperators(util_1.defaultNumericOperators)(this.localization);
31
- },
32
- enumerable: true,
33
- configurable: true
34
- });
35
- Object.defineProperty(FilterService.prototype, "defaultStringOperators", {
36
- get: function () {
37
- return exports.localizeOperators(util_1.defaultStringOperators)(this.localization);
38
- },
39
- enumerable: true,
40
- configurable: true
41
- });
42
- Object.defineProperty(FilterService.prototype, "defaultDateOperators", {
43
- get: function () {
44
- return exports.localizeOperators(util_1.defaultDateOperators)(this.localization);
45
- },
46
- enumerable: true,
47
- configurable: true
48
- });
49
- Object.defineProperty(FilterService.prototype, "logicOperators", {
50
- get: function () {
51
- return exports.localizeOperators(util_1.logicOperators)(this.localization);
52
- },
53
- enumerable: true,
54
- configurable: true
55
- });
56
18
  FilterService.prototype.addFilterGroup = function (item) {
57
19
  var filterGroup = { logic: 'or', filters: [] };
58
20
  item.filters.push(filterGroup);
@@ -78,8 +40,7 @@ var FilterService = /** @class */ (function () {
78
40
  parentItem.filters.forEach(function (filter) { return filter.filters && _this.remove(item, positionIndex, filter); });
79
41
  };
80
42
  FilterService = tslib_1.__decorate([
81
- core_1.Injectable(),
82
- tslib_1.__metadata("design:paramtypes", [kendo_angular_l10n_1.LocalizationService])
43
+ core_1.Injectable()
83
44
  ], FilterService);
84
45
  return FilterService;
85
46
  }());
@@ -11,7 +11,7 @@ exports.packageMetadata = {
11
11
  name: '@progress/kendo-angular-filter',
12
12
  productName: 'Kendo UI for Angular',
13
13
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
14
- publishDate: 1642780812,
14
+ publishDate: 1645005293,
15
15
  version: '',
16
16
  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'
17
17
  };
package/dist/npm/util.js CHANGED
@@ -129,3 +129,10 @@ exports.isFilterEditor = function (editorType) {
129
129
  var supportedEditorTypes = ['string', 'number', 'boolean', 'date'];
130
130
  return supportedEditorTypes.indexOf(editorType) >= 0;
131
131
  };
132
+ /**
133
+ * @hidden
134
+ */
135
+ exports.localizeOperators = function (operators) { return function (localization) { return Object.keys(operators).map(function (key) { return ({
136
+ text: localization.get(key),
137
+ value: operators[key]
138
+ }); }); }; };
@@ -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
- System.register("@progress/kendo-angular-filter",["@angular/core","tslib","@progress/kendo-angular-l10n","@progress/kendo-licensing","@angular/common","@progress/kendo-angular-dropdowns","@progress/kendo-angular-inputs","@progress/kendo-angular-label","@progress/kendo-angular-buttons","@progress/kendo-angular-dateinputs"],function(n){var a,l,s,d,u,p,f,c,m,g;function t(e){return e.__useDefault?e.default:e}return{setters:[function(e){a=t(e)},function(e){l=t(e)},function(e){s=t(e)},function(e){d=t(e)},function(e){u=t(e)},function(e){p=t(e)},function(e){f=t(e)},function(e){c=t(e)},function(e){m=t(e)},function(e){g=t(e)}],execute:function(){function i(e){if(o[e])return o[e].exports;var t=o[e]={i:e,l:!1,exports:{}};return r[e].call(t.exports,t,t.exports,i),t.l=!0,t.exports}var r,o;o={},i.m=r=[function(e,t){e.exports=a},function(e,t){e.exports=l},function(e,t){e.exports=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),o=r(0),n=r(2),a=r(4);t.localizeOperators=function(r){return function(t){return Object.keys(r).map(function(e){return{text:t.get(e),value:r[e]}})}};Object.defineProperty(l.prototype,"defaultNumericOperators",{get:function(){return t.localizeOperators(a.defaultNumericOperators)(this.localization)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"defaultStringOperators",{get:function(){return t.localizeOperators(a.defaultStringOperators)(this.localization)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"defaultDateOperators",{get:function(){return t.localizeOperators(a.defaultDateOperators)(this.localization)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"logicOperators",{get:function(){return t.localizeOperators(a.logicOperators)(this.localization)},enumerable:!0,configurable:!0}),l.prototype.addFilterGroup=function(e){e.filters.push({logic:"or",filters:[]})},l.prototype.addFilterExpression=function(e){e.filters.push({operator:"eq",value:null,field:null})},l.prototype.remove=function(t,r,e){var i,o=this;e=e||this.value,t!==e?0<=(i=e.filters.indexOf(t))&&i===r?e.filters=e.filters.filter(function(e){return e!==t}):e.filters.forEach(function(e){return e.filters&&o.remove(t,r,e)}):e.filters=[]},n=i.__decorate([o.Injectable(),i.__metadata("design:paramtypes",[n.LocalizationService])],l);function l(e){this.localization=e,this.value={filters:[],logic:"or"},this.filters=[],this.isEditorDisabled=!1}t.FilterService=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nullOperators=["isnull","isnotnull","isempty","isnotempty"],t.numericOperators=[{text:"Is equal to",value:"eq"},{text:"Not equal to",value:"neq"},{text:"Greater than or equal to",value:"gte"},{text:"Greater than",value:"gt"},{text:"Less than or equal to",value:"lte"},{text:"Less than",value:"lt"},{text:"Is null",value:"isnull"},{text:"Is not null",value:"isnotnull"}],t.stringOperators=[{text:"Is equal to",value:"eq"},{text:"Not equal to",value:"neq"},{text:"Contains",value:"contains"},{text:"Does not contain",value:"doesnotcontain"},{text:"Starts with",value:"startswith"},{text:"Ends with",value:"endswith"},{text:"Is null",value:"isnull"},{text:"Is not null",value:"isnotnull"},{text:"Is empty",value:"isempty"},{text:"Is not empty",value:"isnotempty"}],t.booleanOperators=[{text:"Is equal to",value:"eq"},{text:"Is not equal to",value:"neq"}],t.dateOperators=[{text:"Is equal to",value:"eq"},{text:"Not equal to",value:"neq"},{text:"Greater than or equal to",value:"gte"},{text:"Greater than",value:"gt"},{text:"Less than or equal to",value:"lte"},{text:"Less than",value:"lt"},{text:"Is null",value:"isnull"},{text:"Is not null",value:"isnotnull"}],t.isArray=function(e){return Array.isArray(e)},t.getKeyByValue=function(t,r){return Object.keys(t).find(function(e){return t[e]===r})},t.defaultStringOperators={filterEqOperator:"eq",filterNotEqOperator:"neq",filterContainsOperator:"contains",filterNotContainsOperator:"doesnotcontain",filterStartsWithOperator:"startswith",filterEndsWithOperator:"endswith",filterIsNullOperator:"isnull",filterIsNotNullOperator:"isnotnull",filterIsEmptyOperator:"isempty",filterIsNotEmptyOperator:"isnotempty"},t.defaultNumericOperators={filterEqOperator:"eq",filterNotEqOperator:"neq",filterGteOperator:"gte",filterGtOperator:"gt",filterLteOperator:"lte",filterLtOperator:"lt",filterIsNullOperator:"isnull",filterIsNotNullOperator:"isnotnull"},t.defaultDateOperators={filterEqOperator:"eq",filterNotEqOperator:"neq",filterAfterOrEqualOperator:"gte",filterAfterOperator:"gt",filterBeforeOrEqualOperator:"lte",filterBeforeOperator:"lt",filterIsNullOperator:"isnull",filterIsNotNullOperator:"isnotnull"},t.defaultOperators={string:t.defaultStringOperators,number:t.defaultNumericOperators,date:t.defaultDateOperators},t.logicOperators={filterAndLogic:"and",filterOrLogic:"or"},t.isFilterEditor=function(e){return 0<=["string","number","boolean","date"].indexOf(e)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,o=r(1),n=r(0),o=(i=r(2).ComponentMessages,o.__extends(a,i),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterExpressionOperators",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterExpressionFilters",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"remove",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"addGroup",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"addFilter",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterAndLogic",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterOrLogic",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterEqOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterNotEqOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterIsNullOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterIsNotNullOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterIsEmptyOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterIsNotEmptyOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterStartsWithOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterContainsOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterNotContainsOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterEndsWithOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterGteOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterGtOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterLteOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterLtOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterIsTrue",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterIsFalse",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterBooleanAll",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterAfterOrEqualOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterAfterOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterBeforeOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterBeforeOrEqualOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"editorNumericDecrement",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"editorNumericIncrement",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"editorDateTodayText",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"editorDateToggleText",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterFieldAriaLabel",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterOperatorAriaLabel",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterValueAriaLabel",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterAriaLabel",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterToolbarAriaLabel",void 0),a);function a(){return null!==i&&i.apply(this,arguments)||this}t.Messages=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),o=r(0),n=r(2),a=r(3),l=r(4),s=r(0),d=r(26),u=r(25),s=(Object.defineProperty(p.prototype,"filters",{get:function(){return this.filterService.filters},set:function(e){if(o.isDevMode()&&(!l.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:!0,configurable:!0}),Object.defineProperty(p.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:!0,configurable:!0}),p.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()})},p.prototype.ngOnDestroy=function(){this.localizationSubscription&&this.localizationSubscription.unsubscribe()},p.prototype.getCurrentFilter=function(){return this.value},p.prototype.getCurrentFilterChildren=function(){return this.value.filters},p.prototype.onValueChange=function(){this.valueChange.emit(this.filterService.value)},p.prototype.normalizeFilter=function(t){var e=this.filterService.filters.find(function(e){return e.field===t.field});if(o.isDevMode()&&!e)throw new Error("There is no user-defined filter with '"+t.field+"' field provided through the [filters] input property.");o.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'."),"boolean"===e.editor&&(t.operator="eq"),"date"===e.editor&&t.value&&(t.value=new Date(t.value)),t.value||!1===t.value||(t.value=null)},p.prototype.normalizeValue=function(e){var t=this;e.filters.forEach(function(e){e.filters?t.normalizeValue(e):t.normalizeFilter(e)})},i.__decorate([o.HostBinding("attr.dir"),i.__metadata("design:type",String)],p.prototype,"direction",void 0),i.__decorate([o.Input(),i.__metadata("design:type",Array),i.__metadata("design:paramtypes",[Array])],p.prototype,"filters",null),i.__decorate([o.Input(),i.__metadata("design:type",Object),i.__metadata("design:paramtypes",[Object])],p.prototype,"value",null),i.__decorate([o.Output(),i.__metadata("design:type",o.EventEmitter)],p.prototype,"valueChange",void 0),i.__decorate([o.Component({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'}),i.__metadata("design:paramtypes",[a.FilterService,n.LocalizationService,s.ChangeDetectorRef])],p));function p(e,t,r){this.filterService=e,this.localization=t,this.cdr=r,this.valueChange=new o.EventEmitter,d.validatePackage(u.packageMetadata),this.direction=t.rtl?"rtl":"ltr"}t.FilterComponent=s},function(e,t){e.exports=g},function(e,t){e.exports=m},function(e,t){e.exports=c},function(e,t){e.exports=f},function(e,t){e.exports=p},function(e,t){e.exports=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),o=r(12),n=r(11),a=r(10),l=r(9),s=r(0),d=r(8),u=r(3),r=r(7),r=[o.CommonModule,a.InputsModule,l.LabelModule,n.DropDownsModule,d.ButtonsModule,r.DateInputsModule],u=i.__decorate([s.NgModule({imports:r.slice(),exports:r.slice(),providers:[u.FilterService]})],p);function p(){}t.SharedModule=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,o,n=r(1),a=r(0),l=r(2),r=r(5),l=(i=r.Messages,n.__extends(s,i),o=s,o=n.__decorate([a.Directive({providers:[{provide:r.Messages,useExisting:a.forwardRef(function(){return o})}],selector:"[kendoFilterLocalizedMessages]"}),n.__metadata("design:paramtypes",[l.LocalizationService])],s));function s(e){var t=i.call(this)||this;return t.service=e,t}t.LocalizedMessagesDirective=l},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,o,n=r(1),a=r(0),l=r(2),r=r(5),l=(i=r.Messages,n.__extends(s,i),o=s,Object.defineProperty(s.prototype,"override",{get:function(){return!0},enumerable:!0,configurable:!0}),o=n.__decorate([a.Component({providers:[{provide:r.Messages,useExisting:a.forwardRef(function(){return o})}],selector:"kendo-filter-messages",template:""}),n.__metadata("design:paramtypes",[l.LocalizationService])],s));function s(e){var t=i.call(this)||this;return t.service=e,t}t.CustomMessagesComponent=l},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),o=r(0),n=r(2),r=r(3),n=(a.prototype.ngOnInit=function(){this.logicOperators=this.filterService.logicOperators},a.prototype.messageFor=function(e){return this.localization.get(e)},a.prototype.selectedChange=function(e){this.currentItem.logic!==e&&(this.currentItem.logic=e,this.valueChange.emit())},a.prototype.addFilterExpression=function(){this.filterService.addFilterExpression(this.currentItem),this.valueChange.emit()},a.prototype.addFilterGroup=function(){this.filterService.addFilterGroup(this.currentItem),this.valueChange.emit()},a.prototype.removeFilterGroup=function(){this.filterService.remove(this.currentItem,this.index),this.valueChange.emit()},i.__decorate([o.Input(),i.__metadata("design:type",Number)],a.prototype,"index",void 0),i.__decorate([o.Input(),i.__metadata("design:type",Object)],a.prototype,"currentItem",void 0),i.__decorate([o.Output(),i.__metadata("design:type",o.EventEmitter)],a.prototype,"valueChange",void 0),i.__decorate([o.Component({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 logicOperators"\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 '}),i.__metadata("design:paramtypes",[r.FilterService,n.LocalizationService])],a));function a(e,t){this.filterService=e,this.localization=t,this.index=0,this.currentItem={logic:"or",filters:[]},this.valueChange=new o.EventEmitter,this.logicOperators=[]}t.FilterGroupComponent=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),o=r(0),n=r(2),a=r(3),l=r(4),n=(s.prototype.ngOnInit=function(){var e;this.filters=this.filterService.filters,this.currentItem.field&&(e=this.getFilterExpressionByField(this.currentItem.field),this.setOperators(e)),this.currentItem.field||(this.currentItem.field=this.filterService.filters[0].field,e=this.getFilterExpressionByField(this.filterService.filters[0].field),this.setOperators(e))},s.prototype.normalizeOperators=function(e,t){for(var r=[],i=0;i<t.length;i++)l.isFilterEditor(e)&&r.push({value:t[i],text:this.localization.get(l.getKeyByValue(l.defaultOperators[e],t[i]))});return r},s.prototype.messageFor=function(e){return this.localization.get(e)},s.prototype.getFilterExpressionByField=function(t){return this.filterService.filters.find(function(e){return e.field===t})||null},s.prototype.filterValueChange=function(e){this.currentItem.value=null,this.currentItem.field=e;e=this.getFilterExpressionByField(this.currentItem.field);this.setOperators(e),this.valueChange.emit()},s.prototype.getDefaultOperators=function(e){switch(e){case"string":return this.filterService.defaultStringOperators;case"number":return this.filterService.defaultNumericOperators;case"date":return this.filterService.defaultDateOperators}},s.prototype.getEditorType=function(){var t=this;return this.filterService.filters.find(function(e){return e.field===t.currentItem.field}).editor},s.prototype.removeFilterExpression=function(){this.filterService.remove(this.currentItem,this.index),this.valueChange.emit()},s.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=t[0].value):(this.operators=this.getDefaultOperators(e.editor),this.currentItem.operator=this.operators[0].value))},i.__decorate([o.Input(),i.__metadata("design:type",Number)],s.prototype,"index",void 0),i.__decorate([o.Input(),i.__metadata("design:type",Object)],s.prototype,"currentItem",void 0),i.__decorate([o.Output(),i.__metadata("design:type",o.EventEmitter)],s.prototype,"valueChange",void 0),i.__decorate([o.Component({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)="valueChange.emit();">\n </kendo-filter-expression-operators>\n </div>\n\n <ng-container [ngSwitch]="getEditorType()">\n <kendo-filter-text-editor *ngSwitchCase="\'string\'" [currentItem]="currentItem" (valueChange)="valueChange.emit()"></kendo-filter-text-editor>\n <kendo-filter-numeric-editor *ngSwitchCase="\'number\'" [currentItem]="currentItem" (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" (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 '}),i.__metadata("design:paramtypes",[a.FilterService,n.LocalizationService])],s));function s(e,t){this.filterService=e,this.localization=t,this.valueChange=new o.EventEmitter,this.operators=[],this.filters=[],this.isBoolean=!1,this.isEditorDisabled=!1}t.FilterExpressionComponent=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),o=r(0),n=r(2),a=r(3),l=r(4),n=(s.prototype.messageFor=function(e){return this.localization.get(e)},s.prototype.operatorValueChange=function(e){this.valueChange.emit(),this.filterService.isEditorDisabled=0<=l.nullOperators.indexOf(e)},i.__decorate([o.Input(),i.__metadata("design:type",Object)],s.prototype,"currentItem",void 0),i.__decorate([o.Output(),i.__metadata("design:type",o.EventEmitter)],s.prototype,"valueChange",void 0),i.__decorate([o.Input(),i.__metadata("design:type",Array)],s.prototype,"operators",void 0),i.__decorate([o.Component({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 '}),i.__metadata("design:paramtypes",[a.FilterService,n.LocalizationService])],s));function s(e,t){this.filterService=e,this.localization=t,this.valueChange=new o.EventEmitter,this.operators=[]}t.FilterExpressionOperatorsComponent=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),o=r(0),n=r(2),r=r(3),r=(a.prototype.isDisabled=function(){var e=this.filterService.isEditorDisabled;return e&&(this.currentItem.value=null),e},a.prototype.messageFor=function(e){return this.localization.get(e)},i.__decorate([o.Input(),i.__metadata("design:type",Object)],a.prototype,"currentItem",void 0),i.__decorate([o.Output(),i.__metadata("design:type",o.EventEmitter)],a.prototype,"valueChange",void 0),i.__decorate([o.Component({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 '}),i.__metadata("design:paramtypes",[n.LocalizationService,r.FilterService])],a));function a(e,t){this.localization=e,this.filterService=t,this.valueChange=new o.EventEmitter}t.FilterTextEditorComponent=r},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),o=r(0),n=r(2),r=r(3),r=(a.prototype.messageFor=function(e){return this.localization.get(e)},a.prototype.isDisabled=function(){var e=this.filterService.isEditorDisabled;return e&&(this.currentItem.value=null),e},i.__decorate([o.Input(),i.__metadata("design:type",Object)],a.prototype,"currentItem",void 0),i.__decorate([o.Output(),i.__metadata("design:type",o.EventEmitter)],a.prototype,"valueChange",void 0),i.__decorate([o.Component({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 '}),i.__metadata("design:paramtypes",[n.LocalizationService,r.FilterService])],a));function a(e,t){this.localization=e,this.filterService=t,this.valueChange=new o.EventEmitter}t.FilterNumericEditorComponent=r},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),o=r(0),n=r(2),r=r(3),r=(a.prototype.messageFor=function(e){return this.localization.get(e)},a.prototype.isDisabled=function(){var e=this.filterService.isEditorDisabled;return e&&(this.currentItem.value=null),e},i.__decorate([o.Input(),i.__metadata("design:type",Object)],a.prototype,"currentItem",void 0),i.__decorate([o.Output(),i.__metadata("design:type",o.EventEmitter)],a.prototype,"valueChange",void 0),i.__decorate([o.Component({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 '}),i.__metadata("design:paramtypes",[n.LocalizationService,r.FilterService])],a));function a(e,t){this.localization=e,this.filterService=t,this.valueChange=new o.EventEmitter}t.FilterDateEditorComponent=r},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),o=r(0),r=r(2),r=(n.prototype.messageFor=function(e){return this.localization.get(e)},i.__decorate([o.Input(),i.__metadata("design:type",Object)],n.prototype,"currentItem",void 0),i.__decorate([o.Output(),i.__metadata("design:type",o.EventEmitter)],n.prototype,"valueChange",void 0),i.__decorate([o.Component({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 '}),i.__metadata("design:paramtypes",[r.LocalizationService])],n));function n(e){this.localization=e,this.valueChange=new o.EventEmitter,this.items=[{text:this.localization.get("filterIsTrue"),value:!0},{text:this.localization.get("filterIsFalse"),value:!1}],this.defaultItem={text:this.localization.get("filterBooleanAll"),value:null}}t.FilterBooleanEditorComponent=r},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),r=r(0),r=(o.prototype.ngOnChanges=function(){var e=this.hostElement.nativeElement.querySelector("input")||this.hostElement.nativeElement;this.renderer.setAttribute(e,"aria-label",this.ariaLabel)},i.__decorate([r.Input("kendoAriaLabelValue"),i.__metadata("design:type",String)],o.prototype,"ariaLabel",void 0),i.__decorate([r.Directive({selector:"[kendoAriaLabelValue]"}),i.__metadata("design:paramtypes",[r.ElementRef,r.Renderer2])],o));function o(e,t){this.hostElement=e,this.renderer=t}t.AriaLabelValueDirective=r},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),o=r(0),n=r(2),a=r(23),l=r(22),s=r(21),d=r(20),u=r(19),p=r(18),f=r(17),c=r(16),m=r(6),g=r(15),v=r(14),r=r(13),n=i.__decorate([o.NgModule({imports:[r.SharedModule],declarations:[m.FilterComponent,d.FilterNumericEditorComponent,u.FilterTextEditorComponent,f.FilterExpressionComponent,c.FilterGroupComponent,p.FilterExpressionOperatorsComponent,l.FilterBooleanEditorComponent,s.FilterDateEditorComponent,v.LocalizedMessagesDirective,g.CustomMessagesComponent,a.AriaLabelValueDirective],exports:[m.FilterComponent,d.FilterNumericEditorComponent,u.FilterTextEditorComponent,f.FilterExpressionComponent,c.FilterGroupComponent,p.FilterExpressionOperatorsComponent,l.FilterBooleanEditorComponent,s.FilterDateEditorComponent,v.LocalizedMessagesDirective,g.CustomMessagesComponent,a.AriaLabelValueDirective],providers:[n.LocalizationService,{provide:n.L10N_PREFIX,useValue:"kendo.filter"}]})],h);function h(){}t.FilterModule=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.packageMetadata={name:"@progress/kendo-angular-filter",productName:"Kendo UI for Angular",productCodes:["KENDOUIANGULAR","KENDOUICOMPLETE"],publishDate:1642780812,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"}},function(e,t){e.exports=d},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(6);t.FilterComponent=i.FilterComponent;r=r(24);t.FilterModule=r.FilterModule,function(e){for(var t in e)n(t,e[t])}(t)}],i.c=o,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},i.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=27)}}});
5
+ System.register("@progress/kendo-angular-filter",["tslib","@angular/core","@progress/kendo-angular-l10n","@progress/kendo-licensing","@angular/common","@progress/kendo-angular-dropdowns","@progress/kendo-angular-label","@progress/kendo-angular-buttons","@progress/kendo-angular-inputs","@progress/kendo-angular-dateinputs"],function(g){var n,a,l,s,u,d,p,f,c,m;function t(e){return e.__useDefault?e.default:e}return{setters:[function(e){n=t(e)},function(e){a=t(e)},function(e){l=t(e)},function(e){s=t(e)},function(e){u=t(e)},function(e){d=t(e)},function(e){p=t(e)},function(e){f=t(e)},function(e){c=t(e)},function(e){m=t(e)}],execute:function(){function i(e){if(o[e])return o[e].exports;var t=o[e]={i:e,l:!1,exports:{}};return r[e].call(t.exports,t,t.exports,i),t.l=!0,t.exports}var r,o;r=[function(e,t){e.exports=a},function(e,t){e.exports=n},function(e,t){e.exports=l},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),r=r(0),i=(o.prototype.addFilterGroup=function(e){e.filters.push({logic:"or",filters:[]})},o.prototype.addFilterExpression=function(e){e.filters.push({operator:"eq",value:null,field:null})},o.prototype.remove=function(t,r,e){var i,o=this;e=e||this.value,t!==e?0<=(i=e.filters.indexOf(t))&&i===r?e.filters=e.filters.filter(function(e){return e!==t}):e.filters.forEach(function(e){return e.filters&&o.remove(t,r,e)}):e.filters=[]},i.__decorate([r.Injectable()],o));function o(){this.value={filters:[],logic:"or"},this.filters=[],this.isEditorDisabled=!1}t.FilterService=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nullOperators=["isnull","isnotnull","isempty","isnotempty"],t.numericOperators=[{text:"Is equal to",value:"eq"},{text:"Not equal to",value:"neq"},{text:"Greater than or equal to",value:"gte"},{text:"Greater than",value:"gt"},{text:"Less than or equal to",value:"lte"},{text:"Less than",value:"lt"},{text:"Is null",value:"isnull"},{text:"Is not null",value:"isnotnull"}],t.stringOperators=[{text:"Is equal to",value:"eq"},{text:"Not equal to",value:"neq"},{text:"Contains",value:"contains"},{text:"Does not contain",value:"doesnotcontain"},{text:"Starts with",value:"startswith"},{text:"Ends with",value:"endswith"},{text:"Is null",value:"isnull"},{text:"Is not null",value:"isnotnull"},{text:"Is empty",value:"isempty"},{text:"Is not empty",value:"isnotempty"}],t.booleanOperators=[{text:"Is equal to",value:"eq"},{text:"Is not equal to",value:"neq"}],t.dateOperators=[{text:"Is equal to",value:"eq"},{text:"Not equal to",value:"neq"},{text:"Greater than or equal to",value:"gte"},{text:"Greater than",value:"gt"},{text:"Less than or equal to",value:"lte"},{text:"Less than",value:"lt"},{text:"Is null",value:"isnull"},{text:"Is not null",value:"isnotnull"}],t.isArray=function(e){return Array.isArray(e)},t.getKeyByValue=function(t,r){return Object.keys(t).find(function(e){return t[e]===r})},t.defaultStringOperators={filterEqOperator:"eq",filterNotEqOperator:"neq",filterContainsOperator:"contains",filterNotContainsOperator:"doesnotcontain",filterStartsWithOperator:"startswith",filterEndsWithOperator:"endswith",filterIsNullOperator:"isnull",filterIsNotNullOperator:"isnotnull",filterIsEmptyOperator:"isempty",filterIsNotEmptyOperator:"isnotempty"},t.defaultNumericOperators={filterEqOperator:"eq",filterNotEqOperator:"neq",filterGteOperator:"gte",filterGtOperator:"gt",filterLteOperator:"lte",filterLtOperator:"lt",filterIsNullOperator:"isnull",filterIsNotNullOperator:"isnotnull"},t.defaultDateOperators={filterEqOperator:"eq",filterNotEqOperator:"neq",filterAfterOrEqualOperator:"gte",filterAfterOperator:"gt",filterBeforeOrEqualOperator:"lte",filterBeforeOperator:"lt",filterIsNullOperator:"isnull",filterIsNotNullOperator:"isnotnull"},t.defaultOperators={string:t.defaultStringOperators,number:t.defaultNumericOperators,date:t.defaultDateOperators},t.logicOperators={filterAndLogic:"and",filterOrLogic:"or"},t.isFilterEditor=function(e){return 0<=["string","number","boolean","date"].indexOf(e)},t.localizeOperators=function(r){return function(t){return Object.keys(r).map(function(e){return{text:t.get(e),value:r[e]}})}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,o=r(1),n=r(0),r=(i=r(2).ComponentMessages,o.__extends(a,i),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterExpressionOperators",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterExpressionFilters",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"remove",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"addGroup",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"addFilter",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterAndLogic",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterOrLogic",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterEqOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterNotEqOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterIsNullOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterIsNotNullOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterIsEmptyOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterIsNotEmptyOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterStartsWithOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterContainsOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterNotContainsOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterEndsWithOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterGteOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterGtOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterLteOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterLtOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterIsTrue",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterIsFalse",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterBooleanAll",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterAfterOrEqualOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterAfterOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterBeforeOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterBeforeOrEqualOperator",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"editorNumericDecrement",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"editorNumericIncrement",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"editorDateTodayText",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"editorDateToggleText",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterFieldAriaLabel",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterOperatorAriaLabel",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterValueAriaLabel",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterAriaLabel",void 0),o.__decorate([n.Input(),o.__metadata("design:type",String)],a.prototype,"filterToolbarAriaLabel",void 0),a);function a(){return null!==i&&i.apply(this,arguments)||this}t.Messages=r},function(d,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=t(1),i=t(0),o=t(2),n=t(3),a=t(4),l=t(0),s=t(26),p=t(25),t=(Object.defineProperty(u.prototype,"filters",{get:function(){return this.filterService.filters},set:function(e){if(i.isDevMode()&&(!a.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:!0,configurable:!0}),Object.defineProperty(u.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:!0,configurable:!0}),u.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()})},u.prototype.ngOnDestroy=function(){this.localizationSubscription&&this.localizationSubscription.unsubscribe()},u.prototype.getCurrentFilter=function(){return this.value},u.prototype.getCurrentFilterChildren=function(){return this.value.filters},u.prototype.onValueChange=function(){this.valueChange.emit(this.filterService.value)},u.prototype.normalizeFilter=function(t){var e=this.filterService.filters.find(function(e){return e.field===t.field});if(i.isDevMode()&&!e)throw new Error("There is no user-defined filter with '"+t.field+"' field provided through the [filters] input property.");i.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'."),"boolean"===e.editor&&(t.operator="eq"),"date"===e.editor&&t.value&&(t.value=new Date(t.value)),t.value||!1===t.value||(t.value=null)},u.prototype.normalizeValue=function(e){var t=this;e.filters.forEach(function(e){e.filters?t.normalizeValue(e):t.normalizeFilter(e)})},r.__decorate([i.HostBinding("attr.dir"),r.__metadata("design:type",String)],u.prototype,"direction",void 0),r.__decorate([i.Input(),r.__metadata("design:type",Array),r.__metadata("design:paramtypes",[Array])],u.prototype,"filters",null),r.__decorate([i.Input(),r.__metadata("design:type",Object),r.__metadata("design:paramtypes",[Object])],u.prototype,"value",null),r.__decorate([i.Output(),r.__metadata("design:type",i.EventEmitter)],u.prototype,"valueChange",void 0),r.__decorate([i.Component({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'}),r.__metadata("design:paramtypes",[n.FilterService,o.LocalizationService,l.ChangeDetectorRef])],u));function u(e,t,r){this.filterService=e,this.localization=t,this.cdr=r,this.valueChange=new i.EventEmitter,s.validatePackage(p.packageMetadata),this.direction=t.rtl?"rtl":"ltr"}e.FilterComponent=t},function(e,t){e.exports=m},function(e,t){e.exports=f},function(e,t){e.exports=p},function(e,t){e.exports=c},function(e,t){e.exports=d},function(e,t){e.exports=u},function(d,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=t(1),i=t(12),o=t(11),n=t(10),a=t(9),l=t(0),s=t(8),u=t(3),t=t(7),i=[i.CommonModule,n.InputsModule,a.LabelModule,o.DropDownsModule,s.ButtonsModule,t.DateInputsModule],n=r.__decorate([l.NgModule({imports:i.slice(),exports:i.slice(),providers:[u.FilterService]})],p);function p(){}e.SharedModule=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,o,n=r(1),a=r(0),l=r(2),r=r(5),r=(i=r.Messages,n.__extends(s,i),o=s,o=n.__decorate([a.Directive({providers:[{provide:r.Messages,useExisting:a.forwardRef(function(){return o})}],selector:"[kendoFilterLocalizedMessages]"}),n.__metadata("design:paramtypes",[l.LocalizationService])],s));function s(e){var t=i.call(this)||this;return t.service=e,t}t.LocalizedMessagesDirective=r},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,o,n=r(1),a=r(0),l=r(2),r=r(5),r=(i=r.Messages,n.__extends(s,i),o=s,Object.defineProperty(s.prototype,"override",{get:function(){return!0},enumerable:!0,configurable:!0}),o=n.__decorate([a.Component({providers:[{provide:r.Messages,useExisting:a.forwardRef(function(){return o})}],selector:"kendo-filter-messages",template:""}),n.__metadata("design:paramtypes",[l.LocalizationService])],s));function s(e){var t=i.call(this)||this;return t.service=e,t}t.CustomMessagesComponent=r},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),o=r(0),n=r(2),a=r(3),l=r(4),r=(s.prototype.ngOnInit=function(){var e=this;this.operators=this.getLogicOperators(),this.localizationSubscription=this.localization.changes.subscribe(function(){e.operators=e.getLogicOperators(),e.cdr.detectChanges()})},s.prototype.ngOnDestroy=function(){this.localizationSubscription&&this.localizationSubscription.unsubscribe()},s.prototype.getLogicOperators=function(){return l.localizeOperators(l.logicOperators)(this.localization)},s.prototype.messageFor=function(e){return this.localization.get(e)},s.prototype.selectedChange=function(e){this.currentItem.logic!==e&&(this.currentItem.logic=e,this.valueChange.emit())},s.prototype.addFilterExpression=function(){this.filterService.addFilterExpression(this.currentItem),this.valueChange.emit()},s.prototype.addFilterGroup=function(){this.filterService.addFilterGroup(this.currentItem),this.valueChange.emit()},s.prototype.removeFilterGroup=function(){this.filterService.remove(this.currentItem,this.index),this.valueChange.emit()},i.__decorate([o.Input(),i.__metadata("design:type",Number)],s.prototype,"index",void 0),i.__decorate([o.Input(),i.__metadata("design:type",Object)],s.prototype,"currentItem",void 0),i.__decorate([o.Output(),i.__metadata("design:type",o.EventEmitter)],s.prototype,"valueChange",void 0),i.__decorate([o.Component({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 '}),i.__metadata("design:paramtypes",[a.FilterService,n.LocalizationService,o.ChangeDetectorRef])],s));function s(e,t,r){this.filterService=e,this.localization=t,this.cdr=r,this.index=0,this.currentItem={logic:"or",filters:[]},this.valueChange=new o.EventEmitter,this.operators=[]}t.FilterGroupComponent=r},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),o=r(0),n=r(2),a=r(3),l=r(4),r=(s.prototype.ngOnInit=function(){var e=this,t=(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()})},s.prototype.ngOnDestroy=function(){this.localizationSubscription&&this.localizationSubscription.unsubscribe()},s.prototype.normalizeOperators=function(e,t){for(var r=[],i=0;i<t.length;i++)l.isFilterEditor(e)&&r.push({value:t[i],text:this.localization.get(l.getKeyByValue(l.defaultOperators[e],t[i]))});return r},s.prototype.messageFor=function(e){return this.localization.get(e)},s.prototype.getFilterExpressionByField=function(t){return this.filterService.filters.find(function(e){return e.field===t})||null},s.prototype.filterValueChange=function(e){this.currentItem.value=null,this.currentItem.field=e;e=this.getFilterExpressionByField(this.currentItem.field);this.setOperators(e),this.valueChange.emit()},s.prototype.getDefaultOperators=function(e){switch(e){case"string":return l.localizeOperators(l.defaultStringOperators)(this.localization);case"number":return l.localizeOperators(l.defaultNumericOperators)(this.localization);case"date":return l.localizeOperators(l.defaultDateOperators)(this.localization)}},s.prototype.getEditorType=function(){var t=this;return this.filterService.filters.find(function(e){return e.field===t.currentItem.field}).editor},s.prototype.removeFilterExpression=function(){this.filterService.remove(this.currentItem,this.index),this.valueChange.emit()},s.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=t[0].value):(this.operators=this.getDefaultOperators(e.editor),this.currentItem.operator=this.operators[0].value))},i.__decorate([o.Input(),i.__metadata("design:type",Number)],s.prototype,"index",void 0),i.__decorate([o.Input(),i.__metadata("design:type",Object)],s.prototype,"currentItem",void 0),i.__decorate([o.Output(),i.__metadata("design:type",o.EventEmitter)],s.prototype,"valueChange",void 0),i.__decorate([o.Component({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)="valueChange.emit();">\n </kendo-filter-expression-operators>\n </div>\n\n <ng-container [ngSwitch]="getEditorType()">\n <kendo-filter-text-editor *ngSwitchCase="\'string\'" [currentItem]="currentItem" (valueChange)="valueChange.emit()"></kendo-filter-text-editor>\n <kendo-filter-numeric-editor *ngSwitchCase="\'number\'" [currentItem]="currentItem" (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" (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 '}),i.__metadata("design:paramtypes",[a.FilterService,n.LocalizationService,o.ChangeDetectorRef])],s));function s(e,t,r){this.filterService=e,this.localization=t,this.cdr=r,this.valueChange=new o.EventEmitter,this.operators=[],this.filters=[],this.isBoolean=!1,this.isEditorDisabled=!1}t.FilterExpressionComponent=r},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),o=r(0),n=r(2),a=r(3),l=r(4),r=(s.prototype.messageFor=function(e){return this.localization.get(e)},s.prototype.operatorValueChange=function(e){this.valueChange.emit(),this.filterService.isEditorDisabled=0<=l.nullOperators.indexOf(e)},i.__decorate([o.Input(),i.__metadata("design:type",Object)],s.prototype,"currentItem",void 0),i.__decorate([o.Output(),i.__metadata("design:type",o.EventEmitter)],s.prototype,"valueChange",void 0),i.__decorate([o.Input(),i.__metadata("design:type",Array)],s.prototype,"operators",void 0),i.__decorate([o.Component({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 '}),i.__metadata("design:paramtypes",[a.FilterService,n.LocalizationService])],s));function s(e,t){this.filterService=e,this.localization=t,this.valueChange=new o.EventEmitter,this.operators=[]}t.FilterExpressionOperatorsComponent=r},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),o=r(0),n=r(2),r=r(3),i=(a.prototype.isDisabled=function(){var e=this.filterService.isEditorDisabled;return e&&(this.currentItem.value=null),e},a.prototype.messageFor=function(e){return this.localization.get(e)},i.__decorate([o.Input(),i.__metadata("design:type",Object)],a.prototype,"currentItem",void 0),i.__decorate([o.Output(),i.__metadata("design:type",o.EventEmitter)],a.prototype,"valueChange",void 0),i.__decorate([o.Component({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 '}),i.__metadata("design:paramtypes",[n.LocalizationService,r.FilterService])],a));function a(e,t){this.localization=e,this.filterService=t,this.valueChange=new o.EventEmitter}t.FilterTextEditorComponent=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),o=r(0),n=r(2),r=r(3),i=(a.prototype.messageFor=function(e){return this.localization.get(e)},a.prototype.isDisabled=function(){var e=this.filterService.isEditorDisabled;return e&&(this.currentItem.value=null),e},i.__decorate([o.Input(),i.__metadata("design:type",Object)],a.prototype,"currentItem",void 0),i.__decorate([o.Output(),i.__metadata("design:type",o.EventEmitter)],a.prototype,"valueChange",void 0),i.__decorate([o.Component({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 '}),i.__metadata("design:paramtypes",[n.LocalizationService,r.FilterService])],a));function a(e,t){this.localization=e,this.filterService=t,this.valueChange=new o.EventEmitter}t.FilterNumericEditorComponent=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),o=r(0),n=r(2),r=r(3),i=(a.prototype.messageFor=function(e){return this.localization.get(e)},a.prototype.isDisabled=function(){var e=this.filterService.isEditorDisabled;return e&&(this.currentItem.value=null),e},i.__decorate([o.Input(),i.__metadata("design:type",Object)],a.prototype,"currentItem",void 0),i.__decorate([o.Output(),i.__metadata("design:type",o.EventEmitter)],a.prototype,"valueChange",void 0),i.__decorate([o.Component({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 '}),i.__metadata("design:paramtypes",[n.LocalizationService,r.FilterService])],a));function a(e,t){this.localization=e,this.filterService=t,this.valueChange=new o.EventEmitter}t.FilterDateEditorComponent=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),o=r(0),r=r(2),i=(n.prototype.ngOnInit=function(){var e=this;this.localizationSubscription=this.localization.changes.subscribe(function(){e.defaultItem=e.getDefaultItem(),e.items=e.getValueItems(),e.cdr.detectChanges()})},n.prototype.getDefaultItem=function(){return{text:this.localization.get("filterBooleanAll"),value:null}},n.prototype.getValueItems=function(){return[{text:this.localization.get("filterIsTrue"),value:!0},{text:this.localization.get("filterIsFalse"),value:!1}]},n.prototype.ngOnDestroy=function(){this.localizationSubscription&&this.localizationSubscription.unsubscribe()},n.prototype.messageFor=function(e){return this.localization.get(e)},i.__decorate([o.Input(),i.__metadata("design:type",Object)],n.prototype,"currentItem",void 0),i.__decorate([o.Output(),i.__metadata("design:type",o.EventEmitter)],n.prototype,"valueChange",void 0),i.__decorate([o.Component({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 '}),i.__metadata("design:paramtypes",[r.LocalizationService,o.ChangeDetectorRef])],n));function n(e,t){this.localization=e,this.cdr=t,this.valueChange=new o.EventEmitter,this.items=this.getValueItems(),this.defaultItem=this.getDefaultItem()}t.FilterBooleanEditorComponent=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),r=r(0),i=(o.prototype.ngOnChanges=function(){var e=this.hostElement.nativeElement.querySelector("input")||this.hostElement.nativeElement;this.renderer.setAttribute(e,"aria-label",this.ariaLabel)},i.__decorate([r.Input("kendoAriaLabelValue"),i.__metadata("design:type",String)],o.prototype,"ariaLabel",void 0),i.__decorate([r.Directive({selector:"[kendoAriaLabelValue]"}),i.__metadata("design:paramtypes",[r.ElementRef,r.Renderer2])],o));function o(e,t){this.hostElement=e,this.renderer=t}t.AriaLabelValueDirective=i},function(d,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=t(1),p=t(0),i=t(2),o=t(23),n=t(22),a=t(21),l=t(20),s=t(19),u=t(18),f=t(17),c=t(16),g=t(6),m=t(15),h=t(14),t=t(13),r=r.__decorate([p.NgModule({imports:[t.SharedModule],declarations:[g.FilterComponent,l.FilterNumericEditorComponent,s.FilterTextEditorComponent,f.FilterExpressionComponent,c.FilterGroupComponent,u.FilterExpressionOperatorsComponent,n.FilterBooleanEditorComponent,a.FilterDateEditorComponent,h.LocalizedMessagesDirective,m.CustomMessagesComponent,o.AriaLabelValueDirective],exports:[g.FilterComponent,l.FilterNumericEditorComponent,s.FilterTextEditorComponent,f.FilterExpressionComponent,c.FilterGroupComponent,u.FilterExpressionOperatorsComponent,n.FilterBooleanEditorComponent,a.FilterDateEditorComponent,h.LocalizedMessagesDirective,m.CustomMessagesComponent,o.AriaLabelValueDirective],providers:[i.LocalizationService,{provide:i.L10N_PREFIX,useValue:"kendo.filter"}]})],v);function v(){}e.FilterModule=r},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.packageMetadata={name:"@progress/kendo-angular-filter",productName:"Kendo UI for Angular",productCodes:["KENDOUIANGULAR","KENDOUICOMPLETE"],publishDate:1645005293,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"}},function(e,t){e.exports=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,o=r(6),o=(t.FilterComponent=o.FilterComponent,r(24)),n=(t.FilterModule=o.FilterModule,t);for(i in n)g(i,n[i])}],o={},i.m=r,i.c=o,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},i.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=27)}}});
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Kendo UI Angular Filter",
4
4
  "author": "Progress",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
- "version": "0.1.3-dev.202201211601",
6
+ "version": "0.1.5-dev.202202160956",
7
7
  "main": "dist/npm/index.js",
8
8
  "module": "dist/fesm5/index.js",
9
9
  "es2015": "dist/fesm2015/index.js",
@@ -19,6 +19,7 @@
19
19
  "test:watch": "jest --watch",
20
20
  "test:ci": "ci-angular-test",
21
21
  "e2e:ci": "ci-angular-e2e",
22
+ "e2e": "gulp e2e",
22
23
  "start": "gulp start",
23
24
  "lint": "gulp lint && gulp lint-docs && tsc --noEmit",
24
25
  "api-check": "gulp api-check",