@seniorsistemas/angular-components 17.26.7 → 17.26.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/bundles/seniorsistemas-angular-components.umd.js +2617 -2541
  2. package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
  3. package/bundles/seniorsistemas-angular-components.umd.min.js +2 -2
  4. package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
  5. package/components/bignumber-input/bignumber-input.directive.d.ts +4 -4
  6. package/components/dynamic-form/configurations/fields/text-area-field.d.ts +8 -6
  7. package/components/dynamic-form/configurations/fields/text-area-ia-field.d.ts +6 -0
  8. package/components/speech-recognition/speech-recognition/speech-recognition.component.d.ts +3 -0
  9. package/components/speech-recognition/speech-recognition.service.d.ts +7 -1
  10. package/components/text-area/text-area/text-area.component.d.ts +3 -0
  11. package/components/text-area-ia/text-area-ia.component.d.ts +2 -0
  12. package/esm2015/components/bignumber-input/bignumber-input.directive.js +10 -11
  13. package/esm2015/components/dynamic-form/components/fields/text/text-field.component.js +2 -2
  14. package/esm2015/components/dynamic-form/components/fields/text-area/text-area-field.component.js +2 -2
  15. package/esm2015/components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component.js +6 -4
  16. package/esm2015/components/dynamic-form/configurations/fields/text-area-field.js +9 -3
  17. package/esm2015/components/dynamic-form/configurations/fields/text-area-ia-field.js +5 -2
  18. package/esm2015/components/speech-recognition/speech-recognition/speech-recognition.component.js +32 -10
  19. package/esm2015/components/speech-recognition/speech-recognition.service.js +82 -57
  20. package/esm2015/components/text-area/text-area/text-area.component.js +14 -3
  21. package/esm2015/components/text-area-ia/text-area-ia.component.js +10 -2
  22. package/esm2015/locale/fallback.js +3 -2
  23. package/esm2015/seniorsistemas-angular-components.js +113 -112
  24. package/esm5/components/bignumber-input/bignumber-input.directive.js +10 -11
  25. package/esm5/components/dynamic-form/components/fields/text/text-field.component.js +2 -2
  26. package/esm5/components/dynamic-form/components/fields/text-area/text-area-field.component.js +2 -2
  27. package/esm5/components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component.js +6 -4
  28. package/esm5/components/dynamic-form/configurations/fields/text-area-field.js +10 -4
  29. package/esm5/components/dynamic-form/configurations/fields/text-area-ia-field.js +5 -2
  30. package/esm5/components/speech-recognition/speech-recognition/speech-recognition.component.js +33 -10
  31. package/esm5/components/speech-recognition/speech-recognition.service.js +84 -58
  32. package/esm5/components/text-area/text-area/text-area.component.js +14 -3
  33. package/esm5/components/text-area-ia/text-area-ia.component.js +10 -2
  34. package/esm5/locale/fallback.js +3 -2
  35. package/esm5/seniorsistemas-angular-components.js +113 -112
  36. package/fesm2015/seniorsistemas-angular-components.js +2371 -2298
  37. package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
  38. package/fesm5/seniorsistemas-angular-components.js +2508 -2433
  39. package/fesm5/seniorsistemas-angular-components.js.map +1 -1
  40. package/package.json +2 -2
  41. package/seniorsistemas-angular-components.d.ts +112 -111
  42. package/seniorsistemas-angular-components.metadata.json +1 -1
