@bnsights/bbsf-controls 1.0.26 → 1.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/README.md +7 -18
  2. package/bnsights-bbsf-controls-1.0.29.tgz +0 -0
  3. package/bnsights-bbsf-controls.metadata.json +1 -1
  4. package/bundles/bnsights-bbsf-controls.umd.js +535 -372
  5. package/bundles/bnsights-bbsf-controls.umd.js.map +1 -1
  6. package/esm2015/lib/Shared/Models/RepeaterField.js +1 -1
  7. package/esm2015/lib/Shared/Models/RepeaterOptions.js +2 -1
  8. package/esm2015/lib/Shared/services/validationErrorMassage.service.js +12 -12
  9. package/esm2015/lib/controls/ConfirmationModal/ConfirmationModal.component.js +2 -2
  10. package/esm2015/lib/controls/DateTimePicker/DateTimePicker.component.js +8 -3
  11. package/esm2015/lib/controls/ImageUpload/ImageUpload.component.js +7 -5
  12. package/esm2015/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.js +3 -3
  13. package/esm2015/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.js +3 -3
  14. package/esm2015/lib/controls/Paging/Paging.component.js +2 -2
  15. package/esm2015/lib/controls/Repeater/repeater/repeater.component.js +15 -9
  16. package/esm2015/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.js +372 -336
  17. package/esm2015/lib/controls/Repeater/repeater-table/repeater-table.component.js +105 -0
  18. package/esm2015/lib/controls/TextArea/TextArea.component.js +2 -2
  19. package/esm2015/lib/controls/TextBox/TextBox.component.js +2 -2
  20. package/esm2015/lib/controls/bbsf-controls.module.js +4 -1
  21. package/esm2015/public-api.js +2 -1
  22. package/fesm2015/bnsights-bbsf-controls.js +523 -370
  23. package/fesm2015/bnsights-bbsf-controls.js.map +1 -1
  24. package/lib/Shared/Models/RepeaterField.d.ts +1 -0
  25. package/lib/Shared/Models/RepeaterOptions.d.ts +3 -0
  26. package/lib/controls/DateTimePicker/DateTimePicker.component.d.ts +3 -1
  27. package/lib/controls/ImageUpload/ImageUpload.component.d.ts +1 -1
  28. package/lib/controls/Repeater/repeater/repeater.component.d.ts +2 -1
  29. package/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.d.ts +3 -0
  30. package/lib/controls/Repeater/repeater-table/repeater-table.component.d.ts +16 -0
  31. package/package.json +2 -2
  32. package/public-api.d.ts +1 -0
  33. package/src/lib/assets/Style.css +0 -9
  34. package/bnsights-bbsf-controls-1.0.26.tgz +0 -0
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@fullcalendar/angular'), require('@fullcalendar/daygrid'), require('@fullcalendar/timegrid'), require('@fullcalendar/list'), require('@fullcalendar/interaction'), require('@angular/core'), require('ng-block-ui'), require('@angular/forms'), require('@angular/http'), require('@angular/router'), require('ngx-toastr'), require('ngx-permissions'), require('@angular/cdk/overlay'), require('@ngrx/store-devtools'), require('@angular/common'), require('ngx-intl-tel-input'), require('@bnsights/bbsf-utilities'), require('ngx-bootstrap/datepicker'), require('rxjs'), require('ng2-file-upload'), require('class-transformer'), require('ng-pick-datetime'), require('ng-multiselect-dropdown'), require('angular2-multiselect-dropdown'), require('ngx-summernote'), require('ngx-mask'), require('@syncfusion/ej2-angular-popups'), require('ngx-dropzone'), require('angular-cropperjs'), require('ngx-image-cropper'), require('@ng-bootstrap/ng-bootstrap'), require('@ngx-translate/core'), require('@angular/common/http'), require('ngx-typeahead'), require('rxjs/operators'), require('ngx-tags-input'), require('@ng-select/ng-select'), require('ngx-infinite-scroll'), require('@agm/core'), require('@angular-material-extensions/google-maps-autocomplete'), require('@fullcalendar/core/locales/en-gb'), require('@fullcalendar/core/locales/ar'), require('ngx-bootstrap/typeahead'), require('@angular/material/slide-toggle'), require('@kolkov/angular-editor'), require('angular-ng-autocomplete'), require('ng-inline-svg'), require('sweetalert2'), require('@sweetalert2/ngx-sweetalert2')) :
3
- typeof define === 'function' && define.amd ? define('@bnsights/bbsf-controls', ['exports', '@fullcalendar/angular', '@fullcalendar/daygrid', '@fullcalendar/timegrid', '@fullcalendar/list', '@fullcalendar/interaction', '@angular/core', 'ng-block-ui', '@angular/forms', '@angular/http', '@angular/router', 'ngx-toastr', 'ngx-permissions', '@angular/cdk/overlay', '@ngrx/store-devtools', '@angular/common', 'ngx-intl-tel-input', '@bnsights/bbsf-utilities', 'ngx-bootstrap/datepicker', 'rxjs', 'ng2-file-upload', 'class-transformer', 'ng-pick-datetime', 'ng-multiselect-dropdown', 'angular2-multiselect-dropdown', 'ngx-summernote', 'ngx-mask', '@syncfusion/ej2-angular-popups', 'ngx-dropzone', 'angular-cropperjs', 'ngx-image-cropper', '@ng-bootstrap/ng-bootstrap', '@ngx-translate/core', '@angular/common/http', 'ngx-typeahead', 'rxjs/operators', 'ngx-tags-input', '@ng-select/ng-select', 'ngx-infinite-scroll', '@agm/core', '@angular-material-extensions/google-maps-autocomplete', '@fullcalendar/core/locales/en-gb', '@fullcalendar/core/locales/ar', 'ngx-bootstrap/typeahead', '@angular/material/slide-toggle', '@kolkov/angular-editor', 'angular-ng-autocomplete', 'ng-inline-svg', 'sweetalert2', '@sweetalert2/ngx-sweetalert2'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.bnsights = global.bnsights || {}, global.bnsights["bbsf-controls"] = {}), global.angular, global.dayGridPlugin, global.timeGridPlugin, global.listPlugin, global.interactionPlugin, global.ng.core, global.ngBlockUi, global.ng.forms, global.ng.http, global.ng.router, global.ngxToastr, global.ngxPermissions, global.ng.cdk.overlay, global.storeDevtools, global.ng.common, global.ngxIntlTelInput, global.bbsfUtilities, global.datepicker, global.rxjs, global.ng2FileUpload, global.classTransformer, global.ngPickDatetime, global.ngMultiselectDropdown, global.angular2MultiselectDropdown, global.ngxSummernote, global.ngxMask, global.ej2AngularPopups, global.ngxDropzone, global.angularCropperjs, global.ngxImageCropper, global.ngBootstrap, global.core$1, global.ng.common.http, global.ngxTypeahead, global.rxjs.operators, global.ngxTagsInput, global.ngSelect, global.ngxInfiniteScroll, global.core, global.googleMapsAutocomplete, global.enGbLocale, global.ArLocale, global.typeahead, global.ng.material.slideToggle, global.angularEditor, global.angularNgAutocomplete, global.ngInlineSvg, global.Swal, global.ngxSweetalert2));
5
- })(this, (function (exports, angular, dayGridPlugin, timeGridPlugin, listPlugin, interactionPlugin, i0, ngBlockUi, forms, http, router, ngxToastr, ngxPermissions, overlay, storeDevtools, common, ngxIntlTelInput, bbsfUtilities, datepicker, rxjs, ng2FileUpload, classTransformer, ngPickDatetime, ngMultiselectDropdown, angular2MultiselectDropdown, ngxSummernote, ngxMask, ej2AngularPopups, ngxDropzone, angularCropperjs, ngxImageCropper, ngBootstrap, core$1, http$1, ngxTypeahead, operators, ngxTagsInput, ngSelect, ngxInfiniteScroll, core, googleMapsAutocomplete, enGbLocale, ArLocale, typeahead, slideToggle, angularEditor, angularNgAutocomplete, ngInlineSvg, Swal, ngxSweetalert2) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@fullcalendar/angular'), require('@fullcalendar/daygrid'), require('@fullcalendar/timegrid'), require('@fullcalendar/list'), require('@fullcalendar/interaction'), require('@angular/core'), require('ng-block-ui'), require('@angular/forms'), require('@angular/http'), require('@angular/router'), require('ngx-toastr'), require('ngx-permissions'), require('@angular/cdk/overlay'), require('@ngrx/store-devtools'), require('@angular/common'), require('ngx-intl-tel-input'), require('@bnsights/bbsf-utilities'), require('ngx-bootstrap/datepicker'), require('rxjs'), require('ng-pick-datetime'), require('ng2-file-upload'), require('class-transformer'), require('ng-multiselect-dropdown'), require('angular2-multiselect-dropdown'), require('ngx-summernote'), require('ngx-mask'), require('@syncfusion/ej2-angular-popups'), require('ngx-dropzone'), require('angular-cropperjs'), require('ngx-image-cropper'), require('@ng-bootstrap/ng-bootstrap'), require('@ngx-translate/core'), require('@angular/common/http'), require('ngx-typeahead'), require('rxjs/operators'), require('ngx-tags-input'), require('@ng-select/ng-select'), require('ngx-infinite-scroll'), require('@agm/core'), require('@angular-material-extensions/google-maps-autocomplete'), require('@fullcalendar/core/locales/en-gb'), require('@fullcalendar/core/locales/ar'), require('ngx-bootstrap/typeahead'), require('@angular/material/slide-toggle'), require('@kolkov/angular-editor'), require('angular-ng-autocomplete'), require('ng-inline-svg'), require('sweetalert2'), require('@sweetalert2/ngx-sweetalert2')) :
3
+ typeof define === 'function' && define.amd ? define('@bnsights/bbsf-controls', ['exports', '@fullcalendar/angular', '@fullcalendar/daygrid', '@fullcalendar/timegrid', '@fullcalendar/list', '@fullcalendar/interaction', '@angular/core', 'ng-block-ui', '@angular/forms', '@angular/http', '@angular/router', 'ngx-toastr', 'ngx-permissions', '@angular/cdk/overlay', '@ngrx/store-devtools', '@angular/common', 'ngx-intl-tel-input', '@bnsights/bbsf-utilities', 'ngx-bootstrap/datepicker', 'rxjs', 'ng-pick-datetime', 'ng2-file-upload', 'class-transformer', 'ng-multiselect-dropdown', 'angular2-multiselect-dropdown', 'ngx-summernote', 'ngx-mask', '@syncfusion/ej2-angular-popups', 'ngx-dropzone', 'angular-cropperjs', 'ngx-image-cropper', '@ng-bootstrap/ng-bootstrap', '@ngx-translate/core', '@angular/common/http', 'ngx-typeahead', 'rxjs/operators', 'ngx-tags-input', '@ng-select/ng-select', 'ngx-infinite-scroll', '@agm/core', '@angular-material-extensions/google-maps-autocomplete', '@fullcalendar/core/locales/en-gb', '@fullcalendar/core/locales/ar', 'ngx-bootstrap/typeahead', '@angular/material/slide-toggle', '@kolkov/angular-editor', 'angular-ng-autocomplete', 'ng-inline-svg', 'sweetalert2', '@sweetalert2/ngx-sweetalert2'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.bnsights = global.bnsights || {}, global.bnsights["bbsf-controls"] = {}), global.angular, global.dayGridPlugin, global.timeGridPlugin, global.listPlugin, global.interactionPlugin, global.ng.core, global.ngBlockUi, global.ng.forms, global.ng.http, global.ng.router, global.ngxToastr, global.ngxPermissions, global.ng.cdk.overlay, global.storeDevtools, global.ng.common, global.ngxIntlTelInput, global.bbsfUtilities, global.datepicker, global.rxjs, global.ngPickDatetime, global.ng2FileUpload, global.classTransformer, global.ngMultiselectDropdown, global.angular2MultiselectDropdown, global.ngxSummernote, global.ngxMask, global.ej2AngularPopups, global.ngxDropzone, global.angularCropperjs, global.ngxImageCropper, global.ngBootstrap, global.core$1, global.ng.common.http, global.ngxTypeahead, global.rxjs.operators, global.ngxTagsInput, global.ngSelect, global.ngxInfiniteScroll, global.core, global.googleMapsAutocomplete, global.enGbLocale, global.ArLocale, global.typeahead, global.ng.material.slideToggle, global.angularEditor, global.angularNgAutocomplete, global.ngInlineSvg, global.Swal, global.ngxSweetalert2));
5
+ })(this, (function (exports, angular, dayGridPlugin, timeGridPlugin, listPlugin, interactionPlugin, i0, ngBlockUi, forms, http, router, ngxToastr, ngxPermissions, overlay, storeDevtools, common, ngxIntlTelInput, bbsfUtilities, datepicker, rxjs, ngPickDatetime, ng2FileUpload, classTransformer, ngMultiselectDropdown, angular2MultiselectDropdown, ngxSummernote, ngxMask, ej2AngularPopups, ngxDropzone, angularCropperjs, ngxImageCropper, ngBootstrap, core$1, http$1, ngxTypeahead, operators, ngxTagsInput, ngSelect, ngxInfiniteScroll, core, googleMapsAutocomplete, enGbLocale, ArLocale, typeahead, slideToggle, angularEditor, angularNgAutocomplete, ngInlineSvg, Swal, ngxSweetalert2) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -79,22 +79,22 @@
79
79
  result = this.utilityService.getResourceValue("NumberValidationKey");
80
80
  break;
81
81
  case "maxlength":
82
- result = this.utilityService.getResourceValue("MaxLenghtValidationKey") + error.value.requiredLength;
82
+ result = this.utilityService.getResourceValue("MaxLenghtValidationKey") + " " + error.value.requiredLength;
83
83
  break;
84
84
  case "minlength":
85
- result = this.utilityService.getResourceValue("MinLenghtValidationKey") + error.value.requiredLength;
85
+ result = this.utilityService.getResourceValue("MinLenghtValidationKey") + " " + error.value.requiredLength;
86
86
  break;
87
87
  case "min":
88
- result = this.utilityService.getResourceValue("MinValueValidationKey") + error.value.min;
88
+ result = this.utilityService.getResourceValue("MinValueValidationKey") + " " + error.value.min;
89
89
  break;
90
90
  case "max":
91
- result = this.utilityService.getResourceValue("MaxValueValidationKey") + error.value.max;
91
+ result = this.utilityService.getResourceValue("MaxValueValidationKey") + " " + error.value.max;
92
92
  break;
93
93
  case "validatePhoneNumber":
94
94
  result = this.utilityService.getResourceValue("PhoneNumberValidationKey");
95
95
  break;
96
96
  case "mask":
97
- result = this.utilityService.getResourceValue("MaskValidationKey") + error.value.requiredMask;
97
+ result = this.utilityService.getResourceValue("MaskValidationKey") + " " + error.value.requiredMask;
98
98
  break;
99
99
  case "PasswordComplexityHasNumber":
100
100
  result = this.utilityService.getResourceValue("PasswordComplexityHasNumber");
@@ -115,25 +115,25 @@
115
115
  result = this.utilityService.getResourceValue("PasswordComplexityHasSpecialLetter");
116
116
  break;
117
117
  case "MaxWordCountValidationKey":
118
- result = this.utilityService.getResourceValue("MaxWordCountValidationKey") + error.value;
118
+ result = this.utilityService.getResourceValue("MaxWordCountValidationKey") + " " + error.value;
119
119
  break;
120
120
  case "NewSelectionValidationKey":
121
121
  result = this.utilityService.getResourceValue("NewSelectionValidationKey");
122
122
  break;
123
123
  case "MaxFileCountValidationKey":
124
- result = this.utilityService.getResourceValue("MaxFileCountValidationKey") + error.value;
124
+ result = this.utilityService.getResourceValue("MaxFileCountValidationKey") + " " + error.value;
125
125
  break;
126
126
  case "MinFileCountValidationKey":
127
- result = this.utilityService.getResourceValue("MinFileCountValidationKey") + error.value;
127
+ result = this.utilityService.getResourceValue("MinFileCountValidationKey") + " " + error.value;
128
128
  break;
129
129
  case "MaxSizeForAllFilesInMB":
130
- result = this.utilityService.getResourceValue("MaxSizeForAllFilesInMB") + error.value;
130
+ result = this.utilityService.getResourceValue("MaxSizeForAllFilesInMB") + " " + error.value;
131
131
  break;
132
132
  case "FileMaxSizeInMB":
133
- result = this.utilityService.getResourceValue("FileMaxSizeInMB") + error.value;
133
+ result = this.utilityService.getResourceValue("FileMaxSizeInMB") + " " + error.value;
134
134
  break;
135
135
  case "ToolTipTypeError":
136
- result = this.utilityService.getResourceValue("ToolTipTypeError") + error.value;
136
+ result = this.utilityService.getResourceValue("ToolTipTypeError") + " " + error.value;
137
137
  break;
138
138
  default:
139
139
  break;
@@ -328,7 +328,7 @@
328
328
 
329
329
  var DateInputComponent = /** @class */ (function () {
330
330
  // tslint:disable-next-line: max-line-length
331
- function DateInputComponent(datepipe, onChangeService, ErrorHandler, controlUtility, controlContainer, DateInputControlHost, UtilityService, translate, controlValidationService) {
331
+ function DateInputComponent(datepipe, onChangeService, ErrorHandler, controlUtility, controlContainer, DateInputControlHost, UtilityService, translate, controlValidationService, dateTimeAdapter) {
332
332
  var _this = this;
333
333
  this.datepipe = datepipe;
334
334
  this.onChangeService = onChangeService;
@@ -339,6 +339,7 @@
339
339
  this.UtilityService = UtilityService;
340
340
  this.translate = translate;
341
341
  this.controlValidationService = controlValidationService;
342
+ this.dateTimeAdapter = dateTimeAdapter;
342
343
  this.OnChange = new i0.EventEmitter();
343
344
  this.markAllAsTouched = false;
344
345
  this.validationRules = [];
@@ -370,6 +371,8 @@
370
371
  }
371
372
  DateInputComponent.prototype.ngOnInit = function () {
372
373
  var _this = this;
374
+ // Update the DateTimeAdapter Language with the current thread langauge
375
+ this.dateTimeAdapter.setLocale(this.UtilityService.getCurrentLanguage() == "ar" ? "ar" : "en-UK");
373
376
  this.controlValidationService.isCreatedBefor = false;
374
377
  this.group.addControl(this.options.Name, new forms.FormControl(''));
375
378
  this.DatePickerFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
@@ -463,7 +466,8 @@
463
466
  { type: forms.FormGroupDirective },
464
467
  { type: bbsfUtilities.UtilityService },
465
468
  { type: bbsfUtilities.BBSFTranslateService },
466
- { type: bbsfUtilities.ControlValidationService }
469
+ { type: bbsfUtilities.ControlValidationService },
470
+ { type: ngPickDatetime.DateTimeAdapter }
467
471
  ]; };
468
472
  DateInputComponent.propDecorators = {
469
473
  group: [{ type: i0.Input }],
@@ -1293,7 +1297,7 @@
1293
1297
  }
1294
1298
  this.showInputUsingLanguageMode();
1295
1299
  this.ArabicValidationRules.push(forms.Validators.compose([
1296
- this.controlUtility.patternValidator(/[\u0621-\u064A]+/, { ArabicLetterOnly: this.ArabicLetterOnly }),
1300
+ this.controlUtility.patternValidator(/^[^A-Za-z]*$/, { ArabicLetterOnly: this.ArabicLetterOnly }),
1297
1301
  ]));
1298
1302
  this.EnglishValidationRules.push(forms.Validators.compose([
1299
1303
  this.controlUtility.patternValidator(/^[\x00-\x7F]*$/, { EnglishLetterOnly: this.EnglishLetterOnly }),
@@ -1494,7 +1498,7 @@
1494
1498
  MultiLingualTextBoxComponent.decorators = [
1495
1499
  { type: i0.Component, args: [{
1496
1500
  selector: 'BBSF-MultiLingualTextBox',
1497
- 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)=\"showEnglishWordCount(true)\" (focusout)=\"showEnglishWordCount(false)\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"English\"\r\n [hidden]=\"options.IsHideEnglishFields\"\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 #userinputEnglish>\r\n\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 class=\"text-muted font-weight-500 word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowEnglishWordCount\">{{EnglishWordCount}}/{{options.MaxWordCount}} words</div>\r\n </div>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(EnglishFormControl.invalid && EnglishFormControl.touched)\">\r\n {{getErrorValidation(EnglishFormControl.errors|keyvalue)}}\r\n </div>\r\n\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\r\n <!-- <div *ngIf=\"EnglishFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"group.valid\">{{resetError()}}</div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\">\r\n\r\n <div class=\"row\" *ngIf=\"ShowArabicTextBox\">\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}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n\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)?'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)=\"showArabicWordCount(true)\" (focusout)=\"showArabicWordCount(false)\"\r\n [hidden]=\"options.IsHideArabicFields\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"Arabic\"\r\n 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 (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 class=\"text-muted font-weight-500 word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowArabicWordCount\">{{ArabicWordCount}}/{{options.MaxWordCount}} Words</div>\r\n\r\n </div>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(ArabicFormControl.invalid && ArabicFormControl.touched)\">\r\n {{getErrorValidation(ArabicFormControl.errors|keyvalue)}}\r\n </div>\r\n\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 \r\n \r\n\r\n <!-- <div *ngIf=\"ArabicFormControl.valid\">{{resetError()}}</div> -->\r\n \r\n <div *ngIf=\"group.valid\">{{resetError()}}</div>\r\n\r\n </div>\r\n \r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n",
1501
+ 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)=\"showEnglishWordCount(true)\" (focusout)=\"showEnglishWordCount(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 #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\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)=\"showArabicWordCount(true)\" (focusout)=\"showArabicWordCount(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 (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 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",
1498
1502
  styles: [".example-form{min-width:150px;max-width:500px;width:100%}.example-full-width{width:100%}\n"]
1499
1503
  },] }
1500
1504
  ];
@@ -1643,7 +1647,7 @@
1643
1647
  TextAreaComponent.decorators = [
1644
1648
  { type: i0.Component, args: [{
1645
1649
  selector: 'BBSF-TextArea',
1646
- template: "<div class=\"b-control b-textarea\">\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 *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\">\r\n <textarea class=\"form-control bnsights-control {{options.ExtraClasses}}\"\r\n (focus)=\"showWordCount(true)\" (focusout)=\"showWordCount(false)\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\" aria-describedby=\"email-error\"\r\n aria-invalid=\"true\" formControlName=\"{{options.Name}}\"\r\n [class.is-invalid]=\"TextAreaFormControl.invalid && TextAreaFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" autocomplete=\"{{options.AutoComplete}}\"\r\n (change)=\"trimControlValue()\" rows=\"{{options.Rows}}\" (keyup)=\"onTextChange()\" cols=\"{{options.Cols}}\"\r\n (keydown)=\"WordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #TextAreainput></textarea>\r\n <div class=\"input-group-append\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(TextAreainput)\">\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 </div>\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(TextAreaFormControl.invalid && TextAreaFormControl.touched)\">\r\n {{getErrorValidation(TextAreaFormControl.errors|keyvalue)}}\r\n </div>\r\n <div class=\"control-desc text-dark\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <!-- <div *ngIf=\"TextAreaFormControl.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 </div>\r\n </div>\r\n</div>\r\n",
1650
+ template: "<div class=\"b-control b-textarea\">\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 *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\">\r\n <textarea class=\"form-control bnsights-control {{options.ExtraClasses}}\"\r\n (focus)=\"showWordCount(true)\" (focusout)=\"showWordCount(false)\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\" aria-describedby=\"email-error\"\r\n aria-invalid=\"true\" formControlName=\"{{options.Name}}\"\r\n [class.is-invalid]=\"TextAreaFormControl.invalid && TextAreaFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" autocomplete=\"{{options.AutoComplete}}\"\r\n (change)=\"trimControlValue()\" rows=\"{{options.Rows}}\" (keyup)=\"onTextChange()\" cols=\"{{options.Cols}}\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n (keydown)=\"WordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #TextAreainput></textarea>\r\n <div class=\"input-group-append\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(TextAreainput)\">\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\"\r\n *ngIf=\"(TextAreaFormControl.invalid && TextAreaFormControl.touched)\">\r\n {{getErrorValidation(TextAreaFormControl.errors|keyvalue)}}\r\n </div>\r\n <div class=\"control-desc text-dark\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <!-- <div *ngIf=\"TextAreaFormControl.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 </div>\r\n </div>\r\n</div>\r\n",
1647
1651
  styles: [".example-form{min-width:150px;max-width:500px;width:100%}.example-full-width{width:100%}.flip_V{transform:scaleY(-1)}\n"]
1648
1652
  },] }
1649
1653
  ];
@@ -1786,7 +1790,7 @@
1786
1790
  }
1787
1791
  this.showInputUsingLanguageMode();
1788
1792
  this.ArabicValidationRules.push(forms.Validators.compose([
1789
- this.controlUtility.patternValidator(/[\u0621-\u064A]+/, { ArabicLetterOnly: this.ArabicLetterOnly }),
1793
+ this.controlUtility.patternValidator(/^[^A-Za-z]*$/, { ArabicLetterOnly: this.ArabicLetterOnly }),
1790
1794
  ]));
1791
1795
  this.EnglishValidationRules.push(forms.Validators.compose([
1792
1796
  this.controlUtility.patternValidator(/^[\x00-\x7F]*$/, { EnglishLetterOnly: this.EnglishLetterOnly }),
@@ -1976,7 +1980,7 @@
1976
1980
  MultiLingualTextAreaComponent.decorators = [
1977
1981
  { type: i0.Component, args: [{
1978
1982
  selector: 'BBSF-MultiLingualTextArea',
1979
- 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)=\"showEnglishWordCount(true)\" (focusout)=\"showEnglishWordCount(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 <div class=\"text-muted font-weight-500 word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowEnglishWordCount\">{{EnglishWordCount}}/{{options.MaxWordCount}} Words</div>\r\n\r\n </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 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.IsHideArabicLable\">\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)=\"showArabicWordCount(true)\" (focusout)=\"showArabicWordCount(false)\"\r\n [hidden]=\"options.IsHideArabicFields\" maxlength=\"{{options.MaxLength}}\"\r\n minlength=\"{{options.MinLength}}\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"Arabic\" rows=\"{{options.Rows}}\"\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 class=\"text-muted font-weight-500 word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowArabicWordCount\">{{ArabicWordCount}}/{{options.MaxWordCount}}Words</div>\r\n\r\n </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 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\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\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
1983
+ 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)=\"showEnglishWordCount(true)\" (focusout)=\"showEnglishWordCount(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 \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 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.IsHideArabicLable\">\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)=\"showArabicWordCount(true)\" (focusout)=\"showArabicWordCount(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 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",
1980
1984
  styles: [".example-form{min-width:150px;max-width:500px;width:100%}.example-full-width{width:100%}\n"]
1981
1985
  },] }
1982
1986
  ];
@@ -3167,7 +3171,7 @@
3167
3171
  this.FileLikeObject = new ng2FileUpload.FileLikeObject({
3168
3172
  name: element.FileName,
3169
3173
  size: element.FileSizeInMB * 1000 * 1000,
3170
- type: element.FileType
3174
+ type: element.FileType,
3171
3175
  });
3172
3176
  this.uploader.addToQueue([this.FileLikeObject]);
3173
3177
  }
@@ -3182,15 +3186,17 @@
3182
3186
  var TypeToolTipe = element.split('/')[1];
3183
3187
  this.ToolTipTypeArray.push(TypeToolTipe);
3184
3188
  }
3185
- this.ValidationMessage = this.ValidationMessage + (" Allowed extenstions (" + this.ToolTipTypeArray + ") ");
3189
+ this.ValidationMessage = this.ValidationMessage + this.UtilityService.getResourceValue("AllowedTypes") + (" (" + this.ToolTipTypeArray + ") ");
3186
3190
  }
3187
3191
  if (this.options.FileMaxSizeInMB > 0) {
3188
- this.ValidationMessage = this.ValidationMessage + (" <br />Max File Size " + this.options.FileMaxSizeInMB + " MB");
3192
+ this.ValidationMessage = this.ValidationMessage + (" <br /> " + this.UtilityService.getResourceValue("FileMaxSizeInMB") + " " + this.options.FileMaxSizeInMB);
3189
3193
  }
3190
3194
  if (this.options.FileUploadAcceptsTypes != null && this.options.FileUploadAcceptsTypes.length > 0) {
3191
3195
  }
3192
3196
  this.group.addControl(this.options.Name, new forms.FormControl(''));
3193
3197
  this.ImageUploadFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
3198
+ if (this.options.Value != null)
3199
+ this.group.get(this.options.Name).setValue(this.options.Value);
3194
3200
  if (this.options.LabelKey != null && this.options.LabelKey != "")
3195
3201
  this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);
3196
3202
  if (this.options.CustomValidation.length > 0) {
@@ -3371,7 +3377,7 @@
3371
3377
  ImageUploaderComponent.decorators = [
3372
3378
  { type: i0.Component, args: [{
3373
3379
  selector: 'BBSF-ImageUpload',
3374
- template: "<div class=\"b-control b-image-upload\">\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\r\n <ejs-tooltip id=\"tooltip\" content='{{ValidationMessage}}' tipPointerPosition='Middle'>\r\n <i class=\"fa fa-info-circle\" data-plugin=\"tooltip\" data-html=\"true\">\r\n </i>\r\n </ejs-tooltip>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n\r\n <div *ngIf=\"options.AllowDropZone\" style=\"max-width:200px !important; max-height: 200px !important;\" class=\"d-inline-flex h-auto w-auto overflow-hidden m-0 {{options.ExtraClasses}}\" ngx-dropzone [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\" [multiple]=\"options.IsMultiple\"\r\n (change)=\"onFileChange($event)\" aria-describedby=\"email-error\" aria-invalid=\"true\" ngDefaultControl formControlName=\"{{options.Name}}\" [maxFileSize]=\"options.FileMaxSizeInMB\"\r\n id=\"{{options.Name}}\" [class.is-invalid]=\"ImageUploadFormControl.invalid && ImageUploadFormControl.touched\">\r\n <ngx-dropzone-label class=\"h-100 m-0\" style=\"max-width: 200px !important;\">\r\n <div class=\"h-100\">\r\n <img [src]=\"ImageSource\" class=\"h-100 w-100\" />\r\n </div>\r\n </ngx-dropzone-label>\r\n\r\n\r\n <ngx-dropzone-image-preview style=\"max-width:200px !important; max-height: 200px !important;\" *ngFor=\"let f of files\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n ngProjectAs=\"ngx-dropzone-preview\" class=\"b-img-preview w-100 h-100 m-0\">\r\n </ngx-dropzone-image-preview>\r\n </div>\r\n\r\n <div class=\"ImageUploadClassSelector\" *ngIf=\"!options.AllowDropZone\" >\r\n <ngx-dropzone-label class=\"h-100 m-0\" *ngIf=\"files.length==0\" >\r\n <div style=\"max-width:200px !important; max-height: 200px !important;\" class=\"h-100 file-fake-input\" #element (click)=\"showImageUploader(element)\">\r\n <img [src]=\"ImageSource\" class=\"h-100 w-100\" />\r\n </div>\r\n </ngx-dropzone-label>\r\n\r\n <div style=\"border: none !important; max-width:200px !important; max-height: 200px !important;\" class=\" fileSelector customImageUploadPlacment d-inline-flex h-auto w-auto overflow-hidden m-0 {{options.ExtraClasses}}\" ngx-dropzone [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\" [multiple]=\"options.IsMultiple\"\r\n (change)=\"onFileChange($event)\" aria-describedby=\"email-error\" aria-invalid=\"true\" ngDefaultControl formControlName=\"{{options.Name}}\" [maxFileSize]=\"options.FileMaxSizeInMB\"\r\n id=\"{{options.Name}}\" [class.is-invalid]=\"ImageUploadFormControl.invalid && ImageUploadFormControl.touched\">\r\n \r\n\r\n\r\n <ngx-dropzone-image-preview style=\"max-width:200px !important; max-height: 200px !important;\" *ngFor=\"let f of files\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n ngProjectAs=\"ngx-dropzone-preview\" class=\"b-img-preview w-100 h-100 m-0\">\r\n </ngx-dropzone-image-preview>\r\n </div>\r\n </div>\r\n\r\n\r\n <div id=\"mdlSample\" class=\"modal fade\" role=\"dialog\" style=\"z-index: 11 !important ;\"\r\n [ngStyle]=\"{'display': mdlSampleIsOpen ? 'block' : 'none', 'opacity': 1}\">\r\n <div class=\"modal-dialog modal-lg\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\">\r\n Crop Image\r\n </h4>\r\n </div>\r\n <div class=\"modal-body py-5\">\r\n <div *ngIf=\"imageUrl\">\r\n <angular-cropper #angularCropper [cropperOptions]=\"config\" [imageUrl]=\"imageUrl\">\r\n </angular-cropper>\r\n <img [src]=\"imgwUrl\" />\r\n </div>\r\n <div style=\"text-align:center;\">\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"zoomImage(0.1)\" class=\"btn btn-default\" data-method=\"zoom\" data-option=\"0.1\" title=\"Zoom In\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.zoom(0.1)\">\r\n <span class=\"fa fa-search-plus\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"zoomImage(-0.1)\" class=\"btn btn-default\" data-method=\"zoom\" data-option=\"-0.1\" title=\"Zoom Out\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.zoom(-0.1)\">\r\n <span class=\"fa fa-search-minus\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"moveImage(-10,0)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"-10\" data-second-option=\"0\" title=\"Move Left\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(-10, 0)\" aria-describedby=\"tooltip631939\">\r\n <span class=\"fa fa-arrow-left\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(10,0)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"10\" data-second-option=\"0\" title=\"Move Right\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(10, 0)\">\r\n <span class=\"fa fa-arrow-right\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(0,-10)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"0\" data-second-option=\"-10\" title=\"Move Up\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(0, -10)\">\r\n <span class=\"fa fa-arrow-up\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(0,10)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"0\" data-second-option=\"10\" title=\"Move Down\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(0, 10)\">\r\n <span class=\"fa fa-arrow-down\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"rotateImage(-45)\" class=\"btn btn-default\" data-method=\"rotate\" data-option=\"-45\" title=\"Rotate Left\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.rotate(-45)\" aria-describedby=\"tooltip236044\">\r\n <span class=\"fa fa-undo-alt\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"rotateImage(45)\" class=\"btn btn-default\" data-method=\"rotate\" data-option=\"45\" title=\"Rotate Right\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.rotate(45)\">\r\n <span class=\"fa fa-redo-alt\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\" align=\"right\">\r\n <button type=\"button\" id=\"btnClose\" class=\"btn btn-default\" (click)=\"openModal(false)\">\r\n <i class=\"fa fa-times fa-fw\"></i> Cancel\r\n </button>\r\n <button type=\"button\" (click)=\"cropImage()\" id=\"btnOK\" class=\"btn btn-success\">\r\n <i class=\"fa fa-check fa-fw\"></i>\r\n Crop\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(ImageUploadFormControl.invalid && ImageUploadFormControl.touched)\">\r\n {{getErrorValidation(ImageUploadFormControl.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\r\n </div>\r\n</div>\r\n",
3380
+ template: "<div class=\"b-control b-image-upload\">\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\r\n <ejs-tooltip id=\"tooltip\" content='{{ValidationMessage}}' tipPointerPosition='Middle'>\r\n <i class=\"fa fa-info-circle\" data-plugin=\"tooltip\" data-html=\"true\">\r\n </i>\r\n </ejs-tooltip>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n\r\n <div *ngIf=\"options.AllowDropZone\" style=\"max-width:200px !important; max-height: 200px !important;\" class=\"d-inline-flex h-auto w-auto overflow-hidden m-0 {{options.ExtraClasses}}\" ngx-dropzone [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\" [multiple]=\"options.IsMultiple\"\r\n (change)=\"onFileChange($event)\" aria-describedby=\"email-error\" aria-invalid=\"true\" ngDefaultControl formControlName=\"{{options.Name}}\" [maxFileSize]=\"options.FileMaxSizeInMB\"\r\n id=\"{{options.Name}}\" [class.is-invalid]=\"ImageUploadFormControl.invalid && ImageUploadFormControl.touched\">\r\n <ngx-dropzone-label class=\"h-100 m-0\" style=\"max-width: 200px !important;\">\r\n <div class=\"h-100\">\r\n <img [src]=\"ImageSource\" class=\"h-100 w-100\" />\r\n </div>\r\n </ngx-dropzone-label>\r\n\r\n\r\n <ngx-dropzone-image-preview style=\"max-width:200px !important; max-height: 200px !important;\" *ngFor=\"let f of files\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n ngProjectAs=\"ngx-dropzone-preview\" class=\"b-img-preview w-100 h-100 m-0\">\r\n </ngx-dropzone-image-preview>\r\n </div>\r\n\r\n <div class=\"ImageUploadClassSelector\" *ngIf=\"!options.AllowDropZone\">\r\n <ngx-dropzone-label class=\"h-100 m-0\" *ngIf=\"files.length==0\">\r\n <div style=\"max-width:200px !important; max-height: 200px !important;\" class=\"h-100 file-fake-input\" #element (click)=\"showImageUploader(element)\">\r\n <img [src]=\"ImageSource\" class=\"h-100 w-100\" />\r\n </div>\r\n </ngx-dropzone-label>\r\n\r\n <div style=\"border: none !important; max-width:200px !important; max-height: 200px !important;\" class=\" fileSelector customImageUploadPlacment d-inline-flex h-auto w-auto overflow-hidden m-0 {{options.ExtraClasses}}\" ngx-dropzone [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\" [multiple]=\"options.IsMultiple\"\r\n (change)=\"onFileChange($event)\" aria-describedby=\"email-error\" aria-invalid=\"true\" ngDefaultControl formControlName=\"{{options.Name}}\" [maxFileSize]=\"options.FileMaxSizeInMB\"\r\n id=\"{{options.Name}}\" [class.is-invalid]=\"ImageUploadFormControl.invalid && ImageUploadFormControl.touched\">\r\n\r\n\r\n\r\n <ngx-dropzone-image-preview style=\"max-width:200px !important; max-height: 200px !important;\" *ngFor=\"let f of files\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n ngProjectAs=\"ngx-dropzone-preview\" class=\"b-img-preview w-100 h-100 m-0\">\r\n </ngx-dropzone-image-preview>\r\n </div>\r\n </div>\r\n\r\n\r\n <div id=\"mdlSample\" class=\"modal fade\" role=\"dialog\" style=\"z-index: 11 !important ;\"\r\n [ngStyle]=\"{'display': mdlSampleIsOpen ? 'block' : 'none', 'opacity': 1}\">\r\n <div class=\"modal-dialog modal-lg\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\">\r\n {{UtilityService.getResourceValue(\"CropImage\")}}\r\n </h4>\r\n <button type=\"button\" class=\"btn-close\" aria-hidden=\"true\" data-dismiss=\"modal\" aria-label=\"Close\" (click)=\"openModal(false)\"></button>\r\n </div>\r\n <div class=\"modal-body py-5\">\r\n <div *ngIf=\"imageUrl\">\r\n <angular-cropper #angularCropper [cropperOptions]=\"config\" [imageUrl]=\"imageUrl\">\r\n </angular-cropper>\r\n <img [src]=\"imgwUrl\" />\r\n </div>\r\n <div style=\"text-align:center;\">\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"zoomImage(0.1)\" class=\"btn btn-default\" data-method=\"zoom\" data-option=\"0.1\" title=\"Zoom In\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.zoom(0.1)\">\r\n <span class=\"fa fa-search-plus\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"zoomImage(-0.1)\" class=\"btn btn-default\" data-method=\"zoom\" data-option=\"-0.1\" title=\"Zoom Out\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.zoom(-0.1)\">\r\n <span class=\"fa fa-search-minus\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"moveImage(-10,0)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"-10\" data-second-option=\"0\" title=\"Move Left\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(-10, 0)\" aria-describedby=\"tooltip631939\">\r\n <span class=\"fa fa-arrow-left\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(10,0)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"10\" data-second-option=\"0\" title=\"Move Right\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(10, 0)\">\r\n <span class=\"fa fa-arrow-right\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(0,-10)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"0\" data-second-option=\"-10\" title=\"Move Up\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(0, -10)\">\r\n <span class=\"fa fa-arrow-up\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(0,10)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"0\" data-second-option=\"10\" title=\"Move Down\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(0, 10)\">\r\n <span class=\"fa fa-arrow-down\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"rotateImage(-45)\" class=\"btn btn-default\" data-method=\"rotate\" data-option=\"-45\" title=\"Rotate Left\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.rotate(-45)\" aria-describedby=\"tooltip236044\">\r\n <span class=\"fa fa-undo-alt\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"rotateImage(45)\" class=\"btn btn-default\" data-method=\"rotate\" data-option=\"45\" title=\"Rotate Right\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.rotate(45)\">\r\n <span class=\"fa fa-redo-alt\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\" align=\"right\">\r\n <button type=\"button\" id=\"btnClose\" class=\"btn btn-default\" (click)=\"openModal(false)\">\r\n <i class=\"fa fa-times fa-fw\"></i> {{UtilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"button\" (click)=\"cropImage()\" id=\"btnOK\" class=\"btn btn-success\">\r\n <i class=\"fa fa-check fa-fw\"></i>\r\n {{UtilityService.getResourceValue(\"Crop\")}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-danger Required-text\" *ngIf=\"(ImageUploadFormControl.invalid && ImageUploadFormControl.touched)\">\r\n {{getErrorValidation(ImageUploadFormControl.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 <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n",
3375
3381
  styles: [".e-tip-content{background-color:#afafaf;color:#fff;padding-left:10px;padding-right:10px;padding-top:2px}.my-drop-zone{border:dotted 3px lightgray}.nv-file-over{border:dotted 3px red}.another-file-over-class{border:dotted 3px green}html,body{height:100%}.modal{display:none;position:fixed;z-index:1;padding-top:100px;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#000;background-color:#0006}.modal-content{position:relative;background-color:#fefefe;margin:auto;padding:0;border:1px solid #888;width:80%;box-shadow:0 4px 8px #0003,0 6px 20px #00000030;-webkit-animation-name:animatetop;-webkit-animation-duration:.4s;animation-name:animatetop;animation-duration:.4s}@keyframes animatetop{0%{top:-300px;opacity:0}to{top:0;opacity:1}}.close{color:#fff;float:right;font-size:28px;font-weight:bold}.ImageUploadClassSelector img{cursor:pointer}.d-inline-flex.h-auto.m-0.overflow-hidden.w-auto.ng-untouched.ng-pristine.ng-valid{border-radius:40px;border-color:#c7c7c7}\n"]
3376
3382
  },] }
3377
3383
  ];
@@ -4443,7 +4449,7 @@
4443
4449
  PagingComponent.decorators = [
4444
4450
  { type: i0.Component, args: [{
4445
4451
  selector: 'BBSF-Paging',
4446
- template: "<div class=\"b-control b-paging\" *ngIf=\"(result.length > 0)\">\r\n <div class=\"d-flex justify-content-between align-items-center\" *ngIf=\"!options.IsLoadMoreControl\">\r\n <div class=\"b-pagination\">\r\n <jw-pagination [items]=\"items\" *ngIf=\"!((Pages==1)&&options.HidePaginationWhenPageSizeEqualOne)\"\r\n (changePage)=\"onChangePage($event)\" [pageSize]=\"options.PageSize\" [ShowFirstAndLast]=\"options.ShowFirstAndLast\"\r\n [initialPage]=\"1\" [maxPages]=\"10\"></jw-pagination>\r\n </div>\r\n <div class=\"b-pages d-flex\" *ngIf=\"!((Pages==1)&&options.HidePaginationWhenPageSizeEqualOne)\" >\r\n <select (change)=\"changePageSize($event)\" *ngIf=\"options.ShowPageSizeOption\">\r\n <option>10</option>\r\n <option>20</option>\r\n <option>50</option>\r\n <option>100</option>\r\n <option>200</option>\r\n </select>\r\n <div class=\"b-items ml-3\">\r\n <strong>{{totalRow}}</strong> {{utilityService.getResourceValue(\"ItemsIn\")}} <strong> {{Pages}}</strong> {{utilityService.getResourceValue(\"Pages\")}}\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"row\" style=\"align-self:center; align-items: center; text-align: center;\" *ngIf=\"options.IsLoadMoreControl\">\r\n <div class=\"search-results\" infinite-scroll [infiniteScrollDistance]=\"ScrollDistance\"\r\n [infiniteScrollUpDistance]=\"ScrollUpDistance\" [infiniteScrollThrottle]=\"Throttle\" (scrolled)=\"options.IsInfiniteScroll==true?onScrollDown():null\"\r\n [scrollWindow]=\"options.ScrollWindow\" [infiniteScrollContainer]=\"options.InfiniteScrollContainer\">\r\n </div>\r\n <button class=\"btn btn-primary\" (click)=\"onScrollDown()\" *ngIf=\"!(result.length==totalRow)\"> Load More </button>\r\n </div>\r\n</div>\r\n",
4452
+ template: "<div class=\"b-control b-paging\" *ngIf=\"(result.length > 0)\">\r\n <div class=\"d-flex justify-content-between align-items-center\" *ngIf=\"!options.IsLoadMoreControl\">\r\n <div class=\"b-pagination\">\r\n <jw-pagination [items]=\"items\" *ngIf=\"!((Pages==1)&&options.HidePaginationWhenPageSizeEqualOne)\"\r\n (changePage)=\"onChangePage($event)\" [pageSize]=\"options.PageSize\" [ShowFirstAndLast]=\"options.ShowFirstAndLast\"\r\n [initialPage]=\"1\" [maxPages]=\"10\"></jw-pagination>\r\n </div>\r\n <div class=\"b-pages d-flex\" *ngIf=\"!((Pages==1)&&options.HidePaginationWhenPageSizeEqualOne)\" >\r\n <select (change)=\"changePageSize($event)\" *ngIf=\"options.ShowPageSizeOption\">\r\n <option>10</option>\r\n <option>20</option>\r\n <option>50</option>\r\n <option>100</option>\r\n <option>200</option>\r\n </select>\r\n <div class=\"b-items ml-3\">\r\n <strong>{{totalRow}}</strong> {{utilityService.getResourceValue(\"ItemsIn\")}} <strong> {{Pages}}</strong> {{utilityService.getResourceValue(\"Pages\")}}\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"row\" style=\"align-self:center; align-items: center; text-align: center;\" *ngIf=\"options.IsLoadMoreControl\">\r\n <div class=\"search-results\" infinite-scroll [infiniteScrollDistance]=\"ScrollDistance\"\r\n [infiniteScrollUpDistance]=\"ScrollUpDistance\" [infiniteScrollThrottle]=\"Throttle\" (scrolled)=\"options.IsInfiniteScroll==true?onScrollDown():null\"\r\n [scrollWindow]=\"options.ScrollWindow\" [infiniteScrollContainer]=\"options.InfiniteScrollContainer\">\r\n </div>\r\n <button class=\"btn btn-info\" (click)=\"onScrollDown()\" *ngIf=\"!(result.length==totalRow)\">{{utilityService.getResourceValue(\"LoadMore\")}}</button>\r\n </div>\r\n</div>\r\n",
4447
4453
  styles: [".ngx-pager-container{text-align:center;padding:25px 0 0}.ngx-pager-container li{display:inline-block;margin:0 4px}.ngx-pager-container li a{display:block;width:26px;height:26px;border:1px solid #707070;text-align:center;color:#3e4e59;font-size:14px;line-height:24px;border-radius:5px;text-decoration:none}.ngx-pager-container li a:hover{color:#fff;background:#0a0e03}.ngx-pager-container li.invisible{display:none}.ngx-pager-container li.active{background:#0a0e03;border-radius:5px}.ngx-pager-container li.active a{border:none;color:#fff}\n"]
4448
4454
  },] }
4449
4455
  ];
@@ -4873,7 +4879,7 @@
4873
4879
  TextboxComponent.decorators = [
4874
4880
  { type: i0.Component, args: [{
4875
4881
  selector: 'BBSF-TextBox',
4876
- 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 </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)=\"showWordCount(true)\" (focusout)=\"showWordCount(false)\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\" 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\" *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 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\r\n\r\n </div>\r\n </div>\r\n</div>\r\n",
4882
+ 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 </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)=\"showWordCount(true)\" (focusout)=\"showWordCount(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 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",
4877
4883
  styles: [".example-form{min-width:150px;max-width:500px;width:100%}.example-full-width{width:100%}.flip_V{transform:scaleY(-1)}\n"]
4878
4884
  },] }
4879
4885
  ];
