@bnsights/bbsf-controls 1.0.50 → 1.0.53

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 (31) hide show
  1. package/README.md +12 -0
  2. package/bnsights-bbsf-controls-1.0.53.tgz +0 -0
  3. package/bnsights-bbsf-controls.metadata.json +1 -1
  4. package/bundles/bnsights-bbsf-controls.umd.js +84 -35
  5. package/bundles/bnsights-bbsf-controls.umd.js.map +1 -1
  6. package/esm2015/lib/Shared/Enums/LanguageMode.js +8 -8
  7. package/esm2015/lib/Shared/Models/ConfirmationModalOptions.js +3 -1
  8. package/esm2015/lib/Shared/Models/DropdownOptions.js +2 -1
  9. package/esm2015/lib/Shared/Models/HtmlEditorOptions.js +2 -2
  10. package/esm2015/lib/Shared/Models/MapAutocompleteDTO.js +4 -1
  11. package/esm2015/lib/controls/ConfirmationModal/ConfirmationModal.component.js +3 -4
  12. package/esm2015/lib/controls/DateTimePicker/DateTimePicker.component.js +3 -1
  13. package/esm2015/lib/controls/DropdownList/DropdownList.component.js +2 -2
  14. package/esm2015/lib/controls/HtmlEditor/HtmlEditor.component.js +3 -3
  15. package/esm2015/lib/controls/MapAutoComplete/MapAutoComplete.component.js +9 -2
  16. package/esm2015/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.js +10 -2
  17. package/esm2015/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.js +12 -4
  18. package/esm2015/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.js +14 -4
  19. package/esm2015/lib/controls/TagsInput/TagsInput.component.js +23 -12
  20. package/esm2015/lib/controls/TextArea/TextArea.component.js +2 -2
  21. package/esm2015/lib/controls/TextBox/TextBox.component.js +2 -2
  22. package/fesm2015/bnsights-bbsf-controls.js +86 -35
  23. package/fesm2015/bnsights-bbsf-controls.js.map +1 -1
  24. package/lib/Shared/Enums/LanguageMode.d.ts +7 -7
  25. package/lib/Shared/Models/ConfirmationModalOptions.d.ts +1 -0
  26. package/lib/Shared/Models/DropdownOptions.d.ts +1 -0
  27. package/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.d.ts +2 -0
  28. package/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.d.ts +2 -0
  29. package/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.d.ts +2 -0
  30. package/package.json +2 -2
  31. package/bnsights-bbsf-controls-1.0.50.tgz +0 -0
@@ -546,6 +546,8 @@ class DateInputComponent {
546
546
  }
547
547
  }
