@bnsights/bbsf-controls 1.0.6 → 1.0.10

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 (71) hide show
  1. package/bnsights-bbsf-controls-1.0.10.tgz +0 -0
  2. package/bnsights-bbsf-controls.metadata.json +1 -1
  3. package/bundles/bnsights-bbsf-controls.umd.js +290 -188
  4. package/bundles/bnsights-bbsf-controls.umd.js.map +1 -1
  5. package/esm2015/lib/Shared/Models/AutocompleteOptions.js +2 -3
  6. package/esm2015/lib/Shared/Models/ConfirmationModalOptions.js +2 -5
  7. package/esm2015/lib/Shared/Models/DropdownOptions.js +2 -3
  8. package/esm2015/lib/Shared/Models/FileUploadOptions.js +2 -3
  9. package/esm2015/lib/Shared/Models/HtmlEditorOptions.js +2 -3
  10. package/esm2015/lib/Shared/Models/ImageUploadOptions.js +2 -3
  11. package/esm2015/lib/Shared/Models/MapAutoCompleteOptions.js +2 -3
  12. package/esm2015/lib/Shared/Models/MultiLingualHtmlEditorOptions.js +3 -5
  13. package/esm2015/lib/Shared/Models/MultiLingualTextAreaOptions.js +4 -6
  14. package/esm2015/lib/Shared/Models/MultilingualTextBoxOptions.js +4 -6
  15. package/esm2015/lib/Shared/Models/PhoneOptions.js +2 -3
  16. package/esm2015/lib/Shared/Models/ProfileImageUploadOptions.js +2 -3
  17. package/esm2015/lib/Shared/Models/RadioButtonOptions.js +2 -3
  18. package/esm2015/lib/Shared/Models/TagsInputOptions.js +2 -3
  19. package/esm2015/lib/Shared/Models/TextAreaOptions.js +2 -3
  20. package/esm2015/lib/Shared/Models/TextBoxOptions.js +2 -3
  21. package/esm2015/lib/Shared/Models/ToggleslideOptions.js +2 -3
  22. package/esm2015/lib/Shared/services/ControlUtility.js +3 -3
  23. package/esm2015/lib/Shared/services/GlobalSettings.service.js +20 -0
  24. package/esm2015/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.js +16 -9
  25. package/esm2015/lib/controls/ConfirmationModal/ConfirmationModal.component.js +34 -18
  26. package/esm2015/lib/controls/DropdownList/DropdownList.component.js +10 -7
  27. package/esm2015/lib/controls/FileUplaod/FileUplaod.component.js +9 -6
  28. package/esm2015/lib/controls/Form/Form.component.js +22 -4
  29. package/esm2015/lib/controls/HtmlEditor/HtmlEditor.component.js +9 -6
  30. package/esm2015/lib/controls/ImageUpload/ImageUpload.component.js +14 -10
  31. package/esm2015/lib/controls/MapAutoComplete/MapAutoComplete.component.js +8 -9
  32. package/esm2015/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.js +41 -30
  33. package/esm2015/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.js +13 -9
  34. package/esm2015/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.js +13 -7
  35. package/esm2015/lib/controls/Paging/Paging.component.js +6 -4
  36. package/esm2015/lib/controls/Phone/Phone.component.js +8 -6
  37. package/esm2015/lib/controls/ProfileImageUploader/ProfileImageUploader.component.js +13 -7
  38. package/esm2015/lib/controls/RadioButton/RadioButton.component.js +8 -3
  39. package/esm2015/lib/controls/TagsInput/TagsInput.component.js +16 -22
  40. package/esm2015/lib/controls/TextArea/TextArea.component.js +8 -6
  41. package/esm2015/lib/controls/TextBox/TextBox.component.js +8 -3
  42. package/esm2015/lib/controls/Toggleslide/toggleslide.component.js +8 -7
  43. package/esm2015/lib/controls/bbsf-controls.module.js +10 -8
  44. package/esm2015/public-api.js +2 -1
  45. package/fesm2015/bnsights-bbsf-controls.js +286 -187
  46. package/fesm2015/bnsights-bbsf-controls.js.map +1 -1
  47. package/lib/Shared/Models/ConfirmationModalOptions.d.ts +0 -1
  48. package/lib/Shared/services/ControlUtility.d.ts +1 -1
  49. package/lib/Shared/services/GlobalSettings.service.d.ts +10 -0
  50. package/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.d.ts +5 -3
  51. package/lib/controls/ConfirmationModal/ConfirmationModal.component.d.ts +2 -1
  52. package/lib/controls/DropdownList/DropdownList.component.d.ts +4 -3
  53. package/lib/controls/FileUplaod/FileUplaod.component.d.ts +4 -3
  54. package/lib/controls/Form/Form.component.d.ts +6 -1
  55. package/lib/controls/HtmlEditor/HtmlEditor.component.d.ts +4 -3
  56. package/lib/controls/ImageUpload/ImageUpload.component.d.ts +5 -5
  57. package/lib/controls/MapAutoComplete/MapAutoComplete.component.d.ts +3 -5
  58. package/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.d.ts +7 -6
  59. package/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.d.ts +4 -5
  60. package/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.d.ts +3 -3
  61. package/lib/controls/Paging/Paging.component.d.ts +3 -2
  62. package/lib/controls/Phone/Phone.component.d.ts +3 -3
  63. package/lib/controls/ProfileImageUploader/ProfileImageUploader.component.d.ts +4 -3
  64. package/lib/controls/RadioButton/RadioButton.component.d.ts +3 -1
  65. package/lib/controls/TagsInput/TagsInput.component.d.ts +5 -4
  66. package/lib/controls/TextArea/TextArea.component.d.ts +3 -3
  67. package/lib/controls/TextBox/TextBox.component.d.ts +3 -1
  68. package/lib/controls/Toggleslide/toggleslide.component.d.ts +3 -3
  69. package/package.json +6 -4
  70. package/public-api.d.ts +1 -0
  71. package/src/lib/assets/Style.css +18 -1
@@ -15,7 +15,7 @@ import { OverlayModule } from '@angular/cdk/overlay';
15
15
  import { StoreDevtoolsModule } from '@ngrx/store-devtools';
16
16
  import { CommonModule } from '@angular/common';
17
17
  import { SearchCountryField, NgxIntlTelInputModule } from 'ngx-intl-tel-input';
18
- import { UtilityService, ControlValidationService, BBSFTranslateService, RequestHandlerService, RequestOptionsModel, BBSFUtilitiesModule, EnvironmentService, AuthService } from '@bnsights/bbsf-utilities';
18
+ import { UtilityService, ControlValidationService, BBSFTranslateService, RequestOptionsModel, RequestHandlerService, BBSFUtilitiesModule } from '@bnsights/bbsf-utilities';
19
19
  import { BsDatepickerModule } from 'ngx-bootstrap/datepicker';
20
20
  import { Subject, Observable, noop, of } from 'rxjs';
21
21
  import { FileUploader, FileLikeObject, FileUploadModule } from 'ng2-file-upload';
@@ -37,7 +37,6 @@ import { switchMap, map, tap } from 'rxjs/operators';
37
37
  import { NgxTagsInputModule } from 'ngx-tags-input';
38
38
  import { NgSelectModule } from '@ng-select/ng-select';
39
39
  import { InfiniteScrollModule } from 'ngx-infinite-scroll';
40
- import { Title } from '@angular/platform-browser';
41
40
  import { LazyMapsAPILoader, MapsAPILoader, AgmCoreModule } from '@agm/core';
42
41
  import { MatGoogleMapsAutocompleteModule } from '@angular-material-extensions/google-maps-autocomplete';
43
42
  import enGbLocale from '@fullcalendar/core/locales/en-gb';
@@ -47,6 +46,8 @@ import { MatSlideToggleModule } from '@angular/material/slide-toggle';
47
46
  import { AngularEditorModule } from '@kolkov/angular-editor';
48
47
  import { AutocompleteLibModule } from 'angular-ng-autocomplete';
49
48
  import { InlineSVGModule } from 'ng-inline-svg';
49
+ import Swal from 'sweetalert2';
50
+ import { SweetAlert2Module } from '@sweetalert2/ngx-sweetalert2';
50
51
 
51
52
  class ErrorMassageValidation {
52
53
  // tslint:disable-next-line: deprecation
@@ -246,8 +247,8 @@ class ControlUtility {
246
247
  }
247
248
  }
248
249
  }
