@wizishop/angular-components 0.0.239 → 0.0.241

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.
@@ -1,34 +1,65 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
2
3
  export class SwitchComponent {
3
- constructor() {
4
- // todo add ngmodel and review texts display (textState is mandaoty in order to display textStateEnable and textStateDisable)
4
+ constructor(changeDetectorRef) {
5
+ this.changeDetectorRef = changeDetectorRef;
6
+ // todo add ngmodel and review texts display (textState is mandatory in order to display textStateEnable and textStateDisable)
5
7
  this.value = false;
6
8
  this.textState = false;
7
9
  this.textStateEnable = '';
8
10
  this.textStateDisable = '';
9
- this.showInput = false;
11
+ this.showInput = false; // todo should not be handle here, but in another component
10
12
  this.danger = false;
11
13
  this.whiteSpace = false;
12
14
  this.switchChange = new EventEmitter(); // todo set emitted type
13
- this.changeInput = new EventEmitter(); // todo set emitted type
15
+ this.changeInput = new EventEmitter(); // todo set emitted type, should be removed
16
+ this.onChange = (value) => { };
17
+ this.onTouched = () => { };
14
18
  }
15
19
  ngOnInit() {
16
20
  this.id = 'switch-' + Math.floor(Math.random() * Math.floor(1000));
17
21
  }
18
22
  changeValue(event) {
19
- this.switchChange.emit(event.target.checked);
23
+ if (this.disabled) {
24
+ return;
25
+ }
26
+ this.value = event.target.checked;
27
+ this.switchChange.emit(this.value);
28
+ this.onChange(this.value);
20
29
  }
21
30
  triggerInput() {
22
31
  this.changeInput.emit(this.valueInput);
23
32
  }
33
+ writeValue(value) {
34
+ this.value = value;
35
+ }
36
+ registerOnChange(onChange) {
37
+ this.onChange = onChange;
38
+ }
39
+ onBlur() {
40
+ this.onTouched();
41
+ }
42
+ registerOnTouched(onTouched) {
43
+ this.onTouched = onTouched;
44
+ }
45
+ setDisabledState(disabled) {
46
+ this.disabled = disabled;
47
+ this.changeDetectorRef.markForCheck();
48
+ }
24
49
  }
25
50
  SwitchComponent.decorators = [
26
51
  { type: Component, args: [{
27
52
  selector: 'wac-switch',
28
- template: "<div class=\"wac-switch\">\n <input type=\"checkbox\" [checked]=\"value\" (change)=\"changeValue($event)\" [id]=\"id\" [ngClass]=\"{ danger: danger }\"/>\n <label [for]=\"id\" class=\"wac-switch__label\">\n <span class=\"wac-switch__label__text\"\n ><ng-content></ng-content\n ><span\n *ngIf=\"textState\"\n [ngStyle]=\"{'whiteSpace': whiteSpace ? 'nowrap' :'normal'}\"\n >{{ textState }} <strong class=\"disable\" *ngIf=\"textStateDisable\">{{ textStateDisable }}</strong>\n <strong class=\"enable\" *ngIf=\"textStateEnable\">{{ textStateEnable }}</strong></span\n ></span\n >\n </label>\n</div>\n<div class=\"wac-show-input\" *ngIf=\"showInput && value\">\n <input [placeholder]=\"placholderInput\" type=\"text\" [(ngModel)]=\"valueInput\" (blur)=\"triggerInput()\" />\n</div>\n"
53
+ template: "<div class=\"wac-switch\">\n <input type=\"checkbox\" [checked]=\"value\" (change)=\"changeValue($event)\" [id]=\"id\" [ngClass]=\"{ danger: danger }\" [disabled]=\"disabled\"/>\n <label [for]=\"id\" class=\"wac-switch__label\">\n <span class=\"wac-switch__label__text\"\n ><ng-content></ng-content\n ><span\n *ngIf=\"textState\"\n [ngStyle]=\"{'whiteSpace': whiteSpace ? 'nowrap' :'normal'}\"\n >{{ textState }} <strong class=\"disable\" *ngIf=\"textStateDisable\">{{ textStateDisable }}</strong>\n <strong class=\"enable\" *ngIf=\"textStateEnable\">{{ textStateEnable }}</strong></span\n ></span\n >\n </label>\n</div>\n<div class=\"wac-show-input\" *ngIf=\"showInput && value\">\n <input [placeholder]=\"placholderInput\" type=\"text\" [(ngModel)]=\"valueInput\" (blur)=\"triggerInput()\" />\n</div>\n",
54
+ providers: [
55
+ { provide: NG_VALUE_ACCESSOR, useExisting: SwitchComponent, multi: true },
56
+ ],
57
+ changeDetection: ChangeDetectionStrategy.OnPush
29
58
  },] }
30
59
  ];
31
- SwitchComponent.ctorParameters = () => [];
60
+ SwitchComponent.ctorParameters = () => [
61
+ { type: ChangeDetectorRef }
62
+ ];
32
63
  SwitchComponent.propDecorators = {
33
64
  value: [{ type: Input }],
34
65
  textState: [{ type: Input }],
@@ -41,4 +72,4 @@ SwitchComponent.propDecorators = {
41
72
  switchChange: [{ type: Output }],
42
73
  changeInput: [{ type: Output }]
43
74
  };
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc3dpdGNoL3N3aXRjaC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUsvRSxNQUFNLE9BQU8sZUFBZTtJQWMxQjtRQWJBLDZIQUE2SDtRQUNwSCxVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDdEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUMzQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUMsQ0FBQyx3QkFBd0I7UUFDaEUsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDLENBQUMsd0JBQXdCO0lBRzFELENBQUM7SUFDaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxFQUFFLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsV0FBVyxDQUFDLEtBQVU7UUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ0QsWUFBWTtRQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QyxDQUFDOzs7WUEzQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxZQUFZO2dCQUN0Qiw2MEJBQXNDO2FBQ3ZDOzs7O29CQUdFLEtBQUs7d0JBQ0wsS0FBSzs4QkFDTCxLQUFLOytCQUNMLEtBQUs7d0JBQ0wsS0FBSzs4QkFDTCxLQUFLO3FCQUNMLEtBQUs7eUJBQ0wsS0FBSzsyQkFDTCxNQUFNOzBCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3YWMtc3dpdGNoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N3aXRjaC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU3dpdGNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gdG9kbyBhZGQgbmdtb2RlbCBhbmQgcmV2aWV3IHRleHRzIGRpc3BsYXkgKHRleHRTdGF0ZSBpcyBtYW5kYW90eSBpbiBvcmRlciB0byBkaXNwbGF5IHRleHRTdGF0ZUVuYWJsZSBhbmQgdGV4dFN0YXRlRGlzYWJsZSlcbiAgQElucHV0KCkgdmFsdWUgPSBmYWxzZTtcbiAgQElucHV0KCkgdGV4dFN0YXRlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRleHRTdGF0ZUVuYWJsZSA9ICcnO1xuICBASW5wdXQoKSB0ZXh0U3RhdGVEaXNhYmxlID0gJyc7XG4gIEBJbnB1dCgpIHNob3dJbnB1dCA9IGZhbHNlO1xuICBASW5wdXQoKSBwbGFjaG9sZGVySW5wdXQ6IHN0cmluZztcbiAgQElucHV0KCkgZGFuZ2VyID0gZmFsc2U7XG4gIEBJbnB1dCgpIHdoaXRlU3BhY2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHN3aXRjaENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpOyAvLyB0b2RvIHNldCBlbWl0dGVkIHR5cGVcbiAgQE91dHB1dCgpIGNoYW5nZUlucHV0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7IC8vIHRvZG8gc2V0IGVtaXR0ZWQgdHlwZVxuICB2YWx1ZUlucHV0OiBzdHJpbmc7XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcigpIHt9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaWQgPSAnc3dpdGNoLScgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBNYXRoLmZsb29yKDEwMDApKTtcbiAgfVxuICBjaGFuZ2VWYWx1ZShldmVudDogYW55KSB7XG4gICAgdGhpcy5zd2l0Y2hDaGFuZ2UuZW1pdChldmVudC50YXJnZXQuY2hlY2tlZCk7XG4gIH1cbiAgdHJpZ2dlcklucHV0KCkge1xuICAgIHRoaXMuY2hhbmdlSW5wdXQuZW1pdCh0aGlzLnZhbHVlSW5wdXQpO1xuICB9XG59XG4iXX0=
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc3dpdGNoL3N3aXRjaC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzSCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFTekUsTUFBTSxPQUFPLGVBQWU7SUFpQjFCLFlBQW9CLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBaEJ4RCw4SEFBOEg7UUFDckgsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNkLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFDckIscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLGNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQywyREFBMkQ7UUFFOUUsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDM0IsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDLENBQUMsd0JBQXdCO1FBQ2hFLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQyxDQUFDLDJDQUEyQztRQXlCcEYsYUFBUSxHQUE2QixDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBYW5ELGNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFoQzhCLENBQUM7SUFFNUQsUUFBUTtRQUNOLElBQUksQ0FBQyxFQUFFLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVU7UUFDcEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFHO1lBQ2xCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzNCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFJRCxVQUFVLENBQUMsS0FBYztRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsUUFBYTtRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBSUQsaUJBQWlCLENBQUMsU0FBYztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBaUI7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hDLENBQUM7OztZQWxFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLHEyQkFBc0M7Z0JBQ3RDLFNBQVMsRUFBRTtvQkFDVCxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7aUJBQzFFO2dCQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEOzs7WUFUaUMsaUJBQWlCOzs7b0JBWWhELEtBQUs7d0JBQ0wsS0FBSzs4QkFDTCxLQUFLOytCQUNMLEtBQUs7d0JBQ0wsS0FBSzs4QkFDTCxLQUFLO3FCQUNMLEtBQUs7eUJBQ0wsS0FBSzsyQkFDTCxNQUFNOzBCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dhYy1zd2l0Y2gnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3dpdGNoLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IFN3aXRjaENvbXBvbmVudCwgbXVsdGk6IHRydWUgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU3dpdGNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIC8vIHRvZG8gYWRkIG5nbW9kZWwgYW5kIHJldmlldyB0ZXh0cyBkaXNwbGF5ICh0ZXh0U3RhdGUgaXMgbWFuZGF0b3J5IGluIG9yZGVyIHRvIGRpc3BsYXkgdGV4dFN0YXRlRW5hYmxlIGFuZCB0ZXh0U3RhdGVEaXNhYmxlKVxuICBASW5wdXQoKSB2YWx1ZSA9IGZhbHNlO1xuICBASW5wdXQoKSB0ZXh0U3RhdGUgPSBmYWxzZTtcbiAgQElucHV0KCkgdGV4dFN0YXRlRW5hYmxlID0gJyc7XG4gIEBJbnB1dCgpIHRleHRTdGF0ZURpc2FibGUgPSAnJztcbiAgQElucHV0KCkgc2hvd0lucHV0ID0gZmFsc2U7IC8vIHRvZG8gc2hvdWxkIG5vdCBiZSBoYW5kbGUgaGVyZSwgYnV0IGluIGFub3RoZXIgY29tcG9uZW50XG4gIEBJbnB1dCgpIHBsYWNob2xkZXJJbnB1dDogc3RyaW5nOyAvLyB0b2RvIHNob3VsZCBiZSByZW1vdmVkIGZyb20gaGVyZVxuICBASW5wdXQoKSBkYW5nZXIgPSBmYWxzZTtcbiAgQElucHV0KCkgd2hpdGVTcGFjZTogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgc3dpdGNoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7IC8vIHRvZG8gc2V0IGVtaXR0ZWQgdHlwZVxuICBAT3V0cHV0KCkgY2hhbmdlSW5wdXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTsgLy8gdG9kbyBzZXQgZW1pdHRlZCB0eXBlLCBzaG91bGQgYmUgcmVtb3ZlZFxuICB2YWx1ZUlucHV0OiBzdHJpbmc7XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuXG4gIGRpc2FibGVkOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaWQgPSAnc3dpdGNoLScgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBNYXRoLmZsb29yKDEwMDApKTtcbiAgfVxuXG4gIGNoYW5nZVZhbHVlKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy52YWx1ZSA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xuICAgIHRoaXMuc3dpdGNoQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKVxuICB9XG5cbiAgdHJpZ2dlcklucHV0KCkge1xuICAgIHRoaXMuY2hhbmdlSW5wdXQuZW1pdCh0aGlzLnZhbHVlSW5wdXQpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkID0gKHZhbHVlKSA9PiB7fTtcblxuICB3cml0ZVZhbHVlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG4gIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBvbkNoYW5nZTtcbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { NwbFilterRoutingBuilder, NwbAllModule, NwbFilterGroup } from '@wizishop/ng-wizi-bulma';
2
- import { Component, ViewEncapsulation, Input, EventEmitter, Output, Directive, HostListener, ɵɵdefineInjectable, ɵɵinject, ComponentFactoryResolver, ApplicationRef, INJECTOR, Injectable, Injector, ElementRef, Renderer2, TemplateRef, ViewContainerRef, NgModule, Inject, ContentChildren, ViewChild, Pipe, ChangeDetectionStrategy } from '@angular/core';
2
+ import { Component, ViewEncapsulation, Input, EventEmitter, Output, Directive, HostListener, ɵɵdefineInjectable, ɵɵinject, ComponentFactoryResolver, ApplicationRef, INJECTOR, Injectable, Injector, ElementRef, Renderer2, TemplateRef, ViewContainerRef, NgModule, Inject, ContentChildren, ViewChild, ChangeDetectionStrategy, ChangeDetectorRef, Pipe } from '@angular/core';
3
3
  import { CommonModule, DOCUMENT } from '@angular/common';
4
4
  import { NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
5
5
  import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';
@@ -2001,35 +2001,65 @@ ProgressBarComponent.propDecorators = {
2001
2001
  };
2002
2002
 
2003
2003
  class SwitchComponent {
2004
- constructor() {
2005
- // todo add ngmodel and review texts display (textState is mandaoty in order to display textStateEnable and textStateDisable)
2004
+ constructor(changeDetectorRef) {
2005
+ this.changeDetectorRef = changeDetectorRef;
2006
+ // todo add ngmodel and review texts display (textState is mandatory in order to display textStateEnable and textStateDisable)
2006
2007
  this.value = false;
2007
2008
  this.textState = false;
2008
2009
  this.textStateEnable = '';
2009
2010
  this.textStateDisable = '';
2010
- this.showInput = false;
2011
+ this.showInput = false; // todo should not be handle here, but in another component
2011
2012
  this.danger = false;
2012
2013
  this.whiteSpace = false;
2013
2014
  this.switchChange = new EventEmitter(); // todo set emitted type
2014
- this.changeInput = new EventEmitter(); // todo set emitted type
2015
+ this.changeInput = new EventEmitter(); // todo set emitted type, should be removed
2016
+ this.onChange = (value) => { };
2017
+ this.onTouched = () => { };
2015
2018
  }
2016
2019
  ngOnInit() {
2017
2020
  this.id = 'switch-' + Math.floor(Math.random() * Math.floor(1000));
2018
2021
  }
2019
2022
  changeValue(event) {
2020
- this.switchChange.emit(event.target.checked);
2023
+ if (this.disabled) {
2024
+ return;
2025
+ }
2026
+ this.value = event.target.checked;
2027
+ this.switchChange.emit(this.value);
2028
+ this.onChange(this.value);
2021
2029
  }
2022
2030
  triggerInput() {
2023
2031
  this.changeInput.emit(this.valueInput);
2024
2032
  }
2033
+ writeValue(value) {
2034
+ this.value = value;
2035
+ }
2036
+ registerOnChange(onChange) {
2037
+ this.onChange = onChange;
2038
+ }
2039
+ onBlur() {
2040
+ this.onTouched();
2041
+ }
2042
+ registerOnTouched(onTouched) {
2043
+ this.onTouched = onTouched;
2044
+ }
2045
+ setDisabledState(disabled) {
2046
+ this.disabled = disabled;
2047
+ this.changeDetectorRef.markForCheck();
2048
+ }
2025
2049
  }
2026
2050
  SwitchComponent.decorators = [
2027
2051
  { type: Component, args: [{
2028
2052
  selector: 'wac-switch',
2029
- template: "<div class=\"wac-switch\">\n <input type=\"checkbox\" [checked]=\"value\" (change)=\"changeValue($event)\" [id]=\"id\" [ngClass]=\"{ danger: danger }\"/>\n <label [for]=\"id\" class=\"wac-switch__label\">\n <span class=\"wac-switch__label__text\"\n ><ng-content></ng-content\n ><span\n *ngIf=\"textState\"\n [ngStyle]=\"{'whiteSpace': whiteSpace ? 'nowrap' :'normal'}\"\n >{{ textState }} <strong class=\"disable\" *ngIf=\"textStateDisable\">{{ textStateDisable }}</strong>\n <strong class=\"enable\" *ngIf=\"textStateEnable\">{{ textStateEnable }}</strong></span\n ></span\n >\n </label>\n</div>\n<div class=\"wac-show-input\" *ngIf=\"showInput && value\">\n <input [placeholder]=\"placholderInput\" type=\"text\" [(ngModel)]=\"valueInput\" (blur)=\"triggerInput()\" />\n</div>\n"
2053
+ template: "<div class=\"wac-switch\">\n <input type=\"checkbox\" [checked]=\"value\" (change)=\"changeValue($event)\" [id]=\"id\" [ngClass]=\"{ danger: danger }\" [disabled]=\"disabled\"/>\n <label [for]=\"id\" class=\"wac-switch__label\">\n <span class=\"wac-switch__label__text\"\n ><ng-content></ng-content\n ><span\n *ngIf=\"textState\"\n [ngStyle]=\"{'whiteSpace': whiteSpace ? 'nowrap' :'normal'}\"\n >{{ textState }} <strong class=\"disable\" *ngIf=\"textStateDisable\">{{ textStateDisable }}</strong>\n <strong class=\"enable\" *ngIf=\"textStateEnable\">{{ textStateEnable }}</strong></span\n ></span\n >\n </label>\n</div>\n<div class=\"wac-show-input\" *ngIf=\"showInput && value\">\n <input [placeholder]=\"placholderInput\" type=\"text\" [(ngModel)]=\"valueInput\" (blur)=\"triggerInput()\" />\n</div>\n",
2054
+ providers: [
2055
+ { provide: NG_VALUE_ACCESSOR, useExisting: SwitchComponent, multi: true },
2056
+ ],
2057
+ changeDetection: ChangeDetectionStrategy.OnPush
2030
2058
  },] }
2031
2059
  ];
2032
- SwitchComponent.ctorParameters = () => [];
2060
+ SwitchComponent.ctorParameters = () => [
2061
+ { type: ChangeDetectorRef }
2062
+ ];
2033
2063
  SwitchComponent.propDecorators = {
2034
2064
  value: [{ type: Input }],
2035
2065
  textState: [{ type: Input }],