@sd-angular/core 1.3.214 → 1.3.217

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 (58) hide show
  1. package/bundles/sd-angular-core-checkbox.umd.js +29 -3
  2. package/bundles/sd-angular-core-checkbox.umd.js.map +1 -1
  3. package/bundles/sd-angular-core-checkbox.umd.min.js +2 -2
  4. package/bundles/sd-angular-core-checkbox.umd.min.js.map +1 -1
  5. package/bundles/sd-angular-core-date-time.umd.js +14 -6
  6. package/bundles/sd-angular-core-date-time.umd.js.map +1 -1
  7. package/bundles/sd-angular-core-date-time.umd.min.js +1 -1
  8. package/bundles/sd-angular-core-date-time.umd.min.js.map +1 -1
  9. package/bundles/sd-angular-core-input-number.umd.js +3 -0
  10. package/bundles/sd-angular-core-input-number.umd.js.map +1 -1
  11. package/bundles/sd-angular-core-input-number.umd.min.js +1 -1
  12. package/bundles/sd-angular-core-input-number.umd.min.js.map +1 -1
  13. package/bundles/sd-angular-core-input-upload-file.umd.js +54 -3
  14. package/bundles/sd-angular-core-input-upload-file.umd.js.map +1 -1
  15. package/bundles/sd-angular-core-input-upload-file.umd.min.js +2 -2
  16. package/bundles/sd-angular-core-input-upload-file.umd.min.js.map +1 -1
  17. package/bundles/sd-angular-core-radio.umd.js +22 -2
  18. package/bundles/sd-angular-core-radio.umd.js.map +1 -1
  19. package/bundles/sd-angular-core-radio.umd.min.js +2 -2
  20. package/bundles/sd-angular-core-radio.umd.min.js.map +1 -1
  21. package/bundles/sd-angular-core-switch.umd.js +34 -7
  22. package/bundles/sd-angular-core-switch.umd.js.map +1 -1
  23. package/bundles/sd-angular-core-switch.umd.min.js +2 -2
  24. package/bundles/sd-angular-core-switch.umd.min.js.map +1 -1
  25. package/checkbox/sd-angular-core-checkbox.metadata.json +1 -1
  26. package/checkbox/src/lib/checkbox.component.d.ts +4 -1
  27. package/date-time/sd-angular-core-date-time.metadata.json +1 -1
  28. package/date-time/src/lib/date-time.component.d.ts +1 -0
  29. package/esm2015/checkbox/src/lib/checkbox.component.js +26 -4
  30. package/esm2015/date-time/src/lib/date-time.component.js +8 -2
  31. package/esm2015/date-time/src/lib/date-time.module.js +6 -2
  32. package/esm2015/input-number/src/lib/input-number.component.js +4 -1
  33. package/esm2015/input-upload-file/src/lib/input-upload-file.component.js +44 -5
  34. package/esm2015/radio/src/lib/radio.component.js +19 -3
  35. package/esm2015/switch/src/lib/switch.component.js +26 -4
  36. package/esm2015/switch/src/lib/switch.module.js +3 -1
  37. package/fesm2015/sd-angular-core-checkbox.js +25 -3
  38. package/fesm2015/sd-angular-core-checkbox.js.map +1 -1
  39. package/fesm2015/sd-angular-core-date-time.js +12 -2
  40. package/fesm2015/sd-angular-core-date-time.js.map +1 -1
  41. package/fesm2015/sd-angular-core-input-number.js +3 -0
  42. package/fesm2015/sd-angular-core-input-number.js.map +1 -1
  43. package/fesm2015/sd-angular-core-input-upload-file.js +43 -4
  44. package/fesm2015/sd-angular-core-input-upload-file.js.map +1 -1
  45. package/fesm2015/sd-angular-core-radio.js +18 -2
  46. package/fesm2015/sd-angular-core-radio.js.map +1 -1
  47. package/fesm2015/sd-angular-core-switch.js +27 -3
  48. package/fesm2015/sd-angular-core-switch.js.map +1 -1
  49. package/input-number/sd-angular-core-input-number.metadata.json +1 -1
  50. package/input-number/src/lib/input-number.component.d.ts +1 -0
  51. package/input-upload-file/sd-angular-core-input-upload-file.metadata.json +1 -1
  52. package/input-upload-file/src/lib/input-upload-file.component.d.ts +8 -1
  53. package/package.json +1 -1
  54. package/radio/sd-angular-core-radio.metadata.json +1 -1
  55. package/radio/src/lib/radio.component.d.ts +4 -1
  56. package/{sd-angular-core-1.3.214.tgz → sd-angular-core-1.3.217.tgz} +0 -0
  57. package/switch/sd-angular-core-switch.metadata.json +1 -1
  58. package/switch/src/lib/switch.component.d.ts +4 -1
