@bnsights/bbsf-controls 1.0.61 → 1.0.63

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.
@@ -3936,6 +3936,16 @@
3936
3936
  if (this.options.ImageUploadAcceptsTypes != null) {
3937
3937
  this.options.ImageUploadAcceptsTypes;
3938
3938
  }
3939
+ if (this.options.Value != null) {
3940
+ var imgURL = this.options.Value["fileURL"];
3941
+ if (imgURL != "" && imgURL != undefined && imgURL != null)
3942
+ this.ImageSource = imgURL;
3943
+ var element = this.options.Value;
3944
+ this.FileLikeObject = new ng2FileUpload.FileLikeObject({
3945
+ name: element.FileName,
3946
+ });
3947
+ this.uploader.addToQueue([this.FileLikeObject]);
3948
+ }
3939
3949
  if (this.options.LabelKey != null && this.options.LabelKey != "")
3940
3950
  this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);
3941
3951
  if (this.options.ImageUploadAcceptsTypes != null && this.options.ImageUploadAcceptsTypes.length > 0) {
@@ -4072,9 +4082,6 @@
4072
4082
  ProfileImageUploaderComponent.prototype.cropImage = function () {
4073
4083
  var _this = this;
4074
4084
  this.ProfilePictureDTO.FileName = this.EventFile.name;
4075
- this.ProfilePictureDTO.Original = this.EventFile.name + "Original";
4076
- this.ProfilePictureDTO.MediumPicture = this.EventFile.name + "MediumPicture";
4077
- this.ProfilePictureDTO.SmallPicture = this.EventFile.name + "SmallPicture";
4078
4085
  var Cropper = this.angularCropper.cropper;
4079
4086
  var profilePicturCropper = Cropper.getCroppedCanvas({
4080
4087
  width: 400,
@@ -4131,6 +4138,7 @@
4131
4138
  FileSizeInMB: ((BlobFile.size / 1000) / 1000),
4132
4139
  };
4133
4140
  _this.ProfilePictureDTO.profilePicture = FileObject;
4141
+ _this.ProfilePictureDTO.MediumPicture = FileObject.FileName + "," + FileObject.FileBase64;
4134
4142
  _this.files.push(BlobFile);
4135
4143
  break;
4136
4144
  case "AvatarPictureCropper":
@@ -4141,6 +4149,7 @@
4141
4149
  FileSizeInMB: ((BlobFile.size / 1000) / 1000),
4142
4150
  };
4143
4151
  _this.ProfilePictureDTO.AvatarPicture = FileObject;
4152
+ _this.ProfilePictureDTO.SmallPicture = FileObject.FileName + "," + FileObject.FileBase64;
4144
4153
  break;
4145
4154
  case "OriginalPictureCropper":
4146
4155
  FileObject = {
@@ -4150,6 +4159,7 @@
4150
4159
  FileSizeInMB: ((BlobFile.size / 1000) / 1000),
4151
4160
  };
4152
4161
  _this.ProfilePictureDTO.OriginalPicture = FileObject;
4162
+ _this.ProfilePictureDTO.Original = FileObject.FileName + "," + FileObject.FileBase64;
4153
4163
  _this.group.get(_this.options.Name).setValue(_this.ProfilePictureDTO);
4154
4164
  _this.OnChange.emit(_this.group.get(_this.options.Name).value);
4155
4165
  break;
@@ -4474,6 +4484,7 @@
4474
4484
  this.markAllAsTouched = false;
4475
4485
  this.validationRules = [];
4476
4486
  this.validationRulesasync = [];
4487
+ this.SearchResultHasItems = false;
4477
4488
  this.resetError = function () {
4478
4489
  _this.controlValidationService.RemoveGlobalError();
4479
4490
  };
@@ -4622,6 +4633,9 @@
4622
4633
  };
4623
4634
  TagsInputComponent.prototype.AddTag = function (event, key) {
4624
4635
  var _a, _b;
4636
+ //Check if input is yab press
4637
+ if (event.key === "Tab")
4638
+ return;
4625
4639
  //Check if input is enter press
4626
4640
  if (this.IsNoMatch == true && event.key == "Enter" && this.options.AllowNewSelection && key.selected) {
4627
4641
  if (!(this.tags.length >= this.options.MaxNumberTags)) {
@@ -4639,7 +4653,7 @@
4639
4653
  }
4640
4654
  //Check if input is charachter
4641
4655
  else if (String.fromCharCode(event.keyCode).match(/(\w|\s)/g)) {
4642
- if (this.IsNoMatch && key.selected && ((!this.options.AllowNewSelection) || event.key != "Enter")) {
4656
+ if (this.IsNoMatch && !this.options.AllowNewSelection && key.selected) {
4643
4657
  this.TagsFormControl.setErrors({ "errorMassage": this.options.NoResultText });
4644
4658
  this.TagsFormControl.markAsTouched();
4645
4659
  }
@@ -4683,6 +4697,20 @@
4683
4697
  TagsInputComponent.prototype.onNoOptionsMatch = function (event) {
4684
4698
  this.IsNoMatch = event;
4685
4699
  };
4700
+ TagsInputComponent.prototype.onTagsInputBlur = function (SearchKey) {
4701
+ if (SearchKey.selected && this.options.AllowNewSelection && this.IsNoMatch && this.tags.length < this.options.MaxNumberTags) {
4702
+ this.tags.push({ name: SearchKey.selected });
4703
+ this.group.get(this.options.Name).setValue(this.tags);
4704
+ this.group.get(this.options.Name).markAllAsTouched();
4705
+ this.group.updateValueAndValidity();
4706
+ if (this.group.get(this.options.Name).valid) {
4707
+ SearchKey.selected = null;
4708
+ return;
4709
+ }
4710
+ else
4711
+ this.tags.pop();
4712
+ }
4713
+ };
4686
4714
  return TagsInputComponent;
4687
4715
  }());
4688
4716
  TagsInputComponent.controlContainerstatic = null;
@@ -4690,7 +4718,7 @@
4690
4718
  { type: i0.Component, args: [{
4691
4719
  // tslint:disable-next-line: component-selector
4692
4720
  selector: 'BBSF-TagsInput',
4693
- template: "<div class=\"b-control b-tags-input\">\r\n <div class=\"form-group validate is-invalid\" [formGroup]=\"group\">\r\n <div class=\"form-group row\" [formGroup]=\"TagsFormGroup\">\r\n\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 <b-tags-input id=\"typeahead-http\" type=\"text\" class=\"form-control bnsights-control {{options.ExtraClasses}}\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\" [disabled]=\"options.IsDisabled\" aria-describedby=\"email-error\"\r\n aria-invalid=\"true\" formControlName=\"tags\"\r\n [class.is-invalid]=\"TagsFormControl.invalid && TagsFormControl.touched\" placeholder=\"{{options.Placeholder}}\"\r\n id=\"{{options.Name}}\" (onTagsChanged)=\"onTagsChanged($event)\" [(ngModel)]=\"tags\" \r\n removeLastOnBackspace=\"{{options.RemoveLastOnBackspace}}\" (onNoOptionsMatch)=\"onNoOptionsMatch($event)\"\r\n [options]=\"searchFunctionFactory(SearchKey.selected)\" #SearchKey\r\n scrollableOptions=\"{{options.ScrollableOptions}}\" scrollableOptionsInView=\"{{options.MaxSearchResultsCount}}\"\r\n (keydown)=\"AddTag($event,SearchKey)\" [ViewMode]=\"options.TagInputMode\"\r\n maxTags=\"{{options.MaxNumberTags}}\" minLengthBeforeOptions=\"{{options.MinSearchLength}}\"\r\n [showDescription]=\"options.ShowDescription\" [defaultImageURL]=\"options.DefaultImgUrl\" name=\"tags\">\r\n </b-tags-input>\r\n\r\n <div class=\"text-danger Required-text\" *ngIf=\"(TagsFormControl.invalid && TagsFormControl.touched)\">\r\n {{getErrorValidation(TagsFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc text-dark\">{{options.LabelDescription}}</div>\r\n </div>\r\n\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">\r\n {{resetError()}}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n",
4721
+ template: "<div class=\"b-control b-tags-input\">\r\n <div class=\"form-group validate is-invalid\" [formGroup]=\"group\">\r\n <div class=\"form-group row\" [formGroup]=\"TagsFormGroup\">\r\n\r\n <label class=\"b-label col-form-label col-sm-12 \" [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\"\r\n [hidden]=\"options.HideLabel\">\r\n {{options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger Required-text\"\r\n aria-required=\"true\">*</span>\r\n </label>\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <b-tags-input id=\"typeahead-http\" type=\"text\" class=\"form-control bnsights-control {{options.ExtraClasses}}\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\" [disabled]=\"options.IsDisabled\" aria-describedby=\"email-error\"\r\n aria-invalid=\"true\" formControlName=\"tags\"\r\n [class.is-invalid]=\"TagsFormControl.invalid && TagsFormControl.touched\" placeholder=\"{{options.Placeholder}}\"\r\n id=\"{{options.Name}}\" (onTagsChanged)=\"onTagsChanged($event)\" [(ngModel)]=\"tags\"\r\n removeLastOnBackspace=\"{{options.RemoveLastOnBackspace}}\" (onNoOptionsMatch)=\"onNoOptionsMatch($event)\"\r\n [options]=\"searchFunctionFactory(SearchKey.selected)\" #SearchKey\r\n scrollableOptions=\"{{options.ScrollableOptions}}\" scrollableOptionsInView=\"{{options.MaxSearchResultsCount}}\"\r\n (keydown)=\"AddTag($event,SearchKey)\" [ViewMode]=\"options.TagInputMode\"\r\n maxTags=\"{{options.MaxNumberTags}}\" minLengthBeforeOptions=\"{{options.MinSearchLength}}\"\r\n [showDescription]=\"options.ShowDescription\" [defaultImageURL]=\"options.DefaultImgUrl\" name=\"tags\"\r\n (onBlurInput)=\"onTagsInputBlur(SearchKey)\">\r\n </b-tags-input>\r\n <div class=\"text-danger Required-text\" *ngIf=\"(TagsFormControl.invalid && TagsFormControl.touched)\">\r\n {{getErrorValidation(TagsFormControl.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) \">\r\n {{resetError()}}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
4694
4722
  styles: [".example-form{min-width:150px;max-width:500px;width:100%}.example-full-width{width:100%}.flip_V{transform:scaleY(-1)}\n"]
4695
4723
  },] }
4696
4724
  ];
@@ -6075,10 +6103,13 @@
6075
6103
  var submitModel = this.options.GetModelFunction();
6076
6104
  var submittedService = this.options.ServiceSubmitFunction.apply(null, submitModel);
6077
6105
  submittedService.subscribe(function (result) {
6078
- var modal = document.getElementsByClassName("modal show");
6079
- if (modal.length > 0) {
6080
- var closeButton = modal[0].querySelector("[data-dismiss='modal']");
6081
- closeButton.click();
6106
+ if (!_this.options.DisableModalDismiss) {
6107
+ //Dismiss closest modal of the form only
6108
+ var modal = document.getElementById(_this.fromName).closest('.modal.show');
6109
+ if (modal) {
6110
+ var closeButton = modal.querySelector("[data-dismiss='modal']");
6111
+ closeButton.click();
6112
+ }
6082
6113
  }
6083
6114
  if (!_this.options.DisableSuccessNotification)
6084
6115
  _this.utilityService.notifySuccessMessage();
@@ -7568,7 +7599,7 @@
7568
7599
 
7569
7600
  var noop = function () { };
7570
7601
  var ɵ0$1 = noop;
7571
- var TAGS_INPUT_TEMPLATE = "\n \n<div class=\"tags-input\">\n<span class=\"tags-input__tag label label-primary badge badge-primary\" *ngFor=\"let tag of tags\">\n\n<span [ngSwitch]=\"ViewMode\">\n<span *ngSwitchCase=\"tagInputViewEnum.WithImage\">\n<img style=\"border-radius:50%; height:40px; width: 40px; float:left; margin-left:5px ; margin-top: 5px;margin-right: 5px;\"\nsrc=\"{{(tag.imageURL?tag.imageURL:defaultImageURL)}}\" />\n</span>\n\n<span *ngSwitchCase=\"tagInputViewEnum.WithInitial\">\n<div class=\"user-initials\">{{calculateInitials(tag.name)}}</div>\n</span>\n\n<span *ngSwitchDefault>\n</span>\n\n</span>\n {{tag[displayField]}}\n <span *ngIf=\"isDeleteable(tag)\" role=\"button\" class=\"tags-input__tag-remove-btn\" (click)=\"removeTag(tag)\"\n (touch)=\"removeTag(tag)\">\n <span aria-hidden=\"true\">&times;</span>\n <span class=\"sr-only\">Close</span>\n </span>\n</span>\n\n<input *ngIf=\"options === null; else withTypeahead\" class=\"tags-input__input-field\" type=\"text\"\n [placeholder]=\"getPlaceholder()\" name=\"tags\" (keyup.enter)=\"addTag(tagInput)\"\n (keydown.backspace)=\"removeLastTag(tagInput)\" [disabled]=\"!canAddTags || maximumOfTagsReached()\"\n [hidden]=\"!canAddTags || maximumOfTagsReached()\" #tagInput />\n\n<ng-template #withTypeahead>\n <span [ngSwitch]=\"ViewMode\">\n\n <span *ngSwitchCase=\"tagInputViewEnum.WithImage\">\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\n [typeaheadItemTemplate]=\"itemTemplateWithImage\" [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\n #tagInput />\n </span>\n\n <span *ngSwitchCase=\"tagInputViewEnum.WithoutImage\">\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\n [typeaheadItemTemplate]=\"itemTemplateWithoutImage\"\n [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\n #tagInput />\n </span>\n\n <span *ngSwitchCase=\"tagInputViewEnum.WithInitial\">\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\n [typeaheadItemTemplate]=\"itemTemplateWithoutInitial\"\n [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\n #tagInput />\n </span>\n\n <span *ngSwitchDefault>\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\n [typeaheadItemTemplate]=\"itemTemplateWithoutImage\"\n [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\n #tagInput />\n </span>\n\n </span>\n\n</ng-template>\n\n<ng-template #itemTemplateWithImage let-model=\"item\" let-index=\"index\">\n <img\n style=\"border-radius:50%; height:40px; width: 40px; float:left; margin-left:5px ; margin-top: 5px;margin-right: 5px;\"\n src=\"{{(model.imageURL?model.imageURL:defaultImageURL)}}\" />\n <div>\n <a [innerHTML]=\"model.name\"></a>\n <p *ngIf=\"showDescription\">\n {{model.description}}\n </p>\n </div>\n</ng-template>\n\n<ng-template #itemTemplateWithoutImage let-model=\"item\" let-index=\"index\">\n <div>\n <a [innerHTML]=\"model.name\"></a>\n <p *ngIf=\"showDescription\">\n {{model.description}}\n </p>\n </div>\n</ng-template>\n\n<ng-template #itemTemplateWithoutInitial let-model=\"item\" let-index=\"index\">\n <div class=\"user-image\">\n <div class=\"user-initials\">{{calculateInitials(model.name)}}</div>\n </div>\n <div>\n <a [innerHTML]=\"model.name\"></a>\n <p *ngIf=\"showDescription\">\n {{model.description}}\n </p>\n </div>\n</ng-template>\n</div>\n";
7602
+ var TAGS_INPUT_TEMPLATE = "\n \n<div class=\"tags-input\">\n<span class=\"tags-input__tag label label-primary badge badge-primary\" *ngFor=\"let tag of tags\">\n\n<span [ngSwitch]=\"ViewMode\">\n<span *ngSwitchCase=\"tagInputViewEnum.WithImage\">\n<img style=\"border-radius:50%; height:40px; width: 40px; float:left; margin-left:5px ; margin-top: 5px;margin-right: 5px;\"\nsrc=\"{{(tag.imageURL?tag.imageURL:defaultImageURL)}}\" />\n</span>\n\n<span *ngSwitchCase=\"tagInputViewEnum.WithInitial\">\n<div class=\"user-initials\">{{calculateInitials(tag.name)}}</div>\n</span>\n\n<span *ngSwitchDefault>\n</span>\n\n</span>\n {{tag[displayField]}}\n <span *ngIf=\"isDeleteable(tag)\" role=\"button\" class=\"tags-input__tag-remove-btn\" (click)=\"removeTag(tag)\"\n (touch)=\"removeTag(tag)\">\n <span aria-hidden=\"true\">&times;</span>\n <span class=\"sr-only\">Close</span>\n </span>\n</span>\n\n<input *ngIf=\"options === null; else withTypeahead\" class=\"tags-input__input-field\" type=\"text\"\n [placeholder]=\"getPlaceholder()\" name=\"tags\" (keyup.enter)=\"addTag(tagInput)\"\n (keydown.backspace)=\"removeLastTag(tagInput)\" [disabled]=\"!canAddTags || maximumOfTagsReached()\"\n [hidden]=\"!canAddTags || maximumOfTagsReached()\" #tagInput />\n\n<ng-template #withTypeahead>\n <span [ngSwitch]=\"ViewMode\">\n <span *ngSwitchCase=\"tagInputViewEnum.WithImage\">\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\n [typeaheadItemTemplate]=\"itemTemplateWithImage\" [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\n (blur)=\"onBlur()\" autocomplete=\"off\"\n #tagInput />\n </span>\n\n <span *ngSwitchCase=\"tagInputViewEnum.WithoutImage\">\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\n [typeaheadItemTemplate]=\"itemTemplateWithoutImage\"\n [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\n (blur)=\"onBlur()\" autocomplete=\"off\"\n #tagInput />\n </span>\n\n <span *ngSwitchCase=\"tagInputViewEnum.WithInitial\">\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\n [typeaheadItemTemplate]=\"itemTemplateWithoutInitial\"\n [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\n (blur)=\"onBlur()\" autocomplete=\"off\"\n #tagInput />\n </span>\n\n <span *ngSwitchDefault>\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\n [typeaheadItemTemplate]=\"itemTemplateWithoutImage\"\n [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\n (blur)=\"onBlur()\" autocomplete=\"off\"\n #tagInput />\n </span>\n\n </span>\n\n</ng-template>\n\n<ng-template #itemTemplateWithImage let-model=\"item\" let-index=\"index\">\n <img\n style=\"border-radius:50%; height:40px; width: 40px; float:left; margin-left:5px ; margin-top: 5px;margin-right: 5px;\"\n src=\"{{(model.imageURL?model.imageURL:defaultImageURL)}}\" />\n <div>\n <a [innerHTML]=\"model.name\"></a>\n <p *ngIf=\"showDescription\">\n {{model.description}}\n </p>\n </div>\n</ng-template>\n\n<ng-template #itemTemplateWithoutImage let-model=\"item\" let-index=\"index\">\n <div>\n <a [innerHTML]=\"model.name\"></a>\n <p *ngIf=\"showDescription\">\n {{model.description}}\n </p>\n </div>\n</ng-template>\n\n<ng-template #itemTemplateWithoutInitial let-model=\"item\" let-index=\"index\">\n <div class=\"user-image\">\n <div class=\"user-initials\">{{calculateInitials(model.name)}}</div>\n </div>\n <div>\n <a [innerHTML]=\"model.name\"></a>\n <p *ngIf=\"showDescription\">\n {{model.description}}\n </p>\n </div>\n</ng-template>\n</div>\n";
7572
7603
  var TAGS_INPUT_STYLE = "\n :host {\n overflow: auto;\n white-space: nowrap;\n }\n\n .tags-input {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n }\n\n .tags-input__tag {\n display: inline-block;\n margin-bottom: 2px;\n margin-right: 5px;\n padding-right: 0.3em;\n }\n\n .tags-input__tag-remove-btn {\n cursor: pointer;\n display: inline-block;\n font-size: 12px;\n margin: -3px 0 0 3px;\n padding: 0;\n vertical-align: top;\n }\n\n .tags-input__input-field {\n border: none;\n flex-grow: 1;\n outline: none;\n }\n";
7573
7604
  var CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR = {
7574
7605
  provide: forms.NG_VALUE_ACCESSOR,
@@ -7597,6 +7628,13 @@
7597
7628
  this.onTagsChanged = new i0.EventEmitter();
7598
7629
  this.onMaxTagsReached = new i0.EventEmitter();
7599
7630
  this.onNoOptionsMatch = new i0.EventEmitter();
7631
+ this.onBlurInput = new i0.EventEmitter();
7632
+ // (keydown.Tab) = "onTab($event)"
7633
+ //onTab(event) {
7634
+ // this.onTabInput.emit();
7635
+ // event.preventDefault();
7636
+ // event.stopPropagation();
7637
+ //}
7600
7638
  }
7601
7639
  BTagsInputComponent.prototype.getPlaceholder = function () {
7602
7640
  if (this.tags && this.tags.length > 0) {
@@ -7686,7 +7724,6 @@
7686
7724
  this.onTouchedCallback = fn;
7687
7725
  };
7688
7726
  BTagsInputComponent.prototype.calculateInitials = function (name) {
7689
- debugger;
7690
7727
  var fullName = name.split(' ');
7691
7728
  var initials = "";
7692
7729
  if (fullName.length > 1)
@@ -7695,6 +7732,9 @@
7695
7732
  initials = fullName.shift().charAt(0);
7696
7733
  return initials.toUpperCase();
7697
7734
  };
7735
+ BTagsInputComponent.prototype.onBlur = function () {
7736
+ this.onBlurInput.emit();
7737
+ };
7698
7738
  return BTagsInputComponent;
7699
7739
  }());
7700
7740
  BTagsInputComponent.decorators = [
@@ -7720,7 +7760,8 @@
7720
7760
  scrollableOptionsInView: [{ type: i0.Input }],
7721
7761
  onTagsChanged: [{ type: i0.Output }],
7722
7762
  onMaxTagsReached: [{ type: i0.Output }],
7723
- onNoOptionsMatch: [{ type: i0.Output }]
7763
+ onNoOptionsMatch: [{ type: i0.Output }],
7764
+ onBlurInput: [{ type: i0.Output }]
7724
7765
  };
7725
7766
 
7726
7767
  var options;
@@ -8222,6 +8263,8 @@
8222
8263
  this.DisableErrorNotification = false;
8223
8264
  //If ="true" disable startblockui before submission
8224
8265
  this.DisableBlockUI = false;
8266
+ //If ="true" disable modal from dismiss automatically
8267
+ this.DisableModalDismiss = false;
8225
8268
  }
8226
8269
  return FormOptions;
8227
8270
  }());