raise-common-lib 0.0.207 → 0.0.208

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.
Files changed (51) hide show
  1. package/README.md +57 -57
  2. package/bundles/raise-common-lib.umd.js +72 -3
  3. package/bundles/raise-common-lib.umd.js.map +1 -1
  4. package/bundles/raise-common-lib.umd.min.js +1 -1
  5. package/bundles/raise-common-lib.umd.min.js.map +1 -1
  6. package/esm2015/lib/form/checkbox-group/index.component.js +60 -5
  7. package/esm5/lib/form/checkbox-group/index.component.js +74 -5
  8. package/fesm2015/raise-common-lib.js +58 -3
  9. package/fesm2015/raise-common-lib.js.map +1 -1
  10. package/fesm5/raise-common-lib.js +72 -3
  11. package/fesm5/raise-common-lib.js.map +1 -1
  12. package/lib/form/checkbox-group/index.component.d.ts +5 -0
  13. package/package.json +1 -1
  14. package/raise-common-lib.metadata.json +1 -1
  15. package/src/assets/img/arrow_right.svg +4 -4
  16. package/src/assets/img/calendar-disabled.svg +6 -6
  17. package/src/assets/img/calendar.svg +6 -6
  18. package/src/assets/img/calendar_arrow_left.svg +3 -3
  19. package/src/assets/img/calendar_arrow_right.svg +3 -3
  20. package/src/assets/img/checked-vector.svg +3 -3
  21. package/src/assets/img/dialog-close.svg +4 -4
  22. package/src/assets/img/dialog-grow.svg +6 -6
  23. package/src/assets/img/dialog-shrink.svg +6 -6
  24. package/src/assets/img/plus.svg +4 -4
  25. package/src/assets/img/search.svg +4 -4
  26. package/src/assets/img/shrink-icon.svg +6 -6
  27. package/src/assets/img/time-disabled.svg +4 -4
  28. package/src/assets/img/time.svg +4 -4
  29. package/src/assets/img/toolbar-action-addFolder.svg +17 -17
  30. package/src/assets/img/toolbar-action-calculator.svg +11 -11
  31. package/src/assets/img/toolbar-action-collapse.svg +7 -7
  32. package/src/assets/img/toolbar-action-combine.svg +4 -4
  33. package/src/assets/img/toolbar-action-edit.svg +4 -4
  34. package/src/assets/img/toolbar-action-expand.svg +7 -7
  35. package/src/assets/img/toolbar-action-folderMove.svg +8 -8
  36. package/src/assets/img/toolbar-action-lock.svg +6 -6
  37. package/src/assets/img/toolbar-action-preview.svg +7 -7
  38. package/src/assets/img/toolbar-action-publish.svg +5 -5
  39. package/src/assets/img/toolbar-action-reminders.svg +10 -10
  40. package/src/assets/img/toolbar-action-rename.svg +7 -7
  41. package/src/assets/img/toolbar-action-saveSequence.svg +5 -5
  42. package/src/assets/img/toolbar-action-send-file.svg +5 -5
  43. package/src/assets/img/toolbar-action-settle.svg +7 -7
  44. package/src/assets/img/toolbar-action-share.svg +5 -5
  45. package/src/assets/img/toolbar-action-submitForApproval.svg +4 -4
  46. package/src/assets/img/toolbar-action-sync.svg +4 -4
  47. package/src/assets/img/toolbar-action-template.svg +6 -6
  48. package/src/assets/img/toolbar-action-workflow.svg +9 -9
  49. package/src/assets/style/reset/button.scss +0 -1
  50. package/src/assets/style/reset/checkbox.scss +8 -3
  51. package/src/assets/style/variables.scss +1 -0
@@ -4,7 +4,7 @@
4
4
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
5
  */
6
6
  // 组件类
7
- import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from "@angular/core";
7
+ import { ChangeDetectorRef, Component, EventEmitter, Input, Output, } from "@angular/core";
8
8
  export class CheckboxGroupComponent {
9
9
  /**
10
10
  * @param {?} ref
@@ -19,12 +19,24 @@ export class CheckboxGroupComponent {
19
19
  this.disabled = false;
20
20
  this.error = false;
21
21
  this.valueChange = new EventEmitter();
22
+ this.indeterminate = false;
22
23
  }
23
24
  /**
24
25
  * @return {?}
25
26
  */
26
27
  ngOnInit() {
27
- console.log('first', this.value);
28
+ console.log("first", this.value);
29
+ this.translation = JSON.parse(localStorage.getItem("translation"));
30
+ }
31
+ /**
32
+ * @return {?}
33
+ */
34
+ get enabledDataSource() {
35
+ return this.dataSource.filter((/**
36
+ * @param {?} item
37
+ * @return {?}
38
+ */
39
+ (item) => !item[this.fields.disabled])) || [];
28
40
  }
29
41
  /**
30
42
  * @param {?} event
@@ -46,15 +58,54 @@ export class CheckboxGroupComponent {
46
58
  */
47
59
  (val) => val !== option[this.fields.value]));
48
60
  }
61
+ this.calculateIndeterminate(result);
49
62
  this.valueChange.emit(result);
50
63
  this.ref.markForCheck();
51
64
  }