@@ -1,4 +1,4 @@
1
- var _model, _subscription, _modelChanges, _validate, _uploadFile, _validator;
1
+ var _model, _subscription, _modelChanges, _updateValidator, _validate, _uploadFile, _validator;
2
2
  import { __awaiter, __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
3
  import { Component, Input, Output, EventEmitter, ChangeDetectorRef, } from '@angular/core';
4
4
  import * as uuid from 'uuid';
@@ -7,7 +7,7 @@ import { SdNotifyService } from '@sd-angular/core/notify';
7
7
  import { SdTranslateService } from '@sd-angular/core/translate';
8
8
  import { Subscription, Subject } from 'rxjs';
9
9
  import { startWith } from 'rxjs/operators';
10
- import { FormControl } from '@angular/forms';
10
+ import { FormControl, Validators } from '@angular/forms';
11
11
  class SdInputUploadFiletStateMatcher {
12
12
  constructor(formControl) {
13
13
  this.formControl = formControl;
@@ -30,6 +30,8 @@ export class SdInputUploadFile {
30
30
  this.min = 0;
31
31
  this.max = 1;
32
32
  _model.set(this, void 0);
33
+ this.disableErrorMessage = false;
34
+ this.isRequired = false;
33
35
  this.modelChange = new EventEmitter();
34
36
  this.sdChange = new EventEmitter();
35
37
  this.inputControl = new FormControl();
@@ -37,6 +39,23 @@ export class SdInputUploadFile {
37
39
  this.matcher = new SdInputUploadFiletStateMatcher(this.formControl);
38
40
  _subscription.set(this, new Subscription());
39
41
  _modelChanges.set(this, new Subject());
42
+ _updateValidator.set(this, () => {
43
+ this.formControl.clearValidators();
44
+ this.formControl.clearAsyncValidators();
45
+ const validators = [];
46
+ const asyncValidators = [];
47
+ if (this.isRequired) {
48
+ validators.push(Validators.required);
49
+ }
50
+ if (this.inlineError) {
51
+ validators.push(this.customInlineErrorValidator());
52
+ }
53
+ this.formControl.setValidators(validators);
54
+ this.formControl.setAsyncValidators(asyncValidators);
55
+ this.formControl.updateValueAndValidity();
56
+ }
57
+ // Hàm tạo Validators tùy chỉnh cho inlineError
58
+ );
40
59
  _validate.set(this, (file) => __awaiter(this, void 0, void 0, function* () {
41
60
  var _a;
42
61
  if (this.type === 'image') {
@@ -172,10 +191,27 @@ export class SdInputUploadFile {
172
191
  __classPrivateFieldGet(this, _modelChanges).next(__classPrivateFieldGet(this, _model));
173
192
  }
174
193
  }
194
+ set _disableErrorMessage(val) {
195
+ this.disableErrorMessage = (val === '') || val;
196
+ }
197
+ set _inlineError(val) {
198
+ this.inlineError = val;
199
+ __classPrivateFieldGet(this, _updateValidator).call(this);
200
+ }
201
+ set required(val) {
202
+ this.isRequired = (val === '') || val;
203
+ __classPrivateFieldGet(this, _updateValidator).call(this);
204
+ }
175
205
  ngOnInit() {
176
206
  this.formControl.setValidators([__classPrivateFieldGet(this, _validator)]);
177
207
  this.inputControl.disable();
178
208
  }
209
+ // Hàm tạo Validators tùy chỉnh cho inlineError
210
+ customInlineErrorValidator() {
211
+ return (control) => {
212
+ return { inlineError: true };
213
+ };
214
+ }
179
215
  ngAfterViewInit() {
180
216
  __classPrivateFieldGet(this, _subscription).add(__classPrivateFieldGet(this, _modelChanges).pipe(startWith(__classPrivateFieldGet(this, _model))).subscribe((previewFiles) => {
181
217
  if (Array.isArray(previewFiles)) {
@@ -200,11 +236,11 @@ export class SdInputUploadFile {
200
236
  __classPrivateFieldGet(this, _subscription).unsubscribe();
201
237
  }
202
238
  }
203
- _model = new WeakMap(), _subscription = new WeakMap(), _modelChanges = new WeakMap(), _validate = new WeakMap(), _uploadFile = new WeakMap(), _validator = new WeakMap();
239
+ _model = new WeakMap(), _subscription = new WeakMap(), _modelChanges = new WeakMap(), _updateValidator = new WeakMap(), _validate = new WeakMap(), _uploadFile = new WeakMap(), _validator = new WeakMap();
204
240
  SdInputUploadFile.decorators = [
205
241
  { type: Component, args: [{
206
242
  selector: 'sd-input-upload-file',
207
- template: "<mat-form-field class=\"sd-md\" appearance=\"outline\">\r\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\r\n <mat-chip-list [formControl]=\"formControl\" #chipList>\r\n <ng-container *ngFor=\"let item of previewFiles\">\r\n <mat-chip *ngIf=\"item\" [removable]=\"!formControl.disabled\" (removed)=\"onRemove(item)\"\r\n [removable]=\"formControl.disabled\">\r\n <span>{{item.fileName || item.src}}</span>\r\n <mat-icon matChipRemove *ngIf=\"!formControl.disabled\">cancel</mat-icon>\r\n </mat-chip>\r\n </ng-container>\r\n <input [formControl]=\"inputControl\" [placeholder]=\"placeholder || label\" [matChipInputFor]=\"chipList\"\r\n autocomplete=\"off\" [errorStateMatcher]=\"matcher\" matInput>\r\n <mat-icon class=\"pointer sd-suffix-icon\" (click)=\"onUpload()\" matSuffix>file_upload\r\n </mat-icon>\r\n </mat-chip-list>\r\n <mat-error *ngIf=\"formControl?.errors?.min\">\r\n {{formControl?.errors?.min}}\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl?.errors?.max\">\r\n {{formControl?.errors?.max}}\r\n </mat-error>\r\n</mat-form-field>",
243
+ template: "<mat-form-field class=\"sd-md\" appearance=\"outline\">\r\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\r\n <mat-chip-list [formControl]=\"formControl\" #chipList>\r\n <ng-container *ngFor=\"let item of previewFiles\">\r\n <mat-chip *ngIf=\"item\" [removable]=\"!formControl.disabled\" (removed)=\"onRemove(item)\"\r\n [removable]=\"formControl.disabled\">\r\n <span>{{item.fileName || item.src}}</span>\r\n <mat-icon matChipRemove *ngIf=\"!formControl.disabled\">cancel</mat-icon>\r\n </mat-chip>\r\n </ng-container>\r\n <input [formControl]=\"inputControl\" [placeholder]=\"placeholder || label\" [matChipInputFor]=\"chipList\"\r\n autocomplete=\"off\" [errorStateMatcher]=\"matcher\" matInput>\r\n <mat-icon class=\"pointer sd-suffix-icon\" (click)=\"onUpload()\" matSuffix>file_upload\r\n </mat-icon>\r\n </mat-chip-list>\r\n <mat-error *ngIf=\"formControl.errors?.required\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{ \"This field is required\" | sdTranslate }}</ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl?.errors?.min\">\r\n {{formControl?.errors?.min}}\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl?.errors?.max\">\r\n {{formControl?.errors?.max}}\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.inlineError\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{inlineError}}</ng-container>\r\n </mat-error>\r\n</mat-form-field>",
208
244
  styles: [":host{display:block;padding-top:5px}"]
209
245
  },] }
210
246
  ];
@@ -225,7 +261,10 @@ SdInputUploadFile.propDecorators = {
225
261
  maxHeight: [{ type: Input }],
226
262
  disabled: [{ type: Input }],
227
263
  model: [{ type: Input }],
264
+ _disableErrorMessage: [{ type: Input, args: ['disableErrorMessage',] }],
265
+ _inlineError: [{ type: Input, args: ['inlineError',] }],
266
+ required: [{ type: Input }],
228
267
  modelChange: [{ type: Output }],
229
268
  sdChange: [{ type: Output }]
230
269
  };
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdXBsb2FkLWZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9pbnB1dC11cGxvYWQtZmlsZS8iLCJzb3VyY2VzIjpbInNyYy9saWIvaW5wdXQtdXBsb2FkLWZpbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixpQkFBaUIsR0FJbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBNEQsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RyxNQUFNLDhCQUE4QjtJQUNsQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFJLENBQUM7SUFDakQsWUFBWSxDQUFDLE9BQTJCLEVBQUUsSUFBd0M7O1FBQ2hGLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxPQUFPLEtBQUksQ0FBQyxPQUFBLElBQUksQ0FBQyxXQUFXLDBDQUFFLEtBQUssWUFBSSxJQUFJLENBQUMsV0FBVywwQ0FBRSxPQUFPLENBQUEs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QUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO29CQUNqQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxRQUFRLEVBQUU7d0JBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDOzRCQUNyQixJQUFJLEVBQUUsSUFBSTs0QkFDVixHQUFHLEVBQUUsV0FBVzt5QkFDakIsQ0FBQyxDQUFBO3FCQUNIO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO3FCQUNyQztnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUMxQztRQUNILENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNULDRDQUFtQixXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDOzs7O1lBekVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyx5bUNBQWlEOzthQUVsRDs7O1lBeEJDLGlCQUFpQjtZQU9WLGVBQWU7WUFDZixrQkFBa0I7OztvQkFvQnhCLEtBQUs7MEJBQ0wsS0FBSzttQkFDTCxLQUFLO3lCQUNMLEtBQUs7a0JBQ0wsS0FBSztrQkFDTCxLQUFLO3NCQUNMLEtBQUs7dUJBQ0wsS0FBSzt3QkFDTCxLQUFLO3VCQUVMLEtBQUs7b0JBU0wsS0FBSzswQkFNTCxNQUFNO3VCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcclxuaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcclxuaW1wb3J0IHsgU2ROb3RpZnlTZXJ2aWNlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9ub3RpZnknO1xyXG5pbXBvcnQgeyBTZFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3RyYW5zbGF0ZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEVycm9yU3RhdGVNYXRjaGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXBEaXJlY3RpdmUsIE5nRm9ybSwgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuY2xhc3MgU2RJbnB1dFVwbG9hZEZpbGV0U3RhdGVNYXRjaGVyIGltcGxlbWVudHMgRXJyb3JTdGF0ZU1hdGNoZXIge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sKSB7IH1cclxuICBpc0Vycm9yU3RhdGUoY29udHJvbDogRm9ybUNvbnRyb2wgfCBudWxsLCBmb3JtOiBGb3JtR3JvdXBEaXJlY3RpdmUgfCBOZ0Zvcm0gfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBpc1N1Ym1pdHRlZCA9IGZvcm0gJiYgZm9ybS5zdWJtaXR0ZWQ7XHJcbiAgICByZXR1cm4gISEodGhpcy5mb3JtQ29udHJvbD8uaW52YWxpZCAmJiAodGhpcy5mb3JtQ29udHJvbD8uZGlydHkgfHwgdGhpcy5mb3JtQ29udHJvbD8udG91Y2hlZCB8fCBpc1N1Ym1pdHRlZCkpO1xyXG4gIH1cclxufVxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWlucHV0LXVwbG9hZC1maWxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtdXBsb2FkLWZpbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LXVwbG9hZC1maWxlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNkSW5wdXRVcGxvYWRGaWxlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIGlkID0gYEkke3V1aWQudjQoKX1gO1xyXG4gIHByZXZpZXdGaWxlczogU2RQcmV2aWV3RmlsZVtdID0gW107XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHR5cGU6ICdpbWFnZScgfCAnZmlsZScgPSAnZmlsZSc7XHJcbiAgQElucHV0KCkgZXh0ZW5zaW9uczogc3RyaW5nW10gPSBbXTtcclxuICBASW5wdXQoKSBtaW4gPSAwO1xyXG4gIEBJbnB1dCgpIG1heCA9IDE7XHJcbiAgQElucHV0KCkgbWF4U2l6ZTogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIG1heFdpZHRoOiBudW1iZXI7XHJcbiAgQElucHV0KCkgbWF4SGVpZ2h0OiBudW1iZXI7XHJcbiAgLy8gT3B0aW9uYWxcclxuICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcbiAgI21vZGVsOiAoc3RyaW5nIHwgU2RQcmV2aWV3RmlsZSlbXTtcclxuICBASW5wdXQoKSBzZXQgbW9kZWwobW9kZWw6IChzdHJpbmcgfCBTZFByZXZpZXdGaWxlKVtdKSB7XHJcbiAgICBpZiAodGhpcy5wcmV2aWV3RmlsZXMgIT09IG1vZGVsICYmIEFycmF5LmlzQXJyYXkobW9kZWwpKSB7XHJcbiAgICAgIHRoaXMuI21vZGVsID0gbW9kZWw7XHJcbiAgICAgIHRoaXMuI21vZGVsQ2hhbmdlcy5uZXh0KHRoaXMuI21vZGVsKTtcclxuICAgIH1cclxuICB9XHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjwoc3RyaW5nIHwgU2RQcmV2aWV3RmlsZSlbXT4oKTtcclxuICBAT3V0cHV0KCkgc2RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPChzdHJpbmcgfCBTZFByZXZpZXdGaWxlKVtdPigpO1xyXG4gIGlucHV0Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIGZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgbWF0Y2hlciA9IG5ldyBTZElucHV0VXBsb2FkRmlsZXRTdGF0ZU1hdGNoZXIodGhpcy5mb3JtQ29udHJvbCk7XHJcbiAgI3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICAjbW9kZWxDaGFuZ2VzID0gbmV3IFN1YmplY3Q8KHN0cmluZyB8IFNkUHJldmlld0ZpbGUpW10+KCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIG5vdGlmeVNlcnZpY2U6IFNkTm90aWZ5U2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogU2RUcmFuc2xhdGVTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyhbdGhpcy4jdmFsaWRhdG9yXSk7XHJcbiAgICB0aGlzLmlucHV0Q29udHJvbC5kaXNhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuI21vZGVsQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLiNtb2RlbCkpLnN1YnNjcmliZSgocHJldmlld0ZpbGVzKSA9PiB7XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHByZXZpZXdGaWxlcykpIHtcclxuICAgICAgICB0aGlzLnByZXZpZXdGaWxlcyA9IFtdO1xyXG4gICAgICAgIHByZXZpZXdGaWxlcy5mb3JFYWNoKHByZXZpZXdGaWxlID0+IHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgKHByZXZpZXdGaWxlKSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgdGhpcy5wcmV2aWV3RmlsZXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgZmlsZTogbnVsbCxcclxuICAgICAgICAgICAgICBzcmM6IHByZXZpZXdGaWxlXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnByZXZpZXdGaWxlcy5wdXNoKHByZXZpZXdGaWxlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMucHJldmlld0ZpbGVzKTtcclxuICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodGhpcy5wcmV2aWV3RmlsZXMpO1xyXG4gICAgICB9XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgI3ZhbGlkYXRlID0gYXN5bmMgKGZpbGU6IEZpbGUpOiBQcm9taXNlPHN0cmluZz4gPT4ge1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2ltYWdlJykge1xyXG4gICAgICBpZiAoZmlsZS50eXBlLnNwbGl0KCcvJylbMF0gIT09ICdpbWFnZScpIHtcclxuICAgICAgICByZXR1cm4gYFske2ZpbGUubmFtZX1dICR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZSgnVXBsb2FkZWQgZmlsZSBpcyBub3QgYW4gaW1hZ2UnKX1gO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5leHRlbnNpb25zPy5sZW5ndGgpIHtcclxuICAgICAgY29uc3QgbGFzdERvdCA9IGZpbGUubmFtZS5sYXN0SW5kZXhPZignLicpO1xyXG4gICAgICBjb25zdCBleHRlbnNpb24gPSBmaWxlLm5hbWUuc3Vic3RyaW5nKGxhc3REb3QgKyAxKTtcclxuICAgICAgaWYgKCF0aGlzLmV4dGVuc2lvbnMuc29tZShlID0+IGUudG9VcHBlckNhc2UoKSA9PT0gZXh0ZW5zaW9uLnRvVXBwZXJDYXNlKCkpKSB7XHJcbiAgICAgICAgcmV0dXJuIGBbJHtmaWxlLm5hbWV9XSAke3RoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ1VwbG9hZGVkIGZpbGUgaXMgbm90IG1hdGNoIGV4dGVuc2lvbicpfSAke3RoaXMuZXh0ZW5zaW9ucy5qb2luKCcsICcpfWA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1heFNpemUpIHtcclxuICAgICAgaWYgKHRoaXMubWF4U2l6ZSAqIDEwMjQgKiAxMDI0IDwgZmlsZS5zaXplKSB7XHJcbiAgICAgICAgcmV0dXJuIGBbJHtmaWxlLm5hbWV9XSAke3RoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ01heCBmaWxlIHNpemUnKX0gJHt0aGlzLm1heFNpemV9IE1ic2A7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdpbWFnZScgJiYgKHRoaXMubWF4V2lkdGggfHwgdGhpcy5tYXhIZWlnaHQpKSB7XHJcbiAgICAgIGNvbnN0IG1lc3NhZ2U6IHN0cmluZyA9IGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG4gICAgICAgIGNvbnN0IFVSTCA9IHdpbmRvdy5VUkwgfHwgd2luZG93LndlYmtpdFVSTDtcclxuICAgICAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcclxuICAgICAgICBpbWcub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMubWF4V2lkdGggJiYgaW1nLndpZHRoID4gdGhpcy5tYXhXaWR0aCkge1xyXG4gICAgICAgICAgICByZXNvbHZlKGBbJHtmaWxlLm5hbWV9XSAke3RoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ01heCBpbWFnZSB3aWR0aCcpfSAke3RoaXMubWF4V2lkdGh9cHhgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLm1heEhlaWdodCAmJiBpbWcuaGVpZ2h0ID4gdGhpcy5tYXhIZWlnaHQpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZShgWyR7ZmlsZS5uYW1lfV0gJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdNYXggaW1hZ2UgaGVpZ2h0Jyl9ICR7dGhpcy5tYXhIZWlnaHR9cHhgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJlc29sdmUobnVsbCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBpbWcuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChtZXNzYWdlKSB7XHJcbiAgICAgICAgcmV0dXJuIG1lc3NhZ2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgb25VcGxvYWQgPSAoKSA9PiB7XHJcbiAgICBpZiAoJChgIyR7dGhpcy5pZH1gKS5sZW5ndGgpIHtcclxuICAgICAgJCgnYm9keScpLmNoaWxkcmVuKGAjJHt0aGlzLmlkfWApLnJlbW92ZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubWF4ID09PSAxKSB7XHJcbiAgICAgICQoJ2JvZHknKS5hcHBlbmQoYDxpbnB1dCBpZD1cIiR7dGhpcy5pZH1cIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiB0eXBlPVwiZmlsZVwiIC8+YCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAkKCdib2R5JykuYXBwZW5kKGA8aW5wdXQgaWQ9XCIke3RoaXMuaWR9XCIgc3R5bGU9XCJkaXNwbGF5OiBub25lXCIgdHlwZT1cImZpbGVcIiBtdWx0aXBsZSAvPmApO1xyXG4gICAgfVxyXG4gICAgJChgIyR7dGhpcy5pZH1gKS5vbignY2hhbmdlJywgYXN5bmMgKGV2dDogYW55KSA9PiB7XHJcbiAgICAgIGF3YWl0IHRoaXMuI3VwbG9hZEZpbGUoZXZ0LnRhcmdldCk7XHJcbiAgICAgICQoJ2JvZHknKS5jaGlsZHJlbihgIyR7dGhpcy5pZH1gKS5yZW1vdmUoKTtcclxuICAgIH0pO1xyXG4gICAgJChgIyR7dGhpcy5pZH1gKS50cmlnZ2VyKCdjbGljaycpO1xyXG4gIH1cclxuXHJcbiAgI3VwbG9hZEZpbGUgPSBhc3luYyAodGFyZ2V0OiBEYXRhVHJhbnNmZXIpID0+IHtcclxuICAgIGlmICghdGFyZ2V0LmZpbGVzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBvcmlnaW5GaWxlcyA9IHRhcmdldC5maWxlcztcclxuICAgIGNvbnN0IGZpbGVzOiBGaWxlW10gPSBbXTtcclxuICAgIGlmIChvcmlnaW5GaWxlcy5sZW5ndGggKyB0aGlzLnByZXZpZXdGaWxlcy5sZW5ndGggPiB0aGlzLm1heCkge1xyXG4gICAgICB0aGlzLm5vdGlmeVNlcnZpY2Uubm90aWZ5Lndhcm5pbmcoYCR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZSgnTWF4IG51bWJlciBvZiBmaWxlcycpfSAke3RoaXMubWF4fWApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9yaWdpbkZpbGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBmaWxlID0gb3JpZ2luRmlsZXMuaXRlbShpKTtcclxuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IHRoaXMuI3ZhbGlkYXRlKGZpbGUpO1xyXG4gICAgICBpZiAobWVzc2FnZSkge1xyXG4gICAgICAgIHRoaXMubm90aWZ5U2VydmljZS5ub3RpZnkud2FybmluZyhtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgZmlsZXMucHVzaChmaWxlKTtcclxuICAgIH1cclxuICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xyXG4gICAgICBjb25zdCBsYXN0RG90ID0gZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJyk7XHJcbiAgICAgIGNvbnN0IGV4dGVuc2lvbiA9IGZpbGUubmFtZS5zdWJzdHJpbmcobGFzdERvdCArIDEpO1xyXG4gICAgICB0aGlzLnByZXZpZXdGaWxlcy5wdXNoKHtcclxuICAgICAgICBmaWxlLFxyXG4gICAgICAgIHNyYzogbnVsbCxcclxuICAgICAgICBmaWxlTmFtZTogZmlsZS5uYW1lLFxyXG4gICAgICAgIGV4dGVuc2lvblxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5wcmV2aWV3RmlsZXMpO1xyXG4gICAgdGhpcy5zZENoYW5nZS5lbWl0KHRoaXMucHJldmlld0ZpbGVzKTtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG9uUmVtb3ZlID0gKHByZXZpZXdGaWxlOiBTZFByZXZpZXdGaWxlKTogdm9pZCA9PiB7XHJcbiAgICBjb25zdCBpZHggPSB0aGlzLnByZXZpZXdGaWxlcy5pbmRleE9mKHByZXZpZXdGaWxlKTtcclxuICAgIHRoaXMucHJldmlld0ZpbGVzLnNwbGljZShpZHgsIDEpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLnByZXZpZXdGaWxlcywge1xyXG4gICAgICBlbWl0RXZlbnQ6IGZhbHNlXHJcbiAgICB9KTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5wcmV2aWV3RmlsZXMpO1xyXG4gICAgdGhpcy5zZENoYW5nZS5lbWl0KHRoaXMucHJldmlld0ZpbGVzKTtcclxuICB9XHJcblxyXG4gICN2YWxpZGF0b3IgPSAoYzogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgY29uc3QgdmFsdWUgPSBjLnZhbHVlIHx8IG51bGw7XHJcbiAgICBpZiAodGhpcy5taW4gPiAwKSB7XHJcbiAgICAgIGNvbnN0IHByZXZpZXdGaWxlczogU2RQcmV2aWV3RmlsZVtdID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZSB8fCBbXTtcclxuICAgICAgaWYgKHByZXZpZXdGaWxlcy5sZW5ndGggPCB0aGlzLm1pbikge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBtaW46IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ1BsZWFzZSBzZWxlY3QgYXQgbGVhc3QnKX0gJHt0aGlzLm1pbn1gXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tYXggPiAwKSB7XHJcbiAgICAgIGNvbnN0IHByZXZpZXdGaWxlczogU2RQcmV2aWV3RmlsZVtdID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZSB8fCBbXTtcclxuICAgICAgaWYgKHByZXZpZXdGaWxlcy5sZW5ndGggPiB0aGlzLm1heCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBtYXg6IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ1BsZWFzZSBzZWxlY3QgYXQgbW9zdCcpfSAke3RoaXMubWF4fWBcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2RQcmV2aWV3RmlsZSB7XHJcbiAgZmlsZTogRmlsZTtcclxuICBzcmM6IHN0cmluZyB8IEFycmF5QnVmZmVyO1xyXG4gIGZpbGVOYW1lPzogc3RyaW5nO1xyXG4gIGV4dGVuc2lvbj86IHN0cmluZztcclxufVxyXG4iXX0=
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdXBsb2FkLWZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9pbnB1dC11cGxvYWQtZmlsZS8iLCJzb3VyY2VzIjpbInNyYy9saWIvaW5wdXQtdXBsb2FkLWZpbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixpQkFBaUIsR0FJbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBOEUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckksTUFBTSw4QkFBOEI7SUFDbEMsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFBSSxDQUFDO0lBQ2pELFlBQVksQ0FBQyxPQUEyQixFQUFFLElBQXdDOztRQUNoRixNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMzQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsT0FBTyxLQUFJLENBQUMsT0FBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxLQUFLLFlBQUksSUFBSSxDQUFDLFdBQVcsMENBQUUs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QUFhO3VCQU1uQixLQUFLOzBCQUtMLE1BQU07dUJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBPbkluaXQsXHJcbiAgT25EZXN0cm95LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgJCBmcm9tICdqcXVlcnknO1xyXG5pbXBvcnQgeyBTZE5vdGlmeVNlcnZpY2UgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL25vdGlmeSc7XHJcbmltcG9ydCB7IFNkVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvdHJhbnNsYXRlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRXJyb3JTdGF0ZU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cERpcmVjdGl2ZSwgTmdGb3JtLCBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvckZuLCBBc3luY1ZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5jbGFzcyBTZElucHV0VXBsb2FkRmlsZXRTdGF0ZU1hdGNoZXIgaW1wbGVtZW50cyBFcnJvclN0YXRlTWF0Y2hlciB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpIHsgfVxyXG4gIGlzRXJyb3JTdGF0ZShjb250cm9sOiBGb3JtQ29udHJvbCB8IG51bGwsIGZvcm06IEZvcm1Hcm91cERpcmVjdGl2ZSB8IE5nRm9ybSB8IG51bGwpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGlzU3VibWl0dGVkID0gZm9ybSAmJiBmb3JtLnN1Ym1pdHRlZDtcclxuICAgIHJldHVybiAhISh0aGlzLmZvcm1Db250cm9sPy5pbnZhbGlkICYmICh0aGlzLmZvcm1Db250cm9sPy5kaXJ0eSB8fCB0aGlzLmZvcm1Db250cm9sPy50b3VjaGVkIHx8IGlzU3VibWl0dGVkKSk7XHJcbiAgfVxyXG59XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtaW5wdXQtdXBsb2FkLWZpbGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC11cGxvYWQtZmlsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtdXBsb2FkLWZpbGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RJbnB1dFVwbG9hZEZpbGUgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgaWQgPSBgSSR7dXVpZC52NCgpfWA7XHJcbiAgcHJldmlld0ZpbGVzOiBTZFByZXZpZXdGaWxlW10gPSBbXTtcclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdHlwZTogJ2ltYWdlJyB8ICdmaWxlJyA9ICdmaWxlJztcclxuICBASW5wdXQoKSBleHRlbnNpb25zOiBzdHJpbmdbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIG1pbiA9IDA7XHJcbiAgQElucHV0KCkgbWF4ID0gMTtcclxuICBASW5wdXQoKSBtYXhTaXplOiBudW1iZXI7XHJcbiAgQElucHV0KCkgbWF4V2lkdGg6IG51bWJlcjtcclxuICBASW5wdXQoKSBtYXhIZWlnaHQ6IG51bWJlcjtcclxuICAvLyBPcHRpb25hbFxyXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICAjbW9kZWw6IChzdHJpbmcgfCBTZFByZXZpZXdGaWxlKVtdO1xyXG4gIEBJbnB1dCgpIHNldCBtb2RlbChtb2RlbDogKHN0cmluZyB8IFNkUHJldmlld0ZpbGUpW10pIHtcclxuICAgIGlmICh0aGlzLnByZXZpZXdGaWxlcyAhPT0gbW9kZWwgJiYgQXJyYXkuaXNBcnJheShtb2RlbCkpIHtcclxuICAgICAgdGhpcy4jbW9kZWwgPSBtb2RlbDtcclxuICAgICAgdGhpcy4jbW9kZWxDaGFuZ2VzLm5leHQodGhpcy4jbW9kZWwpO1xyXG4gICAgfVxyXG4gIH1cclxuICBkaXNhYmxlRXJyb3JNZXNzYWdlID0gZmFsc2U7XHJcbiAgQElucHV0KCdkaXNhYmxlRXJyb3JNZXNzYWdlJykgc2V0IF9kaXNhYmxlRXJyb3JNZXNzYWdlKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmRpc2FibGVFcnJvck1lc3NhZ2UgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gIH1cclxuICBpbmxpbmVFcnJvcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgnaW5saW5lRXJyb3InKSBzZXQgX2lubGluZUVycm9yKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmlubGluZUVycm9yID0gdmFsO1xyXG4gICAgdGhpcy4jdXBkYXRlVmFsaWRhdG9yKCk7XHJcbiAgfVxyXG5cclxuICBpc1JlcXVpcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2V0IHJlcXVpcmVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmlzUmVxdWlyZWQgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgdGhpcy4jdXBkYXRlVmFsaWRhdG9yKCk7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPChzdHJpbmcgfCBTZFByZXZpZXdGaWxlKVtdPigpO1xyXG4gIEBPdXRwdXQoKSBzZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8KHN0cmluZyB8IFNkUHJldmlld0ZpbGUpW10+KCk7XHJcbiAgaW5wdXRDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgZm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICBtYXRjaGVyID0gbmV3IFNkSW5wdXRVcGxvYWRGaWxldFN0YXRlTWF0Y2hlcih0aGlzLmZvcm1Db250cm9sKTtcclxuICAjc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gICNtb2RlbENoYW5nZXMgPSBuZXcgU3ViamVjdDwoc3RyaW5nIHwgU2RQcmV2aWV3RmlsZSlbXT4oKTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgbm90aWZ5U2VydmljZTogU2ROb3RpZnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBTZFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKFt0aGlzLiN2YWxpZGF0b3JdKTtcclxuICAgIHRoaXMuaW5wdXRDb250cm9sLmRpc2FibGUoKTtcclxuICB9XHJcblxyXG4gIFxyXG4gICN1cGRhdGVWYWxpZGF0b3IgPSAoKSA9PiB7XHJcblxyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJBc3luY1ZhbGlkYXRvcnMoKTtcclxuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuICAgIGNvbnN0IGFzeW5jVmFsaWRhdG9yczogQXN5bmNWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICBpZiAodGhpcy5pc1JlcXVpcmVkKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICAgXHJcbiAgICBpZiAodGhpcy5pbmxpbmVFcnJvcikge1xyXG4gICAgICB2YWxpZGF0b3JzLnB1c2godGhpcy5jdXN0b21JbmxpbmVFcnJvclZhbGlkYXRvcigpKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnMoYXN5bmNWYWxpZGF0b3JzKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgLy8gSMOgbSB04bqhbyBWYWxpZGF0b3JzIHTDuXkgY2jhu4luaCBjaG8gaW5saW5lRXJyb3JcclxuICBjdXN0b21JbmxpbmVFcnJvclZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsID0+IHtcclxuICAgICAgcmV0dXJuIHsgaW5saW5lRXJyb3I6IHRydWUgfTtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuI21vZGVsQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLiNtb2RlbCkpLnN1YnNjcmliZSgocHJldmlld0ZpbGVzKSA9PiB7XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHByZXZpZXdGaWxlcykpIHtcclxuICAgICAgICB0aGlzLnByZXZpZXdGaWxlcyA9IFtdO1xyXG4gICAgICAgIHByZXZpZXdGaWxlcy5mb3JFYWNoKHByZXZpZXdGaWxlID0+IHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgKHByZXZpZXdGaWxlKSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgdGhpcy5wcmV2aWV3RmlsZXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgZmlsZTogbnVsbCxcclxuICAgICAgICAgICAgICBzcmM6IHByZXZpZXdGaWxlXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnByZXZpZXdGaWxlcy5wdXNoKHByZXZpZXdGaWxlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMucHJldmlld0ZpbGVzKTtcclxuICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodGhpcy5wcmV2aWV3RmlsZXMpO1xyXG4gICAgICB9XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgI3ZhbGlkYXRlID0gYXN5bmMgKGZpbGU6IEZpbGUpOiBQcm9taXNlPHN0cmluZz4gPT4ge1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2ltYWdlJykge1xyXG4gICAgICBpZiAoZmlsZS50eXBlLnNwbGl0KCcvJylbMF0gIT09ICdpbWFnZScpIHtcclxuICAgICAgICByZXR1cm4gYFske2ZpbGUubmFtZX1dICR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZSgnVXBsb2FkZWQgZmlsZSBpcyBub3QgYW4gaW1hZ2UnKX1gO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5leHRlbnNpb25zPy5sZW5ndGgpIHtcclxuICAgICAgY29uc3QgbGFzdERvdCA9IGZpbGUubmFtZS5sYXN0SW5kZXhPZignLicpO1xyXG4gICAgICBjb25zdCBleHRlbnNpb24gPSBmaWxlLm5hbWUuc3Vic3RyaW5nKGxhc3REb3QgKyAxKTtcclxuICAgICAgaWYgKCF0aGlzLmV4dGVuc2lvbnMuc29tZShlID0+IGUudG9VcHBlckNhc2UoKSA9PT0gZXh0ZW5zaW9uLnRvVXBwZXJDYXNlKCkpKSB7XHJcbiAgICAgICAgcmV0dXJuIGBbJHtmaWxlLm5hbWV9XSAke3RoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ1VwbG9hZGVkIGZpbGUgaXMgbm90IG1hdGNoIGV4dGVuc2lvbicpfSAke3RoaXMuZXh0ZW5zaW9ucy5qb2luKCcsICcpfWA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1heFNpemUpIHtcclxuICAgICAgaWYgKHRoaXMubWF4U2l6ZSAqIDEwMjQgKiAxMDI0IDwgZmlsZS5zaXplKSB7XHJcbiAgICAgICAgcmV0dXJuIGBbJHtmaWxlLm5hbWV9XSAke3RoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ01heCBmaWxlIHNpemUnKX0gJHt0aGlzLm1heFNpemV9IE1ic2A7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdpbWFnZScgJiYgKHRoaXMubWF4V2lkdGggfHwgdGhpcy5tYXhIZWlnaHQpKSB7XHJcbiAgICAgIGNvbnN0IG1lc3NhZ2U6IHN0cmluZyA9IGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG4gICAgICAgIGNvbnN0IFVSTCA9IHdpbmRvdy5VUkwgfHwgd2luZG93LndlYmtpdFVSTDtcclxuICAgICAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcclxuICAgICAgICBpbWcub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMubWF4V2lkdGggJiYgaW1nLndpZHRoID4gdGhpcy5tYXhXaWR0aCkge1xyXG4gICAgICAgICAgICByZXNvbHZlKGBbJHtmaWxlLm5hbWV9XSAke3RoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ01heCBpbWFnZSB3aWR0aCcpfSAke3RoaXMubWF4V2lkdGh9cHhgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLm1heEhlaWdodCAmJiBpbWcuaGVpZ2h0ID4gdGhpcy5tYXhIZWlnaHQpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZShgWyR7ZmlsZS5uYW1lfV0gJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdNYXggaW1hZ2UgaGVpZ2h0Jyl9ICR7dGhpcy5tYXhIZWlnaHR9cHhgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJlc29sdmUobnVsbCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBpbWcuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChtZXNzYWdlKSB7XHJcbiAgICAgICAgcmV0dXJuIG1lc3NhZ2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgb25VcGxvYWQgPSAoKSA9PiB7XHJcbiAgICBpZiAoJChgIyR7dGhpcy5pZH1gKS5sZW5ndGgpIHtcclxuICAgICAgJCgnYm9keScpLmNoaWxkcmVuKGAjJHt0aGlzLmlkfWApLnJlbW92ZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubWF4ID09PSAxKSB7XHJcbiAgICAgICQoJ2JvZHknKS5hcHBlbmQoYDxpbnB1dCBpZD1cIiR7dGhpcy5pZH1cIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiB0eXBlPVwiZmlsZVwiIC8+YCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAkKCdib2R5JykuYXBwZW5kKGA8aW5wdXQgaWQ9XCIke3RoaXMuaWR9XCIgc3R5bGU9XCJkaXNwbGF5OiBub25lXCIgdHlwZT1cImZpbGVcIiBtdWx0aXBsZSAvPmApO1xyXG4gICAgfVxyXG4gICAgJChgIyR7dGhpcy5pZH1gKS5vbignY2hhbmdlJywgYXN5bmMgKGV2dDogYW55KSA9PiB7XHJcbiAgICAgIGF3YWl0IHRoaXMuI3VwbG9hZEZpbGUoZXZ0LnRhcmdldCk7XHJcbiAgICAgICQoJ2JvZHknKS5jaGlsZHJlbihgIyR7dGhpcy5pZH1gKS5yZW1vdmUoKTtcclxuICAgIH0pO1xyXG4gICAgJChgIyR7dGhpcy5pZH1gKS50cmlnZ2VyKCdjbGljaycpO1xyXG4gIH1cclxuXHJcbiAgI3VwbG9hZEZpbGUgPSBhc3luYyAodGFyZ2V0OiBEYXRhVHJhbnNmZXIpID0+IHtcclxuICAgIGlmICghdGFyZ2V0LmZpbGVzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBvcmlnaW5GaWxlcyA9IHRhcmdldC5maWxlcztcclxuICAgIGNvbnN0IGZpbGVzOiBGaWxlW10gPSBbXTtcclxuICAgIGlmIChvcmlnaW5GaWxlcy5sZW5ndGggKyB0aGlzLnByZXZpZXdGaWxlcy5sZW5ndGggPiB0aGlzLm1heCkge1xyXG4gICAgICB0aGlzLm5vdGlmeVNlcnZpY2Uubm90aWZ5Lndhcm5pbmcoYCR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZSgnTWF4IG51bWJlciBvZiBmaWxlcycpfSAke3RoaXMubWF4fWApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9yaWdpbkZpbGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBmaWxlID0gb3JpZ2luRmlsZXMuaXRlbShpKTtcclxuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IHRoaXMuI3ZhbGlkYXRlKGZpbGUpO1xyXG4gICAgICBpZiAobWVzc2FnZSkge1xyXG4gICAgICAgIHRoaXMubm90aWZ5U2VydmljZS5ub3RpZnkud2FybmluZyhtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgZmlsZXMucHVzaChmaWxlKTtcclxuICAgIH1cclxuICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xyXG4gICAgICBjb25zdCBsYXN0RG90ID0gZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJyk7XHJcbiAgICAgIGNvbnN0IGV4dGVuc2lvbiA9IGZpbGUubmFtZS5zdWJzdHJpbmcobGFzdERvdCArIDEpO1xyXG4gICAgICB0aGlzLnByZXZpZXdGaWxlcy5wdXNoKHtcclxuICAgICAgICBmaWxlLFxyXG4gICAgICAgIHNyYzogbnVsbCxcclxuICAgICAgICBmaWxlTmFtZTogZmlsZS5uYW1lLFxyXG4gICAgICAgIGV4dGVuc2lvblxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5wcmV2aWV3RmlsZXMpO1xyXG4gICAgdGhpcy5zZENoYW5nZS5lbWl0KHRoaXMucHJldmlld0ZpbGVzKTtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG9uUmVtb3ZlID0gKHByZXZpZXdGaWxlOiBTZFByZXZpZXdGaWxlKTogdm9pZCA9PiB7XHJcbiAgICBjb25zdCBpZHggPSB0aGlzLnByZXZpZXdGaWxlcy5pbmRleE9mKHByZXZpZXdGaWxlKTtcclxuICAgIHRoaXMucHJldmlld0ZpbGVzLnNwbGljZShpZHgsIDEpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLnByZXZpZXdGaWxlcywge1xyXG4gICAgICBlbWl0RXZlbnQ6IGZhbHNlXHJcbiAgICB9KTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5wcmV2aWV3RmlsZXMpO1xyXG4gICAgdGhpcy5zZENoYW5nZS5lbWl0KHRoaXMucHJldmlld0ZpbGVzKTtcclxuICB9XHJcblxyXG4gICN2YWxpZGF0b3IgPSAoYzogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgY29uc3QgdmFsdWUgPSBjLnZhbHVlIHx8IG51bGw7XHJcbiAgICBpZiAodGhpcy5taW4gPiAwKSB7XHJcbiAgICAgIGNvbnN0IHByZXZpZXdGaWxlczogU2RQcmV2aWV3RmlsZVtdID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZSB8fCBbXTtcclxuICAgICAgaWYgKHByZXZpZXdGaWxlcy5sZW5ndGggPCB0aGlzLm1pbikge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBtaW46IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ1BsZWFzZSBzZWxlY3QgYXQgbGVhc3QnKX0gJHt0aGlzLm1pbn1gXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tYXggPiAwKSB7XHJcbiAgICAgIGNvbnN0IHByZXZpZXdGaWxlczogU2RQcmV2aWV3RmlsZVtdID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZSB8fCBbXTtcclxuICAgICAgaWYgKHByZXZpZXdGaWxlcy5sZW5ndGggPiB0aGlzLm1heCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBtYXg6IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ1BsZWFzZSBzZWxlY3QgYXQgbW9zdCcpfSAke3RoaXMubWF4fWBcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2RQcmV2aWV3RmlsZSB7XHJcbiAgZmlsZTogRmlsZTtcclxuICBzcmM6IHN0cmluZyB8IEFycmF5QnVmZmVyO1xyXG4gIGZpbGVOYW1lPzogc3RyaW5nO1xyXG4gIGV4dGVuc2lvbj86IHN0cmluZztcclxufVxyXG4iXX0=
@@ -42,9 +42,14 @@ export class SdRadio {
42
42
  if (__classPrivateFieldGet(this, _required)) {
43
43
  validators.push(Validators.required);
44
44
  }
45
+ if (this.inlineError) {
46
+ validators.push(this.customInlineErrorValidator());
47
+ }
45
48
  this.formControl.setValidators(validators);
46
49
  this.formControl.updateValueAndValidity();
47
- });
50
+ }
51
+ // Hàm tạo Validators tùy chỉnh cho inlineError
52
+ );
48
53
  this.reValidate = () => {
49
54
  this.formControl.updateValueAndValidity({ emitEvent: true });
50
55
  };
@@ -82,6 +87,10 @@ export class SdRadio {
82
87
  __classPrivateFieldSet(this, _required, (val === '') || val);
83
88
  __classPrivateFieldGet(this, _updateValidator).call(this);
84
89
  }
90
+ set _inlineError(val) {
91
+ this.inlineError = val;
92
+ __classPrivateFieldGet(this, _updateValidator).call(this);
93
+ }
85
94
  // Optional
86
95
  set disabled(val) {
87
96
  val = (val === '') || val;
@@ -120,12 +129,18 @@ export class SdRadio {
120
129
  __classPrivateFieldGet(this, _subscription).unsubscribe();
121
130
  (_a = __classPrivateFieldGet(this, _form)) === null || _a === void 0 ? void 0 : _a.removeControl(__classPrivateFieldGet(this, _name));
122
131
  }
132
+ // Hàm tạo Validators tùy chỉnh cho inlineError
133
+ customInlineErrorValidator() {
134
+ return (control) => {
135
+ return { inlineError: true };
136
+ };
137
+ }
123
138
  }
124
139
  _name = new WeakMap(), _form = new WeakMap(), _model = new WeakMap(), _required = new WeakMap(), _subscription = new WeakMap(), _updateValidator = new WeakMap();
125
140
  SdRadio.decorators = [
126
141
  { type: Component, args: [{
127
142
  selector: 'sd-radio',
128
- template: "<section [ngClass]=\"{'c-section': display == 'row'}\">\r\n <ng-container *ngIf=\"sdLabelDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"sdLabelDef.templateRef\">\r\n </ng-container>\r\n </ng-container>\r\n <label *ngIf=\"label&&!sdLabelDef?.templateRef\" class=\"d-block T14M\" [class.mb-0]=\"display === 'row'\">{{label}} <span class=\"text-danger mb-2\" *ngIf=\"required\">*</span></label>\r\n <mat-radio-group [ngClass]=\"{'c-radio-group-column': display === 'column', 'c-radio-group-row': display === 'row'}\"\r\n [formControl]=\"formControl\">\r\n <mat-radio-button color=\"primary\" [ngClass]=\"{'m-0': display === 'column', 'mr-16': display === 'row'}\"\r\n *ngFor=\"let item of items\" [value]=\"item[valueField]\">\r\n {{item[displayField]}}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n</section>",
143
+ template: "<section [ngClass]=\"{'c-section': display == 'row'}\">\r\n <ng-container *ngIf=\"sdLabelDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"sdLabelDef.templateRef\">\r\n </ng-container>\r\n </ng-container>\r\n <label *ngIf=\"label&&!sdLabelDef?.templateRef\" class=\"d-block T14M\" [class.mb-0]=\"display === 'row'\">{{label}} <span class=\"text-danger mb-2\" *ngIf=\"required\">*</span></label>\r\n <mat-radio-group [ngClass]=\"{'c-radio-group-column': display === 'column', 'c-radio-group-row': display === 'row'}\"\r\n [formControl]=\"formControl\">\r\n <mat-radio-button color=\"primary\" [ngClass]=\"{'m-0': display === 'column', 'mr-16': display === 'row'}\"\r\n *ngFor=\"let item of items\" [value]=\"item[valueField]\">\r\n {{item[displayField]}}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n \r\n <mat-error *ngIf=\"formControl.errors?.inlineError && formControl?.touched\">\r\n {{inlineError}}\r\n </mat-error>\r\n</section>",
129
144
  changeDetection: ChangeDetectionStrategy.OnPush,
130
145
  styles: [":host{display:flex;flex-direction:column;height:100%}.c-section{align-content:center;align-items:center}.c-radio-group-column{align-items:flex-start;display:flex;flex:1;flex-direction:column}.c-radio-group-row{align-items:center;display:flex;flex:1;flex-direction:row}"]
131
146
  },] }
@@ -144,10 +159,11 @@ SdRadio.propDecorators = {
144
159
  valueField: [{ type: Input }],
145
160
  displayField: [{ type: Input }],
146
161
  required: [{ type: Input }],
162
+ _inlineError: [{ type: Input, args: ['inlineError',] }],
147
163
  disabled: [{ type: Input }],
148
164
  sdLabelDef: [{ type: ContentChild, args: [SdLabelDefDirective,] }],
149
165
  modelChange: [{ type: Output }],
150
166
  sdChange: [{ type: Output }],
151
167
  sdSelection: [{ type: Output }]
152
168
  };
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9yYWRpby8iLCJzb3VyY2VzIjpbInNyYy9saWIvcmFkaW8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBb0MsdUJBQXVCLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25LLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUEwQixNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBUTdCLE1BQU0sT0FBTyxPQUFPO0lBMkVsQixZQUNTLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBM0UvQixnQkFBUSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUM7UUFNbEIsZ0JBQVcsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2xDLG1CQUFtQjtRQUNuQiw0Q0FBNEM7UUFDNUMsZ0RBQWdEO1FBQ2hELE1BQU07UUFDTiw4QkFBOEI7UUFDOUIsNkJBQTZCO1FBQzdCLHFFQUFxRTtRQUNyRSxlQUFlO1FBQ2Ysb0RBQW9EO1FBQ3BELFFBQVE7UUFDUixNQUFNO1FBQ04sa0JBQWtCO1FBQ2xCLElBQUk7UUFDSix3QkFBaUI7UUFZUixZQUFPLEdBQXFCLEtBQUssQ0FBQztRQUMzQyxRQUFRO1FBQ1IseUJBQWtDO1FBU2xDLFFBQVE7UUFDUixVQUFLLEdB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LG1CQUFtQjswQkFDaEMsTUFBTTt1QkFDTixNQUFNOzBCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29udGVudENoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nRm9ybSwgVmFsaWRhdG9ycywgVmFsaWRhdG9yRm4sIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2RMYWJlbERlZkRpcmVjdGl2ZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvY29tbW9uJztcclxuaW1wb3J0IHsgU2RGb3JtQ29udHJvbCB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvY29tbW9uJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLXJhZGlvJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3JhZGlvLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkUmFkaW8gaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgI25hbWUgPSB1dWlkLnY0KCk7XHJcbiAgQElucHV0KCkgc2V0IG5hbWUodmFsOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy4jbmFtZSA9IHZhbDtcclxuICAgIH1cclxuICB9XHJcbiAgZm9ybUNvbnRyb2wgPSBuZXcgU2RGb3JtQ29udHJvbCgpO1xyXG4gIC8vIGdldCBpc051bWJlcigpIHtcclxuICAvLyAgIGlmICh0aGlzLiNtb2RlbCB8fCB0aGlzLiNtb2RlbCA9PT0gMCkge1xyXG4gIC8vICAgICByZXR1cm4gdHlwZW9mICh0aGlzLiNtb2RlbCkgPT09ICdudW1iZXInO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgaWYgKHRoaXMuaXRlbXM/Lmxlbmd0aCkge1xyXG4gIC8vICAgICBpZiAodGhpcy52YWx1ZUZpZWxkKSB7XHJcbiAgLy8gICAgICAgcmV0dXJuIHR5cGVvZiAodGhpcy5pdGVtc1swXVt0aGlzLnZhbHVlRmllbGRdKSA9PT0gJ251bWJlcic7XHJcbiAgLy8gICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgcmV0dXJuIHR5cGVvZiAodGhpcy5pdGVtc1swXSkgPT09ICdudW1iZXInO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9XHJcbiAgLy8gICByZXR1cm4gZmFsc2U7XHJcbiAgLy8gfVxyXG4gICNmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgc2V0IGZvcm0odmFsOiBOZ0Zvcm0gfCBGb3JtR3JvdXApIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5nRm9ybSkge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWwuZm9ybTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBASW5wdXQoKSBkaXNwbGF5OiAncm93JyB8ICdjb2x1bW4nID0gJ3Jvdyc7XHJcbiAgLy8gTW9kZWxcclxuICAjbW9kZWw6IG51bWJlciB8IHN0cmluZyB8IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2V0IG1vZGVsKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcgfCBib29sZWFuKSB7XHJcbiAgICB0aGlzLiNtb2RlbCA9IHZhbHVlO1xyXG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLmZvcm1Db250cm9sLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWUsIHtcclxuICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyBJdGVtc1xyXG4gIGl0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgnaXRlbXMnKSBzZXQgcEl0ZW1zKGl0ZW1zOiBhbnlbXSkge1xyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGl0ZW1zKSkge1xyXG4gICAgICB0aGlzLml0ZW1zID0gW107XHJcbiAgICB9XHJcbiAgICB0aGlzLml0ZW1zID0gaXRlbXM7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHZhbHVlRmllbGQ6IHN0cmluZztcclxuICBASW5wdXQoKSBkaXNwbGF5RmllbGQ6IHN0cmluZztcclxuXHJcbiAgLy8gVmFsaWRhdG9yXHJcbiAgI3JlcXVpcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2V0IHJlcXVpcmVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLiNyZXF1aXJlZCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcbiAgLy8gT3B0aW9uYWxcclxuICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcbiAgQENvbnRlbnRDaGlsZChTZExhYmVsRGVmRGlyZWN0aXZlKSBzZExhYmVsRGVmOiBTZExhYmVsRGVmRGlyZWN0aXZlO1xyXG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc2RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNkU2VsZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx7IHZhbHVlOiBhbnkgfCBhbnlbXSwgaXRlbT86IGFueSB9PigpO1xyXG4gICNzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLmFkZCh0aGlzLmZvcm1Db250cm9sLnNkQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAvLyB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgIGxldCB2YWwgPSB2YWx1ZTtcclxuICAgICAgLy8gaWYgKHRoaXMuaXNOdW1iZXIgJiYgTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSkge1xyXG4gICAgICAvLyAgIHZhbCA9ICt2YWx1ZTtcclxuICAgICAgLy8gfVxyXG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodmFsKTtcclxuICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KHZhbCk7XHJcbiAgICAgIHRoaXMuc2RTZWxlY3Rpb24uZW1pdCh7XHJcbiAgICAgICAgdmFsdWU6IHZhbCxcclxuICAgICAgICBpdGVtOiB0aGlzLml0ZW1zPy5maW5kKGUgPT4gdmFsPy50b1N0cmluZygpID09PSBlPy5bdGhpcy52YWx1ZUZpZWxkXT8udG9TdHJpbmcoKSlcclxuICAgICAgfSk7XHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLiNmb3JtPy5hZGRDb250cm9sKHRoaXMuI25hbWUsIHRoaXMuZm9ybUNvbnRyb2wpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuI2Zvcm0/LnJlbW92ZUNvbnRyb2wodGhpcy4jbmFtZSk7XHJcbiAgfVxyXG5cclxuICAjdXBkYXRlVmFsaWRhdG9yID0gKCkgPT4ge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuICAgIGlmICh0aGlzLiNyZXF1aXJlZCkge1xyXG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIHJlVmFsaWRhdGUgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9yYWRpby8iLCJzb3VyY2VzIjpbInNyYy9saWIvcmFkaW8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBb0MsdUJBQXVCLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25LLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUEyQyxNQUFNLGdCQUFnQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBUTdCLE1BQU0sT0FBTyxPQUFPO0lBa0ZsQixZQUNTLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBbEYvQixnQkFBUSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUM7UUFNbEIsZ0JBQVcsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2xDLG1CQUFtQjtRQUNuQiw0Q0FBNEM7UUFDNUMsZ0RBQWdEO1FBQ2hELE1BQU07UUFDTiw4QkFBOEI7UUFDOUIsNkJBQTZCO1FBQzdCLHFFQUFxRTtRQUNyRSxlQUFlO1FBQ2Ysb0RBQW9EO1FBQ3BELFFBQVE7UUFDUixNQUFNO1FBQ04sa0JBQWtCO1FBQ2xCLElBQUk7UUFDSix3QkFBaUI7UUFZUixZQUFPLEdBQXFCLEtBQUssQ0FBQztRQUMzQyxRQUFRO1FBQ1IseUJBQWtDO1FBU2xDLFFBQVE7UUFDUixVQUFLLEdB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QyxFQUFFO1lBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDL0IsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs7OztZQTFJSixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLGkrQkFBcUM7Z0JBRXJDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7O1lBWmdELGlCQUFpQjs7O21CQWUvRCxLQUFLO21CQW9CTCxLQUFLO29CQVNMLEtBQUs7MEJBQ0wsS0FBSztzQkFDTCxLQUFLO29CQUdMLEtBQUs7cUJBVUwsS0FBSyxTQUFDLE9BQU87eUJBTWIsS0FBSzsyQkFDTCxLQUFLO3VCQUlMLEtBQUs7MkJBTUwsS0FBSyxTQUFDLGFBQWE7dUJBTW5CLEtBQUs7eUJBUUwsWUFBWSxTQUFDLG1CQUFtQjswQkFDaEMsTUFBTTt1QkFDTixNQUFNOzBCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29udGVudENoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nRm9ybSwgVmFsaWRhdG9ycywgVmFsaWRhdG9yRm4sIEZvcm1Hcm91cCwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTZExhYmVsRGVmRGlyZWN0aXZlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jb21tb24nO1xyXG5pbXBvcnQgeyBTZEZvcm1Db250cm9sIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jb21tb24nO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtcmFkaW8nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yYWRpby5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcmFkaW8uY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RSYWRpbyBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICAjbmFtZSA9IHV1aWQudjQoKTtcclxuICBASW5wdXQoKSBzZXQgbmFtZSh2YWw6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLiNuYW1lID0gdmFsO1xyXG4gICAgfVxyXG4gIH1cclxuICBmb3JtQ29udHJvbCA9IG5ldyBTZEZvcm1Db250cm9sKCk7XHJcbiAgLy8gZ2V0IGlzTnVtYmVyKCkge1xyXG4gIC8vICAgaWYgKHRoaXMuI21vZGVsIHx8IHRoaXMuI21vZGVsID09PSAwKSB7XHJcbiAgLy8gICAgIHJldHVybiB0eXBlb2YgKHRoaXMuI21vZGVsKSA9PT0gJ251bWJlcic7XHJcbiAgLy8gICB9XHJcbiAgLy8gICBpZiAodGhpcy5pdGVtcz8ubGVuZ3RoKSB7XHJcbiAgLy8gICAgIGlmICh0aGlzLnZhbHVlRmllbGQpIHtcclxuICAvLyAgICAgICByZXR1cm4gdHlwZW9mICh0aGlzLml0ZW1zWzBdW3RoaXMudmFsdWVGaWVsZF0pID09PSAnbnVtYmVyJztcclxuICAvLyAgICAgfSBlbHNlIHtcclxuICAvLyAgICAgICByZXR1cm4gdHlwZW9mICh0aGlzLml0ZW1zWzBdKSA9PT0gJ251bWJlcic7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH1cclxuICAvLyAgIHJldHVybiBmYWxzZTtcclxuICAvLyB9XHJcbiAgI2Zvcm06IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBzZXQgZm9ybSh2YWw6IE5nRm9ybSB8IEZvcm1Hcm91cCkge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICBpZiAodmFsIGluc3RhbmNlb2YgTmdGb3JtKSB7XHJcbiAgICAgICAgdGhpcy4jZm9ybSA9IHZhbC5mb3JtO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXk6ICdyb3cnIHwgJ2NvbHVtbicgPSAncm93JztcclxuICAvLyBNb2RlbFxyXG4gICNtb2RlbDogbnVtYmVyIHwgc3RyaW5nIHwgYm9vbGVhbjtcclxuICBASW5wdXQoKSBzZXQgbW9kZWwodmFsdWU6IG51bWJlciB8IHN0cmluZyB8IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuI21vZGVsID0gdmFsdWU7XHJcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZSwge1xyXG4gICAgICAgIGVtaXRFdmVudDogZmFsc2VcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIEl0ZW1zXHJcbiAgaXRlbXM6IGFueVtdID0gW107XHJcbiAgQElucHV0KCdpdGVtcycpIHNldCBwSXRlbXMoaXRlbXM6IGFueVtdKSB7XHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoaXRlbXMpKSB7XHJcbiAgICAgIHRoaXMuaXRlbXMgPSBbXTtcclxuICAgIH1cclxuICAgIHRoaXMuaXRlbXMgPSBpdGVtcztcclxuICB9XHJcbiAgQElucHV0KCkgdmFsdWVGaWVsZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXlGaWVsZDogc3RyaW5nO1xyXG5cclxuICAvLyBWYWxpZGF0b3JcclxuICAjcmVxdWlyZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZXQgcmVxdWlyZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuI3JlcXVpcmVkID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuICBcclxuICBpbmxpbmVFcnJvcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgnaW5saW5lRXJyb3InKSBzZXQgX2lubGluZUVycm9yKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmlubGluZUVycm9yID0gdmFsO1xyXG4gICAgdGhpcy4jdXBkYXRlVmFsaWRhdG9yKCk7XHJcbiAgfVxyXG5cclxuICAvLyBPcHRpb25hbFxyXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBAQ29udGVudENoaWxkKFNkTGFiZWxEZWZEaXJlY3RpdmUpIHNkTGFiZWxEZWY6IFNkTGFiZWxEZWZEaXJlY3RpdmU7XHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc2RTZWxlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHsgdmFsdWU6IGFueSB8IGFueVtdLCBpdGVtPzogYW55IH0+KCk7XHJcbiAgI3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuZm9ybUNvbnRyb2wuc2RDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIC8vIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgbGV0IHZhbCA9IHZhbHVlO1xyXG4gICAgICAvLyBpZiAodGhpcy5pc051bWJlciAmJiBOdW1iZXIuaXNOdW1iZXIodmFsdWUpKSB7XHJcbiAgICAgIC8vICAgdmFsID0gK3ZhbHVlO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh2YWwpO1xyXG4gICAgICB0aGlzLnNkQ2hhbmdlLmVtaXQodmFsKTtcclxuICAgICAgdGhpcy5zZFNlbGVjdGlvbi5lbWl0KHtcclxuICAgICAgICB2YWx1ZTogdmFsLFxyXG4gICAgICAgIGl0ZW06IHRoaXMuaXRlbXM/LmZpbmQoZSA9PiB2YWw/LnRvU3RyaW5nKCkgPT09IGU/Llt0aGlzLnZhbHVlRmllbGRdPy50b1N0cmluZygpKVxyXG4gICAgICB9KTtcclxuICAgIH0pKTtcclxuICAgIHRoaXMuI2Zvcm0/LmFkZENvbnRyb2wodGhpcy4jbmFtZSwgdGhpcy5mb3JtQ29udHJvbCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy4jZm9ybT8ucmVtb3ZlQ29udHJvbCh0aGlzLiNuYW1lKTtcclxuICB9XHJcblxyXG4gICN1cGRhdGVWYWxpZGF0b3IgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMuI3JlcXVpcmVkKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlubGluZUVycm9yKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaCh0aGlzLmN1c3RvbUlubGluZUVycm9yVmFsaWRhdG9yKCkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICAgIC8vIEjDoG0gdOG6oW8gVmFsaWRhdG9ycyB0w7l5IGNo4buJbmggY2hvIGlubGluZUVycm9yXHJcbiAgICBjdXN0b21JbmxpbmVFcnJvclZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IGlubGluZUVycm9yOiB0cnVlIH07XHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gIHJlVmFsaWRhdGUgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,4 +1,4 @@
1
- var _name, _form, _subscription, _onChange;
1
+ var _name, _form, _subscription, _onChange, _updateValidator;
2
2
  import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
3
  import { Component, Input, Output, EventEmitter, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';
4
4
  import { FormControl, NgForm } from '@angular/forms';
@@ -18,6 +18,17 @@ export class SdSwitch {
18
18
  this.modelChange.emit(value);
19
19
  this.sdChange.emit(value);
20
20
  });
21
+ _updateValidator.set(this, () => {
22
+ this.formControl.clearValidators();
23
+ const validators = [];
24
+ if (this.inlineError) {
25
+ validators.push(this.customInlineErrorValidator());
26
+ }
27
+ this.formControl.setValidators(validators);
28
+ this.formControl.updateValueAndValidity();
29
+ }
30
+ // Hàm tạo Validators tùy chỉnh cho inlineError
31
+ );
21
32
  }
22
33
  set form(val) {
23
34
  if (val) {
@@ -45,6 +56,10 @@ export class SdSwitch {
45
56
  });
46
57
  }
47
58
  }
59
+ set _inlineError(val) {
60
+ this.inlineError = val;
61
+ __classPrivateFieldGet(this, _updateValidator).call(this);
62
+ }
48
63
  ngOnInit() {
49
64
  }
50
65
  ngAfterViewInit() {
@@ -58,12 +73,18 @@ export class SdSwitch {
58
73
  (_a = __classPrivateFieldGet(this, _form)) === null || _a === void 0 ? void 0 : _a.removeControl(__classPrivateFieldGet(this, _name));
59
74
  __classPrivateFieldGet(this, _subscription).unsubscribe();
60
75
  }
76
+ // Hàm tạo Validators tùy chỉnh cho inlineError
77
+ customInlineErrorValidator() {
78
+ return (control) => {
79
+ return { inlineError: true };
80
+ };
81
+ }
61
82
  }
62
- _name = new WeakMap(), _form = new WeakMap(), _subscription = new WeakMap(), _onChange = new WeakMap();
83
+ _name = new WeakMap(), _form = new WeakMap(), _subscription = new WeakMap(), _onChange = new WeakMap(), _updateValidator = new WeakMap();
63
84
  SdSwitch.decorators = [
64
85
  { type: Component, args: [{
65
86
  selector: 'sd-switch',
66
- template: "<mat-slide-toggle [formControl]=\"formControl\" [color]=\"color\"><span\r\n class=\"c-label\">{{label}}</span></mat-slide-toggle>",
87
+ template: "<mat-slide-toggle [formControl]=\"formControl\" [color]=\"color\"><span\r\n class=\"c-label\">{{label}}</span></mat-slide-toggle>\r\n <mat-error *ngIf=\"formControl.errors?.inlineError && formControl?.touched\">\r\n {{inlineError}}\r\n </mat-error>",
67
88
  changeDetection: ChangeDetectionStrategy.OnPush,
68
89
  styles: [""]
69
90
  },] }
@@ -78,7 +99,8 @@ SdSwitch.propDecorators = {
78
99
  color: [{ type: Input }],
79
100
  disabled: [{ type: Input }],
80
101
  model: [{ type: Input }],
102
+ _inlineError: [{ type: Input, args: ['inlineError',] }],
81
103
  modelChange: [{ type: Output }],
82
104
  sdChange: [{ type: Output }]
83
105
  };
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvc3dpdGNoLyIsInNvdXJjZXMiOlsic3JjL2xpYi9zd2l0Y2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFRN0IsTUFBTSxPQUFPLFFBQVE7SUFvQ25CLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBbkMxQyxnQkFBUSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUM7UUFFbEIsd0JBQWlCO1FBV1IsVUFBSyxHQUF1QixTQUFTLENBQUM7UUFrQnJDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxnQkFBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDaEMsd0JBQWdCLElBQUksWUFBWSxFQUFFLEVBQUM7UUFpQm5DLG9CQUFZLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxFQUFBO0lBbEJELENBQUM7SUFqQ0QsSUFBYSxJQUFJLENBQUMsR0FBdUI7UUFDdkMsSUFBSSxHQUFHLEVBQUU7WUFDUCxJQUFJLEdBQUcsWUFBWSxNQUFNLEVBQUU7Z0JBQ3pCLHVCQUFBLElBQUksU0FBUyxHQUFHLENBQUMsSUFBSSxFQUFDO2FBQ3ZCO2lCQUFNO2dCQUNMLHVCQUFBLElBQUksU0FBUyxHQUFHLEVBQUM7YUFDbEI7U0FDRjtJQUNILENBQUM7SUFHRCxJQUFhLFFBQVEsQ0FBQyxHQUFpQjtRQUNyQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDO1FBQzFCLElBQUksR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUM1QjthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxJQUFhLEtBQUssQ0FBQyxLQUFVO1FBQzNCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEtBQUssS0FBSyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRTtnQkFDL0IsU0FBUyxFQUFFLEtBQUs7YUFDakIsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBU0QsUUFBUTtJQUNSLENBQUM7SUFDRCxlQUFlOztRQUNiLDRDQUFtQixHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyx5Q0FBZ0IsQ0FBQyxDQUFDO1FBQ2hGLG1GQUFZLFVBQVUsc0NBQWEsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNyRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXOztRQUNULG1GQUFZLGFBQWEsc0NBQWE7UUFDdEMsNENBQW1CLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7Ozs7WUF4REYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQixnSkFBc0M7Z0JBRXRDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7O1lBVmdELGlCQUFpQjs7O21CQWEvRCxLQUFLO21CQUVMLEtBQUs7b0JBU0wsS0FBSztvQkFDTCxLQUFLO3VCQUNMLEtBQUs7b0JBU0wsS0FBSzswQkFRTCxNQUFNO3VCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLXN3aXRjaCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3N3aXRjaC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc3dpdGNoLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkU3dpdGNoIHtcclxuICAjbmFtZSA9IHV1aWQudjQoKTtcclxuICBASW5wdXQoKSBzaXplOiAnc20nIHwgJ2xnJztcclxuICAjZm9ybTogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIHNldCBmb3JtKHZhbDogTmdGb3JtIHwgRm9ybUdyb3VwKSB7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIGlmICh2YWwgaW5zdGFuY2VvZiBOZ0Zvcm0pIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsLmZvcm07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy4jZm9ybSA9IHZhbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNvbG9yOiAncHJpbWFyeScgfCAnd2FybicgPSAncHJpbWFyeSc7XHJcbiAgQElucHV0KCkgc2V0IGRpc2FibGVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB2YWwgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmRpc2FibGUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgbW9kZWwodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgIT09IHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWUsIHtcclxuICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBmb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gICNzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLmFkZCh0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodGhpcy4jb25DaGFuZ2UpKTtcclxuICAgIHRoaXMuI2Zvcm0/LmFkZENvbnRyb2wodGhpcy4jbmFtZSwgdGhpcy5mb3JtQ29udHJvbCk7XHJcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuI2Zvcm0/LnJlbW92ZUNvbnRyb2wodGhpcy4jbmFtZSk7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gICNvbkNoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgdGhpcy5zZENoYW5nZS5lbWl0KHZhbHVlKTtcclxuICB9XHJcbn1cclxuIl19
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvc3dpdGNoLyIsInNvdXJjZXMiOlsic3JjL2xpYi9zd2l0Y2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQW1CLFdBQVcsRUFBYSxNQUFNLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBUTdCLE1BQU0sT0FBTyxRQUFRO0lBMENuQixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXpDMUMsZ0JBQVEsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFDO1FBRWxCLHdCQUFpQjtRQVdSLFVBQUssR0FBdUIsU0FBUyxDQUFDO1FBd0JyQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEMsZ0JBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLHdCQUFnQixJQUFJLFlBQVksRUFBRSxFQUFDO1FBaUJuQyxvQkFBWSxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUMsRUFBQTtRQUNELDJCQUFtQixHQUFHLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNuQyxNQUFNLFVBQVUsR0FBa0IsRUFBRSxDQUFDO1lBRXJDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDcEIsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQyxDQUFDO2FBQ3BEO1lBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzVDLENBQUM7UUFDRSwrQ0FBK0M7VUFEakQ7SUE1QkQsQ0FBQztJQXZDRCxJQUFhLElBQUksQ0FBQyxHQUF1QjtRQUN2QyxJQUFJLEdBQUcsRUFBRTtZQUNQLElBQUksR0FBRyxZQUFZLE1BQU0sRUFBRTtnQkFDekIsdUJBQUEsSUFBSSxTQUFTLEdBQUcsQ0FBQyxJQUFJLEVBQUM7YUFDdkI7aUJBQU07Z0JBQ0wsdUJBQUEsSUFBSSxTQUFTLEdBQUcsRUFBQzthQUNsQjtTQUNGO0lBQ0gsQ0FBQztJQUdELElBQWEsUUFBUSxDQUFDLEdBQWlCO1FBQ3JDLEdBQUcsR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDMUIsSUFBSSxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzVCO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVELElBQWEsS0FBSyxDQUFDLEtBQVU7UUFDM0IsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFO2dCQUMvQixTQUFTLEVBQUUsS0FBSzthQUNqQixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFHRCxJQUEwQixZQUFZLENBQUMsR0FBVztRQUNoRCxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUN2QixvREFBQSxJQUFJLENBQW1CLENBQUM7SUFDMUIsQ0FBQztJQVNELFFBQVE7SUFDUixDQUFDO0lBQ0QsZUFBZTs7UUFDYiw0Q0FBbUIsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLFNBQVMseUNBQWdCLENBQUMsQ0FBQztRQUNoRixtRkFBWSxVQUFVLHNDQUFhLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDckQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVzs7UUFDVCxtRkFBWSxhQUFhLHNDQUFhO1FBQ3RDLDRDQUFtQixXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBZ0JFLCtDQUErQztJQUMvQywwQkFBMEI7UUFDekIsT0FBTyxDQUFDLE9BQXdCLEVBQWlDLEVBQUU7WUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUMvQixDQUFDLENBQUM7SUFDSixDQUFDOzs7O1lBbkZKLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsV0FBVztnQkFDckIsa1JBQXNDO2dCQUV0QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDaEQ7OztZQVZnRCxpQkFBaUI7OzttQkFhL0QsS0FBSzttQkFFTCxLQUFLO29CQVNMLEtBQUs7b0JBQ0wsS0FBSzt1QkFDTCxLQUFLO29CQVNMLEtBQUs7MkJBU0wsS0FBSyxTQUFDLGFBQWE7MEJBS25CLE1BQU07dUJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBOZ0Zvcm0sIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2Qtc3dpdGNoJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3dpdGNoLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zd2l0Y2guY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RTd2l0Y2gge1xyXG4gICNuYW1lID0gdXVpZC52NCgpO1xyXG4gIEBJbnB1dCgpIHNpemU6ICdzbScgfCAnbGcnO1xyXG4gICNmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgc2V0IGZvcm0odmFsOiBOZ0Zvcm0gfCBGb3JtR3JvdXApIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5nRm9ybSkge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWwuZm9ybTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY29sb3I6ICdwcmltYXJ5JyB8ICd3YXJuJyA9ICdwcmltYXJ5JztcclxuICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCBtb2RlbCh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodGhpcy5mb3JtQ29udHJvbC52YWx1ZSAhPT0gdmFsdWUpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZSwge1xyXG4gICAgICAgIGVtaXRFdmVudDogZmFsc2VcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbmxpbmVFcnJvcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgnaW5saW5lRXJyb3InKSBzZXQgX2lubGluZUVycm9yKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmlubGluZUVycm9yID0gdmFsO1xyXG4gICAgdGhpcy4jdXBkYXRlVmFsaWRhdG9yKCk7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgI3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh0aGlzLiNvbkNoYW5nZSkpO1xyXG4gICAgdGhpcy4jZm9ybT8uYWRkQ29udHJvbCh0aGlzLiNuYW1lLCB0aGlzLmZvcm1Db250cm9sKTtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy4jZm9ybT8ucmVtb3ZlQ29udHJvbCh0aGlzLiNuYW1lKTtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgI29uQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHtcclxuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICB0aGlzLnNkQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gIH1cclxuICAjdXBkYXRlVmFsaWRhdG9yID0gKCkgPT4ge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuICAgIFxyXG4gICAgaWYgKHRoaXMuaW5saW5lRXJyb3IpIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKHRoaXMuY3VzdG9tSW5saW5lRXJyb3JWYWxpZGF0b3IoKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcbiAgICAgLy8gSMOgbSB04bqhbyBWYWxpZGF0b3JzIHTDuXkgY2jhu4luaCBjaG8gaW5saW5lRXJyb3JcclxuICAgICBjdXN0b21JbmxpbmVFcnJvclZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IGlubGluZUVycm9yOiB0cnVlIH07XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -3,6 +3,7 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
5
5
  import { SdSwitch } from './switch.component';
6
+ import { MatFormFieldModule } from '@angular/material/form-field';
6
7
  export class SdSwitchModule {
7
8
  }
8
9
  SdSwitchModule.decorators = [
@@ -12,6 +13,7 @@ SdSwitchModule.decorators = [
12
13
  FormsModule,
13
14
  ReactiveFormsModule,
14
15
  MatSlideToggleModule,
16
+ MatFormFieldModule
15
17
  ],
16
18
  declarations: [
17
19
  SdSwitch
@@ -21,4 +23,4 @@ SdSwitchModule.decorators = [
21
23
  ]
22
24
  },] }
23
25
  ];
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvc3dpdGNoLyIsInNvdXJjZXMiOlsic3JjL2xpYi9zd2l0Y2gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFnQjlDLE1BQU0sT0FBTyxjQUFjOzs7WUFkMUIsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixvQkFBb0I7aUJBQ3JCO2dCQUNELFlBQVksRUFBRTtvQkFDWixRQUFRO2lCQUNUO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxRQUFRO2lCQUNUO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xyXG5pbXBvcnQgeyBTZFN3aXRjaCB9IGZyb20gJy4vc3dpdGNoLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBTZFN3aXRjaFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgU2RTd2l0Y2hcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZFN3aXRjaE1vZHVsZSB7IH1cclxuIl19
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvc3dpdGNoLyIsInNvdXJjZXMiOlsic3JjL2xpYi9zd2l0Y2gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFpQmxFLE1BQU0sT0FBTyxjQUFjOzs7WUFmMUIsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixvQkFBb0I7b0JBQ3BCLGtCQUFrQjtpQkFDbkI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLFFBQVE7aUJBQ1Q7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLFFBQVE7aUJBQ1Q7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XHJcbmltcG9ydCB7IFNkU3dpdGNoIH0gZnJvbSAnLi9zd2l0Y2guY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxyXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFNkU3dpdGNoXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBTZFN3aXRjaFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNkU3dpdGNoTW9kdWxlIHsgfVxyXG4iXX0=
@@ -7,7 +7,7 @@ import { __classPrivateFieldSet, __classPrivateFieldGet } from 'tslib';
7
7
  import { Subscription } from 'rxjs';
8
8
  import { v4 } from 'uuid';
9
9
 
10
- var _name, _form, _subscription, _model, _onChange;
10
+ var _name, _form, _subscription, _model, _onChange, _updateValidator;
11
11
  class SdCheckbox {
12
12
  constructor(ref) {
13
13
  this.ref = ref;
@@ -24,6 +24,17 @@ class SdCheckbox {
24
24
  this.modelChange.emit(value);
25
25
  this.sdChange.emit(value);
26
26
  });
27
+ _updateValidator.set(this, () => {
28
+ this.formControl.clearValidators();
29
+ const validators = [];
30
+ if (this.inlineError) {
31
+ validators.push(this.customInlineErrorValidator());
32
+ }
33
+ this.formControl.setValidators(validators);
34
+ this.formControl.updateValueAndValidity();
35
+ }
36
+ // Hàm tạo Validators tùy chỉnh cho inlineError
37
+ );
27
38
  }
28
39
  set name(val) {
29
40
  if (val) {
@@ -57,6 +68,10 @@ class SdCheckbox {
57
68
  });
58
69
  }
59
70
  }
71
+ set _inlineError(val) {
72
+ this.inlineError = val;
73
+ __classPrivateFieldGet(this, _updateValidator).call(this);
74
+ }
60
75
  ngOnInit() {
61
76
  }
62
77
  ngAfterViewInit() {
@@ -70,12 +85,18 @@ class SdCheckbox {
70
85
  (_a = __classPrivateFieldGet(this, _form)) === null || _a === void 0 ? void 0 : _a.removeControl(__classPrivateFieldGet(this, _name));
71
86
  __classPrivateFieldGet(this, _subscription).unsubscribe();
72
87
  }
88
+ // Hàm tạo Validators tùy chỉnh cho inlineError
89
+ customInlineErrorValidator() {
90
+ return (control) => {
91
+ return { inlineError: true };
92
+ };
93
+ }
73
94
  }
74
- _name = new WeakMap(), _form = new WeakMap(), _subscription = new WeakMap(), _model = new WeakMap(), _onChange = new WeakMap();
95
+ _name = new WeakMap(), _form = new WeakMap(), _subscription = new WeakMap(), _model = new WeakMap(), _onChange = new WeakMap(), _updateValidator = new WeakMap();
75
96
  SdCheckbox.decorators = [
76
97
  { type: Component, args: [{
77
98
  selector: 'sd-checkbox',
78
- template: "<mat-checkbox [formControl]=\"formControl\" [color]=\"color\">{{label}}</mat-checkbox>"
99
+ template: "<mat-checkbox [formControl]=\"formControl\" [color]=\"color\">{{label}}</mat-checkbox>\r\n<mat-error *ngIf=\"formControl.errors?.inlineError && formControl?.touched\">\r\n {{inlineError}}\r\n</mat-error>"
79
100
  },] }
80
101
  ];
81
102
  SdCheckbox.ctorParameters = () => [
@@ -88,6 +109,7 @@ SdCheckbox.propDecorators = {
88
109
  color: [{ type: Input }],
89
110
  disabled: [{ type: Input }],
90
111
  model: [{ type: Input }],
112
+ _inlineError: [{ type: Input, args: ['inlineError',] }],
91
113
  modelChange: [{ type: Output }],
92
114
  sdChange: [{ type: Output }]
93
115
  };
@@ -1 +1 @@
1
- {"version":3,"file":"sd-angular-core-checkbox.js","sources":["../../../../projects/sd-core/checkbox/src/lib/checkbox.component.ts","../../../../projects/sd-core/checkbox/src/lib/checkbox.module.ts","../../../../projects/sd-core/checkbox/sd-angular-core-checkbox.ts"],"sourcesContent":["import { Component, Input, Output, EventEmitter, ChangeDetectorRef, OnDestroy, OnInit, AfterViewInit } from '@angular/core';\r\nimport { FormControl, FormGroup, NgForm } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport * as uuid from 'uuid';\r\n\r\n@Component({\r\n selector: 'sd-checkbox',\r\n templateUrl: './checkbox.component.html'\r\n})\r\nexport class SdCheckbox implements OnDestroy, OnInit, AfterViewInit {\r\n id = `I${uuid.v4()}`;\r\n #name = uuid.v4();\r\n @Input() set name(val: string) {\r\n if (val) {\r\n this.#name = val;\r\n }\r\n }\r\n #form: FormGroup;\r\n @Input() set form(val: NgForm | FormGroup) {\r\n if (val) {\r\n if (val instanceof NgForm) {\r\n this.#form = val.form;\r\n } else {\r\n this.#form = val;\r\n }\r\n }\r\n }\r\n formControl = new FormControl();\r\n #subscription = new Subscription();\r\n @Input() label: string;\r\n @Input() color: 'primary' | 'warn' = 'primary';\r\n @Input() set disabled(val: boolean | '') {\r\n val = (val === '') || val;\r\n if (val) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n #model: any;\r\n @Input() set model(value: any) {\r\n if (this.#model !== value) {\r\n this.#model = value;\r\n this.formControl.setValue(value, {\r\n emitEvent: false\r\n });\r\n }\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n @Output() sdChange = new EventEmitter<any>();\r\n constructor(\r\n private ref: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#subscription.add(this.formControl.valueChanges.subscribe(this.#onChange));\r\n this.#form?.addControl(this.#name, this.formControl);\r\n this.ref.detectChanges();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#form?.removeControl(this.#name);\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n #onChange = (value: any) => {\r\n this.modelChange.emit(value);\r\n this.sdChange.emit(value);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SdCheckbox } from './checkbox.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatCheckboxModule\r\n ],\r\n declarations: [\r\n SdCheckbox\r\n ],\r\n exports: [\r\n SdCheckbox\r\n ]\r\n})\r\nexport class SdCheckboxModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {SdCheckbox as ɵa} from './src/lib/checkbox.component';"],"names":["uuid.v4"],"mappings":";;;;;;;;;;MASa,UAAU;IAyCrB,YACU,GAAsB;QAAtB,QAAG,GAAH,GAAG,CAAmB;QAzChC,OAAE,GAAG,IAAIA,EAAO,EAAE,EAAE,CAAC;QACrB,gBAAQA,EAAO,EAAE,EAAC;QAMlB,wBAAiB;QAUjB,gBAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,wBAAgB,IAAI,YAAY,EAAE,EAAC;QAE1B,UAAK,GAAuB,SAAS,CAAC;QAS/C,yBAAY;QASF,gBAAW,GAAG,IAAI,YAAY,EAAE,CAAC;QACjC,aAAQ,GAAG,IAAI,YAAY,EAAO,CAAC;QAmB7C,oBAAY,CAAC,KAAU;YACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3B,EAAA;KAnBA;IAxCD,IAAa,IAAI,CAAC,GAAW;QAC3B,IAAI,GAAG,EAAE;YACP,uBAAA,IAAI,SAAS,GAAG,EAAC;SAClB;KACF;IAED,IAAa,IAAI,CAAC,GAAuB;QACvC,IAAI,GAAG,EAAE;YACP,IAAI,GAAG,YAAY,MAAM,EAAE;gBACzB,uBAAA,IAAI,SAAS,GAAG,CAAC,IAAI,EAAC;aACvB;iBAAM;gBACL,uBAAA,IAAI,SAAS,GAAG,EAAC;aAClB;SACF;KACF;IAKD,IAAa,QAAQ,CAAC,GAAiB;QACrC,GAAG,GAAG,CAAC,GAAG,KAAK,EAAE,KAAK,GAAG,CAAC;QAC1B,IAAI,GAAG,EAAE;YACP,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;SAC3B;KACF;IAED,IAAa,KAAK,CAAC,KAAU;QAC3B,IAAI,yCAAgB,KAAK,EAAE;YACzB,uBAAA,IAAI,UAAU,KAAK,EAAC;YACpB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE;gBAC/B,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;SACJ;KACF;IAOD,QAAQ;KACP;IAED,eAAe;;QACb,4CAAmB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,yCAAgB,CAAC,CAAC;QAChF,mFAAY,UAAU,sCAAa,IAAI,CAAC,WAAW,EAAE;QACrD,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;IAED,WAAW;;QACT,mFAAY,aAAa,sCAAa;QACtC,4CAAmB,WAAW,EAAE,CAAC;KAClC;;;;YA7DF,SAAS,SAAC;gBACT,QAAQ,EAAE,aAAa;gBACvB,kGAAwC;aACzC;;;YARgD,iBAAiB;;;mBAY/D,KAAK;mBAML,KAAK;oBAWL,KAAK;oBACL,KAAK;uBACL,KAAK;oBASL,KAAK;0BAQL,MAAM;uBACN,MAAM;;;MC3BI,gBAAgB;;;YAf5B,QAAQ,SAAC;gBACR,OAAO,EAAE;oBACP,YAAY;oBACZ,WAAW;oBACX,mBAAmB;oBACnB,kBAAkB;oBAClB,iBAAiB;iBAClB;gBACD,YAAY,EAAE;oBACZ,UAAU;iBACX;gBACD,OAAO,EAAE;oBACP,UAAU;iBACX;aACF;;;ACrBD;;;;;;"}
1
+ {"version":3,"file":"sd-angular-core-checkbox.js","sources":["../../../../projects/sd-core/checkbox/src/lib/checkbox.component.ts","../../../../projects/sd-core/checkbox/src/lib/checkbox.module.ts","../../../../projects/sd-core/checkbox/sd-angular-core-checkbox.ts"],"sourcesContent":["import { Component, Input, Output, EventEmitter, ChangeDetectorRef, OnDestroy, OnInit, AfterViewInit } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroup, NgForm, ValidatorFn } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport * as uuid from 'uuid';\r\n\r\n@Component({\r\n selector: 'sd-checkbox',\r\n templateUrl: './checkbox.component.html'\r\n})\r\nexport class SdCheckbox implements OnDestroy, OnInit, AfterViewInit {\r\n id = `I${uuid.v4()}`;\r\n #name = uuid.v4();\r\n @Input() set name(val: string) {\r\n if (val) {\r\n this.#name = val;\r\n }\r\n }\r\n #form: FormGroup;\r\n @Input() set form(val: NgForm | FormGroup) {\r\n if (val) {\r\n if (val instanceof NgForm) {\r\n this.#form = val.form;\r\n } else {\r\n this.#form = val;\r\n }\r\n }\r\n }\r\n formControl = new FormControl();\r\n #subscription = new Subscription();\r\n @Input() label: string;\r\n @Input() color: 'primary' | 'warn' = 'primary';\r\n @Input() set disabled(val: boolean | '') {\r\n val = (val === '') || val;\r\n if (val) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n #model: any;\r\n @Input() set model(value: any) {\r\n if (this.#model !== value) {\r\n this.#model = value;\r\n this.formControl.setValue(value, {\r\n emitEvent: false\r\n });\r\n }\r\n }\r\n inlineError: string;\r\n @Input('inlineError') set _inlineError(val: string) {\r\n this.inlineError = val;\r\n this.#updateValidator();\r\n }\r\n\r\n @Output() modelChange = new EventEmitter();\r\n @Output() sdChange = new EventEmitter<any>();\r\n constructor(\r\n private ref: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#subscription.add(this.formControl.valueChanges.subscribe(this.#onChange));\r\n this.#form?.addControl(this.#name, this.formControl);\r\n this.ref.detectChanges();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#form?.removeControl(this.#name);\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n #onChange = (value: any) => {\r\n this.modelChange.emit(value);\r\n this.sdChange.emit(value);\r\n }\r\n #updateValidator = () => {\r\n this.formControl.clearValidators();\r\n const validators: ValidatorFn[] = [];\r\n \r\n if (this.inlineError) {\r\n validators.push(this.customInlineErrorValidator());\r\n }\r\n this.formControl.setValidators(validators);\r\n this.formControl.updateValueAndValidity();\r\n }\r\n // Hàm tạo Validators tùy chỉnh cho inlineError\r\n customInlineErrorValidator(): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: any } | null => {\r\n return { inlineError: true };\r\n };\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SdCheckbox } from './checkbox.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatCheckboxModule\r\n ],\r\n declarations: [\r\n SdCheckbox\r\n ],\r\n exports: [\r\n SdCheckbox\r\n ]\r\n})\r\nexport class SdCheckboxModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {SdCheckbox as ɵa} from './src/lib/checkbox.component';"],"names":["uuid.v4"],"mappings":"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"}