@@ -5521,7 +5527,7 @@
5521
5527
  showCancelButton: true,
5522
5528
  confirmButtonColor: this.btnColor,
5523
5529
  cancelButtonColor: '#f5f8fa',
5524
- cancelButtonText: this.utilityService.getResourceValue("Cancel"),
5530
+ cancelButtonText: this.utilityService.getResourceValue("CancelLabel"),
5525
5531
  confirmButtonText: this.options.SubmitButtonText,
5526
5532
  showCloseButton: true,
5527
5533
  }).then(function (result) {
@@ -5632,6 +5638,7 @@
5632
5638
  function RepeaterComponent() {
5633
5639
  this.templateRefs = [];
5634
5640
  this.items = [];
5641
+ this.originalItems = [];
5635
5642
  this.repeaterContext = { index: 0, delete: null, elements: null };
5636
5643
  }
5637
5644
  RepeaterComponent.prototype.ngOnInit = function () {
@@ -5639,10 +5646,16 @@
5639
5646
  this.currentTemplate = this.initialTemplate;
5640
5647
  this.repeaterGroup = new forms.FormGroup({});
5641
5648
  this.group.addControl(this.options.Name, this.repeaterGroup);
5642
- this.group.get(this.options.Name).setValue(this.options.RepeaterValue);
5643
- for (var index = 0; index < this.options.MinRequiredItems; index++) {
5644
- this.items.push(index);
5649
+ if (this.options.RepeaterValue.length > 0) {
5650
+ this.originalItems = this.options.RepeaterValue;
5651
+ for (var index = 0; index < this.options.RepeaterValue.length; index++) {
5652
+ this.items.push(index + 1);
5653
+ }
5645
5654
  }
5655
+ else
5656
+ for (var index = 0; index < this.options.MinRequiredItems; index++) {
5657
+ this.items.push(index);
5658
+ }
5646
5659
  this.repeaterGroup.valueChanges.subscribe(function (res) {
5647
5660
  var _a, _b;
5648
5661
  var result = [];
@@ -5687,6 +5700,7 @@
5687
5700
  };
5688
5701
  RepeaterComponent.prototype.deleteItem = function (Index) {
5689
5702
  var _a;
5703
+ var _this = this;
5690
5704
  if (this.items.length == this.options.MinRequiredItems && this.options.IsRequired)
5691
5705
  return;
5692
5706
  var deletedControls = [];
@@ -5711,11 +5725,10 @@
5711
5725
  }
5712
5726
  }
5713
5727
  }
5714
- var item = this.items[Index];
5715
- this.items = this.items.filter(function (res) { return res != item; });
5728
+ this.items = this.items.filter(function (res) { return res != _this.items[Index]; });
5716
5729
  };
5717
- RepeaterComponent.prototype.AddItem = function () {
5718
- this.items.push(this.items.length + 1);
5730
+ RepeaterComponent.prototype.addItem = function () {
5731
+ this.items.push(this.items[this.items.length - 1] + 1);
5719
5732
  };
5720
5733
  RepeaterComponent.prototype.ngAfterViewInit = function () {
5721
5734
  var templateRefs = this._templates["_results"].map(function (item) { return item["template"]; });
@@ -5731,7 +5744,7 @@
5731
5744
  RepeaterComponent.decorators = [
5732
5745
  { type: i0.Component, args: [{
5733
5746
  selector: 'BBSF-repeater',
5734
- template: "<div *ngFor='let item of items ; index as i'>\r\n {{setCurrentIndex(i)}}\r\n <ng-container *ngTemplateOutlet=\"currentTemplate; context: repeaterContext\">\r\n </ng-container>\r\n\r\n</div>\r\n\r\n<div>\r\n <ng-container *ngTemplateOutlet=\"add\">\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template *ngFor=\"let RepeaterField of options.RepeaterStructure ; index as i\" name=\"R{{i}}\" \r\n let-Index=\"itemIndex\" let-control=\"controlIndex\">\r\n <repeater-field-builder *ngIf=\"RepeaterField\" [RepeaterField]=\"RepeaterField\" [itemNumber]=\"Index\" [controlNumber]=\"control\"\r\n [group]=\"repeaterGroup\"></repeater-field-builder>\r\n</ng-template>\r\n\r\n<ng-template #delete let-item=\"itemIndex\">\r\n <button class=\"{{options.DeleteButtonExtraClasses}}\" type=\"button\" (click)=\"deleteItem(item)\"\r\n [disabled]=\"items.length ==options.MinRequiredItems&&options.IsRequired\"> <span [innerHTML]=\"options.DeleteButtonText\"></span></button>\r\n</ng-template>\r\n\r\n<ng-template #add>\r\n <button class=\"{{options.AddButtonExtraClasses}}\" type=\"button\"\r\n (click)=\"AddItem()\"><span [innerHTML]=\"options.AddButtonText\"></span></button>\r\n</ng-template>\r\n\r\n\r\n\r\n\r\n\r\n<!-- <ng-template adHost></ng-template> -->",
5747
+ template: "<ng-container *ngFor='let item of items ; index as i'>\r\n {{setCurrentIndex(i)}}\r\n <ng-container *ngTemplateOutlet=\"currentTemplate; context: repeaterContext\">\r\n </ng-container>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngTemplateOutlet=\"add\">\r\n</ng-container>\r\n\r\n<ng-template *ngFor=\"let RepeaterField of options.RepeaterStructure ; index as i\" name=\"R{{i}}\" let-Index=\"itemIndex\"\r\n let-control=\"controlIndex\">\r\n <repeater-field-builder *ngIf=\"RepeaterField\" [RepeaterField]=\"RepeaterField\" [itemNumber]=\"Index\"\r\n [itemsValue]=\"originalItems\" [controlNumber]=\"control\" [group]=\"repeaterGroup\">\r\n </repeater-field-builder>\r\n</ng-template>\r\n\r\n<ng-template #delete let-item=\"itemIndex\">\r\n <button class=\"{{options.DeleteButtonExtraClasses}}\" type=\"button\" (click)=\"deleteItem(item)\"\r\n [disabled]=\"items.length ==options.MinRequiredItems&&options.IsRequired\"> <span\r\n [innerHTML]=\"options.DeleteButtonText\"></span></button>\r\n</ng-template>\r\n\r\n<ng-template #add>\r\n <button class=\"{{options.AddButtonExtraClasses}}\" type=\"button\" (click)=\"addItem()\"><span\r\n [innerHTML]=\"options.AddButtonText\"></span></button>\r\n</ng-template>\r\n\r\n\r\n\r\n\r\n\r\n<!-- <ng-template adHost></ng-template> -->\r\n",
5735
5748
  styles: [""]
5736
5749
  },] }
5737
5750
  ];
@@ -5996,12 +6009,24 @@
5996
6009
  function RepeaterFieldBuilderComponent(renderComponentService, TextControlHost) {
5997
6010
  this.renderComponentService = renderComponentService;
5998
6011
  this.TextControlHost = TextControlHost;
6012
+ this.itemsValue = [];
6013
+ this.itemValue = null;
5999
6014
  }
6000
6015
  RepeaterFieldBuilderComponent.prototype.ngOnInit = function () {
6001
6016
  };
6002
6017
  RepeaterFieldBuilderComponent.prototype.ngAfterViewInit = function () {
6003
6018
  var _this = this;
6004
6019
  setTimeout(function () {
6020
+ if (_this.itemsValue.length > 0)
6021
+ _this.itemValue = _this.itemsValue[_this.itemNumber];
6022
+ if (_this.itemValue) {
6023
+ for (var key in _this.itemValue) {
6024
+ if (Object.prototype.hasOwnProperty.call(_this.itemValue, key) && key == _this.RepeaterField.ControlOptions.Name) {
6025
+ var element = _this.itemValue[key];
6026
+ _this.value = element;
6027
+ }
6028
+ }
6029
+ }
6005
6030
  _this.Item.clear();
6006
6031
  switch (_this.RepeaterField.ControlType) {
6007
6032
  ///TextBox
@@ -6018,6 +6043,7 @@
6018
6043
  Text.MaxLength = _this.RepeaterField.ControlOptions.maxLength;
6019
6044
  if (_this.RepeaterField.ControlOptions.minLength)
6020
6045
  Text.MinLength = _this.RepeaterField.ControlOptions.minLength;
6046
+ Text.Value = _this.value;
6021
6047
  _this.renderComponentService.renderDynamicComponent(_this.Item, TextboxComponent, _this.group, Text);
6022
6048
  break;
6023
6049
  case exports.DataType.Name:
@@ -6033,6 +6059,7 @@
6033
6059
  if (_this.RepeaterField.ControlOptions.minLength)
6034
6060
  Name.MinLength = _this.RepeaterField.ControlOptions.minLength;
6035
6061
  Name.Type = exports.InputType.Text;
6062
+ Name.Value = _this.value;
6036
6063
  _this.renderComponentService.renderDynamicComponent(_this.Item, TextboxComponent, _this.group, Name);
6037
6064
  break;
6038
6065
  case exports.DataType.Email:
@@ -6044,6 +6071,7 @@
6044
6071
  Email.ViewType = _this.RepeaterField.ControlOptions.ViewType;
6045
6072
  Email.LabelDescription = _this.RepeaterField.ControlOptions.LabelDescription ? _this.RepeaterField.ControlOptions.LabelDescription : "";
6046
6073
  Email.Type = exports.InputType.Email;
6074
+ Email.Value = _this.value;
6047
6075
  _this.renderComponentService.renderDynamicComponent(_this.Item, TextboxComponent, _this.group, Email);
6048
6076
  break;
6049
6077
  case exports.DataType.Number:
@@ -6059,6 +6087,7 @@
6059
6087
  rangeNumber.To = _this.RepeaterField.ControlOptions.maxLength;
6060
6088
  rangeNumber.From = _this.RepeaterField.ControlOptions.minLength;
6061
6089
  Number.NumberRange = rangeNumber;
6090
+ Number.Value = _this.value;
6062
6091
  _this.renderComponentService.renderDynamicComponent(_this.Item, TextboxComponent, _this.group, Number);
6063
6092
  break;
6064
6093
  ///DateTime
@@ -6073,6 +6102,7 @@
6073
6102
  Date.PickerType = exports.PickerType.Calendar;
6074
6103
  Date.SelectMode = exports.SelectMode.Single;
6075
6104
  Date.StartView = exports.StartView.Month;
6105
+ Date.Value = _this.value;
6076
6106
  _this.renderComponentService.renderDynamicComponent(_this.Item, DateInputComponent, _this.group, Date);
6077
6107
  break;
6078
6108
  case exports.DataType.DateTime:
@@ -6086,6 +6116,7 @@
6086
6116
  DateTime.PickerType = exports.PickerType.Both;
6087
6117
  DateTime.SelectMode = exports.SelectMode.Single;
6088
6118
  DateTime.StartView = exports.StartView.Month;
6119
+ DateTime.Value = _this.value;
6089
6120
  _this.renderComponentService.renderDynamicComponent(_this.Item, DateInputComponent, _this.group, DateTime);
6090
6121
  break;
6091
6122
  case exports.DataType.Time:
@@ -6099,6 +6130,7 @@
6099
6130
  Time.PickerType = exports.PickerType.Timer;
6100
6131
  Time.SelectMode = exports.SelectMode.Single;
6101
6132
  Time.StartView = exports.StartView.Month;
6133
+ Time.Value = _this.value;
6102
6134
  _this.renderComponentService.renderDynamicComponent(_this.Item, DateInputComponent, _this.group, Time);
6103
6135
  break;
6104
6136
  //Dropdown
@@ -6114,6 +6146,7 @@
6114
6146
  SingleSelect.SingleSelection = true;
6115
6147
  SingleSelect.ShowCheckbox = false;
6116
6148
  SingleSelect.AllowSearchFilter = _this.RepeaterField.ControlOptions.hasSearch;
6149
+ SingleSelect.SelectedItems = _this.value;
6117
6150
  _this.renderComponentService.renderDynamicComponent(_this.Item, DropdownListComponent, _this.group, SingleSelect);
6118
6151
  break;
6119
6152
  case exports.DataType.MulipleSelect:
@@ -6128,6 +6161,7 @@
6128
6161
  MulipleSelect.SingleSelection = false;
6129
6162
  MulipleSelect.ShowCheckbox = false;
6130
6163
  MulipleSelect.AllowSearchFilter = _this.RepeaterField.ControlOptions.hasSearch;
6164
+ MulipleSelect.SelectedItems = _this.value;
6131
6165
  _this.renderComponentService.renderDynamicComponent(_this.Item, DropdownListComponent, _this.group, MulipleSelect);
6132
6166
  break;
6133
6167
  case exports.DataType.Goal:
@@ -6142,6 +6176,7 @@
6142
6176
  Goal.SingleSelection = !_this.RepeaterField.ControlOptions.isMultiple;
6143
6177
  Goal.ShowCheckbox = false;
6144
6178
  Goal.AllowSearchFilter = _this.RepeaterField.ControlOptions.hasSearch;
6179
+ Goal.SelectedItems = _this.value;
6145
6180
  _this.renderComponentService.renderDynamicComponent(_this.Item, DropdownListComponent, _this.group, Goal);
6146
6181
  break;
6147
6182
  case exports.DataType.Challenge:
@@ -6157,6 +6192,7 @@
6157
6192
  Challenge.SingleSelection = !_this.RepeaterField.ControlOptions.isMultiple;
6158
6193
  Challenge.ShowCheckbox = false;
6159
6194
  Challenge.AllowSearchFilter = _this.RepeaterField.ControlOptions.hasSearch;
6195
+ Challenge.SelectedItems = _this.value;
6160
6196
  _this.renderComponentService.renderDynamicComponent(_this.Item, DropdownListComponent, _this.group, Challenge);
6161
6197
  break;
6162
6198
  case exports.DataType.InnovationLab:
@@ -6171,6 +6207,7 @@
6171
6207
  InnovationLab.SingleSelection = !_this.RepeaterField.ControlOptions.isMultiple;
6172
6208
  InnovationLab.ShowCheckbox = false;
6173
6209
  InnovationLab.AllowSearchFilter = _this.RepeaterField.ControlOptions.hasSearch;
6210
+ InnovationLab.SelectedItems = _this.value;
6174
6211
  _this.renderComponentService.renderDynamicComponent(_this.Item, DropdownListComponent, _this.group, InnovationLab);
6175
6212
  break;
6176
6213
  case exports.DataType.Country:
@@ -6185,6 +6222,7 @@
6185
6222
  Country.SingleSelection = !_this.RepeaterField.ControlOptions.isMultiple;
6186
6223
  Country.ShowCheckbox = false;
6187
6224
  Country.AllowSearchFilter = _this.RepeaterField.ControlOptions.hasSearch;
6225
+ Country.SelectedItems = _this.value;
6188
6226
  _this.renderComponentService.renderDynamicComponent(_this.Item, DropdownListComponent, _this.group, Country);
6189
6227
  break;
6190
6228
  //FileUpload
@@ -6197,6 +6235,7 @@
6197
6235
  File.ViewType = _this.RepeaterField.ControlOptions.ViewType;
6198
6236
  File.LabelDescription = _this.RepeaterField.ControlOptions.LabelDescription ? _this.RepeaterField.ControlOptions.LabelDescription : "";
6199
6237
  File.FileMaxSizeInMB = _this.RepeaterField.ControlOptions.maxFileSizeInMB;
6238
+ File.Value = _this.value;
6200
6239
  _this.renderComponentService.renderDynamicComponent(_this.Item, FileUploadComponent, _this.group, File);
6201
6240
  break;
6202
6241
  case exports.DataType.MultiFile:
@@ -6210,6 +6249,7 @@
6210
6249
  MultiFile.MaxSizeForAllFilesInMB = _this.RepeaterField.ControlOptions.maxFileSizeInMB;
6211
6250
  MultiFile.MaxNoOfFiles = _this.RepeaterField.ControlOptions.maxFileCount;
6212
6251
  MultiFile.IsMultipleFile = true;
6252
+ MultiFile.Value = _this.value;
6213
6253
  _this.renderComponentService.renderDynamicComponent(_this.Item, FileUploadComponent, _this.group, MultiFile);
6214
6254
  break;
6215
6255
  //ImageUpload
@@ -6223,6 +6263,7 @@
6223
6263
  Image.LabelDescription = _this.RepeaterField.ControlOptions.LabelDescription ? _this.RepeaterField.ControlOptions.LabelDescription : "";
6224
6264
  if (_this.RepeaterField.ControlOptions.maxFileSizeInMB)
6225
6265
  Image.FileMaxSizeInMB = _this.RepeaterField.ControlOptions.maxFileSizeInMB;
6266
+ Image.Value = _this.value;
6226
6267
  _this.renderComponentService.renderDynamicComponent(_this.Item, ImageUploaderComponent, _this.group, Image);
6227
6268
  break;
6228
6269
  case exports.DataType.CoverPhoto:
@@ -6235,6 +6276,7 @@
6235
6276
  CoverPhoto.LabelDescription = _this.RepeaterField.ControlOptions.LabelDescription ? _this.RepeaterField.ControlOptions.LabelDescription : "";
6236
6277
  if (_this.RepeaterField.ControlOptions.maxFileSizeInMB)
6237
6278
  CoverPhoto.FileMaxSizeInMB = _this.RepeaterField.ControlOptions.maxFileSizeInMB;
6279
+ CoverPhoto.Value = _this.value;
6238
6280
  _this.renderComponentService.renderDynamicComponent(_this.Item, ImageUploaderComponent, _this.group, CoverPhoto);
6239
6281
  break;
6240
6282
  //Mobile
@@ -6250,6 +6292,7 @@
6250
6292
  Mobile.PhoneValidation = true;
6251
6293
  Mobile.SelectFirstCountry = true;
6252
6294
  Mobile.EnablePlaceholder = true;
6295
+ Mobile.Value = _this.value;
6253
6296
  _this.renderComponentService.renderDynamicComponent(_this.Item, PhoneComponent, _this.group, Mobile);
6254
6297
  break;
6255
6298
  //MultilineText
@@ -6267,6 +6310,7 @@
6267
6310
  MultilineText.MinLength = _this.RepeaterField.ControlOptions.minLength;
6268
6311
  MultilineText.Rows = _this.RepeaterField.ControlOptions.rows;
6269
6312
  MultilineText.ForceDirection = _this.RepeaterField.ControlOptions.ForceDirection;
6313
+ MultilineText.Value = _this.value;
6270
6314
  _this.renderComponentService.renderDynamicComponent(_this.Item, TextAreaComponent, _this.group, MultilineText);
6271
6315
  break;
6272
6316
  //HTML
@@ -6284,6 +6328,7 @@
6284
6328
  HTML.MinLength = _this.RepeaterField.ControlOptions.minLength;
6285
6329
  HTML.Height = _this.RepeaterField.ControlOptions.rows;
6286
6330
  HTML.ForceDirection = _this.RepeaterField.ControlOptions.ForceDirection;
6331
+ HTML.Value = _this.value;
6287
6332
  _this.renderComponentService.renderDynamicComponent(_this.Item, HtmlEditorComponent, _this.group, HTML);
6288
6333
  break;
6289
6334
  //Boolean
@@ -6293,6 +6338,7 @@
6293
6338
  Boolean.HideLabel = _this.RepeaterField.ControlOptions.HideLabel;
6294
6339
  Boolean.LabelKey = _this.RepeaterField.ControlOptions.LabelKey;
6295
6340
  Boolean.ViewType = _this.RepeaterField.ControlOptions.ViewType;
6341
+ Boolean.Value = _this.value;
6296
6342
  Boolean.LabelDescription = _this.RepeaterField.ControlOptions.LabelDescription ? _this.RepeaterField.ControlOptions.LabelDescription : "";
6297
6343
  _this.renderComponentService.renderDynamicComponent(_this.Item, ToggleslideComponent, _this.group, Boolean);
6298
6344
  break;
@@ -6304,6 +6350,7 @@
6304
6350
  Location.LabelKey = _this.RepeaterField.ControlOptions.LabelKey;
6305
6351
  Location.IsRequired = _this.RepeaterField.ControlOptions.IsRequired;
6306
6352
  Location.ViewType = _this.RepeaterField.ControlOptions.ViewType;
6353
+ Location.Value = _this.value;
6307
6354
  Location.LabelDescription = _this.RepeaterField.ControlOptions.LabelDescription ? _this.RepeaterField.ControlOptions.LabelDescription : "";
6308
6355
  _this.renderComponentService.renderDynamicComponent(_this.Item, MapAutoCompleteComponent, _this.group, Location);
6309
6356
  break;
@@ -6313,341 +6360,342 @@
6313
6360
  }, 0);
6314
6361
  };
6315
6362
  RepeaterFieldBuilderComponent.prototype.ngOnChanges = function (changes) {
6316
- if (changes.itemNumber.previousValue) {
6317
- var name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.previousValue.toString() + "." + this.controlNumber.toString();
6318
- var value = this.group.controls[name].value;
6319
- this.Item.clear();
6320
- this.group.removeControl(name);
6321
- switch (this.RepeaterField.ControlType) {
6322
- ///TextBox
6323
- case exports.DataType.Text:
6324
- var Text = new TextBoxOptions();
6325
- Text.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6326
- Text.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6327
- Text.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6328
- Text.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6329
- Text.ViewType = this.RepeaterField.ControlOptions.ViewType;
6330
- Text.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6331
- Text.Type = exports.InputType.Text;
6332
- if (this.RepeaterField.ControlOptions.maxLength)
6333
- Text.MaxLength = this.RepeaterField.ControlOptions.maxLength;
6334
- if (this.RepeaterField.ControlOptions.minLength)
6335
- Text.MinLength = this.RepeaterField.ControlOptions.minLength;
6336
- Text.Value = value;
6337
- this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Text);
6338
- break;
6339
- case exports.DataType.Name:
6340
- var Name = new TextBoxOptions();
6341
- Name.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6342
- Name.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6343
- Name.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6344
- Name.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6345
- Name.ViewType = this.RepeaterField.ControlOptions.ViewType;
6346
- Name.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6347
- if (this.RepeaterField.ControlOptions.maxLength)
6348
- Name.MaxLength = this.RepeaterField.ControlOptions.maxLength;
6349
- if (this.RepeaterField.ControlOptions.minLength)
6350
- Name.MinLength = this.RepeaterField.ControlOptions.minLength;
6351
- Name.Type = exports.InputType.Text;
6352
- Name.Value = value;
6353
- this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Name);
6354
- break;
6355
- case exports.DataType.Email:
6356
- var Email = new TextBoxOptions();
6357
- Email.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6358
- Email.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6359
- Email.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6360
- Email.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6361
- Email.ViewType = this.RepeaterField.ControlOptions.ViewType;
6362
- Email.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6363
- Email.Type = exports.InputType.Email;
6364
- Email.Value = value;
6365
- this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Email);
6366
- break;
6367
- case exports.DataType.Number:
6368
- var Number = new TextBoxOptions();
6369
- Number.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6370
- Number.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6371
- Number.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6372
- Number.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6373
- Number.ViewType = this.RepeaterField.ControlOptions.ViewType;
6374
- Number.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6375
- Number.Type = exports.InputType.Number;
6376
- var rangeNumber = new RangeNumber();
6377
- rangeNumber.To = this.RepeaterField.ControlOptions.maxLength;
6378
- rangeNumber.From = this.RepeaterField.ControlOptions.minLength;
6379
- Number.NumberRange = rangeNumber;
6380
- Number.Value = value;
6381
- this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Number);
6382
- break;
6383
- ///DateTime
6384
- case exports.DataType.Date:
6385
- var Date = new DatePickerOptions();
6386
- Date.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6387
- Date.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6388
- Date.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6389
- Date.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6390
- Date.ViewType = this.RepeaterField.ControlOptions.ViewType;
6391
- Date.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6392
- Date.PickerType = exports.PickerType.Calendar;
6393
- Date.SelectMode = exports.SelectMode.Single;
6394
- Date.StartView = exports.StartView.Month;
6395
- Date.Value = value;
6396
- this.renderComponentService.renderDynamicComponent(this.Item, DateInputComponent, this.group, Date);
6397
- break;
6398
- case exports.DataType.DateTime:
6399
- var DateTime = new DatePickerOptions();
6400
- DateTime.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6401
- DateTime.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6402
- DateTime.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6403
- DateTime.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6404
- DateTime.ViewType = this.RepeaterField.ControlOptions.ViewType;
6405
- DateTime.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6406
- DateTime.PickerType = exports.PickerType.Both;
6407
- DateTime.SelectMode = exports.SelectMode.Single;
6408
- DateTime.StartView = exports.StartView.Month;
6409
- DateTime.Value = value;
6410
- this.renderComponentService.renderDynamicComponent(this.Item, DateInputComponent, this.group, DateTime);
6411
- break;
6412
- case exports.DataType.Time:
6413
- var Time = new DatePickerOptions();
6414
- Time.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6415
- Time.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6416
- Time.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6417
- Time.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6418
- Time.ViewType = this.RepeaterField.ControlOptions.ViewType;
6419
- Time.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6420
- Time.PickerType = exports.PickerType.Timer;
6421
- Time.SelectMode = exports.SelectMode.Single;
6422
- Time.StartView = exports.StartView.Month;
6423
- Time.Value = value;
6424
- this.renderComponentService.renderDynamicComponent(this.Item, DateInputComponent, this.group, Time);
6425
- break;
6426
- //Dropdown
6427
- case exports.DataType.SingleSelect:
6428
- var SingleSelect = new DropdownOptions();
6429
- SingleSelect.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6430
- SingleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6431
- SingleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6432
- SingleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6433
- SingleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;
6434
- SingleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6435
- SingleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource;
6436
- SingleSelect.SingleSelection = true;
6437
- SingleSelect.ShowCheckbox = false;
6438
- SingleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6439
- SingleSelect.SelectedItems = value;
6440
- this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, SingleSelect);
6441
- break;
6442
- case exports.DataType.MulipleSelect:
6443
- var MulipleSelect = new DropdownOptions();
6444
- MulipleSelect.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6445
- MulipleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6446
- MulipleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6447
- MulipleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6448
- MulipleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;
6449
- MulipleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6450
- MulipleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource;
6451
- MulipleSelect.SingleSelection = false;
6452
- MulipleSelect.ShowCheckbox = false;
6453
- MulipleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6454
- MulipleSelect.SelectedItems = value;
6455
- this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, MulipleSelect);
6456
- break;
6457
- case exports.DataType.Goal:
6458
- var Goal = new DropdownOptions();
6459
- Goal.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6460
- Goal.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6461
- Goal.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6462
- Goal.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6463
- Goal.ViewType = this.RepeaterField.ControlOptions.ViewType;
6464
- Goal.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6465
- Goal.DataSource = this.RepeaterField.ControlOptions.dataSource;
6466
- Goal.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
6467
- Goal.ShowCheckbox = false;
6468
- Goal.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6469
- Goal.SelectedItems = value;
6470
- this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, Goal);
6471
- break;
6472
- case exports.DataType.Challenge:
6473
- var Challenge = new DropdownOptions();
6474
- Challenge.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6475
- Challenge.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6476
- Challenge.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6477
- Challenge.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6478
- Challenge.ViewType = this.RepeaterField.ControlOptions.ViewType;
6479
- Challenge.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6480
- Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource;
6481
- Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource;
6482
- Challenge.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
6483
- Challenge.ShowCheckbox = false;
6484
- Challenge.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6485
- Challenge.SelectedItems = value;
6486
- this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, Challenge);
6487
- break;
6488
- case exports.DataType.InnovationLab:
6489
- var InnovationLab = new DropdownOptions();
6490
- InnovationLab.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6491
- InnovationLab.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6492
- InnovationLab.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6493
- InnovationLab.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6494
- InnovationLab.ViewType = this.RepeaterField.ControlOptions.ViewType;
6495
- InnovationLab.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6496
- InnovationLab.DataSource = this.RepeaterField.ControlOptions.dataSource;
6497
- InnovationLab.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
6498
- InnovationLab.ShowCheckbox = false;
6499
- InnovationLab.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6500
- InnovationLab.SelectedItems = value;
6501
- this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, InnovationLab);
6502
- break;
6503
- case exports.DataType.Country:
6504
- var Country = new DropdownOptions();
6505
- Country.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6506
- Country.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6507
- Country.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6508
- Country.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6509
- Country.ViewType = this.RepeaterField.ControlOptions.ViewType;
6510
- Country.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6511
- Country.DataSource = this.RepeaterField.ControlOptions.dataSource;
6512
- Country.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
6513
- Country.ShowCheckbox = false;
6514
- Country.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6515
- Country.SelectedItems = value;
6516
- this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, Country);
6517
- break;
6518
- //FileUpload
6519
- case exports.DataType.File:
6520
- var File = new FileUploadOptions();
6521
- File.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6522
- File.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6523
- File.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6524
- File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6525
- File.ViewType = this.RepeaterField.ControlOptions.ViewType;
6526
- File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6527
- File.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
6528
- File.Value = value;
6529
- this.renderComponentService.renderDynamicComponent(this.Item, FileUploadComponent, this.group, File);
6530
- break;
6531
- case exports.DataType.MultiFile:
6532
- var MultiFile = new FileUploadOptions();
6533
- File.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6534
- File.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6535
- File.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6536
- File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6537
- File.ViewType = this.RepeaterField.ControlOptions.ViewType;
6538
- File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6539
- MultiFile.MaxSizeForAllFilesInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
6540
- MultiFile.MaxNoOfFiles = this.RepeaterField.ControlOptions.maxFileCount;
6541
- MultiFile.IsMultipleFile = true;
6542
- MultiFile.Value = value;
6543
- this.renderComponentService.renderDynamicComponent(this.Item, FileUploadComponent, this.group, MultiFile);
6544
- break;
6545
- //ImageUpload
6546
- case exports.DataType.Image:
6547
- var Image = new ImageUploadOptions();
6548
- Image.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6549
- Image.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6550
- Image.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6551
- Image.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6552
- Image.ViewType = this.RepeaterField.ControlOptions.ViewType;
6553
- Image.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6554
- if (this.RepeaterField.ControlOptions.maxFileSizeInMB)
6555
- Image.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
6556
- Image.Value = value;
6557
- this.renderComponentService.renderDynamicComponent(this.Item, ImageUploaderComponent, this.group, Image);
6558
- break;
6559
- case exports.DataType.CoverPhoto:
6560
- var CoverPhoto = new ImageUploadOptions();
6561
- CoverPhoto.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6562
- CoverPhoto.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6563
- CoverPhoto.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6564
- CoverPhoto.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6565
- CoverPhoto.ViewType = this.RepeaterField.ControlOptions.ViewType;
6566
- CoverPhoto.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6567
- if (this.RepeaterField.ControlOptions.maxFileSizeInMB)
6568
- CoverPhoto.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
6569
- CoverPhoto.Value = value;
6570
- this.renderComponentService.renderDynamicComponent(this.Item, ImageUploaderComponent, this.group, CoverPhoto);
6571
- break;
6572
- //Mobile
6573
- case exports.DataType.Mobile:
6574
- var Mobile = new PhoneOptions();
6575
- Mobile.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6576
- Mobile.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6577
- Mobile.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6578
- Mobile.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6579
- Mobile.ViewType = this.RepeaterField.ControlOptions.ViewType;
6580
- Mobile.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6581
- Mobile.AllowSearch = true;
6582
- Mobile.PhoneValidation = true;
6583
- Mobile.SelectFirstCountry = true;
6584
- Mobile.EnablePlaceholder = true;
6585
- Mobile.Value = value;
6586
- this.renderComponentService.renderDynamicComponent(this.Item, PhoneComponent, this.group, Mobile);
6587
- break;
6588
- //MultilineText
6589
- case exports.DataType.MultilineText:
6590
- var MultilineText = new TextAreaOptions();
6591
- MultilineText.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6592
- MultilineText.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6593
- MultilineText.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6594
- MultilineText.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6595
- MultilineText.ViewType = this.RepeaterField.ControlOptions.ViewType;
6596
- MultilineText.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6597
- if (this.RepeaterField.ControlOptions.maxLength)
6598
- MultilineText.MaxLength = this.RepeaterField.ControlOptions.maxLength;
6599
- if (this.RepeaterField.ControlOptions.minLength)
6600
- MultilineText.MinLength = this.RepeaterField.ControlOptions.minLength;
6601
- MultilineText.Rows = this.RepeaterField.ControlOptions.rows;
6602
- MultilineText.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection;
6603
- MultilineText.Value = value;
6604
- this.renderComponentService.renderDynamicComponent(this.Item, TextAreaComponent, this.group, MultilineText);
6605
- break;
6606
- //HTML
6607
- case exports.DataType.HTML:
6608
- var HTML = new HtmlEditorOptions();
6609
- HTML.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6610
- HTML.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6611
- HTML.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6612
- HTML.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6613
- HTML.ViewType = this.RepeaterField.ControlOptions.ViewType;
6614
- HTML.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6615
- if (this.RepeaterField.ControlOptions.maxLength)
6616
- HTML.MaxLength = this.RepeaterField.ControlOptions.maxLength;
6617
- if (this.RepeaterField.ControlOptions.minLength)
6618
- HTML.MinLength = this.RepeaterField.ControlOptions.minLength;
6619
- HTML.Height = this.RepeaterField.ControlOptions.rows;
6620
- HTML.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection;
6621
- HTML.Value = value;
6622
- this.renderComponentService.renderDynamicComponent(this.Item, HtmlEditorComponent, this.group, HTML);
6623
- break;
6624
- //Boolean
6625
- case exports.DataType.Boolean:
6626
- var Boolean = new ToggleSlideOptions();
6627
- Boolean.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6628
- Boolean.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6629
- Boolean.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6630
- Boolean.ViewType = this.RepeaterField.ControlOptions.ViewType;
6631
- Boolean.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6632
- Boolean.Value = value;
6633
- this.renderComponentService.renderDynamicComponent(this.Item, ToggleslideComponent, this.group, Boolean);
6634
- break;
6635
- //Location
6636
- case exports.DataType.Location:
6637
- var Location = new MapAutoCompleteOptions();
6638
- Location.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6639
- Location.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6640
- Location.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6641
- Location.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6642
- Location.ViewType = this.RepeaterField.ControlOptions.ViewType;
6643
- Location.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6644
- Location.Value = value;
6645
- this.renderComponentService.renderDynamicComponent(this.Item, MapAutoCompleteComponent, this.group, Location);
6646
- break;
6647
- default:
6648
- break;
6363
+ if (changes.itemNumber)
6364
+ if (changes.itemNumber.previousValue) {
6365
+ var name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.previousValue.toString() + "." + this.controlNumber.toString();
6366
+ var value = this.group.controls[name].value;
6367
+ this.Item.clear();
6368
+ this.group.removeControl(name);
6369
+ switch (this.RepeaterField.ControlType) {
6370
+ ///TextBox
6371
+ case exports.DataType.Text:
6372
+ var Text = new TextBoxOptions();
6373
+ Text.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6374
+ Text.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6375
+ Text.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6376
+ Text.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6377
+ Text.ViewType = this.RepeaterField.ControlOptions.ViewType;
6378
+ Text.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6379
+ Text.Type = exports.InputType.Text;
6380
+ if (this.RepeaterField.ControlOptions.maxLength)
6381
+ Text.MaxLength = this.RepeaterField.ControlOptions.maxLength;
6382
+ if (this.RepeaterField.ControlOptions.minLength)
6383
+ Text.MinLength = this.RepeaterField.ControlOptions.minLength;
6384
+ Text.Value = value;
6385
+ this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Text);
6386
+ break;
6387
+ case exports.DataType.Name:
6388
+ var Name = new TextBoxOptions();
6389
+ Name.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6390
+ Name.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6391
+ Name.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6392
+ Name.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6393
+ Name.ViewType = this.RepeaterField.ControlOptions.ViewType;
6394
+ Name.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6395
+ if (this.RepeaterField.ControlOptions.maxLength)
6396
+ Name.MaxLength = this.RepeaterField.ControlOptions.maxLength;
6397
+ if (this.RepeaterField.ControlOptions.minLength)
6398
+ Name.MinLength = this.RepeaterField.ControlOptions.minLength;
6399
+ Name.Type = exports.InputType.Text;
6400
+ Name.Value = value;
6401
+ this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Name);
6402
+ break;
6403
+ case exports.DataType.Email:
6404
+ var Email = new TextBoxOptions();
6405
+ Email.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6406
+ Email.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6407
+ Email.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6408
+ Email.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6409
+ Email.ViewType = this.RepeaterField.ControlOptions.ViewType;
6410
+ Email.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6411
+ Email.Type = exports.InputType.Email;
6412
+ Email.Value = value;
6413
+ this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Email);
6414
+ break;
6415
+ case exports.DataType.Number:
6416
+ var Number = new TextBoxOptions();
6417
+ Number.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6418
+ Number.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6419
+ Number.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6420
+ Number.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6421
+ Number.ViewType = this.RepeaterField.ControlOptions.ViewType;
6422
+ Number.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6423
+ Number.Type = exports.InputType.Number;
6424
+ var rangeNumber = new RangeNumber();
6425
+ rangeNumber.To = this.RepeaterField.ControlOptions.maxLength;
6426
+ rangeNumber.From = this.RepeaterField.ControlOptions.minLength;
6427
+ Number.NumberRange = rangeNumber;
6428
+ Number.Value = value;
6429
+ this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Number);
6430
+ break;
6431
+ ///DateTime
6432
+ case exports.DataType.Date:
6433
+ var Date = new DatePickerOptions();
6434
+ Date.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6435
+ Date.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6436
+ Date.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6437
+ Date.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6438
+ Date.ViewType = this.RepeaterField.ControlOptions.ViewType;
6439
+ Date.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6440
+ Date.PickerType = exports.PickerType.Calendar;
6441
+ Date.SelectMode = exports.SelectMode.Single;
6442
+ Date.StartView = exports.StartView.Month;
6443
+ Date.Value = value;
6444
+ this.renderComponentService.renderDynamicComponent(this.Item, DateInputComponent, this.group, Date);
6445
+ break;
6446
+ case exports.DataType.DateTime:
6447
+ var DateTime = new DatePickerOptions();
6448
+ DateTime.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6449
+ DateTime.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6450
+ DateTime.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6451
+ DateTime.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6452
+ DateTime.ViewType = this.RepeaterField.ControlOptions.ViewType;
6453
+ DateTime.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6454
+ DateTime.PickerType = exports.PickerType.Both;
6455
+ DateTime.SelectMode = exports.SelectMode.Single;
6456
+ DateTime.StartView = exports.StartView.Month;
6457
+ DateTime.Value = value;
6458
+ this.renderComponentService.renderDynamicComponent(this.Item, DateInputComponent, this.group, DateTime);
6459
+ break;
6460
+ case exports.DataType.Time:
6461
+ var Time = new DatePickerOptions();
6462
+ Time.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6463
+ Time.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6464
+ Time.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6465
+ Time.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6466
+ Time.ViewType = this.RepeaterField.ControlOptions.ViewType;
6467
+ Time.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6468
+ Time.PickerType = exports.PickerType.Timer;
6469
+ Time.SelectMode = exports.SelectMode.Single;
6470
+ Time.StartView = exports.StartView.Month;
6471
+ Time.Value = value;
6472
+ this.renderComponentService.renderDynamicComponent(this.Item, DateInputComponent, this.group, Time);
6473
+ break;
6474
+ //Dropdown
6475
+ case exports.DataType.SingleSelect:
6476
+ var SingleSelect = new DropdownOptions();
6477
+ SingleSelect.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6478
+ SingleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6479
+ SingleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6480
+ SingleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6481
+ SingleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;
6482
+ SingleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6483
+ SingleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource;
6484
+ SingleSelect.SingleSelection = true;
6485
+ SingleSelect.ShowCheckbox = false;
6486
+ SingleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6487
+ SingleSelect.SelectedItems = value;
6488
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, SingleSelect);
6489
+ break;
6490
+ case exports.DataType.MulipleSelect:
6491
+ var MulipleSelect = new DropdownOptions();
6492
+ MulipleSelect.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6493
+ MulipleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6494
+ MulipleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6495
+ MulipleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6496
+ MulipleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;
6497
+ MulipleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6498
+ MulipleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource;
6499
+ MulipleSelect.SingleSelection = false;
6500
+ MulipleSelect.ShowCheckbox = false;
6501
+ MulipleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6502
+ MulipleSelect.SelectedItems = value;
6503
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, MulipleSelect);
6504
+ break;
6505
+ case exports.DataType.Goal:
6506
+ var Goal = new DropdownOptions();
6507
+ Goal.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6508
+ Goal.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6509
+ Goal.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6510
+ Goal.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6511
+ Goal.ViewType = this.RepeaterField.ControlOptions.ViewType;
6512
+ Goal.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6513
+ Goal.DataSource = this.RepeaterField.ControlOptions.dataSource;
6514
+ Goal.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
6515
+ Goal.ShowCheckbox = false;
6516
+ Goal.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6517
+ Goal.SelectedItems = value;
6518
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, Goal);
6519
+ break;
6520
+ case exports.DataType.Challenge:
6521
+ var Challenge = new DropdownOptions();
6522
+ Challenge.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6523
+ Challenge.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6524
+ Challenge.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6525
+ Challenge.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6526
+ Challenge.ViewType = this.RepeaterField.ControlOptions.ViewType;
6527
+ Challenge.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6528
+ Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource;
6529
+ Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource;
6530
+ Challenge.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
6531
+ Challenge.ShowCheckbox = false;
6532
+ Challenge.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6533
+ Challenge.SelectedItems = value;
6534
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, Challenge);
6535
+ break;
6536
+ case exports.DataType.InnovationLab:
6537
+ var InnovationLab = new DropdownOptions();
6538
+ InnovationLab.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6539
+ InnovationLab.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6540
+ InnovationLab.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6541
+ InnovationLab.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6542
+ InnovationLab.ViewType = this.RepeaterField.ControlOptions.ViewType;
6543
+ InnovationLab.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6544
+ InnovationLab.DataSource = this.RepeaterField.ControlOptions.dataSource;
6545
+ InnovationLab.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
6546
+ InnovationLab.ShowCheckbox = false;
6547
+ InnovationLab.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6548
+ InnovationLab.SelectedItems = value;
6549
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, InnovationLab);
6550
+ break;
6551
+ case exports.DataType.Country:
6552
+ var Country = new DropdownOptions();
6553
+ Country.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6554
+ Country.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6555
+ Country.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6556
+ Country.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6557
+ Country.ViewType = this.RepeaterField.ControlOptions.ViewType;
6558
+ Country.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6559
+ Country.DataSource = this.RepeaterField.ControlOptions.dataSource;
6560
+ Country.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
6561
+ Country.ShowCheckbox = false;
6562
+ Country.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6563
+ Country.SelectedItems = value;
6564
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, Country);
6565
+ break;
6566
+ //FileUpload
6567
+ case exports.DataType.File:
6568
+ var File = new FileUploadOptions();
6569
+ File.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6570
+ File.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6571
+ File.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6572
+ File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6573
+ File.ViewType = this.RepeaterField.ControlOptions.ViewType;
6574
+ File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6575
+ File.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
6576
+ File.Value = value;
6577
+ this.renderComponentService.renderDynamicComponent(this.Item, FileUploadComponent, this.group, File);
6578
+ break;
6579
+ case exports.DataType.MultiFile:
6580
+ var MultiFile = new FileUploadOptions();
6581
+ File.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6582
+ File.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6583
+ File.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6584
+ File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6585
+ File.ViewType = this.RepeaterField.ControlOptions.ViewType;
6586
+ File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6587
+ MultiFile.MaxSizeForAllFilesInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
6588
+ MultiFile.MaxNoOfFiles = this.RepeaterField.ControlOptions.maxFileCount;
6589
+ MultiFile.IsMultipleFile = true;
6590
+ MultiFile.Value = value;
6591
+ this.renderComponentService.renderDynamicComponent(this.Item, FileUploadComponent, this.group, MultiFile);
6592
+ break;
6593
+ //ImageUpload
6594
+ case exports.DataType.Image:
6595
+ var Image = new ImageUploadOptions();
6596
+ Image.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6597
+ Image.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6598
+ Image.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6599
+ Image.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6600
+ Image.ViewType = this.RepeaterField.ControlOptions.ViewType;
6601
+ Image.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6602
+ if (this.RepeaterField.ControlOptions.maxFileSizeInMB)
6603
+ Image.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
6604
+ Image.Value = value;
6605
+ this.renderComponentService.renderDynamicComponent(this.Item, ImageUploaderComponent, this.group, Image);
6606
+ break;
6607
+ case exports.DataType.CoverPhoto:
6608
+ var CoverPhoto = new ImageUploadOptions();
6609
+ CoverPhoto.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6610
+ CoverPhoto.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6611
+ CoverPhoto.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6612
+ CoverPhoto.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6613
+ CoverPhoto.ViewType = this.RepeaterField.ControlOptions.ViewType;
6614
+ CoverPhoto.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6615
+ if (this.RepeaterField.ControlOptions.maxFileSizeInMB)
6616
+ CoverPhoto.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
6617
+ CoverPhoto.Value = value;
6618
+ this.renderComponentService.renderDynamicComponent(this.Item, ImageUploaderComponent, this.group, CoverPhoto);
6619
+ break;
6620
+ //Mobile
6621
+ case exports.DataType.Mobile:
6622
+ var Mobile = new PhoneOptions();
6623
+ Mobile.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6624
+ Mobile.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6625
+ Mobile.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6626
+ Mobile.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6627
+ Mobile.ViewType = this.RepeaterField.ControlOptions.ViewType;
6628
+ Mobile.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6629
+ Mobile.AllowSearch = true;
6630
+ Mobile.PhoneValidation = true;
6631
+ Mobile.SelectFirstCountry = true;
6632
+ Mobile.EnablePlaceholder = true;
6633
+ Mobile.Value = value;
6634
+ this.renderComponentService.renderDynamicComponent(this.Item, PhoneComponent, this.group, Mobile);
6635
+ break;
6636
+ //MultilineText
6637
+ case exports.DataType.MultilineText:
6638
+ var MultilineText = new TextAreaOptions();
6639
+ MultilineText.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6640
+ MultilineText.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6641
+ MultilineText.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6642
+ MultilineText.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6643
+ MultilineText.ViewType = this.RepeaterField.ControlOptions.ViewType;
6644
+ MultilineText.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6645
+ if (this.RepeaterField.ControlOptions.maxLength)
6646
+ MultilineText.MaxLength = this.RepeaterField.ControlOptions.maxLength;
6647
+ if (this.RepeaterField.ControlOptions.minLength)
6648
+ MultilineText.MinLength = this.RepeaterField.ControlOptions.minLength;
6649
+ MultilineText.Rows = this.RepeaterField.ControlOptions.rows;
6650
+ MultilineText.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection;
6651
+ MultilineText.Value = value;
6652
+ this.renderComponentService.renderDynamicComponent(this.Item, TextAreaComponent, this.group, MultilineText);
6653
+ break;
6654
+ //HTML
6655
+ case exports.DataType.HTML:
6656
+ var HTML = new HtmlEditorOptions();
6657
+ HTML.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6658
+ HTML.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6659
+ HTML.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6660
+ HTML.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6661
+ HTML.ViewType = this.RepeaterField.ControlOptions.ViewType;
6662
+ HTML.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6663
+ if (this.RepeaterField.ControlOptions.maxLength)
6664
+ HTML.MaxLength = this.RepeaterField.ControlOptions.maxLength;
6665
+ if (this.RepeaterField.ControlOptions.minLength)
6666
+ HTML.MinLength = this.RepeaterField.ControlOptions.minLength;
6667
+ HTML.Height = this.RepeaterField.ControlOptions.rows;
6668
+ HTML.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection;
6669
+ HTML.Value = value;
6670
+ this.renderComponentService.renderDynamicComponent(this.Item, HtmlEditorComponent, this.group, HTML);
6671
+ break;
6672
+ //Boolean
6673
+ case exports.DataType.Boolean:
6674
+ var Boolean = new ToggleSlideOptions();
6675
+ Boolean.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6676
+ Boolean.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6677
+ Boolean.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6678
+ Boolean.ViewType = this.RepeaterField.ControlOptions.ViewType;
6679
+ Boolean.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6680
+ Boolean.Value = value;
6681
+ this.renderComponentService.renderDynamicComponent(this.Item, ToggleslideComponent, this.group, Boolean);
6682
+ break;
6683
+ //Location
6684
+ case exports.DataType.Location:
6685
+ var Location = new MapAutoCompleteOptions();
6686
+ Location.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6687
+ Location.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6688
+ Location.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6689
+ Location.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6690
+ Location.ViewType = this.RepeaterField.ControlOptions.ViewType;
6691
+ Location.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6692
+ Location.Value = value;
6693
+ this.renderComponentService.renderDynamicComponent(this.Item, MapAutoCompleteComponent, this.group, Location);
6694
+ break;
6695
+ default:
6696
+ break;
6697
+ }
6649
6698
  }