@@ -10,6 +10,8 @@ let SpeechRecognitionComponent = class SpeechRecognitionComponent {
10
10
  this.speechRecognitionService = speechRecognitionService;
11
11
  this.textToSpeechService = textToSpeechService;
12
12
  this.translateService = translateService;
13
+ this.keepContext = false;
14
+ this.speechRecognitionPlaceholder = '';
13
15
  this._recognizedText = '';
14
16
  this.originalTextAreaElementText = '';
15
17
  this.isDoneSpeaking = false;
@@ -40,7 +42,7 @@ let SpeechRecognitionComponent = class SpeechRecognitionComponent {
40
42
  if (!this.textAreaElement) {
41
43
  throw new Error('textAreaElement is required');
42
44
  }
43
- this.textAreaElement.placeholder = this.translateService.instant("platform.angular_components.text_area_speech_recognition_placeholder");
45
+ this.textAreaElement.placeholder = this.speechRecognitionPlaceholder ? this.speechRecognitionPlaceholder : this.translateService.instant("platform.angular_components.text_area_speech_recognition_placeholder");
44
46
  this.textAreaElement.addEventListener('keydown', this.keydownEventListener);
45
47
  }
46
48
  onListen() {
@@ -50,9 +52,7 @@ let SpeechRecognitionComponent = class SpeechRecognitionComponent {
50
52
  this.disabled = true;
51
53
  this.canRenderMicrophone = false;
52
54
  this.canRenderListeningText = true;
53
- if (this.textAreaElement.value && !this.originalTextAreaElementText) {
54
- this.originalTextAreaElementText = this.textAreaElement.value;
55
- }
55
+ this.originalTextAreaElementText = this.textAreaElement.value;
56
56
  this.textAreaElement.value = '';
57
57
  this.isSpeaking = true;
58
58
  this.speechRecognitionService.listen()
@@ -60,17 +60,26 @@ let SpeechRecognitionComponent = class SpeechRecognitionComponent {
60
60
  .subscribe(({ text, isFinal }) => {
61
61
  this._recognizedText = text;
62
62
  this.setTextAreaValue(text);
63
- setTimeout(() => {
64
- this.textAreaElement.scrollTop = this.textAreaElement.scrollHeight;
65
- }, 120);
63
+ this.scrollTextAreaBottom();
66
64
  if (isFinal) {
67
65
  this.canRenderAprove = true;
68
66
  this.canRenderDiscard = true;
69
67
  this.canRenderListeningText = false;
70
68
  this.isSpeaking = false;
71
69
  }
70
+ }, () => {
71
+ this.isSpeaking = false;
72
+ this.canRenderMicrophone = true;
73
+ this.isDisabledMicrophone = false;
74
+ this.canRenderListeningText = false;
75
+ this.disabled = false;
72
76
  });
73
77
  }
78
+ scrollTextAreaBottom() {
79
+ setTimeout(() => {
80
+ this.textAreaElement.scrollTop = this.textAreaElement.scrollHeight;
81
+ }, 120);
82
+ }
74
83
  onOpenToolbar() {
75
84
  if (this.isDisabledTextToSpeech) {
76
85
  return;
@@ -104,8 +113,15 @@ let SpeechRecognitionComponent = class SpeechRecognitionComponent {
104
113
  this.canRenderMicrophone = true;
105
114
  this.canRenderTextToSpeechToolbar = false;
106
115
  this.canRenderTextToSpeech = true;
107
- this.originalTextAreaElementText = this._recognizedText;
108
- this.recognizedText.emit(this._recognizedText);
116
+ if (this.keepContext) {
117
+ const breakLine = this.originalTextAreaElementText.length > 0 ? '\n' : '';
118
+ this.originalTextAreaElementText += `${breakLine}${this._recognizedText}`;
119
+ }
120
+ else {
121
+ this.originalTextAreaElementText = this._recognizedText;
122
+ }
123
+ this.recognizedText.emit(this.keepContext ? this.originalTextAreaElementText : this._recognizedText);
124
+ this.scrollTextAreaBottom();
109
125
  this._recognizedText = '';
110
126
  this.disabled = false;
111
127
  this.textToSpeechService.cancel();
@@ -172,6 +188,12 @@ SpeechRecognitionComponent.ctorParameters = () => [
172
188
  __decorate([
173
189
  Input()
174
190
  ], SpeechRecognitionComponent.prototype, "textAreaElement", void 0);
191
+ __decorate([
192
+ Input()
193
+ ], SpeechRecognitionComponent.prototype, "keepContext", void 0);
194
+ __decorate([
195
+ Input()
196
+ ], SpeechRecognitionComponent.prototype, "speechRecognitionPlaceholder", void 0);
175
197
  __decorate([
176
198
  Output()
177
199
  ], SpeechRecognitionComponent.prototype, "recognizedText", void 0);
@@ -183,4 +205,4 @@ SpeechRecognitionComponent = __decorate([
183
205
  })
184
206
  ], SpeechRecognitionComponent);
185
207
  export { SpeechRecognitionComponent };
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXJlY29nbml0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3NwZWVjaC1yZWNvZ25pdGlvbi9zcGVlY2gtcmVjb2duaXRpb24vc3BlZWNoLXJlY29nbml0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBT2hFLElBQWEsMEJBQTBCLEdBQXZDLE1BQWEsMEJBQTBCO0lBNEJyQyxZQUNtQix3QkFBa0QsRUFDbEQsbUJBQXdDLEVBQ3hDLGdCQUFrQztRQUZsQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQTdCN0Msb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFDckIsZ0NBQTJCLEdBQUcsRUFBRSxDQUFDO1FBQ2pDLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ2QsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDakMsaUJBQVksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLHlCQUFvQixHQUFH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O1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUVGLENBQUE7O1lBcko4Qyx3QkFBd0I7WUFDN0IsbUJBQW1CO1lBQ3RCLGdCQUFnQjs7QUE5QjVDO0lBQVIsS0FBSyxFQUFFO21FQUFzQztBQTBCcEM7SUFBVCxNQUFNLEVBQUU7a0VBQTZDO0FBM0IzQywwQkFBMEI7SUFMdEMsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLHNCQUFzQjtRQUNoQyx5b0ZBQWtEOztLQUVuRCxDQUFDO0dBQ1csMEJBQTBCLENBa0x0QztTQWxMWSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNwZWVjaFJlY29nbml0aW9uU2VydmljZSB9IGZyb20gJy4uL3NwZWVjaC1yZWNvZ25pdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFRleHRUb1NwZWVjaFNlcnZpY2UgfSBmcm9tICcuLi90ZXh0LXRvLXNwZWVjaC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncy1zcGVlY2gtcmVjb2duaXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vc3BlZWNoLXJlY29nbml0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3BlZWNoLXJlY29nbml0aW9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHRleHRBcmVhRWxlbWVudDogSFRNTFRleHRBcmVhRWxlbWVudDtcbiAgcHJpdmF0ZSBfcmVjb2duaXplZFRleHQgPSAnJztcbiAgcHJpdmF0ZSBvcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQgPSAnJztcbiAgcHJpdmF0ZSBpc0RvbmVTcGVha2luZyA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IFZPSUNFX1NQRUVEUyA9IFswLjUsIDEsIDEuNSwgMl07XG4gIHByaXZhdGUgcmVhZG9ubHkga2V5ZG93bkV2ZW50TGlzdGVuZXIgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBkaXNhYmxlZCA9IGZhbHNlO1xuICBpc1NwZWFraW5nID0gZmFsc2U7XG4gIHZvaWNlU3BlZWQgPSAxO1xuICBpc0Rpc2FibGVkTWljcm9waG9uZSA9IGZhbHNlO1xuXG4gIGNhblJlbmRlck1pY3JvcGhvbmUgPSB0cnVlO1xuICBjYW5SZW5kZXJUZXh0VG9TcGVlY2ggPSB0cnVlO1xuICBjYW5SZW5kZXJMaXN0ZW5pbmdUZXh0ID0gZmFsc2U7XG4gIGNhblJlbmRlckRpc2NhcmQgPSBmYWxzZTtcbiAgY2FuUmVuZGVyQXByb3ZlID0gZmFsc2U7XG4gIGNhblJlbmRlclRleHRUb1NwZWVjaFRvb2xiYXIgPSBmYWxzZTtcblxuICBpc1BsYXlpbmdUZXh0VG9TcGVlY2ggPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgcmVjb2duaXplZFRleHQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzcGVlY2hSZWNvZ25pdGlvblNlcnZpY2U6IFNwZWVjaFJlY29nbml0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRUb1NwZWVjaFNlcnZpY2U6IFRleHRUb1NwZWVjaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmhhc1NwZWVjaFJlY29nbml0aW9uQnJvd3NlckFwaSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMudGV4dEFyZWFFbGVtZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3RleHRBcmVhRWxlbWVudCBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgICB0aGlzLnRleHRBcmVhRWxlbWVudC5wbGFjZWhvbGRlciA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwicGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnRleHRfYXJlYV9zcGVlY2hfcmVjb2duaXRpb25fcGxhY2Vob2xkZXJcIik7XG4gICAgdGhpcy50ZXh0QXJlYUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMua2V5ZG93bkV2ZW50TGlzdGVuZXIpXG4gIH1cblxuICBvbkxpc3RlbigpIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkTWljcm9waG9uZSB8fCB0aGlzLmlzTGlzdGVuaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuY2FuUmVuZGVyTWljcm9waG9uZSA9IGZhbHNlO1xuICAgIHRoaXMuY2FuUmVuZGVyTGlzdGVuaW5nVGV4dCA9IHRydWU7XG4gICAgaWYgKHRoaXMudGV4dEFyZWFFbGVtZW50LnZhbHVlICYmICF0aGlzLm9yaWdpbmFsVGV4dEFyZWFFbGVtZW50VGV4dCkge1xuICAgICAgdGhpcy5vcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQgPSB0aGlzLnRleHRBcmVhRWxlbWVudC52YWx1ZTtcbiAgICB9XG5cblxuICAgIHRoaXMudGV4dEFyZWFFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgdGhpcy5pc1NwZWFraW5nID0gdHJ1ZTtcbiAgICB0aGlzLnNwZWVjaFJlY29nbml0aW9uU2VydmljZS5saXN0ZW4oKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKCh7IHRleHQsIGlzRmluYWwgfSkgPT4ge1xuICAgICAgICB0aGlzLl9yZWNvZ25pemVkVGV4dCA9IHRleHQ7XG4gICAgICAgIHRoaXMuc2V0VGV4dEFyZWFWYWx1ZSh0ZXh0KTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy50ZXh0QXJlYUVsZW1lbnQuc2Nyb2xsVG9wID0gdGhpcy50ZXh0QXJlYUVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xuICAgICAgICB9LCAxMjApXG4gICAgICAgIGlmIChpc0ZpbmFsKSB7XG4gICAgICAgICAgdGhpcy5jYW5SZW5kZXJBcHJvdmUgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuY2FuUmVuZGVyRGlzY2FyZCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5jYW5SZW5kZXJMaXN0ZW5pbmdUZXh0ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5pc1NwZWFraW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gIH1cblxuICBvbk9wZW5Ub29sYmFyKCkge1xuICAgIGlmICh0aGlzLmlzRGlzYWJsZWRUZXh0VG9TcGVlY2gpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2hUb29sYmFyID0gdHJ1ZTtcbiAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaCA9IGZhbHNlO1xuICAgIHRoaXMuaXNQbGF5aW5nVGV4dFRvU3BlZWNoID0gdHJ1ZTtcbiAgICB0aGlzLnNwZWFrKCk7XG4gIH1cblxuICBvbkNsb3NlVG9vbGJhcigpIHtcbiAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaFRvb2xiYXIgPSBmYWxzZTtcbiAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaCA9IHRydWU7XG4gICAgdGhpcy5pc1BsYXlpbmdUZXh0VG9TcGVlY2ggPSBmYWxzZTtcbiAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UuY2FuY2VsKCk7XG4gICAgdGhpcy52b2ljZVNwZWVkID0gMTtcbiAgfVxuICBvbkRpc2NhcmQoKSB7XG4gICAgdGhpcy5jYW5SZW5kZXJBcHJvdmUgPSBmYWxzZTtcbiAgICB0aGlzLmNhblJlbmRlckRpc2NhcmQgPSBmYWxzZTtcbiAgICB0aGlzLmNhblJlbmRlck1pY3JvcGhvbmUgPSB0cnVlO1xuICAgIHRoaXMuY2FuUmVuZGVyVGV4dFRvU3BlZWNoVG9vbGJhciA9IGZhbHNlO1xuICAgIHRoaXMuY2FuUmVuZGVyVGV4dFRvU3BlZWNoID0gdHJ1ZTtcbiAgICB0aGlzLl9yZWNvZ25pemVkVGV4dCA9ICcnO1xuICAgIHRoaXMuc2V0VGV4dEFyZWFWYWx1ZSh0aGlzLm9yaWdpbmFsVGV4dEFyZWFFbGVtZW50VGV4dCk7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5jYW5jZWwoKTtcbiAgfVxuXG4gIG9uQXByb3ZlKCkge1xuICAgIHRoaXMuY2FuUmVuZGVyQXByb3ZlID0gZmFsc2U7XG4gICAgdGhpcy5jYW5SZW5kZXJEaXNjYXJkID0gZmFsc2U7XG4gICAgdGhpcy5jYW5SZW5kZXJNaWNyb3Bob25lID0gdHJ1ZTtcbiAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaFRvb2xiYXIgPSBmYWxzZTtcbiAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaCA9IHRydWU7XG4gICAgdGhpcy5vcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQgPSB0aGlzLl9yZWNvZ25pemVkVGV4dFxuICAgIHRoaXMucmVjb2duaXplZFRleHQuZW1pdCh0aGlzLl9yZWNvZ25pemVkVGV4dCk7XG4gICAgdGhpcy5fcmVjb2duaXplZFRleHQgPSAnJztcbiAgICB0aGlzLmRpc2FibGVkID0gZmFsc2U7XG4gICAgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLmNhbmNlbCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHRvZ2dsZVRleHRUb1NwZWVjaCgpIHtcbiAgICBpZiAodGhpcy5pc1BsYXlpbmdUZXh0VG9TcGVlY2gpIHtcbiAgICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5wYXVzZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5pc0RvbmVTcGVha2luZykge1xuICAgICAgICB0aGlzLnNwZWFrKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UucmVzdW1lKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuaXNQbGF5aW5nVGV4dFRvU3BlZWNoID0gIXRoaXMuaXNQbGF5aW5nVGV4dFRvU3BlZWNoO1xuICB9XG5cbiAgcmVzdGFydFRleHRUb1NwZWVjaCgpIHtcbiAgICB0aGlzLmlzUGxheWluZ1RleHRUb1NwZWVjaCA9IHRydWU7XG4gICAgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLmNhbmNlbCgpO1xuICAgIHRoaXMuc3BlYWsoKTtcbiAgfVxuXG4gIHVwZGF0ZVZvaWNlU3BlZWQoKSB7XG4gICAgY29uc3Qgdm9pY2VTcGVlZEluZGV4ID0gdGhpcy5WT0lDRV9TUEVFRFMuaW5kZXhPZih0aGlzLnZvaWNlU3BlZWQpO1xuICAgIGNvbnN0IG5leHRWb2ljZVNwZWVkSW5kZXggPSB0aGlzLlZPSUNFX1NQRUVEU1t2b2ljZVNwZWVkSW5kZXggKyAxXSA/IHZvaWNlU3BlZWRJbmRleCArIDEgOiAwO1xuICAgIHRoaXMudm9pY2VTcGVlZCA9IHRoaXMuVk9JQ0VfU1BFRURTW25leHRWb2ljZVNwZWVkSW5kZXhdO1xuICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5jYW5jZWwoKTtcbiAgICB0aGlzLnNwZWFrKClcbiAgfVxuXG4gIHN0b3BMaXN0ZW5pbmcoKSB7XG4gICAgdGhpcy5zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2Uuc3RvcCgpO1xuICB9XG5cbiAgZ2V0IGlzTGlzdGVuaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnNwZWVjaFJlY29nbml0aW9uU2VydmljZS5pc0xpc3RlbmluZ1xuICB9XG5cbiAgZ2V0IGhhc1NwZWVjaFJlY29nbml0aW9uQnJvd3NlckFwaSgpIHtcbiAgICByZXR1cm4gdGhpcy5zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UuaGFzU3VwcG9ydFNwZWVjaFJlY29nbml0aW9uO1xuICB9XG5cbiAgZ2V0IGlzRGlzYWJsZWRUZXh0VG9TcGVlY2goKSB7XG4gICAgY29uc3QgaGFzVGV4dFRvU3BlZWNoVm9pY2UgPSB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UuaGFzVm9pY2U7XG4gICAgcmV0dXJuICF0aGlzLl9yZWNvZ25pemVkVGV4dCB8fCAhaGFzVGV4dFRvU3BlZWNoVm9pY2UgfHwgdGhpcy5pc0xpc3RlbmluZztcbiAgfVxuICBwcml2YXRlIHNldFRleHRBcmVhVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudGV4dEFyZWFFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHNwZWFrKCkge1xuICAgIHRoaXMuaXNEb25lU3BlYWtpbmcgPSBmYWxzZTtcbiAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2Uuc3BlYWsodGhpcy5fcmVjb2duaXplZFRleHQsIHRoaXMudm9pY2VTcGVlZCkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLmlzUGxheWluZ1RleHRUb1NwZWVjaCA9IGZhbHNlO1xuICAgICAgdGhpcy5pc0RvbmVTcGVha2luZyA9IHRydWU7XG4gICAgfSk7XG4gIH1cblxufVxuIl19
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXJlY29nbml0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3NwZWVjaC1yZWNvZ25pdGlvbi9zcGVlY2gtcmVjb2duaXRpb24vc3BlZWNoLXJlY29nbml0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFPaEUsSUFBYSwwQkFBMEIsR0FBdkMsTUFBYSwwQkFBMEI7SUE4QnJDLFlBQ21CLHdCQUFrRCxFQUNsRCxtQkFBd0MsRUFDeEMsZ0JBQWtDO1FBRmxDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBL0I1QyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixpQ0FBNEIsR0FBRyxFQUFFLENBQUM7UUFDbkMsb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFDckIsZ0NBQTJCLEdBQUcsRUFBRSxDQUFDO1FBQ2pDLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ2QsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDakMsaUJBQVksR0FBRyxDQUFDLEdBQUcsRUFB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QUNXLDBCQUEwQixDQWdNdEM7U0FoTVksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zcGVlY2gtcmVjb2duaXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUZXh0VG9TcGVlY2hTZXJ2aWNlIH0gZnJvbSAnLi4vdGV4dC10by1zcGVlY2guc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Mtc3BlZWNoLXJlY29nbml0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NwZWVjaC1yZWNvZ25pdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NwZWVjaC1yZWNvZ25pdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB0ZXh0QXJlYUVsZW1lbnQ6IEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG4gIEBJbnB1dCgpIGtlZXBDb250ZXh0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNwZWVjaFJlY29nbml0aW9uUGxhY2Vob2xkZXIgPSAnJztcbiAgcHJpdmF0ZSBfcmVjb2duaXplZFRleHQgPSAnJztcbiAgcHJpdmF0ZSBvcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQgPSAnJztcbiAgcHJpdmF0ZSBpc0RvbmVTcGVha2luZyA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IFZPSUNFX1NQRUVEUyA9IFswLjUsIDEsIDEuNSwgMl07XG4gIHByaXZhdGUgcmVhZG9ubHkga2V5ZG93bkV2ZW50TGlzdGVuZXIgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBkaXNhYmxlZCA9IGZhbHNlO1xuICBpc1NwZWFraW5nID0gZmFsc2U7XG4gIHZvaWNlU3BlZWQgPSAxO1xuICBpc0Rpc2FibGVkTWljcm9waG9uZSA9IGZhbHNlO1xuXG4gIGNhblJlbmRlck1pY3JvcGhvbmUgPSB0cnVlO1xuICBjYW5SZW5kZXJUZXh0VG9TcGVlY2ggPSB0cnVlO1xuICBjYW5SZW5kZXJMaXN0ZW5pbmdUZXh0ID0gZmFsc2U7XG4gIGNhblJlbmRlckRpc2NhcmQgPSBmYWxzZTtcbiAgY2FuUmVuZGVyQXByb3ZlID0gZmFsc2U7XG4gIGNhblJlbmRlclRleHRUb1NwZWVjaFRvb2xiYXIgPSBmYWxzZTtcblxuICBpc1BsYXlpbmdUZXh0VG9TcGVlY2ggPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgcmVjb2duaXplZFRleHQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzcGVlY2hSZWNvZ25pdGlvblNlcnZpY2U6IFNwZWVjaFJlY29nbml0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRUb1NwZWVjaFNlcnZpY2U6IFRleHRUb1NwZWVjaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmhhc1NwZWVjaFJlY29nbml0aW9uQnJvd3NlckFwaSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMudGV4dEFyZWFFbGVtZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3RleHRBcmVhRWxlbWVudCBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgICB0aGlzLnRleHRBcmVhRWxlbWVudC5wbGFjZWhvbGRlciA9IHRoaXMuc3BlZWNoUmVjb2duaXRpb25QbGFjZWhvbGRlciA/IHRoaXMuc3BlZWNoUmVjb2duaXRpb25QbGFjZWhvbGRlciA6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwicGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnRleHRfYXJlYV9zcGVlY2hfcmVjb2duaXRpb25fcGxhY2Vob2xkZXJcIik7XG4gICAgdGhpcy50ZXh0QXJlYUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMua2V5ZG93bkV2ZW50TGlzdGVuZXIpXG4gIH1cblxuICBvbkxpc3RlbigpIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkTWljcm9waG9uZSB8fCB0aGlzLmlzTGlzdGVuaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuY2FuUmVuZGVyTWljcm9waG9uZSA9IGZhbHNlO1xuICAgIHRoaXMuY2FuUmVuZGVyTGlzdGVuaW5nVGV4dCA9IHRydWU7XG4gICAgdGhpcy5vcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQgPSB0aGlzLnRleHRBcmVhRWxlbWVudC52YWx1ZTtcbiAgICB0aGlzLnRleHRBcmVhRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMuaXNTcGVha2luZyA9IHRydWU7XG4gICAgdGhpcy5zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UubGlzdGVuKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoeyB0ZXh0LCBpc0ZpbmFsIH0pID0+IHtcbiAgICAgICAgdGhpcy5fcmVjb2duaXplZFRleHQgPSB0ZXh0O1xuICAgICAgICB0aGlzLnNldFRleHRBcmVhVmFsdWUodGV4dCk7XG4gICAgICAgIHRoaXMuc2Nyb2xsVGV4dEFyZWFCb3R0b20oKTtcbiAgICAgICAgaWYgKGlzRmluYWwpIHtcbiAgICAgICAgICB0aGlzLmNhblJlbmRlckFwcm92ZSA9IHRydWU7XG4gICAgICAgICAgdGhpcy5jYW5SZW5kZXJEaXNjYXJkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmNhblJlbmRlckxpc3RlbmluZ1RleHQgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmlzU3BlYWtpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSwgKCkgPT4ge1xuICAgICAgICB0aGlzLmlzU3BlYWtpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jYW5SZW5kZXJNaWNyb3Bob25lID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc0Rpc2FibGVkTWljcm9waG9uZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNhblJlbmRlckxpc3RlbmluZ1RleHQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsVGV4dEFyZWFCb3R0b20oKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnRleHRBcmVhRWxlbWVudC5zY3JvbGxUb3AgPSB0aGlzLnRleHRBcmVhRWxlbWVudC5zY3JvbGxIZWlnaHQ7XG4gICAgfSwgMTIwKVxuICB9XG5cbiAgb25PcGVuVG9vbGJhcigpIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkVGV4dFRvU3BlZWNoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2FuUmVuZGVyVGV4dFRvU3BlZWNoVG9vbGJhciA9IHRydWU7XG4gICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2ggPSBmYWxzZTtcbiAgICB0aGlzLmlzUGxheWluZ1RleHRUb1NwZWVjaCA9IHRydWU7XG4gICAgdGhpcy5zcGVhaygpO1xuICB9XG5cbiAgb25DbG9zZVRvb2xiYXIoKSB7XG4gICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2hUb29sYmFyID0gZmFsc2U7XG4gICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2ggPSB0cnVlO1xuICAgIHRoaXMuaXNQbGF5aW5nVGV4dFRvU3BlZWNoID0gZmFsc2U7XG4gICAgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLmNhbmNlbCgpO1xuICAgIHRoaXMudm9pY2VTcGVlZCA9IDE7XG4gIH1cbiAgb25EaXNjYXJkKCkge1xuICAgIHRoaXMuY2FuUmVuZGVyQXByb3ZlID0gZmFsc2U7XG4gICAgdGhpcy5jYW5SZW5kZXJEaXNjYXJkID0gZmFsc2U7XG4gICAgdGhpcy5jYW5SZW5kZXJNaWNyb3Bob25lID0gdHJ1ZTtcbiAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaFRvb2xiYXIgPSBmYWxzZTtcbiAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaCA9IHRydWU7XG4gICAgdGhpcy5fcmVjb2duaXplZFRleHQgPSAnJztcbiAgICB0aGlzLnNldFRleHRBcmVhVmFsdWUodGhpcy5vcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQpO1xuICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UuY2FuY2VsKCk7XG4gIH1cblxuICBvbkFwcm92ZSgpIHtcbiAgICB0aGlzLmNhblJlbmRlckFwcm92ZSA9IGZhbHNlO1xuICAgIHRoaXMuY2FuUmVuZGVyRGlzY2FyZCA9IGZhbHNlO1xuICAgIHRoaXMuY2FuUmVuZGVyTWljcm9waG9uZSA9IHRydWU7XG4gICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2hUb29sYmFyID0gZmFsc2U7XG4gICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2ggPSB0cnVlO1xuICAgIGlmICh0aGlzLmtlZXBDb250ZXh0KSB7XG4gICAgICBjb25zdCBicmVha0xpbmUgPSB0aGlzLm9yaWdpbmFsVGV4dEFyZWFFbGVtZW50VGV4dC5sZW5ndGggPiAwID8gJ1xcbicgOiAnJztcbiAgICAgIHRoaXMub3JpZ2luYWxUZXh0QXJlYUVsZW1lbnRUZXh0ICs9IGAke2JyZWFrTGluZX0ke3RoaXMuX3JlY29nbml6ZWRUZXh0fWBcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQgPSB0aGlzLl9yZWNvZ25pemVkVGV4dFxuICAgIH1cbiAgICB0aGlzLnJlY29nbml6ZWRUZXh0LmVtaXQodGhpcy5rZWVwQ29udGV4dCA/IHRoaXMub3JpZ2luYWxUZXh0QXJlYUVsZW1lbnRUZXh0IDogdGhpcy5fcmVjb2duaXplZFRleHQpO1xuICAgIHRoaXMuc2Nyb2xsVGV4dEFyZWFCb3R0b20oKTtcbiAgICB0aGlzLl9yZWNvZ25pemVkVGV4dCA9ICcnO1xuICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UuY2FuY2VsKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgdG9nZ2xlVGV4dFRvU3BlZWNoKCkge1xuICAgIGlmICh0aGlzLmlzUGxheWluZ1RleHRUb1NwZWVjaCkge1xuICAgICAgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLnBhdXNlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmlzRG9uZVNwZWFraW5nKSB7XG4gICAgICAgIHRoaXMuc3BlYWsoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5yZXN1bWUoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5pc1BsYXlpbmdUZXh0VG9TcGVlY2ggPSAhdGhpcy5pc1BsYXlpbmdUZXh0VG9TcGVlY2g7XG4gIH1cblxuICByZXN0YXJ0VGV4dFRvU3BlZWNoKCkge1xuICAgIHRoaXMuaXNQbGF5aW5nVGV4dFRvU3BlZWNoID0gdHJ1ZTtcbiAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UuY2FuY2VsKCk7XG4gICAgdGhpcy5zcGVhaygpO1xuICB9XG5cbiAgdXBkYXRlVm9pY2VTcGVlZCgpIHtcbiAgICBjb25zdCB2b2ljZVNwZWVkSW5kZXggPSB0aGlzLlZPSUNFX1NQRUVEUy5pbmRleE9mKHRoaXMudm9pY2VTcGVlZCk7XG4gICAgY29uc3QgbmV4dFZvaWNlU3BlZWRJbmRleCA9IHRoaXMuVk9JQ0VfU1BFRURTW3ZvaWNlU3BlZWRJbmRleCArIDFdID8gdm9pY2VTcGVlZEluZGV4ICsgMSA6IDA7XG4gICAgdGhpcy52b2ljZVNwZWVkID0gdGhpcy5WT0lDRV9TUEVFRFNbbmV4dFZvaWNlU3BlZWRJbmRleF07XG4gICAgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLmNhbmNlbCgpO1xuICAgIHRoaXMuc3BlYWsoKVxuICB9XG5cbiAgc3RvcExpc3RlbmluZygpIHtcbiAgICB0aGlzLnNwZWVjaFJlY29nbml0aW9uU2VydmljZS5zdG9wKCk7XG4gIH1cblxuICBnZXQgaXNMaXN0ZW5pbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlLmlzTGlzdGVuaW5nXG4gIH1cblxuICBnZXQgaGFzU3BlZWNoUmVjb2duaXRpb25Ccm93c2VyQXBpKCkge1xuICAgIHJldHVybiB0aGlzLnNwZWVjaFJlY29nbml0aW9uU2VydmljZS5oYXNTdXBwb3J0U3BlZWNoUmVjb2duaXRpb247XG4gIH1cblxuICBnZXQgaXNEaXNhYmxlZFRleHRUb1NwZWVjaCgpIHtcbiAgICBjb25zdCBoYXNUZXh0VG9TcGVlY2hWb2ljZSA9IHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5oYXNWb2ljZTtcbiAgICByZXR1cm4gIXRoaXMuX3JlY29nbml6ZWRUZXh0IHx8ICFoYXNUZXh0VG9TcGVlY2hWb2ljZSB8fCB0aGlzLmlzTGlzdGVuaW5nO1xuICB9XG4gIHByaXZhdGUgc2V0VGV4dEFyZWFWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy50ZXh0QXJlYUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgc3BlYWsoKSB7XG4gICAgdGhpcy5pc0RvbmVTcGVha2luZyA9IGZhbHNlO1xuICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5zcGVhayh0aGlzLl9yZWNvZ25pemVkVGV4dCwgdGhpcy52b2ljZVNwZWVkKS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMuaXNQbGF5aW5nVGV4dFRvU3BlZWNoID0gZmFsc2U7XG4gICAgICB0aGlzLmlzRG9uZVNwZWFraW5nID0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG59XG4iXX0=
@@ -2,82 +2,105 @@ import { __decorate } from "tslib";
2
2
  import { Injectable, NgZone } from '@angular/core';
3
3
  import { Subject } from 'rxjs';
4
4
  import { LocaleService } from '../locale/locale.service';
5
+ import { ToastService } from '../toast/toast.service';
6
+ import { TranslateService } from '@ngx-translate/core';
5
7
  import * as i0 from "@angular/core";
6
8
  import * as i1 from "../locale/locale.service";
9
+ import * as i2 from "../toast/toast.service";
10
+ import * as i3 from "@ngx-translate/core";
7
11
  let SpeechRecognitionService = class SpeechRecognitionService {
8
- constructor(localeService, ngZone) {
12
+ constructor(localeService, ngZone, toastService, translateService) {
9
13
  this.localeService = localeService;
10
14
  this.ngZone = ngZone;
15
+ this.toastService = toastService;
16
+ this.translateService = translateService;
11
17
  this.hasSupportSpeechRecognition = false;
12
18
  this.isListening = false;
19
+ this.hasMicrophoneAccess = false;
13
20
  this.TIMEOUT_NO_MESSAGE = 3000;
21
+ this.verifyMicrophoneState();
14
22
  this.setRecognition();
15
23
  }
16
24
  listen() {
25
+ const speechSubject = new Subject();
17
26
  if (this.isListening) {
18
- return;
27
+ speechSubject.error('Already listening');
19
28
  }
20
- const speechSubject = new Subject();
21
- this.isListening = true;
22
- this.recognition.continuous = true;
23
- this.recognition.interimResults = true;
24
- this.recognition.maxAlternatives = 1;
25
- let silenceTimer;
26
- const restartSilenceTimer = () => {
27
- if (silenceTimer !== undefined) {
28
- clearTimeout(silenceTimer);
29
- }
30
- silenceTimer = setTimeout(() => {
31
- this.recognition.stop();
32
- }, this.TIMEOUT_NO_MESSAGE);
33
- };
34
- let fullTranscript = '';
35
- let interimTranscript = '';
36
- this.recognition.onresult = (event) => {
37
- this.ngZone.run(() => {
38
- restartSilenceTimer();
39
- let interimTranscript = '';
40
- for (let i = event.resultIndex; i < event.results.length; ++i) {
41
- const transcript = event.results[i][0].transcript;
42
- if (event.results[i].isFinal) {
43
- fullTranscript += transcript + '\n';
44
- }
45
- else {
46
- interimTranscript += transcript;
47
- }
48
- }
49
- interimTranscript = interimTranscript;
50
- speechSubject.next({ text: fullTranscript + interimTranscript, isFinal: false });
51
- });
52
- };
53
- this.recognition.onerror = () => {
54
- this.ngZone.run(() => {
29
+ else if (!this.hasMicrophoneAccess) {
30
+ this.isListening = false;
31
+ this.toastService.show({ severity: 'error', text: this.translateService.instant('platform.angular_components.no_microphone_permission') });
32
+ speechSubject.error('Microphone access is disabled');
33
+ }
34
+ else {
35
+ this.isListening = true;
36
+ this.recognition.continuous = true;
37
+ this.recognition.interimResults = true;
38
+ this.recognition.maxAlternatives = 1;
39
+ let silenceTimer;
40
+ const restartSilenceTimer = () => {
55
41
  if (silenceTimer !== undefined) {
56
42
  clearTimeout(silenceTimer);
57
43
  }
58
- this.isListening = false;
59
- speechSubject.next({
60
- isFinal: true,
61
- text: ''
44
+ silenceTimer = setTimeout(() => {
45
+ this.recognition.stop();
46
+ }, this.TIMEOUT_NO_MESSAGE);
47
+ };
48
+ let fullTranscript = '';
49
+ let interimTranscript = '';
50
+ this.recognition.onresult = (event) => {
51
+ this.ngZone.run(() => {
52
+ restartSilenceTimer();
53
+ let interimTranscript = '';
54
+ for (let i = event.resultIndex; i < event.results.length; ++i) {
55
+ const transcript = event.results[i][0].transcript;
56
+ if (event.results[i].isFinal) {
57
+ fullTranscript += transcript + '\n';
58
+ }
59
+ else {
60
+ interimTranscript += transcript;
61
+ }
62
+ }
63
+ interimTranscript = interimTranscript;
64
+ speechSubject.next({ text: fullTranscript + interimTranscript, isFinal: false });
62
65
  });
63
- });
64
- };
65
- this.recognition.onend = () => {
66
- this.ngZone.run(() => {
67
- if (silenceTimer !== undefined) {
68
- clearTimeout(silenceTimer);
69
- }
70
- speechSubject.next({ text: fullTranscript + interimTranscript, isFinal: true });
71
- this.isListening = false;
72
- speechSubject.complete();
73
- });
74
- };
75
- this.recognition.start();
66
+ };
67
+ this.recognition.onerror = () => {
68
+ this.ngZone.run(() => {
69
+ if (silenceTimer !== undefined) {
70
+ clearTimeout(silenceTimer);
71
+ }
72
+ this.isListening = false;
73
+ speechSubject.error('Speech recognition error');
74
+ });
75
+ };
76
+ this.recognition.onend = () => {
77
+ this.ngZone.run(() => {
78
+ if (silenceTimer !== undefined) {
79
+ clearTimeout(silenceTimer);
80
+ }
81
+ speechSubject.next({ text: fullTranscript + interimTranscript, isFinal: true });
82
+ this.isListening = false;
83
+ speechSubject.complete();
84
+ });
85
+ };
86
+ this.recognition.start();
87
+ }
76
88
  return speechSubject;
77
89
  }
78
90
  stop() {
79
91
  this.recognition.stop();
80
92
  }
93
+ verifyMicrophoneState() {
94
+ navigator.permissions.query({ name: 'microphone' }).then((result) => {
95
+ const microphoneResultState = result.state;
96
+ this.hasMicrophoneAccess = microphoneResultState === 'granted';
97
+ result.onchange = () => {
98
+ this.ngZone.run(() => {
99
+ this.hasMicrophoneAccess = result.state === 'granted';
100
+ });
101
+ };
102
+ });
103
+ }
81
104
  setRecognition() {
82
105
  var _a;
83
106
  const SpeechRecognitionConstructor = window.SpeechRecognition || window.webkitSpeechRecognition;
@@ -95,13 +118,15 @@ let SpeechRecognitionService = class SpeechRecognitionService {
95
118
  };
96
119
  SpeechRecognitionService.ctorParameters = () => [
97
120
  { type: LocaleService },
98
- { type: NgZone }
121
+ { type: NgZone },
122
+ { type: ToastService },
123
+ { type: TranslateService }
99
124
  ];
100
- SpeechRecognitionService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SpeechRecognitionService_Factory() { return new SpeechRecognitionService(i0.ɵɵinject(i1.LocaleService), i0.ɵɵinject(i0.NgZone)); }, token: SpeechRecognitionService, providedIn: "root" });
125
+ SpeechRecognitionService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SpeechRecognitionService_Factory() { return new SpeechRecognitionService(i0.ɵɵinject(i1.LocaleService), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i2.ToastService), i0.ɵɵinject(i3.TranslateService)); }, token: SpeechRecognitionService, providedIn: "root" });
101
126
  SpeechRecognitionService = __decorate([
102
127
  Injectable({
103
128
  providedIn: 'root'
104
129
  })
105
130
  ], SpeechRecognitionService);
106
131
  export { SpeechRecognitionService };
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXJlY29nbml0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9zcGVlY2gtcmVjb2duaXRpb24vc3BlZWNoLXJlY29nbml0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFVekQsSUFBYSx3QkFBd0IsR0FBckMsTUFBYSx3QkFBd0I7SUFNbkMsWUFBNkIsYUFBNEIsRUFBbUIsTUFBYztRQUE3RCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFtQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBTDFGLGdDQUEyQixHQUFHLEtBQUssQ0FBQztRQUNwQyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVILHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUd6QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsT0FBTztTQUNSO1FBQ0QsTUFBTSxhQUFhLEdBQUcsSUFBSSxPQUFPLEVBQWdCLENBQUM7UUFDbEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUN2QyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7UUFDckMsSUFBSSxZQUFpQixDQUFDO1FBQ3RCLE1BQU0sbUJBQW1CLEdBQUcs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TUFBYyxDQUFDLHVCQUF1QixDQUFDO1FBRS9FLElBQUksQ0FBQyw0QkFBNEIsRUFBRTtZQUNqQyxPQUFPLENBQUMsSUFBSSxDQUFDLHNEQUFzRCxDQUFDLENBQUM7WUFDckUsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQztRQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksNEJBQTRCLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxPQUFBLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsMENBQUUsTUFBTSxLQUFJLE9BQU8sQ0FBQztRQUNqRixJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDckYsQ0FBQztDQUNGLENBQUE7O1lBMUY2QyxhQUFhO1lBQTJCLE1BQU07OztBQU4vRSx3QkFBd0I7SUFIcEMsVUFBVSxDQUFDO1FBQ1YsVUFBVSxFQUFFLE1BQU07S0FDbkIsQ0FBQztHQUNXLHdCQUF3QixDQWdHcEM7U0FoR1ksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2NhbGVTZXJ2aWNlIH0gZnJvbSAnLi4vbG9jYWxlL2xvY2FsZS5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBTcGVlY2hSZXN1bHQge1xuICB0ZXh0OiBzdHJpbmc7XG4gIGlzRmluYWw6IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNwZWVjaFJlY29nbml0aW9uU2VydmljZSB7XG4gIGhhc1N1cHBvcnRTcGVlY2hSZWNvZ25pdGlvbiA9IGZhbHNlO1xuICBpc0xpc3RlbmluZyA9IGZhbHNlO1xuICBwcml2YXRlIHJlY29nbml0aW9uITogU3BlZWNoUmVjb2duaXRpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgVElNRU9VVF9OT19NRVNTQUdFID0gMzAwMDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGxvY2FsZVNlcnZpY2U6IExvY2FsZVNlcnZpY2UsIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUpIHtcbiAgICB0aGlzLnNldFJlY29nbml0aW9uKCk7XG4gIH1cblxuICBsaXN0ZW4oKTogU3ViamVjdDxTcGVlY2hSZXN1bHQ+IHtcbiAgICBpZiAodGhpcy5pc0xpc3RlbmluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzcGVlY2hTdWJqZWN0ID0gbmV3IFN1YmplY3Q8U3BlZWNoUmVzdWx0PigpO1xuICAgIHRoaXMuaXNMaXN0ZW5pbmcgPSB0cnVlO1xuICAgIHRoaXMucmVjb2duaXRpb24uY29udGludW91cyA9IHRydWU7XG4gICAgdGhpcy5yZWNvZ25pdGlvbi5pbnRlcmltUmVzdWx0cyA9IHRydWU7XG4gICAgdGhpcy5yZWNvZ25pdGlvbi5tYXhBbHRlcm5hdGl2ZXMgPSAxO1xuICAgIGxldCBzaWxlbmNlVGltZXI6IGFueTtcbiAgICBjb25zdCByZXN0YXJ0U2lsZW5jZVRpbWVyID0gKCkgPT4ge1xuICAgICAgaWYgKHNpbGVuY2VUaW1lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNsZWFyVGltZW91dChzaWxlbmNlVGltZXIpO1xuICAgICAgfVxuXG4gICAgICBzaWxlbmNlVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5yZWNvZ25pdGlvbi5zdG9wKCk7XG4gICAgICB9LCB0aGlzLlRJTUVPVVRfTk9fTUVTU0FHRSk7XG4gICAgfTtcbiAgICBsZXQgZnVsbFRyYW5zY3JpcHQgPSAnJztcbiAgICBsZXQgaW50ZXJpbVRyYW5zY3JpcHQgPSAnJztcblxuICAgIHRoaXMucmVjb2duaXRpb24ub25yZXN1bHQgPSAoZXZlbnQ6IFNwZWVjaFJlY29nbml0aW9uRXZlbnQpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHJlc3RhcnRTaWxlbmNlVGltZXIoKTtcbiAgICAgICAgbGV0IGludGVyaW1UcmFuc2NyaXB0ID0gJyc7XG4gICAgICAgIGZvciAobGV0IGkgPSBldmVudC5yZXN1bHRJbmRleDsgaSA8IGV2ZW50LnJlc3VsdHMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICBjb25zdCB0cmFuc2NyaXB0ID0gZXZlbnQucmVzdWx0c1tpXVswXS50cmFuc2NyaXB0O1xuICAgICAgICAgIGlmIChldmVudC5yZXN1bHRzW2ldLmlzRmluYWwpIHtcbiAgICAgICAgICAgIGZ1bGxUcmFuc2NyaXB0ICs9IHRyYW5zY3JpcHQgKyAnXFxuJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaW50ZXJpbVRyYW5zY3JpcHQgKz0gdHJhbnNjcmlwdDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaW50ZXJpbVRyYW5zY3JpcHQgPSBpbnRlcmltVHJhbnNjcmlwdDtcbiAgICAgICAgc3BlZWNoU3ViamVjdC5uZXh0KHsgdGV4dDogZnVsbFRyYW5zY3JpcHQgKyBpbnRlcmltVHJhbnNjcmlwdCwgaXNGaW5hbDogZmFsc2UgfSk7XG4gICAgICB9KVxuICAgIH07XG5cblxuICAgIHRoaXMucmVjb2duaXRpb24ub25lcnJvciA9ICgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIGlmIChzaWxlbmNlVGltZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dChzaWxlbmNlVGltZXIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNMaXN0ZW5pbmcgPSBmYWxzZTtcbiAgICAgICAgc3BlZWNoU3ViamVjdC5uZXh0KHtcbiAgICAgICAgICBpc0ZpbmFsOiB0cnVlLFxuICAgICAgICAgIHRleHQ6ICcnXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH07XG5cbiAgICB0aGlzLnJlY29nbml0aW9uLm9uZW5kID0gKCkgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgaWYgKHNpbGVuY2VUaW1lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHNpbGVuY2VUaW1lcik7XG4gICAgICAgIH1cbiAgICAgICAgc3BlZWNoU3ViamVjdC5uZXh0KHsgdGV4dDogZnVsbFRyYW5zY3JpcHQgKyBpbnRlcmltVHJhbnNjcmlwdCwgaXNGaW5hbDogdHJ1ZSB9KTtcbiAgICAgICAgdGhpcy5pc0xpc3RlbmluZyA9IGZhbHNlO1xuICAgICAgICBzcGVlY2hTdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgICB9KVxuICAgIH07XG4gICAgdGhpcy5yZWNvZ25pdGlvbi5zdGFydCgpO1xuICAgIHJldHVybiBzcGVlY2hTdWJqZWN0O1xuICB9XG5cbiAgc3RvcCgpIHtcbiAgICB0aGlzLnJlY29nbml0aW9uLnN0b3AoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UmVjb2duaXRpb24oKSB7XG4gICAgY29uc3QgU3BlZWNoUmVjb2duaXRpb25Db25zdHJ1Y3RvciA9XG4gICAgICAod2luZG93IGFzIGFueSkuU3BlZWNoUmVjb2duaXRpb24gfHwgKHdpbmRvdyBhcyBhbnkpLndlYmtpdFNwZWVjaFJlY29nbml0aW9uO1xuXG4gICAgaWYgKCFTcGVlY2hSZWNvZ25pdGlvbkNvbnN0cnVjdG9yKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1NwZWVjaCByZWNvZ25pdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3Nlci4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5oYXNTdXBwb3J0U3BlZWNoUmVjb2duaXRpb24gPSB0cnVlO1xuICAgIHRoaXMucmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb25Db25zdHJ1Y3RvcigpO1xuICAgIHRoaXMucmVjb2duaXRpb24ubGFuZyA9IHRoaXMubG9jYWxlU2VydmljZS5nZXRMb2NhbGVPcHRpb25zKCk/LmxvY2FsZSB8fCAncHQtQlInO1xuICAgIHRoaXMucmVjb2duaXRpb24uaW50ZXJpbVJlc3VsdHMgPSBmYWxzZTtcbiAgICB0aGlzLnJlY29nbml0aW9uLm1heEFsdGVybmF0aXZlcyA9IDE7XG4gICAgdGhpcy5sb2NhbGVTZXJ2aWNlLmdldExvY2FsZSgpLnN1YnNjcmliZShsb2NhbGUgPT4gdGhpcy5yZWNvZ25pdGlvbi5sYW5nID0gbG9jYWxlKTtcbiAgfVxufVxuIl19
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXJlY29nbml0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9zcGVlY2gtcmVjb2duaXRpb24vc3BlZWNoLXJlY29nbml0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFVdkQsSUFBYSx3QkFBd0IsR0FBckMsTUFBYSx3QkFBd0I7SUFPbkMsWUFDbUIsYUFBNEIsRUFDNUIsTUFBYyxFQUNkLFlBQTBCLEVBQ25DLGdCQUFrQztRQUh6QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDbkMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVY1QyxnQ0FBMkIsR0FBRyxLQUFLLENBQUM7UUFDcEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDWix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFFbkIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBUXpDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sYUFBYSxHQUFHLElBQUksT0FBTyxFQUFnQixDQUFDO1FBQ2xELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZ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LGlCQUFpQixJQUFLLE1BQWMsQ0FBQyx1QkFBdUIsQ0FBQztRQUUvRSxJQUFJLENBQUMsNEJBQTRCLEVBQUU7WUFDakMsT0FBTyxDQUFDLElBQUksQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO1lBQ3JFLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLENBQUM7UUFDeEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLDRCQUE0QixFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsT0FBQSxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLDBDQUFFLE1BQU0sS0FBSSxPQUFPLENBQUM7UUFDakYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDO0lBQ3JGLENBQUM7Q0FDRixDQUFBOztZQTVHbUMsYUFBYTtZQUNwQixNQUFNO1lBQ0EsWUFBWTtZQUNqQixnQkFBZ0I7OztBQVhqQyx3QkFBd0I7SUFIcEMsVUFBVSxDQUFDO1FBQ1YsVUFBVSxFQUFFLE1BQU07S0FDbkIsQ0FBQztHQUNXLHdCQUF3QixDQW9IcEM7U0FwSFksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2NhbGVTZXJ2aWNlIH0gZnJvbSAnLi4vbG9jYWxlL2xvY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uL3RvYXN0L3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNwZWVjaFJlc3VsdCB7XG4gIHRleHQ6IHN0cmluZztcbiAgaXNGaW5hbDogYm9vbGVhbjtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlIHtcbiAgaGFzU3VwcG9ydFNwZWVjaFJlY29nbml0aW9uID0gZmFsc2U7XG4gIGlzTGlzdGVuaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgaGFzTWljcm9waG9uZUFjY2VzcyA9IGZhbHNlO1xuICBwcml2YXRlIHJlY29nbml0aW9uITogU3BlZWNoUmVjb2duaXRpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgVElNRU9VVF9OT19NRVNTQUdFID0gMzAwMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsZVNlcnZpY2U6IExvY2FsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy52ZXJpZnlNaWNyb3Bob25lU3RhdGUoKTtcbiAgICB0aGlzLnNldFJlY29nbml0aW9uKCk7XG4gIH1cblxuICBsaXN0ZW4oKSB7XG4gICAgY29uc3Qgc3BlZWNoU3ViamVjdCA9IG5ldyBTdWJqZWN0PFNwZWVjaFJlc3VsdD4oKTtcbiAgICBpZiAodGhpcy5pc0xpc3RlbmluZykge1xuICAgICAgc3BlZWNoU3ViamVjdC5lcnJvcignQWxyZWFkeSBsaXN0ZW5pbmcnKTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmhhc01pY3JvcGhvbmVBY2Nlc3MpIHtcbiAgICAgIHRoaXMuaXNMaXN0ZW5pbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3coeyBzZXZlcml0eTogJ2Vycm9yJywgdGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5ub19taWNyb3Bob25lX3Blcm1pc3Npb24nKSB9KTtcbiAgICAgIHNwZWVjaFN1YmplY3QuZXJyb3IoJ01pY3JvcGhvbmUgYWNjZXNzIGlzIGRpc2FibGVkJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNMaXN0ZW5pbmcgPSB0cnVlO1xuICAgICAgdGhpcy5yZWNvZ25pdGlvbi5jb250aW51b3VzID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVjb2duaXRpb24uaW50ZXJpbVJlc3VsdHMgPSB0cnVlO1xuICAgICAgdGhpcy5yZWNvZ25pdGlvbi5tYXhBbHRlcm5hdGl2ZXMgPSAxO1xuICAgICAgbGV0IHNpbGVuY2VUaW1lcjogYW55O1xuICAgICAgY29uc3QgcmVzdGFydFNpbGVuY2VUaW1lciA9ICgpID0+IHtcbiAgICAgICAgaWYgKHNpbGVuY2VUaW1lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHNpbGVuY2VUaW1lcik7XG4gICAgICAgIH1cblxuICAgICAgICBzaWxlbmNlVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnJlY29nbml0aW9uLnN0b3AoKTtcbiAgICAgICAgfSwgdGhpcy5USU1FT1VUX05PX01FU1NBR0UpO1xuICAgICAgfTtcbiAgICAgIGxldCBmdWxsVHJhbnNjcmlwdCA9ICcnO1xuICAgICAgbGV0IGludGVyaW1UcmFuc2NyaXB0ID0gJyc7XG5cbiAgICAgIHRoaXMucmVjb2duaXRpb24ub25yZXN1bHQgPSAoZXZlbnQ6IFNwZWVjaFJlY29nbml0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICByZXN0YXJ0U2lsZW5jZVRpbWVyKCk7XG4gICAgICAgICAgbGV0IGludGVyaW1UcmFuc2NyaXB0ID0gJyc7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IGV2ZW50LnJlc3VsdEluZGV4OyBpIDwgZXZlbnQucmVzdWx0cy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgY29uc3QgdHJhbnNjcmlwdCA9IGV2ZW50LnJlc3VsdHNbaV1bMF0udHJhbnNjcmlwdDtcbiAgICAgICAgICAgIGlmIChldmVudC5yZXN1bHRzW2ldLmlzRmluYWwpIHtcbiAgICAgICAgICAgICAgZnVsbFRyYW5zY3JpcHQgKz0gdHJhbnNjcmlwdCArICdcXG4nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaW50ZXJpbVRyYW5zY3JpcHQgKz0gdHJhbnNjcmlwdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaW50ZXJpbVRyYW5zY3JpcHQgPSBpbnRlcmltVHJhbnNjcmlwdDtcbiAgICAgICAgICBzcGVlY2hTdWJqZWN0Lm5leHQoeyB0ZXh0OiBmdWxsVHJhbnNjcmlwdCArIGludGVyaW1UcmFuc2NyaXB0LCBpc0ZpbmFsOiBmYWxzZSB9KTtcbiAgICAgICAgfSlcbiAgICAgIH07XG4gICAgICB0aGlzLnJlY29nbml0aW9uLm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgaWYgKHNpbGVuY2VUaW1lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQoc2lsZW5jZVRpbWVyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5pc0xpc3RlbmluZyA9IGZhbHNlO1xuICAgICAgICAgIHNwZWVjaFN1YmplY3QuZXJyb3IoJ1NwZWVjaCByZWNvZ25pdGlvbiBlcnJvcicpO1xuICAgICAgICB9KVxuICAgICAgfTtcblxuICAgICAgdGhpcy5yZWNvZ25pdGlvbi5vbmVuZCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICBpZiAoc2lsZW5jZVRpbWVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dChzaWxlbmNlVGltZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzcGVlY2hTdWJqZWN0Lm5leHQoeyB0ZXh0OiBmdWxsVHJhbnNjcmlwdCArIGludGVyaW1UcmFuc2NyaXB0LCBpc0ZpbmFsOiB0cnVlIH0pO1xuICAgICAgICAgIHRoaXMuaXNMaXN0ZW5pbmcgPSBmYWxzZTtcbiAgICAgICAgICBzcGVlY2hTdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgICAgIH0pXG4gICAgICB9O1xuICAgICAgdGhpcy5yZWNvZ25pdGlvbi5zdGFydCgpO1xuICAgIH1cbiAgICByZXR1cm4gc3BlZWNoU3ViamVjdDtcbiAgfVxuXG5cbiAgc3RvcCgpIHtcbiAgICB0aGlzLnJlY29nbml0aW9uLnN0b3AoKTtcbiAgfVxuXG4gIHByaXZhdGUgdmVyaWZ5TWljcm9waG9uZVN0YXRlKCkge1xuICAgIG5hdmlnYXRvci5wZXJtaXNzaW9ucy5xdWVyeSh7IG5hbWU6ICdtaWNyb3Bob25lJyB9KS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgIGNvbnN0IG1pY3JvcGhvbmVSZXN1bHRTdGF0ZTogUGVybWlzc2lvblN0YXRlID0gcmVzdWx0LnN0YXRlO1xuICAgICAgdGhpcy5oYXNNaWNyb3Bob25lQWNjZXNzID0gbWljcm9waG9uZVJlc3VsdFN0YXRlID09PSAnZ3JhbnRlZCc7XG4gICAgICByZXN1bHQub25jaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5oYXNNaWNyb3Bob25lQWNjZXNzID0gcmVzdWx0LnN0YXRlID09PSAnZ3JhbnRlZCc7XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgc2V0UmVjb2duaXRpb24oKSB7XG4gICAgY29uc3QgU3BlZWNoUmVjb2duaXRpb25Db25zdHJ1Y3RvciA9XG4gICAgICAod2luZG93IGFzIGFueSkuU3BlZWNoUmVjb2duaXRpb24gfHwgKHdpbmRvdyBhcyBhbnkpLndlYmtpdFNwZWVjaFJlY29nbml0aW9uO1xuXG4gICAgaWYgKCFTcGVlY2hSZWNvZ25pdGlvbkNvbnN0cnVjdG9yKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1NwZWVjaCByZWNvZ25pdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3Nlci4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5oYXNTdXBwb3J0U3BlZWNoUmVjb2duaXRpb24gPSB0cnVlO1xuICAgIHRoaXMucmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb25Db25zdHJ1Y3RvcigpO1xuICAgIHRoaXMucmVjb2duaXRpb24ubGFuZyA9IHRoaXMubG9jYWxlU2VydmljZS5nZXRMb2NhbGVPcHRpb25zKCk/LmxvY2FsZSB8fCAncHQtQlInO1xuICAgIHRoaXMucmVjb2duaXRpb24uaW50ZXJpbVJlc3VsdHMgPSBmYWxzZTtcbiAgICB0aGlzLnJlY29nbml0aW9uLm1heEFsdGVybmF0aXZlcyA9IDE7XG4gICAgdGhpcy5sb2NhbGVTZXJ2aWNlLmdldExvY2FsZSgpLnN1YnNjcmliZShsb2NhbGUgPT4gdGhpcy5yZWNvZ25pdGlvbi5sYW5nID0gbG9jYWxlKTtcbiAgfVxufVxuIl19
@@ -12,6 +12,8 @@ let TextAreaComponent = TextAreaComponent_1 = class TextAreaComponent {
12
12
  this.inputId = `textarea-${Math.random()}`;
13
13
  this.rows = 5;
14
14
  this.speechRecognition = false;
15
+ this.keepContext = false;
16
+ this.speechRecognitionPlaceholder = '';
15
17
  this._inputStyle = {
16
18
  resize: 'vertical'
17
19
  };
@@ -88,6 +90,15 @@ __decorate([
88
90
  __decorate([
89
91
  Input()
90
92
  ], TextAreaComponent.prototype, "keyFilter", void 0);
93
+ __decorate([
94
+ Input()
95
+ ], TextAreaComponent.prototype, "keepContext", void 0);
96
+ __decorate([
97
+ Input()
98
+ ], TextAreaComponent.prototype, "speechRecognitionPlaceholder", void 0);
99
+ __decorate([
100
+ Input()
101
+ ], TextAreaComponent.prototype, "maxLength", void 0);
91
102
  __decorate([
92
103
  Input()
93
104
  ], TextAreaComponent.prototype, "placeholder", null);
@@ -100,7 +111,7 @@ __decorate([
100
111
  TextAreaComponent = TextAreaComponent_1 = __decorate([
101
112
  Component({
102
113
  selector: 's-textarea',
103
- template: "<textarea\n *ngIf=\"keyFilter\"\n #textArea\n class=\"textarea\"\n [pKeyFilter]=\"keyFilter\"\n [id]=\"inputId\"\n [rows]=\"rows\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [ngStyle]=\"inputStyle\"\n [readOnly]=\"readOnly\"\n [placeholder]=\"placeholder\"\n (ngModelChange)=\"setValue($event)\">\n</textarea>\n\n<textarea\n *ngIf=\"!keyFilter\"\n #textArea\n class=\"textarea\"\n [id]=\"inputId\"\n [rows]=\"rows\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [ngStyle]=\"inputStyle\"\n [readOnly]=\"readOnly\"\n [placeholder]=\"placeholder\"\n (ngModelChange)=\"setValue($event)\">\n</textarea>\n\n<s-speech-recognition\n *ngIf=\"speechRecognition && renderTextArea\"\n [textAreaElement]=\"textAreaElement.nativeElement\"\n (recognizedText)=\"handleRecognizedText($event)\">\n</s-speech-recognition>\n",
114
+ template: "<textarea\n *ngIf=\"keyFilter\"\n #textArea\n class=\"textarea\"\n [pKeyFilter]=\"keyFilter\"\n [id]=\"inputId\"\n [rows]=\"rows\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [ngStyle]=\"inputStyle\"\n [readOnly]=\"readOnly\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n (ngModelChange)=\"setValue($event)\">\n</textarea>\n\n<textarea\n *ngIf=\"!keyFilter\"\n #textArea\n class=\"textarea\"\n [id]=\"inputId\"\n [rows]=\"rows\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [ngStyle]=\"inputStyle\"\n [readOnly]=\"readOnly\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n (ngModelChange)=\"setValue($event)\">\n</textarea>\n\n<s-speech-recognition\n *ngIf=\"speechRecognition && renderTextArea\"\n [textAreaElement]=\"textAreaElement.nativeElement\"\n [keepContext]=\"keepContext\"\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n (recognizedText)=\"handleRecognizedText($event)\">\n</s-speech-recognition>\n",
104
115
  providers: [
105
116
  {
106
117
  provide: NG_VALUE_ACCESSOR,
@@ -108,8 +119,8 @@ TextAreaComponent = TextAreaComponent_1 = __decorate([
108
119
  multi: true,
109
120
  },
110
121
  ],
111
- styles: [".textarea{border-radius:3px;border:1px solid #c1c1cc;background:#fff;width:100%;max-width:100%;min-height:4em;min-width:10em;outline:0;padding:8px;display:block}.textarea:disabled{opacity:.5}"]
122
+ styles: [".textarea{border-radius:3px;border:1px solid #c1c1cc;background:#fff;width:100%;max-width:100%;min-height:4em;min-width:10em;outline:0;padding:8px;display:block}.textarea:disabled{opacity:.5}:host.ng-invalid.ng-dirty .textarea{border-color:#c13018}"]
112
123
  })
113
124
  ], TextAreaComponent);
114
125
  export { TextAreaComponent };
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3RleHQtYXJlYS90ZXh0LWFyZWEvdGV4dC1hcmVhLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQWN6RSxJQUFhLGlCQUFpQix5QkFBOUIsTUFBYSxpQkFBaUI7SUFtRDVCLFlBQTZCLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBbERuRCxhQUFRLEdBQTRCLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5QyxjQUFTLEdBQTRCLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFnQkYsWUFBTyxHQUFHLFlBQVksSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDdEMsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUNULHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQWEzQixnQkFBVyxHQUFpQztZQUNsRCxNQUFNLEVBQUUsVUFBVTtTQUNuQixDQUFBO1FBVVEsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUUxQixtQkFBYyxHQUFHLEtBQUssQ0FBQztJQUVnQyxDQUFDO0lBM0N4RCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQVcsZUFBZSxDQUFDLEtBQXNDO1FBQy9ELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBT1EsSUFBSSxXQUFXO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsS0FBYTtRQUMzQixJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1NBQzNCO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFJUSxJQUFJLFVBQVU7UUFDckIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLFVBQVUsQ0FBQyxLQUFtQztRQUNoRCxJQUFJLENBQUMsV0FBVyxtQ0FDWCxLQUFLLEdBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FDcEIsQ0FBQztJQUNKLENBQUM7SUFPRCxVQUFVLENBQUMsR0FBVztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUNuQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBMkI7UUFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYTtRQUNwQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELG9CQUFvQixDQUFDLGNBQXNCO1FBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDaEMsQ0FBQztDQUNGLENBQUE7O1lBL0JtQyxpQkFBaUI7O0FBM0NuRDtJQURDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUM7d0RBRzNDO0FBVVE7SUFBUixLQUFLLEVBQUU7a0RBQXVDO0FBQ3RDO0lBQVIsS0FBSyxFQUFFOytDQUFVO0FBQ1Q7SUFBUixLQUFLLEVBQUU7NERBQTJCO0FBQzFCO0lBQVIsS0FBSyxFQUFFO29EQUE0QjtBQUUzQjtJQUFSLEtBQUssRUFBRTtvREFFUDtBQVdRO0lBQVIsS0FBSyxFQUFFO21EQUVQO0FBT1E7SUFBUixLQUFLLEVBQUU7bURBQWtCO0FBL0NmLGlCQUFpQjtJQVo3QixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsWUFBWTtRQUN0Qix5NUJBQXlDO1FBRXpDLFNBQVMsRUFBRTtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQWlCLENBQUM7Z0JBQ2hELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRjs7S0FDRixDQUFDO0dBQ1csaUJBQWlCLENBa0Y3QjtTQWxGWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3MtdGV4dGFyZWEnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1hcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC1hcmVhLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGV4dEFyZWFDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV4dEFyZWFDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCA9ICgpID0+IHsgfTtcbiAgb25Ub3VjaGVkOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCA9ICgpID0+IHsgfTtcbiAgZGlzYWJsZWQgPSBmYWxzZTtcbiAgdmFsdWUgPSAnJztcbiAgcHJpdmF0ZSBfdGV4dEFyZWFFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ3RleHRBcmVhJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBnZXQgdGV4dEFyZWFFbGVtZW50KCk6IEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4ge1xuICAgIHJldHVybiB0aGlzLl90ZXh0QXJlYUVsZW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IHRleHRBcmVhRWxlbWVudCh2YWx1ZTogRWxlbWVudFJlZjxIVE1MVGV4dEFyZWFFbGVtZW50Pikge1xuICAgIHRoaXMuX3RleHRBcmVhRWxlbWVudCA9IHZhbHVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5yZW5kZXJUZXh0QXJlYSA9IHRydWU7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSlcbiAgfVxuXG4gIEBJbnB1dCgpIGlucHV0SWQgPSBgdGV4dGFyZWEtJHtNYXRoLnJhbmRvbSgpfWA7XG4gIEBJbnB1dCgpIHJvd3MgPSA1O1xuICBASW5wdXQoKSBzcGVlY2hSZWNvZ25pdGlvbiA9IGZhbHNlO1xuICBASW5wdXQoKSBrZXlGaWx0ZXI6IHN0cmluZyB8IFJlZ0V4cDtcbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgQElucHV0KCkgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xuICB9XG4gIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9wbGFjZWhvbGRlciA9ICcnO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIF9pbnB1dFN0eWxlOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+ID0ge1xuICAgIHJlc2l6ZTogJ3ZlcnRpY2FsJ1xuICB9XG4gIEBJbnB1dCgpIGdldCBpbnB1dFN0eWxlKCk6IFBhcnRpYWw8Q1NTU3R5bGVEZWNsYXJhdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dFN0eWxlO1xuICB9XG4gIHNldCBpbnB1dFN0eWxlKHZhbHVlOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+KSB7XG4gICAgdGhpcy5faW5wdXRTdHlsZSA9IHtcbiAgICAgIC4uLnZhbHVlLFxuICAgICAgLi4udGhpcy5faW5wdXRTdHlsZSxcbiAgICB9O1xuICB9XG4gIEBJbnB1dCgpIHJlYWRPbmx5ID0gZmFsc2U7XG5cbiAgcmVuZGVyVGV4dEFyZWEgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxuXG4gIHdyaXRlVmFsdWUob2JqOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gb2JqO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy53cml0ZVZhbHVlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5vblRvdWNoZWQodGhpcy52YWx1ZSk7XG4gIH1cblxuICBoYW5kbGVSZWNvZ25pemVkVGV4dChyZWNvZ25pemVkVGV4dDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRWYWx1ZShyZWNvZ25pemVkVGV4dCk7XG4gIH1cbn1cbiJdfQ==
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3RleHQtYXJlYS90ZXh0LWFyZWEvdGV4dC1hcmVhLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQWN6RSxJQUFhLGlCQUFpQix5QkFBOUIsTUFBYSxpQkFBaUI7SUF1RDVCLFlBQTZCLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBdERuRCxhQUFRLEdBQTRCLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5QyxjQUFTLEdBQTRCLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFnQkYsWUFBTyxHQUFHLFlBQVksSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDdEMsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUNULHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUUxQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixpQ0FBNEIsR0FBRyxFQUFFLENBQUM7UUFjbkMsZ0JBQVcsR0FBaUM7WUFDbEQsTUFBTSxFQUFFLFVBQVU7U0FDbkIsQ0FBQTtRQVVRLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFMUIsbUJBQWMsR0FBRyxLQUFLLENBQUM7SUFFZ0MsQ0FBQztJQS9DeEQsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFXLGVBQWUsQ0FBQyxLQUFzQztRQUMvRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztZQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQVdRLElBQUksV0FBVztRQUN0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLEtBQWE7UUFDM0IsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUMzQjthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBSVEsSUFBSSxVQUFVO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxVQUFVLENBQUMsS0FBbUM7UUFDaEQsSUFBSSxDQUFDLFdBQVcsbUNBQ1gsS0FBSyxHQUNMLElBQUksQ0FBQyxXQUFXLENBQ3BCLENBQUM7SUFDSixDQUFDO0lBT0QsVUFBVSxDQUFDLEdBQVc7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDbkIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQTJCO1FBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFjO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWE7UUFDcEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxjQUFzQjtRQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7Q0FDRixDQUFBOztZQS9CbUMsaUJBQWlCOztBQS9DbkQ7SUFEQyxTQUFTLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDO3dEQUczQztBQVVRO0lBQVIsS0FBSyxFQUFFO2tEQUF1QztBQUN0QztJQUFSLEtBQUssRUFBRTsrQ0FBVTtBQUNUO0lBQVIsS0FBSyxFQUFFOzREQUEyQjtBQUMxQjtJQUFSLEtBQUssRUFBRTtvREFBNEI7QUFDM0I7SUFBUixLQUFLLEVBQUU7c0RBQXFCO0FBQ3BCO0lBQVIsS0FBSyxFQUFFO3VFQUFtQztBQUNsQztJQUFSLEtBQUssRUFBRTtvREFBbUI7QUFHbEI7SUFBUixLQUFLLEVBQUU7b0RBRVA7QUFXUTtJQUFSLEtBQUssRUFBRTttREFFUDtBQU9RO0lBQVIsS0FBSyxFQUFFO21EQUFrQjtBQW5EZixpQkFBaUI7SUFaN0IsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLFlBQVk7UUFDdEIsdWtDQUF5QztRQUV6QyxTQUFTLEVBQUU7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFpQixDQUFDO2dCQUNoRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Y7O0tBQ0YsQ0FBQztHQUNXLGlCQUFpQixDQXNGN0I7U0F0RlksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzLXRleHRhcmVhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtYXJlYS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RleHQtYXJlYS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRleHRBcmVhQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRleHRBcmVhQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7IH07XG4gIG9uVG91Y2hlZDogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7IH07XG4gIGRpc2FibGVkID0gZmFsc2U7XG4gIHZhbHVlID0gJyc7XG4gIHByaXZhdGUgX3RleHRBcmVhRWxlbWVudDogRWxlbWVudFJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCd0ZXh0QXJlYScsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwdWJsaWMgZ2V0IHRleHRBcmVhRWxlbWVudCgpOiBFbGVtZW50UmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5fdGV4dEFyZWFFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIHNldCB0ZXh0QXJlYUVsZW1lbnQodmFsdWU6IEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4pIHtcbiAgICB0aGlzLl90ZXh0QXJlYUVsZW1lbnQgPSB2YWx1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVuZGVyVGV4dEFyZWEgPSB0cnVlO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pXG4gIH1cblxuICBASW5wdXQoKSBpbnB1dElkID0gYHRleHRhcmVhLSR7TWF0aC5yYW5kb20oKX1gO1xuICBASW5wdXQoKSByb3dzID0gNTtcbiAgQElucHV0KCkgc3BlZWNoUmVjb2duaXRpb24gPSBmYWxzZTtcbiAgQElucHV0KCkga2V5RmlsdGVyOiBzdHJpbmcgfCBSZWdFeHA7XG4gIEBJbnB1dCgpIGtlZXBDb250ZXh0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNwZWVjaFJlY29nbml0aW9uUGxhY2Vob2xkZXIgPSAnJztcbiAgQElucHV0KCkgbWF4TGVuZ3RoOiBudW1iZXI7XG5cbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgQElucHV0KCkgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xuICB9XG4gIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9wbGFjZWhvbGRlciA9ICcnO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIF9pbnB1dFN0eWxlOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+ID0ge1xuICAgIHJlc2l6ZTogJ3ZlcnRpY2FsJ1xuICB9XG4gIEBJbnB1dCgpIGdldCBpbnB1dFN0eWxlKCk6IFBhcnRpYWw8Q1NTU3R5bGVEZWNsYXJhdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dFN0eWxlO1xuICB9XG4gIHNldCBpbnB1dFN0eWxlKHZhbHVlOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+KSB7XG4gICAgdGhpcy5faW5wdXRTdHlsZSA9IHtcbiAgICAgIC4uLnZhbHVlLFxuICAgICAgLi4udGhpcy5faW5wdXRTdHlsZSxcbiAgICB9O1xuICB9XG4gIEBJbnB1dCgpIHJlYWRPbmx5ID0gZmFsc2U7XG5cbiAgcmVuZGVyVGV4dEFyZWEgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxuXG4gIHdyaXRlVmFsdWUob2JqOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gb2JqO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy53cml0ZVZhbHVlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5vblRvdWNoZWQodGhpcy52YWx1ZSk7XG4gIH1cblxuICBoYW5kbGVSZWNvZ25pemVkVGV4dChyZWNvZ25pemVkVGV4dDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRWYWx1ZShyZWNvZ25pemVkVGV4dCk7XG4gIH1cbn1cbiJdfQ==
@@ -16,6 +16,8 @@ let TextAreaIAComponent = TextAreaIAComponent_1 = class TextAreaIAComponent {
16
16
  this._translateService = _translateService;
17
17
  this.speechRecognitionService = speechRecognitionService;
18
18
  this.speechRecognition = false;
19
+ this.keepContext = false;
20
+ this.speechRecognitionPlaceholder = '';
19
21
  this.isVisible = false;
20
22
  this.isLoading = false;
21
23
  }
@@ -118,10 +120,16 @@ __decorate([
118
120
  __decorate([
119
121
  Input()
120
122
  ], TextAreaIAComponent.prototype, "speechRecognition", void 0);
123
+ __decorate([
124
+ Input()
125
+ ], TextAreaIAComponent.prototype, "keepContext", void 0);
126
+ __decorate([
127
+ Input()
128
+ ], TextAreaIAComponent.prototype, "speechRecognitionPlaceholder", void 0);
121
129
  TextAreaIAComponent = TextAreaIAComponent_1 = __decorate([
122
130
  Component({
123
131
  selector: "s-text-area-ia",
124
- template: "<s-loading-state\n [loading]=\"isLoading\"\n [blockWindow]=\"true\">\n</s-loading-state>\n\n<p-dialog\n [(visible)]=\"isVisible\"\n [modal]=\"true\"\n [style]=\"{ width: '50vw' }\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n (onHide)=\"onHideDialog()\">\n <p-header>\n <div class=\"dialog-header\">\n <span class=\"iassist-icon\">\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </span>\n IAssist - Content Generator\n </div>\n </p-header>\n <s-dynamic-form\n [fields]=\"fields\"\n [form]=\"formGroup\">\n </s-dynamic-form>\n <p-footer>\n <div class=\"footer-content\">\n <s-button\n id=\"-submit-button\"\n type=\"button\"\n [label]=\"'platform.angular_components.generate_text' | translate\"\n (onClick)=\"submitContext()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n showDelay=\"500\">\n </s-button>\n <s-button\n id=\"-cancel-button\"\n type=\"button\"\n priority=\"link\"\n [label]=\"'platform.angular_components.cancel' | translate\"\n (onClick)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n showDelay=\"500\">\n </s-button>\n </div>\n </p-footer>\n</p-dialog>\n\n<div class=\"textarea-ia\">\n <s-textarea\n [inputId]=\"id\"\n [rows]=\"rows\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [readOnly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [speechRecognition]=\"speechRecognition\"\n ></s-textarea>\n <button\n class=\"iassist-button\"\n [class.speech-recognition]=\"speechRecognition && speechRecognitionService.hasSupportSpeechRecognition\"\n (click)=\"showDialog()\"\n sTooltip=\"IAssist - Content Generator\">\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </button>\n</div>\n\n<ng-template #iassistIcon>\n <svg style=\"width: 100%; height: 100%;\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5.81451 18.1054L5.99593 17.6059L7.52166 13.4099L7.60877 13.1726L7.61277 13.1614L7.94285 12.2543L8.01159 12.0648L8.05394 11.949L5.2998 8.52426L5.02726 8.18379C5.00569 8.15821 4.9881 8.13104 4.97292 8.10226C4.90099 7.9632 4.85063 7.81294 4.82186 7.6531C4.73075 7.1344 4.90418 6.60771 5.28382 6.24326C5.29421 6.23447 5.3038 6.22567 5.31419 6.21688L5.47164 6.0914L9.3439 3.00238L9.5469 2.84094L9.57088 2.82096L10.4101 2.15041L11.8007 1.04188C11.2181 0.925188 10.6163 0.863647 10.0001 0.863647C4.95374 0.863647 0.863281 4.9541 0.863281 9.99963C0.863281 13.5346 2.87254 16.5989 5.80971 18.1182\" fill=\"#0FA389\"/>\n <path d=\"M14.099 1.83472L13.9495 2.24632L11.997 7.61074L11.9427 7.7594L11.9003 7.87369L14.7448 11.4103C14.7463 11.4127 14.7479 11.4143 14.7495 11.4167L14.9414 11.654C14.9541 11.67 14.9661 11.6868 14.9765 11.7044C15.0764 11.8698 15.1444 12.0505 15.1779 12.2431C15.273 12.7826 15.0812 13.3284 14.676 13.6897C14.656 13.7129 14.6345 13.7344 14.6105 13.7536L11.8563 15.9507L11.6789 16.0922L11.6022 16.1537L10.7406 16.8402V16.841L10.3937 17.1176L9.85747 17.5452L9.39951 17.9112L8.11035 18.9398C8.72016 19.0677 9.35155 19.1364 9.99973 19.1364C15.0461 19.1364 19.1365 15.046 19.1365 9.99964C19.1365 6.42789 17.0857 3.33727 14.099 1.83472Z\" fill=\"#0FA389\"/>\n <path d=\"M14.7287 12.3222C14.7047 12.1832 14.6551 12.0545 14.5864 11.941L14.3954 11.7036C14.3954 11.7036 14.3946 11.7028 14.3938 11.7028L11.3839 7.96005L10.5031 6.86511L10.4256 6.7676L9.03255 5.03487L8.83674 4.79191C8.79278 4.71678 8.75681 4.63446 8.73204 4.54814C8.72085 4.51058 8.71286 4.47222 8.70566 4.43465C8.68568 4.32196 8.68408 4.21007 8.69847 4.10217L8.62334 4.16291L8.44511 4.30438L5.75731 6.44871L5.60066 6.57339C5.34011 6.82275 5.20584 7.19279 5.27218 7.57482C5.29296 7.68751 5.32892 7.79541 5.37927 7.89292C5.37927 7.89292 5.37927 7.89292 5.38007 7.89371L5.6566 8.23818L8.57139 11.8627L8.63293 11.9394L9.53047 13.0559L9.59041 13.1303L9.98363 13.6186L11.0178 14.9046C11.0186 14.9054 11.0194 14.9069 11.0202 14.9077L11.1361 15.0516V15.0524C11.2184 15.1755 11.2768 15.317 11.3048 15.4728C11.3239 15.5807 11.3263 15.6878 11.3143 15.7925L11.3175 15.7965L11.3943 15.735L11.5717 15.5935L14.3266 13.3964L14.3218 13.3908C14.6335 13.1438 14.8022 12.7394 14.7287 12.3222Z\" fill=\"#F3F3F5\"/>\n <path d=\"M10.6822 15.0082C10.6814 15.0074 10.6806 15.0058 10.6806 15.005L10.5672 14.8643L10.3809 14.6325L10.3282 14.567L10.2211 14.4335L9.40028 13.4129L9.32835 13.3242L8.77289 12.6345L8.68098 12.5194L8.44121 12.2205L8.37168 12.4099L8.04159 13.317L8.0376 13.329L7.95128 13.5664L6.42475 17.7623L6.24333 18.2618L5.90605 19.1881L5.73262 19.6645C5.73182 19.6661 5.73102 19.6677 5.73102 19.6685C5.72863 19.6749 5.72703 19.6821 5.72543 19.6885C5.71584 19.7228 5.71424 19.758 5.72063 19.7948C5.74461 19.929 5.87329 20.0193 6.00836 19.9962C6.04112 19.9898 6.07229 19.9778 6.09867 19.9602C6.09867 19.9602 6.09947 19.9602 6.10027 19.9594L6.14103 19.9266L7.39422 18.9268L9.11496 17.5537L9.57292 17.1877L10.1092 16.7601L10.4561 16.4827L10.4537 16.4811C10.7582 16.2382 10.9236 15.8402 10.8509 15.4294C10.8237 15.2735 10.7654 15.1313 10.6822 15.0082Z\" fill=\"#0C847B\"/>\n <path d=\"M9.17644 4.56325C9.2124 4.68713 9.26915 4.80062 9.34268 4.90053C9.34348 4.90053 9.34428 4.90213 9.34428 4.90213L9.40342 4.97645C9.40502 4.97805 9.40582 4.97885 9.40662 4.98045L9.56806 5.17946L9.64878 5.28096L9.67915 5.31932L9.8414 5.51993L10.5559 6.40947L10.7054 6.59569L11.2169 7.23188L11.5142 7.60192L11.5693 7.45247L13.5202 2.08964L14.1596 0.332135C14.1596 0.330536 14.1604 0.328139 14.1612 0.32654C14.174 0.288177 14.1772 0.246617 14.17 0.205058C14.1468 0.0699879 14.0182 -0.0195258 13.8823 0.00365186C13.8407 0.0116442 13.8024 0.028428 13.7712 0.0540033L12.578 1.00589L12.498 1.06982L10.6958 2.50844L9.85658 3.17819L9.8326 3.19737L9.6296 3.35961L9.45297 3.50028C9.2116 3.73925 9.08692 4.08931 9.15006 4.44976C9.15726 4.48813 9.16525 4.52649 9.17644 4.56325Z\" fill=\"#0C847B\"/>\n </svg>\n</ng-template>\n",
132
+ template: "<s-loading-state\n [loading]=\"isLoading\"\n [blockWindow]=\"true\">\n</s-loading-state>\n\n<p-dialog\n [(visible)]=\"isVisible\"\n [modal]=\"true\"\n [style]=\"{ width: '50vw' }\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n (onHide)=\"onHideDialog()\">\n <p-header>\n <div class=\"dialog-header\">\n <span class=\"iassist-icon\">\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </span>\n IAssist - Content Generator\n </div>\n </p-header>\n <s-dynamic-form\n [fields]=\"fields\"\n [form]=\"formGroup\">\n </s-dynamic-form>\n <p-footer>\n <div class=\"footer-content\">\n <s-button\n id=\"-submit-button\"\n type=\"button\"\n [label]=\"'platform.angular_components.generate_text' | translate\"\n (onClick)=\"submitContext()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n showDelay=\"500\">\n </s-button>\n <s-button\n id=\"-cancel-button\"\n type=\"button\"\n priority=\"link\"\n [label]=\"'platform.angular_components.cancel' | translate\"\n (onClick)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n showDelay=\"500\">\n </s-button>\n </div>\n </p-footer>\n</p-dialog>\n\n<div class=\"textarea-ia\">\n <s-textarea\n [inputId]=\"id\"\n [rows]=\"rows\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [readOnly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [speechRecognition]=\"speechRecognition\"\n [keepContext]=\"keepContext\"\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n ></s-textarea>\n <button\n class=\"iassist-button\"\n [class.speech-recognition]=\"speechRecognition && speechRecognitionService.hasSupportSpeechRecognition\"\n (click)=\"showDialog()\"\n sTooltip=\"IAssist - Content Generator\">\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </button>\n</div>\n\n<ng-template #iassistIcon>\n <svg style=\"width: 100%; height: 100%;\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5.81451 18.1054L5.99593 17.6059L7.52166 13.4099L7.60877 13.1726L7.61277 13.1614L7.94285 12.2543L8.01159 12.0648L8.05394 11.949L5.2998 8.52426L5.02726 8.18379C5.00569 8.15821 4.9881 8.13104 4.97292 8.10226C4.90099 7.9632 4.85063 7.81294 4.82186 7.6531C4.73075 7.1344 4.90418 6.60771 5.28382 6.24326C5.29421 6.23447 5.3038 6.22567 5.31419 6.21688L5.47164 6.0914L9.3439 3.00238L9.5469 2.84094L9.57088 2.82096L10.4101 2.15041L11.8007 1.04188C11.2181 0.925188 10.6163 0.863647 10.0001 0.863647C4.95374 0.863647 0.863281 4.9541 0.863281 9.99963C0.863281 13.5346 2.87254 16.5989 5.80971 18.1182\" fill=\"#0FA389\"/>\n <path d=\"M14.099 1.83472L13.9495 2.24632L11.997 7.61074L11.9427 7.7594L11.9003 7.87369L14.7448 11.4103C14.7463 11.4127 14.7479 11.4143 14.7495 11.4167L14.9414 11.654C14.9541 11.67 14.9661 11.6868 14.9765 11.7044C15.0764 11.8698 15.1444 12.0505 15.1779 12.2431C15.273 12.7826 15.0812 13.3284 14.676 13.6897C14.656 13.7129 14.6345 13.7344 14.6105 13.7536L11.8563 15.9507L11.6789 16.0922L11.6022 16.1537L10.7406 16.8402V16.841L10.3937 17.1176L9.85747 17.5452L9.39951 17.9112L8.11035 18.9398C8.72016 19.0677 9.35155 19.1364 9.99973 19.1364C15.0461 19.1364 19.1365 15.046 19.1365 9.99964C19.1365 6.42789 17.0857 3.33727 14.099 1.83472Z\" fill=\"#0FA389\"/>\n <path d=\"M14.7287 12.3222C14.7047 12.1832 14.6551 12.0545 14.5864 11.941L14.3954 11.7036C14.3954 11.7036 14.3946 11.7028 14.3938 11.7028L11.3839 7.96005L10.5031 6.86511L10.4256 6.7676L9.03255 5.03487L8.83674 4.79191C8.79278 4.71678 8.75681 4.63446 8.73204 4.54814C8.72085 4.51058 8.71286 4.47222 8.70566 4.43465C8.68568 4.32196 8.68408 4.21007 8.69847 4.10217L8.62334 4.16291L8.44511 4.30438L5.75731 6.44871L5.60066 6.57339C5.34011 6.82275 5.20584 7.19279 5.27218 7.57482C5.29296 7.68751 5.32892 7.79541 5.37927 7.89292C5.37927 7.89292 5.37927 7.89292 5.38007 7.89371L5.6566 8.23818L8.57139 11.8627L8.63293 11.9394L9.53047 13.0559L9.59041 13.1303L9.98363 13.6186L11.0178 14.9046C11.0186 14.9054 11.0194 14.9069 11.0202 14.9077L11.1361 15.0516V15.0524C11.2184 15.1755 11.2768 15.317 11.3048 15.4728C11.3239 15.5807 11.3263 15.6878 11.3143 15.7925L11.3175 15.7965L11.3943 15.735L11.5717 15.5935L14.3266 13.3964L14.3218 13.3908C14.6335 13.1438 14.8022 12.7394 14.7287 12.3222Z\" fill=\"#F3F3F5\"/>\n <path d=\"M10.6822 15.0082C10.6814 15.0074 10.6806 15.0058 10.6806 15.005L10.5672 14.8643L10.3809 14.6325L10.3282 14.567L10.2211 14.4335L9.40028 13.4129L9.32835 13.3242L8.77289 12.6345L8.68098 12.5194L8.44121 12.2205L8.37168 12.4099L8.04159 13.317L8.0376 13.329L7.95128 13.5664L6.42475 17.7623L6.24333 18.2618L5.90605 19.1881L5.73262 19.6645C5.73182 19.6661 5.73102 19.6677 5.73102 19.6685C5.72863 19.6749 5.72703 19.6821 5.72543 19.6885C5.71584 19.7228 5.71424 19.758 5.72063 19.7948C5.74461 19.929 5.87329 20.0193 6.00836 19.9962C6.04112 19.9898 6.07229 19.9778 6.09867 19.9602C6.09867 19.9602 6.09947 19.9602 6.10027 19.9594L6.14103 19.9266L7.39422 18.9268L9.11496 17.5537L9.57292 17.1877L10.1092 16.7601L10.4561 16.4827L10.4537 16.4811C10.7582 16.2382 10.9236 15.8402 10.8509 15.4294C10.8237 15.2735 10.7654 15.1313 10.6822 15.0082Z\" fill=\"#0C847B\"/>\n <path d=\"M9.17644 4.56325C9.2124 4.68713 9.26915 4.80062 9.34268 4.90053C9.34348 4.90053 9.34428 4.90213 9.34428 4.90213L9.40342 4.97645C9.40502 4.97805 9.40582 4.97885 9.40662 4.98045L9.56806 5.17946L9.64878 5.28096L9.67915 5.31932L9.8414 5.51993L10.5559 6.40947L10.7054 6.59569L11.2169 7.23188L11.5142 7.60192L11.5693 7.45247L13.5202 2.08964L14.1596 0.332135C14.1596 0.330536 14.1604 0.328139 14.1612 0.32654C14.174 0.288177 14.1772 0.246617 14.17 0.205058C14.1468 0.0699879 14.0182 -0.0195258 13.8823 0.00365186C13.8407 0.0116442 13.8024 0.028428 13.7712 0.0540033L12.578 1.00589L12.498 1.06982L10.6958 2.50844L9.85658 3.17819L9.8326 3.19737L9.6296 3.35961L9.45297 3.50028C9.2116 3.73925 9.08692 4.08931 9.15006 4.44976C9.15726 4.48813 9.16525 4.52649 9.17644 4.56325Z\" fill=\"#0C847B\"/>\n </svg>\n</ng-template>\n",
125
133
  providers: [
126
134
  {
127
135
  provide: NG_VALUE_ACCESSOR,
@@ -133,4 +141,4 @@ TextAreaIAComponent = TextAreaIAComponent_1 = __decorate([
133
141
  })
134
142
  ], TextAreaIAComponent);
135
143
  export { TextAreaIAComponent };
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLWlhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3RleHQtYXJlYS1pYS90ZXh0LWFyZWEtaWEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFbEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFjNUYsSUFBYSxtQkFBbUIsMkJBQWhDLE1BQWEsbUJBQW1CO0lBbUM1QixZQUNxQixlQUErQixFQUFFLDZCQUE2QjtJQUM5RCxZQUF5QixFQUN6QixpQkFBbUMsRUFDN0Msd0JBQWtEO1FBSHhDLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN6QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQzdDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFoQjdELHNCQUFpQixHQUFHLEtBQUssQ0FBQTtRQUlsQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGNBQVMsR0FBRyxLQUFL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QUFZLENBQUMsS0FBSyxDQUFDO1lBQ3JDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUNoQixDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0osQ0FBQTs7WUF4RnlDLGNBQWM7WUFDakIsV0FBVztZQUNOLGdCQUFnQjtZQUNuQix3QkFBd0I7O0FBckM3RDtJQURDLEtBQUssRUFBRTsrQ0FDVTtBQUdsQjtJQURDLEtBQUssRUFBRTtrREFDYTtBQUdyQjtJQURDLEtBQUssRUFBRTt3REFDbUI7QUFHM0I7SUFEQyxLQUFLLEVBQUU7bURBQ2M7QUFHdEI7SUFEQyxLQUFLLEVBQUU7cURBQ2lCO0FBR3pCO0lBREMsS0FBSyxFQUFFO2lEQUNZO0FBR3BCO0lBREMsS0FBSyxFQUFFO2lEQUNZO0FBR3BCO0lBREMsS0FBSyxFQUFFOzhEQUNpQjtBQXZCaEIsbUJBQW1CO0lBWi9CLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxnQkFBZ0I7UUFDMUIsbXBNQUE0QztRQUU1QyxTQUFTLEVBQUU7WUFDUDtnQkFDSSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFtQixDQUFDO2dCQUNsRCxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0o7O0tBQ0osQ0FBQztHQUNXLG1CQUFtQixDQTRIL0I7U0E1SFksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyB0aHJvd0Vycm9yIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuaW1wb3J0IHsgRmllbGRUeXBlLCBGb3JtRmllbGQgfSBmcm9tIFwiLi4vZHluYW1pYy1mb3JtXCI7XG5pbXBvcnQgeyBJQXNzaXN0U2VydmljZSB9IGZyb20gXCIuLi9keW5hbWljLWZvcm0vc2VydmljZXMvSUFzc2lzdC9pYXNzaXN0LnNlcnZpY2VcIjtcbmltcG9ydCB7IElBc3Npc3RSZXNwb25zZSB9IGZyb20gXCIuLi9keW5hbWljLWZvcm0vc2VydmljZXMvSUFzc2lzdC9tb2RlbHNcIjtcbmltcG9ydCB7IFNwZWVjaFJlY29nbml0aW9uU2VydmljZSB9IGZyb20gXCIuLi9zcGVlY2gtcmVjb2duaXRpb24vc3BlZWNoLXJlY29nbml0aW9uLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy10ZXh0LWFyZWEtaWFcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3RleHQtYXJlYS1pYS5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi90ZXh0LWFyZWEtaWEuY29tcG9uZW50LnNjc3NcIl0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGV4dEFyZWFJQUNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUZXh0QXJlYUlBQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcHJvbXB0OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByZWFkb25seTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJvd3M6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbHM6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgc3BlZWNoUmVjb2duaXRpb24gPSBmYWxzZVxuXG4gICAgcHVibGljIGZpZWxkczogRm9ybUZpZWxkW107XG4gICAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICAgIHB1YmxpYyBpc1Zpc2libGUgPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgcHVibGljIHZhbHVlOiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIF9pc0Rpc2FibGVkOiBib29sZWFuO1xuICAgIHByaXZhdGUgX29uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbiAgICBwcml2YXRlIF9vblRvdWNoZWQ6ICgpID0+IHZvaWQ7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfaWFzc2lzdFNlcnZpY2U6IElBc3Npc3RTZXJ2aWNlLCAvLyBNb3ZlciBwcmEgdW1hIHBhc3RhIGdsb2JhbFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9mb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBzcGVlY2hSZWNvZ25pdGlvblNlcnZpY2U6IFNwZWVjaFJlY29nbml0aW9uU2VydmljZVxuICAgICkgeyB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NyZWF0ZURpYWxvZ0ZpZWxkcygpO1xuICAgICAgICB0aGlzLl9jcmVhdGVEaWFsb2dGb3JtR3JvdXAoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UgPSBvbkNoYW5nZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uVG91Y2hlZCA9IG9uVG91Y2hlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2U/Lih2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3dEaWFsb2coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGhpZGVEaWFsb2coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNWaXNpYmxlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIG9uSGlkZURpYWxvZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwiY29udGV4dFwiKS5zZXRWYWx1ZShcIlwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3VibWl0Q29udGV4dCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuZm9ybUdyb3VwLmdldChcImNvbnRleHRcIik7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLl9pYXNzaXN0U2VydmljZVxuICAgICAgICAgICAgLmFza0lBKGNvbnRleHQudmFsdWUsIHtcbiAgICAgICAgICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5sYWJlbCxcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy5wbGFjZWhvbGRlcixcbiAgICAgICAgICAgICAgICBwcm9tcHQ6IHRoaXMucHJvbXB0LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzOiBJQXNzaXN0UmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gcmVzLnRleHQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuaGlkZURpYWxvZygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NyZWF0ZURpYWxvZ0ZpZWxkcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWVsZHMgPSBbXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcImNvbnRleHRcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuVGV4dCxcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwicGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmNvbnRleHRcIiksXG4gICAgICAgICAgICAgICAgc2l6ZTogeyBzbTogMTIsIG1kOiAxMiwgbGc6IDEyLCB4bDogMTIgfSxcbiAgICAgICAgICAgICAgICBzcGVlY2hSZWNvZ25pdGlvbjogdGhpcy5zcGVlY2hSZWNvZ25pdGlvblxuICAgICAgICAgICAgfSksXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY3JlYXRlRGlhbG9nRm9ybUdyb3VwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgIGNvbnRleHQ6IFtcIlwiXSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLWlhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3RleHQtYXJlYS1pYS90ZXh0LWFyZWEtaWEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFbEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFjNUYsSUFBYSxtQkFBbUIsMkJBQWhDLE1BQWEsbUJBQW1CO0lBeUM1QixZQUNxQixlQUErQixFQUFFLDZCQUE2QjtJQUM5RCxZQUF5QixFQUN6QixpQkFBbUMsRUFDN0Msd0JBQWtEO1FBSHhDLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN6QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQzdDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUF0QjdELHNCQUFpQixHQUFHLEtBQUssQ0FBQTtRQUd6QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUdwQixpQ0FBNEIsR0FBRyxF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LENBQUM7SUFFTyxzQkFBc0I7UUFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUNyQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7U0FDaEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKLENBQUE7O1lBeEZ5QyxjQUFjO1lBQ2pCLFdBQVc7WUFDTixnQkFBZ0I7WUFDbkIsd0JBQXdCOztBQTNDN0Q7SUFEQyxLQUFLLEVBQUU7K0NBQ1U7QUFHbEI7SUFEQyxLQUFLLEVBQUU7a0RBQ2E7QUFHckI7SUFEQyxLQUFLLEVBQUU7d0RBQ21CO0FBRzNCO0lBREMsS0FBSyxFQUFFO21EQUNjO0FBR3RCO0lBREMsS0FBSyxFQUFFO3FEQUNpQjtBQUd6QjtJQURDLEtBQUssRUFBRTtpREFDWTtBQUdwQjtJQURDLEtBQUssRUFBRTtpREFDWTtBQUdwQjtJQURDLEtBQUssRUFBRTs4REFDaUI7QUFHekI7SUFEQyxLQUFLLEVBQUU7d0RBQ1k7QUFHcEI7SUFEQyxLQUFLLEVBQUU7eUVBQzBCO0FBN0J6QixtQkFBbUI7SUFaL0IsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLGdCQUFnQjtRQUMxQixtd01BQTRDO1FBRTVDLFNBQVMsRUFBRTtZQUNQO2dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQW1CLENBQUM7Z0JBQ2xELEtBQUssRUFBRSxJQUFJO2FBQ2Q7U0FDSjs7S0FDSixDQUFDO0dBQ1csbUJBQW1CLENBa0kvQjtTQWxJWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IHRocm93RXJyb3IgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5pbXBvcnQgeyBGaWVsZFR5cGUsIEZvcm1GaWVsZCB9IGZyb20gXCIuLi9keW5hbWljLWZvcm1cIjtcbmltcG9ydCB7IElBc3Npc3RTZXJ2aWNlIH0gZnJvbSBcIi4uL2R5bmFtaWMtZm9ybS9zZXJ2aWNlcy9JQXNzaXN0L2lhc3Npc3Quc2VydmljZVwiO1xuaW1wb3J0IHsgSUFzc2lzdFJlc3BvbnNlIH0gZnJvbSBcIi4uL2R5bmFtaWMtZm9ybS9zZXJ2aWNlcy9JQXNzaXN0L21vZGVsc1wiO1xuaW1wb3J0IHsgU3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NwZWVjaC1yZWNvZ25pdGlvbi9zcGVlY2gtcmVjb2duaXRpb24uc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJzLXRleHQtYXJlYS1pYVwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vdGV4dC1hcmVhLWlhLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL3RleHQtYXJlYS1pYS5jb21wb25lbnQuc2Nzc1wiXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUZXh0QXJlYUlBQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRleHRBcmVhSUFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwcm9tcHQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlYWRvbmx5OiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcm93czogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29sczogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBzcGVlY2hSZWNvZ25pdGlvbiA9IGZhbHNlXG5cbiAgICBASW5wdXQoKVxuICAgIGtlZXBDb250ZXh0ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHNwZWVjaFJlY29nbml0aW9uUGxhY2Vob2xkZXIgPSAnJztcblxuICAgIHB1YmxpYyBmaWVsZHM6IEZvcm1GaWVsZFtdO1xuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgICBwdWJsaWMgaXNWaXNpYmxlID0gZmFsc2U7XG4gICAgcHVibGljIGlzTG9hZGluZyA9IGZhbHNlO1xuICAgIHB1YmxpYyB2YWx1ZTogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBfaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9vbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSBfb25Ub3VjaGVkOiAoKSA9PiB2b2lkO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2lhc3Npc3RTZXJ2aWNlOiBJQXNzaXN0U2VydmljZSwgLy8gTW92ZXIgcHJhIHVtYSBwYXN0YSBnbG9iYWxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF90cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlOiBTcGVlY2hSZWNvZ25pdGlvblNlcnZpY2VcbiAgICApIHsgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jcmVhdGVEaWFsb2dGaWVsZHMoKTtcbiAgICAgICAgdGhpcy5fY3JlYXRlRGlhbG9nRm9ybUdyb3VwKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlID0gb25DaGFuZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlPy4odmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93RGlhbG9nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoaWRlRGlhbG9nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkhpZGVEaWFsb2coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcImNvbnRleHRcIikuc2V0VmFsdWUoXCJcIik7XG4gICAgfVxuXG4gICAgcHVibGljIHN1Ym1pdENvbnRleHQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJjb250ZXh0XCIpO1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5faWFzc2lzdFNlcnZpY2VcbiAgICAgICAgICAgIC5hc2tJQShjb250ZXh0LnZhbHVlLCB7XG4gICAgICAgICAgICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMubGFiZWwsXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMucGxhY2Vob2xkZXIsXG4gICAgICAgICAgICAgICAgcHJvbXB0OiB0aGlzLnByb21wdCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycik7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogSUFzc2lzdFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHJlcy50ZXh0O1xuICAgICAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmhpZGVEaWFsb2coKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jcmVhdGVEaWFsb2dGaWVsZHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmllbGRzID0gW1xuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XG4gICAgICAgICAgICAgICAgbmFtZTogXCJjb250ZXh0XCIsXG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLlRleHQsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcInBsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5jb250ZXh0XCIpLFxuICAgICAgICAgICAgICAgIHNpemU6IHsgc206IDEyLCBtZDogMTIsIGxnOiAxMiwgeGw6IDEyIH0sXG4gICAgICAgICAgICAgICAgc3BlZWNoUmVjb2duaXRpb246IHRoaXMuc3BlZWNoUmVjb2duaXRpb25cbiAgICAgICAgICAgIH0pLFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NyZWF0ZURpYWxvZ0Zvcm1Hcm91cCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLl9mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBjb250ZXh0OiBbXCJcIl0sXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==