@bnsights/bbsf-controls 1.0.58 → 1.0.60

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.
@@ -1657,13 +1657,16 @@
1657
1657
  break;
1658
1658
  case exports.LanguageMode.Arabic_Language_only_is_visible:
1659
1659
  this.ShowArabicTextBox = true;
1660
+ this.options.MultiControlPlacementType = exports.ControlLayout.Vertical;
1660
1661
  break;
1661
1662
  case exports.LanguageMode.English_Language_only_is_visible:
1662
1663
  this.ShowEnglishTextBox = true;
1664
+ this.options.MultiControlPlacementType = exports.ControlLayout.Vertical;
1663
1665
  break;
1664
1666
  case exports.LanguageMode.Both_Languages_are_visible_but_only_current_language_is_required:
1665
1667
  this.ShowArabicTextBox = true;
1666
1668
  this.ShowEnglishTextBox = true;
1669
+ this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType;
1667
1670
  if (this.CurrentLanguage == 'ar') {
1668
1671
  if (this.options.IsRequired == true) {
1669
1672
  this.ArabicValidationRules.push(forms.Validators.required);
@@ -1680,6 +1683,7 @@
1680
1683
  case exports.LanguageMode.Both_Languages_but_only_Arabic_is_required:
1681
1684
  this.ShowArabicTextBox = true;
1682
1685
  this.ShowEnglishTextBox = true;
1686
+ this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType;
1683
1687
  if (this.options.IsRequired == true) {
1684
1688
  this.ArabicValidationRules.push(forms.Validators.required);
1685
1689
  this.IsShowAsteriskInArabic = true;
@@ -1688,12 +1692,14 @@
1688
1692
  case exports.LanguageMode.Both_Languages_but_only_English_is_required:
1689
1693
  this.ShowArabicTextBox = true;
1690
1694
  this.ShowEnglishTextBox = true;
1695
+ this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType;
1691
1696
  if (this.options.IsRequired == true) {
1692
1697
  this.EnglishValidationRules.push(forms.Validators.required);
1693
1698
  this.IsShowAsteriskInEnglish = true;
1694
1699
  }
1695
1700
  break;
1696
1701
  case exports.LanguageMode.Current_Language_only_is_visible_and_required:
1702
+ this.options.MultiControlPlacementType = exports.ControlLayout.Vertical;
1697
1703
  if (this.CurrentLanguage == 'ar') {
1698
1704
  this.ShowArabicTextBox = true;
1699
1705
  this.ShowEnglishTextBox = false;
@@ -2274,13 +2280,16 @@
2274
2280
  break;
2275
2281
  case exports.LanguageMode.Arabic_Language_only_is_visible:
2276
2282
  this.ShowArabicTextArea = true;
2283
+ this.options.MultiControlPlacementType = exports.ControlLayout.Vertical;
2277
2284
  break;
2278
2285
  case exports.LanguageMode.English_Language_only_is_visible:
2279
2286
  this.ShowEngishTextArea = true;
2287
+ this.options.MultiControlPlacementType = exports.ControlLayout.Vertical;
2280
2288
  break;
2281
2289
  case exports.LanguageMode.Both_Languages_are_visible_but_only_current_language_is_required:
2282
2290
  this.ShowArabicTextArea = true;
2283
2291
  this.ShowEngishTextArea = true;
2292
+ this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType;
2284
2293
  if (this.CurrentLanguage == 'ar') {
2285
2294
  if (this.options.IsRequired == true) {
2286
2295
  this.ArabicValidationRules.push(forms.Validators.required);
@@ -2297,6 +2306,7 @@
2297
2306
  case exports.LanguageMode.Both_Languages_but_only_Arabic_is_required:
2298
2307
  this.ShowArabicTextArea = true;
2299
2308
  this.ShowEngishTextArea = true;
2309
+ this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType;
2300
2310
  if (this.options.IsRequired == true) {
2301
2311
  this.ArabicValidationRules.push(forms.Validators.required);
2302
2312
  this.IsShowAsteriskInArabic = true;
@@ -2305,12 +2315,14 @@
2305
2315
  case exports.LanguageMode.Both_Languages_but_only_English_is_required:
2306
2316
  this.ShowArabicTextArea = true;
2307
2317
  this.ShowEngishTextArea = true;
2318
+ this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType;
2308
2319
  if (this.options.IsRequired == true) {
2309
2320
  this.EnglishValidationRules.push(forms.Validators.required);
2310
2321
  this.IsShowAsteriskInEnglish = true;
2311
2322
  }
2312
2323
  break;
2313
2324
  case exports.LanguageMode.Current_Language_only_is_visible_and_required:
2325
+ this.options.MultiControlPlacementType = exports.ControlLayout.Vertical;
2314
2326
  if (this.CurrentLanguage == 'ar') {
2315
2327
  this.ShowArabicTextArea = true;
2316
2328
  this.ShowEngishTextArea = false;
@@ -5497,7 +5509,7 @@
5497
5509
  TextboxComponent.decorators = [
5498
5510
  { type: i0.Component, args: [{
5499
5511
  selector: 'BBSF-TextBox',
5500
- template: "<div class=\"b-control b-textbox\">\r\n <div class=\"form-group row validate is-invalid\" [formGroup]=\"group\" [ngClass]=\"(options.NoMargin==true)?'':'NoMargin'\">\r\n <label class=\"b-label col-form-label col-sm-12 \" [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\" *ngIf=\"!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)?'': ((options.HideLabel)?'col-md-12':'col-md-9')\">\r\n <div class=\"input-group align-items-center\" *ngIf=\"MaskPattern!=null&&MaskPattern!=''\">\r\n <div class=\"svg svg-icon-grey\" [ngClass]=\"(options.IconPosition==1)?'left-icon':'right-icon'\" *ngIf=\"options.Icon!=null\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <input [mask]=\"MaskPattern\" placeHolderCharacter=\" \" [showMaskTyped]=\"true\" [validation]=\"true\"\r\n class=\"form-control bnsights-control {{options.ExtraClasses}}\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"{{options.Name}}\"\r\n type=\"{{getInputType(options.Type)}}\"\r\n [class.is-invalid]=\"TextBoxFormControl.invalid && TextBoxFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" autocomplete=\"{{options.AutoComplete}}\"\r\n (change)=\"trimControlValue()\" (keyup)=\"onTextChange()\"\r\n (keydown)=\"WordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinput>\r\n <div class=\"input-group-append\">\r\n <span class=\"input-group-text\" *ngIf=\"options.EnableCopyToClipboard\" (click)=\"copyInputMessage(userinput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n <div class=\"text-muted font-weight-500 word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowWordCount\">{{WordCount}}/{{options.MaxWordCount}} Words</div>\r\n\r\n </div>\r\n\r\n <div class=\"input-group align-items-center\" *ngIf=\"MaskPattern==null||MaskPattern==''\">\r\n <div class=\"svg svg-icon-grey\" [ngClass]=\"(options.IconPosition==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 {{options.ExtraClasses}} \"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n (focus)=\"onFocus(true)\" (focusout)=\"onFocus(false)\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n aria-describedby=\"email-error\"\r\n aria-invalid=\"true\" formControlName=\"{{options.Name}}\" type=\"{{getInputType(options.Type)}}\"\r\n [class.is-invalid]=\"TextBoxFormControl.invalid && TextBoxFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" autocomplete=\"{{options.AutoComplete}}\"\r\n (change)=\"trimControlValue()\" (keyup)=\"onTextChange()\"\r\n (keydown)=\"WordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinput>\r\n <div class=\"input-group-append\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(userinput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n <div class=\"text-muted font-weight-500 word-count float-end\" *ngIf=\"options.MaxWordCount>0&&IsShowWordCount\">{{WordCount}}/{{options.MaxWordCount}} Words</div>\r\n </div>\r\n <div class=\"text-danger Required-text\" dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n *ngIf=\"(TextBoxFormControl.invalid && TextBoxFormControl.touched)\">\r\n {{getErrorValidation(TextBoxFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"showCharsLimitMsg\">\r\n <span class=\"badge b-character-warning float-end\" [ngClass]=\"{'badge-light-warning': charsLimitMsgClass === 'warning', 'badge-light-danger' : charsLimitMsgClass === 'danger' }\">\r\n {{maxLimitWarningMsg}}\r\n </span>\r\n </div>\r\n <div class=\"control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</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",
5512
+ template: "<div class=\"b-control b-textbox\">\r\n <div class=\"form-group row validate is-invalid\" [formGroup]=\"group\" [ngClass]=\"(options.NoMargin==true)?'':'NoMargin'\">\r\n <label class=\"b-label col-form-label col-sm-12 \" [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\" *ngIf=\"!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)?'': ((options.HideLabel)?'col-md-12':'col-md-9')\">\r\n <div class=\"input-group align-items-center\" *ngIf=\"MaskPattern!=null&&MaskPattern!=''\">\r\n <div class=\"svg svg-icon-grey\" [ngClass]=\"(options.IconPosition==1)?'left-icon':'right-icon'\" *ngIf=\"options.Icon!=null\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <input [mask]=\"MaskPattern\" placeHolderCharacter=\" \" [showMaskTyped]=\"true\" [validation]=\"true\"\r\n class=\"form-control bnsights-control {{options.ExtraClasses}}\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"{{options.Name}}\"\r\n type=\"{{getInputType(options.Type)}}\"\r\n [class.is-invalid]=\"TextBoxFormControl.invalid && TextBoxFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" autocomplete=\"{{options.AutoComplete}}\"\r\n (change)=\"trimControlValue()\" (keyup)=\"onTextChange()\" [readonly]=\"options.IsReadonly\"\r\n (keydown)=\"WordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinput>\r\n <div class=\"input-group-append\">\r\n <span class=\"input-group-text\" *ngIf=\"options.EnableCopyToClipboard\" (click)=\"copyInputMessage(userinput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n <div class=\"text-muted font-weight-500 word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowWordCount\">{{WordCount}}/{{options.MaxWordCount}} Words</div>\r\n\r\n </div>\r\n\r\n <div class=\"input-group align-items-center\" *ngIf=\"MaskPattern==null||MaskPattern==''\">\r\n <div class=\"svg svg-icon-grey\" [ngClass]=\"(options.IconPosition==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 {{options.ExtraClasses}} \"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n (focus)=\"onFocus(true)\" (focusout)=\"onFocus(false)\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n aria-describedby=\"email-error\"\r\n aria-invalid=\"true\" formControlName=\"{{options.Name}}\" type=\"{{getInputType(options.Type)}}\"\r\n [class.is-invalid]=\"TextBoxFormControl.invalid && TextBoxFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" autocomplete=\"{{options.AutoComplete}}\"\r\n (change)=\"trimControlValue()\" (keyup)=\"onTextChange()\"\r\n (keydown)=\"WordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\" [readonly]=\"options.IsReadonly\"\r\n #userinput>\r\n <div class=\"input-group-append\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(userinput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n <div class=\"text-muted font-weight-500 word-count float-end\" *ngIf=\"options.MaxWordCount>0&&IsShowWordCount\">{{WordCount}}/{{options.MaxWordCount}} Words</div>\r\n </div>\r\n <div class=\"text-danger Required-text\" dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n *ngIf=\"(TextBoxFormControl.invalid && TextBoxFormControl.touched)\">\r\n {{getErrorValidation(TextBoxFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"showCharsLimitMsg\">\r\n <span class=\"badge b-character-warning float-end\" [ngClass]=\"{'badge-light-warning': charsLimitMsgClass === 'warning', 'badge-light-danger' : charsLimitMsgClass === 'danger' }\">\r\n {{maxLimitWarningMsg}}\r\n </span>\r\n </div>\r\n <div class=\"control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</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",
5501
5513
  styles: [".example-form{min-width:150px;max-width:500px;width:100%}.example-full-width{width:100%}.flip_V{transform:scaleY(-1)}\n"]
5502
5514
  },] }
5503
5515
  ];
@@ -6454,6 +6466,8 @@
6454
6466
  this.ViewType = null;
6455
6467
  /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage */
6456
6468
  this.CustomValidation = [];
6469
+ /** Sets an attribute readonly */
6470
+ this.IsReadonly = false;
6457
6471
  }
6458
6472
  return ControlOptionsBase;
6459
6473
  }());
@@ -6694,6 +6708,7 @@
6694
6708
  if (_this.RepeaterField.ControlOptions.minLength)
6695
6709
  Text.MinLength = _this.RepeaterField.ControlOptions.minLength;
6696
6710
  Text.Value = _this.value;
6711
+ Text.IsReadonly = _this.RepeaterField.ControlOptions.IsReadonly;
6697
6712
  _this.renderComponentService.renderDynamicComponent(_this.Item, TextboxComponent, _this.group, Text);
6698
6713
  break;
6699
6714
  case exports.DataType.Name:
@@ -6741,6 +6756,7 @@
6741
6756
  rangeNumber.From = _this.RepeaterField.ControlOptions.minLength;
6742
6757
  Number.NumberRange = rangeNumber;
6743
6758
  Number.Value = _this.value;
6759
+ Number.IsReadonly = _this.RepeaterField.ControlOptions.IsReadonly;
6744
6760
  _this.renderComponentService.renderDynamicComponent(_this.Item, TextboxComponent, _this.group, Number);
6745
6761
  break;
6746
6762
  ///DateTime
@@ -7494,7 +7510,7 @@
7494
7510
  RepeaterTableComponent.decorators = [
7495
7511
  { type: i0.Component, args: [{
7496
7512
  selector: 'BBSF-repeater-table',
7497
- template: "<div class=\"b-control b-repeater-table\">\r\n <table class=\"{{options.RepeaterTableExtraClasses}}\">\r\n <thead>\r\n <tr class=\"{{options.RepeaterTableRowExtraClasses}}\">\r\n <th *ngFor=\"let item of options.RepeaterStructure\" class=\"min-w-150px\">{{item.HeaderTitle}}</th>\r\n <th>{{utilityService.getResourceValue(options.ActionLabelKey)}}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of items ; index as i\">\r\n <td *ngFor=\"let RepeaterField of options.RepeaterStructure ; index as r\">\r\n <repeater-field-builder [RepeaterField]=\"RepeaterField\" [itemNumber]=\"i\"\r\n [itemsValue]=\"originalItems\" [controlNumber]=\"r\" [group]=\"repeaterGroup\">\r\n </repeater-field-builder>\r\n </td>\r\n <td class=\"d-flex align-items-center\">\r\n <button class=\"{{options.DeleteButtonExtraClasses}}\" type=\"button\" (click)=\"deleteItem(i)\"\r\n [disabled]=\"(items.length ==options.MinRequiredItems&&options.IsRequired)\">\r\n <span [innerHTML]=\"options.DeleteButtonText\"></span></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n <!-- ||(originalItems.length-1>=i -->\r\n <tfoot>\r\n <tr>\r\n <td colspan=\"4\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12 d-grid gap-2\"> \r\n <button class=\"{{options.AddButtonExtraClasses}}\" type=\"button\" (click)=\"addItem()\"><span\r\n [innerHTML]=\"options.AddButtonText\"></span></button>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </tfoot>\r\n </table>\r\n</div>"
7513
+ template: "<div class=\"b-control b-repeater-table\">\r\n <table class=\"{{options.RepeaterTableExtraClasses}}\">\r\n <thead>\r\n <tr class=\"{{options.RepeaterTableRowExtraClasses}}\">\r\n <th *ngFor=\"let item of options.RepeaterStructure\" [hidden]=\"item.IsHiddenInput\" class=\"min-w-150px\">{{item.HeaderTitle}}</th>\r\n <th *ngIf=\"!options.DisableDeleteButton\">{{utilityService.getResourceValue(options.ActionLabelKey)}}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of items ; index as i\">\r\n <td *ngFor=\"let RepeaterField of options.RepeaterStructure ; index as r\" [hidden]=\"RepeaterField.IsHiddenInput\">\r\n <repeater-field-builder [RepeaterField]=\"RepeaterField\" [itemNumber]=\"i\"\r\n [itemsValue]=\"originalItems\" [controlNumber]=\"r\" [group]=\"repeaterGroup\">\r\n </repeater-field-builder>\r\n </td>\r\n <td class=\"d-flex align-items-center\" *ngIf=\"!options.DisableDeleteButton\">\r\n <button class=\"{{options.DeleteButtonExtraClasses}}\" type=\"button\" (click)=\"deleteItem(i)\"\r\n [disabled]=\"(items.length ==options.MinRequiredItems&&options.IsRequired)\">\r\n <span [innerHTML]=\"options.DeleteButtonText\"></span></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n <!-- ||(originalItems.length-1>=i -->\r\n <tfoot *ngIf=\"!options.DisableAddButton\">\r\n <tr>\r\n <td colspan=\"4\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12 d-grid gap-2\"> \r\n <button class=\"{{options.AddButtonExtraClasses}}\" type=\"button\" (click)=\"addItem()\"><span\r\n [innerHTML]=\"options.AddButtonText\"></span></button>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </tfoot>\r\n </table>\r\n</div>\r\n"
7498
7514
  },] }
7499
7515
  ];
7500
7516
  RepeaterTableComponent.ctorParameters = function () { return [
@@ -8264,6 +8280,8 @@
8264
8280
  this.DeleteButtonText = "Delete";
8265
8281
  this.RepeaterValue = [];
8266
8282
  this.RepeaterStructure = [];
8283
+ this.DisableAddButton = false;
8284
+ this.DisableDeleteButton = false;
8267
8285
  }
8268
8286
  return RepeaterOptions;
8269
8287
  }());