@csmart/ngc-smart-victim 1.13.1 → 1.13.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,114 +1,53 @@
1
- import { Directive, ElementRef, Input, Renderer2, } from '@angular/core';
2
- import { AbstractControl, } from '@angular/forms';
1
+ import { Directive, HostListener } from '@angular/core';
2
+ import { NgControl } from '@angular/forms';
3
3
  import * as i0 from "@angular/core";
4
- // import { Subscription } from 'rxjs/Subscription';
4
+ import * as i1 from "@angular/forms";
5
5
  export class PhoneMaskDirective {
6
- // private sub:ISubscription;
7
- constructor(el, renderer) {
8
- this.el = el;
9
- this.renderer = renderer;
6
+ constructor(ngControl) {
7
+ this.ngControl = ngControl;
10
8
  }
11
- set phoneControl(control) {
12
- this._phoneControl = control;
9
+ onModelChange(event) {
10
+ this.onInputChange(event, false);
13
11
  }
14
- set preValue(value) {
15
- this._preValue = value;
16
- this.formatPhoneNumber(value);
12
+ keydownBackspace(event) {
13
+ this.onInputChange(event.target.value, true);
17
14
  }
18
- ngOnInit() { }
19
- ngOnDestroy() {
20
- // this.sub.unsubscribe();
21
- }
22
- formatPhoneNumber(data) {
23
- if (!this._preValue) {
24
- this._preValue = "";
25
- data = "";
15
+ onInputChange(event, backspace) {
16
+ let newVal = event.replace(/\D/g, '');
17
+ if (backspace && newVal.length <= 6) {
18
+ newVal = newVal.substring(0, newVal.length - 1);
19
+ }
20
+ if (newVal.length === 0) {
21
+ newVal = '';
22
+ }
23
+ else if (newVal.length <= 3) {
24
+ newVal = newVal.replace(/^(\d{0,3})/, '($1)');
25
+ }
26
+ else if (newVal.length <= 6) {
27
+ newVal = newVal.replace(/^(\d{0,3})(\d{0,3})/, '($1) $2');
26
28
  }
27
- let preInputValue = this._preValue;
28
- var lastChar = preInputValue.substr(preInputValue.length - 1);
29
- var newVal = data.replace(/\D/g, "");
30
- let start = this.renderer.selectRootElement("#tel").selectionStart;
31
- let end = this.renderer.selectRootElement("#tel").selectionEnd;
32
- if (data.length < preInputValue.length) {
33
- if (preInputValue.length < start) {
34
- if (lastChar == ")") {
35
- newVal = newVal.substr(0, newVal.length - 1);
36
- }
37
- }
38
- if (newVal.length == 0) {
39
- newVal = "";
40
- }
41
- else if (newVal.length <= 3) {
42
- newVal = newVal.replace(/^(\d{0,3})/, "($1");
43
- }
44
- else if (newVal.length <= 6) {
45
- newVal = newVal.replace(/^(\d{0,3})(\d{0,3})/, "($1) $2");
46
- }
47
- else {
48
- newVal = newVal.replace(/^(\d{0,3})(\d{0,3})(.*)/, "($1) $2-$3");
49
- }
50
- this._phoneControl.setValue(newVal, { emitEvent: false });
51
- this.renderer.selectRootElement("#tel").setSelectionRange(start, end);
29
+ else if (newVal.length <= 10) {
30
+ newVal = newVal.replace(/^(\d{0,3})(\d{0,3})(\d{0,4})/, '($1) $2-$3');
52
31
  }
53
32
  else {
54
- var removedD = data.charAt(start);
55
- if (newVal.length == 0) {
56
- newVal = "";
57
- }
58
- else if (newVal.length <= 3) {
59
- newVal = newVal.replace(/^(\d{0,3})/, "($1)");
60
- }
61
- else if (newVal.length <= 6) {
62
- newVal = newVal.replace(/^(\d{0,3})(\d{0,3})/, "($1) $2");
63
- }
64
- else {
65
- newVal = newVal.replace(/^(\d{0,3})(\d{0,3})(.*)/, "($1) $2-$3");
66
- }
67
- if (preInputValue.length >= start) {
68
- if (removedD == "(") {
69
- start = start + 1;
70
- end = end + 1;
71
- }
72
- if (removedD == ")") {
73
- start = start + 2;
74
- end = end + 2;
75
- }
76
- if (removedD == "-") {
77
- start = start + 1;
78
- end = end + 1;
79
- }
80
- if (removedD == " ") {
81
- start = start + 1;
82
- end = end + 1;
83
- }
84
- if (removedD == "") {
85
- start = start + 1;
86
- end = end + 1;
87
- }
88
- this._phoneControl.setValue(newVal, { emitEvent: false });
89
- this.renderer.selectRootElement("#tel").setSelectionRange(start, end);
90
- }
91
- else {
92
- this._phoneControl.setValue(newVal, { emitEvent: false });
93
- this.renderer
94
- .selectRootElement("#tel")
95
- .setSelectionRange(start + 2, end + 2); // +2 because of wanting standard typing
96
- }
33
+ newVal = newVal.substring(0, 10);
34
+ newVal = newVal.replace(/^(\d{0,3})(\d{0,3})(\d{0,4})/, '($1) $2-$3');
97
35
  }
36
+ this.ngControl.valueAccessor.writeValue(newVal);
98
37
  }
99
38
  }
100
- /** @nocollapse */ /** @nocollapse */ PhoneMaskDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: PhoneMaskDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
101
- /** @nocollapse */ /** @nocollapse */ PhoneMaskDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: PhoneMaskDirective, selector: "[phoneMask]", inputs: { phoneControl: "phoneControl", preValue: "preValue" }, ngImport: i0 });
39
+ /** @nocollapse */ /** @nocollapse */ PhoneMaskDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: PhoneMaskDirective, deps: [{ token: i1.NgControl }], target: i0.ɵɵFactoryTarget.Directive });
40
+ /** @nocollapse */ /** @nocollapse */ PhoneMaskDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: PhoneMaskDirective, selector: "[formControlName][appPhoneMask]", host: { listeners: { "ngModelChange": "onModelChange($event)", "keydown.backspace": "keydownBackspace($event)" } }, ngImport: i0 });
102
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: PhoneMaskDirective, decorators: [{
103
42
  type: Directive,
104
43
  args: [{
105
- selector: "[phoneMask]",
44
+ selector: '[formControlName][appPhoneMask]',
106
45
  }]
107
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { phoneControl: [{
108
- type: Input,
109
- args: ["phoneControl"]
110
- }], preValue: [{
111
- type: Input,
112
- args: ["preValue"]
46
+ }], ctorParameters: function () { return [{ type: i1.NgControl }]; }, propDecorators: { onModelChange: [{
47
+ type: HostListener,
48
+ args: ['ngModelChange', ['$event']]
49
+ }], keydownBackspace: [{
50
+ type: HostListener,
51
+ args: ['keydown.backspace', ['$event']]
113
52
  }] } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ2Mtc21hcnQtdmljdGltL3NyYy9saWIvc2hhcmVkL2RpcmVjdGl2ZXMvcGhvbmUtbWFzay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUdMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsZUFBZSxHQUdoQixNQUFNLGdCQUFnQixDQUFDOztBQUN4QixvREFBb0Q7QUFJcEQsTUFBTSxPQUFPLGtCQUFrQjtJQVk3Qiw2QkFBNkI7SUFDN0IsWUFBb0IsRUFBYyxFQUFVLFFBQW1CO1FBQTNDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO0lBQUcsQ0FBQztJQVZuRSxJQUNXLFlBQVksQ0FBQyxPQUF3QjtRQUM5QyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztJQUMvQixDQUFDO0lBQ0QsSUFDVyxRQUFRLENBQUMsS0FBYTtRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUdELFFBQVEsS0FBSSxDQUFDO0lBQ2IsV0FBVztRQUNULDBCQUEwQjtJQUM1QixDQUFDO0lBQ0QsaUJBQWlCLENBQUMsSUFBSTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztZQUNwQixJQUFJLEdBQUcsRUFBRSxDQUFDO1NBQ1g7UUFDRCxJQUFJLGFBQWEsR0FBVyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzNDLElBQUksUUFBUSxHQUFXLGFBQWEsQ0FBQyxNQUFNLENBQUMsYUFBYSxD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QUMsQ0FBQztpQkFDZjtnQkFDRCxJQUFJLFFBQVEsSUFBSSxHQUFHLEVBQUU7b0JBQ25CLEtBQUssR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO29CQUNsQixHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztpQkFDZjtnQkFDRCxJQUFJLFFBQVEsSUFBSSxFQUFFLEVBQUU7b0JBQ2xCLEtBQUssR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO29CQUNsQixHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztpQkFDZjtnQkFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDMUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDdkU7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQzFELElBQUksQ0FBQyxRQUFRO3FCQUNWLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztxQkFDekIsaUJBQWlCLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyx3Q0FBd0M7YUFDbkY7U0FDRjtJQUNILENBQUM7O3FKQXRGVSxrQkFBa0I7eUlBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUg5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO2lCQUN4Qjt5SEFLWSxZQUFZO3NCQUR0QixLQUFLO3VCQUFDLGNBQWM7Z0JBS1YsUUFBUTtzQkFEbEIsS0FBSzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIERpcmVjdGl2ZSxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uSW5pdCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIFJlbmRlcmVyMixcclxuICB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG4gIGltcG9ydCB7XHJcbiAgICBGb3JtR3JvdXAsXHJcbiAgICBGb3JtQnVpbGRlcixcclxuICAgIEFic3RyYWN0Q29udHJvbCxcclxuICAgIFZhbGlkYXRvcnMsXHJcbiAgICBGb3JtQ29udHJvbCxcclxuICB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuICAvLyBpbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzL1N1YnNjcmlwdGlvbic7XHJcbiAgQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogXCJbcGhvbmVNYXNrXVwiLFxyXG4gIH0pXHJcbiAgZXhwb3J0IGNsYXNzIFBob25lTWFza0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIHByaXZhdGUgX3Bob25lQ29udHJvbDogQWJzdHJhY3RDb250cm9sO1xyXG4gICAgcHJpdmF0ZSBfcHJlVmFsdWU6IHN0cmluZztcclxuICAgIEBJbnB1dChcInBob25lQ29udHJvbFwiKVxyXG4gICAgcHVibGljIHNldCBwaG9uZUNvbnRyb2woY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XHJcbiAgICAgIHRoaXMuX3Bob25lQ29udHJvbCA9IGNvbnRyb2w7XHJcbiAgICB9XHJcbiAgICBASW5wdXQoXCJwcmVWYWx1ZVwiKVxyXG4gICAgcHVibGljIHNldCBwcmVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgIHRoaXMuX3ByZVZhbHVlID0gdmFsdWU7XHJcbiAgICAgIHRoaXMuZm9ybWF0UGhvbmVOdW1iZXIodmFsdWUpO1xyXG4gICAgfVxyXG4gICAgLy8gcHJpdmF0ZSBzdWI6SVN1YnNjcmlwdGlvbjtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cclxuICAgIG5nT25Jbml0KCkge31cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAvLyB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgZm9ybWF0UGhvbmVOdW1iZXIoZGF0YSkge1xyXG4gICAgICBpZiAoIXRoaXMuX3ByZVZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5fcHJlVmFsdWUgPSBcIlwiO1xyXG4gICAgICAgIGRhdGEgPSBcIlwiO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBwcmVJbnB1dFZhbHVlOiBzdHJpbmcgPSB0aGlzLl9wcmVWYWx1ZTtcclxuICAgICAgdmFyIGxhc3RDaGFyOiBzdHJpbmcgPSBwcmVJbnB1dFZhbHVlLnN1YnN0cihwcmVJbnB1dFZhbHVlLmxlbmd0aCAtIDEpO1xyXG4gICAgICB2YXIgbmV3VmFsID0gZGF0YS5yZXBsYWNlKC9cXEQvZywgXCJcIik7XHJcbiAgICAgIGxldCBzdGFydCA9IHRoaXMucmVuZGVyZXIuc2VsZWN0Um9vdEVsZW1lbnQoXCIjdGVsXCIpLnNlbGVjdGlvblN0YXJ0O1xyXG4gICAgICBsZXQgZW5kID0gdGhpcy5yZW5kZXJlci5zZWxlY3RSb290RWxlbWVudChcIiN0ZWxcIikuc2VsZWN0aW9uRW5kO1xyXG4gICAgICBpZiAoZGF0YS5sZW5ndGggPCBwcmVJbnB1dFZhbHVlLmxlbmd0aCkge1xyXG4gICAgICAgIGlmIChwcmVJbnB1dFZhbHVlLmxlbmd0aCA8IHN0YXJ0KSB7XHJcbiAgICAgICAgICBpZiAobGFzdENoYXIgPT0gXCIpXCIpIHtcclxuICAgICAgICAgICAgbmV3VmFsID0gbmV3VmFsLnN1YnN0cigwLCBuZXdWYWwubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChuZXdWYWwubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgIG5ld1ZhbCA9IFwiXCI7XHJcbiAgICAgICAgfSBlbHNlIGlmIChuZXdWYWwubGVuZ3RoIDw9IDMpIHtcclxuICAgICAgICAgIG5ld1ZhbCA9IG5ld1ZhbC5yZXBsYWNlKC9eKFxcZHswLDN9KS8sIFwiKCQxXCIpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobmV3VmFsLmxlbmd0aCA8PSA2KSB7XHJcbiAgICAgICAgICBuZXdWYWwgPSBuZXdWYWwucmVwbGFjZSgvXihcXGR7MCwzfSkoXFxkezAsM30pLywgXCIoJDEpICQyXCIpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBuZXdWYWwgPSBuZXdWYWwucmVwbGFjZSgvXihcXGR7MCwzfSkoXFxkezAsM30pKC4qKS8sIFwiKCQxKSAkMi0kM1wiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fcGhvbmVDb250cm9sLnNldFZhbHVlKG5ld1ZhbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2VsZWN0Um9vdEVsZW1lbnQoXCIjdGVsXCIpLnNldFNlbGVjdGlvblJhbmdlKHN0YXJ0LCBlbmQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHZhciByZW1vdmVkRCA9IGRhdGEuY2hhckF0KHN0YXJ0KTtcclxuICAgICAgICBpZiAobmV3VmFsLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICBuZXdWYWwgPSBcIlwiO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobmV3VmFsLmxlbmd0aCA8PSAzKSB7XHJcbiAgICAgICAgICBuZXdWYWwgPSBuZXdWYWwucmVwbGFjZSgvXihcXGR7MCwzfSkvLCBcIigkMSlcIik7XHJcbiAgICAgICAgfSBlbHNlIGlmIChuZXdWYWwubGVuZ3RoIDw9IDYpIHtcclxuICAgICAgICAgIG5ld1ZhbCA9IG5ld1ZhbC5yZXBsYWNlKC9eKFxcZHswLDN9KShcXGR7MCwzfSkvLCBcIigkMSkgJDJcIik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG5ld1ZhbCA9IG5ld1ZhbC5yZXBsYWNlKC9eKFxcZHswLDN9KShcXGR7MCwzfSkoLiopLywgXCIoJDEpICQyLSQzXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocHJlSW5wdXRWYWx1ZS5sZW5ndGggPj0gc3RhcnQpIHtcclxuICAgICAgICAgIGlmIChyZW1vdmVkRCA9PSBcIihcIikge1xyXG4gICAgICAgICAgICBzdGFydCA9IHN0YXJ0ICsgMTtcclxuICAgICAgICAgICAgZW5kID0gZW5kICsgMTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyZW1vdmVkRCA9PSBcIilcIikge1xyXG4gICAgICAgICAgICBzdGFydCA9IHN0YXJ0ICsgMjtcclxuICAgICAgICAgICAgZW5kID0gZW5kICsgMjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyZW1vdmVkRCA9PSBcIi1cIikge1xyXG4gICAgICAgICAgICBzdGFydCA9IHN0YXJ0ICsgMTtcclxuICAgICAgICAgICAgZW5kID0gZW5kICsgMTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyZW1vdmVkRCA9PSBcIiBcIikge1xyXG4gICAgICAgICAgICBzdGFydCA9IHN0YXJ0ICsgMTtcclxuICAgICAgICAgICAgZW5kID0gZW5kICsgMTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyZW1vdmVkRCA9PSBcIlwiKSB7XHJcbiAgICAgICAgICAgIHN0YXJ0ID0gc3RhcnQgKyAxO1xyXG4gICAgICAgICAgICBlbmQgPSBlbmQgKyAxO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5fcGhvbmVDb250cm9sLnNldFZhbHVlKG5ld1ZhbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZWxlY3RSb290RWxlbWVudChcIiN0ZWxcIikuc2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX3Bob25lQ29udHJvbC5zZXRWYWx1ZShuZXdWYWwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXJcclxuICAgICAgICAgICAgLnNlbGVjdFJvb3RFbGVtZW50KFwiI3RlbFwiKVxyXG4gICAgICAgICAgICAuc2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQgKyAyLCBlbmQgKyAyKTsgLy8gKzIgYmVjYXVzZSBvZiB3YW50aW5nIHN0YW5kYXJkIHR5cGluZ1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0iXX0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ2Mtc21hcnQtdmljdGltL3NyYy9saWIvc2hhcmVkL2RpcmVjdGl2ZXMvcGhvbmUtbWFzay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFLM0MsTUFBTSxPQUFPLGtCQUFrQjtJQUU3QixZQUFtQixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO0lBQUksQ0FBQztJQUc1QyxhQUFhLENBQUMsS0FBSztRQUNqQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBR0QsZ0JBQWdCLENBQUMsS0FBSztRQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFHRCxhQUFhLENBQUMsS0FBSyxFQUFFLFNBQVM7UUFDNUIsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEMsSUFBSSxTQUFTLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDbkMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDakQ7UUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxFQUFFLENBQUM7U0FDYjthQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDN0IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQy9DO2FBQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUM3QixNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUMzRDthQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUU7WUFDOUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsOEJBQThCLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDdkU7YUFBTTtZQUNMLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNqQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyw4QkFBOEIsRUFBRSxZQUFZLENBQUMsQ0FBQztTQUN2RTtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDOztxSkFqQ1Usa0JBQWtCO3lJQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFIOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUNBQWlDO2lCQUM1QztnR0FNQyxhQUFhO3NCQURaLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU16QyxnQkFBZ0I7c0JBRGYsWUFBWTt1QkFBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2Zvcm1Db250cm9sTmFtZV1bYXBwUGhvbmVNYXNrXScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQaG9uZU1hc2tEaXJlY3RpdmUge1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wpIHsgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCduZ01vZGVsQ2hhbmdlJywgWyckZXZlbnQnXSlcclxuICBvbk1vZGVsQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICB0aGlzLm9uSW5wdXRDaGFuZ2UoZXZlbnQsIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYmFja3NwYWNlJywgWyckZXZlbnQnXSlcclxuICBrZXlkb3duQmFja3NwYWNlKGV2ZW50KSB7XHJcbiAgICB0aGlzLm9uSW5wdXRDaGFuZ2UoZXZlbnQudGFyZ2V0LnZhbHVlLCB0cnVlKTtcclxuICB9XHJcbiAgXHJcblxyXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQsIGJhY2tzcGFjZSkge1xyXG4gICAgbGV0IG5ld1ZhbCA9IGV2ZW50LnJlcGxhY2UoL1xcRC9nLCAnJyk7XHJcbiAgICBpZiAoYmFja3NwYWNlICYmIG5ld1ZhbC5sZW5ndGggPD0gNikge1xyXG4gICAgICBuZXdWYWwgPSBuZXdWYWwuc3Vic3RyaW5nKDAsIG5ld1ZhbC5sZW5ndGggLSAxKTtcclxuICAgIH1cclxuICAgIGlmIChuZXdWYWwubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIG5ld1ZhbCA9ICcnO1xyXG4gICAgfSBlbHNlIGlmIChuZXdWYWwubGVuZ3RoIDw9IDMpIHtcclxuICAgICAgbmV3VmFsID0gbmV3VmFsLnJlcGxhY2UoL14oXFxkezAsM30pLywgJygkMSknKTtcclxuICAgIH0gZWxzZSBpZiAobmV3VmFsLmxlbmd0aCA8PSA2KSB7XHJcbiAgICAgIG5ld1ZhbCA9IG5ld1ZhbC5yZXBsYWNlKC9eKFxcZHswLDN9KShcXGR7MCwzfSkvLCAnKCQxKSAkMicpO1xyXG4gICAgfSBlbHNlIGlmIChuZXdWYWwubGVuZ3RoIDw9IDEwKSB7XHJcbiAgICAgIG5ld1ZhbCA9IG5ld1ZhbC5yZXBsYWNlKC9eKFxcZHswLDN9KShcXGR7MCwzfSkoXFxkezAsNH0pLywgJygkMSkgJDItJDMnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld1ZhbCA9IG5ld1ZhbC5zdWJzdHJpbmcoMCwgMTApO1xyXG4gICAgICBuZXdWYWwgPSBuZXdWYWwucmVwbGFjZSgvXihcXGR7MCwzfSkoXFxkezAsM30pKFxcZHswLDR9KS8sICcoJDEpICQyLSQzJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yLndyaXRlVmFsdWUobmV3VmFsKTtcclxuICB9XHJcbn1cclxuIl19