65
+ /**
66
+ * @param {?} event
67
+ * @return {?}
68
+ */
69
+ onSelectAll(event) {
70
+ if (event.checked) {
71
+ this.valueChange.emit(this.dataSource
72
+ .filter((/**
73
+ * @param {?} item
74
+ * @return {?}
75
+ */
76
+ (item) => !item[this.fields.disabled]))
77
+ .map((/**
78
+ * @param {?} item
79
+ * @return {?}
80
+ */
81
+ (item) => item[this.fields.value])));
82
+ }
83
+ else {
84
+ this.valueChange.emit([]);
85
+ }
86
+ this.ref.markForCheck();
87
+ }
88
+ /**
89
+ * @param {?} result
90
+ * @return {?}
91
+ */
92
+ calculateIndeterminate(result) {
93
+ if (result.length === this.enabledDataSource.length) {
94
+ this.indeterminate = false;
95
+ }
96
+ else if (result.length > 0 && result.length < this.enabledDataSource.length) {
97
+ this.indeterminate = true;
98
+ }
99
+ else {
100
+ this.indeterminate = false;
101
+ }
102
+ }
52
103
  }
53
104
  CheckboxGroupComponent.decorators = [
54
105
  { type: Component, args: [{
55
106
  selector: "rs-checkbox-group",
56
- template: "<div class=\"checkbox-group\" [ngClass]=\"[orientation, error ? 'error' : '']\">\r\n <div class=\"checkbox-item\" *ngFor=\"let option of dataSource\">\r\n <ejs-checkbox\r\n [name]=\"name\"\r\n [label]=\"option[fields.text]\"\r\n [value]=\"option[fields.value]\"\r\n [disabled]=\"option[fields.disabled] || disabled\"\r\n [checked]=\"value.includes(option[fields.value])\"\r\n (change)=\"onChange($event, option)\"\r\n ></ejs-checkbox>\r\n </div>\r\n</div>\r\n",
57
- styles: [".checkbox-group{display:flex;padding-left:4px}.checkbox-group.horizontal{flex-direction:row;gap:35px}.checkbox-group.vertical{flex-direction:column;gap:14px}.checkbox-group.error .e-checkbox-wrapper .e-frame{border-color:var(--rs-input-error-border-color)}"]
107
+ template: "<div class=\"checkbox-group\" [ngClass]=\"[orientation, error ? 'error' : '']\">\r\n <ejs-checkbox\r\n [label]=\"translation.SELECT_ALL ? translation.SELECT_ALL : 'Select All'\"\r\n [indeterminate]=\"indeterminate\"\r\n [checked]=\"value.length === enabledDataSource.length ? true : false\"\r\n (change)=\"onSelectAll($event)\"\r\n ></ejs-checkbox>\r\n <div class=\"checkbox-item\" *ngFor=\"let option of dataSource\">\r\n <ejs-checkbox\r\n [name]=\"name\"\r\n [label]=\"option[fields.text]\"\r\n [value]=\"option[fields.value]\"\r\n [disabled]=\"option[fields.disabled] || disabled\"\r\n [checked]=\"value.includes(option[fields.value])\"\r\n (change)=\"onChange($event, option)\"\r\n ></ejs-checkbox>\r\n </div>\r\n</div>\r\n",
108
+ styles: [".checkbox-group{display:flex;padding-left:4px}.checkbox-group.horizontal{flex-direction:row;gap:35px}.checkbox-group.vertical{flex-direction:column;gap:4px}.checkbox-group.error .e-checkbox-wrapper .e-frame{border-color:var(--rs-input-error-border-color)}"]
58
109
  }] }
59
110
  ];
60
111
  /** @nocollapse */
