@bnsights/bbsf-controls 1.0.153 → 1.0.154

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.
@@ -7065,9 +7065,6 @@ class TextAreaComponent {
7065
7065
  this.controlValidationService.isCreatedBefor = false;
7066
7066
  this.group.addControl(this.options.name, new FormControl(''));
7067
7067
  this.textAreaFormControl = this.group.controls[this.options.name]; // new FormControl('',validationRules);
7068
- // Initialize language form control
7069
- const languageControlName = this.options.name + 'Language';
7070
- this.group.addControl(languageControlName, new FormControl(this.options.selectedSpeechLanguage || ''));
7071
7068
  if (!this.options.maxLength)
7072
7069
  this.options.maxLength = this.globalSettings.maxLengthTextArea;
7073
7070
  if (!this.options.viewType)
@@ -7075,6 +7072,9 @@ class TextAreaComponent {
7075
7072
  if (this.options.labelKey != null && this.options.labelKey != "")
7076
7073
  this.options.labelValue = this.utilityService.getResourceValue(this.options.labelKey);
7077
7074
  if (this.options.enableSpeechRecognition) {
7075
+ // Initialize language form control
7076
+ const languageControlName = 'Language_' + this.options.name;
7077
+ this.group.addControl(languageControlName, new FormControl(this.options.selectedSpeechLanguage || ''));
7078
7078
  //Get all languages if not set
7079
7079
  if (!this.options.speechLanguages) {
7080
7080
  this.languageService.getLanguages().subscribe(result => {
@@ -7197,7 +7197,7 @@ class TextAreaComponent {
7197
7197
  }
7198
7198
  //region Speech Recognition
7199
7199
  setSpeechLanguage() {
7200
- const languageControlName = this.options.name + 'Language';
7200
+ const languageControlName = 'Language_' + this.options.name;
7201
7201
  if (this.options.autoSaveSpeechLanguagetoLocalStorage) {
7202
7202
  let savedLanguage = localStorage.getItem("speechLanguage");
7203
7203
  if (savedLanguage) {
@@ -7280,7 +7280,7 @@ class TextAreaComponent {
7280
7280
  let selectedLang_Dialect = event.target.value;
7281
7281
  this.selectedSpeechLanguageDisplayText = this.options.speechLanguages.find(l => l.dialect == selectedLang_Dialect).prefix;
7282
7282
  this.options.selectedSpeechLanguage = selectedLang_Dialect;
7283
- const languageControlName = this.options.name + 'Language';
7283
+ const languageControlName = 'Language_' + this.options.name;
7284
7284
  let select = this.group.get(languageControlName);
7285
7285
  select.setValue(selectedLang_Dialect);
7286
7286
  if (this.options.autoSaveSpeechLanguagetoLocalStorage) {
@@ -7288,7 +7288,7 @@ class TextAreaComponent {
7288
7288
  }
7289
7289
  }
7290
7290
  enableOrDisableLanguageSelect(isEnabled = true) {
7291
- const languageControlName = this.options.name + 'Language';
7291
+ const languageControlName = 'Language_' + this.options.name;
7292
7292
  let select = this.group.get(languageControlName);
7293
7293
  if (isEnabled) {
7294
7294
  select.enable();
@@ -7298,11 +7298,11 @@ class TextAreaComponent {
7298
7298
  }
7299
7299
  }
7300
7300
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: TextAreaComponent, deps: [{ token: ControlUtility }, { token: i2.ControlContainer, optional: true }, { token: i2.FormGroupDirective }, { token: i3.UtilityService }, { token: i3.ControlValidationService }, { token: GlobalSettings }, { token: i3.SpeechRecognitionService }, { token: i3.LanguageService }], target: i0.ɵɵFactoryTarget.Component }); }
7301
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: TextAreaComponent, selector: "BBSF-TextArea", inputs: { group: "group", options: "options" }, outputs: { onChange: "onChange" }, ngImport: i0, template: "<div class=\"form-group bbsf-control bbsf-textarea\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.viewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.hideLabel\" class=\"bbsf-label {{options.labelExtraClasses}}\">\r\n {{options.labelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.showAsterisk&&options.isRequired)||(options.isRequired))&&!options.isReadonly\"\r\n class=\"text-danger\">*</span>\r\n </label>\r\n <div *ngIf=\"!options.isReadonly\" class=\"bbsf-input-container\" [ngClass]=\"{\r\n 'p-120px': options.enableSpeechRecognition && options.enableCopyToClipboard,\r\n 'p-80px': options.enableSpeechRecognition && !options.enableCopyToClipboard,\r\n 'p-40px': !options.enableSpeechRecognition && options.enableCopyToClipboard\r\n }\">\r\n <!--input-->\r\n <textarea class=\"form-control {{options.extraClasses}}\" (focus)=\"onFocus(true)\" (focusout)=\"onFocus(false)\"\r\n [dir]=\"textDir\" aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"{{options.name}}\"\r\n [class.is-invalid]=\"textAreaFormControl.invalid && textAreaFormControl.touched\"\r\n placeholder=\"{{options.placeholder}}\" id=\"{{options.name}}\" autocomplete=\"{{options.autoComplete}}\"\r\n (change)=\"trimControlValue()\" rows=\"{{options.rows}}\" (keyup)=\"onTextChange()\" cols=\"{{options.cols}}\"\r\n maxlength=\"{{options.maxLength}}\" minlength=\"{{options.minLength}}\" [(ngModel)]=\"options.value\"\r\n (keydown)=\"wordCountArray>options.maxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #TextAreainput></textarea>\r\n <!--CopyToClipboard-->\r\n <div class=\"copy-clipboard\" *ngIf=\"options.enableCopyToClipboard\" (click)=\"copyInputMessage(TextAreainput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </div>\r\n <div [ngClass]=\"{'expanded': isFocused}\" class=\"language-container {{options.extraClassMicLanguage}}\" *ngIf=\"options.enableSpeechRecognition\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"options.iconMic? options.iconMic : './src/assets/images/mic.svg'\" (click)=\"startSpeechRecognition()\"\r\n *ngIf=\"!isMicOn\">\r\n </span>\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"options.iconMicOff? options.iconMicOff : './src/assets/images/mic-off.svg'\" (click)=\"stopSpeechRecognition()\"\r\n *ngIf=\"isMicOn\">\r\n </span>\r\n <div>\r\n <span class=\"language-text\">{{ selectedSpeechLanguageDisplayText }}</span>\r\n <select class=\"language-select\" [formControlName]=\"options.name + 'Language'\" (change)=\"onSpeechLanguageChange($event)\">\r\n <option *ngFor=\"let language of options.speechLanguages\" [value]=\"language.dialect\">\r\n {{language.name}}\r\n </option>\r\n </select>\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.isReadonly\"><span class=\"readonly-view\">{{options.value}}</span>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!--wordCount-->\r\n <div class=\"bbsf-word-count\" *ngIf=\"options.maxWordCount>0&&isShowWordCount\">\r\n {{wordCount}}/{{options.maxWordCount}} Words</div>\r\n <!-- CharsLimitMsg-->\r\n <div class=\"bbsf-character-count\" *ngIf=\"showCharsLimitMsg\"\r\n [ngClass]=\"{'badge-light-warning': charsLimitMsgClass === 'warning', 'badge-light-danger' : charsLimitMsgClass === 'danger' }\">\r\n {{maxLimitWarningMsg}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.labelDescription!=null\">{{options.labelDescription}}</div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" [dir]=\"textDir\" *ngIf=\"(textAreaFormControl.invalid && textAreaFormControl.touched)\">\r\n {{getErrorValidation(textAreaFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">\r\n {{resetError()}}</div>\r\n </div>\r\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "directive", type: i7.NativeElementInjectorDirective, selector: "[ngModel], [formControl], [formControlName]" }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i8$3.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["inlineSVG", "resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "setSVGAttributes", "removeSVGAttributes", "forceEvalStyles", "evalScripts", "fallbackImgUrl", "fallbackSVG", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }, { kind: "pipe", type: i5.KeyValuePipe, name: "keyvalue" }] }); }
7301
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: TextAreaComponent, selector: "BBSF-TextArea", inputs: { group: "group", options: "options" }, outputs: { onChange: "onChange" }, ngImport: i0, template: "<div class=\"form-group bbsf-control bbsf-textarea\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.viewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.hideLabel\" class=\"bbsf-label {{options.labelExtraClasses}}\">\r\n {{options.labelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.showAsterisk&&options.isRequired)||(options.isRequired))&&!options.isReadonly\"\r\n class=\"text-danger\">*</span>\r\n </label>\r\n <div *ngIf=\"!options.isReadonly\" class=\"bbsf-input-container\" [ngClass]=\"{\r\n 'p-120px': options.enableSpeechRecognition && options.enableCopyToClipboard,\r\n 'p-80px': options.enableSpeechRecognition && !options.enableCopyToClipboard,\r\n 'p-40px': !options.enableSpeechRecognition && options.enableCopyToClipboard\r\n }\">\r\n <!--input-->\r\n <textarea class=\"form-control {{options.extraClasses}}\" (focus)=\"onFocus(true)\" (focusout)=\"onFocus(false)\"\r\n [dir]=\"textDir\" aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"{{options.name}}\"\r\n [class.is-invalid]=\"textAreaFormControl.invalid && textAreaFormControl.touched\"\r\n placeholder=\"{{options.placeholder}}\" id=\"{{options.name}}\" autocomplete=\"{{options.autoComplete}}\"\r\n (change)=\"trimControlValue()\" rows=\"{{options.rows}}\" (keyup)=\"onTextChange()\" cols=\"{{options.cols}}\"\r\n maxlength=\"{{options.maxLength}}\" minlength=\"{{options.minLength}}\" [(ngModel)]=\"options.value\"\r\n (keydown)=\"wordCountArray>options.maxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #TextAreainput></textarea>\r\n <!--CopyToClipboard-->\r\n <div class=\"copy-clipboard\" *ngIf=\"options.enableCopyToClipboard\" (click)=\"copyInputMessage(TextAreainput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </div>\r\n <div [ngClass]=\"{'expanded': isFocused}\" class=\"language-container {{options.extraClassMicLanguage}}\" *ngIf=\"options.enableSpeechRecognition\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"options.iconMic? options.iconMic : './src/assets/images/mic.svg'\" (click)=\"startSpeechRecognition()\"\r\n *ngIf=\"!isMicOn\">\r\n </span>\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"options.iconMicOff? options.iconMicOff : './src/assets/images/mic-off.svg'\" (click)=\"stopSpeechRecognition()\"\r\n *ngIf=\"isMicOn\">\r\n </span>\r\n <div>\r\n <span class=\"language-text\">{{ selectedSpeechLanguageDisplayText }}</span>\r\n <select class=\"language-select\" [formControlName]=\"'Language_'+options.name\" (change)=\"onSpeechLanguageChange($event)\">\r\n <option *ngFor=\"let language of options.speechLanguages\" [value]=\"language.dialect\">\r\n {{language.name}}\r\n </option>\r\n </select>\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.isReadonly\"><span class=\"readonly-view\">{{options.value}}</span>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!--wordCount-->\r\n <div class=\"bbsf-word-count\" *ngIf=\"options.maxWordCount>0&&isShowWordCount\">\r\n {{wordCount}}/{{options.maxWordCount}} Words</div>\r\n <!-- CharsLimitMsg-->\r\n <div class=\"bbsf-character-count\" *ngIf=\"showCharsLimitMsg\"\r\n [ngClass]=\"{'badge-light-warning': charsLimitMsgClass === 'warning', 'badge-light-danger' : charsLimitMsgClass === 'danger' }\">\r\n {{maxLimitWarningMsg}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.labelDescription!=null\">{{options.labelDescription}}</div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" [dir]=\"textDir\" *ngIf=\"(textAreaFormControl.invalid && textAreaFormControl.touched)\">\r\n {{getErrorValidation(textAreaFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">\r\n {{resetError()}}</div>\r\n </div>\r\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "directive", type: i7.NativeElementInjectorDirective, selector: "[ngModel], [formControl], [formControlName]" }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i8$3.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["inlineSVG", "resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "setSVGAttributes", "removeSVGAttributes", "forceEvalStyles", "evalScripts", "fallbackImgUrl", "fallbackSVG", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }, { kind: "pipe", type: i5.KeyValuePipe, name: "keyvalue" }] }); }
7302
7302
  }
7303
7303
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: TextAreaComponent, decorators: [{
7304
7304
  type: Component,
7305
- args: [{ selector: 'BBSF-TextArea', template: "<div class=\"form-group bbsf-control bbsf-textarea\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.viewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.hideLabel\" class=\"bbsf-label {{options.labelExtraClasses}}\">\r\n {{options.labelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.showAsterisk&&options.isRequired)||(options.isRequired))&&!options.isReadonly\"\r\n class=\"text-danger\">*</span>\r\n </label>\r\n <div *ngIf=\"!options.isReadonly\" class=\"bbsf-input-container\" [ngClass]=\"{\r\n 'p-120px': options.enableSpeechRecognition && options.enableCopyToClipboard,\r\n 'p-80px': options.enableSpeechRecognition && !options.enableCopyToClipboard,\r\n 'p-40px': !options.enableSpeechRecognition && options.enableCopyToClipboard\r\n }\">\r\n <!--input-->\r\n <textarea class=\"form-control {{options.extraClasses}}\" (focus)=\"onFocus(true)\" (focusout)=\"onFocus(false)\"\r\n [dir]=\"textDir\" aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"{{options.name}}\"\r\n [class.is-invalid]=\"textAreaFormControl.invalid && textAreaFormControl.touched\"\r\n placeholder=\"{{options.placeholder}}\" id=\"{{options.name}}\" autocomplete=\"{{options.autoComplete}}\"\r\n (change)=\"trimControlValue()\" rows=\"{{options.rows}}\" (keyup)=\"onTextChange()\" cols=\"{{options.cols}}\"\r\n maxlength=\"{{options.maxLength}}\" minlength=\"{{options.minLength}}\" [(ngModel)]=\"options.value\"\r\n (keydown)=\"wordCountArray>options.maxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #TextAreainput></textarea>\r\n <!--CopyToClipboard-->\r\n <div class=\"copy-clipboard\" *ngIf=\"options.enableCopyToClipboard\" (click)=\"copyInputMessage(TextAreainput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </div>\r\n <div [ngClass]=\"{'expanded': isFocused}\" class=\"language-container {{options.extraClassMicLanguage}}\" *ngIf=\"options.enableSpeechRecognition\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"options.iconMic? options.iconMic : './src/assets/images/mic.svg'\" (click)=\"startSpeechRecognition()\"\r\n *ngIf=\"!isMicOn\">\r\n </span>\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"options.iconMicOff? options.iconMicOff : './src/assets/images/mic-off.svg'\" (click)=\"stopSpeechRecognition()\"\r\n *ngIf=\"isMicOn\">\r\n </span>\r\n <div>\r\n <span class=\"language-text\">{{ selectedSpeechLanguageDisplayText }}</span>\r\n <select class=\"language-select\" [formControlName]=\"options.name + 'Language'\" (change)=\"onSpeechLanguageChange($event)\">\r\n <option *ngFor=\"let language of options.speechLanguages\" [value]=\"language.dialect\">\r\n {{language.name}}\r\n </option>\r\n </select>\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.isReadonly\"><span class=\"readonly-view\">{{options.value}}</span>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!--wordCount-->\r\n <div class=\"bbsf-word-count\" *ngIf=\"options.maxWordCount>0&&isShowWordCount\">\r\n {{wordCount}}/{{options.maxWordCount}} Words</div>\r\n <!-- CharsLimitMsg-->\r\n <div class=\"bbsf-character-count\" *ngIf=\"showCharsLimitMsg\"\r\n [ngClass]=\"{'badge-light-warning': charsLimitMsgClass === 'warning', 'badge-light-danger' : charsLimitMsgClass === 'danger' }\">\r\n {{maxLimitWarningMsg}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.labelDescription!=null\">{{options.labelDescription}}</div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" [dir]=\"textDir\" *ngIf=\"(textAreaFormControl.invalid && textAreaFormControl.touched)\">\r\n {{getErrorValidation(textAreaFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">\r\n {{resetError()}}</div>\r\n </div>\r\n" }]
7305
+ args: [{ selector: 'BBSF-TextArea', template: "<div class=\"form-group bbsf-control bbsf-textarea\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.viewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.hideLabel\" class=\"bbsf-label {{options.labelExtraClasses}}\">\r\n {{options.labelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.showAsterisk&&options.isRequired)||(options.isRequired))&&!options.isReadonly\"\r\n class=\"text-danger\">*</span>\r\n </label>\r\n <div *ngIf=\"!options.isReadonly\" class=\"bbsf-input-container\" [ngClass]=\"{\r\n 'p-120px': options.enableSpeechRecognition && options.enableCopyToClipboard,\r\n 'p-80px': options.enableSpeechRecognition && !options.enableCopyToClipboard,\r\n 'p-40px': !options.enableSpeechRecognition && options.enableCopyToClipboard\r\n }\">\r\n <!--input-->\r\n <textarea class=\"form-control {{options.extraClasses}}\" (focus)=\"onFocus(true)\" (focusout)=\"onFocus(false)\"\r\n [dir]=\"textDir\" aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"{{options.name}}\"\r\n [class.is-invalid]=\"textAreaFormControl.invalid && textAreaFormControl.touched\"\r\n placeholder=\"{{options.placeholder}}\" id=\"{{options.name}}\" autocomplete=\"{{options.autoComplete}}\"\r\n (change)=\"trimControlValue()\" rows=\"{{options.rows}}\" (keyup)=\"onTextChange()\" cols=\"{{options.cols}}\"\r\n maxlength=\"{{options.maxLength}}\" minlength=\"{{options.minLength}}\" [(ngModel)]=\"options.value\"\r\n (keydown)=\"wordCountArray>options.maxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #TextAreainput></textarea>\r\n <!--CopyToClipboard-->\r\n <div class=\"copy-clipboard\" *ngIf=\"options.enableCopyToClipboard\" (click)=\"copyInputMessage(TextAreainput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </div>\r\n <div [ngClass]=\"{'expanded': isFocused}\" class=\"language-container {{options.extraClassMicLanguage}}\" *ngIf=\"options.enableSpeechRecognition\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"options.iconMic? options.iconMic : './src/assets/images/mic.svg'\" (click)=\"startSpeechRecognition()\"\r\n *ngIf=\"!isMicOn\">\r\n </span>\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"options.iconMicOff? options.iconMicOff : './src/assets/images/mic-off.svg'\" (click)=\"stopSpeechRecognition()\"\r\n *ngIf=\"isMicOn\">\r\n </span>\r\n <div>\r\n <span class=\"language-text\">{{ selectedSpeechLanguageDisplayText }}</span>\r\n <select class=\"language-select\" [formControlName]=\"'Language_'+options.name\" (change)=\"onSpeechLanguageChange($event)\">\r\n <option *ngFor=\"let language of options.speechLanguages\" [value]=\"language.dialect\">\r\n {{language.name}}\r\n </option>\r\n </select>\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.isReadonly\"><span class=\"readonly-view\">{{options.value}}</span>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!--wordCount-->\r\n <div class=\"bbsf-word-count\" *ngIf=\"options.maxWordCount>0&&isShowWordCount\">\r\n {{wordCount}}/{{options.maxWordCount}} Words</div>\r\n <!-- CharsLimitMsg-->\r\n <div class=\"bbsf-character-count\" *ngIf=\"showCharsLimitMsg\"\r\n [ngClass]=\"{'badge-light-warning': charsLimitMsgClass === 'warning', 'badge-light-danger' : charsLimitMsgClass === 'danger' }\">\r\n {{maxLimitWarningMsg}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.labelDescription!=null\">{{options.labelDescription}}</div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" [dir]=\"textDir\" *ngIf=\"(textAreaFormControl.invalid && textAreaFormControl.touched)\">\r\n {{getErrorValidation(textAreaFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">\r\n {{resetError()}}</div>\r\n </div>\r\n" }]
7306
7306
  }], ctorParameters: () => [{ type: ControlUtility }, { type: i2.ControlContainer, decorators: [{
7307
7307
  type: Optional
7308
7308
  }] }, { type: i2.FormGroupDirective }, { type: i3.UtilityService }, { type: i3.ControlValidationService }, { type: GlobalSettings }, { type: i3.SpeechRecognitionService }, { type: i3.LanguageService }], propDecorators: { group: [{
@@ -7434,7 +7434,7 @@ class RepeaterFieldBuilderComponent {
7434
7434
  let dateTime = new DatePickerOptions();
7435
7435
  dateTime.name = this.repeaterField.controlOptions.name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
7436
7436
  dateTime.hideLabel = this.repeaterField.controlOptions.hideLabel;
7437
- dateTime.labelKey = this.repeaterField.controlOptions.LabelKey;
7437
+ dateTime.labelKey = this.repeaterField.controlOptions.labelKey;
7438
7438
  dateTime.isRequired = this.repeaterField.controlOptions.isRequired;
7439
7439
  dateTime.viewType = this.repeaterField.controlOptions.viewType;
7440
7440
  dateTime.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : "";
@@ -7481,7 +7481,7 @@ class RepeaterFieldBuilderComponent {
7481
7481
  mulipleSelect.hideLabel = this.repeaterField.controlOptions.hideLabel;
7482
7482
  mulipleSelect.labelKey = this.repeaterField.controlOptions.labelKey;
7483
7483
  mulipleSelect.isRequired = this.repeaterField.controlOptions.isRequired;
7484
- mulipleSelect.viewType = this.repeaterField.controlOptions.ViewType;
7484
+ mulipleSelect.viewType = this.repeaterField.controlOptions.viewType;
7485
7485
  mulipleSelect.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : "";
7486
7486
  mulipleSelect.dataSource = this.repeaterField.controlOptions.dataSource;
7487
7487
  mulipleSelect.singleSelection = false;
@@ -7540,7 +7540,7 @@ class RepeaterFieldBuilderComponent {
7540
7540
  let country = new DropdownOptions();
7541
7541
  country.name = this.repeaterField.controlOptions.name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
7542
7542
  country.hideLabel = this.repeaterField.controlOptions.hideLabel;
7543
- country.labelKey = this.repeaterField.controlOptions.LabelKey;
7543
+ country.labelKey = this.repeaterField.controlOptions.labelKey;
7544
7544
  country.isRequired = this.repeaterField.controlOptions.isRequired;
7545
7545
  country.viewType = this.repeaterField.controlOptions.viewType;
7546
7546
  country.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : "";
@@ -7560,7 +7560,7 @@ class RepeaterFieldBuilderComponent {
7560
7560
  file.labelKey = this.repeaterField.controlOptions.labelKey;
7561
7561
  file.isRequired = this.repeaterField.controlOptions.isRequired;
7562
7562
  file.viewType = this.repeaterField.controlOptions.viewType;
7563
- file.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.LabelDescription : "";
7563
+ file.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : "";
7564
7564
  file.fileMaxSizeInMB = this.repeaterField.controlOptions.maxFileSizeInMB;
7565
7565
  file.value = this.value;
7566
7566
  this.renderComponentService.renderDynamicComponent(this.item, FileUploadComponent, this.group, file);
@@ -7568,11 +7568,11 @@ class RepeaterFieldBuilderComponent {
7568
7568
  case DataType.MultiFile:
7569
7569
  let multiFile = new FileUploadOptions();
7570
7570
  file.name = this.repeaterField.controlOptions.name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
7571
- file.hideLabel = this.repeaterField.controlOptions.HideLabel;
7572
- file.labelKey = this.repeaterField.controlOptions.LabelKey;
7573
- file.isRequired = this.repeaterField.controlOptions.IsRequired;
7574
- file.viewType = this.repeaterField.controlOptions.ViewType;
7575
- file.labelDescription = this.repeaterField.controlOptions.LabelDescription ? this.repeaterField.controlOptions.LabelDescription : "";
7571
+ file.hideLabel = this.repeaterField.controlOptions.hideLabel;
7572
+ file.labelKey = this.repeaterField.controlOptions.labelKey;
7573
+ file.isRequired = this.repeaterField.controlOptions.isRequired;
7574
+ file.viewType = this.repeaterField.controlOptions.viewType;
7575
+ file.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : "";
7576
7576
  multiFile.maxSizeForAllFilesInMB = this.repeaterField.controlOptions.maxFileSizeInMB;
7577
7577
  multiFile.maxNoOfFiles = this.repeaterField.controlOptions.maxFileCount;
7578
7578
  multiFile.isMultipleFile = true;
@@ -7584,11 +7584,11 @@ class RepeaterFieldBuilderComponent {
7584
7584
  case DataType.Image:
7585
7585
  let image = new ImageUploadOptions();
7586
7586
  image.name = this.repeaterField.controlOptions.name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
7587
- image.hideLabel = this.repeaterField.controlOptions.HideLabel;
7588
- image.labelKey = this.repeaterField.controlOptions.LabelKey;
7589
- image.isRequired = this.repeaterField.controlOptions.IsRequired;
7590
- image.viewType = this.repeaterField.controlOptions.ViewType;
7591
- image.labelDescription = this.repeaterField.controlOptions.LabelDescription ? this.repeaterField.controlOptions.LabelDescription : "";
7587
+ image.hideLabel = this.repeaterField.controlOptions.hideLabel;
7588
+ image.labelKey = this.repeaterField.controlOptions.labelKey;
7589
+ image.isRequired = this.repeaterField.controlOptions.isRequired;
7590
+ image.viewType = this.repeaterField.controlOptions.viewType;
7591
+ image.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : "";
7592
7592
  if (this.repeaterField.controlOptions.maxFileSizeInMB)
7593
7593
  image.fileMaxSizeInMB = this.repeaterField.controlOptions.maxFileSizeInMB;
7594
7594
  image.value = this.value;
@@ -7597,11 +7597,11 @@ class RepeaterFieldBuilderComponent {
7597
7597
  case DataType.CoverPhoto:
7598
7598
  let coverPhoto = new ImageUploadOptions();
7599
7599
  coverPhoto.name = this.repeaterField.controlOptions.name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
7600
- coverPhoto.hideLabel = this.repeaterField.controlOptions.HideLabel;
7601
- coverPhoto.labelKey = this.repeaterField.controlOptions.LabelKey;
7602
- coverPhoto.isRequired = this.repeaterField.controlOptions.IsRequired;
7603
- coverPhoto.viewType = this.repeaterField.controlOptions.ViewType;
7604
- coverPhoto.labelDescription = this.repeaterField.controlOptions.LabelDescription ? this.repeaterField.controlOptions.LabelDescription : "";
7600
+ coverPhoto.hideLabel = this.repeaterField.controlOptions.hideLabel;
7601
+ coverPhoto.labelKey = this.repeaterField.controlOptions.labelKey;
7602
+ coverPhoto.isRequired = this.repeaterField.controlOptions.isRequired;
7603
+ coverPhoto.viewType = this.repeaterField.controlOptions.viewType;
7604
+ coverPhoto.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : "";
7605
7605
  if (this.repeaterField.controlOptions.maxFileSizeInMB)
7606
7606
  coverPhoto.fileMaxSizeInMB = this.repeaterField.controlOptions.maxFileSizeInMB;
7607
7607
  coverPhoto.value = this.value;
@@ -7612,11 +7612,11 @@ class RepeaterFieldBuilderComponent {
7612
7612
  case DataType.Mobile:
7613
7613
  let mobile = new PhoneOptions();
7614
7614
  mobile.name = this.repeaterField.controlOptions.name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
7615
- mobile.hideLabel = this.repeaterField.controlOptions.HideLabel;
7616
- mobile.labelKey = this.repeaterField.controlOptions.LabelKey;
7617
- mobile.isRequired = this.repeaterField.controlOptions.IsRequired;
7618
- mobile.viewType = this.repeaterField.controlOptions.ViewType;
7619
- mobile.labelDescription = this.repeaterField.controlOptions.LabelDescription ? this.repeaterField.controlOptions.LabelDescription : "";
7615
+ mobile.hideLabel = this.repeaterField.controlOptions.hideLabel;
7616
+ mobile.labelKey = this.repeaterField.controlOptions.labelKey;
7617
+ mobile.isRequired = this.repeaterField.controlOptions.isRequired;
7618
+ mobile.viewType = this.repeaterField.controlOptions.viewType;
7619
+ mobile.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : "";
7620
7620
  mobile.allowSearch = true;
7621
7621
  mobile.phoneValidation = true;
7622
7622
  mobile.selectFirstCountry = true;
@@ -7629,17 +7629,17 @@ class RepeaterFieldBuilderComponent {
7629
7629
  case DataType.MultilineText:
7630
7630
  let multilineText = new TextAreaOptions();
7631
7631
  multilineText.name = this.repeaterField.controlOptions.name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
7632
- multilineText.hideLabel = this.repeaterField.controlOptions.HideLabel;
7633
- multilineText.labelKey = this.repeaterField.controlOptions.LabelKey;
7634
- multilineText.isRequired = this.repeaterField.controlOptions.IsRequired;
7635
- multilineText.viewType = this.repeaterField.controlOptions.ViewType;
7636
- multilineText.labelDescription = this.repeaterField.controlOptions.LabelDescription ? this.repeaterField.controlOptions.LabelDescription : "";
7632
+ multilineText.hideLabel = this.repeaterField.controlOptions.hideLabel;
7633
+ multilineText.labelKey = this.repeaterField.controlOptions.labelKey;
7634
+ multilineText.isRequired = this.repeaterField.controlOptions.isRequired;
7635
+ multilineText.viewType = this.repeaterField.controlOptions.viewType;
7636
+ multilineText.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : "";
7637
7637
  if (this.repeaterField.controlOptions.maxLength)
7638
7638
  multilineText.maxLength = this.repeaterField.controlOptions.maxLength;
7639
7639
  if (this.repeaterField.controlOptions.minLength)
7640
7640
  multilineText.minLength = this.repeaterField.controlOptions.minLength;
7641
7641
  multilineText.rows = this.repeaterField.controlOptions.rows;
7642
- multilineText.forceDirection = this.repeaterField.controlOptions.ForceDirection;
7642
+ multilineText.forceDirection = this.repeaterField.controlOptions.forceDirection;
7643
7643
  multilineText.value = this.value;
7644
7644
  this.renderComponentService.renderDynamicComponent(this.item, TextAreaComponent, this.group, multilineText);
7645
7645
  break;
@@ -7648,17 +7648,17 @@ class RepeaterFieldBuilderComponent {
7648
7648
  case DataType.HTML:
7649
7649
  let HTML = new HtmlEditorOptions();
7650
7650
  HTML.name = this.repeaterField.controlOptions.name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
7651
- HTML.hideLabel = this.repeaterField.controlOptions.HideLabel;
7652
- HTML.labelKey = this.repeaterField.controlOptions.LabelKey;
7653
- HTML.isRequired = this.repeaterField.controlOptions.IsRequired;
7654
- HTML.viewType = this.repeaterField.controlOptions.ViewType;
7655
- HTML.labelDescription = this.repeaterField.controlOptions.LabelDescription ? this.repeaterField.controlOptions.labelDescription : "";
7651
+ HTML.hideLabel = this.repeaterField.controlOptions.hideLabel;
7652
+ HTML.labelKey = this.repeaterField.controlOptions.labelKey;
7653
+ HTML.isRequired = this.repeaterField.controlOptions.isRequired;
7654
+ HTML.viewType = this.repeaterField.controlOptions.viewType;
7655
+ HTML.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : "";
7656
7656
  if (this.repeaterField.controlOptions.maxLength)
7657
7657
  HTML.maxLength = this.repeaterField.controlOptions.maxLength;
7658
7658
  if (this.repeaterField.controlOptions.minLength)
7659
7659
  HTML.minLength = this.repeaterField.controlOptions.minLength;
7660
7660
  HTML.height = this.repeaterField.controlOptions.rows;
7661
- HTML.forceDirection = this.repeaterField.controlOptions.ForceDirection;
7661
+ HTML.forceDirection = this.repeaterField.controlOptions.forceDirection;
7662
7662
  HTML.value = this.value;
7663
7663
  this.renderComponentService.renderDynamicComponent(this.item, HtmlEditorComponent, this.group, HTML);
7664
7664
  break;
@@ -7858,7 +7858,7 @@ class RepeaterFieldBuilderComponent {
7858
7858
  Goal.labelKey = this.repeaterField.controlOptions.labelKey;
7859
7859
  Goal.isRequired = this.repeaterField.controlOptions.isRequired;
7860
7860
  Goal.viewType = this.repeaterField.controlOptions.viewType;
7861
- Goal.labelDescription = this.repeaterField.controlOptions.LabelDescription ? this.repeaterField.controlOptions.LabelDescription : "";
7861
+ Goal.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : "";
7862
7862
  Goal.dataSource = this.repeaterField.controlOptions.dataSource;
7863
7863
  Goal.singleSelection = !this.repeaterField.controlOptions.isMultiple;
7864
7864
  Goal.showCheckbox = false;
@@ -7991,7 +7991,7 @@ class RepeaterFieldBuilderComponent {
7991
7991
  let multilineText = new TextAreaOptions();
7992
7992
  multilineText.name = this.repeaterField.controlOptions.name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
7993
7993
  multilineText.hideLabel = this.repeaterField.controlOptions.hideLabel;
7994
- multilineText.labelKey = this.repeaterField.controlOptions.LabelKey;
7994
+ multilineText.labelKey = this.repeaterField.controlOptions.labelKey;
7995
7995
  multilineText.isRequired = this.repeaterField.controlOptions.isRequired;
7996
7996
  multilineText.viewType = this.repeaterField.controlOptions.viewType;
7997
7997
  multilineText.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : "";
@@ -8000,7 +8000,7 @@ class RepeaterFieldBuilderComponent {
8000
8000
  if (this.repeaterField.controlOptions.minLength)
8001
8001
  multilineText.minLength = this.repeaterField.controlOptions.minLength;
8002
8002
  multilineText.rows = this.repeaterField.controlOptions.rows;
8003
- multilineText.forceDirection = this.repeaterField.controlOptions.ForceDirection;
8003
+ multilineText.forceDirection = this.repeaterField.controlOptions.forceDirection;
8004
8004
  multilineText.value = value;
8005
8005
  this.renderComponentService.renderDynamicComponent(this.item, TextAreaComponent, this.group, multilineText);
8006
8006
  break;
@@ -8019,7 +8019,7 @@ class RepeaterFieldBuilderComponent {
8019
8019
  if (this.repeaterField.controlOptions.minLength)
8020
8020
  HTML.minLength = this.repeaterField.controlOptions.minLength;
8021
8021
  HTML.height = this.repeaterField.controlOptions.rows;
8022
- HTML.forceDirection = this.repeaterField.controlOptions.ForceDirection;
8022
+ HTML.forceDirection = this.repeaterField.controlOptions.forceDirection;
8023
8023
  HTML.value = value;
8024
8024
  this.renderComponentService.renderDynamicComponent(this.item, HtmlEditorComponent, this.group, HTML);
8025
8025
  break;