249
- showGlobalError() {
250
- this.controlValidationService.showGlobalError();
250
+ showGlobalError(formId) {
251
+ this.controlValidationService.showGlobalError(null, formId);
251
252
  this.scrollToGlobalErrorMassage();
252
253
  }
253
254
  RemoveRequiredValidation(FormControl, ValidationRole, Options) {
@@ -474,14 +475,47 @@ class MultipleFileUploadModel {
474
475
  }
475
476
  }
476
477
 
478
+ var ControlLayout;
479
+ (function (ControlLayout) {
480
+ ControlLayout[ControlLayout["Vertical"] = 1] = "Vertical";
481
+ ControlLayout[ControlLayout["Horizontal"] = 2] = "Horizontal";
482
+ })(ControlLayout || (ControlLayout = {}));
483
+
484
+ var LanguageMode;
485
+ (function (LanguageMode) {
486
+ LanguageMode[LanguageMode["Both_Languages_are_visible"] = 1] = "Both_Languages_are_visible";
487
+ LanguageMode[LanguageMode["English_Language_only_is_visible"] = 2] = "English_Language_only_is_visible";
488
+ LanguageMode[LanguageMode["Arabic_Language_only_is_visible"] = 3] = "Arabic_Language_only_is_visible";
489
+ LanguageMode[LanguageMode["Both_Languages_but_only_English_is_required"] = 4] = "Both_Languages_but_only_English_is_required";
490
+ LanguageMode[LanguageMode["Both_Languages_but_only_Arabic_is_required"] = 5] = "Both_Languages_but_only_Arabic_is_required";
491
+ LanguageMode[LanguageMode["Current_Language_only_is_visible_and_required"] = 6] = "Current_Language_only_is_visible_and_required";
492
+ LanguageMode[LanguageMode["Both_Languages_are_visible_but_only_current_language_is_required"] = 7] = "Both_Languages_are_visible_but_only_current_language_is_required";
493
+ })(LanguageMode || (LanguageMode = {}));
494
+
495
+ class GlobalSettings {
496
+ constructor() {
497
+ /** to set type of view if MultilingualTextArea is Vertical or Horizontal */
498
+ this.ViewType = ControlLayout.Vertical;
499
+ /*multi control placement type*/
500
+ this.MultiControlPlacementType = ControlLayout.Horizontal;
501
+ /**To Set LanguageMode To MultipleLanguageText */
502
+ this.LanguageMode = LanguageMode.Both_Languages_are_visible;
503
+ this.HideAstericsWhenRequired = false;
504
+ }
505
+ }
506
+ GlobalSettings.ɵprov = i0.ɵɵdefineInjectable({ factory: function GlobalSettings_Factory() { return new GlobalSettings(); }, token: GlobalSettings, providedIn: "root" });
507
+ GlobalSettings.decorators = [
508
+ { type: Injectable, args: [{ providedIn: 'root' },] }
509
+ ];
510
+
477
511
  class FileUploadComponent {
478
- constructor(controlContainer, MultipleFileUplaodControlHost, controlUtility, UtilityService, translate, controlValidationService) {
512
+ constructor(controlContainer, MultipleFileUplaodControlHost, controlUtility, UtilityService, controlValidationService, globalSettings) {
479
513
  this.controlContainer = controlContainer;
480
514
  this.MultipleFileUplaodControlHost = MultipleFileUplaodControlHost;
481
515
  this.controlUtility = controlUtility;
482
516
  this.UtilityService = UtilityService;
483
- this.translate = translate;
484
517
  this.controlValidationService = controlValidationService;
518
+ this.globalSettings = globalSettings;
485
519
  this.OnChange = new EventEmitter();
486
520
  this.ValidationMessage = "";
487
521
  this.AcceptedType = "";
@@ -522,6 +556,8 @@ class FileUploadComponent {
522
556
  ngOnInit() {
523
557
  this.fileUploadModel = new FileUploadModel();
524
558
  this.multipleFileUploadModel = new MultipleFileUploadModel();
559
+ if (!this.options.ViewType)
560
+ this.options.ViewType = this.globalSettings.ViewType;
525
561
  if (this.options.Value == null) {
526
562
  if (this.options.IsMultipleFile == true) {
527
563
  //this.options.Value=this.multipleFileUploadModel
@@ -776,8 +812,8 @@ FileUploadComponent.ctorParameters = () => [
776
812
  { type: FormGroupDirective },
777
813
  { type: ControlUtility },
778
814
  { type: UtilityService },
779
- { type: BBSFTranslateService },
780
- { type: ControlValidationService }
815
+ { type: ControlValidationService },
816
+ { type: GlobalSettings }
781
817
  ];
782
818
  FileUploadComponent.propDecorators = {
783
819
  fileInput: [{ type: ViewChild, args: ['fileInput', { static: false },] }],
@@ -789,26 +825,15 @@ FileUploadComponent.propDecorators = {
789
825
  class EnglishArabicDTO {
790
826
  }
791
827
 
792
- var LanguageMode;
793
- (function (LanguageMode) {
794
- LanguageMode[LanguageMode["Both_Languages_are_visible"] = 1] = "Both_Languages_are_visible";
795
- LanguageMode[LanguageMode["English_Language_only_is_visible"] = 2] = "English_Language_only_is_visible";
796
- LanguageMode[LanguageMode["Arabic_Language_only_is_visible"] = 3] = "Arabic_Language_only_is_visible";
797
- LanguageMode[LanguageMode["Both_Languages_but_only_English_is_required"] = 4] = "Both_Languages_but_only_English_is_required";
798
- LanguageMode[LanguageMode["Both_Languages_but_only_Arabic_is_required"] = 5] = "Both_Languages_but_only_Arabic_is_required";
799
- LanguageMode[LanguageMode["Current_Language_only_is_visible_and_required"] = 6] = "Current_Language_only_is_visible_and_required";
800
- LanguageMode[LanguageMode["Both_Languages_are_visible_but_only_current_language_is_required"] = 7] = "Both_Languages_are_visible_but_only_current_language_is_required";
801
- })(LanguageMode || (LanguageMode = {}));
802
-
803
828
  class MultiLingualTextBoxComponent {
804
- constructor(ErrorHandler, MultiLingualTextBoxFormControlHost, controlContainer, controlUtility, UtilityService, translate, controlValidationService) {
805
- this.ErrorHandler = ErrorHandler;
829
+ constructor(MultiLingualTextBoxFormControlHost, controlContainer, controlUtility, UtilityService, translate, controlValidationService, globalSettings) {
806
830
  this.MultiLingualTextBoxFormControlHost = MultiLingualTextBoxFormControlHost;
807
831
  this.controlContainer = controlContainer;
808
832
  this.controlUtility = controlUtility;
809
833
  this.UtilityService = UtilityService;
810
834
  this.translate = translate;
811
835
  this.controlValidationService = controlValidationService;
836
+ this.globalSettings = globalSettings;
812
837
  this.OnChange = new EventEmitter();
813
838
  this.ArabicWordCount = 0;
814
839
  this.ArabicWordCountArray = 0;
@@ -872,6 +897,12 @@ class MultiLingualTextBoxComponent {
872
897
  this.EnglishFormControl = this.MultiLanguagegroup.controls["EnglishValue"]; // new FormControl('',validationRules);
873
898
  this.group.addControl(this.options.Name, new FormGroup(this.MultiLanguagegroup.controls));
874
899
  this.getCustomErrorsMassages();
900
+ if (!this.options.ViewType)
901
+ this.options.ViewType = this.globalSettings.ViewType;
902
+ if (!this.options.LanguageMode)
903
+ this.options.LanguageMode = this.globalSettings.LanguageMode;
904
+ if (!this.options.MultiControlPlacementType)
905
+ this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType;
875
906
  if (this.options.ArabicLabelKey != null && this.options.ArabicLabelKey != "")
876
907
  this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.ArabicLabelKey);
877
908
  if (this.options.EnglishLabelKey != null && this.options.EnglishLabelKey != "")
@@ -1098,18 +1129,18 @@ MultiLingualTextBoxComponent.controlContainerstatic = null;
1098
1129
  MultiLingualTextBoxComponent.decorators = [
1099
1130
  { type: Component, args: [{
1100
1131
  selector: 'BBSF-MultiLingualTextBox',
1101
- 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\">\r\n <div class=\"svg svg-icon-grey\" [ngClass]=\"(options.IconPositionEN==1)?'left':'right'\" *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=\"EnglishValue\"\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\">\r\n <div class=\"svg svg-icon-grey\" [ngClass]=\"(options.IconPositionEN==1)?'right':'left'\" *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=\"ArabicValue\"\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",
1132
+ 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':'right'\" *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=\"EnglishValue\"\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':'left'\" *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=\"ArabicValue\"\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",
1102
1133
  styles: [".example-form{min-width:150px;max-width:500px;width:100%}.example-full-width{width:100%}\n"]
1103
1134
  },] }
1104
1135
  ];
1105
1136
  MultiLingualTextBoxComponent.ctorParameters = () => [
1106
- { type: ErrorMassageValidation },
1107
1137
  { type: FormGroupDirective },
1108
1138
  { type: ControlContainer, decorators: [{ type: Optional }] },
1109
1139
  { type: ControlUtility },
1110
1140
  { type: UtilityService },
1111
1141
  { type: BBSFTranslateService },
1112
- { type: ControlValidationService }
1142
+ { type: ControlValidationService },
1143
+ { type: GlobalSettings }
1113
1144
  ];
1114
1145
  MultiLingualTextBoxComponent.propDecorators = {
1115
1146
  group: [{ type: Input }],
@@ -1118,13 +1149,13 @@ MultiLingualTextBoxComponent.propDecorators = {
1118
1149
  };
1119
1150
 
1120
1151
  class TextAreaComponent {
1121
- constructor(ErrorHandler, controlUtility, controlContainer, TextAreaControlHost, UtilityService, controlValidationService) {
1122
- this.ErrorHandler = ErrorHandler;
1152
+ constructor(controlUtility, controlContainer, TextAreaControlHost, UtilityService, controlValidationService, globalSettings) {
1123
1153
  this.controlUtility = controlUtility;
1124
1154
  this.controlContainer = controlContainer;
1125
1155
  this.TextAreaControlHost = TextAreaControlHost;
1126
1156
  this.UtilityService = UtilityService;
1127
1157
  this.controlValidationService = controlValidationService;
1158
+ this.globalSettings = globalSettings;
1128
1159
  this.OnChange = new EventEmitter();
1129
1160
  this.WordCount = 0;
1130
1161
  this.WordCountArray = 0;
@@ -1161,6 +1192,8 @@ class TextAreaComponent {
1161
1192
  this.controlValidationService.isCreatedBefor = false;
1162
1193
  this.group.addControl(this.options.Name, new FormControl(''));
1163
1194
  this.TextAreaFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
1195
+ if (!this.options.ViewType)
1196
+ this.options.ViewType = this.globalSettings.ViewType;
1164
1197
  if (this.options.LabelKey != null && this.options.LabelKey != "")
1165
1198
  this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);
1166
1199
  this.TextAreaFormControl.setValue(this.options.Value);
@@ -1247,12 +1280,12 @@ TextAreaComponent.decorators = [
1247
1280
  },] }
1248
1281
  ];
1249
1282
  TextAreaComponent.ctorParameters = () => [
1250
- { type: ErrorMassageValidation },
1251
1283
  { type: ControlUtility },
1252
1284
  { type: ControlContainer, decorators: [{ type: Optional }] },
1253
1285
  { type: FormGroupDirective },
1254
1286
  { type: UtilityService },
1255
- { type: ControlValidationService }
1287
+ { type: ControlValidationService },
1288
+ { type: GlobalSettings }
1256
1289
  ];
1257
1290
  TextAreaComponent.propDecorators = {
1258
1291
  group: [{ type: Input }],
@@ -1261,14 +1294,13 @@ TextAreaComponent.propDecorators = {
1261
1294
  };
1262
1295
 
1263
1296
  class MultiLingualTextAreaComponent {
1264
- constructor(ErrorHandler, MultiLingualTextAreaFormControlHost, controlContainer, controlUtility, UtilityService, translate, controlValidationService) {
1265
- this.ErrorHandler = ErrorHandler;
1297
+ constructor(MultiLingualTextAreaFormControlHost, controlContainer, controlUtility, UtilityService, controlValidationService, globalSettings) {
1266
1298
  this.MultiLingualTextAreaFormControlHost = MultiLingualTextAreaFormControlHost;
1267
1299
  this.controlContainer = controlContainer;
1268
1300
  this.controlUtility = controlUtility;
1269
1301
  this.UtilityService = UtilityService;
1270
- this.translate = translate;
1271
1302
  this.controlValidationService = controlValidationService;
1303
+ this.globalSettings = globalSettings;
1272
1304
  this.OnChange = new EventEmitter();
1273
1305
  this.ArabicWordCount = 0;
1274
1306
  this.ArabicWordCountArray = 0;
@@ -1328,6 +1360,12 @@ class MultiLingualTextAreaComponent {
1328
1360
  // this.CurrentLanguage = event.lang
1329
1361
  // this.showInputUsingLanguageMode();
1330
1362
  // });
1363
+ if (!this.options.ViewType)
1364
+ this.options.ViewType = this.globalSettings.ViewType;
1365
+ if (!this.options.LanguageMode)
1366
+ this.options.LanguageMode = this.globalSettings.LanguageMode;
1367
+ if (!this.options.MultiControlPlacementType)
1368
+ this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType;
1331
1369
  if (this.options.ArabicLabelKey != null && this.options.ArabicLabelKey != "")
1332
1370
  this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.ArabicLabelKey);
1333
1371
  if (this.options.EnglishLabelKey != null && this.options.EnglishLabelKey != "")
@@ -1562,13 +1600,12 @@ MultiLingualTextAreaComponent.decorators = [
1562
1600
  },] }
1563
1601
  ];
1564
1602
  MultiLingualTextAreaComponent.ctorParameters = () => [
1565
- { type: ErrorMassageValidation },
1566
1603
  { type: FormGroupDirective },
1567
1604
  { type: ControlContainer, decorators: [{ type: Optional }] },
1568
1605
  { type: ControlUtility },
1569
1606
  { type: UtilityService },
1570
- { type: BBSFTranslateService },
1571
- { type: ControlValidationService }
1607
+ { type: ControlValidationService },
1608
+ { type: GlobalSettings }
1572
1609
  ];
1573
1610
  MultiLingualTextAreaComponent.propDecorators = {
1574
1611
  group: [{ type: Input }],
@@ -1685,14 +1722,14 @@ CheckBoxComponent.propDecorators = {
1685
1722
 
1686
1723
  class DropdownListComponent {
1687
1724
  // tslint:disable-next-line: max-line-length
1688
- constructor(onChangeService, controlUtility, controlContainer, DropdownListControlHost, UtilityService, translate, controlValidationService) {
1725
+ constructor(onChangeService, controlUtility, controlContainer, DropdownListControlHost, UtilityService, controlValidationService, globalSettings) {
1689
1726
  this.onChangeService = onChangeService;
1690
1727
  this.controlUtility = controlUtility;
1691
1728
  this.controlContainer = controlContainer;
1692
1729
  this.DropdownListControlHost = DropdownListControlHost;
1693
1730
  this.UtilityService = UtilityService;
1694
- this.translate = translate;
1695
1731
  this.controlValidationService = controlValidationService;
1732
+ this.globalSettings = globalSettings;
1696
1733
  this.dropdownSettings = {};
1697
1734
  this.SelectedList = [];
1698
1735
  this.OnChange = new EventEmitter();
@@ -1754,6 +1791,8 @@ class DropdownListComponent {
1754
1791
  };
1755
1792
  this.group.addControl(this.options.Name, new FormControl(''));
1756
1793
  this.DropdownListFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
1794
+ if (!this.options.ViewType)
1795
+ this.options.ViewType = this.globalSettings.ViewType;
1757
1796
  if (this.options.CustomValidation.length > 0) {
1758
1797
  let Validations = this.options.CustomValidation;
1759
1798
  for (let index = 0; index < Validations.length; index++) {
@@ -1830,7 +1869,7 @@ DropdownListComponent.decorators = [
1830
1869
  { type: Component, args: [{
1831
1870
  // tslint:disable-next-line: component-selector
1832
1871
  selector: 'BBSF-DropdownList',
1833
- template: "<div class=\"b-control b-dropdown-list\">\r\n <div class=\"form-group row validate is-invalid\" [formGroup]=\"group\">\r\n <label class=\"b-label col-form-label col-sm-12 \" [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\"\r\n [hidden]=\"options.HideLabel\">\r\n {{options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger Required-text\"\r\n aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <ng-select *ngIf=\"options.DisableBootstrapSelect==false\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n [bindValue]=\"options.ItemTempletkey\"\r\n [bindLabel]=\"options.ItemTempletvalue\" [items]=\"options.DataSource\"\r\n [notFoundText]=\"'No data found.'\" [maxSelectedItems]=\"options.LimitSelection\"\r\n [searchable]=\"options.AllowSearchFilter\" [multiple]=\"!options.SingleSelection\"\r\n [readonly]=\"options.IsDisabled\" [searchable]=\"true\" [clearable]=\"true\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" [selectableGroup]=\"true\"\r\n [selectableGroupAsModel]=\"false\" formControlName=\"{{options.Name}}\" [(ngModel)]=\"SelectedList\"\r\n (change)=\"onItemSelect($event[options.ItemTempletkey])\" (clear)=\"Clear()\"\r\n [class.is-invalid]=\"DropdownListFormControl.invalid && DropdownListFormControl.touched\" [closeOnSelect] = \"options.SingleSelection ? true : false\">\r\n \r\n <ng-template *ngIf=\"options.ShowCheckbox\" ng-option-tmp let-item=\"item\" let-item$=\"item$\"\r\n let-index=\"index\" >\r\n <div class=\"ks-cboxtags\">\r\n <input id=\"item-{{index}}\" type=\"checkbox\" [ngModelOptions]=\"{standalone: true}\"\r\n [ngModel]=\"item$.selected\" class=\" \" /> <label class=\"ng-option-label mb-0\">{{item.value}}</label>\r\n </div>\r\n </ng-template>\r\n </ng-select>\r\n \r\n <select *ngIf=\"options.DisableBootstrapSelect\"\r\n class=\"form-control bnsights-control\" dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n (change)=\"onItemSelect($event.target.value)\" [disabled]=\"options.IsDisabled\"\r\n formControlName=\"{{options.Name}}\">\r\n <option value=\"\" disabled>--select--</option>\r\n <option *ngFor=\"let item of options.DataSource\" value=\"{{item.key}}\" [ngValue]=\"item.key\">\r\n {{item.value}}\r\n </option>\r\n </select>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(DropdownListFormControl.invalid && DropdownListFormControl.touched)\">\r\n {{getErrorValidation(DropdownListFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc\">{{options.LabelDescription}}</div>\r\n </div>\r\n\r\n <!-- <div *ngIf=\"DropdownListFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n",
1872
+ template: "<div class=\"b-control b-dropdown-list\">\r\n <div class=\"form-group row validate is-invalid\" [formGroup]=\"group\">\r\n <label class=\"b-label col-form-label col-sm-12 \" [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\"\r\n [hidden]=\"options.HideLabel\">\r\n {{options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger Required-text\"\r\n aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <ng-select *ngIf=\"options.DisableBootstrapSelect==false\" dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n [bindValue]=\"options.ItemTempletkey\" [bindLabel]=\"options.ItemTempletvalue\" [items]=\"options.DataSource\"\r\n [notFoundText]=\"'No data found.'\" [maxSelectedItems]=\"options.LimitSelection\"\r\n [searchable]=\"options.AllowSearchFilter\" [multiple]=\"!options.SingleSelection\" [readonly]=\"options.IsDisabled\"\r\n [searchable]=\"true\" [clearable]=\"true\" placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\"\r\n [selectableGroup]=\"true\" [selectableGroupAsModel]=\"false\" formControlName=\"{{options.Name}}\"\r\n [(ngModel)]=\"SelectedList\" (change)=\"onItemSelect($event[options.ItemTempletkey])\" (clear)=\"Clear()\"\r\n [class.is-invalid]=\"DropdownListFormControl.invalid && DropdownListFormControl.touched\"\r\n [closeOnSelect]=\"options.SingleSelection ? true : false\">\r\n\r\n <ng-template *ngIf=\"options.ShowCheckbox\" ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <div class=\"ks-cboxtags\">\r\n <input id=\"item-{{index}}\" type=\"checkbox\" [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"item$.selected\"\r\n class=\" \" /> <label class=\"ng-option-label mb-0\" id={{item.key}}>{{item.value}}</label>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template *ngIf=\"!options.ShowCheckbox\" ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <label class=\"ng-option-label mb-0\" id={{item.key}}>{{item.value}}</label>\r\n </ng-template>\r\n\r\n </ng-select>\r\n\r\n <select *ngIf=\"options.DisableBootstrapSelect\" class=\"form-control bnsights-control\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\" (change)=\"onItemSelect($event.target.value)\"\r\n [disabled]=\"options.IsDisabled\" formControlName=\"{{options.Name}}\">\r\n <option value=\"\" disabled>--select--</option>\r\n <option *ngFor=\"let item of options.DataSource\" value=\"{{item.key}}\" [ngValue]=\"item.key\">\r\n {{item.value}}\r\n </option>\r\n </select>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(DropdownListFormControl.invalid && DropdownListFormControl.touched)\">\r\n {{getErrorValidation(DropdownListFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc\">{{options.LabelDescription}}</div>\r\n </div>\r\n\r\n <!-- <div *ngIf=\"DropdownListFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">\r\n {{resetError()}}</div>\r\n\r\n\r\n </div>\r\n </div>\r\n</div>",
1834
1873
  styles: [".cuppa-dropdown{background-color:#fff}.arrow-up,.arrow-down{border-left:none!important;border-right:none!important}.dropdown-list{padding-top:0!important}.c-token{background-color:#6495ed}.pure-checkbox .selected-item{background-color:#6495ed;color:#fff}\n"]
1835
1874
  },] }
1836
1875
  ];
@@ -1840,8 +1879,8 @@ DropdownListComponent.ctorParameters = () => [
1840
1879
  { type: ControlContainer, decorators: [{ type: Optional }] },
1841
1880
  { type: FormGroupDirective },
1842
1881
  { type: UtilityService },
1843
- { type: BBSFTranslateService },
1844
- { type: ControlValidationService }
1882
+ { type: ControlValidationService },
1883
+ { type: GlobalSettings }
1845
1884
  ];
1846
1885
  DropdownListComponent.propDecorators = {
1847
1886
  group: [{ type: Input }],
@@ -1852,13 +1891,13 @@ DropdownListComponent.propDecorators = {
1852
1891
 
1853
1892
  class PhoneComponent {
1854
1893
  // tslint:disable-next-line: max-line-length
1855
- constructor(ErrorHandler, controlUtility, controlContainer, PhoneControlHost, UtilityService, controlValidationService) {
1856
- this.ErrorHandler = ErrorHandler;
1894
+ constructor(controlUtility, controlContainer, PhoneControlHost, UtilityService, controlValidationService, globalSettings) {
1857
1895
  this.controlUtility = controlUtility;
1858
1896
  this.controlContainer = controlContainer;
1859
1897
  this.PhoneControlHost = PhoneControlHost;
1860
1898
  this.UtilityService = UtilityService;
1861
1899
  this.controlValidationService = controlValidationService;
1900
+ this.globalSettings = globalSettings;
1862
1901
  this.OnChange = new EventEmitter();
1863
1902
  this.SearchCountryField = SearchCountryField;
1864
1903
  // TooltipLabel = TooltipLabel;
@@ -1895,6 +1934,8 @@ class PhoneComponent {
1895
1934
  this.controlValidationService.isCreatedBefor = false;
1896
1935
  this.group.addControl(this.options.Name, new FormControl(''));
1897
1936
  this.PhoneFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
1937
+ if (!this.options.ViewType)
1938
+ this.options.ViewType = this.globalSettings.ViewType;
1898
1939
  if (this.options.IsRequired) {
1899
1940
  this.validationRules.push(Validators.required);
1900
1941
  }
@@ -1945,12 +1986,12 @@ PhoneComponent.decorators = [
1945
1986
  },] }
1946
1987
  ];
1947
1988
  PhoneComponent.ctorParameters = () => [
1948
- { type: ErrorMassageValidation },
1949
1989
  { type: ControlUtility },
1950
1990
  { type: ControlContainer, decorators: [{ type: Optional }] },
1951
1991
  { type: FormGroupDirective },
1952
1992
  { type: UtilityService },
1953
- { type: ControlValidationService }
1993
+ { type: ControlValidationService },
1994
+ { type: GlobalSettings }
1954
1995
  ];
1955
1996
  PhoneComponent.propDecorators = {
1956
1997
  group: [{ type: Input }],
@@ -1960,24 +2001,25 @@ PhoneComponent.propDecorators = {
1960
2001
 
1961
2002
  class ToggleslideComponent {
1962
2003
  // tslint:disable-next-line: max-line-length
1963
- constructor(ErrorHandler, controlUtility, controlContainer, ToggleslideControlHost, TextControlHost, UtilityService, controlValidationService) {
1964
- this.ErrorHandler = ErrorHandler;
2004
+ constructor(controlUtility, controlContainer, ToggleslideControlHost, TextControlHost, UtilityService, controlValidationService, globalSettings) {
1965
2005
  this.controlUtility = controlUtility;
1966
2006
  this.controlContainer = controlContainer;
1967
2007
  this.ToggleslideControlHost = ToggleslideControlHost;
1968
2008
  this.TextControlHost = TextControlHost;
1969
2009
  this.UtilityService = UtilityService;
1970
2010
  this.controlValidationService = controlValidationService;
2011
+ this.globalSettings = globalSettings;
1971
2012
  this.SlideValue = false;
1972
2013
  ToggleslideComponent.controlContainerstatic = this.controlContainer;
1973
2014
  }
1974
2015
  ngOnInit() {
1975
- ;
1976
2016
  this.group.addControl(this.options.Name, new FormControl(''));
1977
2017
  this.ToggleslideFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
1978
2018
  let validationRules = [];
1979
2019
  let validationRulesasync = [];
1980
2020
  this.SlideValue = this.options.Value == undefined ? false : this.options.Value;
2021
+ if (!this.options.ViewType)
2022
+ this.options.ViewType = this.globalSettings.ViewType;
1981
2023
  if (this.options.IsDisabled) {
1982
2024
  this.ToggleslideFormControl.disable();
1983
2025
  }
@@ -2011,13 +2053,13 @@ ToggleslideComponent.decorators = [
2011
2053
  },] }
2012
2054
  ];
2013
2055
  ToggleslideComponent.ctorParameters = () => [
2014
- { type: ErrorMassageValidation },
2015
2056
  { type: ControlUtility },
2016
2057
  { type: ControlContainer, decorators: [{ type: Optional }] },
2017
2058
  { type: FormGroupDirective },
2018
2059
  { type: FormGroupDirective },
2019
2060
  { type: UtilityService },
2020
- { type: ControlValidationService }
2061
+ { type: ControlValidationService },
2062
+ { type: GlobalSettings }
2021
2063
  ];
2022
2064
  ToggleslideComponent.propDecorators = {
2023
2065
  group: [{ type: Input }],
@@ -2025,14 +2067,14 @@ ToggleslideComponent.propDecorators = {
2025
2067
  };
2026
2068
 
2027
2069
  class HtmlEditorComponent {
2028
- constructor(zone, controlUtility, controlContainer, HtmlEditorControlHost, UtilityService, translate, controlValidationService) {
2070
+ constructor(zone, controlUtility, controlContainer, HtmlEditorControlHost, UtilityService, controlValidationService, globalSettings) {
2029
2071
  this.zone = zone;
2030
2072
  this.controlUtility = controlUtility;
2031
2073
  this.controlContainer = controlContainer;
2032
2074
  this.HtmlEditorControlHost = HtmlEditorControlHost;
2033
2075
  this.UtilityService = UtilityService;
2034
- this.translate = translate;
2035
2076
  this.controlValidationService = controlValidationService;
2077
+ this.globalSettings = globalSettings;
2036
2078
  this.OnChange = new EventEmitter();
2037
2079
  this.WordCount = 0;
2038
2080
  this.WordCountArray = 0;
@@ -2149,6 +2191,8 @@ class HtmlEditorComponent {
2149
2191
  this.group.addControl(this.options.Name, new FormControl(''));
2150
2192
  this.HtmlEditorFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
2151
2193
  this.HtmlEditorFormControl.setValue(this.options.Value);
2194
+ if (!this.options.ViewType)
2195
+ this.options.ViewType = this.globalSettings.ViewType;
2152
2196
  if (this.options.CustomValidation.length > 0) {
2153
2197
  let Validations = this.options.CustomValidation;
2154
2198
  for (let index = 0; index < Validations.length; index++) {
@@ -2213,8 +2257,8 @@ HtmlEditorComponent.ctorParameters = () => [
2213
2257
  { type: ControlContainer, decorators: [{ type: Optional }] },
2214
2258
  { type: FormGroupDirective },
2215
2259
  { type: UtilityService },
2216
- { type: BBSFTranslateService },
2217
- { type: ControlValidationService }
2260
+ { type: ControlValidationService },
2261
+ { type: GlobalSettings }
2218
2262
  ];
2219
2263
  HtmlEditorComponent.propDecorators = {
2220
2264
  group: [{ type: Input }],
@@ -2223,14 +2267,13 @@ HtmlEditorComponent.propDecorators = {
2223
2267
  };
2224
2268
 
2225
2269
  class MultiLingualHtmlEditorComponent {
2226
- constructor(ErrorHandler, MultiLingualHtmlEditorFormControlHost, controlContainer, controlUtility, UtilityService, translate, controlValidationService) {
2227
- this.ErrorHandler = ErrorHandler;
2270
+ constructor(MultiLingualHtmlEditorFormControlHost, controlContainer, controlUtility, UtilityService, controlValidationService, globalSettings) {
2228
2271
  this.MultiLingualHtmlEditorFormControlHost = MultiLingualHtmlEditorFormControlHost;
2229
2272
  this.controlContainer = controlContainer;
2230
2273
  this.controlUtility = controlUtility;
2231
2274
  this.UtilityService = UtilityService;
2232
- this.translate = translate;
2233
2275
  this.controlValidationService = controlValidationService;
2276
+ this.globalSettings = globalSettings;
2234
2277
  this.OnChange = new EventEmitter();
2235
2278
  this.CurrentLanguage = "";
2236
2279
  this.ArabicValidationRules = [];
@@ -2242,6 +2285,8 @@ class MultiLingualHtmlEditorComponent {
2242
2285
  this.validationRulesasync = [];
2243
2286
  this.ArabicLetterOnly = "";
2244
2287
  this.EnglishLetterOnly = "";
2288
+ this.englishValue = null;
2289
+ this.arabicValue = null;
2245
2290
  this.resetError = () => {
2246
2291
  this.controlValidationService.RemoveGlobalError();
2247
2292
  };
@@ -2279,6 +2324,10 @@ class MultiLingualHtmlEditorComponent {
2279
2324
  }
2280
2325
  ngOnInit() {
2281
2326
  return __awaiter(this, void 0, void 0, function* () {
2327
+ if (!this.options.ViewType)
2328
+ this.options.ViewType = this.globalSettings.ViewType;
2329
+ if (!this.options.LanguageMode)
2330
+ this.options.LanguageMode = this.globalSettings.LanguageMode;
2282
2331
  this.editorEnglishConfig = {
2283
2332
  editable: !this.options.IsDisabled,
2284
2333
  spellcheck: true,
@@ -2463,30 +2512,37 @@ class MultiLingualHtmlEditorComponent {
2463
2512
  });
2464
2513
  });
2465
2514
  }
2466
- onTextChange() {
2467
- let arabicValue = this.MultilingualHtmlEditorgroup.controls["ArabicHtmlEditorValue"].value == null ? "" : this.MultilingualHtmlEditorgroup.controls["ArabicHtmlEditorValue"].value;
2468
- let englishValue = this.MultilingualHtmlEditorgroup.controls["EnglishHtmlEditorValue"].value == null ? "" : this.MultilingualHtmlEditorgroup.controls["EnglishHtmlEditorValue"].value;
2469
- let EngliswordCountArray = this.EnglishHtmlEditorFormControl.value.split(" ").length;
2470
- if (EngliswordCountArray > 0) {
2471
- if (EngliswordCountArray > this.options.MaxWordCount)
2472
- this.MultilingualHtmlEditorgroup.controls["EnglishHtmlEditorValue"].setErrors({ MaxWordCountValidationKey: this.options.MaxWordCount });
2473
- this.MultilingualHtmlEditorgroup.controls["EnglishHtmlEditorValue"].markAsTouched();
2474
- this.MultilingualHtmlEditorgroup.controls["EnglishHtmlEditorValue"].invalid;
2475
- }
2476
- let ArabicwordCountArray = this.ArabicHtmlEditorFormControl.value.split(" ").length;
2477
- if (ArabicwordCountArray > 0) {
2478
- if (ArabicwordCountArray > this.options.MaxWordCount)
2479
- this.MultilingualHtmlEditorgroup.controls["ArabicHtmlEditorValue"].setErrors({ MaxWordCountValidationKey: this.options.MaxWordCount });
2480
- this.MultilingualHtmlEditorgroup.controls["ArabicHtmlEditorValue"].markAsTouched();
2481
- this.MultilingualHtmlEditorgroup.controls["ArabicHtmlEditorValue"].invalid;
2515
+ onTextChange(type) {
2516
+ if (type == "en") {
2517
+ this.englishValue = this.MultilingualHtmlEditorgroup.controls["EnglishHtmlEditorValue"].value == null ? "" : this.MultilingualHtmlEditorgroup.controls["EnglishHtmlEditorValue"].value;
2518
+ if (this.englishValue)
2519
+ this.EnglishHtmlEditorFormControl.setValue(this.englishValue);
2520
+ let EngliswordCountArray = this.EnglishHtmlEditorFormControl.value.split(" ").length;
2521
+ if (EngliswordCountArray > 0) {
2522
+ if (EngliswordCountArray > this.options.MaxWordCount)
2523
+ this.MultilingualHtmlEditorgroup.controls["EnglishHtmlEditorValue"].setErrors({ MaxWordCountValidationKey: this.options.MaxWordCount });
2524
+ this.MultilingualHtmlEditorgroup.controls["EnglishHtmlEditorValue"].markAsTouched();
2525
+ this.MultilingualHtmlEditorgroup.controls["EnglishHtmlEditorValue"].invalid;
2526
+ }
2527
+ }
2528
+ if (type == "ar") {
2529
+ this.arabicValue = this.MultilingualHtmlEditorgroup.controls["ArabicHtmlEditorValue"].value == null ? "" : this.MultilingualHtmlEditorgroup.controls["ArabicHtmlEditorValue"].value;
2530
+ if (this.arabicValue)
2531
+ this.ArabicHtmlEditorFormControl.setValue(this.arabicValue);
2532
+ let ArabicwordCountArray = this.ArabicHtmlEditorFormControl.value.split(" ").length;
2533
+ if (ArabicwordCountArray > 0) {
2534
+ if (ArabicwordCountArray > this.options.MaxWordCount)
2535
+ this.MultilingualHtmlEditorgroup.controls["ArabicHtmlEditorValue"].setErrors({ MaxWordCountValidationKey: this.options.MaxWordCount });
2536
+ this.MultilingualHtmlEditorgroup.controls["ArabicHtmlEditorValue"].markAsTouched();
2537
+ this.MultilingualHtmlEditorgroup.controls["ArabicHtmlEditorValue"].invalid;
2538
+ }
2482
2539
  }
2483
2540
  let mulitLangModel = new EnglishArabicDTO();
2484
- mulitLangModel.Arabic = arabicValue;
2485
- mulitLangModel.English = englishValue;
2486
- this.ArabicHtmlEditorFormControl.setValue(arabicValue);
2487
- this.EnglishHtmlEditorFormControl.setValue(englishValue);
2541
+ mulitLangModel.Arabic = this.arabicValue;
2542
+ mulitLangModel.English = this.englishValue;
2488
2543
  this.OnChange.emit(mulitLangModel);
2489
- this.group.get(this.options.Name).setValue(mulitLangModel);
2544
+ if (this.arabicValue && this.englishValue)
2545
+ this.group.get(this.options.Name).setValue(mulitLangModel);
2490
2546
  }
2491
2547
  showGlobalError() {
2492
2548
  this.controlUtility.showGlobalError();
@@ -2577,18 +2633,17 @@ MultiLingualHtmlEditorComponent.controlContainerstatic = null;
2577
2633
  MultiLingualHtmlEditorComponent.decorators = [
2578
2634
  { type: Component, args: [{
2579
2635
  selector: 'BBSF-MultiLingualHtmlEditor',
2580
- template: "<div class=\"b-control b-multilangual-html-editor\">\r\n <div class=\"form-group validate is-invalid\" [formGroup]=\"group\">\r\n\r\n <div class=\"form-group row\" [formGroup]=\"MultilingualHtmlEditorgroup\">\r\n <div class=\"col-lg-6\">\r\n <div class=\"row\" *ngIf=\"ShowEnglishHtmlEditor\">\r\n <label class=\"b-label col-form-label col-sm-12 \" \r\n [ngClass]=\"(options.ViewType==1)?'col-md-9':'col-md-3'\"\r\n [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue+\"in English\"}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n \r\n <angular-editor (blur)=\"onTextChange()\" dir=\"ltr\" (input)=\"onTextChange()\" class=\"form-control bnsights-control {{options.ExtraClasses_EN}} \" (change)=\"onTextChange()\" [class.is-invalid]=\"EnglishHtmlEditorFormControl.invalid && EnglishHtmlEditorFormControl.touched\"\r\n formControlName=\"EnglishHtmlEditorValue\" [config]=\"editorEnglishConfig\"></angular-editor>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(EnglishHtmlEditorFormControl.invalid && EnglishHtmlEditorFormControl.touched)\">\r\n {{getErrorValidation(EnglishHtmlEditorFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc text-dark\">\r\n {{(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!=\"\")?options.EnglishLabelDescription:options.LabelDescription}}\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-6\">\r\n <div class=\"row\" *ngIf=\"ShowArabicHtmlEditor\">\r\n\r\n <label class=\"b-label col-form-label col-sm-12 \"\r\n [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\"\r\n [hidden]=\"options.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 \r\n\r\n <angular-editor (blur)=\"onTextChange()\" (input)=\"onTextChange()\" dir=\"rtl\" class=\"form-control bnsights-control {{options.ExtraClasses_AR}} \" (change)=\"onTextChange()\" [class.is-invalid]=\"ArabicHtmlEditorFormControl.invalid && ArabicHtmlEditorFormControl.touched\"\r\n formControlName=\"ArabicHtmlEditorValue\" [config]=\"editorArabicConfig\"></angular-editor>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(ArabicHtmlEditorFormControl.invalid && ArabicHtmlEditorFormControl.touched)\">\r\n {{getErrorValidation(ArabicHtmlEditorFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n \r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc text-dark\">\r\n {{(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!=\"\")?options.ArabicLabelDescription:options.LabelDescription}}\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n</div>\r\n",
2636
+ template: "<div class=\"b-control b-multilangual-html-editor\">\r\n <div class=\"form-group validate is-invalid\" [formGroup]=\"group\">\r\n\r\n <div class=\"form-group row\" [formGroup]=\"MultilingualHtmlEditorgroup\">\r\n <div class=\"col-lg-6\">\r\n <div class=\"row\" *ngIf=\"ShowEnglishHtmlEditor\">\r\n <label class=\"b-label col-form-label col-sm-12 \" \r\n [ngClass]=\"(options.ViewType==1)?'col-md-9':'col-md-3'\"\r\n [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue+\"in English\"}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n \r\n <angular-editor class=\"form-control bnsights-control {{options.ExtraClasses_EN}} \" (change)=\"onTextChange('en')\" [class.is-invalid]=\"EnglishHtmlEditorFormControl.invalid && EnglishHtmlEditorFormControl.touched\"\r\n formControlName=\"EnglishHtmlEditorValue\" [config]=\"editorEnglishConfig\"></angular-editor>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(EnglishHtmlEditorFormControl.invalid && EnglishHtmlEditorFormControl.touched)\">\r\n {{getErrorValidation(EnglishHtmlEditorFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc text-dark\">\r\n {{(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!=\"\")?options.EnglishLabelDescription:options.LabelDescription}}\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-6\">\r\n <div class=\"row\" *ngIf=\"ShowArabicHtmlEditor\">\r\n\r\n <label class=\"b-label col-form-label col-sm-12 \"\r\n [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\"\r\n [hidden]=\"options.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 \r\n\r\n <angular-editor dir=\"rtl\" class=\"form-control bnsights-control {{options.ExtraClasses_AR}} \" (change)=\"onTextChange('ar')\" [class.is-invalid]=\"ArabicHtmlEditorFormControl.invalid && ArabicHtmlEditorFormControl.touched\"\r\n formControlName=\"ArabicHtmlEditorValue\" [config]=\"editorArabicConfig\"></angular-editor>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(ArabicHtmlEditorFormControl.invalid && ArabicHtmlEditorFormControl.touched)\">\r\n {{getErrorValidation(ArabicHtmlEditorFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n \r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc text-dark\">\r\n {{(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!=\"\")?options.ArabicLabelDescription:options.LabelDescription}}\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n</div>\r\n",
2581
2637
  styles: [".example-form{min-width:150px;max-width:500px;width:100%}.example-full-width{width:100%}\n"]
2582
2638
  },] }
2583
2639
  ];
2584
2640
  MultiLingualHtmlEditorComponent.ctorParameters = () => [
2585
- { type: ErrorMassageValidation },
2586
2641
  { type: FormGroupDirective },
2587
2642
  { type: ControlContainer, decorators: [{ type: Optional }] },
2588
2643
  { type: ControlUtility },
2589
2644
  { type: UtilityService },
2590
- { type: BBSFTranslateService },
2591
- { type: ControlValidationService }
2645
+ { type: ControlValidationService },
2646
+ { type: GlobalSettings }
2592
2647
  ];
2593
2648
  MultiLingualHtmlEditorComponent.propDecorators = {
2594
2649
  group: [{ type: Input }],
@@ -2597,15 +2652,14 @@ MultiLingualHtmlEditorComponent.propDecorators = {
2597
2652
  };
2598
2653
 
2599
2654
  class ImageUploaderComponent {
2600
- constructor(zone, ErrorHandler, controlUtility, controlContainer, ImageUplaoderControlHost, UtilityService, translate, controlValidationService) {
2655
+ constructor(zone, controlUtility, controlContainer, ImageUplaoderControlHost, UtilityService, controlValidationService, globalSettings) {
2601
2656
  this.zone = zone;
2602
- this.ErrorHandler = ErrorHandler;
2603
2657
  this.controlUtility = controlUtility;
2604
2658
  this.controlContainer = controlContainer;
2605
2659
  this.ImageUplaoderControlHost = ImageUplaoderControlHost;
2606
2660
  this.UtilityService = UtilityService;
2607
- this.translate = translate;
2608
2661
  this.controlValidationService = controlValidationService;
2662
+ this.globalSettings = globalSettings;
2609
2663
  this.files = [];
2610
2664
  this.ImageSource = "./src/assets/images/uploadimg.png";
2611
2665
  this.OnChange = new EventEmitter();
@@ -2652,6 +2706,8 @@ class ImageUploaderComponent {
2652
2706
  }
2653
2707
  ngOnInit() {
2654
2708
  this.controlValidationService.isCreatedBefor = false;
2709
+ if (!this.options.ViewType)
2710
+ this.options.ViewType = this.globalSettings.ViewType;
2655
2711
  if (this.options.DefaultImageSrc != null && this.options.DefaultImageSrc != "")
2656
2712
  this.ImageSource = this.options.DefaultImageSrc;
2657
2713
  if (this.options.AllowImageCropper) {
@@ -2738,6 +2794,10 @@ class ImageUploaderComponent {
2738
2794
  }
2739
2795
  }
2740
2796
  }
2797
+ showImageUploader(element) {
2798
+ let input = element.parentElement.parentElement.querySelector('input[type=file]');
2799
+ input.click();
2800
+ }
2741
2801
  showGlobalError() {
2742
2802
  this.controlUtility.showGlobalError();
2743
2803
  }
@@ -2872,19 +2932,18 @@ ImageUploaderComponent.controlContainerstatic = null;
2872
2932
  ImageUploaderComponent.decorators = [
2873
2933
  { type: Component, args: [{
2874
2934
  selector: 'BBSF-ImageUpload',
2875
- 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\" onclick=\"$(this).parents('.ImageUploadClassSelector').find('input[type=file]').click();\">\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",
2935
+ 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",
2876
2936
  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"]
2877
2937
  },] }
2878
2938
  ];
2879
2939
  ImageUploaderComponent.ctorParameters = () => [
2880
2940
  { type: NgZone },
2881
- { type: ErrorMassageValidation },
2882
2941
  { type: ControlUtility },
2883
2942
  { type: ControlContainer, decorators: [{ type: Optional }] },
2884
2943
  { type: FormGroupDirective },
2885
2944
  { type: UtilityService },
2886
- { type: BBSFTranslateService },
2887
- { type: ControlValidationService }
2945
+ { type: ControlValidationService },
2946
+ { type: GlobalSettings }
2888
2947
  ];
2889
2948
  ImageUploaderComponent.propDecorators = {
2890
2949
  fileInput: [{ type: ViewChild, args: ['fileInput', { static: false },] }],
@@ -2898,14 +2957,14 @@ class ProfilePictureDTO {
2898
2957
  }
2899
2958
 
2900
2959
  class ProfileImageUploaderComponent {
2901
- constructor(zone, ErrorHandler, controlUtility, controlContainer, ProfileImageUploaderControlHost, UtilityService, controlValidationService) {
2960
+ constructor(zone, controlUtility, controlContainer, ProfileImageUploaderControlHost, UtilityService, controlValidationService, globalSettings) {
2902
2961
  this.zone = zone;
2903
- this.ErrorHandler = ErrorHandler;
2904
2962
  this.controlUtility = controlUtility;
2905
2963
  this.controlContainer = controlContainer;
2906
2964
  this.ProfileImageUploaderControlHost = ProfileImageUploaderControlHost;
2907
2965
  this.UtilityService = UtilityService;
2908
2966
  this.controlValidationService = controlValidationService;
2967
+ this.globalSettings = globalSettings;
2909
2968
  this.files = [];
2910
2969
  this.ImageSource = "./src/assets/images/userimg.png";
2911
2970
  this.OnChange = new EventEmitter();
@@ -2953,6 +3012,8 @@ class ProfileImageUploaderComponent {
2953
3012
  }
2954
3013
  ngOnInit() {
2955
3014
  this.controlValidationService.isCreatedBefor = false;
3015
+ if (!this.options.ViewType)
3016
+ this.options.ViewType = this.globalSettings.ViewType;
2956
3017
  if (this.options.DefaultImageSrc != null && this.options.DefaultImageSrc != "")
2957
3018
  this.ImageSource = this.options.DefaultImageSrc;
2958
3019
  this.config = {
@@ -3023,6 +3084,10 @@ class ProfileImageUploaderComponent {
3023
3084
  }
3024
3085
  }
3025
3086
  }
3087
+ showImageUploader(element) {
3088
+ let input = element.parentElement.parentElement.querySelector('input[type=file]');
3089
+ input.click();
3090
+ }
3026
3091
  showGlobalError() {
3027
3092
  this.controlUtility.showGlobalError();
3028
3093
  }
@@ -3195,18 +3260,18 @@ ProfileImageUploaderComponent.controlContainerstatic = null;
3195
3260
  ProfileImageUploaderComponent.decorators = [
3196
3261
  { type: Component, args: [{
3197
3262
  selector: 'BBSF-ProfileImageUploader',
3198
- template: "<div class=\"b-control b-profile-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\"></i>\r\n </ejs-tooltip>\r\n\r\n\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\" class=\"ProfileDropBox d-inline-flex h-auto w-auto overflow-hidden m-0 {{options.ExtraClasses}}\" style=\"width:200px;height:200px;overflow:inherit;\" ngx-dropzone\r\n [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\" (change)=\"onFileChange($event)\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" ngDefaultControl formControlName=\"{{options.Name}}\"\r\n id=\"{{options.Name}}\" [class.is-invalid]=\"ProfileImageUploadFormControl.invalid && ProfileImageUploadFormControl.touched\">\r\n <ngx-dropzone-label class=\"rounded-circle w-100 h-100 m-0\">\r\n <div class=\"h-100\">\r\n <img [src]=\"ImageSource\" class=\"w-100 rounded-circle\" />\r\n </div>\r\n </ngx-dropzone-label>\r\n <ngx-dropzone-image-preview *ngFor=\"let f of files\" ngProjectAs=\"ngx-dropzone-preview\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n class=\"w-100 h-100 m-0\">\r\n\r\n </ngx-dropzone-image-preview>\r\n </div>\r\n\r\n <div class=\"ProfileImageUploadClassSelector\" *ngIf=\"!options.AllowDropZone\" >\r\n <ngx-dropzone-label style=\" border: none !important;width:200px;height:200px;overflow:inherit;\" class=\"d-inline-flex h-auto w-auto overflow-hidden m-0\" *ngIf=\"files.length==0\" >\r\n <div style=\"max-width:200px !important; max-height: 200px !important;\" class=\"h-100 file-fake-input\" onclick=\"$(this).parents('.ProfileImageUploadClassSelector').find('input[type=file]').click();\">\r\n <img [src]=\"ImageSource\" class=\"h-100 w-100\" />\r\n </div>\r\n </ngx-dropzone-label>\r\n \r\n <div class=\"ProfileDropBox rounded-circle {{options.ExtraClasses}}\" style=\" border: none !important;width:200px;height:200px;overflow:inherit;\" ngx-dropzone\r\n [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\" (change)=\"onFileChange($event)\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" ngDefaultControl formControlName=\"{{options.Name}}\"\r\n id=\"{{options.Name}}\" [class.is-invalid]=\"ProfileImageUploadFormControl.invalid && ProfileImageUploadFormControl.touched\">\r\n \r\n <ngx-dropzone-image-preview class=\"rounded-circle w-100 h-100 m-0\" *ngFor=\"let f of files\" ngProjectAs=\"ngx-dropzone-preview\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n >\r\n\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 class=\"ProfileDropBox\" #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 \r\n \r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(ProfileImageUploadFormControl.invalid && ProfileImageUploadFormControl.touched)\">\r\n {{getErrorValidation(ProfileImageUploadFormControl.errors|keyvalue)}}\r\n</div>\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",
3263
+ template: "<div class=\"b-control b-profile-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\"></i>\r\n </ejs-tooltip>\r\n\r\n\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\" class=\"ProfileDropBox d-inline-flex h-auto w-auto overflow-hidden m-0 {{options.ExtraClasses}}\" style=\"width:200px;height:200px;overflow:inherit;\" ngx-dropzone\r\n [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\" (change)=\"onFileChange($event)\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" ngDefaultControl formControlName=\"{{options.Name}}\"\r\n id=\"{{options.Name}}\" [class.is-invalid]=\"ProfileImageUploadFormControl.invalid && ProfileImageUploadFormControl.touched\">\r\n <ngx-dropzone-label class=\"rounded-circle w-100 h-100 m-0\">\r\n <div class=\"h-100\">\r\n <img [src]=\"ImageSource\" class=\"w-100 rounded-circle\" />\r\n </div>\r\n </ngx-dropzone-label>\r\n <ngx-dropzone-image-preview *ngFor=\"let f of files\" ngProjectAs=\"ngx-dropzone-preview\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n class=\"w-100 h-100 m-0\">\r\n\r\n </ngx-dropzone-image-preview>\r\n </div>\r\n\r\n <div class=\"ProfileImageUploadClassSelector\" *ngIf=\"!options.AllowDropZone\" >\r\n <ngx-dropzone-label style=\" border: none !important;width:200px;height:200px;overflow:inherit;\" class=\"d-inline-flex h-auto w-auto overflow-hidden 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 class=\"ProfileDropBox rounded-circle {{options.ExtraClasses}}\" style=\" border: none !important;width:200px;height:200px;overflow:inherit;\" ngx-dropzone\r\n [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\" (change)=\"onFileChange($event)\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" ngDefaultControl formControlName=\"{{options.Name}}\"\r\n id=\"{{options.Name}}\" [class.is-invalid]=\"ProfileImageUploadFormControl.invalid && ProfileImageUploadFormControl.touched\">\r\n \r\n <ngx-dropzone-image-preview class=\"rounded-circle w-100 h-100 m-0\" *ngFor=\"let f of files\" ngProjectAs=\"ngx-dropzone-preview\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n >\r\n\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 class=\"ProfileDropBox\" #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 \r\n \r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(ProfileImageUploadFormControl.invalid && ProfileImageUploadFormControl.touched)\">\r\n {{getErrorValidation(ProfileImageUploadFormControl.errors|keyvalue)}}\r\n</div>\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",
3199
3264
  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}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}.modal-body{padding:2px 16px}\n"]
3200
3265
  },] }
3201
3266
  ];
3202
3267
  ProfileImageUploaderComponent.ctorParameters = () => [
3203
3268
  { type: NgZone },
3204
- { type: ErrorMassageValidation },
3205
3269
  { type: ControlUtility },
3206
3270
  { type: ControlContainer, decorators: [{ type: Optional }] },
3207
3271
  { type: FormGroupDirective },
3208
3272
  { type: UtilityService },
3209
- { type: ControlValidationService }
3273
+ { type: ControlValidationService },
3274
+ { type: GlobalSettings }
3210
3275
  ];
3211
3276
  ProfileImageUploaderComponent.propDecorators = {
3212
3277
  fileInput: [{ type: ViewChild, args: ['fileInput', { static: false },] }],
@@ -3225,15 +3290,16 @@ class AutocompleteDTO {
3225
3290
 
3226
3291
  class AutocompleteTextBoxComponent {
3227
3292
  // tslint:disable-next-line: max-line-length
3228
- constructor(http, ErrorHandler, controlUtility, controlContainer, AutocompleteTextBoxControlHost, UtilityService, translate, controlValidationService) {
3293
+ constructor(http, ErrorHandler, requestHandlerService, controlUtility, controlContainer, AutocompleteTextBoxControlHost, UtilityService, controlValidationService, globalSettings) {
3229
3294
  this.http = http;
3230
3295
  this.ErrorHandler = ErrorHandler;
3296
+ this.requestHandlerService = requestHandlerService;
3231
3297
  this.controlUtility = controlUtility;
3232
3298
  this.controlContainer = controlContainer;
3233
3299
  this.AutocompleteTextBoxControlHost = AutocompleteTextBoxControlHost;
3234
3300
  this.UtilityService = UtilityService;
3235
- this.translate = translate;
3236
3301
  this.controlValidationService = controlValidationService;
3302
+ this.globalSettings = globalSettings;
3237
3303
  this.OnChange = new EventEmitter();
3238
3304
  this.keyword = 'value';
3239
3305
  this.Search = '';
@@ -3307,6 +3373,8 @@ class AutocompleteTextBoxComponent {
3307
3373
  this.controlValidationService.isCreatedBefor = false;
3308
3374
  this.group.addControl(this.options.Name, new FormControl(''));
3309
3375
  this.AutocompleteTextBoxControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
3376
+ if (!this.options.ViewType)
3377
+ this.options.ViewType = this.globalSettings.ViewType;
3310
3378
  if (this.options.LabelKey != null && this.options.LabelKey != "")
3311
3379
  this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);
3312
3380
  // this.AutocompleteTextBoxControl.setValue(this.options.Value);
@@ -3349,10 +3417,12 @@ class AutocompleteTextBoxComponent {
3349
3417
  if (query) {
3350
3418
  let params = new HttpParams();
3351
3419
  params = params.append(this.options.QueryParam, query);
3420
+ let requestOptionsModel = new RequestOptionsModel();
3421
+ requestOptionsModel.disableBlockUI = true;
3422
+ requestOptionsModel.disableSuccessNotification = true;
3352
3423
  // using github public api to get users by name
3353
- return this.http.get(this.options.ActionURL, { headers: httpOptions.headers,
3354
- params: params
3355
- }).pipe(map((data) => data || []), tap(() => noop, err => {
3424
+ return this.requestHandlerService.get(this.options.ActionURL, params, requestOptionsModel)
3425
+ .pipe(map((data) => data || []), tap(() => noop, err => {
3356
3426
  // in case of http error
3357
3427
  this.errorMessage = err && err.message || 'Something goes wrong';
3358
3428
  }));
@@ -3436,12 +3506,13 @@ AutocompleteTextBoxComponent.decorators = [
3436
3506
  AutocompleteTextBoxComponent.ctorParameters = () => [
3437
3507
  { type: HttpClient },
3438
3508
  { type: ErrorMassageValidation },
3509
+ { type: RequestHandlerService },
3439
3510
  { type: ControlUtility },
3440
3511
  { type: ControlContainer, decorators: [{ type: Optional }] },
3441
3512
  { type: FormGroupDirective },
3442
3513
  { type: UtilityService },
3443
- { type: BBSFTranslateService },
3444
- { type: ControlValidationService }
3514
+ { type: ControlValidationService },
3515
+ { type: GlobalSettings }
3445
3516
  ];
3446
3517
  AutocompleteTextBoxComponent.propDecorators = {
3447
3518
  group: [{ type: Input }],
@@ -3451,14 +3522,15 @@ AutocompleteTextBoxComponent.propDecorators = {
3451
3522
 
3452
3523
  class TagsInputComponent {
3453
3524
  // tslint:disable-next-line: max-line-length
3454
- constructor(http, ErrorHandler, controlUtility, controlContainer, TagsInputControlHost, UtilityService, controlValidationService) {
3525
+ constructor(http, controlUtility, requestHandlerService, controlContainer, TagsInputControlHost, UtilityService, controlValidationService, globalSettings) {
3455
3526
  this.http = http;
3456
- this.ErrorHandler = ErrorHandler;
3457
3527
  this.controlUtility = controlUtility;
3528
+ this.requestHandlerService = requestHandlerService;
3458
3529
  this.controlContainer = controlContainer;
3459
3530
  this.TagsInputControlHost = TagsInputControlHost;
3460
3531
  this.UtilityService = UtilityService;
3461
3532
  this.controlValidationService = controlValidationService;
3533
+ this.globalSettings = globalSettings;
3462
3534
  this.OnChange = new EventEmitter();
3463
3535
  // TagInputControl: AbstractControl;
3464
3536
  this.SelectedId = [];
@@ -3513,6 +3585,8 @@ class TagsInputComponent {
3513
3585
  this.TagsFormGroup.addControl("tags", new FormControl(''));
3514
3586
  this.TagsFormControl = this.TagsFormGroup.controls["tags"]; // new FormControl('',validationRules);
3515
3587
  this.group.addControl(this.options.Name, this.TagsFormControl);
3588
+ if (!this.options.ViewType)
3589
+ this.options.ViewType = this.globalSettings.ViewType;
3516
3590
  if (this.options.LabelKey != null && this.options.LabelKey != "")
3517
3591
  this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);
3518
3592
  // this.group.addControl(this.options.Name, new FormControl(''));
@@ -3570,21 +3644,11 @@ class TagsInputComponent {
3570
3644
  this.controlUtility.CopyInputMessage(inputElement);
3571
3645
  }
3572
3646
  searchFunctionFactory(Text) {
3573
- const httpOptions = this.options.ValidationToken != null && this.options.ValidationToken != "" ?
3574
- {
3575
- headers: new HttpHeaders({
3576
- 'Content-Type': 'application/json',
3577
- 'Authorization': this.options.ValidationToken
3578
- })
3579
- }
3580
- :
3581
- {
3582
- headers: new HttpHeaders({
3583
- 'Content-Type': 'application/json',
3584
- })
3585
- };
3586
3647
  let Url = `${this.options.ActionURL}?${this.options.QueryParamName}=${Text}&${this.options.SelectedItemsParamName}=${this.SelectedId}`;
3587
- let Model = this.http.get(Url, httpOptions);
3648
+ let requestOptionsModel = new RequestOptionsModel();
3649
+ requestOptionsModel.disableBlockUI = true;
3650
+ requestOptionsModel.disableSuccessNotification = true;
3651
+ let Model = this.requestHandlerService.get(Url, null, requestOptionsModel);
3588
3652
  return Model;
3589
3653
  }
3590
3654
  AddTag(event, key) {
@@ -3635,12 +3699,13 @@ TagsInputComponent.decorators = [
3635
3699
  ];
3636
3700
  TagsInputComponent.ctorParameters = () => [
3637
3701
  { type: HttpClient },
3638
- { type: ErrorMassageValidation },
3639
3702
  { type: ControlUtility },
3703
+ { type: RequestHandlerService },
3640
3704
  { type: ControlContainer, decorators: [{ type: Optional }] },
3641
3705
  { type: FormGroupDirective },
3642
3706
  { type: UtilityService },
3643
- { type: ControlValidationService }
3707
+ { type: ControlValidationService },
3708
+ { type: GlobalSettings }
3644
3709
  ];
3645
3710
  TagsInputComponent.propDecorators = {
3646
3711
  group: [{ type: Input }],
@@ -3674,7 +3739,8 @@ var FilterType;
3674
3739
 
3675
3740
  // tslint:disable-next-line: no-conflicting-lifecycle
3676
3741
  class PagingComponent {
3677
- constructor(http, router, onChangeService, requestHandlerService) {
3742
+ constructor(utilityService, http, router, onChangeService, requestHandlerService) {
3743
+ this.utilityService = utilityService;
3678
3744
  this.http = http;
3679
3745
  this.router = router;
3680
3746
  this.onChangeService = onChangeService;
@@ -3864,11 +3930,12 @@ class PagingComponent {
3864
3930
  PagingComponent.decorators = [
3865
3931
  { type: Component, args: [{
3866
3932
  selector: 'BBSF-Paging',
3867
- 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> Items in <strong> {{Pages}}</strong> 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",
3933
+ 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",
3868
3934
  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"]
3869
3935
  },] }
3870
3936
  ];
3871
3937
  PagingComponent.ctorParameters = () => [
3938
+ { type: UtilityService },
3872
3939
  { type: HttpClient },
3873
3940
  { type: Router },
3874
3941
  { type: OnPagingFiltersChangeService },
@@ -4008,12 +4075,13 @@ JwPaginationComponent.propDecorators = {
4008
4075
 
4009
4076
  class RadioButtonComponent {
4010
4077
  // tslint:disable-next-line: max-line-length
4011
- constructor(controlUtility, controlContainer, RadioButtonControlHost, UtilityService, controlValidationService) {
4078
+ constructor(controlUtility, controlContainer, RadioButtonControlHost, UtilityService, controlValidationService, globalSettings) {
4012
4079
  this.controlUtility = controlUtility;
4013
4080
  this.controlContainer = controlContainer;
4014
4081
  this.RadioButtonControlHost = RadioButtonControlHost;
4015
4082
  this.UtilityService = UtilityService;
4016
4083
  this.controlValidationService = controlValidationService;
4084
+ this.globalSettings = globalSettings;
4017
4085
  this.OnChange = new EventEmitter();
4018
4086
  this.markAllAsTouched = false;
4019
4087
  this.validationRules = [];
@@ -4046,6 +4114,8 @@ class RadioButtonComponent {
4046
4114
  ngOnInit() {
4047
4115
  this.group.addControl(this.options.Name, new FormControl(''));
4048
4116
  this.RadioButtonFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
4117
+ if (!this.options.ViewType)
4118
+ this.options.ViewType = this.globalSettings.ViewType;
4049
4119
  if (this.options.IsRequired) {
4050
4120
  this.validationRules.push(Validators.required);
4051
4121
  }
@@ -4092,7 +4162,8 @@ RadioButtonComponent.ctorParameters = () => [
4092
4162
  { type: ControlContainer, decorators: [{ type: Optional }] },
4093
4163
  { type: FormGroupDirective },
4094
4164
  { type: UtilityService },
4095
- { type: ControlValidationService }
4165
+ { type: ControlValidationService },
4166
+ { type: GlobalSettings }
4096
4167
  ];
4097
4168
  RadioButtonComponent.propDecorators = {
4098
4169
  group: [{ type: Input }],
@@ -4102,12 +4173,13 @@ RadioButtonComponent.propDecorators = {
4102
4173
 
4103
4174
  class TextboxComponent {
4104
4175
  // tslint:disable-next-line: max-line-length
4105
- constructor(controlUtility, controlContainer, TextControlHost, UtilityService, controlValidationService) {
4176
+ constructor(controlUtility, controlContainer, TextControlHost, UtilityService, controlValidationService, globalSettings) {
4106
4177
  this.controlUtility = controlUtility;
4107
4178
  this.controlContainer = controlContainer;
4108
4179
  this.TextControlHost = TextControlHost;
4109
4180
  this.UtilityService = UtilityService;
4110
4181
  this.controlValidationService = controlValidationService;
4182
+ this.globalSettings = globalSettings;
4111
4183
  this.OnChange = new EventEmitter();
4112
4184
  this.WordCount = 0;
4113
4185
  this.WordCountArray = 0;
@@ -4156,6 +4228,8 @@ class TextboxComponent {
4156
4228
  // }
4157
4229
  ngOnInit() {
4158
4230
  this.controlValidationService.isCreatedBefor = false;
4231
+ if (!this.options.ViewType)
4232
+ this.options.ViewType = this.globalSettings.ViewType;
4159
4233
  if (this.options.MaskPattern != null && this.options.MaskPattern != "") {
4160
4234
  this.MaskPattern = this.options.MaskPattern;
4161
4235
  this.options.Placeholder = this.MaskPattern;
@@ -4304,7 +4378,8 @@ TextboxComponent.ctorParameters = () => [
4304
4378
  { type: ControlContainer, decorators: [{ type: Optional }] },
4305
4379
  { type: FormGroupDirective },
4306
4380
  { type: UtilityService },
4307
- { type: ControlValidationService }
4381
+ { type: ControlValidationService },
4382
+ { type: GlobalSettings }
4308
4383
  ];
4309
4384
  TextboxComponent.propDecorators = {
4310
4385
  group: [{ type: Input }],
@@ -4316,17 +4391,16 @@ class MapAutocompleteDTO {
4316
4391
  }
4317
4392
 
4318
4393
  class MapAutoCompleteComponent {
4319
- constructor(mapsAPILoader, ngZone, titleService, ErrorHandler, controlUtility, controlContainer, MapAutoCompleteControlHost, UtilityService, translate, controlValidationService) {
4394
+ constructor(mapsAPILoader, ngZone, controlUtility, controlContainer, MapAutoCompleteControlHost, UtilityService, translate, controlValidationService, globalSettings) {
4320
4395
  this.mapsAPILoader = mapsAPILoader;
4321
4396
  this.ngZone = ngZone;
4322
- this.titleService = titleService;
4323
- this.ErrorHandler = ErrorHandler;
4324
4397
  this.controlUtility = controlUtility;
4325
4398
  this.controlContainer = controlContainer;
4326
4399
  this.MapAutoCompleteControlHost = MapAutoCompleteControlHost;
4327
4400
  this.UtilityService = UtilityService;
4328
4401
  this.translate = translate;
4329
4402
  this.controlValidationService = controlValidationService;
4403
+ this.globalSettings = globalSettings;
4330
4404
  this.OnChange = new EventEmitter();
4331
4405
  this.MapAutoCompleteModel = new MapAutocompleteDTO();
4332
4406
  this.CurrentLanguage = "";
@@ -4496,6 +4570,8 @@ class MapAutoCompleteComponent {
4496
4570
  });
4497
4571
  this.group.addControl(this.options.Name, new FormControl(''));
4498
4572
  this.MapAutoCompleteFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
4573
+ if (!this.options.ViewType)
4574
+ this.options.ViewType = this.globalSettings.ViewType;
4499
4575
  if (this.options.IsRequired) {
4500
4576
  this.validationRules.push(Validators.required);
4501
4577
  }
@@ -4574,14 +4650,13 @@ MapAutoCompleteComponent.decorators = [
4574
4650
  MapAutoCompleteComponent.ctorParameters = () => [
4575
4651
  { type: MapsAPILoader },
4576
4652
  { type: NgZone },
4577
- { type: Title },
4578
- { type: ErrorMassageValidation },
4579
4653
  { type: ControlUtility },
4580
4654
  { type: ControlContainer, decorators: [{ type: Optional }] },
4581
4655
  { type: FormGroupDirective },
4582
4656
  { type: UtilityService },
4583
4657
  { type: BBSFTranslateService },
4584
- { type: ControlValidationService }
4658
+ { type: ControlValidationService },
4659
+ { type: GlobalSettings }
4585
4660
  ];
4586
4661
  MapAutoCompleteComponent.propDecorators = {
4587
4662
  group: [{ type: Input }],
@@ -4767,17 +4842,22 @@ var PagingActionMode;
4767
4842
  })(PagingActionMode || (PagingActionMode = {}));
4768
4843
 
4769
4844
  class FormComponent {
4770
- constructor(utilityService, controlValidationService, modalService, ngbActiveModal) {
4845
+ constructor(controlUtility, utilityService, controlValidationService, modalService, ngbActiveModal) {
4846
+ this.controlUtility = controlUtility;
4771
4847
  this.utilityService = utilityService;
4772
4848
  this.controlValidationService = controlValidationService;
4773
4849
  this.modalService = modalService;
4774
4850
  this.ngbActiveModal = ngbActiveModal;
4775
4851
  }
4776
4852
  ngOnInit() {
4853
+ this.fromName = this.randomString(5);
4777
4854
  }
4778
4855
  submit() {
4779
- if (this.options.FormGroup.invalid)
4856
+ this.options.FormGroup.markAllAsTouched();
4857
+ if (this.options.FormGroup.invalid) {
4858
+ this.showGlobalError();
4780
4859
  return;
4860
+ }
4781
4861
  else {
4782
4862
  let submitModel = this.options.GetModelFunction();
4783
4863
  let submittedService = this.options.ServiceSubmitFunction.apply(null, submitModel);
@@ -4826,15 +4906,27 @@ class FormComponent {
4826
4906
  if (!this.options.DisableBlockUI)
4827
4907
  this.utilityService.stopBlockUI();
4828
4908
  }
4909
+ showGlobalError() {
4910
+ this.controlUtility.showGlobalError(this.fromName);
4911
+ }
4912
+ randomString(length) {
4913
+ var randomChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
4914
+ var result = '';
4915
+ for (var i = 0; i < length; i++) {
4916
+ result += randomChars.charAt(Math.floor(Math.random() * randomChars.length));
4917
+ }
4918
+ return result;
4919
+ }
4829
4920
  }
4830
4921
  FormComponent.decorators = [
4831
4922
  { type: Component, args: [{
4832
4923
  // tslint:disable-next-line: component-selector
4833
4924
  selector: 'BBSF-Form',
4834
- template: "<form [FormGroup]=\"options.FormGroup\" (ngSubmit)=\"submit()\">\r\n \r\n <ng-template #content><ng-content></ng-content></ng-template>\r\n\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n</form>"
4925
+ template: "<form id=\"{{fromName}}\" [FormGroup]=\"options.FormGroup\" (ngSubmit)=\"submit()\" > \r\n \r\n <ng-template #content><ng-content></ng-content></ng-template>\r\n\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n</form>"
4835
4926
  },] }
4836
4927
  ];
4837
4928
  FormComponent.ctorParameters = () => [
4929
+ { type: ControlUtility },
4838
4930
  { type: UtilityService },
4839
4931
  { type: ControlValidationService },
4840
4932
  { type: NgbModal },
@@ -4853,27 +4945,43 @@ class ConfirmationModalComponent {
4853
4945
  this.styleSuccess = StyleConfirmationMode.Success;
4854
4946
  }
4855
4947
  ngOnInit() {
4856
- console.log("options on initialize");
4857
- console.log(this.options);
4858
- //check for options text values
4859
- this.setTextValues();
4860
- }
4861
- ngAfterViewInit() {
4862
- if (this.options.AutoShowModal)
4863
- this.showModal();
4864
4948
  }
4865
4949
  //Method used to show confirmation modal
4866
4950
  showModal() {
4867
4951
  this.utilityService.startBlockUI();
4868
- //open modal
4869
- this.modalService.open(this.confirmationModal);
4952
+ //check for options text values
4953
+ this.setTextValues();
4954
+ //sweetalert styles//
4955
+ switch (this.options.StyleConfirmationMode) {
4956
+ case this.styleSuccess: {
4957
+ this.icon = 'success';
4958
+ this.btnColor = '#50cd89';
4959
+ }
4960
+ case this.styleWarning: {
4961
+ this.icon = 'warning';
4962
+ this.btnColor = '#ffc700';
4963
+ }
4964
+ case this.styleDanger: {
4965
+ this.icon = 'error';
4966
+ this.btnColor = '#f1416c';
4967
+ }
4968
+ }
4969
+ Swal.fire({
4970
+ title: this.options.ConfirmationHeader,
4971
+ text: this.options.ConfirmationBody,
4972
+ icon: this.icon,
4973
+ showCancelButton: true,
4974
+ confirmButtonColor: this.btnColor,
4975
+ cancelButtonColor: '#f5f8fa',
4976
+ showCloseButton: true,
4977
+ }).then((result) => {
4978
+ if (result.isConfirmed) {
4979
+ this.submit();
4980
+ }
4981
+ });
4870
4982
  this.utilityService.stopBlockUI();
4871
- console.log("options after modal opened");
4872
- console.log(this.options);
4873
4983
  }
4874
4984
  setTextValues() {
4875
- console.log("options in first showmodal");
4876
- console.log(this.options);
4877
4985
  if (!this.options.ConfirmationHeader)
4878
4986
  this.options.ConfirmationHeader = this.utilityService.getResourceValue("DeleteConfirmation");
4879
4987
  if (!this.options.ConfirmationBody)
@@ -4928,9 +5036,8 @@ class ConfirmationModalComponent {
4928
5036
  }
4929
5037
  ConfirmationModalComponent.decorators = [
4930
5038
  { type: Component, args: [{
4931
- selector: 'BBSF-ConfirmationModal',
4932
- template: "<!--delete Modal-->\r\n<ng-template #confirmationModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{options.ConfirmationHeader}}</h1>\r\n </div>\r\n <!--Style danger-->\r\n <div [ngSwitch]=\"options.StyleConfirmationMode\">\r\n <div *ngSwitchCase=\"styleDanger\" class=\"notice d-flex bg-light-danger rounded border-danger border border-dashed mb-10 p-6\">\r\n <span class=\"svg-icon svg-icon-2tx svg-icon-danger me-4\">\r\n <span [inlineSVG]=\"'./src/assets/images/gen044.svg'\"></span>\r\n </span>\r\n\r\n <div class=\"d-flex flex-stack flex-grow-1\">\r\n <div class=\"fw-bold\">\r\n <div class=\"fs-6 text-gray-700\">\r\n {{options.ConfirmationBody}}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!--Style warning-->\r\n <div *ngSwitchCase=\"styleWarning\" class=\"notice d-flex bg-light-warning rounded border-warning border border-dashed mb-10 p-6\">\r\n <span class=\"svg-icon svg-icon-2tx svg-icon-warning me-4\">\r\n <span [inlineSVG]=\"'./src/assets/images/gen044.svg'\"></span>\r\n </span>\r\n\r\n <div class=\"d-flex flex-stack flex-grow-1\">\r\n <div class=\"fw-bold\">\r\n <div class=\"fs-6 text-gray-700\">\r\n {{options.ConfirmationBody}}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!--Style success-->\r\n <div *ngSwitchCase=\"styleSuccess\" class=\"notice d-flex bg-light-success rounded border-success border border-dashed mb-10 p-6\">\r\n <span class=\"svg-icon svg-icon-2tx svg-icon-success me-4\">\r\n <span [inlineSVG]=\"'./src/assets/images/gen044.svg'\"></span>\r\n </span>\r\n\r\n <div class=\"d-flex flex-stack flex-grow-1\">\r\n <div class=\"fw-bold\">\r\n <div class=\"fs-6 text-gray-700\">\r\n {{options.ConfirmationBody}}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-center pt-7\">\r\n <button type=\"button\" class=\"btn btn-light btn-sm me-3 \" data-dismiss=\"modal\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"button\" (click)=\"submit()\"\r\n class=\"btn btn-light-danger btn-sm \">\r\n {{options.SubmitButtonText}}\r\n </button>\r\n\r\n </div>\r\n </div>\r\n</ng-template>\r\n",
4933
- styles: [""]
5039
+ template: "",
5040
+ selector: 'BBSF-ConfirmationModal'
4934
5041
  },] }
4935
5042
  ];
4936
5043
  ConfirmationModalComponent.ctorParameters = () => [
@@ -5032,18 +5139,19 @@ BBSFControlsModule.decorators = [
5032
5139
  AutocompleteLibModule,
5033
5140
  BBSFUtilitiesModule,
5034
5141
  InlineSVGModule.forRoot(),
5142
+ SweetAlert2Module
5035
5143
  ],
5036
5144
  providers: [
5037
5145
  ErrorMassageValidation,
5038
5146
  ControlUtility,
5039
5147
  OnPagingFiltersChangeService,
5040
- EnvironmentService,
5041
- AuthService,
5042
- RequestHandlerService,
5043
- UtilityService,
5148
+ // EnvironmentService,
5149
+ // AuthService,
5150
+ // RequestHandlerService,
5151
+ // UtilityService,
5044
5152
  TranslateService,
5045
- BBSFTranslateService,
5046
- ControlValidationService,
5153
+ // BBSFTranslateService,
5154
+ // ControlValidationService,
5047
5155
  FormGroupDirective,
5048
5156
  NgbModal,
5049
5157
  NgbActiveModal
@@ -5111,12 +5219,6 @@ class CustomValidator {
5111
5219
  }
5112
5220
  }
5113
5221
 
5114
- var ControlLayout;
5115
- (function (ControlLayout) {
5116
- ControlLayout[ControlLayout["Vertical"] = 1] = "Vertical";
5117
- ControlLayout[ControlLayout["Horizontal"] = 2] = "Horizontal";
5118
- })(ControlLayout || (ControlLayout = {}));
5119
-
5120
5222
  var ForceDirection;
5121
5223
  (function (ForceDirection) {
5122
5224
  ForceDirection[ForceDirection["English"] = 1] = "English";
@@ -5158,7 +5260,7 @@ class TextBoxOptions {
5158
5260
  /**Prevent AutoComplete of textbox*/
5159
5261
  this.AutoComplete = "off";
5160
5262
  /** to set type of view if textbox is Vertical or Horizontal */
5161
- this.ViewType = ControlLayout.Vertical;
5263
+ this.ViewType = null;
5162
5264
  /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
5163
5265
  */
5164
5266
  this.CustomValidation = [];
@@ -5179,7 +5281,7 @@ class FileUploadOptions {
5179
5281
  */
5180
5282
  this.CustomValidation = [];
5181
5283
  /** to set type of view if textbox is Vertical or Horizontal */
5182
- this.ViewType = ControlLayout.Vertical;
5284
+ this.ViewType = null;
5183
5285
  }
5184
5286
  }
5185
5287
 
@@ -5191,13 +5293,13 @@ class MultiLingualTextBoxOptions {
5191
5293
  /**To Set Value To MultipleLanguageText with Object From Type "EnglishArabicDTO" */
5192
5294
  this.Value = new EnglishArabicDTO();
5193
5295
  /** to set type of view if textbox is Vertical or Horizontal */
5194
- this.ViewType = ControlLayout.Vertical;
5296
+ this.ViewType = null;
5195
5297
  /**To Set LanguageMode To MultipleLanguageText */
5196
- this.LanguageMode = LanguageMode.Both_Languages_are_visible;
5298
+ this.LanguageMode = null;
5197
5299
  this.IconPositionEN = IconPosition.left;
5198
5300
  this.IconPositionAR = IconPosition.right;
5199
5301
  /*multi control placement type*/
5200
- this.MultiControlPlacementType = ControlLayout.Horizontal;
5302
+ this.MultiControlPlacementType = null;
5201
5303
  }
5202
5304
  }
5203
5305
 
@@ -5207,7 +5309,7 @@ class Attribute {
5207
5309
  class TextAreaOptions {
5208
5310
  constructor() {
5209
5311
  /** to set type of view if TextArea is Vertical or Horizontal */
5210
- this.ViewType = ControlLayout.Vertical;
5312
+ this.ViewType = null;
5211
5313
  /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
5212
5314
  */
5213
5315
  this.CustomValidation = [];
@@ -5224,11 +5326,11 @@ class MultiLingualTextAreaOptions {
5224
5326
  /**To Set Value To MultipleLanguageText with Object From Type "EnglishArabicDTO" */
5225
5327
  this.Value = new EnglishArabicDTO();
5226
5328
  /** to set type of view if MultilingualTextArea is Vertical or Horizontal */
5227
- this.ViewType = ControlLayout.Vertical;
5329
+ this.ViewType = null;
5228
5330
  /**To Set LanguageMode To MultipleLanguageText */
5229
- this.LanguageMode = LanguageMode.Both_Languages_are_visible;
5331
+ this.LanguageMode = null;
5230
5332
  /*multi control placement type*/
5231
- this.MultiControlPlacementType = ControlLayout.Horizontal;
5333
+ this.MultiControlPlacementType = null;
5232
5334
  }
5233
5335
  }
5234
5336
 
@@ -5251,7 +5353,7 @@ class DropdownOptions {
5251
5353
  /** Disable Bootstrap DropdownList */
5252
5354
  this.DisableBootstrapSelect = false;
5253
5355
  /** to set type of view if DropdownList is Vertical or Horizontal */
5254
- this.ViewType = ControlLayout.Vertical;
5356
+ this.ViewType = null;
5255
5357
  /** To Set Custom Validation*/
5256
5358
  this.CustomValidation = [];
5257
5359
  /** Set key for item in DropdownList */
@@ -5270,14 +5372,14 @@ class PhoneOptions {
5270
5372
  /**Set List Of Countries As Preferred Countries*/
5271
5373
  this.PreferredCountries = [];
5272
5374
  /** to set type of view if Phonebox is Vertical or Horizontal */
5273
- this.ViewType = ControlLayout.Vertical;
5375
+ this.ViewType = null;
5274
5376
  this.ForceDirection = ForceDirection.English;
5275
5377
  }
5276
5378
  }
5277
5379
 
5278
5380
  class ToggleSlideOptions {
5279
5381
  constructor() {
5280
- this.ViewType = ControlLayout.Vertical;
5382
+ this.ViewType = null;
5281
5383
  this.ForceDirection = ForceDirection.English;
5282
5384
  }
5283
5385
  }
@@ -5285,7 +5387,7 @@ class ToggleSlideOptions {
5285
5387
  class HtmlEditorOptions {
5286
5388
  constructor() {
5287
5389
  /** to set type of view if textbox is Vertical or Horizontal */
5288
- this.ViewType = ControlLayout.Vertical;
5390
+ this.ViewType = null;
5289
5391
  /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
5290
5392
  */
5291
5393
  this.CustomValidation = [];
@@ -5304,11 +5406,11 @@ class MultiLingualHtmlEditorOptions {
5304
5406
  /**To Set Value To MultipleLanguageText with Object From Type "EnglishArabicDTO" */
5305
5407
  this.Value = new EnglishArabicDTO();
5306
5408
  /** to set type of view if MultipleLanguageText is Vertical or Horizontal */
5307
- this.ViewType = ControlLayout.Vertical;
5409
+ this.ViewType = null;
5308
5410
  /** Set Height For */
5309
5411
  this.Height = 150;
5310
5412
  /**To Set LanguageMode To MultipleLanguageText */
5311
- this.LanguageMode = LanguageMode.Both_Languages_are_visible;
5413
+ this.LanguageMode = null;
5312
5414
  }
5313
5415
  }
5314
5416
 
@@ -5332,7 +5434,7 @@ class ImageUploadOptions {
5332
5434
  */
5333
5435
  this.CustomValidation = [];
5334
5436
  /** to set type of view if FileInput is Vertical or Horizontal */
5335
- this.ViewType = ControlLayout.Vertical;
5437
+ this.ViewType = null;
5336
5438
  /** Set List of Custom Attribute to FileInput */
5337
5439
  this.FileUploadAcceptsTypes = [ImageType.ImageTypes];
5338
5440
  }
@@ -5345,7 +5447,7 @@ class ProfileImageUploadOptions {
5345
5447
  this.AllowDropZone = false;
5346
5448
  this.CustomValidation = [];
5347
5449
  /** to set type of view if FileInput is Vertical or Horizontal */
5348
- this.ViewType = ControlLayout.Vertical;
5450
+ this.ViewType = null;
5349
5451
  /** Set List of Custom Attribute to FileInput */
5350
5452
  this.ImageUploadAcceptsTypes = [ImageType.ImageTypes];
5351
5453
  }
@@ -5404,7 +5506,7 @@ class MapAutoCompleteOptions {
5404
5506
  */
5405
5507
  this.CustomValidation = [];
5406
5508
  /** to set type of view if MapAutoComplete is Vertical or Horizontal */
5407
- this.ViewType = ControlLayout.Vertical;
5509
+ this.ViewType = null;
5408
5510
  }
5409
5511
  }
5410
5512
 
@@ -5419,7 +5521,7 @@ class AutocompleteOptions {
5419
5521
  /** set Range Number to Textbox with type number with From-Value and To-value*/
5420
5522
  this.NumberRange = new RangeNumber();
5421
5523
  /** to set type of view if textbox is Vertical or Horizontal */
5422
- this.ViewType = ControlLayout.Vertical;
5524
+ this.ViewType = null;
5423
5525
  /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
5424
5526
  */
5425
5527
  this.CustomValidation = [];
@@ -5442,7 +5544,7 @@ class TagsInputOptions {
5442
5544
  /**To set value to tagsinput */
5443
5545
  this.Value = null;
5444
5546
  /** to set type of view if tagsinput is Vertical or Horizontal */
5445
- this.ViewType = ControlLayout.Vertical;
5547
+ this.ViewType = null;
5446
5548
  /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
5447
5549
  */
5448
5550
  this.CustomValidation = [];
@@ -5532,7 +5634,7 @@ class PagingOptions {
5532
5634
 
5533
5635
  class RadioButtonOptions {
5534
5636
  constructor() {
5535
- this.ViewType = ControlLayout.Vertical;
5637
+ this.ViewType = null;
5536
5638
  /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
5537
5639
  */
5538
5640
  this.CustomValidation = [];
@@ -5591,7 +5693,7 @@ class ConfirmationModalOptions {
5591
5693
  //Represents refrence to paging control that needs to be updated after success
5592
5694
  this.PagingReference = null;
5593
5695
  //Represents paging action excutes after submission (Reinitialize/Update)
5594
- this.PagingActionMode = PagingActionMode.Update;
5696
+ this.PagingActionMode = PagingActionMode.Reinitialize;
5595
5697
  //Represents function that excutes after submission error
5596
5698
  this.OnErrorHandler = null;
5597
5699
  //Represents function that excutes after submission success
@@ -5602,9 +5704,6 @@ class ConfirmationModalOptions {
5602
5704
  this.DisableSuccessNotification = false;
5603
5705
  //If ="true" disable notification after submission error
5604
5706
  this.DisableErrorNotification = false;
5605
- //If ="true" modal open automatically after options initialization
5606
- //If="false" should call function showModal()
5607
- this.AutoShowModal = true;
5608
5707
  }
5609
5708
  }
5610
5709
 
@@ -5931,5 +6030,5 @@ var FileType;
5931
6030
  * Generated bundle index. Do not edit.
5932
6031
  */
5933
6032
 
5934
- export { AppInjector, Attribute, AutocompleteDTO, AutocompleteOptions, BBSFControlsModule, CalendarEventDTO, CalendarOptions, CalendarView, CancelDTO, CheckBoxOptions, ConfirmationModalOptions, ControlLayout, ControlUtility, Country, CustomValidation, CustomValidator, DatePickerOptions, DropdownListItem, DropdownOptions, EditPersonalImage, EnglishArabicDTO, ErrorMassageValidation, FileType, FileUploadModel, FileUploadOptions, FilterItem, FilterType, FontSize, ForceDirection, FormOptions, HtmlEditorOptions, IconPosition, ImageType, ImageUploadOptions, InputType, Insert, LanguageMode, MapAutoCompleteOptions, MapAutocompleteDTO, MenuListType, Misc, MultiLingualHtmlEditorOptions, MultiLingualTextAreaOptions, MultiLingualTextBoxOptions, MultipleFileUploadModel, OnPagingFiltersChangeService, PagingActionMode, PagingDTO, PagingOptions, Para, PhoneOptions, PickerType, ProfileImageUploadOptions, ProfilePictureDTO, RadioButtonItem, RadioButtonOptions, RangeNumber, SaveDTO, SelectMode, StartView, Style, StyleConfirmationMode, TagsInputDTO, TagsInputOptions, TextAreaOptions, TextBoxOptions, ToggleSlideOptions, UploadPersonalImage, environment, options, DateInputComponent as ɵa, FileUploadComponent as ɵb, MultiLingualTextBoxComponent as ɵc, TextboxComponent as ɵd, TextAreaComponent as ɵe, MultiLingualTextAreaComponent as ɵf, CheckBoxComponent as ɵg, DropdownListComponent as ɵh, PhoneComponent as ɵi, ToggleslideComponent as ɵj, HtmlEditorComponent as ɵk, MultiLingualHtmlEditorComponent as ɵl, ImageUploaderComponent as ɵm, ProfileImageUploaderComponent as ɵn, CalendarComponent as ɵo, MapAutoCompleteComponent as ɵp, AutocompleteTextBoxComponent as ɵq, TagsInputComponent as ɵr, PagingComponent as ɵs, JwPaginationComponent as ɵt, RadioButtonComponent as ɵu, FormComponent as ɵv, ConfirmationModalComponent as ɵw };
6033
+ export { AppInjector, Attribute, AutocompleteDTO, AutocompleteOptions, BBSFControlsModule, CalendarEventDTO, CalendarOptions, CalendarView, CancelDTO, CheckBoxOptions, ConfirmationModalOptions, ControlLayout, ControlUtility, Country, CustomValidation, CustomValidator, DatePickerOptions, DropdownListItem, DropdownOptions, EditPersonalImage, EnglishArabicDTO, ErrorMassageValidation, FileType, FileUploadModel, FileUploadOptions, FilterItem, FilterType, FontSize, ForceDirection, FormOptions, GlobalSettings, HtmlEditorOptions, IconPosition, ImageType, ImageUploadOptions, InputType, Insert, LanguageMode, MapAutoCompleteOptions, MapAutocompleteDTO, MenuListType, Misc, MultiLingualHtmlEditorOptions, MultiLingualTextAreaOptions, MultiLingualTextBoxOptions, MultipleFileUploadModel, OnPagingFiltersChangeService, PagingActionMode, PagingDTO, PagingOptions, Para, PhoneOptions, PickerType, ProfileImageUploadOptions, ProfilePictureDTO, RadioButtonItem, RadioButtonOptions, RangeNumber, SaveDTO, SelectMode, StartView, Style, StyleConfirmationMode, TagsInputDTO, TagsInputOptions, TextAreaOptions, TextBoxOptions, ToggleSlideOptions, UploadPersonalImage, environment, options, DateInputComponent as ɵa, FileUploadComponent as ɵb, MultiLingualTextBoxComponent as ɵc, TextboxComponent as ɵd, TextAreaComponent as ɵe, MultiLingualTextAreaComponent as ɵf, CheckBoxComponent as ɵg, DropdownListComponent as ɵh, PhoneComponent as ɵi, ToggleslideComponent as ɵj, HtmlEditorComponent as ɵk, MultiLingualHtmlEditorComponent as ɵl, ImageUploaderComponent as ɵm, ProfileImageUploaderComponent as ɵn, CalendarComponent as ɵo, MapAutoCompleteComponent as ɵp, AutocompleteTextBoxComponent as ɵq, TagsInputComponent as ɵr, PagingComponent as ɵs, JwPaginationComponent as ɵt, RadioButtonComponent as ɵu, FormComponent as ɵv, ConfirmationModalComponent as ɵw };
5935
6034
  //# sourceMappingURL=bnsights-bbsf-controls.js.map