rd-outer-component 0.0.88 → 0.0.90

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.
@@ -41,6 +41,7 @@ import { debounceTime, filter, switchMap } from 'rxjs/operators';
41
41
  class CustomCheckboxComponent {
42
42
  set options(val) {
43
43
  this._rawOptions = val ? [...val] : [];
44
+ this.filteredOptions = val;
44
45
  }
45
46
  get options() {
46
47
  return this._rawOptions;
@@ -50,6 +51,7 @@ class CustomCheckboxComponent {
50
51
  this.label = '';
51
52
  this.name = '';
52
53
  this.disabled = false;
54
+ this.filteredOptions = [];
53
55
  this.valueChange = new EventEmitter();
54
56
  this._rawOptions = [];
55
57
  this.value = undefined;
@@ -72,8 +74,13 @@ class CustomCheckboxComponent {
72
74
  this.onTouched = fn;
73
75
  }
74
76
  handleValueChange(value) {
75
- this.onChange(value);
76
- this.valueChange.emit(value);
77
+ // 1. 核心修复:对 value 进行深拷贝
78
+ // 这样 emit 出去的就不再是 formFieldStruct 里的原始对象引用了
79
+ const valueCopy = JSON.parse(JSON.stringify(value));
80
+ // 2. 通知 FormArray 更新
81
+ this.onChange(valueCopy);
82
+ // 3. 向外发射新拷贝的对象
83
+ this.valueChange.emit(valueCopy);
77
84
  }
78
85
  }
79
86
  CustomCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomCheckboxComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
@@ -83,7 +90,7 @@ CustomCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
83
90
  useExisting: forwardRef(() => CustomCheckboxComponent),
84
91
  multi: true,
85
92
  },
86
- ], ngImport: i0, template: "<div>\n <div\n class=\"rd-form-item-check\"\n [ngClass]=\"{\n disabled: disabled\n }\"\n >\n <div class=\"rd-form-item-check-label\">{{ label }}</div>\n <nz-checkbox-group\n [(ngModel)]=\"options\"\n (ngModelChange)=\"handleValueChange($event)\"\n ></nz-checkbox-group>\n </div>\n</div>\n", styles: ["::ng-deep .rd-form-item-check .ant-checkbox-group{display:flex;margin-top:11px}::ng-deep .rd-form-item-check .ant-checkbox-group label{flex:1;color:#030712;font-size:14px;font-weight:500}::ng-deep .rd-form-item-check .ant-checkbox-group .ant-checkbox-checked .ant-checkbox-inner{background-color:#367af6;border-color:#367af6}::ng-deep .rd-form-item-check .ant-checkbox-group .ant-checkbox-inner{border-radius:4px}::ng-deep .rd-form-item-check .ant-checkbox-group .ant-checkbox-checked:after{border-color:#367af6;border-radius:4px}:host .rd-form-item-check{position:relative;background-color:#fff;width:100%}:host .rd-form-item-check-label{font-size:14px;font-weight:500;color:#6b7280}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.NzCheckboxGroupComponent, selector: "nz-checkbox-group", inputs: ["nzDisabled"], exportAs: ["nzCheckboxGroup"] }] });
93
+ ], ngImport: i0, template: "<div>\n <div\n class=\"rd-form-item-check\"\n [ngClass]=\"{\n disabled: disabled,\n }\"\n >\n <div class=\"rd-form-item-check-label\">{{ label }}</div>\n <nz-checkbox-group\n [(ngModel)]=\"filteredOptions\"\n (ngModelChange)=\"handleValueChange($event)\"\n ></nz-checkbox-group>\n </div>\n</div>\n", styles: ["::ng-deep .rd-form-item-check .ant-checkbox-group{display:flex;margin-top:11px}::ng-deep .rd-form-item-check .ant-checkbox-group label{flex:1;color:#030712;font-size:14px;font-weight:500}::ng-deep .rd-form-item-check .ant-checkbox-group .ant-checkbox-checked .ant-checkbox-inner{background-color:#367af6;border-color:#367af6}::ng-deep .rd-form-item-check .ant-checkbox-group .ant-checkbox-inner{border-radius:4px}::ng-deep .rd-form-item-check .ant-checkbox-group .ant-checkbox-checked:after{border-color:#367af6;border-radius:4px}:host .rd-form-item-check{position:relative;background-color:#fff;width:100%}:host .rd-form-item-check-label{font-size:14px;font-weight:500;color:#6b7280}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.NzCheckboxGroupComponent, selector: "nz-checkbox-group", inputs: ["nzDisabled"], exportAs: ["nzCheckboxGroup"] }] });
87
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomCheckboxComponent, decorators: [{
88
95
  type: Component,
89
96
  args: [{ selector: 'app-rd-checkbox', providers: [
@@ -92,7 +99,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
92
99
  useExisting: forwardRef(() => CustomCheckboxComponent),
93
100
  multi: true,
94
101
  },
95
- ], template: "<div>\n <div\n class=\"rd-form-item-check\"\n [ngClass]=\"{\n disabled: disabled\n }\"\n >\n <div class=\"rd-form-item-check-label\">{{ label }}</div>\n <nz-checkbox-group\n [(ngModel)]=\"options\"\n (ngModelChange)=\"handleValueChange($event)\"\n ></nz-checkbox-group>\n </div>\n</div>\n", styles: ["::ng-deep .rd-form-item-check .ant-checkbox-group{display:flex;margin-top:11px}::ng-deep .rd-form-item-check .ant-checkbox-group label{flex:1;color:#030712;font-size:14px;font-weight:500}::ng-deep .rd-form-item-check .ant-checkbox-group .ant-checkbox-checked .ant-checkbox-inner{background-color:#367af6;border-color:#367af6}::ng-deep .rd-form-item-check .ant-checkbox-group .ant-checkbox-inner{border-radius:4px}::ng-deep .rd-form-item-check .ant-checkbox-group .ant-checkbox-checked:after{border-color:#367af6;border-radius:4px}:host .rd-form-item-check{position:relative;background-color:#fff;width:100%}:host .rd-form-item-check-label{font-size:14px;font-weight:500;color:#6b7280}\n"] }]
102
+ ], template: "<div>\n <div\n class=\"rd-form-item-check\"\n [ngClass]=\"{\n disabled: disabled,\n }\"\n >\n <div class=\"rd-form-item-check-label\">{{ label }}</div>\n <nz-checkbox-group\n [(ngModel)]=\"filteredOptions\"\n (ngModelChange)=\"handleValueChange($event)\"\n ></nz-checkbox-group>\n </div>\n</div>\n", styles: ["::ng-deep .rd-form-item-check .ant-checkbox-group{display:flex;margin-top:11px}::ng-deep .rd-form-item-check .ant-checkbox-group label{flex:1;color:#030712;font-size:14px;font-weight:500}::ng-deep .rd-form-item-check .ant-checkbox-group .ant-checkbox-checked .ant-checkbox-inner{background-color:#367af6;border-color:#367af6}::ng-deep .rd-form-item-check .ant-checkbox-group .ant-checkbox-inner{border-radius:4px}::ng-deep .rd-form-item-check .ant-checkbox-group .ant-checkbox-checked:after{border-color:#367af6;border-radius:4px}:host .rd-form-item-check{position:relative;background-color:#fff;width:100%}:host .rd-form-item-check-label{font-size:14px;font-weight:500;color:#6b7280}\n"] }]
96
103
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { label: [{
97
104
  type: Input
98
105
  }], name: [{