548
548
  onDateSelect(item) {
549
+ if (!item)
550
+ return;
549
551
  let DateValue;
550
552
  var tzoffset = (new Date()).getTimezoneOffset() * 60000; //offset in milliseconds
551
553
  if (this.options.SelectMode == 2) {
@@ -627,13 +629,13 @@ var ControlLayout;
627
629
 
628
630
  var LanguageMode;
629
631
  (function (LanguageMode) {
630
- LanguageMode[LanguageMode["Both_Languages_are_visible"] = 1] = "Both_Languages_are_visible";
631
- LanguageMode[LanguageMode["English_Language_only_is_visible"] = 2] = "English_Language_only_is_visible";
632
- LanguageMode[LanguageMode["Arabic_Language_only_is_visible"] = 3] = "Arabic_Language_only_is_visible";
633
- LanguageMode[LanguageMode["Both_Languages_but_only_English_is_required"] = 4] = "Both_Languages_but_only_English_is_required";
634
- LanguageMode[LanguageMode["Both_Languages_but_only_Arabic_is_required"] = 5] = "Both_Languages_but_only_Arabic_is_required";
635
- LanguageMode[LanguageMode["Current_Language_only_is_visible_and_required"] = 6] = "Current_Language_only_is_visible_and_required";
636
- LanguageMode[LanguageMode["Both_Languages_are_visible_but_only_current_language_is_required"] = 7] = "Both_Languages_are_visible_but_only_current_language_is_required";
632
+ LanguageMode["Both_Languages_are_visible"] = "3c6dbffe-da7f-4108-b44d-4b216a22f701";
633
+ LanguageMode["English_Language_only_is_visible"] = "84cc1d57-1f07-42a1-a38f-1a376c12a367";
634
+ LanguageMode["Arabic_Language_only_is_visible"] = "6a3e59e0-9510-4b16-9080-9313f5c9f229";
635
+ LanguageMode["Both_Languages_but_only_English_is_required"] = "260c38bb-c90c-4aa7-895d-31aba9311a05";
636
+ LanguageMode["Both_Languages_but_only_Arabic_is_required"] = "a1f2e15f-2691-4118-975f-ac21caf8ad5a";
637
+ LanguageMode["Current_Language_only_is_visible_and_required"] = "e2ba1f44-68f3-4035-b84f-9f1b6c2b0c05";
638
+ LanguageMode["Both_Languages_are_visible_but_only_current_language_is_required"] = "b26431f2-b209-4c41-ab04-2d71361847c2";
637
639
  })(LanguageMode || (LanguageMode = {}));
638
640
 
639
641
  class GlobalSettings {
@@ -1024,6 +1026,8 @@ class MultiLingualTextBoxComponent {
1024
1026
  this.EnglishValidationRulesasync = [];
1025
1027
  this.IsShowArabicWordCount = false;
1026
1028
  this.IsShowEnglishWordCount = false;
1029
+ this.IsShowAsteriskInArabic = false;
1030
+ this.IsShowAsteriskInEnglish = false;
1027
1031
  this.markAllAsTouched = false;
1028
1032
  this.ArabicLetterOnly = "";
1029
1033
  this.EnglishLetterOnly = "";
@@ -1167,7 +1171,7 @@ class MultiLingualTextBoxComponent {
1167
1171
  //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0
1168
1172
  if (this.options.MaxLength && this.minCharsLimit >= 0) {
1169
1173
  this.englishCurrentCharsCount = this.EnglishFormControl.value.length;
1170
- if (this.englishCurrentCharsCount >= this.minCharsLimit) {
1174
+ if (this.englishCurrentCharsCount > this.minCharsLimit) {
1171
1175
  this.showEnglishCharsLimitMsg = true;
1172
1176
  this.hasEnglishCharsLimitValidationError = true;
1173
1177
  if (this.englishCurrentCharsCount == this.options.MaxLength)
@@ -1209,7 +1213,7 @@ class MultiLingualTextBoxComponent {
1209
1213
  //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0
1210
1214
  if (this.options.MaxLength && this.minCharsLimit >= 0) {
1211
1215
  this.arabicCurrentCharsCount = this.ArabicFormControl.value.length;
1212
- if (this.arabicCurrentCharsCount >= this.minCharsLimit) {
1216
+ if (this.arabicCurrentCharsCount > this.minCharsLimit) {
1213
1217
  this.showArabicCharsLimitMsg = true;
1214
1218
  this.hasArabicCharsLimitValidationError = true;
1215
1219
  if (this.arabicCurrentCharsCount == this.options.MaxLength)
@@ -1293,6 +1297,8 @@ class MultiLingualTextBoxComponent {
1293
1297
  if (this.options.IsRequired == true) {
1294
1298
  this.EnglishValidationRules.push(Validators.required);
1295
1299
  this.ArabicValidationRules.push(Validators.required);
1300
+ this.IsShowAsteriskInArabic = true;
1301
+ this.IsShowAsteriskInEnglish = true;
1296
1302
  }
1297
1303
  break;
1298
1304
  case LanguageMode.Arabic_Language_only_is_visible:
@@ -1307,11 +1313,13 @@ class MultiLingualTextBoxComponent {
1307
1313
  if (this.CurrentLanguage == 'ar') {
1308
1314
  if (this.options.IsRequired == true) {
1309
1315
  this.ArabicValidationRules.push(Validators.required);
1316
+ this.IsShowAsteriskInArabic = true;
1310
1317
  }
1311
1318
  }
1312
1319
  if (this.CurrentLanguage == 'en') {
1313
1320
  if (this.options.IsRequired == true) {
1314
1321
  this.EnglishValidationRules.push(Validators.required);
1322
+ this.IsShowAsteriskInEnglish = true;
1315
1323
  }
1316
1324
  }
1317
1325
  break;
@@ -1320,6 +1328,7 @@ class MultiLingualTextBoxComponent {
1320
1328
  this.ShowEnglishTextBox = true;
1321
1329
  if (this.options.IsRequired == true) {
1322
1330
  this.ArabicValidationRules.push(Validators.required);
1331
+ this.IsShowAsteriskInArabic = true;
1323
1332
  }
1324
1333
  break;
1325
1334
  case LanguageMode.Both_Languages_but_only_English_is_required:
@@ -1327,6 +1336,7 @@ class MultiLingualTextBoxComponent {
1327
1336
  this.ShowEnglishTextBox = true;
1328
1337
  if (this.options.IsRequired == true) {
1329
1338
  this.EnglishValidationRules.push(Validators.required);
1339
+ this.IsShowAsteriskInEnglish = true;
1330
1340
  }
1331
1341
  break;
1332
1342
  case LanguageMode.Current_Language_only_is_visible_and_required:
@@ -1335,6 +1345,7 @@ class MultiLingualTextBoxComponent {
1335
1345
  this.ShowEnglishTextBox = false;
1336
1346
  if (this.options.IsRequired == true) {
1337
1347
  this.ArabicValidationRules.push(Validators.required);
1348
+ this.IsShowAsteriskInArabic = true;
1338
1349
  }
1339
1350
  }
1340
1351
  if (this.CurrentLanguage == 'en') {
@@ -1342,6 +1353,7 @@ class MultiLingualTextBoxComponent {
1342
1353
  this.ShowEnglishTextBox = true;
1343
1354
  if (this.options.IsRequired == true) {
1344
1355
  this.EnglishValidationRules.push(Validators.required);
1356
+ this.IsShowAsteriskInEnglish = true;
1345
1357
  }
1346
1358
  }
1347
1359
  break;
@@ -1378,7 +1390,7 @@ MultiLingualTextBoxComponent.controlContainerstatic = null;
1378
1390
  MultiLingualTextBoxComponent.decorators = [
1379
1391
  { type: Component, args: [{
1380
1392
  selector: 'BBSF-MultiLingualTextBox',
1381
- template: "<div class=\"b-control b-multilangual-textbox\">\r\n <div class=\"form-group validate is-invalid\" [formGroup]=\"group\">\r\n\r\n <div class=\"form-group row\" [formGroup]=\"MultiLanguagegroup\">\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\">\r\n <div class=\"row\" *ngIf=\"ShowEnglishTextBox\">\r\n <label class=\"b-label col-form-label col-sm-12\"\r\n [ngClass]=\"(options.ViewType==1)?'col-md-9':'col-md-3'\" [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <div class=\"input-group align-items-center\">\r\n <div class=\"svg svg-icon-grey\" [ngClass]=\"(options.IconPositionEN==1)?'left-icon':'right-icon'\" *ngIf=\"options.Icon!=null\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <input class=\"form-control bnsights-control\"\r\n (focus)=\"onEnglishFocus(true)\" (focusout)=\"onEnglishFocus(false)\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"English\"\r\n [hidden]=\"options.IsHideEnglishFields\" maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n [class.is-invalid]=\"EnglishFormControl.invalid && EnglishFormControl.touched\"\r\n placeholder=\"{{options.EnglishPlaceholder}}\" (change)=\"trimControlValue('En')\"\r\n (keyup)=\"onTextChange()\"\r\n (keydown)=\"EnglishWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n autocomplete=\"{{options.AutoComplete}}\"\r\n id=\"{{options.Name}}.English\"\r\n #userinputEnglish>\r\n <div class=\"input-group-append\" [hidden]=\"options.IsHideEnglishFields\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(userinputEnglish)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"text-muted font-weight-500 word-count float-end\" *ngIf=\"options.MaxWordCount>0&&IsShowEnglishWordCount\">{{EnglishWordCount}}/{{options.MaxWordCount}}</div>\r\n <div class=\"text-danger Required-text\" *ngIf=\"(EnglishFormControl.invalid && EnglishFormControl.touched)\">\r\n {{getErrorValidation(EnglishFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"showEnglishCharsLimitMsg\">\r\n <span class=\"badge b-character-warning float-end\" [ngClass]=\"{'badge-light-warning': englishCharsLimitMsgClass === 'warning', 'badge-light-danger' : englishCharsLimitMsgClass === 'danger' }\">\r\n {{englishMaxLimitWarningMsg}}\r\n </span>\r\n </div>\r\n <div class=\"control-desc\" *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='') ||(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!='')\">\r\n {{(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!=\"\")?options.EnglishLabelDescription:options.LabelDescription}}\r\n </div>\r\n <!-- <div *ngIf=\"EnglishFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"group.valid\">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\">\r\n <div class=\"row\" *ngIf=\"ShowArabicTextBox\">\r\n <label class=\"b-label col-form-label col-sm-12\"\r\n [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\" [hidden]=\"options.IsHideArabicLabel\">\r\n {{(options.ArabicLabelValue!=null&&options.ArabicLabelValue!=\"\")?options.ArabicLabelValue:options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n <div class=\" col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <div class=\"input-group align-items-center\">\r\n <div class=\"svg svg-icon-grey\" [ngClass]=\"(options.IconPositionEN==1)?'right-icon':'left-icon'\" *ngIf=\"options.Icon!=null\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <input class=\"form-control bnsights-control\" dir=\"rtl\"\r\n (focus)=\"onArabicFocus(true)\" (focusout)=\"onArabicFocus(false)\"\r\n [hidden]=\"options.IsHideArabicFields\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"Arabic\" maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n [class.is-invalid]=\"ArabicFormControl.invalid && ArabicFormControl.touched\"\r\n placeholder=\"{{options.ArabicPlaceholder}}\" (keyup)=\"onTextChange()\"\r\n (keydown)=\"ArabicWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n autocomplete=\"{{options.AutoComplete}}\"\r\n id=\"{{options.Name}}.Arabic\"\r\n (change)=\"trimControlValue('Ar')\" #userinputArabic>\r\n\r\n <div class=\"input-group-append\" [hidden]=\"options.IsHideArabicFields\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(userinputArabic)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"text-muted font-weight-500 float-end word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowArabicWordCount\">{{ArabicWordCount}}/{{options.MaxWordCount}}</div>\r\n <div class=\"text-danger Required-text\" *ngIf=\"(ArabicFormControl.invalid && ArabicFormControl.touched)\">\r\n {{getErrorValidation(ArabicFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"showArabicCharsLimitMsg\">\r\n <span class=\"badge b-character-warning float-end\" [ngClass]=\"{'badge-light-warning': arabicCharsLimitMsgClass === 'warning', 'badge-light-danger' : arabicCharsLimitMsgClass === 'danger' }\">\r\n {{arabicMaxLimitWarningMsg}}\r\n </span>\r\n </div>\r\n <div class=\"control-desc\" *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='')||(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!='')\">\r\n {{(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!=\"\")?options.ArabicLabelDescription:options.LabelDescription}}\r\n </div>\r\n <!-- <div *ngIf=\"ArabicFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"group.valid\">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n",
1393
+ template: "<div class=\"b-control b-multilangual-textbox\">\r\n <div class=\"form-group validate is-invalid\" [formGroup]=\"group\">\r\n\r\n <div class=\"form-group row\" [formGroup]=\"MultiLanguagegroup\">\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\">\r\n <div class=\"row\" *ngIf=\"ShowEnglishTextBox\">\r\n <label class=\"b-label col-form-label col-sm-12\"\r\n [ngClass]=\"(options.ViewType==1)?'col-md-9':'col-md-3'\" [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue}}\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)&&IsShowAsteriskInEnglish)\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <div class=\"input-group align-items-center\">\r\n <div class=\"svg svg-icon-grey\" [ngClass]=\"(options.IconPositionEN==1)?'left-icon':'right-icon'\" *ngIf=\"options.Icon!=null\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <input class=\"form-control bnsights-control\"\r\n (focus)=\"onEnglishFocus(true)\" (focusout)=\"onEnglishFocus(false)\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"English\"\r\n [hidden]=\"options.IsHideEnglishFields\" maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n [class.is-invalid]=\"EnglishFormControl.invalid && EnglishFormControl.touched\"\r\n placeholder=\"{{options.EnglishPlaceholder}}\" (change)=\"trimControlValue('En')\"\r\n (keyup)=\"onTextChange()\"\r\n (keydown)=\"EnglishWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n autocomplete=\"{{options.AutoComplete}}\"\r\n id=\"{{options.Name}}.English\"\r\n #userinputEnglish>\r\n <div class=\"input-group-append\" [hidden]=\"options.IsHideEnglishFields\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(userinputEnglish)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"text-muted font-weight-500 word-count float-end\" *ngIf=\"options.MaxWordCount>0&&IsShowEnglishWordCount\">{{EnglishWordCount}}/{{options.MaxWordCount}}</div>\r\n <div class=\"text-danger Required-text\" *ngIf=\"(EnglishFormControl.invalid && EnglishFormControl.touched)\">\r\n {{getErrorValidation(EnglishFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"showEnglishCharsLimitMsg\">\r\n <span class=\"badge b-character-warning float-end\" [ngClass]=\"{'badge-light-warning': englishCharsLimitMsgClass === 'warning', 'badge-light-danger' : englishCharsLimitMsgClass === 'danger' }\">\r\n {{englishMaxLimitWarningMsg}}\r\n </span>\r\n </div>\r\n <div class=\"control-desc\" *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='') ||(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!='')\">\r\n {{(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!=\"\")?options.EnglishLabelDescription:options.LabelDescription}}\r\n </div>\r\n <!-- <div *ngIf=\"EnglishFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"group.valid\">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\">\r\n <div class=\"row\" *ngIf=\"ShowArabicTextBox\">\r\n <label class=\"b-label col-form-label col-sm-12\"\r\n [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\" [hidden]=\"options.IsHideArabicLabel\">\r\n {{(options.ArabicLabelValue!=null&&options.ArabicLabelValue!=\"\")?options.ArabicLabelValue:options.LabelValue}}\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&IsShowAsteriskInArabic\" class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n <div class=\" col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <div class=\"input-group align-items-center\">\r\n <div class=\"svg svg-icon-grey\" [ngClass]=\"(options.IconPositionEN==1)?'right-icon':'left-icon'\" *ngIf=\"options.Icon!=null\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <input class=\"form-control bnsights-control\" dir=\"rtl\"\r\n (focus)=\"onArabicFocus(true)\" (focusout)=\"onArabicFocus(false)\"\r\n [hidden]=\"options.IsHideArabicFields\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"Arabic\" maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n [class.is-invalid]=\"ArabicFormControl.invalid && ArabicFormControl.touched\"\r\n placeholder=\"{{options.ArabicPlaceholder}}\" (keyup)=\"onTextChange()\"\r\n (keydown)=\"ArabicWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n autocomplete=\"{{options.AutoComplete}}\"\r\n id=\"{{options.Name}}.Arabic\"\r\n (change)=\"trimControlValue('Ar')\" #userinputArabic>\r\n\r\n <div class=\"input-group-append\" [hidden]=\"options.IsHideArabicFields\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(userinputArabic)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"text-muted font-weight-500 float-end word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowArabicWordCount\">{{ArabicWordCount}}/{{options.MaxWordCount}}</div>\r\n <div class=\"text-danger Required-text\" *ngIf=\"(ArabicFormControl.invalid && ArabicFormControl.touched)\">\r\n {{getErrorValidation(ArabicFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"showArabicCharsLimitMsg\">\r\n <span class=\"badge b-character-warning float-end\" [ngClass]=\"{'badge-light-warning': arabicCharsLimitMsgClass === 'warning', 'badge-light-danger' : arabicCharsLimitMsgClass === 'danger' }\">\r\n {{arabicMaxLimitWarningMsg}}\r\n </span>\r\n </div>\r\n <div class=\"control-desc\" *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='')||(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!='')\">\r\n {{(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!=\"\")?options.ArabicLabelDescription:options.LabelDescription}}\r\n </div>\r\n <!-- <div *ngIf=\"ArabicFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"group.valid\">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n",
1382
1394
  styles: [".example-form{min-width:150px;max-width:500px;width:100%}.example-full-width{width:100%}\n"]
1383
1395
  },] }
1384
1396
  ];
@@ -1532,7 +1544,7 @@ class TextAreaComponent {
1532
1544
  //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0
1533
1545
  if (this.options.MaxLength && this.minCharsLimit >= 0) {
1534
1546
  this.currentCharsCount = this.TextAreaFormControl.value.length;
1535
- if (this.currentCharsCount >= this.minCharsLimit) {
1547
+ if (this.currentCharsCount > this.minCharsLimit) {
1536
1548
  this.showCharsLimitMsg = true;
1537
1549
  this.hasCharsLimitValidationError = true;
1538
1550
  if (this.currentCharsCount == this.options.MaxLength)
@@ -1763,7 +1775,7 @@ class MultiLingualTextAreaComponent {
1763
1775
  //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0
1764
1776
  if (this.options.MaxLength && this.minCharsLimit >= 0) {
1765
1777
  this.englishCurrentCharsCount = this.EnglishTextAreaFormControl.value.length;
1766
- if (this.englishCurrentCharsCount >= this.minCharsLimit) {
1778
+ if (this.englishCurrentCharsCount > this.minCharsLimit) {
1767
1779
  this.showEnglishCharsLimitMsg = true;
1768
1780
  this.hasEnglishCharsLimitValidationError = true;
1769
1781
  if (this.englishCurrentCharsCount == this.options.MaxLength)
@@ -1805,7 +1817,7 @@ class MultiLingualTextAreaComponent {
1805
1817
  //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0
1806
1818
  if (this.options.MaxLength && this.minCharsLimit >= 0) {
1807
1819
  this.arabicCurrentCharsCount = this.ArabicTextAreaFormControl.value.length;
1808
- if (this.arabicCurrentCharsCount >= this.minCharsLimit) {
1820
+ if (this.arabicCurrentCharsCount > this.minCharsLimit) {
1809
1821
  this.showArabicCharsLimitMsg = true;
1810
1822
  this.hasArabicCharsLimitValidationError = true;
1811
1823
  if (this.arabicCurrentCharsCount == this.options.MaxLength)
@@ -1880,6 +1892,8 @@ class MultiLingualTextAreaComponent {
1880
1892
  if (this.options.IsRequired == true) {
1881
1893
  this.EnglishValidationRules.push(Validators.required);
1882
1894
  this.ArabicValidationRules.push(Validators.required);
1895
+ this.IsShowAsteriskInArabic = true;
1896
+ this.IsShowAsteriskInEnglish = true;
1883
1897
  }
1884
1898
  break;
1885
1899
  case LanguageMode.Arabic_Language_only_is_visible:
@@ -1894,11 +1908,13 @@ class MultiLingualTextAreaComponent {
1894
1908
  if (this.CurrentLanguage == 'ar') {
1895
1909
  if (this.options.IsRequired == true) {
1896
1910
  this.ArabicValidationRules.push(Validators.required);
1911
+ this.IsShowAsteriskInArabic = true;
1897
1912
  }
1898
1913
  }
1899
1914
  if (this.CurrentLanguage == 'en') {
1900
1915
  if (this.options.IsRequired == true) {
1901
1916
  this.EnglishValidationRules.push(Validators.required);
1917
+ this.IsShowAsteriskInEnglish = true;
1902
1918
  }
1903
1919
  }
1904
1920
  break;
@@ -1907,6 +1923,7 @@ class MultiLingualTextAreaComponent {
1907
1923
  this.ShowEngishTextArea = true;
1908
1924
  if (this.options.IsRequired == true) {
1909
1925
  this.ArabicValidationRules.push(Validators.required);
1926
+ this.IsShowAsteriskInArabic = true;
1910
1927
  }
1911
1928
  break;
1912
1929
  case LanguageMode.Both_Languages_but_only_English_is_required:
@@ -1914,6 +1931,7 @@ class MultiLingualTextAreaComponent {
1914
1931
  this.ShowEngishTextArea = true;
1915
1932
  if (this.options.IsRequired == true) {
1916
1933
  this.EnglishValidationRules.push(Validators.required);
1934
+ this.IsShowAsteriskInEnglish = true;
1917
1935
  }
1918
1936
  break;
1919
1937
  case LanguageMode.Current_Language_only_is_visible_and_required:
@@ -1922,6 +1940,7 @@ class MultiLingualTextAreaComponent {
1922
1940
  this.ShowEngishTextArea = false;
1923
1941
  if (this.options.IsRequired == true) {
1924
1942
  this.ArabicValidationRules.push(Validators.required);
1943
+ this.IsShowAsteriskInArabic = true;
1925
1944
  }
1926
1945
  }
1927
1946
  if (this.CurrentLanguage == 'en') {
@@ -1929,6 +1948,7 @@ class MultiLingualTextAreaComponent {
1929
1948
  this.ShowEngishTextArea = true;
1930
1949
  if (this.options.IsRequired == true) {
1931
1950
  this.EnglishValidationRules.push(Validators.required);
1951
+ this.IsShowAsteriskInEnglish = true;
1932
1952
  }
1933
1953
  }
1934
1954
  break;
@@ -1965,7 +1985,7 @@ MultiLingualTextAreaComponent.controlContainerstatic = null;
1965
1985
  MultiLingualTextAreaComponent.decorators = [
1966
1986
  { type: Component, args: [{
1967
1987
  selector: 'BBSF-MultiLingualTextArea',
1968
- template: "<div class=\"b-control b-multilangual-textarea\">\r\n <div class=\"form-group validate is-invalid\" [formGroup]=\"group\">\r\n\r\n <div class=\"form-group row\" [formGroup]=\"MultiLanguageTextAreagroup\">\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\">\r\n <div class=\"row\" *ngIf=\"ShowEngishTextArea\">\r\n <label class=\"b-label col-form-label col-sm-12 \"\r\n [ngClass]=\"(options.ViewType==1)?'col-md-9':'col-md-3'\" [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue+\"in English\"}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <div class=\"input-group\">\r\n <textarea class=\"form-control bnsights-control\" rows=\"{{options.Rows}}\" cols=\"{{options.Cols}}\"\r\n (focus)=\"onEnglishFocus(true)\" (focusout)=\"onEnglishFocus(false)\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"English\" [hidden]=\"options.IsHideEnglishFields\"\r\n [class.is-invalid]=\"EnglishTextAreaFormControl.invalid && EnglishTextAreaFormControl.touched\"\r\n placeholder=\"{{options.EnglishPlaceholder}}\" (change)=\"trimControlValue('En')\"\r\n (keyup)=\"onTextChange()\"\r\n (keydown)=\"EnglishWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinputTextAreaEnglish>\r\n </textarea>\r\n <div class=\"input-group-append\" [hidden]=\"options.IsHideEnglishFields\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(userinputTextAreaEnglish)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n\r\n\r\n </div>\r\n <div class=\"text-muted font-weight-500 float-end word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowEnglishWordCount\">{{EnglishWordCount}}/{{options.MaxWordCount}}</div>\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(EnglishTextAreaFormControl.invalid && EnglishTextAreaFormControl.touched)\">\r\n {{getErrorValidation(EnglishTextAreaFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"showEnglishCharsLimitMsg\">\r\n <span class=\"badge b-character-warning float-end\" [ngClass]=\"{'badge-light-warning': englishCharsLimitMsgClass === 'warning', 'badge-light-danger' : englishCharsLimitMsgClass === 'danger' }\">\r\n {{englishMaxLimitWarningMsg}}\r\n </span>\r\n </div>\r\n <div class=\"control-desc\" *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='') ||(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!='')\">\r\n {{(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!=\"\")?options.EnglishLabelDescription:options.LabelDescription}}\r\n </div>\r\n\r\n <!-- <div *ngIf=\"EnglishTextAreaFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\">\r\n <div class=\"row\" *ngIf=\"ShowArabicTextArea\">\r\n\r\n <label class=\"b-label col-form-label col-sm-12 \"\r\n [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\" [hidden]=\"options.IsHideArabicLabel\">\r\n {{(options.ArabicLabelValue!=null&&options.ArabicLabelValue!=\"\")?options.ArabicLabelValue:options.LabelValue+\"in Arabic\"}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n <div class=\" col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <div class=\"input-group\">\r\n <textarea class=\"form-control bnsights-control\" dir=\"rtl\" rows=\"{{options.Rows}}\" cols=\"{{options.Cols}}\"\r\n (focus)=\"onArabicFocus(true)\" (focusout)=\"onArabicFocus(false)\"\r\n [hidden]=\"options.IsHideArabicFields\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"Arabic\" rows=\"{{options.Rows}}\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n [class.is-invalid]=\"ArabicTextAreaFormControl.invalid && ArabicTextAreaFormControl.touched\"\r\n placeholder=\"{{options.ArabicPlaceholder}}\" (change)=\"trimControlValue('Ar')\"\r\n (keyup)=\"onTextChange()\"\r\n (keydown)=\"ArabicWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinputTextAreaArabic>\r\n </textarea>\r\n <div class=\"input-group-append\" [hidden]=\"options.IsHideArabicFields\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(userinputTextAreaArabic)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"text-muted font-weight-500 float-end word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowArabicWordCount\">{{ArabicWordCount}}/{{options.MaxWordCount}}</div>\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(ArabicTextAreaFormControl.invalid && ArabicTextAreaFormControl.touched)\">\r\n {{getErrorValidation(ArabicTextAreaFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"showArabicCharsLimitMsg\">\r\n <span class=\"badge b-character-warning float-end\" [ngClass]=\"{'badge-light-warning': arabicCharsLimitMsgClass === 'warning', 'badge-light-danger' : arabicCharsLimitMsgClass === 'danger' }\">\r\n {{arabicMaxLimitWarningMsg}}\r\n </span>\r\n </div>\r\n <div class=\"control-desc\" *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='')||(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!='')\">\r\n {{(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!=\"\")?options.ArabicLabelDescription:options.LabelDescription}}\r\n </div>\r\n <!-- <div *ngIf=\"ArabicTextAreaFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
1988
+ template: "<div class=\"b-control b-multilangual-textarea\">\r\n <div class=\"form-group validate is-invalid\" [formGroup]=\"group\">\r\n\r\n <div class=\"form-group row\" [formGroup]=\"MultiLanguageTextAreagroup\">\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\">\r\n <div class=\"row\" *ngIf=\"ShowEngishTextArea\">\r\n <label class=\"b-label col-form-label col-sm-12 \"\r\n [ngClass]=\"(options.ViewType==1)?'col-md-9':'col-md-3'\" [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue+\"in English\"}}\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&IsShowAsteriskInEnglish\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <div class=\"input-group\">\r\n <textarea class=\"form-control bnsights-control\" rows=\"{{options.Rows}}\" cols=\"{{options.Cols}}\"\r\n (focus)=\"onEnglishFocus(true)\" (focusout)=\"onEnglishFocus(false)\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"English\" [hidden]=\"options.IsHideEnglishFields\"\r\n [class.is-invalid]=\"EnglishTextAreaFormControl.invalid && EnglishTextAreaFormControl.touched\"\r\n placeholder=\"{{options.EnglishPlaceholder}}\" (change)=\"trimControlValue('En')\"\r\n (keyup)=\"onTextChange()\"\r\n (keydown)=\"EnglishWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinputTextAreaEnglish>\r\n </textarea>\r\n <div class=\"input-group-append\" [hidden]=\"options.IsHideEnglishFields\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(userinputTextAreaEnglish)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n\r\n\r\n </div>\r\n <div class=\"text-muted font-weight-500 float-end word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowEnglishWordCount\">{{EnglishWordCount}}/{{options.MaxWordCount}}</div>\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(EnglishTextAreaFormControl.invalid && EnglishTextAreaFormControl.touched)\">\r\n {{getErrorValidation(EnglishTextAreaFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"showEnglishCharsLimitMsg\">\r\n <span class=\"badge b-character-warning float-end\" [ngClass]=\"{'badge-light-warning': englishCharsLimitMsgClass === 'warning', 'badge-light-danger' : englishCharsLimitMsgClass === 'danger' }\">\r\n {{englishMaxLimitWarningMsg}}\r\n </span>\r\n </div>\r\n <div class=\"control-desc\" *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='') ||(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!='')\">\r\n {{(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!=\"\")?options.EnglishLabelDescription:options.LabelDescription}}\r\n </div>\r\n\r\n <!-- <div *ngIf=\"EnglishTextAreaFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\">\r\n <div class=\"row\" *ngIf=\"ShowArabicTextArea\">\r\n\r\n <label class=\"b-label col-form-label col-sm-12 \"\r\n [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\" [hidden]=\"options.IsHideArabicLabel\">\r\n {{(options.ArabicLabelValue!=null&&options.ArabicLabelValue!=\"\")?options.ArabicLabelValue:options.LabelValue+\"in Arabic\"}}\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&IsShowAsteriskInArabic\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n <div class=\" col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <div class=\"input-group\">\r\n <textarea class=\"form-control bnsights-control\" dir=\"rtl\" rows=\"{{options.Rows}}\" cols=\"{{options.Cols}}\"\r\n (focus)=\"onArabicFocus(true)\" (focusout)=\"onArabicFocus(false)\"\r\n [hidden]=\"options.IsHideArabicFields\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"Arabic\" rows=\"{{options.Rows}}\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n [class.is-invalid]=\"ArabicTextAreaFormControl.invalid && ArabicTextAreaFormControl.touched\"\r\n placeholder=\"{{options.ArabicPlaceholder}}\" (change)=\"trimControlValue('Ar')\"\r\n (keyup)=\"onTextChange()\"\r\n (keydown)=\"ArabicWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinputTextAreaArabic>\r\n </textarea>\r\n <div class=\"input-group-append\" [hidden]=\"options.IsHideArabicFields\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(userinputTextAreaArabic)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"text-muted font-weight-500 float-end word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowArabicWordCount\">{{ArabicWordCount}}/{{options.MaxWordCount}}</div>\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(ArabicTextAreaFormControl.invalid && ArabicTextAreaFormControl.touched)\">\r\n {{getErrorValidation(ArabicTextAreaFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"showArabicCharsLimitMsg\">\r\n <span class=\"badge b-character-warning float-end\" [ngClass]=\"{'badge-light-warning': arabicCharsLimitMsgClass === 'warning', 'badge-light-danger' : arabicCharsLimitMsgClass === 'danger' }\">\r\n {{arabicMaxLimitWarningMsg}}\r\n </span>\r\n </div>\r\n <div class=\"control-desc\" *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='')||(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!='')\">\r\n {{(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!=\"\")?options.ArabicLabelDescription:options.LabelDescription}}\r\n </div>\r\n <!-- <div *ngIf=\"ArabicTextAreaFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
1969
1989
  styles: [".example-form{min-width:150px;max-width:500px;width:100%}.example-full-width{width:100%}\n"]
1970
1990
  },] }
1971
1991
  ];
@@ -2247,7 +2267,7 @@ DropdownListComponent.decorators = [
2247
2267
  { type: Component, args: [{
2248
2268
  // tslint:disable-next-line: component-selector
2249
2269
  selector: 'BBSF-DropdownList',
2250
- template: "<div class=\"b-control b-dropdown-list\">\r\n <div class=\"form-group row validate is-invalid\" [formGroup]=\"group\">\r\n <label class=\"b-label col-form-label col-sm-12 \" [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\"\r\n [hidden]=\"options.HideLabel\">\r\n {{options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger Required-text\"\r\n aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <ng-select *ngIf=\"options.DisableBootstrapSelect==false\" dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n [bindValue]=\"options.ItemTempletkey\" [bindLabel]=\"options.ItemTempletvalue\" [items]=\"options.DataSource\"\r\n [notFoundText]=\"'No data found.'\" [maxSelectedItems]=\"options.LimitSelection\"\r\n [searchable]=\"options.AllowSearchFilter\" [multiple]=\"!options.SingleSelection\" [readonly]=\"options.IsDisabled\"\r\n [clearable]=\"true\" placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\"\r\n [selectableGroup]=\"true\" [selectableGroupAsModel]=\"false\" formControlName=\"{{options.Name}}\"\r\n [(ngModel)]=\"options.SelectedItems\" (change)=\"onItemSelect()\" (clear)=\"Clear()\"\r\n [class.is-invalid]=\"DropdownListFormControl.invalid && DropdownListFormControl.touched\"\r\n [closeOnSelect]=\"options.SingleSelection ? true : false\">\r\n\r\n <ng-template *ngIf=\"options.ShowCheckbox\" ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <div class=\"ks-cboxtags\">\r\n <input id=\"item-{{index}}\" type=\"checkbox\" [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"item$.selected\"\r\n class=\" \" /> <label class=\"ng-option-label mb-0\" id={{item.key}}>{{item.value}}</label>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template *ngIf=\"!options.ShowCheckbox\" ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <label class=\"ng-option-label mb-0\" id={{item.key}}>{{item.value}}</label>\r\n </ng-template>\r\n\r\n </ng-select>\r\n\r\n <select *ngIf=\"options.DisableBootstrapSelect\" class=\"form-control bnsights-control\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\" (change)=\"onItemSelect()\" [(ngModel)]=\"options.SelectedItems\" [disabled]=\"options.IsDisabled\" formControlName=\"{{options.Name}}\">\r\n <option value=\"\" disabled>--{{UtilityService.getResourceValue(\"select\")}}--</option>\r\n <option *ngFor=\"let item of options.DataSource\" value=\"{{item.key}}\" [ngValue]=\"item.key\">\r\n {{item.value}}\r\n </option>\r\n </select>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(DropdownListFormControl.invalid && DropdownListFormControl.touched)\">\r\n {{getErrorValidation(DropdownListFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc\">{{options.LabelDescription}}</div>\r\n </div>\r\n\r\n <!-- <div *ngIf=\"DropdownListFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">\r\n {{resetError()}}</div>\r\n\r\n\r\n </div>\r\n </div>\r\n</div>\r\n",
2270
+ template: "<div class=\"b-control b-dropdown-list\">\r\n <div class=\"form-group row validate is-invalid\" [formGroup]=\"group\">\r\n <label class=\"b-label col-form-label col-sm-12 \" [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\"\r\n [hidden]=\"options.HideLabel\">\r\n {{options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger Required-text\"\r\n aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <ng-select *ngIf=\"options.DisableBootstrapSelect==false\" dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n [bindValue]=\"options.ItemTempletkey\" [bindLabel]=\"options.ItemTempletvalue\" [items]=\"options.DataSource\"\r\n [notFoundText]=\"options.NotFoundText\" [maxSelectedItems]=\"options.LimitSelection\"\r\n [searchable]=\"options.AllowSearchFilter\" [multiple]=\"!options.SingleSelection\" [readonly]=\"options.IsDisabled\"\r\n [clearable]=\"true\" placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\"\r\n [selectableGroup]=\"true\" [selectableGroupAsModel]=\"false\" formControlName=\"{{options.Name}}\"\r\n [(ngModel)]=\"options.SelectedItems\" (change)=\"onItemSelect()\" (clear)=\"Clear()\"\r\n [class.is-invalid]=\"DropdownListFormControl.invalid && DropdownListFormControl.touched\"\r\n [closeOnSelect]=\"options.SingleSelection ? true : false\">\r\n\r\n <ng-template *ngIf=\"options.ShowCheckbox\" ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <div class=\"ks-cboxtags\">\r\n <input id=\"item-{{index}}\" type=\"checkbox\" [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"item$.selected\"\r\n class=\" \" /> <label class=\"ng-option-label mb-0\" id={{item.key}}>{{item.value}}</label>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template *ngIf=\"!options.ShowCheckbox\" ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <label class=\"ng-option-label mb-0\" id={{item.key}}>{{item.value}}</label>\r\n </ng-template>\r\n\r\n </ng-select>\r\n\r\n <select *ngIf=\"options.DisableBootstrapSelect\" class=\"form-control bnsights-control\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\" (change)=\"onItemSelect()\" [(ngModel)]=\"options.SelectedItems\" [disabled]=\"options.IsDisabled\" formControlName=\"{{options.Name}}\">\r\n <option value=\"\" disabled>--{{UtilityService.getResourceValue(\"select\")}}--</option>\r\n <option *ngFor=\"let item of options.DataSource\" value=\"{{item.key}}\" [ngValue]=\"item.key\">\r\n {{item.value}}\r\n </option>\r\n </select>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(DropdownListFormControl.invalid && DropdownListFormControl.touched)\">\r\n {{getErrorValidation(DropdownListFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc\">{{options.LabelDescription}}</div>\r\n </div>\r\n\r\n <!-- <div *ngIf=\"DropdownListFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">\r\n {{resetError()}}</div>\r\n\r\n\r\n </div>\r\n </div>\r\n</div>\r\n",
2251
2271
  styles: [".cuppa-dropdown{background-color:#fff}.arrow-up,.arrow-down{border-left:none!important;border-right:none!important}.dropdown-list{padding-top:0!important}.c-token{background-color:#6495ed}.pure-checkbox .selected-item{background-color:#6495ed;color:#fff}\n"]
2252
2272
  },] }
2253
2273
  ];
@@ -2503,8 +2523,8 @@ class HtmlEditorComponent {
2503
2523
  this.editorConfig = {
2504
2524
  editable: !this.options.IsDisabled,
2505
2525
  spellcheck: true,
2506
- height: this.options.Height.toString(),
2507
- minHeight: this.options.Height.toString(),
2526
+ height: `${this.options.Height}rem`,
2527
+ minHeight: `${this.options.Height}rem`,
2508
2528
  maxHeight: 'auto',
2509
2529
  width: 'auto',
2510
2530
  minWidth: 'auto',
@@ -2990,6 +3010,8 @@ class MultiLingualHtmlEditorComponent {
2990
3010
  if (this.options.IsRequired == true) {
2991
3011
  this.EnglishValidationRules.push(Validators.required);
2992
3012
  this.ArabicValidationRules.push(Validators.required);
3013
+ this.IsShowAsteriskInArabic = true;
3014
+ this.IsShowAsteriskInEnglish = true;
2993
3015
  }
2994
3016
  break;
2995
3017
  case LanguageMode.Arabic_Language_only_is_visible:
@@ -3004,11 +3026,13 @@ class MultiLingualHtmlEditorComponent {
3004
3026
  if (this.CurrentLanguage == 'ar') {
3005
3027
  if (this.options.IsRequired == true) {
3006
3028
  this.ArabicValidationRules.push(Validators.required);
3029
+ this.IsShowAsteriskInArabic = true;
3007
3030
  }
3008
3031
  }
3009
3032
  if (this.CurrentLanguage == 'en') {
3010
3033
  if (this.options.IsRequired == true) {
3011
3034
  this.EnglishValidationRules.push(Validators.required);
3035
+ this.IsShowAsteriskInEnglish = true;
3012
3036
  }
3013
3037
  }
3014
3038
  break;
@@ -3017,6 +3041,7 @@ class MultiLingualHtmlEditorComponent {
3017
3041
  this.ShowEnglishHtmlEditor = true;
3018
3042
  if (this.options.IsRequired == true) {
3019
3043
  this.ArabicValidationRules.push(Validators.required);
3044
+ this.IsShowAsteriskInArabic = true;
3020
3045
  }
3021
3046
  break;
3022
3047
  case LanguageMode.Both_Languages_but_only_English_is_required:
@@ -3024,6 +3049,7 @@ class MultiLingualHtmlEditorComponent {
3024
3049
  this.ShowEnglishHtmlEditor = true;
3025
3050
  if (this.options.IsRequired == true) {
3026
3051
  this.EnglishValidationRules.push(Validators.required);
3052
+ this.IsShowAsteriskInEnglish = true;
3027
3053
  }
3028
3054
  break;
3029
3055
  case LanguageMode.Current_Language_only_is_visible_and_required:
@@ -3032,6 +3058,7 @@ class MultiLingualHtmlEditorComponent {
3032
3058
  this.ShowEnglishHtmlEditor = false;
3033
3059
  if (this.options.IsRequired == true) {
3034
3060
  this.ArabicValidationRules.push(Validators.required);
3061
+ this.IsShowAsteriskInArabic = true;
3035
3062
  }
3036
3063
  }
3037
3064
  if (this.CurrentLanguage == 'en') {
@@ -3039,6 +3066,7 @@ class MultiLingualHtmlEditorComponent {
3039
3066
  this.ShowEnglishHtmlEditor = true;
3040
3067
  if (this.options.IsRequired == true) {
3041
3068
  this.EnglishValidationRules.push(Validators.required);
3069
+ this.IsShowAsteriskInEnglish = true;
3042
3070
  }
3043
3071
  }
3044
3072
  break;
@@ -3055,7 +3083,7 @@ MultiLingualHtmlEditorComponent.controlContainerstatic = null;
3055
3083
  MultiLingualHtmlEditorComponent.decorators = [
3056
3084
  { type: Component, args: [{
3057
3085
  selector: 'BBSF-MultiLingualHtmlEditor',
3058
- template: "<div class=\"b-control b-multilangual-html-editor\">\r\n <div class=\"form-group validate is-invalid\" [formGroup]=\"group\">\r\n\r\n <div class=\"form-group row\" [formGroup]=\"MultilingualHtmlEditorgroup\">\r\n <div class=\"col-lg-6\">\r\n <div class=\"row\" *ngIf=\"ShowEnglishHtmlEditor\">\r\n <label class=\"b-label col-form-label col-sm-12 \" \r\n [ngClass]=\"(options.ViewType==1)?'col-md-9':'col-md-3'\"\r\n [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue+\"in English\"}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n \r\n <angular-editor class=\"form-control bnsights-control {{options.ExtraClasses_EN}} \" (change)=\"onTextChange('en')\" [class.is-invalid]=\"EnglishHtmlEditorFormControl.invalid && EnglishHtmlEditorFormControl.touched\"\r\n formControlName=\"English\" [config]=\"editorEnglishConfig\"></angular-editor>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(EnglishHtmlEditorFormControl.invalid && EnglishHtmlEditorFormControl.touched)\">\r\n {{getErrorValidation(EnglishHtmlEditorFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc text-dark\">\r\n {{(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!=\"\")?options.EnglishLabelDescription:options.LabelDescription}}\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-6\">\r\n <div class=\"row\" *ngIf=\"ShowArabicHtmlEditor\">\r\n\r\n <label class=\"b-label col-form-label col-sm-12 \"\r\n [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\"\r\n [hidden]=\"options.IsHideArabicLabel\">\r\n {{(options.ArabicLabelValue!=null&&options.ArabicLabelValue!=\"\")?options.ArabicLabelValue:options.LabelValue+\"in Arabic\"}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n <div class=\" col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n \r\n\r\n <angular-editor dir=\"rtl\" class=\"form-control bnsights-control {{options.ExtraClasses_AR}} \" (change)=\"onTextChange('ar')\" [class.is-invalid]=\"ArabicHtmlEditorFormControl.invalid && ArabicHtmlEditorFormControl.touched\"\r\n formControlName=\"Arabic\" [config]=\"editorArabicConfig\"></angular-editor>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(ArabicHtmlEditorFormControl.invalid && ArabicHtmlEditorFormControl.touched)\">\r\n {{getErrorValidation(ArabicHtmlEditorFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n \r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc text-dark\">\r\n {{(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!=\"\")?options.ArabicLabelDescription:options.LabelDescription}}\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n</div>\r\n",
3086
+ template: "<div class=\"b-control b-multilangual-html-editor\">\r\n <div class=\"form-group validate is-invalid\" [formGroup]=\"group\">\r\n\r\n <div class=\"form-group row\" [formGroup]=\"MultilingualHtmlEditorgroup\">\r\n <div class=\"col-lg-6\">\r\n <div class=\"row\" *ngIf=\"ShowEnglishHtmlEditor\">\r\n <label class=\"b-label col-form-label col-sm-12 \" \r\n [ngClass]=\"(options.ViewType==1)?'col-md-9':'col-md-3'\"\r\n [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue+\"in English\"}}\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&IsShowAsteriskInEnglish\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n \r\n <angular-editor class=\"form-control bnsights-control {{options.ExtraClasses_EN}} \" (change)=\"onTextChange('en')\" [class.is-invalid]=\"EnglishHtmlEditorFormControl.invalid && EnglishHtmlEditorFormControl.touched\"\r\n formControlName=\"English\" [config]=\"editorEnglishConfig\"></angular-editor>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(EnglishHtmlEditorFormControl.invalid && EnglishHtmlEditorFormControl.touched)\">\r\n {{getErrorValidation(EnglishHtmlEditorFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc text-dark\">\r\n {{(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!=\"\")?options.EnglishLabelDescription:options.LabelDescription}}\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-6\">\r\n <div class=\"row\" *ngIf=\"ShowArabicHtmlEditor\">\r\n\r\n <label class=\"b-label col-form-label col-sm-12 \"\r\n [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\"\r\n [hidden]=\"options.IsHideArabicLabel\">\r\n {{(options.ArabicLabelValue!=null&&options.ArabicLabelValue!=\"\")?options.ArabicLabelValue:options.LabelValue+\"in Arabic\"}}\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&IsShowAsteriskInArabic\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n <div class=\" col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n \r\n\r\n <angular-editor dir=\"rtl\" class=\"form-control bnsights-control {{options.ExtraClasses_AR}} \" (change)=\"onTextChange('ar')\" [class.is-invalid]=\"ArabicHtmlEditorFormControl.invalid && ArabicHtmlEditorFormControl.touched\"\r\n formControlName=\"Arabic\" [config]=\"editorArabicConfig\"></angular-editor>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(ArabicHtmlEditorFormControl.invalid && ArabicHtmlEditorFormControl.touched)\">\r\n {{getErrorValidation(ArabicHtmlEditorFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n \r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc text-dark\">\r\n {{(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!=\"\")?options.ArabicLabelDescription:options.LabelDescription}}\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n</div>\r\n",
3059
3087
  styles: [".example-form{min-width:150px;max-width:500px;width:100%}.example-full-width{width:100%}\n"]
3060
3088
  },] }
3061
3089
  ];
@@ -4038,6 +4066,9 @@ class TagsInputComponent {
4038
4066
  // this.group.addControl(this.options.Name, new FormControl(''));
4039
4067
  // this.TagInputControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
4040
4068
  this.TagsFormControl.setValue(this.options.Value);
4069
+ if (this.options.IsRequired) {
4070
+ this.validationRules.push(Validators.required);
4071
+ }
4041
4072
  if (this.options.CustomValidation.length > 0) {
4042
4073
  let Validations = this.options.CustomValidation;
4043
4074
  for (let index = 0; index < Validations.length; index++) {
@@ -4045,9 +4076,6 @@ class TagsInputComponent {
4045
4076
  this.validationRules.push(Validation.functionBody);
4046
4077
  }
4047
4078
  }
4048
- if (this.options.IsRequired) {
4049
- this.validationRules.push(Validators.required);
4050
- }
4051
4079
  this.TagsFormControl.setValidators(this.validationRules);
4052
4080
  this.TagsFormControl.setAsyncValidators(this.validationRulesasync);
4053
4081
  if (this.options.IsDisabled) {
@@ -4056,7 +4084,7 @@ class TagsInputComponent {
4056
4084
  if (this.options.Value != undefined && this.options.Value != []) {
4057
4085
  for (let index = 0; index < this.options.Value.length; index++) {
4058
4086
  const element = this.options.Value[index];
4059
- this.SelectedId.push(element.key);
4087
+ this.SelectedId.push(element.id);
4060
4088
  }
4061
4089
  this.tags = this.options.Value;
4062
4090
  this.TagsFormControl.setValue(this.options.Value);
@@ -4090,7 +4118,7 @@ class TagsInputComponent {
4090
4118
  this.controlUtility.CopyInputMessage(inputElement);
4091
4119
  }
4092
4120
  searchFunctionFactory(Text) {
4093
- let Url = `${this.options.ActionURL}?${this.options.QueryParamName}=${Text}&${this.options.SelectedItemsParamName}=${this.SelectedId}`;
4121
+ let Url = `${this.options.ActionURL}?${this.options.QueryParamName}=${encodeURIComponent(Text)}&${this.options.SelectedItemsParamName}=${this.SelectedId}`;
4094
4122
  if (this.options.ExtraFilters)
4095
4123
  Url = Url + `&${this.options.ExtraFilters}`;
4096
4124
  let requestOptionsModel = new RequestOptionsModel();
@@ -4100,7 +4128,7 @@ class TagsInputComponent {
4100
4128
  return Model;
4101
4129
  }
4102
4130
  AddTag(event, key) {
4103
- if (this.IsNoMatch == true && this.options.AllowNewSelection == false && (key.selected != null || key.selected != "")) {
4131
+ if (this.IsNoMatch == true && this.options.AllowNewSelection == false && key.selected) {
4104
4132
  this.TagsFormControl.setErrors({ "errorMassage": this.options.NoResultText });
4105
4133
  this.TagsFormControl.markAsTouched();
4106
4134
  this.TagsFormControl.invalid;
@@ -4112,28 +4140,39 @@ class TagsInputComponent {
4112
4140
  }
4113
4141
  else if (this.IsNoMatch == true && event == "Enter" && this.options.AllowNewSelection && key.selected) {
4114
4142
  if (!(this.tags.length >= this.options.MaxNumberTags)) {
4115
- this.tags.push({ key: "", value: key.selected });
4116
- key.selected = null;
4143
+ this.tags.push({ name: key.selected });
4144
+ this.group.get(this.options.Name).setValue(this.tags);
4145
+ this.group.get(this.options.Name).markAllAsTouched();
4146
+ this.group.updateValueAndValidity();
4147
+ if (this.group.get(this.options.Name).valid) {
4148
+ key.selected = null;
4149
+ return;
4150
+ }
4151
+ else
4152
+ this.tags.pop();
4117
4153
  }
4118
4154
  }
4119
4155
  }
4120
4156
  onTagsChanged(result) {
4121
4157
  //console.log(this.tags)
4122
4158
  if (result["change"] == "add") {
4123
- this.SelectedId.push(result.tag.key);
4159
+ this.SelectedId.push(result.tag.id);
4124
4160
  }
4125
4161
  if (result["change"] == "remove") {
4126
- this.SelectedId = this.SelectedId.filter((item) => item != result.tag.key);
4162
+ this.SelectedId = this.SelectedId.filter((item) => item != result.tag.id);
4127
4163
  if (this.SelectedId.length == 0 && this.options.IsRequired == true) {
4128
4164
  this.TagsFormControl.setErrors({ required: "" });
4129
4165
  this.TagsFormControl.markAsTouched();
4130
4166
  this.TagsFormControl.invalid;
4131
4167
  }
4132
4168
  }
4133
- let originalValue = this.TagsFormControl.value.map(function (a) { return a.key; });
4169
+ let originalValue = this.TagsFormControl.value.map(function (a) { return a.id; });
4134
4170
  if (this.options.PatchFunction && this.options.PatchPath && this.TagsFormControl.valid) {
4135
4171
  this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
4136
4172
  }
4173
+ this.group.get(this.options.Name).setValue(this.tags);
4174
+ this.TagsFormControl.updateValueAndValidity();
4175
+ this.group.updateValueAndValidity();
4137
4176
  this.OnChange.emit(originalValue);
4138
4177
  }
4139
4178
  onNoOptionsMatch(event) {
@@ -4932,7 +4971,7 @@ class TextboxComponent {
4932
4971
  //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0
4933
4972
  if (this.options.MaxLength && this.minCharsLimit >= 0) {
4934
4973
  this.currentCharsCount = this.TextBoxFormControl.value.length;
4935
- if (this.currentCharsCount >= this.minCharsLimit) {
4974
+ if (this.currentCharsCount > this.minCharsLimit) {
4936
4975
  this.showCharsLimitMsg = true;
4937
4976
  this.hasCharsLimitValidationError = true;
4938
4977
  if (this.currentCharsCount == this.options.MaxLength)
@@ -4986,6 +5025,9 @@ TextboxComponent.propDecorators = {
4986
5025
  };
4987
5026
 
4988
5027
  class MapAutocompleteDTO {
5028
+ constructor() {
5029
+ this.Text = null;
5030
+ }
4989
5031
  }
4990
5032
 
4991
5033
  class MapAutoCompleteComponent {
@@ -5258,6 +5300,13 @@ class MapAutoCompleteComponent {
5258
5300
  }
5259
5301
  }
5260
5302
  GermanAddressMapped(result) {
5303
+ if (result.type) {
5304
+ if (result.target.value == "") {
5305
+ this.MapAutoCompleteFormControl.setValue(result);
5306
+ this.group.controls[this.options.Name].setValue(result);
5307
+ }
5308
+ return;
5309
+ }
5261
5310
  this.MapAutoCompleteModel == new MapAutocompleteDTO();
5262
5311
  this.MapAutoCompleteModel.Text = result.displayAddress;
5263
5312
  this.MapAutoCompleteModel.PlaceID = result.placeID;
@@ -5273,7 +5322,7 @@ MapAutoCompleteComponent.controlContainerstatic = null;
5273
5322
  MapAutoCompleteComponent.decorators = [
5274
5323
  { type: Component, args: [{
5275
5324
  selector: 'BBSF-MapAutoComplete',
5276
- template: "<div class=\"b-control b-map-auto-complete\">\r\n <div class=\"form-group row validate is-invalid\" [formGroup]=\"group\">\r\n <label class=\"b-label col-form-label col-sm-12 \" [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\" [hidden]=\"options.HideLabel\">\r\n {{options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <input class=\"form-control bnsights-control {{options.ExtraClasses}} \"\r\n [value]=\"MapAutoCompleteModel.Text\"\r\n [address]=\"MapAutoCompleteModel.Text\"\r\n value=\"{{MapAutoCompleteModel.Text}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n [class.is-invalid]=\"MapAutoCompleteFormControl.invalid && MapAutoCompleteFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\"\r\n matGoogleMapsAutocomplete #search\r\n (onAutocompleteSelected)=\"AutocompleteSelected($event)\"\r\n (onLocationSelected)=\"LocationSelected($event)\"\r\n (onGermanAddressMapped)=\"GermanAddressMapped($event)\"/>\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(MapAutoCompleteFormControl.invalid && MapAutoCompleteFormControl.touched)\">\r\n {{getErrorValidation(MapAutoCompleteFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc text-dark\">{{options.LabelDescription}}</div>\r\n </div>\r\n\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n",
5325
+ template: "<div class=\"b-control b-map-auto-complete\">\r\n <div class=\"form-group row validate is-invalid\" [formGroup]=\"group\">\r\n <label class=\"b-label col-form-label col-sm-12 \" [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\"\r\n [hidden]=\"options.HideLabel\">\r\n {{options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger Required-text\"\r\n aria-required=\"true\">*</span>\r\n </label>\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <input class=\"form-control bnsights-control {{options.ExtraClasses}} \" [value]=\"MapAutoCompleteModel.Text\"\r\n [address]=\"MapAutoCompleteModel.Text\" value=\"{{MapAutoCompleteModel.Text}}\" aria-describedby=\"email-error\"\r\n aria-invalid=\"true\"\r\n [class.is-invalid]=\"MapAutoCompleteFormControl.invalid && MapAutoCompleteFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" (keyup)=\"GermanAddressMapped($event)\"\r\n matGoogleMapsAutocomplete #search (onAutocompleteSelected)=\"AutocompleteSelected($event)\"\r\n (onLocationSelected)=\"LocationSelected($event)\" (onGermanAddressMapped)=\"GermanAddressMapped($event)\" />\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(MapAutoCompleteFormControl.invalid && MapAutoCompleteFormControl.touched)\">\r\n {{getErrorValidation(MapAutoCompleteFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc text-dark\">{{options.LabelDescription}}</div>\r\n </div>\r\n\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">\r\n {{resetError()}}</div>\r\n\r\n </div>\r\n </div>\r\n</div>",
5277
5326
  styles: [".example-form{min-width:150px;max-width:500px;width:100%}.example-full-width{width:100%}.flip_V{transform:scaleY(-1)}\n"]
5278
5327
  },] }
5279
5328
  ];
@@ -5635,12 +5684,11 @@ class ConfirmationModalComponent {
5635
5684
  }
5636
5685
  //Modal confirmation submit function
5637
5686
  submit() {
5638
- console.log("options in submit function");
5639
- console.log(this.options);
5640
5687
  let submitModel = this.options.ServiceSubmitModel;
5641
5688
  let submittedService = this.options.ServiceSubmitFunction.apply(null, submitModel);
5642
5689
  submittedService.subscribe((result) => {
5643
- this.modalService.dismissAll();
5690
+ if (!this.options.DisableModalDismiss)
5691
+ this.modalService.dismissAll();
5644
5692
  if (!this.options.DisableSuccessNotification) {
5645
5693
  if (!this.options.SuccessNotificationMessage)
5646
5694
  this.options.SuccessNotificationMessage = this.utilityService.getResourceValue("DeletedSuccessfully");
@@ -5911,6 +5959,7 @@ class DropdownOptions extends ControlOptionsBase {
5911
5959
  /** Set value for item in DropdownList */
5912
5960
  this.ItemTempletvalue = "value";
5913
5961
  this.ForceDirection = ForceDirection.English;
5962
+ this.NotFoundText = "";
5914
5963
  }
5915
5964
  }
5916
5965
 
@@ -5930,7 +5979,7 @@ class HtmlEditorOptions extends ControlOptionsBase {
5930
5979
  /** to set Direction of HtmlEditor if HtmlEditor is Arabic or English */
5931
5980
  this.ForceDirection = ForceDirection.English;
5932
5981
  /** Set Height For */
5933
- this.Height = 150;
5982
+ this.Height = 5;
5934
5983
  }
5935
5984
  }
5936
5985
 
@@ -7701,6 +7750,8 @@ class ConfirmationModalOptions {
7701
7750
  this.DisableSuccessNotification = false;
7702
7751
  //If ="true" disable notification after submission error
7703
7752
  this.DisableErrorNotification = false;
7753
+ //If ="true" disable prevent modal from dismiss automatically
7754
+ this.DisableModalDismiss = false;
7704
7755
  }
7705
7756
  }
7706
7757