@@ -88,10 +139,14 @@ if (false) {
88
139
  CheckboxGroupComponent.prototype.error;
89
140
  /** @type {?} */
90
141
  CheckboxGroupComponent.prototype.valueChange;
142
+ /** @type {?} */
143
+ CheckboxGroupComponent.prototype.translation;
144
+ /** @type {?} */
145
+ CheckboxGroupComponent.prototype.indeterminate;
91
146
  /**
92
147
  * @type {?}
93
148
  * @private
94
149
  */
95
150
  CheckboxGroupComponent.prototype.ref;
96
151
  }
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9mb3JtL2NoZWNrYm94LWdyb3VwL2luZGV4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBT2xHLE1BQU0sT0FBTyxzQkFBc0I7Ozs7SUFDakMsWUFDVSxHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjs7UUFHdkIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsZ0JBQVcsR0FBOEIsWUFBWSxDQUFDO1FBQ3RELFdBQU0sR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUM7UUFDaEUsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBR3ZCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQVY5QixDQUFDOzs7O0lBWUosUUFBUTtRQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNqQyxDQUFDOzs7Ozs7SUFDRCxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU07O2NBQ2QsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLOztZQUM1QixNQUFNO1FBQ1YsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQ2pCLE1BQU0sR0FBRyxDQUFDLEdBQUcsYUFBYSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDeEQ7YUFBTTtZQUNMLE1BQU0sR0FBRyxhQUFhLENBQUMsTUFBTTs7OztZQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQztTQUMzRTtRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQzs7O1lBakNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3Qiw2ZkFBcUM7O2FBRXRDOzs7O1lBTlEsaUJBQWlCOzs7bUJBV3ZCLEtBQUs7b0JBQ0wsS0FBSzt5QkFDTCxLQUFLOzBCQUNMLEtBQUs7cUJBQ0wsS0FBSzt1QkFDTCxLQUFLO29CQUNMLEtBQUs7MEJBRUwsTUFBTTs7OztJQVJQLHNDQUFjOztJQUNkLHVDQUFvQjs7SUFDcEIsNENBQXlCOztJQUN6Qiw2Q0FBK0Q7O0lBQy9ELHdDQUF5RTs7SUFDekUsMENBQTBCOztJQUMxQix1Q0FBdUI7O0lBRXZCLDZDQUNpQzs7Ozs7SUFYL0IscUNBQThCIiwic291cmNlc0NvbnRlbnQiOlsiLy8g57uE5Lu257G7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInJzLWNoZWNrYm94LWdyb3VwXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbmRleC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9pbmRleC5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENoZWNrYm94R3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICkge31cclxuICBASW5wdXQoKSBuYW1lOyAvLyDliIbnu4Tlh63or4FcclxuICBASW5wdXQoKSB2YWx1ZSA9IFtdO1xyXG4gIEBJbnB1dCgpIGRhdGFTb3VyY2UgPSBbXTtcclxuICBASW5wdXQoKSBvcmllbnRhdGlvbjogXCJob3Jpem9udGFsXCIgfCBcInZlcnRpY2FsXCIgPSBcImhvcml6b250YWxcIjtcclxuICBASW5wdXQoKSBmaWVsZHMgPSB7IHRleHQ6IFwidGV4dFwiLCB2YWx1ZTogXCJ2YWx1ZVwiLCBkaXNhYmxlZDogXCJkaXNhYmxlZFwiIH07XHJcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBlcnJvciA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBjb25zb2xlLmxvZygnZmlyc3QnLHRoaXMudmFsdWUpXHJcbiAgfVxyXG4gIG9uQ2hhbmdlKGV2ZW50LCBvcHRpb24pIHtcclxuICAgIGNvbnN0IG9yaWdpbmFsVmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgbGV0IHJlc3VsdDtcclxuICAgIGlmIChldmVudC5jaGVja2VkKSB7XHJcbiAgICAgIHJlc3VsdCA9IFsuLi5vcmlnaW5hbFZhbHVlLCBvcHRpb25bdGhpcy5maWVsZHMudmFsdWVdXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlc3VsdCA9IG9yaWdpbmFsVmFsdWUuZmlsdGVyKCh2YWwpID0+IHZhbCAhPT0gb3B0aW9uW3RoaXMuZmllbGRzLnZhbHVlXSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQocmVzdWx0KTtcclxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxufVxyXG4iXX0=
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9mb3JtL2NoZWNrYm94LWdyb3VwL2luZGV4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQU92QixNQUFNLE9BQU8sc0JBQXNCOzs7O0lBQ2pDLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1COztRQUVqQyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixnQkFBVyxHQUE4QixZQUFZLENBQUM7UUFDdEQsV0FBTSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUNoRSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFVBQUssR0FBRyxLQUFLLENBQUM7UUFHdkIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWpDLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBWnVCLENBQUM7Ozs7SUFhOUMsUUFBUTtRQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7Ozs7SUFDRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTTs7OztRQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxDQUFDO0lBQzdFLENBQUM7Ozs7OztJQUVELFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTTs7Y0FDZCxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUs7O1lBQzVCLE1BQU07UUFDVixJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDakIsTUFBTSxHQUFHLENBQUMsR0FBRyxhQUFhLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUN4RDthQUFNO1lBQ0wsTUFBTSxHQUFHLGFBQWEsQ0FBQyxNQUFNOzs7O1lBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDO1NBQzNFO1FBQ0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsS0FBSztRQUNmLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDbkIsSUFBSSxDQUFDLFVBQVU7aUJBQ1osTUFBTTs7OztZQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFDO2lCQUM3QyxHQUFHOzs7O1lBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFDLENBQzFDLENBQUM7U0FDSDthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDM0I7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7Ozs7O0lBRUQsc0JBQXNCLENBQUMsTUFBTTtRQUMzQixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRTtZQUNuRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztTQUM1QjthQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFO1lBQzdFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1NBQzNCO2FBQU07WUFDTCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztTQUM1QjtJQUNILENBQUM7OztZQTdERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsdXhCQUFxQzs7YUFFdEM7Ozs7WUFaQyxpQkFBaUI7OzttQkFlaEIsS0FBSztvQkFDTCxLQUFLO3lCQUNMLEtBQUs7MEJBQ0wsS0FBSztxQkFDTCxLQUFLO3VCQUNMLEtBQUs7b0JBQ0wsS0FBSzswQkFFTCxNQUFNOzs7O0lBUlAsc0NBQWM7O0lBQ2QsdUNBQW9COztJQUNwQiw0Q0FBeUI7O0lBQ3pCLDZDQUErRDs7SUFDL0Qsd0NBQXlFOztJQUN6RSwwQ0FBMEI7O0lBQzFCLHVDQUF1Qjs7SUFFdkIsNkNBQ2lDOztJQUNqQyw2Q0FBWTs7SUFDWiwrQ0FBc0I7Ozs7O0lBWlYscUNBQThCIiwic291cmNlc0NvbnRlbnQiOlsiLy8g57uE5Lu257G7XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJycy1jaGVja2JveC1ncm91cFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaW5kZXguY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vaW5kZXguY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja2JveEdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcbiAgQElucHV0KCkgbmFtZTsgLy8g5YiG57uE5Yet6K+BXHJcbiAgQElucHV0KCkgdmFsdWUgPSBbXTtcclxuICBASW5wdXQoKSBkYXRhU291cmNlID0gW107XHJcbiAgQElucHV0KCkgb3JpZW50YXRpb246IFwiaG9yaXpvbnRhbFwiIHwgXCJ2ZXJ0aWNhbFwiID0gXCJob3Jpem9udGFsXCI7XHJcbiAgQElucHV0KCkgZmllbGRzID0geyB0ZXh0OiBcInRleHRcIiwgdmFsdWU6IFwidmFsdWVcIiwgZGlzYWJsZWQ6IFwiZGlzYWJsZWRcIiB9O1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZXJyb3IgPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgdHJhbnNsYXRpb247XHJcbiAgaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgY29uc29sZS5sb2coXCJmaXJzdFwiLCB0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMudHJhbnNsYXRpb24gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidHJhbnNsYXRpb25cIikpO1xyXG4gIH1cclxuICBnZXQgZW5hYmxlZERhdGFTb3VyY2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlLmZpbHRlcigoaXRlbSkgPT4gIWl0ZW1bdGhpcy5maWVsZHMuZGlzYWJsZWRdKSB8fCBbXTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKGV2ZW50LCBvcHRpb24pIHtcclxuICAgIGNvbnN0IG9yaWdpbmFsVmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgbGV0IHJlc3VsdDtcclxuICAgIGlmIChldmVudC5jaGVja2VkKSB7XHJcbiAgICAgIHJlc3VsdCA9IFsuLi5vcmlnaW5hbFZhbHVlLCBvcHRpb25bdGhpcy5maWVsZHMudmFsdWVdXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlc3VsdCA9IG9yaWdpbmFsVmFsdWUuZmlsdGVyKCh2YWwpID0+IHZhbCAhPT0gb3B0aW9uW3RoaXMuZmllbGRzLnZhbHVlXSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNhbGN1bGF0ZUluZGV0ZXJtaW5hdGUocmVzdWx0KTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChyZXN1bHQpO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdEFsbChldmVudCkge1xyXG4gICAgaWYgKGV2ZW50LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KFxyXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZVxyXG4gICAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4gIWl0ZW1bdGhpcy5maWVsZHMuZGlzYWJsZWRdKVxyXG4gICAgICAgICAgLm1hcCgoaXRlbSkgPT4gaXRlbVt0aGlzLmZpZWxkcy52YWx1ZV0pXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoW10pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBjYWxjdWxhdGVJbmRldGVybWluYXRlKHJlc3VsdCkge1xyXG4gICAgaWYgKHJlc3VsdC5sZW5ndGggPT09IHRoaXMuZW5hYmxlZERhdGFTb3VyY2UubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIGlmIChyZXN1bHQubGVuZ3RoID4gMCAmJiByZXN1bHQubGVuZ3RoIDwgdGhpcy5lbmFibGVkRGF0YVNvdXJjZS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5pbmRldGVybWluYXRlID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import * as tslib_1 from "tslib";
7
7
  // 组件类
