@indigina/kendo 1.2.20 → 1.2.22

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.
@@ -1281,11 +1281,6 @@ a {
1281
1281
  word-wrap: break-word;
1282
1282
  }
1283
1283
 
1284
- .log-grid .k-pager-last,
1285
- .log-grid .k-pager-first {
1286
- display: none !important;
1287
- }
1288
-
1289
1284
  .log-area .k-grid-content {
1290
1285
  overflow-y: scroll;
1291
1286
  overflow-x: auto;
@@ -1,4 +1,4 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
2
  import { ControlContainer, FormGroupDirective, } from '@angular/forms';
3
3
  import { FieldComponent } from '../../../angular/forms/widgets/field/field.component';
4
4
  import * as i0 from "@angular/core";
@@ -14,6 +14,9 @@ export class FieldMultiSelectComponent extends FieldComponent {
14
14
  super(parent, eref, []);
15
15
  this.parent = parent;
16
16
  this.eref = eref;
17
+ this.singleMode = false;
18
+ this.autoClose = false;
19
+ this.changed = new EventEmitter();
17
20
  this.data = [];
18
21
  this.textField = this.textField ?? 'name';
19
22
  this.valueField = this.valueField ?? 'id';
@@ -24,19 +27,31 @@ export class FieldMultiSelectComponent extends FieldComponent {
24
27
  this.control.setValue(this.control.value.filter((x) => this.data.filter((d) => d.id === x).length));
25
28
  });
26
29
  }
30
+ onPopupOpen(event) {
31
+ if (!this.singleMode) {
32
+ return;
33
+ }
34
+ this.control.value.length > 0 && event.preventDefault();
35
+ }
27
36
  getData() {
28
37
  return this.service.getPage(this.filter ? { filter: this.filter } : {});
29
38
  }
30
39
  }
