@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.
- package/README.md +11 -0
- package/bnsights-bbsf-controls-1.0.60.tgz +0 -0
- package/bnsights-bbsf-controls.metadata.json +1 -1
- package/bundles/bnsights-bbsf-controls.umd.js +20 -2
- package/bundles/bnsights-bbsf-controls.umd.js.map +1 -1
- package/esm2015/lib/Shared/Models/ControlOptionsBase.js +3 -1
- package/esm2015/lib/Shared/Models/RepeaterField.js +1 -1
- package/esm2015/lib/Shared/Models/RepeaterOptions.js +3 -1
- package/esm2015/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.js +8 -1
- package/esm2015/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.js +8 -1
- package/esm2015/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.js +3 -1
- package/esm2015/lib/controls/Repeater/repeater-table/repeater-table.component.js +2 -2
- package/esm2015/lib/controls/TextBox/TextBox.component.js +2 -2
- package/fesm2015/bnsights-bbsf-controls.js +20 -2
- package/fesm2015/bnsights-bbsf-controls.js.map +1 -1
- package/lib/Shared/Models/ControlOptionsBase.d.ts +2 -0
- package/lib/Shared/Models/RepeaterField.d.ts +1 -0
- package/lib/Shared/Models/RepeaterOptions.d.ts +2 -0
- package/package.json +1 -1
- package/bnsights-bbsf-controls-1.0.58.tgz +0 -0
|
@@ -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
|
|
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
|
}());
|