@seniorsistemas/angular-components 17.26.8 → 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 (34) hide show
  1. package/bundles/seniorsistemas-angular-components.umd.js +153 -77
  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/dynamic-form/configurations/fields/text-area-field.d.ts +8 -6
  6. package/components/dynamic-form/configurations/fields/text-area-ia-field.d.ts +6 -0
  7. package/components/speech-recognition/speech-recognition/speech-recognition.component.d.ts +3 -0
  8. package/components/speech-recognition/speech-recognition.service.d.ts +7 -1
  9. package/components/text-area/text-area/text-area.component.d.ts +3 -0
  10. package/components/text-area-ia/text-area-ia.component.d.ts +2 -0
  11. package/esm2015/components/dynamic-form/components/fields/text-area/text-area-field.component.js +2 -2
  12. package/esm2015/components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component.js +6 -4
  13. package/esm2015/components/dynamic-form/configurations/fields/text-area-field.js +9 -3
  14. package/esm2015/components/dynamic-form/configurations/fields/text-area-ia-field.js +5 -2
  15. package/esm2015/components/speech-recognition/speech-recognition/speech-recognition.component.js +32 -10
  16. package/esm2015/components/speech-recognition/speech-recognition.service.js +82 -57
  17. package/esm2015/components/text-area/text-area/text-area.component.js +14 -3
  18. package/esm2015/components/text-area-ia/text-area-ia.component.js +10 -2
  19. package/esm2015/locale/fallback.js +3 -2
  20. package/esm5/components/dynamic-form/components/fields/text-area/text-area-field.component.js +2 -2
  21. package/esm5/components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component.js +6 -4
  22. package/esm5/components/dynamic-form/configurations/fields/text-area-field.js +10 -4
  23. package/esm5/components/dynamic-form/configurations/fields/text-area-ia-field.js +5 -2
  24. package/esm5/components/speech-recognition/speech-recognition/speech-recognition.component.js +33 -10
  25. package/esm5/components/speech-recognition/speech-recognition.service.js +84 -58
  26. package/esm5/components/text-area/text-area/text-area.component.js +14 -3
  27. package/esm5/components/text-area-ia/text-area-ia.component.js +10 -2
  28. package/esm5/locale/fallback.js +3 -2
  29. package/fesm2015/seniorsistemas-angular-components.js +150 -76
  30. package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
  31. package/fesm5/seniorsistemas-angular-components.js +153 -77
  32. package/fesm5/seniorsistemas-angular-components.js.map +1 -1
  33. package/package.json +1 -1
  34. package/seniorsistemas-angular-components.metadata.json +1 -1
