@indigina/kendo 1.1.9 → 1.1.12
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/assets/styles/Site.css +12 -0
- package/esm2020/lib/angular/forms/widgets/field/field-input/number-input.component.mjs +42 -12
- package/esm2020/lib/widgets/entity-list/field-dropdownlist/field-dropdownlist.component.mjs +7 -5
- package/fesm2015/indigina-kendo.mjs +46 -14
- package/fesm2015/indigina-kendo.mjs.map +1 -1
- package/fesm2020/indigina-kendo.mjs +46 -14
- package/fesm2020/indigina-kendo.mjs.map +1 -1
- package/lib/angular/forms/widgets/field/field-input/number-input.component.d.ts +1 -0
- package/lib/widgets/entity-list/field-dropdownlist/field-dropdownlist.component.d.ts +3 -1
- package/package.json +1 -1
package/assets/styles/Site.css
CHANGED
|
@@ -2345,3 +2345,15 @@ body.mini-navbar .navbar-default .nav .nav-second-level li a span {
|
|
|
2345
2345
|
.k-toolbar.k-grid-toolbar .k-button {
|
|
2346
2346
|
padding: 4px 8px;
|
|
2347
2347
|
}
|
|
2348
|
+
|
|
2349
|
+
#preloader {
|
|
2350
|
+
font-size: 20em;
|
|
2351
|
+
color: #676a6c;
|
|
2352
|
+
position: absolute;
|
|
2353
|
+
top: 50%;
|
|
2354
|
+
left: 50%;
|
|
2355
|
+
-moz-transform: translateX(-50%) translateY(-50%);
|
|
2356
|
+
-webkit-transform: translateX(-50%) translateY(-50%);
|
|
2357
|
+
transform: translateX(-50%) translateY(-50%);
|
|
2358
|
+
z-index: 1001;
|
|
2359
|
+
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { ControlContainer, FormGroupDirective } from '@angular/forms';
|
|
2
|
+
import { ControlContainer, FormGroupDirective, } from '@angular/forms';
|
|
3
3
|
import { FieldInputComponent } from './field-input.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/forms";
|
|
6
6
|
import * as i2 from "@ngx-translate/core";
|
|
7
7
|
import * as i3 from "@angular/common";
|
|
8
8
|
const defaultValue = null;
|
|
9
|
+
const minusSign = '-';
|
|
10
|
+
const emptyString = '';
|
|
9
11
|
export class NumberInputComponent extends FieldInputComponent {
|
|
10
12
|
constructor(parent, eref) {
|
|
11
13
|
super(parent, eref);
|
|
@@ -17,22 +19,50 @@ export class NumberInputComponent extends FieldInputComponent {
|
|
|
17
19
|
ngAfterContentInit() {
|
|
18
20
|
const control = this.parent.form.get(this.fieldName);
|
|
19
21
|
control.setValue(this.presetDefaultValue(control.value));
|
|
22
|
+
control.setValidators(this.isNaNValidator());
|
|
20
23
|
control.valueChanges.subscribe((value) => {
|
|
21
|
-
value
|
|
22
|
-
|
|
23
|
-
value
|
|
24
|
-
|
|
25
|
-
this.cachedValue =
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
if (((typeof value === 'undefined' || value?.toString() === emptyString) &&
|
|
25
|
+
this.cachedValue !== defaultValue) ||
|
|
26
|
+
(this.presetDefaultValue(value) === defaultValue &&
|
|
27
|
+
control.value !== defaultValue)) {
|
|
28
|
+
this.cachedValue = defaultValue;
|
|
29
|
+
control.setValue(this.cachedValue);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (value && value.toString().includes(minusSign)) {
|
|
33
|
+
let newValue = !!this.isPositive
|
|
34
|
+
? value.replaceAll(minusSign, emptyString)
|
|
35
|
+
: value.slice(0, 1) + value.replaceAll(minusSign, emptyString);
|
|
36
|
+
this.cachedValue = !isNaN(newValue + 1) ? newValue : this.cachedValue;
|
|
37
|
+
if (this.cachedValue !== value) {
|
|
38
|
+
control.setValue(this.cachedValue);
|
|
39
|
+
}
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (isNaN(value)) {
|
|
43
|
+
this.cachedValue !== defaultValue
|
|
44
|
+
? control.setValue(this.cachedValue)
|
|
45
|
+
: control.setValue(defaultValue);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
this.cachedValue = +value;
|
|
49
|
+
if (this.cachedValue !== value &&
|
|
50
|
+
value !== null &&
|
|
51
|
+
!value.toString().endsWith('.')) {
|
|
30
52
|
control.setValue(this.cachedValue);
|
|
31
53
|
}
|
|
32
54
|
});
|
|
33
55
|
}
|
|
34
56
|
presetDefaultValue(value) {
|
|
35
|
-
return value
|
|
57
|
+
return value?.toString().replace(/\s/g, emptyString) === emptyString
|
|
58
|
+
? defaultValue
|
|
59
|
+
: value;
|
|
60
|
+
}
|
|
61
|
+
isNaNValidator() {
|
|
62
|
+
return (control) => {
|
|
63
|
+
const notValid = isNaN(control.value);
|
|
64
|
+
return notValid ? { forbiddenName: { value: control.value } } : null;
|
|
65
|
+
};
|
|
36
66
|
}
|
|
37
67
|
}
|
|
38
68
|
NumberInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: NumberInputComponent, deps: [{ token: i1.FormGroupDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -47,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
|
47
77
|
}], ctorParameters: function () { return [{ type: i1.FormGroupDirective }, { type: i0.ElementRef }]; }, propDecorators: { isPositive: [{
|
|
48
78
|
type: Input
|
|
49
79
|
}] } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlbmRvL3NyYy9saWIvYW5ndWxhci9mb3Jtcy93aWRnZXRzL2ZpZWxkL2ZpZWxkLWlucHV0L251bWJlci1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZW5kby9zcmMvbGliL2FuZ3VsYXIvZm9ybXMvd2lkZ2V0cy9maWVsZC9maWVsZC1pbnB1dC9maWVsZC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLGtCQUFrQixHQUduQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7OztBQUU5RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUM7QUFDMUIsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDO0FBQ3RCLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztBQVN2QixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsbUJBQW1CO0lBQzNELFlBQW1CLE1BQTBCLEVBQVMsSUFBZ0I7UUFDcEUsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQURILFdBQU0sR0FBTixNQUFNLENBQW9CO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUs3RCxlQUFVLEdBQVksS0FBSyxDQUFDO1FBSG5DLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFNRCxrQkFBa0I7UUFDaEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxT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QUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN2RSxDQUFDLENBQUM7SUFDSixDQUFDOztpSEF0RVUsb0JBQW9CO3FHQUFwQixvQkFBb0IsaUhDckJqQyw0bkNBcUNBLDZ1QkRwQmlCO1FBQ2IsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFO0tBQy9EOzJGQUVVLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxjQUFjLGlCQUVUO3dCQUNiLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRTtxQkFDL0Q7a0lBUVEsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbENvbnRhaW5lcixcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3JGbixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmllbGRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZmllbGQtaW5wdXQuY29tcG9uZW50JztcblxuY29uc3QgZGVmYXVsdFZhbHVlID0gbnVsbDtcbmNvbnN0IG1pbnVzU2lnbiA9ICctJztcbmNvbnN0IGVtcHR5U3RyaW5nID0gJyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ251bWJlci1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWVsZC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHZpZXdQcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBGb3JtR3JvdXBEaXJlY3RpdmUgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnVtYmVySW5wdXRDb21wb25lbnQgZXh0ZW5kcyBGaWVsZElucHV0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHVibGljIHBhcmVudDogRm9ybUdyb3VwRGlyZWN0aXZlLCBwdWJsaWMgZXJlZjogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKHBhcmVudCwgZXJlZik7XG4gICAgdGhpcy50eXBlID0gJ3RleHQnO1xuICB9XG5cbiAgQElucHV0KCkgaXNQb3NpdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgY2FjaGVkVmFsdWU6IG51bWJlciB8IHN0cmluZztcblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMucGFyZW50LmZvcm0uZ2V0KHRoaXMuZmllbGROYW1lKTtcbiAgICBjb250cm9sLnNldFZhbHVlKHRoaXMucHJlc2V0RGVmYXVsdFZhbHVlKGNvbnRyb2wudmFsdWUpKTtcbiAgICBjb250cm9sLnNldFZhbGlkYXRvcnModGhpcy5pc05hTlZhbGlkYXRvcigpKTtcbiAgICBjb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgICgodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyB8fCB2YWx1ZT8udG9TdHJpbmcoKSA9PT0gZW1wdHlTdHJpbmcpICYmXG4gICAgICAgICAgdGhpcy5jYWNoZWRWYWx1ZSAhPT0gZGVmYXVsdFZhbHVlKSB8fFxuICAgICAgICAodGhpcy5wcmVzZXREZWZhdWx0VmFsdWUodmFsdWUpID09PSBkZWZhdWx0VmFsdWUgJiZcbiAgICAgICAgICBjb250cm9sLnZhbHVlICE9PSBkZWZhdWx0VmFsdWUpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5jYWNoZWRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgY29udHJvbC5zZXRWYWx1ZSh0aGlzLmNhY2hlZFZhbHVlKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS50b1N0cmluZygpLmluY2x1ZGVzKG1pbnVzU2lnbikpIHtcbiAgICAgICAgbGV0IG5ld1ZhbHVlID0gISF0aGlzLmlzUG9zaXRpdmVcbiAgICAgICAgICA/IHZhbHVlLnJlcGxhY2VBbGwobWludXNTaWduLCBlbXB0eVN0cmluZylcbiAgICAgICAgICA6IHZhbHVlLnNsaWNlKDAsIDEpICsgdmFsdWUucmVwbGFjZUFsbChtaW51c1NpZ24sIGVtcHR5U3RyaW5nKTtcbiAgICAgICAgdGhpcy5jYWNoZWRWYWx1ZSA9ICFpc05hTihuZXdWYWx1ZSArIDEpID8gbmV3VmFsdWUgOiB0aGlzLmNhY2hlZFZhbHVlO1xuICAgICAgICBpZiAodGhpcy5jYWNoZWRWYWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHRoaXMuY2FjaGVkVmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgICAgIHRoaXMuY2FjaGVkVmFsdWUgIT09IGRlZmF1bHRWYWx1ZVxuICAgICAgICAgID8gY29udHJvbC5zZXRWYWx1ZSh0aGlzLmNhY2hlZFZhbHVlKVxuICAgICAgICAgIDogY29udHJvbC5zZXRWYWx1ZShkZWZhdWx0VmFsdWUpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jYWNoZWRWYWx1ZSA9ICt2YWx1ZTtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5jYWNoZWRWYWx1ZSAhPT0gdmFsdWUgJiZcbiAgICAgICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgIXZhbHVlLnRvU3RyaW5nKCkuZW5kc1dpdGgoJy4nKVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodGhpcy5jYWNoZWRWYWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHByZXNldERlZmF1bHRWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKTogbnVtYmVyIHwgc3RyaW5nIHtcbiAgICByZXR1cm4gdmFsdWU/LnRvU3RyaW5nKCkucmVwbGFjZSgvXFxzL2csIGVtcHR5U3RyaW5nKSA9PT0gZW1wdHlTdHJpbmdcbiAgICAgID8gZGVmYXVsdFZhbHVlXG4gICAgICA6IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBpc05hTlZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCBub3RWYWxpZCA9IGlzTmFOKGNvbnRyb2wudmFsdWUpO1xuXG4gICAgICByZXR1cm4gbm90VmFsaWQgPyB7IGZvcmJpZGRlbk5hbWU6IHsgdmFsdWU6IGNvbnRyb2wudmFsdWUgfSB9IDogbnVsbDtcbiAgICB9O1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICA8bGFiZWxcbiAgICBmb3I9XCJ7eyBpZCB9fVwiXG4gICAgY2xhc3M9XCJjb2wtbWQtMyBjb250cm9sLWxhYmVsXCJcbiAgICB0cmFuc2xhdGU9XCJ7eyBsYWJlbEtleSB9fVwiXG4gID48L2xhYmVsPlxuICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cbiAgICA8aW5wdXRcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGROYW1lXCJcbiAgICAgIGlkPVwie3sgaWQgfX1cIlxuICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICBjbGFzcz1cImstaW5wdXRcIlxuICAgICAgYXV0b2NvbXBsZXRlPVwibmV3LXt7IGZpZWxkTmFtZSB9fVwiXG4gICAgICBwbGFjZWhvbGRlcj1cInt7IGxhYmVsS2V5IHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkID8gZGlzYWJsZWRLZXkgOiBudWxsXCJcbiAgICAvPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImJnLWRhbmdlclwiXG4gICAgICAqbmdJZj1cIlxuICAgICAgICBwYXJlbnQuZm9ybS5nZXQoZmllbGROYW1lKSAmJlxuICAgICAgICBwYXJlbnQuZm9ybS5nZXQoZmllbGROYW1lKS5pbnZhbGlkICYmXG4gICAgICAgIHBhcmVudC5mb3JtLmdldChmaWVsZE5hbWUpLnRvdWNoZWRcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPHNwYW4gKm5nSWY9XCJwYXJlbnQuZm9ybS5nZXQoZmllbGROYW1lKS5lcnJvcnNbJ3JlcXVpcmVkJ11cIj57e1xuICAgICAgICAnUmVxdWlyZWQnIHwgdHJhbnNsYXRlOiB7IHBhcmFtMDogbGFiZWxLZXkgfCB0cmFuc2xhdGUgfVxuICAgICAgfX08L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cInBhcmVudC5mb3JtLmdldChmaWVsZE5hbWUpLmVycm9yc1snZW1haWwnXVwiPnt7XG4gICAgICAgICdWYWxpZEVtYWlsJyB8IHRyYW5zbGF0ZVxuICAgICAgfX08L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cInBhcmVudC5mb3JtLmdldChmaWVsZE5hbWUpLmVycm9yc1snc2VydmVyRXJyb3JNc2cnXVwiPnt7XG4gICAgICAgIHBhcmVudC5mb3JtLmdldChmaWVsZE5hbWUpLmVycm9yc1snc2VydmVyRXJyb3JNc2cnXVxuICAgICAgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -10,13 +10,13 @@ export class FieldDropdownlistComponent {
|
|
|
10
10
|
}
|
|
11
11
|
async ngOnInit() {
|
|
12
12
|
this.defaultItem = { id: null, name: this.translate.instant(All) };
|
|
13
|
-
|
|
14
|
-
this.translate.onLangChange.subscribe((
|
|
13
|
+
this.getData();
|
|
14
|
+
this.translate.onLangChange.subscribe((_event) => {
|
|
15
15
|
this.defaultItem = { id: null, name: this.translate.instant(All) };
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
getData() {
|
|
19
|
-
this.service.getPage({}).subscribe((data) => {
|
|
19
|
+
this.service.getPage({ sort: this.sort }).subscribe((data) => {
|
|
20
20
|
this.data = data.data;
|
|
21
21
|
if (this.initialSelectedId) {
|
|
22
22
|
const selectedItem = this.data.find((x) => x.id === this.initialSelectedId);
|
|
@@ -34,7 +34,7 @@ export class FieldDropdownlistComponent {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
FieldDropdownlistComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: FieldDropdownlistComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
37
|
-
FieldDropdownlistComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: FieldDropdownlistComponent, selector: "field-dropdownlist", inputs: { service: "service", label: "label" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "kendoDropDown", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<div class=\"header-selection-field\">\n <label\n for=\"{{ '_' + label }}\"\n class=\"title-field\"\n translate=\"{{ label }}\"\n ></label>\n <kendo-dropdownlist\n [data]=\"data\"\n textField=\"name\"\n valueField=\"id\"\n id=\"{{ '_' + label }}\"\n (valueChange)=\"onValueChange($event)\"\n [defaultItem]=\"defaultItem\"\n #inputElement\n >\n </kendo-dropdownlist>\n</div>\n", styles: [""], components: [{ type: i2.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["listHeight", "disabled", "readonly", "filterable", "ignoreCase", "delay", "tabindex", "id", "data", "value", "popupSettings", "itemDisabled", "virtual", "valuePrimitive", "tabIndex", "size", "rounded", "fillMode", "iconClass", "loading", "textField", "valueField", "defaultItem"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] });
|
|
37
|
+
FieldDropdownlistComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: FieldDropdownlistComponent, selector: "field-dropdownlist", inputs: { service: "service", label: "label", sort: "sort" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "kendoDropDown", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<div class=\"header-selection-field\">\n <label\n for=\"{{ '_' + label }}\"\n class=\"title-field\"\n translate=\"{{ label }}\"\n ></label>\n <kendo-dropdownlist\n [data]=\"data\"\n textField=\"name\"\n valueField=\"id\"\n id=\"{{ '_' + label }}\"\n (valueChange)=\"onValueChange($event)\"\n [defaultItem]=\"defaultItem\"\n #inputElement\n >\n </kendo-dropdownlist>\n</div>\n", styles: [""], components: [{ type: i2.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["listHeight", "disabled", "readonly", "filterable", "ignoreCase", "delay", "tabindex", "id", "data", "value", "popupSettings", "itemDisabled", "virtual", "valuePrimitive", "tabIndex", "size", "rounded", "fillMode", "iconClass", "loading", "textField", "valueField", "defaultItem"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] });
|
|
38
38
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: FieldDropdownlistComponent, decorators: [{
|
|
39
39
|
type: Component,
|
|
40
40
|
args: [{ selector: 'field-dropdownlist', template: "<div class=\"header-selection-field\">\n <label\n for=\"{{ '_' + label }}\"\n class=\"title-field\"\n translate=\"{{ label }}\"\n ></label>\n <kendo-dropdownlist\n [data]=\"data\"\n textField=\"name\"\n valueField=\"id\"\n id=\"{{ '_' + label }}\"\n (valueChange)=\"onValueChange($event)\"\n [defaultItem]=\"defaultItem\"\n #inputElement\n >\n </kendo-dropdownlist>\n</div>\n", styles: [""] }]
|
|
@@ -42,10 +42,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
|
42
42
|
type: Input
|
|
43
43
|
}], label: [{
|
|
44
44
|
type: Input
|
|
45
|
+
}], sort: [{
|
|
46
|
+
type: Input
|
|
45
47
|
}], valueChange: [{
|
|
46
48
|
type: Output
|
|
47
49
|
}], kendoDropDown: [{
|
|
48
50
|
type: ViewChild,
|
|
49
51
|
args: ['inputElement']
|
|
50
52
|
}] } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZHJvcGRvd25saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlbmRvL3NyYy9saWIvd2lkZ2V0cy9lbnRpdHktbGlzdC9maWVsZC1kcm9wZG93bmxpc3QvZmllbGQtZHJvcGRvd25saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlbmRvL3NyYy9saWIvd2lkZ2V0cy9lbnRpdHktbGlzdC9maWVsZC1kcm9wZG93bmxpc3QvZmllbGQtZHJvcGRvd25saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFFTixZQUFZLEVBQ1osU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDOzs7O0FBT3ZCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQztBQU9sQixNQUFNLE9BQU8sMEJBQTBCO0lBZ0JyQyxZQUFvQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQVIvQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7SUFRSyxDQUFDO0lBRW5ELEtBQUssQ0FBQyxRQUFRO1FBQ1osSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbkUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBdUIsRUFBRSxFQUFFO1lBQ2hFLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3JFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLE9BQU87UUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMzRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDdEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzFCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNqQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsaUJBQWlCLENBQ3ZDLENBQUM7Z0JBRUYsSUFBSSxZQUFZLEVBQUU7b0JBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUM3QzthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWlCO1FBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxjQUFjLENBQUMsRUFBVTtRQUM5QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7O3VIQS9DVSwwQkFBMEI7MkdBQTFCLDBCQUEwQixnUkNyQnZDLDRaQWlCQTsyRkRJYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0Usb0JBQW9CO3VHQU05QixPQUFPO3NCQUROLEtBQUs7Z0JBR04sS0FBSztzQkFESixLQUFLO2dCQUdOLElBQUk7c0JBREgsS0FBSztnQkFHTixXQUFXO3NCQURWLE1BQU07Z0JBR0MsYUFBYTtzQkFEcEIsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBPbkluaXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERyb3BEb3duTGlzdENvbXBvbmVudCB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWRyb3Bkb3ducyc7XG5pbXBvcnQgeyBJRW50aXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL0lFbnRpdHlTZXJ2aWNlJztcbmltcG9ydCB7IExhbmdDaGFuZ2VFdmVudCwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTmFtZWRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2FuZ3VsYXIvbW9kZWxzL05hbWVkTW9kZWwnO1xuaW1wb3J0IHsgU29ydERlc2NyaXB0b3IgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tZGF0YS1xdWVyeSc7XG5cbmNvbnN0IEFsbCA9ICdBbGwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmaWVsZC1kcm9wZG93bmxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmllbGQtZHJvcGRvd25saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmllbGQtZHJvcGRvd25saXN0LmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRmllbGREcm9wZG93bmxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICBzZXJ2aWNlOiBJRW50aXR5U2VydmljZTxOYW1lZE1vZGVsPjtcbiAgQElucHV0KClcbiAgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KClcbiAgc29ydD86IFNvcnREZXNjcmlwdG9yW107XG4gIEBPdXRwdXQoKVxuICB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TmFtZWRNb2RlbD4oKTtcbiAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50JylcbiAgcHJpdmF0ZSBrZW5kb0Ryb3BEb3duOiBEcm9wRG93bkxpc3RDb21wb25lbnQ7XG4gIHByaXZhdGUgaW5pdGlhbFNlbGVjdGVkSWQ6IHN0cmluZztcblxuICBwdWJsaWMgZGVmYXVsdEl0ZW06IE5hbWVkTW9kZWw7XG4gIHB1YmxpYyBkYXRhOiBOYW1lZE1vZGVsW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5kZWZhdWx0SXRlbSA9IHsgaWQ6IG51bGwsIG5hbWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoQWxsKSB9O1xuICAgIHRoaXMuZ2V0RGF0YSgpO1xuICAgIHRoaXMudHJhbnNsYXRlLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoKF9ldmVudDogTGFuZ0NoYW5nZUV2ZW50KSA9PiB7XG4gICAgICB0aGlzLmRlZmF1bHRJdGVtID0geyBpZDogbnVsbCwgbmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChBbGwpIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldERhdGEoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmdldFBhZ2UoeyBzb3J0OiB0aGlzLnNvcnQgfSkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLmRhdGEgPSBkYXRhLmRhdGE7XG4gICAgICBpZiAodGhpcy5pbml0aWFsU2VsZWN0ZWRJZCkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB0aGlzLmRhdGEuZmluZChcbiAgICAgICAgICAoeCkgPT4geC5pZCA9PT0gdGhpcy5pbml0aWFsU2VsZWN0ZWRJZFxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChzZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICB0aGlzLmtlbmRvRHJvcERvd24ud3JpdGVWYWx1ZShzZWxlY3RlZEl0ZW0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBvblZhbHVlQ2hhbmdlKGV2ZW50OiBOYW1lZE1vZGVsKSB7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0U2VsZWN0ZWRJZChpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsU2VsZWN0ZWRJZCA9IGlkO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaGVhZGVyLXNlbGVjdGlvbi1maWVsZFwiPlxuICA8bGFiZWxcbiAgICBmb3I9XCJ7eyAnXycgKyBsYWJlbCB9fVwiXG4gICAgY2xhc3M9XCJ0aXRsZS1maWVsZFwiXG4gICAgdHJhbnNsYXRlPVwie3sgbGFiZWwgfX1cIlxuICA+PC9sYWJlbD5cbiAgPGtlbmRvLWRyb3Bkb3dubGlzdFxuICAgIFtkYXRhXT1cImRhdGFcIlxuICAgIHRleHRGaWVsZD1cIm5hbWVcIlxuICAgIHZhbHVlRmllbGQ9XCJpZFwiXG4gICAgaWQ9XCJ7eyAnXycgKyBsYWJlbCB9fVwiXG4gICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2RlZmF1bHRJdGVtXT1cImRlZmF1bHRJdGVtXCJcbiAgICAjaW5wdXRFbGVtZW50XG4gID5cbiAgPC9rZW5kby1kcm9wZG93bmxpc3Q+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -175,6 +175,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
|
175
175
|
}] } });
|
|
176
176
|
|
|
177
177
|
const defaultValue = null;
|
|
178
|
+
const minusSign = '-';
|
|
179
|
+
const emptyString = '';
|
|
178
180
|
class NumberInputComponent extends FieldInputComponent {
|
|
179
181
|
constructor(parent, eref) {
|
|
180
182
|
super(parent, eref);
|
|
@@ -186,22 +188,50 @@ class NumberInputComponent extends FieldInputComponent {
|
|
|
186
188
|
ngAfterContentInit() {
|
|
187
189
|
const control = this.parent.form.get(this.fieldName);
|
|
188
190
|
control.setValue(this.presetDefaultValue(control.value));
|
|
191
|
+
control.setValidators(this.isNaNValidator());
|
|
189
192
|
control.valueChanges.subscribe((value) => {
|
|
190
|
-
value
|
|
191
|
-
|
|
192
|
-
value
|
|
193
|
-
|
|
194
|
-
this.cachedValue =
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
193
|
+
if (((typeof value === 'undefined' || (value === null || value === void 0 ? void 0 : value.toString()) === emptyString) &&
|
|
194
|
+
this.cachedValue !== defaultValue) ||
|
|
195
|
+
(this.presetDefaultValue(value) === defaultValue &&
|
|
196
|
+
control.value !== defaultValue)) {
|
|
197
|
+
this.cachedValue = defaultValue;
|
|
198
|
+
control.setValue(this.cachedValue);
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
if (value && value.toString().includes(minusSign)) {
|
|
202
|
+
let newValue = !!this.isPositive
|
|
203
|
+
? value.replaceAll(minusSign, emptyString)
|
|
204
|
+
: value.slice(0, 1) + value.replaceAll(minusSign, emptyString);
|
|
205
|
+
this.cachedValue = !isNaN(newValue + 1) ? newValue : this.cachedValue;
|
|
206
|
+
if (this.cachedValue !== value) {
|
|
207
|
+
control.setValue(this.cachedValue);
|
|
208
|
+
}
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
if (isNaN(value)) {
|
|
212
|
+
this.cachedValue !== defaultValue
|
|
213
|
+
? control.setValue(this.cachedValue)
|
|
214
|
+
: control.setValue(defaultValue);
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
this.cachedValue = +value;
|
|
218
|
+
if (this.cachedValue !== value &&
|
|
219
|
+
value !== null &&
|
|
220
|
+
!value.toString().endsWith('.')) {
|
|
199
221
|
control.setValue(this.cachedValue);
|
|
200
222
|
}
|
|
201
223
|
});
|
|
202
224
|
}
|
|
203
225
|
presetDefaultValue(value) {
|
|
204
|
-
return value
|
|
226
|
+
return (value === null || value === void 0 ? void 0 : value.toString().replace(/\s/g, emptyString)) === emptyString
|
|
227
|
+
? defaultValue
|
|
228
|
+
: value;
|
|
229
|
+
}
|
|
230
|
+
isNaNValidator() {
|
|
231
|
+
return (control) => {
|
|
232
|
+
const notValid = isNaN(control.value);
|
|
233
|
+
return notValid ? { forbiddenName: { value: control.value } } : null;
|
|
234
|
+
};
|
|
205
235
|
}
|
|
206
236
|
}
|
|
207
237
|
NumberInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: NumberInputComponent, deps: [{ token: i1$3.FormGroupDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -2421,14 +2451,14 @@ class FieldDropdownlistComponent {
|
|
|
2421
2451
|
ngOnInit() {
|
|
2422
2452
|
return __awaiter(this, void 0, void 0, function* () {
|
|
2423
2453
|
this.defaultItem = { id: null, name: this.translate.instant(All) };
|
|
2424
|
-
|
|
2425
|
-
this.translate.onLangChange.subscribe((
|
|
2454
|
+
this.getData();
|
|
2455
|
+
this.translate.onLangChange.subscribe((_event) => {
|
|
2426
2456
|
this.defaultItem = { id: null, name: this.translate.instant(All) };
|
|
2427
2457
|
});
|
|
2428
2458
|
});
|
|
2429
2459
|
}
|
|
2430
2460
|
getData() {
|
|
2431
|
-
this.service.getPage({}).subscribe((data) => {
|
|
2461
|
+
this.service.getPage({ sort: this.sort }).subscribe((data) => {
|
|
2432
2462
|
this.data = data.data;
|
|
2433
2463
|
if (this.initialSelectedId) {
|
|
2434
2464
|
const selectedItem = this.data.find((x) => x.id === this.initialSelectedId);
|
|
@@ -2446,7 +2476,7 @@ class FieldDropdownlistComponent {
|
|
|
2446
2476
|
}
|
|
2447
2477
|
}
|
|
2448
2478
|
FieldDropdownlistComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: FieldDropdownlistComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2449
|
-
FieldDropdownlistComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: FieldDropdownlistComponent, selector: "field-dropdownlist", inputs: { service: "service", label: "label" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "kendoDropDown", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<div class=\"header-selection-field\">\n <label\n for=\"{{ '_' + label }}\"\n class=\"title-field\"\n translate=\"{{ label }}\"\n ></label>\n <kendo-dropdownlist\n [data]=\"data\"\n textField=\"name\"\n valueField=\"id\"\n id=\"{{ '_' + label }}\"\n (valueChange)=\"onValueChange($event)\"\n [defaultItem]=\"defaultItem\"\n #inputElement\n >\n </kendo-dropdownlist>\n</div>\n", styles: [""], components: [{ type: i3$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["listHeight", "disabled", "readonly", "filterable", "ignoreCase", "delay", "tabindex", "id", "data", "value", "popupSettings", "itemDisabled", "virtual", "valuePrimitive", "tabIndex", "size", "rounded", "fillMode", "iconClass", "loading", "textField", "valueField", "defaultItem"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] });
|
|
2479
|
+
FieldDropdownlistComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: FieldDropdownlistComponent, selector: "field-dropdownlist", inputs: { service: "service", label: "label", sort: "sort" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "kendoDropDown", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<div class=\"header-selection-field\">\n <label\n for=\"{{ '_' + label }}\"\n class=\"title-field\"\n translate=\"{{ label }}\"\n ></label>\n <kendo-dropdownlist\n [data]=\"data\"\n textField=\"name\"\n valueField=\"id\"\n id=\"{{ '_' + label }}\"\n (valueChange)=\"onValueChange($event)\"\n [defaultItem]=\"defaultItem\"\n #inputElement\n >\n </kendo-dropdownlist>\n</div>\n", styles: [""], components: [{ type: i3$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["listHeight", "disabled", "readonly", "filterable", "ignoreCase", "delay", "tabindex", "id", "data", "value", "popupSettings", "itemDisabled", "virtual", "valuePrimitive", "tabIndex", "size", "rounded", "fillMode", "iconClass", "loading", "textField", "valueField", "defaultItem"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] });
|
|
2450
2480
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: FieldDropdownlistComponent, decorators: [{
|
|
2451
2481
|
type: Component,
|
|
2452
2482
|
args: [{ selector: 'field-dropdownlist', template: "<div class=\"header-selection-field\">\n <label\n for=\"{{ '_' + label }}\"\n class=\"title-field\"\n translate=\"{{ label }}\"\n ></label>\n <kendo-dropdownlist\n [data]=\"data\"\n textField=\"name\"\n valueField=\"id\"\n id=\"{{ '_' + label }}\"\n (valueChange)=\"onValueChange($event)\"\n [defaultItem]=\"defaultItem\"\n #inputElement\n >\n </kendo-dropdownlist>\n</div>\n", styles: [""] }]
|
|
@@ -2454,6 +2484,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
|
2454
2484
|
type: Input
|
|
2455
2485
|
}], label: [{
|
|
2456
2486
|
type: Input
|
|
2487
|
+
}], sort: [{
|
|
2488
|
+
type: Input
|
|
2457
2489
|
}], valueChange: [{
|
|
2458
2490
|
type: Output
|
|
2459
2491
|
}], kendoDropDown: [{
|