8
- import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from "@angular/core";
8
+ import { ChangeDetectorRef, Component, EventEmitter, Input, Output, } from "@angular/core";
9
9
  var CheckboxGroupComponent = /** @class */ (function () {
10
10
  function CheckboxGroupComponent(ref) {
11
11
  this.ref = ref;
@@ -17,6 +17,7 @@ var CheckboxGroupComponent = /** @class */ (function () {
17
17
  this.disabled = false;
18
18
  this.error = false;
19
19
  this.valueChange = new EventEmitter();
20
+ this.indeterminate = false;
20
21
  }
21
22
  /**
22
23
  * @return {?}
@@ -25,8 +26,24 @@ var CheckboxGroupComponent = /** @class */ (function () {
25
26
  * @return {?}
26
27
  */
27
28
  function () {
28
- console.log('first', this.value);
29
+ console.log("first", this.value);
30
+ this.translation = JSON.parse(localStorage.getItem("translation"));
29
31
  };
32
+ Object.defineProperty(CheckboxGroupComponent.prototype, "enabledDataSource", {
33
+ get: /**
34
+ * @return {?}
35
+ */
36
+ function () {
37
+ var _this = this;
38
+ return this.dataSource.filter((/**
39
+ * @param {?} item
40
+ * @return {?}
41
+ */
42
+ function (item) { return !item[_this.fields.disabled]; })) || [];
43
+ },
44
+ enumerable: true,
45
+ configurable: true
46
+ });
30
47
  /**
31
48
  * @param {?} event
32
49
  * @param {?} option
@@ -53,14 +70,62 @@ var CheckboxGroupComponent = /** @class */ (function () {
53
70
  */
54
71
  function (val) { return val !== option[_this.fields.value]; }));
55
72
  }
73
+ this.calculateIndeterminate(result);
56
74
  this.valueChange.emit(result);
57
75
  this.ref.markForCheck();
58
76
  };
77
+ /**
78
+ * @param {?} event
79
+ * @return {?}
80
+ */
81
+ CheckboxGroupComponent.prototype.onSelectAll = /**
82
+ * @param {?} event
83
+ * @return {?}
84
+ */
85
+ function (event) {
86
+ var _this = this;
87
+ if (event.checked) {
88
+ this.valueChange.emit(this.dataSource
89
+ .filter((/**
90
+ * @param {?} item
91
+ * @return {?}
92
+ */
93
+ function (item) { return !item[_this.fields.disabled]; }))
94
+ .map((/**
95
+ * @param {?} item
96
+ * @return {?}
97
+ */
98
+ function (item) { return item[_this.fields.value]; })));
99
+ }
100
+ else {
101
+ this.valueChange.emit([]);
102
+ }
103
+ this.ref.markForCheck();
104
+ };
105
+ /**
106
+ * @param {?} result
107
+ * @return {?}
108
+ */
109
+ CheckboxGroupComponent.prototype.calculateIndeterminate = /**
110
+ * @param {?} result
111
+ * @return {?}
112
+ */
113
+ function (result) {
114
+ if (result.length === this.enabledDataSource.length) {
115
+ this.indeterminate = false;
116
+ }
117
+ else if (result.length > 0 && result.length < this.enabledDataSource.length) {
118
+ this.indeterminate = true;
119
+ }
120
+ else {
121
+ this.indeterminate = false;
122
+ }
123
+ };
59
124
  CheckboxGroupComponent.decorators = [
60
125
  { type: Component, args: [{
61
126
  selector: "rs-checkbox-group",
62
- template: "<div class=\"checkbox-group\" [ngClass]=\"[orientation, error ? 'error' : '']\">\r\n <div class=\"checkbox-item\" *ngFor=\"let option of dataSource\">\r\n <ejs-checkbox\r\n [name]=\"name\"\r\n [label]=\"option[fields.text]\"\r\n [value]=\"option[fields.value]\"\r\n [disabled]=\"option[fields.disabled] || disabled\"\r\n [checked]=\"value.includes(option[fields.value])\"\r\n (change)=\"onChange($event, option)\"\r\n ></ejs-checkbox>\r\n </div>\r\n</div>\r\n",
63
- styles: [".checkbox-group{display:flex;padding-left:4px}.checkbox-group.horizontal{flex-direction:row;gap:35px}.checkbox-group.vertical{flex-direction:column;gap:14px}.checkbox-group.error .e-checkbox-wrapper .e-frame{border-color:var(--rs-input-error-border-color)}"]
127
+ template: "<div class=\"checkbox-group\" [ngClass]=\"[orientation, error ? 'error' : '']\">\r\n <ejs-checkbox\r\n [label]=\"translation.SELECT_ALL ? translation.SELECT_ALL : 'Select All'\"\r\n [indeterminate]=\"indeterminate\"\r\n [checked]=\"value.length === enabledDataSource.length ? true : false\"\r\n (change)=\"onSelectAll($event)\"\r\n ></ejs-checkbox>\r\n <div class=\"checkbox-item\" *ngFor=\"let option of dataSource\">\r\n <ejs-checkbox\r\n [name]=\"name\"\r\n [label]=\"option[fields.text]\"\r\n [value]=\"option[fields.value]\"\r\n [disabled]=\"option[fields.disabled] || disabled\"\r\n [checked]=\"value.includes(option[fields.value])\"\r\n (change)=\"onChange($event, option)\"\r\n ></ejs-checkbox>\r\n </div>\r\n</div>\r\n",
128
+ styles: [".checkbox-group{display:flex;padding-left:4px}.checkbox-group.horizontal{flex-direction:row;gap:35px}.checkbox-group.vertical{flex-direction:column;gap:4px}.checkbox-group.error .e-checkbox-wrapper .e-frame{border-color:var(--rs-input-error-border-color)}"]
64
129
  }] }
65
130
  ];
66
131
  /** @nocollapse */
@@ -97,10 +162,14 @@ if (false) {
97
162
  CheckboxGroupComponent.prototype.error;
98
163
  /** @type {?} */
99
164
  CheckboxGroupComponent.prototype.valueChange;
165
+ /** @type {?} */
166
+ CheckboxGroupComponent.prototype.translation;
167
+ /** @type {?} */
168
+ CheckboxGroupComponent.prototype.indeterminate;
100
169
  /**
101
170
  * @type {?}
102
171
  * @private
103
172
  */
104
173
  CheckboxGroupComponent.prototype.ref;
105
174
  }
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9mb3JtL2NoZWNrYm94LWdyb3VwL2luZGV4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRztJQU1FLGdDQUNVLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1COztRQUd2QixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixnQkFBVyxHQUE4QixZQUFZLENBQUM7UUFDdEQsV0FBTSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUNoRSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFVBQUssR0FBRyxLQUFLLENBQUM7UUFHdkIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBVjlCLENBQUM7Ozs7SUFZSix5Q0FBUTs7O0lBQVI7UUFDRSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDakMsQ0FBQzs7Ozs7O0lBQ0QseUNBQVE7Ozs7O0lBQVIsVUFBUyxLQUFLLEVBQUUsTUFBTTtRQUF0QixpQkFVQzs7WUFUTyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUs7O1lBQzVCLE1BQU07UUFDVixJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDakIsTUFBTSxvQkFBTyxhQUFhLEdBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQztTQUN4RDthQUFNO1lBQ0wsTUFBTSxHQUFHLGFBQWEsQ0FBQyxNQUFNOzs7O1lBQUMsVUFBQyxHQUFHLElBQUssT0FBQSxHQUFHLEtBQUssTUFBTSxDQUFDLEtBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQWpDLENBQWlDLEVBQUMsQ0FBQztTQUMzRTtRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQzs7Z0JBakNGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3Qiw2ZkFBcUM7O2lCQUV0Qzs7OztnQkFOUSxpQkFBaUI7Ozt1QkFXdkIsS0FBSzt3QkFDTCxLQUFLOzZCQUNMLEtBQUs7OEJBQ0wsS0FBSzt5QkFDTCxLQUFLOzJCQUNMLEtBQUs7d0JBQ0wsS0FBSzs4QkFFTCxNQUFNOztJQWlCVCw2QkFBQztDQUFBLEFBbENELElBa0NDO1NBN0JZLHNCQUFzQjs7O0lBSWpDLHNDQUFjOztJQUNkLHVDQUFvQjs7SUFDcEIsNENBQXlCOztJQUN6Qiw2Q0FBK0Q7O0lBQy9ELHdDQUF5RTs7SUFDekUsMENBQTBCOztJQUMxQix1Q0FBdUI7O0lBRXZCLDZDQUNpQzs7Ozs7SUFYL0IscUNBQThCIiwic291cmNlc0NvbnRlbnQiOlsiLy8g57uE5Lu257G7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInJzLWNoZWNrYm94LWdyb3VwXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbmRleC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9pbmRleC5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENoZWNrYm94R3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICkge31cclxuICBASW5wdXQoKSBuYW1lOyAvLyDliIbnu4Tlh63or4FcclxuICBASW5wdXQoKSB2YWx1ZSA9IFtdO1xyXG4gIEBJbnB1dCgpIGRhdGFTb3VyY2UgPSBbXTtcclxuICBASW5wdXQoKSBvcmllbnRhdGlvbjogXCJob3Jpem9udGFsXCIgfCBcInZlcnRpY2FsXCIgPSBcImhvcml6b250YWxcIjtcclxuICBASW5wdXQoKSBmaWVsZHMgPSB7IHRleHQ6IFwidGV4dFwiLCB2YWx1ZTogXCJ2YWx1ZVwiLCBkaXNhYmxlZDogXCJkaXNhYmxlZFwiIH07XHJcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBlcnJvciA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBjb25zb2xlLmxvZygnZmlyc3QnLHRoaXMudmFsdWUpXHJcbiAgfVxyXG4gIG9uQ2hhbmdlKGV2ZW50LCBvcHRpb24pIHtcclxuICAgIGNvbnN0IG9yaWdpbmFsVmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgbGV0IHJlc3VsdDtcclxuICAgIGlmIChldmVudC5jaGVja2VkKSB7XHJcbiAgICAgIHJlc3VsdCA9IFsuLi5vcmlnaW5hbFZhbHVlLCBvcHRpb25bdGhpcy5maWVsZHMudmFsdWVdXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlc3VsdCA9IG9yaWdpbmFsVmFsdWUuZmlsdGVyKCh2YWwpID0+IHZhbCAhPT0gb3B0aW9uW3RoaXMuZmllbGRzLnZhbHVlXSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQocmVzdWx0KTtcclxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxufVxyXG4iXX0=
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9mb3JtL2NoZWNrYm94LWdyb3VwL2luZGV4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0EsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkI7SUFNRSxnQ0FBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7O1FBRWpDLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGdCQUFXLEdBQThCLFlBQVksQ0FBQztRQUN0RCxXQUFNLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQ2hFLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUd2QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFakMsa0JBQWEsR0FBRyxLQUFLLENBQUM7SUFadUIsQ0FBQzs7OztJQWE5Qyx5Q0FBUTs7O0lBQVI7UUFDRSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0Qsc0JBQUkscURBQWlCOzs7O1FBQXJCO1lBQUEsaUJBRUM7WUFEQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTTs7OztZQUFDLFVBQUMsSUFBSSxJQUFLLE9BQUEsQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBM0IsQ0FBMkIsRUFBQyxJQUFJLEVBQUUsQ0FBQztRQUM3RSxDQUFDOzs7T0FBQTs7Ozs7O0lBRUQseUNBQVE7Ozs7O0lBQVIsVUFBUyxLQUFLLEVBQUUsTUFBTTtRQUF0QixpQkFXQzs7WUFWTyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUs7O1lBQzVCLE1BQU07UUFDVixJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDakIsTUFBTSxvQkFBTyxhQUFhLEdBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQztTQUN4RDthQUFNO1lBQ0wsTUFBTSxHQUFHLGFBQWEsQ0FBQyxNQUFNOzs7O1lBQUMsVUFBQyxHQUFHLElBQUssT0FBQSxHQUFHLEtBQUssTUFBTSxDQUFDLEtBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQWpDLENBQWlDLEVBQUMsQ0FBQztTQUMzRTtRQUNELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7Ozs7O0lBRUQsNENBQVc7Ozs7SUFBWCxVQUFZLEtBQUs7UUFBakIsaUJBV0M7UUFWQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ25CLElBQUksQ0FBQyxVQUFVO2lCQUNaLE1BQU07Ozs7WUFBQyxVQUFDLElBQUksSUFBSyxPQUFBLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQTNCLENBQTJCLEVBQUM7aUJBQzdDLEdBQUc7Ozs7WUFBQyxVQUFDLElBQUksSUFBSyxPQUFBLElBQUksQ0FBQyxLQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUF2QixDQUF1QixFQUFDLENBQzFDLENBQUM7U0FDSDthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDM0I7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7Ozs7O0lBRUQsdURBQXNCOzs7O0lBQXRCLFVBQXVCLE1BQU07UUFDM0IsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUU7WUFDbkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7U0FDNUI7YUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRTtZQUM3RSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztTQUMzQjthQUFNO1lBQ0wsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7U0FDNUI7SUFDSCxDQUFDOztnQkE3REYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLHV4QkFBcUM7O2lCQUV0Qzs7OztnQkFaQyxpQkFBaUI7Ozt1QkFlaEIsS0FBSzt3QkFDTCxLQUFLOzZCQUNMLEtBQUs7OEJBQ0wsS0FBSzt5QkFDTCxLQUFLOzJCQUNMLEtBQUs7d0JBQ0wsS0FBSzs4QkFFTCxNQUFNOztJQStDVCw2QkFBQztDQUFBLEFBOURELElBOERDO1NBekRZLHNCQUFzQjs7O0lBRWpDLHNDQUFjOztJQUNkLHVDQUFvQjs7SUFDcEIsNENBQXlCOztJQUN6Qiw2Q0FBK0Q7O0lBQy9ELHdDQUF5RTs7SUFDekUsMENBQTBCOztJQUMxQix1Q0FBdUI7O0lBRXZCLDZDQUNpQzs7SUFDakMsNkNBQVk7O0lBQ1osK0NBQXNCOzs7OztJQVpWLHFDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIOe7hOS7tuexu1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwicnMtY2hlY2tib3gtZ3JvdXBcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG4gIEBJbnB1dCgpIG5hbWU7IC8vIOWIhue7hOWHreivgVxyXG4gIEBJbnB1dCgpIHZhbHVlID0gW107XHJcbiAgQElucHV0KCkgZGF0YVNvdXJjZSA9IFtdO1xyXG4gIEBJbnB1dCgpIG9yaWVudGF0aW9uOiBcImhvcml6b250YWxcIiB8IFwidmVydGljYWxcIiA9IFwiaG9yaXpvbnRhbFwiO1xyXG4gIEBJbnB1dCgpIGZpZWxkcyA9IHsgdGV4dDogXCJ0ZXh0XCIsIHZhbHVlOiBcInZhbHVlXCIsIGRpc2FibGVkOiBcImRpc2FibGVkXCIgfTtcclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGVycm9yID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHRyYW5zbGF0aW9uO1xyXG4gIGluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiZmlyc3RcIiwgdGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInRyYW5zbGF0aW9uXCIpKTtcclxuICB9XHJcbiAgZ2V0IGVuYWJsZWREYXRhU291cmNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtW3RoaXMuZmllbGRzLmRpc2FibGVkXSkgfHwgW107XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZShldmVudCwgb3B0aW9uKSB7XHJcbiAgICBjb25zdCBvcmlnaW5hbFZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgIGxldCByZXN1bHQ7XHJcbiAgICBpZiAoZXZlbnQuY2hlY2tlZCkge1xyXG4gICAgICByZXN1bHQgPSBbLi4ub3JpZ2luYWxWYWx1ZSwgb3B0aW9uW3RoaXMuZmllbGRzLnZhbHVlXV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXN1bHQgPSBvcmlnaW5hbFZhbHVlLmZpbHRlcigodmFsKSA9PiB2YWwgIT09IG9wdGlvblt0aGlzLmZpZWxkcy52YWx1ZV0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jYWxjdWxhdGVJbmRldGVybWluYXRlKHJlc3VsdCk7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQocmVzdWx0KTtcclxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RBbGwoZXZlbnQpIHtcclxuICAgIGlmIChldmVudC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChcclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VcclxuICAgICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtW3RoaXMuZmllbGRzLmRpc2FibGVkXSlcclxuICAgICAgICAgIC5tYXAoKGl0ZW0pID0+IGl0ZW1bdGhpcy5maWVsZHMudmFsdWVdKVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KFtdKTtcclxuICAgIH1cclxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgY2FsY3VsYXRlSW5kZXRlcm1pbmF0ZShyZXN1bHQpIHtcclxuICAgIGlmIChyZXN1bHQubGVuZ3RoID09PSB0aGlzLmVuYWJsZWREYXRhU291cmNlLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcclxuICAgIH0gZWxzZSBpZiAocmVzdWx0Lmxlbmd0aCA+IDAgJiYgcmVzdWx0Lmxlbmd0aCA8IHRoaXMuZW5hYmxlZERhdGFTb3VyY2UubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZSA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -21510,12 +21510,24 @@ class CheckboxGroupComponent {
21510
21510
  this.disabled = false;
21511
21511
  this.error = false;
21512
21512
  this.valueChange = new EventEmitter();
21513
+ this.indeterminate = false;
21513
21514
  }
21514
21515
  /**
21515
21516
  * @return {?}
21516
21517
  */
21517
21518
  ngOnInit() {
21518
- console.log('first', this.value);
21519
+ console.log("first", this.value);
21520
+ this.translation = JSON.parse(localStorage.getItem("translation"));
21521
+ }
21522
+ /**
21523
+ * @return {?}
21524
+ */
21525
+ get enabledDataSource() {
21526
+ return this.dataSource.filter((/**
21527
+ * @param {?} item
21528
+ * @return {?}
21529
+ */
21530
+ (item) => !item[this.fields.disabled])) || [];
21519
21531
  }
21520
21532
  /**
21521
21533
  * @param {?} event
@@ -21537,15 +21549,54 @@ class CheckboxGroupComponent {
21537
21549
  */
21538
21550
  (val) => val !== option[this.fields.value]));
21539
21551
  }
21552
+ this.calculateIndeterminate(result);
21540
21553
  this.valueChange.emit(result);
21541
21554
  this.ref.markForCheck();
21542
21555
  }