@@ -7086,14 +7086,20 @@ var SliderField = /** @class */ (function (_super) {
7086
7086
  var TextAreaField = /** @class */ (function (_super) {
7087
7087
  __extends(TextAreaField, _super);
7088
7088
  function TextAreaField(config) {
7089
- var _a;
7089
+ var _a, _b, _c;
7090
7090
  var _this = _super.call(this, config) || this;
7091
+ _this.style = {
7092
+ resize: 'vertical'
7093
+ };
7091
7094
  _this.cols = config.cols;
7092
7095
  _this.rows = config.rows;
7093
7096
  _this.keyFilter = config.keyFilter;
7094
- _this.style = config.style;
7097
+ _this.style = __assign(__assign({}, config.style), _this.style);
7095
7098
  _this.readonly = config.readonly;
7096
7099
  _this.speechRecognition = (_a = config.speechRecognition) !== null && _a !== void 0 ? _a : false;
7100
+ _this.keepContext = (_b = config.keepContext) !== null && _b !== void 0 ? _b : false;
7101
+ _this.speechRecognitionPlaceholder = (_c = config.speechRecognitionPlaceholder) !== null && _c !== void 0 ? _c : '';
7102
+ _this.maxLength = config.maxLength;
7097
7103
  return _this;
7098
7104
  }
7099
7105
  return TextAreaField;
@@ -7102,7 +7108,7 @@ var TextAreaField = /** @class */ (function (_super) {
7102
7108
  var TextAreaIAField = /** @class */ (function (_super) {
7103
7109
  __extends(TextAreaIAField, _super);
7104
7110
  function TextAreaIAField(config) {
7105
- var _a;
7111
+ var _a, _b, _c;
7106
7112
  var _this = _super.call(this, config) || this;
7107
7113
  _this.style = {
7108
7114
  resize: 'vertical'
@@ -7114,6 +7120,9 @@ var TextAreaIAField = /** @class */ (function (_super) {
7114
7120
  _this.prompt = config.prompt;
7115
7121
  _this.readonly = config.readonly;
7116
7122
  _this.speechRecognition = (_a = config.speechRecognition) !== null && _a !== void 0 ? _a : false;
7123
+ _this.keepContext = (_b = config.keepContext) !== null && _b !== void 0 ? _b : false;
7124
+ _this.speechRecognitionPlaceholder = (_c = config.speechRecognitionPlaceholder) !== null && _c !== void 0 ? _c : '';
7125
+ _this.maxLength = config.maxLength;
7117
7126
  return _this;
7118
7127
  }
7119
7128
  return TextAreaIAField;
@@ -11343,80 +11352,100 @@ var SliderFieldComponent = /** @class */ (function (_super) {
11343
11352
  }(BaseFieldComponent));
11344
11353
 
11345
11354
  var SpeechRecognitionService = /** @class */ (function () {
11346
- function SpeechRecognitionService(localeService, ngZone) {
11355
+ function SpeechRecognitionService(localeService, ngZone, toastService, translateService) {
11347
11356
  this.localeService = localeService;
11348
11357
  this.ngZone = ngZone;
11358
+ this.toastService = toastService;
11359
+ this.translateService = translateService;
11349
11360
  this.hasSupportSpeechRecognition = false;
11350
11361
  this.isListening = false;
11362
+ this.hasMicrophoneAccess = false;
11351
11363
  this.TIMEOUT_NO_MESSAGE = 3000;
11364
+ this.verifyMicrophoneState();
11352
11365
  this.setRecognition();
11353
11366
  }
11354
11367
  SpeechRecognitionService.prototype.listen = function () {
11355
11368
  var _this = this;
11369
+ var speechSubject = new Subject();
11356
11370
  if (this.isListening) {
11357
- return;
11371
+ speechSubject.error('Already listening');
11358
11372
  }
11359
- var speechSubject = new Subject();
11360
- this.isListening = true;
11361
- this.recognition.continuous = true;
11362
- this.recognition.interimResults = true;
11363
- this.recognition.maxAlternatives = 1;
11364
- var silenceTimer;
11365
- var restartSilenceTimer = function () {
11366
- if (silenceTimer !== undefined) {
11367
- clearTimeout(silenceTimer);
11368
- }
11369
- silenceTimer = setTimeout(function () {
11370
- _this.recognition.stop();
11371
- }, _this.TIMEOUT_NO_MESSAGE);
11372
- };
11373
- var fullTranscript = '';
11374
- var interimTranscript = '';
11375
- this.recognition.onresult = function (event) {
11376
- _this.ngZone.run(function () {
11377
- restartSilenceTimer();
11378
- var interimTranscript = '';
11379
- for (var i = event.resultIndex; i < event.results.length; ++i) {
11380
- var transcript = event.results[i][0].transcript;
11381
- if (event.results[i].isFinal) {
11382
- fullTranscript += transcript + '\n';
11373
+ else if (!this.hasMicrophoneAccess) {
11374
+ this.isListening = false;
11375
+ this.toastService.show({ severity: 'error', text: this.translateService.instant('platform.angular_components.no_microphone_permission') });
11376
+ speechSubject.error('Microphone access is disabled');
11377
+ }
11378
+ else {
11379
+ this.isListening = true;
11380
+ this.recognition.continuous = true;
11381
+ this.recognition.interimResults = true;
11382
+ this.recognition.maxAlternatives = 1;
11383
+ var silenceTimer_1;
11384
+ var restartSilenceTimer_1 = function () {
11385
+ if (silenceTimer_1 !== undefined) {
11386
+ clearTimeout(silenceTimer_1);
11387
+ }
11388
+ silenceTimer_1 = setTimeout(function () {
11389
+ _this.recognition.stop();
11390
+ }, _this.TIMEOUT_NO_MESSAGE);
11391
+ };
11392
+ var fullTranscript_1 = '';
11393
+ var interimTranscript_1 = '';
11394
+ this.recognition.onresult = function (event) {
11395
+ _this.ngZone.run(function () {
11396
+ restartSilenceTimer_1();
11397
+ var interimTranscript = '';
11398
+ for (var i = event.resultIndex; i < event.results.length; ++i) {
11399
+ var transcript = event.results[i][0].transcript;
11400
+ if (event.results[i].isFinal) {
11401
+ fullTranscript_1 += transcript + '\n';
11402
+ }
11403
+ else {
11404
+ interimTranscript += transcript;
11405
+ }
11383
11406
  }
11384
- else {
11385
- interimTranscript += transcript;
11407
+ interimTranscript = interimTranscript;
11408
+ speechSubject.next({ text: fullTranscript_1 + interimTranscript, isFinal: false });
11409
+ });
11410
+ };
11411
+ this.recognition.onerror = function () {
11412
+ _this.ngZone.run(function () {
11413
+ if (silenceTimer_1 !== undefined) {
11414
+ clearTimeout(silenceTimer_1);
11386
11415
  }
11387
- }
11388
- interimTranscript = interimTranscript;
11389
- speechSubject.next({ text: fullTranscript + interimTranscript, isFinal: false });
11390
- });
11391
- };
11392
- this.recognition.onerror = function () {
11393
- _this.ngZone.run(function () {
11394
- if (silenceTimer !== undefined) {
11395
- clearTimeout(silenceTimer);
11396
- }
11397
- _this.isListening = false;
11398
- speechSubject.next({
11399
- isFinal: true,
11400
- text: ''
11416
+ _this.isListening = false;
11417
+ speechSubject.error('Speech recognition error');
11401
11418
  });
11402
- });
11403
- };
11404
- this.recognition.onend = function () {
11405
- _this.ngZone.run(function () {
11406
- if (silenceTimer !== undefined) {
11407
- clearTimeout(silenceTimer);
11408
- }
11409
- speechSubject.next({ text: fullTranscript + interimTranscript, isFinal: true });
11410
- _this.isListening = false;
11411
- speechSubject.complete();
11412
- });
11413
- };
11414
- this.recognition.start();
11419
+ };
11420
+ this.recognition.onend = function () {
11421
+ _this.ngZone.run(function () {
11422
+ if (silenceTimer_1 !== undefined) {
11423
+ clearTimeout(silenceTimer_1);
11424
+ }
11425
+ speechSubject.next({ text: fullTranscript_1 + interimTranscript_1, isFinal: true });
11426
+ _this.isListening = false;
11427
+ speechSubject.complete();
11428
+ });
11429
+ };
11430
+ this.recognition.start();
11431
+ }
11415
11432
  return speechSubject;
11416
11433
  };
11417
11434
  SpeechRecognitionService.prototype.stop = function () {
11418
11435
  this.recognition.stop();
11419
11436
  };
11437
+ SpeechRecognitionService.prototype.verifyMicrophoneState = function () {
11438
+ var _this = this;
11439
+ navigator.permissions.query({ name: 'microphone' }).then(function (result) {
11440
+ var microphoneResultState = result.state;
11441
+ _this.hasMicrophoneAccess = microphoneResultState === 'granted';
11442
+ result.onchange = function () {
11443
+ _this.ngZone.run(function () {
11444
+ _this.hasMicrophoneAccess = result.state === 'granted';
11445
+ });
11446
+ };
11447
+ });
11448
+ };
11420
11449
  SpeechRecognitionService.prototype.setRecognition = function () {
11421
11450
  var _this = this;
11422
11451
  var _a;
@@ -11434,9 +11463,11 @@ var SpeechRecognitionService = /** @class */ (function () {
11434
11463
  };
11435
11464
  SpeechRecognitionService.ctorParameters = function () { return [
11436
11465
  { type: LocaleService },
11437
- { type: NgZone }
11466
+ { type: NgZone },
11467
+ { type: ToastService },
11468
+ { type: TranslateService }
11438
11469
  ]; };
11439
- SpeechRecognitionService.ɵprov = ɵɵdefineInjectable({ factory: function SpeechRecognitionService_Factory() { return new SpeechRecognitionService(ɵɵinject(LocaleService), ɵɵinject(NgZone)); }, token: SpeechRecognitionService, providedIn: "root" });
11470
+ SpeechRecognitionService.ɵprov = ɵɵdefineInjectable({ factory: function SpeechRecognitionService_Factory() { return new SpeechRecognitionService(ɵɵinject(LocaleService), ɵɵinject(NgZone), ɵɵinject(ToastService), ɵɵinject(TranslateService)); }, token: SpeechRecognitionService, providedIn: "root" });
11440
11471
  SpeechRecognitionService = __decorate([
11441
11472
  Injectable({
11442
11473
  providedIn: 'root'
@@ -11489,14 +11520,16 @@ var TextAreaIAFieldComponent = /** @class */ (function () {
11489
11520
  this.hideDialog();
11490
11521
  };
11491
11522
  TextAreaIAFieldComponent.prototype._createDialogFields = function () {
11492
- var _a;
11523
+ var _a, _b;
11493
11524
  this.fields = [
11494
11525
  new FormField({
11495
11526
  name: "context",
11496
11527
  type: FieldType.Text,
11497
11528
  label: this._translateService.instant("platform.angular_components.context"),
11498
11529
  size: { sm: 12, md: 12, lg: 12, xl: 12 },
11499
- speechRecognition: (_a = this.field.speechRecognition) !== null && _a !== void 0 ? _a : false
11530
+ speechRecognition: (_a = this.field.speechRecognition) !== null && _a !== void 0 ? _a : false,
11531
+ keepContext: (_b = this.field.keepContext) !== null && _b !== void 0 ? _b : false,
11532
+ maxLength: this.field.maxLength,
11500
11533
  }),
11501
11534
  ];
11502
11535
  };
@@ -11519,7 +11552,7 @@ var TextAreaIAFieldComponent = /** @class */ (function () {
11519
11552
  ], TextAreaIAFieldComponent.prototype, "formControl", void 0);
11520
11553
  TextAreaIAFieldComponent = __decorate([
11521
11554
  Component({
11522
- template: "<s-field-label [field]=\"field\"\n *ngIf=\"textArea.renderTextArea\"\n [fieldContainerRef]=\"textArea.textAreaElement?.nativeElement\"></s-field-label>\n\n<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 #textArea\n [inputId]=\"(field.id || field.name)\"\n [rows]=\"field.rows\"\n [formControl]=\"formControl\"\n [inputStyle]=\"field.style\"\n [readOnly]=\"field.readonly ? field.readonly() : false\"\n [speechRecognition]=\"field.speechRecognition\"\n [placeholder]=\"field.placeholder\"\n ></s-textarea>\n <button\n class=\"iassist-button\"\n [class.speech-recognition]=\"field.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",
11555
+ template: "<s-field-label [field]=\"field\"\n *ngIf=\"textArea.renderTextArea\"\n [fieldContainerRef]=\"textArea.textAreaElement?.nativeElement\"></s-field-label>\n\n<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 #textArea\n [inputId]=\"(field.id || field.name)\"\n [rows]=\"field.rows\"\n [formControl]=\"formControl\"\n [inputStyle]=\"field.style\"\n [readOnly]=\"field.readonly ? field.readonly() : false\"\n [speechRecognition]=\"field.speechRecognition\"\n [placeholder]=\"field.placeholder\"\n [keepContext]=\"field.keepContext\"\n [speechRecognitionPlaceholder]=\"field.speechRecognitionPlaceholder\"\n [maxLength]=\"field.maxLength\"\n ></s-textarea>\n <button\n class=\"iassist-button\"\n [class.speech-recognition]=\"field.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",
11523
11556
  styles: [".footer-content{display:-ms-flexbox;display:flex;-ms-flex-positive:0;flex-grow:0}.textarea-ia{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;gap:8px}.textarea-ia s-textarea{width:100%}.iassist-button{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;border:none;border-radius:50%;box-shadow:none;cursor:pointer;height:32px;width:32px}.dialog-header{display:-ms-flexbox;display:flex;gap:12px}.dialog-header .iassist-icon{display:block;height:24px;width:24px}.speech-recognition{margin-bottom:12.5px}"]
11524
11557
  })
11525
11558
  ], TextAreaIAFieldComponent);
@@ -11547,7 +11580,7 @@ var TextAreaFieldComponent = /** @class */ (function () {
11547
11580
  ], TextAreaFieldComponent.prototype, "inputRef", void 0);
11548
11581
  TextAreaFieldComponent = __decorate([
11549
11582
  Component({
11550
- template: "<s-field-label *ngIf=\"textArea\" [field]=\"field\"\n [fieldContainerRef]=\"textArea.textAreaElement?.nativeElement\"></s-field-label>\n\n<s-textarea\n #textArea\n [inputId]=\"(field.id || field.name)\"\n [rows]=\"field.rows\"\n [formControl]=\"formControl\"\n [inputStyle]=\"field.style\"\n [readOnly]=\"field.readonly ? field.readonly() : false\"\n [keyFilter]=\"field.keyFilter\"\n [placeholder]=\"field.placeholder\"\n [speechRecognition]=\"field.speechRecognition\">\n</s-textarea>\n"
11583
+ template: "<s-field-label *ngIf=\"textArea\" [field]=\"field\"\n [fieldContainerRef]=\"textArea.textAreaElement?.nativeElement\"></s-field-label>\n\n<s-textarea\n #textArea\n [inputId]=\"(field.id || field.name)\"\n [rows]=\"field.rows\"\n [formControl]=\"formControl\"\n [inputStyle]=\"field.style\"\n [readOnly]=\"field.readonly ? field.readonly() : false\"\n [keyFilter]=\"field.keyFilter\"\n [placeholder]=\"field.placeholder\"\n [keepContext]=\"field.keepContext\"\n [speechRecognitionPlaceholder]=\"field.speechRecognitionPlaceholder\"\n [maxLength]=\"field.maxLength\"\n [speechRecognition]=\"field.speechRecognition\">\n</s-textarea>\n"
11551
11584
  })
11552
11585
  ], TextAreaFieldComponent);
11553
11586
  return TextAreaFieldComponent;
@@ -13421,6 +13454,8 @@ var TextAreaComponent = /** @class */ (function () {
13421
13454
  this.inputId = "textarea-" + Math.random();
13422
13455
  this.rows = 5;
13423
13456
  this.speechRecognition = false;
13457
+ this.keepContext = false;
13458
+ this.speechRecognitionPlaceholder = '';
13424
13459
  this._inputStyle = {
13425
13460
  resize: 'vertical'
13426
13461
  };
@@ -13511,6 +13546,15 @@ var TextAreaComponent = /** @class */ (function () {
13511
13546
  __decorate([
13512
13547
  Input()
13513
13548
  ], TextAreaComponent.prototype, "keyFilter", void 0);
13549
+ __decorate([
13550
+ Input()
13551
+ ], TextAreaComponent.prototype, "keepContext", void 0);
13552
+ __decorate([
13553
+ Input()
13554
+ ], TextAreaComponent.prototype, "speechRecognitionPlaceholder", void 0);
13555
+ __decorate([
13556
+ Input()
13557
+ ], TextAreaComponent.prototype, "maxLength", void 0);
13514
13558
  __decorate([
13515
13559
  Input()
13516
13560
  ], TextAreaComponent.prototype, "placeholder", null);
@@ -13523,7 +13567,7 @@ var TextAreaComponent = /** @class */ (function () {
13523
13567
  TextAreaComponent = TextAreaComponent_1 = __decorate([
13524
13568
  Component({
13525
13569
  selector: 's-textarea',
13526
- 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",
13570
+ 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",
13527
13571
  providers: [
13528
13572
  {
13529
13573
  provide: NG_VALUE_ACCESSOR,
@@ -13531,7 +13575,7 @@ var TextAreaComponent = /** @class */ (function () {
13531
13575
  multi: true,
13532
13576
  },
13533
13577
  ],
13534
- 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}"]
13578
+ 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}"]
13535
13579
  })
13536
13580
  ], TextAreaComponent);
13537
13581
  return TextAreaComponent;
@@ -13629,6 +13673,8 @@ var SpeechRecognitionComponent = /** @class */ (function () {
13629
13673
  this.speechRecognitionService = speechRecognitionService;
13630
13674
  this.textToSpeechService = textToSpeechService;
13631
13675
  this.translateService = translateService;
13676
+ this.keepContext = false;
13677
+ this.speechRecognitionPlaceholder = '';
13632
13678
  this._recognizedText = '';
13633
13679
  this.originalTextAreaElementText = '';
13634
13680
  this.isDoneSpeaking = false;
@@ -13659,7 +13705,7 @@ var SpeechRecognitionComponent = /** @class */ (function () {
13659
13705
  if (!this.textAreaElement) {
13660
13706
  throw new Error('textAreaElement is required');
13661
13707
  }
13662
- this.textAreaElement.placeholder = this.translateService.instant("platform.angular_components.text_area_speech_recognition_placeholder");
13708
+ this.textAreaElement.placeholder = this.speechRecognitionPlaceholder ? this.speechRecognitionPlaceholder : this.translateService.instant("platform.angular_components.text_area_speech_recognition_placeholder");
13663
13709
  this.textAreaElement.addEventListener('keydown', this.keydownEventListener);
13664
13710
  };
13665
13711
  SpeechRecognitionComponent.prototype.onListen = function () {
@@ -13670,9 +13716,7 @@ var SpeechRecognitionComponent = /** @class */ (function () {
13670
13716
  this.disabled = true;
13671
13717
  this.canRenderMicrophone = false;
13672
13718
  this.canRenderListeningText = true;
13673
- if (this.textAreaElement.value && !this.originalTextAreaElementText) {
13674
- this.originalTextAreaElementText = this.textAreaElement.value;
13675
- }
13719
+ this.originalTextAreaElementText = this.textAreaElement.value;
13676
13720
  this.textAreaElement.value = '';
13677
13721
  this.isSpeaking = true;
13678
13722
  this.speechRecognitionService.listen()
@@ -13681,17 +13725,27 @@ var SpeechRecognitionComponent = /** @class */ (function () {
13681
13725
  var text = _a.text, isFinal = _a.isFinal;
13682
13726
  _this._recognizedText = text;
13683
13727
  _this.setTextAreaValue(text);
13684
- setTimeout(function () {
13685
- _this.textAreaElement.scrollTop = _this.textAreaElement.scrollHeight;
13686
- }, 120);
13728
+ _this.scrollTextAreaBottom();
13687
13729
  if (isFinal) {
13688
13730
  _this.canRenderAprove = true;
13689
13731
  _this.canRenderDiscard = true;
13690
13732
  _this.canRenderListeningText = false;
13691
13733
  _this.isSpeaking = false;
13692
13734
  }
13735
+ }, function () {
13736
+ _this.isSpeaking = false;
13737
+ _this.canRenderMicrophone = true;
13738
+ _this.isDisabledMicrophone = false;
13739
+ _this.canRenderListeningText = false;
13740
+ _this.disabled = false;
13693
13741
  });
13694
13742
  };
13743
+ SpeechRecognitionComponent.prototype.scrollTextAreaBottom = function () {
13744
+ var _this = this;
13745
+ setTimeout(function () {
13746
+ _this.textAreaElement.scrollTop = _this.textAreaElement.scrollHeight;
13747
+ }, 120);
13748
+ };
13695
13749
  SpeechRecognitionComponent.prototype.onOpenToolbar = function () {
13696
13750
  if (this.isDisabledTextToSpeech) {
13697
13751
  return;
@@ -13725,8 +13779,15 @@ var SpeechRecognitionComponent = /** @class */ (function () {
13725
13779
  this.canRenderMicrophone = true;
13726
13780
  this.canRenderTextToSpeechToolbar = false;
13727
13781
  this.canRenderTextToSpeech = true;
13728
- this.originalTextAreaElementText = this._recognizedText;
13729
- this.recognizedText.emit(this._recognizedText);
13782
+ if (this.keepContext) {
13783
+ var breakLine = this.originalTextAreaElementText.length > 0 ? '\n' : '';
13784
+ this.originalTextAreaElementText += "" + breakLine + this._recognizedText;
13785
+ }
13786
+ else {
13787
+ this.originalTextAreaElementText = this._recognizedText;
13788
+ }
13789
+ this.recognizedText.emit(this.keepContext ? this.originalTextAreaElementText : this._recognizedText);
13790
+ this.scrollTextAreaBottom();
13730
13791
  this._recognizedText = '';
13731
13792
  this.disabled = false;
13732
13793
  this.textToSpeechService.cancel();
@@ -13805,6 +13866,12 @@ var SpeechRecognitionComponent = /** @class */ (function () {
13805
13866
  __decorate([
13806
13867
  Input()
13807
13868
  ], SpeechRecognitionComponent.prototype, "textAreaElement", void 0);
13869
+ __decorate([
13870
+ Input()
13871
+ ], SpeechRecognitionComponent.prototype, "keepContext", void 0);
13872
+ __decorate([
13873
+ Input()
13874
+ ], SpeechRecognitionComponent.prototype, "speechRecognitionPlaceholder", void 0);
13808
13875
  __decorate([
13809
13876
  Output()
13810
13877
  ], SpeechRecognitionComponent.prototype, "recognizedText", void 0);
@@ -17786,6 +17853,8 @@ var TextAreaIAComponent = /** @class */ (function () {
17786
17853
  this._translateService = _translateService;
17787
17854
  this.speechRecognitionService = speechRecognitionService;
17788
17855
  this.speechRecognition = false;
17856
+ this.keepContext = false;
17857
+ this.speechRecognitionPlaceholder = '';
17789
17858
  this.isVisible = false;
17790
17859
  this.isLoading = false;
17791
17860
  }
@@ -17890,10 +17959,16 @@ var TextAreaIAComponent = /** @class */ (function () {
17890
17959
  __decorate([
17891
17960
  Input()
17892
17961
  ], TextAreaIAComponent.prototype, "speechRecognition", void 0);
17962
+ __decorate([
17963
+ Input()
17964
+ ], TextAreaIAComponent.prototype, "keepContext", void 0);
17965
+ __decorate([
17966
+ Input()
17967
+ ], TextAreaIAComponent.prototype, "speechRecognitionPlaceholder", void 0);
17893
17968
  TextAreaIAComponent = TextAreaIAComponent_1 = __decorate([
17894
17969
  Component({
17895
17970
  selector: "s-text-area-ia",
17896
- 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",
17971
+ 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",
17897
17972
  providers: [
17898
17973
  {
17899
17974
  provide: NG_VALUE_ACCESSOR,
@@ -23118,7 +23193,8 @@ var fallback = {
23118
23193
  "platform.angular_components.text_area_speech_recognition_placeholder": "Preencha o campo com, pelo menos, uma frase",
23119
23194
  "platform.angular_components.text_area_before_speech": "Grave ou ouça o texto clicando nos ícones",
23120
23195
  "platform.angular_components.text_area_while_speech": "Clique novamente no ícone para finalizar",
23121
- "platform.angular_components.text_area_end_speech": "Gravação finalizada"
23196
+ "platform.angular_components.text_area_end_speech": "Gravação finalizada",
23197
+ "platform.angular_components.no_microphone_permission": "O acesso ao microfone está bloqueado. Ative a permissão nas configurações do navegador para continuar usando este recurso."
23122
23198
  };
23123
23199
 
23124
23200
  /**