31
40
  FieldMultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: FieldMultiSelectComponent, deps: [{ token: i1.FormGroupDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
32
- FieldMultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: FieldMultiSelectComponent, selector: "field-multiselect", inputs: { service: "service", rebind: "rebind", filter: "filter", textField: "textField", valueField: "valueField" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\">\n <label\n for=\"{{ '_' + fieldName }}\"\n class=\"col-md-3 control-label\"\n translate=\"{{ labelKey }}\"\n ></label>\n <div class=\"col-md-9\" *ngIf=\"control\">\n <kendo-multiselect\n id=\"{{ '_' + fieldName }}\"\n [formControl]=\"control\"\n [data]=\"data\"\n [autoClose]=\"false\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [valuePrimitive]=\"true\"\n >\n </kendo-multiselect>\n\n <div class=\"bg-danger\" *ngIf=\"control.invalid && control.touched\">\n <span *ngIf=\"control.errors['required']\">{{\n 'Required' | translate : { param0: labelKey | translate }\n }}</span>\n <span *ngIf=\"control.errors['serverErrorMsg']\">{{\n control.errors['serverErrorMsg']\n }}</span>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MultiSelectComponent, selector: "kendo-multiselect", inputs: ["focusableId", "autoClose", "loading", "data", "value", "valueField", "textField", "tabindex", "tabIndex", "size", "rounded", "fillMode", "placeholder", "disabled", "itemDisabled", "checkboxes", "readonly", "filterable", "virtual", "popupSettings", "listHeight", "valuePrimitive", "clearButton", "tagMapper", "allowCustom", "valueNormalizer"], outputs: ["filterChange", "valueChange", "open", "opened", "close", "closed", "focus", "blur", "removeTag"], exportAs: ["kendoMultiSelect"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], viewProviders: [
33
- { provide: ControlContainer, useExisting: FormGroupDirective },
41
+ FieldMultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: FieldMultiSelectComponent, selector: "field-multiselect", inputs: { service: "service", rebind: "rebind", filter: "filter", textField: "textField", valueField: "valueField", singleMode: "singleMode", autoClose: "autoClose" }, outputs: { changed: "changed" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\">\n <label\n for=\"{{ '_' + fieldName }}\"\n class=\"col-md-3 control-label\"\n translate=\"{{ labelKey }}\"\n ></label>\n <div *ngIf=\"control\" class=\"col-md-9\">\n <kendo-multiselect\n id=\"{{ '_' + fieldName }}\"\n [formControl]=\"control\"\n [data]=\"data\"\n [autoClose]=\"autoClose\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [valuePrimitive]=\"true\"\n (open)=\"onPopupOpen($event)\"\n >\n </kendo-multiselect>\n\n <div *ngIf=\"control.invalid && control.touched\" class=\"bg-danger\">\n <span *ngIf=\"control.errors['required']\">{{\n 'Required' | translate : { param0: labelKey | translate }\n }}</span>\n <span *ngIf=\"control.errors['serverErrorMsg']\">{{\n control.errors['serverErrorMsg']\n }}</span>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MultiSelectComponent, selector: "kendo-multiselect", inputs: ["focusableId", "autoClose", "loading", "data", "value", "valueField", "textField", "tabindex", "tabIndex", "size", "rounded", "fillMode", "placeholder", "disabled", "itemDisabled", "checkboxes", "readonly", "filterable", "virtual", "popupSettings", "listHeight", "valuePrimitive", "clearButton", "tagMapper", "allowCustom", "valueNormalizer"], outputs: ["filterChange", "valueChange", "open", "opened", "close", "closed", "focus", "blur", "removeTag"], exportAs: ["kendoMultiSelect"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], viewProviders: [
42
+ {
43
+ provide: ControlContainer,
44
+ useExisting: FormGroupDirective,
45
+ },
34
46
  ] });
35
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: FieldMultiSelectComponent, decorators: [{
36
48
  type: Component,
37
49
  args: [{ selector: 'field-multiselect', viewProviders: [
38
- { provide: ControlContainer, useExisting: FormGroupDirective },
39
- ], template: "<div class=\"form-group\">\n <label\n for=\"{{ '_' + fieldName }}\"\n class=\"col-md-3 control-label\"\n translate=\"{{ labelKey }}\"\n ></label>\n <div class=\"col-md-9\" *ngIf=\"control\">\n <kendo-multiselect\n id=\"{{ '_' + fieldName }}\"\n [formControl]=\"control\"\n [data]=\"data\"\n [autoClose]=\"false\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [valuePrimitive]=\"true\"\n >\n </kendo-multiselect>\n\n <div class=\"bg-danger\" *ngIf=\"control.invalid && control.touched\">\n <span *ngIf=\"control.errors['required']\">{{\n 'Required' | translate : { param0: labelKey | translate }\n }}</span>\n <span *ngIf=\"control.errors['serverErrorMsg']\">{{\n control.errors['serverErrorMsg']\n }}</span>\n </div>\n </div>\n</div>\n" }]
50
+ {
51
+ provide: ControlContainer,
52
+ useExisting: FormGroupDirective,
53
+ },
54
+ ], template: "<div class=\"form-group\">\n <label\n for=\"{{ '_' + fieldName }}\"\n class=\"col-md-3 control-label\"\n translate=\"{{ labelKey }}\"\n ></label>\n <div *ngIf=\"control\" class=\"col-md-9\">\n <kendo-multiselect\n id=\"{{ '_' + fieldName }}\"\n [formControl]=\"control\"\n [data]=\"data\"\n [autoClose]=\"autoClose\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [valuePrimitive]=\"true\"\n (open)=\"onPopupOpen($event)\"\n >\n </kendo-multiselect>\n\n <div *ngIf=\"control.invalid && control.touched\" class=\"bg-danger\">\n <span *ngIf=\"control.errors['required']\">{{\n 'Required' | translate : { param0: labelKey | translate }\n }}</span>\n <span *ngIf=\"control.errors['serverErrorMsg']\">{{\n control.errors['serverErrorMsg']\n }}</span>\n </div>\n </div>\n</div>\n" }]
40
55
  }], ctorParameters: function () { return [{ type: i1.FormGroupDirective }, { type: i0.ElementRef }]; }, propDecorators: { service: [{
41
56
  type: Input
42
57
  }], rebind: [{
@@ -47,5 +62,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImpor
47
62
  type: Input
48
63
  }], valueField: [{
49
64
  type: Input
65
+ }], singleMode: [{
66
+ type: Input
67
+ }], autoClose: [{
68
+ type: Input
69
+ }], changed: [{
70
+ type: Output
50
71
  }] } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtbXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2VuZG8vc3JjL2xpYi93aWRnZXRzL2VudGl0eS1lZGl0L2ZpZWxkLW11bHRpc2VsZWN0L2ZpZWxkLW11bHRpc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlbmRvL3NyYy9saWIvd2lkZ2V0cy9lbnRpdHktZWRpdC9maWVsZC1tdWx0aXNlbGVjdC9maWVsZC1tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBeUIsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixrQkFBa0IsR0FFbkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0RBQXNELENBQUM7Ozs7OztBQWF0RixNQUFNLE9BQU8seUJBQ1gsU0FBUSxjQUF3QjtJQWNoQyxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELFlBQW1CLE1BQTBCLEVBQVMsSUFBZ0I7UUFDcEUsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFEUCxXQUFNLEdBQU4sTUFBTSxDQUFvQjtRQUFTLFNBQUksR0FBSixJQUFJLENBQVk7UUFMdEUsU0FBSSxHQUFzQixFQUFFLENBQUM7UUFPM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQztRQUMxQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDO0lBQzVDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUN2QixDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUMxRCxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxPQUFPO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7O3NIQXRDVSx5QkFBeUI7MEdBQXpCLHlCQUF5QiwyTkNwQnRDLGcxQkE0QkEscXJDRFppQjtRQUNiLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRTtLQUMvRDsyRkFFVSx5QkFBeUI7a0JBUnJDLFNBQVM7K0JBQ0UsbUJBQW1CLGlCQUdkO3dCQUNiLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRTtxQkFDL0Q7a0lBT0QsT0FBTztzQkFETixLQUFLO2dCQUdOLE1BQU07c0JBREwsS0FBSztnQkFHTixNQUFNO3NCQURMLEtBQUs7Z0JBR04sU0FBUztzQkFEUixLQUFLO2dCQUdOLFVBQVU7c0JBRFQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEVsZW1lbnRSZWYsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbENvbnRhaW5lcixcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICBBYnN0cmFjdENvbnRyb2wsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbXBvc2l0ZUZpbHRlckRlc2NyaXB0b3IgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tZGF0YS1xdWVyeSc7XG5pbXBvcnQgeyBGaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2FuZ3VsYXIvZm9ybXMvd2lkZ2V0cy9maWVsZC9maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWRlbnRpZmllZE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vYW5ndWxhci9tb2RlbHMvSWRlbnRpZmllZE1vZGVsJztcbmltcG9ydCB7IE5hbWVkTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9hbmd1bGFyL21vZGVscy9OYW1lZE1vZGVsJztcbmltcG9ydCB7IElFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvSUVudGl0eVNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmaWVsZC1tdWx0aXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWVsZC1tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpZWxkLW11bHRpc2VsZWN0LmNvbXBvbmVudC5jc3MnXSxcbiAgdmlld1Byb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IEZvcm1Hcm91cERpcmVjdGl2ZSB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWVsZE11bHRpU2VsZWN0Q29tcG9uZW50XG4gIGV4dGVuZHMgRmllbGRDb21wb25lbnQ8c3RyaW5nW10+XG4gIGltcGxlbWVudHMgT25DaGFuZ2VzXG57XG4gIEBJbnB1dCgpXG4gIHNlcnZpY2U6IElFbnRpdHlTZXJ2aWNlPE5hbWVkTW9kZWw+O1xuICBASW5wdXQoKVxuICByZWJpbmQ6IHN0cmluZztcbiAgQElucHV0KClcbiAgZmlsdGVyPzogQ29tcG9zaXRlRmlsdGVyRGVzY3JpcHRvcjtcbiAgQElucHV0KClcbiAgdGV4dEZpZWxkPzogc3RyaW5nO1xuICBASW5wdXQoKVxuICB2YWx1ZUZpZWxkPzogc3RyaW5nO1xuICBkYXRhOiBJZGVudGlmaWVkTW9kZWxbXSA9IFtdO1xuICBnZXQgY29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5mb3JtLmdldCh0aGlzLmZpZWxkTmFtZSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGFyZW50OiBGb3JtR3JvdXBEaXJlY3RpdmUsIHB1YmxpYyBlcmVmOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIocGFyZW50LCBlcmVmLCBbXSk7XG4gICAgdGhpcy50ZXh0RmllbGQgPSB0aGlzLnRleHRGaWVsZCA/PyAnbmFtZSc7XG4gICAgdGhpcy52YWx1ZUZpZWxkID0gdGhpcy52YWx1ZUZpZWxkID8/ICdpZCc7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmdldERhdGEoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuZGF0YSA9IGRhdGEuZGF0YTtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShcbiAgICAgICAgdGhpcy5jb250cm9sLnZhbHVlLmZpbHRlcihcbiAgICAgICAgICAoeDogc3RyaW5nKSA9PiB0aGlzLmRhdGEuZmlsdGVyKChkKSA9PiBkLmlkID09PSB4KS5sZW5ndGhcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmdldFBhZ2UodGhpcy5maWx0ZXIgPyB7IGZpbHRlcjogdGhpcy5maWx0ZXIgfSA6IHt9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgPGxhYmVsXG4gICAgZm9yPVwie3sgJ18nICsgZmllbGROYW1lIH19XCJcbiAgICBjbGFzcz1cImNvbC1tZC0zIGNvbnRyb2wtbGFiZWxcIlxuICAgIHRyYW5zbGF0ZT1cInt7IGxhYmVsS2V5IH19XCJcbiAgPjwvbGFiZWw+XG4gIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiICpuZ0lmPVwiY29udHJvbFwiPlxuICAgIDxrZW5kby1tdWx0aXNlbGVjdFxuICAgICAgaWQ9XCJ7eyAnXycgKyBmaWVsZE5hbWUgfX1cIlxuICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgW2RhdGFdPVwiZGF0YVwiXG4gICAgICBbYXV0b0Nsb3NlXT1cImZhbHNlXCJcbiAgICAgIFt0ZXh0RmllbGRdPVwidGV4dEZpZWxkXCJcbiAgICAgIFt2YWx1ZUZpZWxkXT1cInZhbHVlRmllbGRcIlxuICAgICAgW3ZhbHVlUHJpbWl0aXZlXT1cInRydWVcIlxuICAgID5cbiAgICA8L2tlbmRvLW11bHRpc2VsZWN0PlxuXG4gICAgPGRpdiBjbGFzcz1cImJnLWRhbmdlclwiICpuZ0lmPVwiY29udHJvbC5pbnZhbGlkICYmIGNvbnRyb2wudG91Y2hlZFwiPlxuICAgICAgPHNwYW4gKm5nSWY9XCJjb250cm9sLmVycm9yc1sncmVxdWlyZWQnXVwiPnt7XG4gICAgICAgICdSZXF1aXJlZCcgfCB0cmFuc2xhdGUgOiB7IHBhcmFtMDogbGFiZWxLZXkgfCB0cmFuc2xhdGUgfVxuICAgICAgfX08L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cImNvbnRyb2wuZXJyb3JzWydzZXJ2ZXJFcnJvck1zZyddXCI+e3tcbiAgICAgICAgY29udHJvbC5lcnJvcnNbJ3NlcnZlckVycm9yTXNnJ11cbiAgICAgIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtbXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2VuZG8vc3JjL2xpYi93aWRnZXRzL2VudGl0eS1lZGl0L2ZpZWxkLW11bHRpc2VsZWN0L2ZpZWxkLW11bHRpc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlbmRvL3NyYy9saWIvd2lkZ2V0cy9lbnRpdHktZWRpdC9maWVsZC1tdWx0aXNlbGVjdC9maWVsZC1tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBeUIsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixHQUVuQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7O0FBbUJ0RixNQUFNLE9BQU8seUJBQ1gsU0FBUSxjQUF3QjtJQVloQyxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELFlBQ1MsTUFBMEIsRUFDMUIsSUFBZ0I7UUFFdkIsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFIakIsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFDMUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQVhoQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDMUIsWUFBTyxHQUFvQixJQUFJLFlBQVksRUFBSyxDQUFDO1FBRTNELFNBQUksR0FBc0IsRUFBRSxDQUFDO1FBVTNCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUM7UUFDMUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQztJQUM1QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDdkIsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDMUQsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQXVCO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFELENBQUM7SUFFTyxPQUFPO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7O3NIQS9DVSx5QkFBeUI7MEdBQXpCLHlCQUF5Qiw4U0MxQnRDLDAzQkE2QkEscXJDRFZpQjtRQUNiO1lBQ0UsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixXQUFXLEVBQUUsa0JBQWtCO1NBQ2hDO0tBQ0Y7MkZBRVUseUJBQXlCO2tCQVhyQyxTQUFTOytCQUNFLG1CQUFtQixpQkFHZDt3QkFDYjs0QkFDRSxPQUFPLEVBQUUsZ0JBQWdCOzRCQUN6QixXQUFXLEVBQUUsa0JBQWtCO3lCQUNoQztxQkFDRjtrSUFLUSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBFbGVtZW50UmVmLCBPbkNoYW5nZXMsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sQ29udGFpbmVyLFxuICBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gIEFic3RyYWN0Q29udHJvbCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tcG9zaXRlRmlsdGVyRGVzY3JpcHRvciB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1kYXRhLXF1ZXJ5JztcbmltcG9ydCB7IEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYW5ndWxhci9mb3Jtcy93aWRnZXRzL2ZpZWxkL2ZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZGVudGlmaWVkTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9hbmd1bGFyL21vZGVscy9JZGVudGlmaWVkTW9kZWwnO1xuaW1wb3J0IHsgTmFtZWRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2FuZ3VsYXIvbW9kZWxzL05hbWVkTW9kZWwnO1xuaW1wb3J0IHsgSUVudGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9JRW50aXR5U2VydmljZSc7XG5pbXBvcnQgeyBQcmV2ZW50YWJsZUV2ZW50IH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItZHJvcGRvd25zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFBhZ2UgfSBmcm9tICdwcm9qZWN0cy9rZW5kby9zcmMvbGliL21vZGVscy9QYWdlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZmllbGQtbXVsdGlzZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmllbGQtbXVsdGlzZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWVsZC1tdWx0aXNlbGVjdC5jb21wb25lbnQuY3NzJ10sXG4gIHZpZXdQcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLFxuICAgICAgdXNlRXhpc3Rpbmc6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWVsZE11bHRpU2VsZWN0Q29tcG9uZW50PFQ+XG4gIGV4dGVuZHMgRmllbGRDb21wb25lbnQ8c3RyaW5nW10+XG4gIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgc2VydmljZTogSUVudGl0eVNlcnZpY2U8TmFtZWRNb2RlbD47XG4gIEBJbnB1dCgpIHJlYmluZDogc3RyaW5nO1xuICBASW5wdXQoKSBmaWx0ZXI/OiBDb21wb3NpdGVGaWx0ZXJEZXNjcmlwdG9yO1xuICBASW5wdXQoKSB0ZXh0RmllbGQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHZhbHVlRmllbGQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNpbmdsZU1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgYXV0b0Nsb3NlOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBjaGFuZ2VkOiBFdmVudEVtaXR0ZXI8VD4gPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG5cbiAgZGF0YTogSWRlbnRpZmllZE1vZGVsW10gPSBbXTtcbiAgZ2V0IGNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuZm9ybS5nZXQodGhpcy5maWVsZE5hbWUpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHBhcmVudDogRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIHB1YmxpYyBlcmVmOiBFbGVtZW50UmVmLFxuICApIHtcbiAgICBzdXBlcihwYXJlbnQsIGVyZWYsIFtdKTtcbiAgICB0aGlzLnRleHRGaWVsZCA9IHRoaXMudGV4dEZpZWxkID8/ICduYW1lJztcbiAgICB0aGlzLnZhbHVlRmllbGQgPSB0aGlzLnZhbHVlRmllbGQgPz8gJ2lkJztcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0RGF0YSgpLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5kYXRhID0gZGF0YS5kYXRhO1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKFxuICAgICAgICB0aGlzLmNvbnRyb2wudmFsdWUuZmlsdGVyKFxuICAgICAgICAgICh4OiBzdHJpbmcpID0+IHRoaXMuZGF0YS5maWx0ZXIoKGQpID0+IGQuaWQgPT09IHgpLmxlbmd0aFxuICAgICAgICApXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgb25Qb3B1cE9wZW4oZXZlbnQ6IFByZXZlbnRhYmxlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2luZ2xlTW9kZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY29udHJvbC52YWx1ZS5sZW5ndGggPiAwICYmIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBwcml2YXRlIGdldERhdGEoKTogT2JzZXJ2YWJsZTxQYWdlPE5hbWVkTW9kZWw+PiB7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5nZXRQYWdlKHRoaXMuZmlsdGVyID8geyBmaWx0ZXI6IHRoaXMuZmlsdGVyIH0gOiB7fSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gIDxsYWJlbFxuICAgIGZvcj1cInt7ICdfJyArIGZpZWxkTmFtZSB9fVwiXG4gICAgY2xhc3M9XCJjb2wtbWQtMyBjb250cm9sLWxhYmVsXCJcbiAgICB0cmFuc2xhdGU9XCJ7eyBsYWJlbEtleSB9fVwiXG4gID48L2xhYmVsPlxuICA8ZGl2ICpuZ0lmPVwiY29udHJvbFwiIGNsYXNzPVwiY29sLW1kLTlcIj5cbiAgICA8a2VuZG8tbXVsdGlzZWxlY3RcbiAgICAgIGlkPVwie3sgJ18nICsgZmllbGROYW1lIH19XCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgIFtkYXRhXT1cImRhdGFcIlxuICAgICAgW2F1dG9DbG9zZV09XCJhdXRvQ2xvc2VcIlxuICAgICAgW3RleHRGaWVsZF09XCJ0ZXh0RmllbGRcIlxuICAgICAgW3ZhbHVlRmllbGRdPVwidmFsdWVGaWVsZFwiXG4gICAgICBbdmFsdWVQcmltaXRpdmVdPVwidHJ1ZVwiXG4gICAgICAob3Blbik9XCJvblBvcHVwT3BlbigkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9rZW5kby1tdWx0aXNlbGVjdD5cblxuICAgIDxkaXYgKm5nSWY9XCJjb250cm9sLmludmFsaWQgJiYgY29udHJvbC50b3VjaGVkXCIgY2xhc3M9XCJiZy1kYW5nZXJcIj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiY29udHJvbC5lcnJvcnNbJ3JlcXVpcmVkJ11cIj57e1xuICAgICAgICAnUmVxdWlyZWQnIHwgdHJhbnNsYXRlIDogeyBwYXJhbTA6IGxhYmVsS2V5IHwgdHJhbnNsYXRlIH1cbiAgICAgIH19PC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJjb250cm9sLmVycm9yc1snc2VydmVyRXJyb3JNc2cnXVwiPnt7XG4gICAgICAgIGNvbnRyb2wuZXJyb3JzWydzZXJ2ZXJFcnJvck1zZyddXG4gICAgICB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -2444,6 +2444,9 @@ class FieldMultiSelectComponent extends FieldComponent {
2444
2444
  super(parent, eref, []);
2445
2445
  this.parent = parent;
2446
2446
  this.eref = eref;
2447
+ this.singleMode = false;
2448
+ this.autoClose = false;
2449
+ this.changed = new EventEmitter();
2447
2450
  this.data = [];
2448
2451
  this.textField = (_a = this.textField) !== null && _a !== void 0 ? _a : 'name';
2449
2452
  this.valueField = (_b = this.valueField) !== null && _b !== void 0 ? _b : 'id';
@@ -2454,19 +2457,31 @@ class FieldMultiSelectComponent extends FieldComponent {
2454
2457
  this.control.setValue(this.control.value.filter((x) => this.data.filter((d) => d.id === x).length));
2455
2458
  });