6650
- }
6651
6699
  };
6652
6700
  return RepeaterFieldBuilderComponent;
6653
6701
  }());
@@ -6666,7 +6714,8 @@
6666
6714
  group: [{ type: i0.Input }],
6667
6715
  itemNumber: [{ type: i0.Input }],
6668
6716
  controlNumber: [{ type: i0.Input }],
6669
- RepeaterField: [{ type: i0.Input }]
6717
+ RepeaterField: [{ type: i0.Input }],
6718
+ itemsValue: [{ type: i0.Input }]
6670
6719
  };
6671
6720
 
6672
6721
  var RepeaterItemFieldComponent = /** @class */ (function () {
@@ -6690,6 +6739,116 @@
6690
6739
  itemIndex: [{ type: i0.Input }]
6691
6740
  };
6692
6741
 
6742
+ var RepeaterTableComponent = /** @class */ (function () {
6743
+ function RepeaterTableComponent(utilityService) {
6744
+ this.utilityService = utilityService;
6745
+ this.items = [];
6746
+ this.originalItems = [];
6747
+ }
6748
+ RepeaterTableComponent.prototype.ngOnInit = function () {
6749
+ var _this = this;
6750
+ this.repeaterGroup = new forms.FormGroup({});
6751
+ this.group.addControl(this.options.Name, this.repeaterGroup);
6752
+ if (this.options.RepeaterValue.length > 0) {
6753
+ this.originalItems = this.options.RepeaterValue;
6754
+ for (var index = 0; index < this.options.RepeaterValue.length; index++) {
6755
+ this.items.push(index + 1);
6756
+ }
6757
+ }
6758
+ else
6759
+ for (var index = 0; index < this.options.MinRequiredItems; index++) {
6760
+ this.items.push(index);
6761
+ }
6762
+ this.repeaterGroup.valueChanges.subscribe(function (res) {
6763
+ var _a, _b;
6764
+ var result = [];
6765
+ var rowNumber = [];
6766
+ var addItems = [];
6767
+ for (var key in _this.repeaterGroup.controls) {
6768
+ if (Object.prototype.hasOwnProperty.call(_this.repeaterGroup.controls, key)) {
6769
+ var keySplitArr = key.split('.');
6770
+ var item = (_a = {},
6771
+ _a[keySplitArr[1]] = (_b = {}, _b[keySplitArr[0]] = _this.group.controls[_this.options.Name].value[key], _b),
6772
+ _a);
6773
+ addItems.push(item);
6774
+ if (!rowNumber.includes(keySplitArr[1]))
6775
+ rowNumber.push(keySplitArr[1]);
6776
+ }
6777
+ }
6778
+ var _loop_1 = function (index) {
6779
+ var row = rowNumber[index];
6780
+ var addObject = {};
6781
+ var filteredElements = addItems.filter(function (item) { return item[row]; });
6782
+ for (var index_1 = 0; index_1 < filteredElements.length; index_1++) {
6783
+ var filteredElement = filteredElements[index_1];
6784
+ for (var key in filteredElement) {
6785
+ if (Object.prototype.hasOwnProperty.call(filteredElement, key)) {
6786
+ var element = filteredElement[key];
6787
+ for (var key_1 in element) {
6788
+ if (Object.prototype.hasOwnProperty.call(element, key_1)) {
6789
+ var value = element[key_1];
6790
+ addObject[key_1] = value;
6791
+ }
6792
+ }
6793
+ }
6794
+ }
6795
+ }
6796
+ result.push(addObject);
6797
+ };
6798
+ for (var index = 0; index < rowNumber.length; index++) {
6799
+ _loop_1(index);
6800
+ }
6801
+ _this.options.RepeaterValue = result;
6802
+ });
6803
+ };
6804
+ RepeaterTableComponent.prototype.deleteItem = function (Index) {
6805
+ var _a;
6806
+ var _this = this;
6807
+ if (this.items.length == this.options.MinRequiredItems && this.options.IsRequired)
6808
+ return;
6809
+ var deletedControls = [];
6810
+ var controlNames = this.options.RepeaterStructure.map(function (e) { return e.ControlOptions.Name; });
6811
+ for (var key in this.repeaterGroup.controls) {
6812
+ if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {
6813
+ for (var index = 0; index < controlNames.length; index++) {
6814
+ var element = controlNames[index];
6815
+ var keySplitArr = key.split('.');
6816
+ if (keySplitArr[0] + keySplitArr[1] == "" + element + Index) {
6817
+ var element_1 = this.repeaterGroup.controls[key];
6818
+ deletedControls.push((_a = {}, _a[key] = element_1, _a));
6819
+ }
6820
+ }
6821
+ }
6822
+ }
6823
+ for (var index = 0; index < deletedControls.length; index++) {
6824
+ var element = deletedControls[index];
6825
+ for (var key in element) {
6826
+ if (Object.prototype.hasOwnProperty.call(element, key)) {
6827
+ this.repeaterGroup.removeControl(key);
6828
+ }
6829
+ }
6830
+ }
6831
+ this.items = this.items.filter(function (res) { return res != _this.items[Index]; });
6832
+ };
6833
+ RepeaterTableComponent.prototype.addItem = function () {
6834
+ this.items.push(this.items[this.items.length - 1] + 1);
6835
+ };
6836
+ return RepeaterTableComponent;
6837
+ }());
6838
+ RepeaterTableComponent.decorators = [
6839
+ { type: i0.Component, args: [{
6840
+ selector: 'BBSF-repeater-table',
6841
+ 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\" [itemsValue]=\"originalItems\"\r\n [controlNumber]=\"r\" [group]=\"repeaterGroup\"></repeater-field-builder>\r\n </td>\r\n <td>\r\n <button class=\"{{options.DeleteButtonExtraClasses}}\" type=\"button\" (click)=\"deleteItem(i)\"\r\n [disabled]=\"(items.length ==options.MinRequiredItems&&options.IsRequired) ||(originalItems.length-1>=i)\"> <span\r\n [innerHTML]=\"options.DeleteButtonText\"></span></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n <tfoot>\r\n <tr>\r\n <button class=\"{{options.AddButtonExtraClasses}}\" type=\"button\" (click)=\"addItem()\"><span\r\n [innerHTML]=\"options.AddButtonText\"></span></button>\r\n </tr>\r\n </tfoot>\r\n </table>\r\n</div>"
6842
+ },] }
6843
+ ];
6844
+ RepeaterTableComponent.ctorParameters = function () { return [
6845
+ { type: bbsfUtilities.UtilityService }
6846
+ ]; };
6847
+ RepeaterTableComponent.propDecorators = {
6848
+ group: [{ type: i0.Input }],
6849
+ options: [{ type: i0.Input }]
6850
+ };
6851
+
6693
6852
  var options;
6694
6853
  exports.AppInjector = void 0;
6695
6854
  angular.FullCalendarModule.registerPlugins([
@@ -6738,6 +6897,7 @@
6738
6897
  RepeaterFieldBuilderComponent,
6739
6898
  NgTemplateNameDirective,
6740
6899
  RepeaterItemFieldComponent,
6900
+ RepeaterTableComponent
6741
6901
  ],
6742
6902
  imports: [
6743
6903
  common.CommonModule,
@@ -6832,6 +6992,7 @@
6832
6992
  RepeaterFieldBuilderComponent,
6833
6993
  NgTemplateNameDirective,
6834
6994
  RepeaterItemFieldComponent,
6995
+ RepeaterTableComponent
6835
6996
  ]
6836
6997
  },] }
6837
6998
  ];
@@ -7237,6 +7398,7 @@
7237
7398
  var RepeaterOptions = /** @class */ (function () {
7238
7399
  function RepeaterOptions() {
7239
7400
  this.MinRequiredItems = 1;
7401
+ this.ActionLabelKey = "";
7240
7402
  this.AddButtonText = "Add";
7241
7403
  this.DeleteButtonText = "Delete";
7242
7404
  this.RepeaterValue = [];
@@ -7634,6 +7796,7 @@
7634
7796
  exports.RepeaterFieldBuilderComponent = RepeaterFieldBuilderComponent;
7635
7797
  exports.RepeaterItemFieldComponent = RepeaterItemFieldComponent;
7636
7798
  exports.RepeaterOptions = RepeaterOptions;
7799
+ exports.RepeaterTableComponent = RepeaterTableComponent;
7637
7800
  exports.SaveDTO = SaveDTO;
7638
7801
  exports.TagsInputComponent = TagsInputComponent;
7639
7802
  exports.TagsInputDTO = TagsInputDTO;