@indigina/kendo 1.2.21 → 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.
- package/esm2020/lib/widgets/entity-edit/field-multiselect/field-multiselect.component.mjs +27 -6
- package/fesm2015/indigina-kendo.mjs +25 -4
- package/fesm2015/indigina-kendo.mjs.map +1 -1
- package/fesm2020/indigina-kendo.mjs +25 -4
- package/fesm2020/indigina-kendo.mjs.map +1 -1
- package/lib/widgets/entity-edit/field-multiselect/field-multiselect.component.d.ts +9 -4
- package/package.json +1 -1
|
@@ -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\"
|
|
33
|
-
{
|
|
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
|
-
{
|
|
39
|
-
|
|
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,
|
|
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\"
|
|
2463
|
-
{
|
|
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
|
-
{
|
|
2469
|
-
|
|
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';
|