21556
+ /**
21557
+ * @param {?} event
21558
+ * @return {?}
21559
+ */
21560
+ onSelectAll(event) {
21561
+ if (event.checked) {
21562
+ this.valueChange.emit(this.dataSource
21563
+ .filter((/**
21564
+ * @param {?} item
21565
+ * @return {?}
21566
+ */
21567
+ (item) => !item[this.fields.disabled]))
21568
+ .map((/**
21569
+ * @param {?} item
21570
+ * @return {?}
21571
+ */
21572
+ (item) => item[this.fields.value])));
21573
+ }
21574
+ else {
21575
+ this.valueChange.emit([]);
21576
+ }
21577
+ this.ref.markForCheck();
21578
+ }
21579
+ /**
21580
+ * @param {?} result
21581
+ * @return {?}
21582
+ */
21583
+ calculateIndeterminate(result) {
21584
+ if (result.length === this.enabledDataSource.length) {
21585
+ this.indeterminate = false;
21586
+ }
21587
+ else if (result.length > 0 && result.length < this.enabledDataSource.length) {
21588
+ this.indeterminate = true;
21589
+ }
21590
+ else {
21591
+ this.indeterminate = false;
21592
+ }
21593
+ }
21543
21594
  }
21544
21595
  CheckboxGroupComponent.decorators = [
21545
21596
  { type: Component, args: [{
21546
21597
  selector: "rs-checkbox-group",
21547
- template: "<div class=\"checkbox-group\" [ngClass]=\"[orientation, error ? 'error' : '']\">\r\n <div class=\"checkbox-item\" *ngFor=\"let option of dataSource\">\r\n <ejs-checkbox\r\n [name]=\"name\"\r\n [label]=\"option[fields.text]\"\r\n [value]=\"option[fields.value]\"\r\n [disabled]=\"option[fields.disabled] || disabled\"\r\n [checked]=\"value.includes(option[fields.value])\"\r\n (change)=\"onChange($event, option)\"\r\n ></ejs-checkbox>\r\n </div>\r\n</div>\r\n",
21548
- styles: [".checkbox-group{display:flex;padding-left:4px}.checkbox-group.horizontal{flex-direction:row;gap:35px}.checkbox-group.vertical{flex-direction:column;gap:14px}.checkbox-group.error .e-checkbox-wrapper .e-frame{border-color:var(--rs-input-error-border-color)}"]
21598
+ template: "<div class=\"checkbox-group\" [ngClass]=\"[orientation, error ? 'error' : '']\">\r\n <ejs-checkbox\r\n [label]=\"translation.SELECT_ALL ? translation.SELECT_ALL : 'Select All'\"\r\n [indeterminate]=\"indeterminate\"\r\n [checked]=\"value.length === enabledDataSource.length ? true : false\"\r\n (change)=\"onSelectAll($event)\"\r\n ></ejs-checkbox>\r\n <div class=\"checkbox-item\" *ngFor=\"let option of dataSource\">\r\n <ejs-checkbox\r\n [name]=\"name\"\r\n [label]=\"option[fields.text]\"\r\n [value]=\"option[fields.value]\"\r\n [disabled]=\"option[fields.disabled] || disabled\"\r\n [checked]=\"value.includes(option[fields.value])\"\r\n (change)=\"onChange($event, option)\"\r\n ></ejs-checkbox>\r\n </div>\r\n</div>\r\n",
21599
+ styles: [".checkbox-group{display:flex;padding-left:4px}.checkbox-group.horizontal{flex-direction:row;gap:35px}.checkbox-group.vertical{flex-direction:column;gap:4px}.checkbox-group.error .e-checkbox-wrapper .e-frame{border-color:var(--rs-input-error-border-color)}"]
21549
21600
  }] }
21550
21601
  ];
21551
21602
  /** @nocollapse */
@@ -21579,6 +21630,10 @@ if (false) {
21579
21630
  CheckboxGroupComponent.prototype.error;
21580
21631
  /** @type {?} */
21581
21632
  CheckboxGroupComponent.prototype.valueChange;
21633
+ /** @type {?} */
21634
+ CheckboxGroupComponent.prototype.translation;
21635
+ /** @type {?} */
21636
+ CheckboxGroupComponent.prototype.indeterminate;
21582
21637
  /**
21583
21638
  * @type {?}
21584
21639
  * @private