@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.
- package/bundles/sd-angular-core-checkbox.umd.js +29 -3
- package/bundles/sd-angular-core-checkbox.umd.js.map +1 -1
- package/bundles/sd-angular-core-checkbox.umd.min.js +2 -2
- package/bundles/sd-angular-core-checkbox.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-date-time.umd.js +14 -6
- package/bundles/sd-angular-core-date-time.umd.js.map +1 -1
- package/bundles/sd-angular-core-date-time.umd.min.js +1 -1
- package/bundles/sd-angular-core-date-time.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-input-number.umd.js +3 -0
- package/bundles/sd-angular-core-input-number.umd.js.map +1 -1
- package/bundles/sd-angular-core-input-number.umd.min.js +1 -1
- package/bundles/sd-angular-core-input-number.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-input-upload-file.umd.js +54 -3
- package/bundles/sd-angular-core-input-upload-file.umd.js.map +1 -1
- package/bundles/sd-angular-core-input-upload-file.umd.min.js +2 -2
- package/bundles/sd-angular-core-input-upload-file.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-radio.umd.js +22 -2
- package/bundles/sd-angular-core-radio.umd.js.map +1 -1
- package/bundles/sd-angular-core-radio.umd.min.js +2 -2
- package/bundles/sd-angular-core-radio.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-switch.umd.js +34 -7
- package/bundles/sd-angular-core-switch.umd.js.map +1 -1
- package/bundles/sd-angular-core-switch.umd.min.js +2 -2
- package/bundles/sd-angular-core-switch.umd.min.js.map +1 -1
- package/checkbox/sd-angular-core-checkbox.metadata.json +1 -1
- package/checkbox/src/lib/checkbox.component.d.ts +4 -1
- package/date-time/sd-angular-core-date-time.metadata.json +1 -1
- package/date-time/src/lib/date-time.component.d.ts +1 -0
- package/esm2015/checkbox/src/lib/checkbox.component.js +26 -4
- package/esm2015/date-time/src/lib/date-time.component.js +8 -2
- package/esm2015/date-time/src/lib/date-time.module.js +6 -2
- package/esm2015/input-number/src/lib/input-number.component.js +4 -1
- package/esm2015/input-upload-file/src/lib/input-upload-file.component.js +44 -5
- package/esm2015/radio/src/lib/radio.component.js +19 -3
- package/esm2015/switch/src/lib/switch.component.js +26 -4
- package/esm2015/switch/src/lib/switch.module.js +3 -1
- package/fesm2015/sd-angular-core-checkbox.js +25 -3
- package/fesm2015/sd-angular-core-checkbox.js.map +1 -1
- package/fesm2015/sd-angular-core-date-time.js +12 -2
- package/fesm2015/sd-angular-core-date-time.js.map +1 -1
- package/fesm2015/sd-angular-core-input-number.js +3 -0
- package/fesm2015/sd-angular-core-input-number.js.map +1 -1
- package/fesm2015/sd-angular-core-input-upload-file.js +43 -4
- package/fesm2015/sd-angular-core-input-upload-file.js.map +1 -1
- package/fesm2015/sd-angular-core-radio.js +18 -2
- package/fesm2015/sd-angular-core-radio.js.map +1 -1
- package/fesm2015/sd-angular-core-switch.js +27 -3
- package/fesm2015/sd-angular-core-switch.js.map +1 -1
- package/input-number/sd-angular-core-input-number.metadata.json +1 -1
- package/input-number/src/lib/input-number.component.d.ts +1 -0
- package/input-upload-file/sd-angular-core-input-upload-file.metadata.json +1 -1
- package/input-upload-file/src/lib/input-upload-file.component.d.ts +8 -1
- package/package.json +1 -1
- package/radio/sd-angular-core-radio.metadata.json +1 -1
- package/radio/src/lib/radio.component.d.ts +4 -1
- package/{sd-angular-core-1.3.214.tgz → sd-angular-core-1.3.217.tgz} +0 -0
- package/switch/sd-angular-core-switch.metadata.json +1 -1
- 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,
|
|
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,
|
|
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;
|
|
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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"}
|