2456
2459
  }
2460
+ onPopupOpen(event) {
2461
+ if (!this.singleMode) {
2462
+ return;
2463
+ }
2464
+ this.control.value.length > 0 && event.preventDefault();
2465
+ }
2457
2466
  getData() {
2458
2467
  return this.service.getPage(this.filter ? { filter: this.filter } : {});
2459
2468
  }
2460
2469
  }
2461
2470
  FieldMultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: FieldMultiSelectComponent, deps: [{ token: i1$4.FormGroupDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
2462
- FieldMultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: FieldMultiSelectComponent, selector: "field-multiselect", inputs: { service: "service", rebind: "rebind", filter: "filter", textField: "textField", valueField: "valueField" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\">\n <label\n for=\"{{ '_' + fieldName }}\"\n class=\"col-md-3 control-label\"\n translate=\"{{ labelKey }}\"\n ></label>\n <div class=\"col-md-9\" *ngIf=\"control\">\n <kendo-multiselect\n id=\"{{ '_' + fieldName }}\"\n [formControl]=\"control\"\n [data]=\"data\"\n [autoClose]=\"false\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [valuePrimitive]=\"true\"\n >\n </kendo-multiselect>\n\n <div class=\"bg-danger\" *ngIf=\"control.invalid && control.touched\">\n <span *ngIf=\"control.errors['required']\">{{\n 'Required' | translate : { param0: labelKey | translate }\n }}</span>\n <span *ngIf=\"control.errors['serverErrorMsg']\">{{\n control.errors['serverErrorMsg']\n }}</span>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MultiSelectComponent, selector: "kendo-multiselect", inputs: ["focusableId", "autoClose", "loading", "data", "value", "valueField", "textField", "tabindex", "tabIndex", "size", "rounded", "fillMode", "placeholder", "disabled", "itemDisabled", "checkboxes", "readonly", "filterable", "virtual", "popupSettings", "listHeight", "valuePrimitive", "clearButton", "tagMapper", "allowCustom", "valueNormalizer"], outputs: ["filterChange", "valueChange", "open", "opened", "close", "closed", "focus", "blur", "removeTag"], exportAs: ["kendoMultiSelect"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], viewProviders: [
2463
- { provide: ControlContainer, useExisting: FormGroupDirective },
2471
+ FieldMultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: FieldMultiSelectComponent, selector: "field-multiselect", inputs: { service: "service", rebind: "rebind", filter: "filter", textField: "textField", valueField: "valueField", singleMode: "singleMode", autoClose: "autoClose" }, outputs: { changed: "changed" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\">\n <label\n for=\"{{ '_' + fieldName }}\"\n class=\"col-md-3 control-label\"\n translate=\"{{ labelKey }}\"\n ></label>\n <div *ngIf=\"control\" class=\"col-md-9\">\n <kendo-multiselect\n id=\"{{ '_' + fieldName }}\"\n [formControl]=\"control\"\n [data]=\"data\"\n [autoClose]=\"autoClose\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [valuePrimitive]=\"true\"\n (open)=\"onPopupOpen($event)\"\n >\n </kendo-multiselect>\n\n <div *ngIf=\"control.invalid && control.touched\" class=\"bg-danger\">\n <span *ngIf=\"control.errors['required']\">{{\n 'Required' | translate : { param0: labelKey | translate }\n }}</span>\n <span *ngIf=\"control.errors['serverErrorMsg']\">{{\n control.errors['serverErrorMsg']\n }}</span>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MultiSelectComponent, selector: "kendo-multiselect", inputs: ["focusableId", "autoClose", "loading", "data", "value", "valueField", "textField", "tabindex", "tabIndex", "size", "rounded", "fillMode", "placeholder", "disabled", "itemDisabled", "checkboxes", "readonly", "filterable", "virtual", "popupSettings", "listHeight", "valuePrimitive", "clearButton", "tagMapper", "allowCustom", "valueNormalizer"], outputs: ["filterChange", "valueChange", "open", "opened", "close", "closed", "focus", "blur", "removeTag"], exportAs: ["kendoMultiSelect"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], viewProviders: [
2472
+ {
2473
+ provide: ControlContainer,
2474
+ useExisting: FormGroupDirective,
2475
+ },
2464
2476
  ] });
2465
2477
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: FieldMultiSelectComponent, decorators: [{
2466
2478
  type: Component,
2467
2479
  args: [{ selector: 'field-multiselect', viewProviders: [
2468
- { provide: ControlContainer, useExisting: FormGroupDirective },
2469
- ], template: "<div class=\"form-group\">\n <label\n for=\"{{ '_' + fieldName }}\"\n class=\"col-md-3 control-label\"\n translate=\"{{ labelKey }}\"\n ></label>\n <div class=\"col-md-9\" *ngIf=\"control\">\n <kendo-multiselect\n id=\"{{ '_' + fieldName }}\"\n [formControl]=\"control\"\n [data]=\"data\"\n [autoClose]=\"false\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [valuePrimitive]=\"true\"\n >\n </kendo-multiselect>\n\n <div class=\"bg-danger\" *ngIf=\"control.invalid && control.touched\">\n <span *ngIf=\"control.errors['required']\">{{\n 'Required' | translate : { param0: labelKey | translate }\n }}</span>\n <span *ngIf=\"control.errors['serverErrorMsg']\">{{\n control.errors['serverErrorMsg']\n }}</span>\n </div>\n </div>\n</div>\n" }]
2480
+ {
2481
+ provide: ControlContainer,
2482
+ useExisting: FormGroupDirective,
2483
+ },
2484
+ ], template: "<div class=\"form-group\">\n <label\n for=\"{{ '_' + fieldName }}\"\n class=\"col-md-3 control-label\"\n translate=\"{{ labelKey }}\"\n ></label>\n <div *ngIf=\"control\" class=\"col-md-9\">\n <kendo-multiselect\n id=\"{{ '_' + fieldName }}\"\n [formControl]=\"control\"\n [data]=\"data\"\n [autoClose]=\"autoClose\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [valuePrimitive]=\"true\"\n (open)=\"onPopupOpen($event)\"\n >\n </kendo-multiselect>\n\n <div *ngIf=\"control.invalid && control.touched\" class=\"bg-danger\">\n <span *ngIf=\"control.errors['required']\">{{\n 'Required' | translate : { param0: labelKey | translate }\n }}</span>\n <span *ngIf=\"control.errors['serverErrorMsg']\">{{\n control.errors['serverErrorMsg']\n }}</span>\n </div>\n </div>\n</div>\n" }]
2470
2485
  }], ctorParameters: function () { return [{ type: i1$4.FormGroupDirective }, { type: i0.ElementRef }]; }, propDecorators: { service: [{
2471
2486
  type: Input
2472
2487
  }], rebind: [{
@@ -2477,6 +2492,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImpor
2477
2492
  type: Input
2478
2493
  }], valueField: [{
2479
2494
  type: Input
2495
+ }], singleMode: [{
2496
+ type: Input
2497
+ }], autoClose: [{
2498
+ type: Input
2499
+ }], changed: [{
2500
+ type: Output
2480
2501
  }] } });
2481
2502
 
2482
2503
  const All = 'All';