@bnsights/bbsf-controls 1.0.95 → 1.0.96

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 (33) hide show
  1. package/README.md +5 -0
  2. package/bnsights-bbsf-controls-1.0.96.tgz +0 -0
  3. package/bnsights-bbsf-controls.d.ts +1 -1
  4. package/bnsights-bbsf-controls.metadata.json +1 -1
  5. package/bundles/bnsights-bbsf-controls.umd.js +345 -324
  6. package/bundles/bnsights-bbsf-controls.umd.js.map +1 -1
  7. package/esm2015/bnsights-bbsf-controls.js +2 -2
  8. package/esm2015/lib/Shared/{components → Components}/ng-tag-input.js +1 -1
  9. package/esm2015/lib/Shared/Enums/InputType.js +1 -1
  10. package/esm2015/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.js +3 -1
  11. package/esm2015/lib/controls/ConfirmationModal/ConfirmationModal.component.js +3 -3
  12. package/esm2015/lib/controls/DateTimePicker/DateTimePicker.component.js +5 -2
  13. package/esm2015/lib/controls/DropdownList/DropdownList.component.js +4 -2
  14. package/esm2015/lib/controls/FileUplaod/FileUplaod.component.js +2 -2
  15. package/esm2015/lib/controls/ImageUpload/ImageUpload.component.js +2 -2
  16. package/esm2015/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.js +5 -1
  17. package/esm2015/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.js +5 -1
  18. package/esm2015/lib/controls/Phone/Phone.component.js +8 -6
  19. package/esm2015/lib/controls/TagsInput/TagsInput.component.js +3 -1
  20. package/esm2015/lib/controls/TextArea/TextArea.component.js +3 -1
  21. package/esm2015/lib/controls/TextBox/TextBox.component.js +6 -3
  22. package/esm2015/lib/controls/bbsf-controls.module.js +9 -8
  23. package/fesm2015/bnsights-bbsf-controls.js +356 -335
  24. package/fesm2015/bnsights-bbsf-controls.js.map +1 -1
  25. package/lib/controls/ConfirmationModal/ConfirmationModal.component.d.ts +2 -2
  26. package/lib/controls/DateTimePicker/DateTimePicker.component.d.ts +1 -0
  27. package/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.d.ts +1 -1
  28. package/lib/controls/Phone/Phone.component.d.ts +6 -6
  29. package/package.json +1 -1
  30. package/bnsights-bbsf-controls-1.0.95.tgz +0 -0
  31. /package/esm2015/lib/Shared/{components → Components}/app-base-component.js +0 -0
  32. /package/lib/Shared/{components → Components}/app-base-component.d.ts +0 -0
  33. /package/lib/Shared/{components → Components}/ng-tag-input.d.ts +0 -0
@@ -947,13 +947,16 @@
947
947
  _this.DatePickerFormControl.updateValueAndValidity();
948
948
  });
949
949
  };
950
+ DateInputComponent.prototype.getDateValue = function () {
951
+ return this.options.Value ? this.datepipe.transform(this.options.Value, 'MMM d, y, h:mm a') : this.UtilityService.getResourceValue('NA');
952
+ };
950
953
  return DateInputComponent;
951
954
  }());
952
955
  DateInputComponent.controlContainerstatic = null;
953
956
  DateInputComponent.decorators = [
954
957
  { type: i0.Component, args: [{
955
958
  selector: 'BBSF-DateTimePicker',
956
- template: "\r\n<div class=\"form-group bbsf-control bbsf-datetime-picker\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.HideLabel\" class=\"bbsf-label\r\n {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n </label>\r\n <!--Asterisk-->\r\n <span\r\n *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&!options.IsReadonly\"\r\n class=\"text-danger\"\r\n aria-required=\"true\">*</span>\r\n <div *ngIf=\"!options.IsReadonly\" class=\"bbsf-input-container\">\r\n <!--input-->\r\n <input autocomplete=\"off\" (dateTimeChange)=\"onDateSelect($event)\"\r\n [dir]=\"textDir\" class=\"form-control bnsights-control\r\n {{options.ExtraClasses}} \"\r\n [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"{{options.Name}}\" [owlDateTime]=\"dt1\"\r\n [owlDateTimeTrigger]=\"dt1\"\r\n [class.is-invalid]=\"DatePickerFormControl.invalid &&\r\n DatePickerFormControl.touched\"\r\n [min]=\"options.StartDate\" [max]=\"options.EndDate\"\r\n [hour12Timer]=\"options.Hour12Timer\"\r\n [selectMode]=\"getSelectMode(options.SelectMode)\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" #Dateinput>\r\n\r\n <owl-date-time [pickerType]=\"getPickerType(options.PickerType)\"\r\n [startView]=\"startView\" [firstDayOfWeek]=\"options.FirstDayOfWeek\"\r\n [hour12Timer]=\"options.Hour12Timer\" #dt1></owl-date-time>\r\n <!--icon-->\r\n <span class=\"copy-clipboard\" [owlDateTimeTrigger]=\"dt1\">\r\n <span class=\"svg-icon\">\r\n <svg id=\"Group_356\" data-name=\"Group 356\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"15\" height=\"15\" viewBox=\"0\r\n 0 48 48\">\r\n <path id=\"Path_6737\" data-name=\"Path 6737\"\r\n d=\"M11.583,1a1,1,0,0,0-2,0V5.7h2Z\" style=\"\"></path>\r\n <path id=\"Path_6738\" data-name=\"Path 6738\"\r\n d=\"M38.417,1a1,1,0,0,0-2,0V5.7h2Z\"></path>\r\n <path id=\"Path_6739\" data-name=\"Path 6739\"\r\n d=\"M0,43.146C0,45.822,1.826,48,4.07,48H43.928C46.174,48,48,45.822,48,43.146V17.121H0Z\"\r\n fill=\"#d5d5d5\"></path>\r\n <path id=\"Path_6740\" data-name=\"Path 6740\"\r\n d=\"M43.929,5.7H38.417v5.512a1,1,0,1,1-2,0V5.7H11.583v5.512a1,1,0,1,1-2,0V5.7H4.07C1.826,5.7,0,7.877,0,10.555v4.566H48V10.555C48,7.877,46.174,5.7,43.929,5.7Z\"\r\n fill=\"#595959\"></path>\r\n </svg>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\"><span class=\"readonly-view\">{{options.Value| date:'MMM d, y, h:mm a'}}</span>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(DatePickerFormControl.invalid &&\r\n DatePickerFormControl.touched)\">\r\n {{getErrorValidation(DatePickerFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched\r\n )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n</div>\r\n",
959
+ template: "<div class=\"form-group bbsf-control bbsf-datetime-picker\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.HideLabel\" class=\"bbsf-label\r\n {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n </label>\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&!options.IsReadonly\" class=\"text-danger\"\r\n aria-required=\"true\">*</span>\r\n <div *ngIf=\"!options.IsReadonly\" class=\"bbsf-input-container\">\r\n <!--input-->\r\n <input autocomplete=\"off\" (dateTimeChange)=\"onDateSelect($event)\" [dir]=\"textDir\" class=\"form-control bnsights-control\r\n {{options.ExtraClasses}} \" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"{{options.Name}}\" [owlDateTime]=\"dt1\" [owlDateTimeTrigger]=\"dt1\" [class.is-invalid]=\"DatePickerFormControl.invalid &&\r\n DatePickerFormControl.touched\" [min]=\"options.StartDate\" [max]=\"options.EndDate\" [hour12Timer]=\"options.Hour12Timer\"\r\n [selectMode]=\"getSelectMode(options.SelectMode)\" placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" #Dateinput>\r\n\r\n <owl-date-time [pickerType]=\"getPickerType(options.PickerType)\" [startView]=\"startView\" [firstDayOfWeek]=\"options.FirstDayOfWeek\"\r\n [hour12Timer]=\"options.Hour12Timer\" #dt1></owl-date-time>\r\n <!--icon-->\r\n <span class=\"copy-clipboard\" [owlDateTimeTrigger]=\"dt1\">\r\n <span class=\"svg-icon\">\r\n <svg id=\"Group_356\" data-name=\"Group 356\" xmlns=\"http://www.w3.org/2000/svg\" width=\"15\" height=\"15\" viewBox=\"0\r\n 0 48 48\">\r\n <path id=\"Path_6737\" data-name=\"Path 6737\" d=\"M11.583,1a1,1,0,0,0-2,0V5.7h2Z\" style=\"\"></path>\r\n <path id=\"Path_6738\" data-name=\"Path 6738\" d=\"M38.417,1a1,1,0,0,0-2,0V5.7h2Z\"></path>\r\n <path id=\"Path_6739\" data-name=\"Path 6739\" d=\"M0,43.146C0,45.822,1.826,48,4.07,48H43.928C46.174,48,48,45.822,48,43.146V17.121H0Z\"\r\n fill=\"#d5d5d5\"></path>\r\n <path id=\"Path_6740\" data-name=\"Path 6740\"\r\n d=\"M43.929,5.7H38.417v5.512a1,1,0,1,1-2,0V5.7H11.583v5.512a1,1,0,1,1-2,0V5.7H4.07C1.826,5.7,0,7.877,0,10.555v4.566H48V10.555C48,7.877,46.174,5.7,43.929,5.7Z\"\r\n fill=\"#595959\"></path>\r\n </svg>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\">\r\n <span class=\"readonly-view\">{{getDateValue()}}</span>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(DatePickerFormControl.invalid &&\r\n DatePickerFormControl.touched)\">\r\n {{getErrorValidation(DatePickerFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched\r\n )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n</div>",
957
960
  providers: [
958
961
  { provide: ngPickDatetime.OwlDateTimeIntl, useClass: DefaultIntl }
959
962
  ]
@@ -1472,7 +1475,7 @@
1472
1475
  FileUploadComponent.decorators = [
1473
1476
  { type: i0.Component, args: [{
1474
1477
  selector: 'BBSF-FileUplaod',
1475
- template: "<div class=\"form-group bbsf-control bbsf-file-upload\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label [hidden]=\"options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&!options.IsReadonly\" class=\"text-danger\">*</span>\r\n </label>\r\n <!--Allow dropZone-->\r\n <div ng2FileDrop class=\"bbsf-input-container {{options.ExtraClasses}}\"\r\n *ngIf=\"(options.IsDropZone)&&(!((options.IsMultipleFile==false)&&(uploader.queue.length)>0))&&!options.IsReadonly\"\r\n [ngClass]=\"{'another-file-over-class': hasAnotherDropZoneOver}\" (onFileDrop)=\"onFileChange()\"\r\n (fileOver)=\"fileOverAnother($event)\" [uploader]=\"uploader\" [accept]=\"AcceptedType\"\r\n (change)=\"onFileChange()\" id=\"{{options.Name}}\" multiple=\"{{options.IsMultipleFile?'multiple':''}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" type=\"file\" formControlName=\"{{options.Name}}\" #fileInput\r\n [class.is-invalid]=\"fileUploadFormControl.invalid && fileUploadFormControl.touched\">\r\n <div class=\"dropzone-label\">\r\n <div class=\"svg-and-validation\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 50px; height: 50px;\">\r\n <path opacity=\"0.3\" d=\"M5 16C3.3 16 2 14.7 2 13C2 11.3 3.3 10 5 10H5.1C5 9.7 5 9.3 5 9C5 6.2 7.2 4 10 4C11.9 4 13.5 5 14.3 6.5C14.8 6.2 15.4 6 16 6C17.7 6 19 7.3 19 9C19 9.4 18.9 9.7 18.8 10C18.9 10 18.9 10 19 10C20.7 10 22 11.3 22 13C22 14.7 20.7 16 19 16H5ZM8 13.6H16L12.7 10.3C12.3 9.89999 11.7 9.89999 11.3 10.3L8 13.6Z\" fill=\"currentColor\" style=\"fill: #a1a1a1;\"></path>\r\n <path d=\"M11 13.6V19C11 19.6 11.4 20 12 20C12.6 20 13 19.6 13 19V13.6H11Z\" fill=\"currentColor\" style=\"fill: #989898;\"></path>\r\n </svg>\r\n <!--Validation text-->\r\n <div class=\"bbsf-validation-msg text-center\">{{UtilityService.getResourceValue(\"DragAndDropHere\")}} </div>\r\n <div class=\"bbsf-validation-msg text-center\" *ngIf=\"ValidationMessage\" [innerHTML]=\"ValidationMessage\"></div>\r\n <div class=\"bbsf-validation-msg ng-star-inserted text-center text-danger\" *ngIf=\"ValidationCountMessage &&options.IsMultipleFile &&options.MaxNoOfFiles>0\" [innerHTML]=\"ValidationCountMessage\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <!--Not allowed dropZone-->\r\n <div class=\"bbsf-input-container\" *ngIf=\"(!options.IsDropZone)&&!(isHideInput())&&!options.IsReadonly\" (click)=\"fileInput.click();\">\r\n <div class=\"dropzone-label\">\r\n <div class=\"svg-and-validation\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 50px; height: 50px;\">\r\n <path opacity=\"0.3\" d=\"M5 16C3.3 16 2 14.7 2 13C2 11.3 3.3 10 5 10H5.1C5 9.7 5 9.3 5 9C5 6.2 7.2 4 10 4C11.9 4 13.5 5 14.3 6.5C14.8 6.2 15.4 6 16 6C17.7 6 19 7.3 19 9C19 9.4 18.9 9.7 18.8 10C18.9 10 18.9 10 19 10C20.7 10 22 11.3 22 13C22 14.7 20.7 16 19 16H5ZM8 13.6H16L12.7 10.3C12.3 9.89999 11.7 9.89999 11.3 10.3L8 13.6Z\" fill=\"currentColor\" style=\"fill: #a1a1a1;\"></path>\r\n <path d=\"M11 13.6V19C11 19.6 11.4 20 12 20C12.6 20 13 19.6 13 19V13.6H11Z\" fill=\"currentColor\" style=\"fill: #989898;\"></path>\r\n </svg>\r\n <!--Validation text-->\r\n <div class=\"bbsf-validation-msg text-center\">{{UtilityService.getResourceValue(\"Upload\")}} </div>\r\n <div class=\"bbsf-validation-msg text-center\" *ngIf=\"ValidationMessage\" [innerHTML]=\"ValidationMessage\"></div>\r\n <div class=\"bbsf-validation-msg ng-star-inserted text-center text-danger\" *ngIf=\"ValidationCountMessage &&options.IsMultipleFile &&options.MaxNoOfFiles>0\" [innerHTML]=\"ValidationCountMessage\"></div>\r\n </div>\r\n </div>\r\n <input ng2FileSelect [uploader]=\"uploader\" [accept]=\"AcceptedType\"\r\n class=\"fileSelector customFileUploadPlacment hidden v-required-multiplefiles d-none\"\r\n multiple=\"{{options.IsMultipleFile?'multiple':''}}\" name=\"file\" type=\"file\" value=\"\"\r\n autocomplete=\"off\" (change)=\"onFileChange()\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\"\r\n id=\"{{options.Name}}\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"{{options.Name}}\" #fileInput\r\n [class.is-invalid]=\"fileUploadFormControl.invalid && fileUploadFormControl.touched\">\r\n </div>\r\n </div>\r\n <!--items uploaded-->\r\n <div class=\"uploaded-items\">\r\n <div class=\"btn-group\" *ngFor=\"let item of uploader.queue\">\r\n <a href=\"{{ item?.file?.rawFile?.url }}\" class=\"btn btn-download-file btn-sm\" download>\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M21 22H3C2.4 22 2 21.6 2 21C2 20.4 2.4 20 3 20H21C21.6 20 22 20.4 22 21C22 21.6 21.6 22 21 22ZM13 13.4V3C13 2.4 12.6 2 12 2C11.4 2 11 2.4 11 3V13.4H13Z\" fill=\"currentColor\"></path>\r\n <path opacity=\"0.3\" d=\"M7 13.4H17L12.7 17.7C12.3 18.1 11.7 18.1 11.3 17.7L7 13.4Z\" fill=\"currentColor\"></path>\r\n </svg>\r\n <span class=\"file-name\">{{ item?.file?.name }}</span>\r\n </a>\r\n <button *ngIf=\"!options.IsReadonly\" class=\"btn btn-download-file btn-sm btn-danger\"\r\n (click)=\"item.remove();removeFromControlValue(item)\">\r\n <i class=\"fa fa-times px-0\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!-- required text-->\r\n <div class=\"bbsf-validation\"\r\n *ngIf=\"(fileUploadFormControl.invalid && fileUploadFormControl.touched)\">\r\n {{getErrorValidation(fileUploadFormControl.errors|keyvalue)}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\"> {{options.LabelDescription}}</div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n\r\n</div>\r\n\r\n"
1478
+ template: "<div class=\"form-group bbsf-control bbsf-file-upload\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label [hidden]=\"options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&!options.IsReadonly\" class=\"text-danger\">*</span>\r\n </label>\r\n <!--Allow dropZone-->\r\n <div ng2FileDrop class=\"bbsf-input-container {{options.ExtraClasses}}\"\r\n *ngIf=\"(options.IsDropZone)&&(!((options.IsMultipleFile==false)&&(uploader.queue.length)>0))&&!options.IsReadonly\"\r\n [ngClass]=\"{'another-file-over-class': hasAnotherDropZoneOver}\" (onFileDrop)=\"onFileChange()\" (fileOver)=\"fileOverAnother($event)\"\r\n [uploader]=\"uploader\" [accept]=\"AcceptedType\" (change)=\"onFileChange()\" id=\"{{options.Name}}\"\r\n multiple=\"{{options.IsMultipleFile?'multiple':''}}\" aria-describedby=\"email-error\" aria-invalid=\"true\" type=\"file\"\r\n formControlName=\"{{options.Name}}\" #fileInput [class.is-invalid]=\"fileUploadFormControl.invalid && fileUploadFormControl.touched\">\r\n <div class=\"dropzone-label\">\r\n <div class=\"svg-and-validation\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 50px; height: 50px;\">\r\n <path opacity=\"0.3\"\r\n d=\"M5 16C3.3 16 2 14.7 2 13C2 11.3 3.3 10 5 10H5.1C5 9.7 5 9.3 5 9C5 6.2 7.2 4 10 4C11.9 4 13.5 5 14.3 6.5C14.8 6.2 15.4 6 16 6C17.7 6 19 7.3 19 9C19 9.4 18.9 9.7 18.8 10C18.9 10 18.9 10 19 10C20.7 10 22 11.3 22 13C22 14.7 20.7 16 19 16H5ZM8 13.6H16L12.7 10.3C12.3 9.89999 11.7 9.89999 11.3 10.3L8 13.6Z\"\r\n fill=\"currentColor\" style=\"fill: #a1a1a1;\"></path>\r\n <path d=\"M11 13.6V19C11 19.6 11.4 20 12 20C12.6 20 13 19.6 13 19V13.6H11Z\" fill=\"currentColor\" style=\"fill: #989898;\"></path>\r\n </svg>\r\n <!--Validation text-->\r\n <div class=\"bbsf-validation-msg text-center\">{{UtilityService.getResourceValue(\"DragAndDropHere\")}} </div>\r\n <div class=\"bbsf-validation-msg text-center\" *ngIf=\"ValidationMessage\" [innerHTML]=\"ValidationMessage\"></div>\r\n <div class=\"bbsf-validation-msg ng-star-inserted text-center text-danger\"\r\n *ngIf=\"ValidationCountMessage &&options.IsMultipleFile &&options.MaxNoOfFiles>0\" [innerHTML]=\"ValidationCountMessage\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <!--Not allowed dropZone-->\r\n <div class=\"bbsf-input-container\" *ngIf=\"(!options.IsDropZone)&&!(isHideInput())&&!options.IsReadonly\" (click)=\"fileInput.click();\">\r\n <div class=\"dropzone-label\">\r\n <div class=\"svg-and-validation\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 50px; height: 50px;\">\r\n <path opacity=\"0.3\"\r\n d=\"M5 16C3.3 16 2 14.7 2 13C2 11.3 3.3 10 5 10H5.1C5 9.7 5 9.3 5 9C5 6.2 7.2 4 10 4C11.9 4 13.5 5 14.3 6.5C14.8 6.2 15.4 6 16 6C17.7 6 19 7.3 19 9C19 9.4 18.9 9.7 18.8 10C18.9 10 18.9 10 19 10C20.7 10 22 11.3 22 13C22 14.7 20.7 16 19 16H5ZM8 13.6H16L12.7 10.3C12.3 9.89999 11.7 9.89999 11.3 10.3L8 13.6Z\"\r\n fill=\"currentColor\" style=\"fill: #a1a1a1;\"></path>\r\n <path d=\"M11 13.6V19C11 19.6 11.4 20 12 20C12.6 20 13 19.6 13 19V13.6H11Z\" fill=\"currentColor\" style=\"fill: #989898;\"></path>\r\n </svg>\r\n <!--Validation text-->\r\n <div class=\"bbsf-validation-msg text-center\">{{UtilityService.getResourceValue(\"Upload\")}} </div>\r\n <div class=\"bbsf-validation-msg text-center\" *ngIf=\"ValidationMessage\" [innerHTML]=\"ValidationMessage\"></div>\r\n <div class=\"bbsf-validation-msg ng-star-inserted text-center text-danger\"\r\n *ngIf=\"ValidationCountMessage &&options.IsMultipleFile &&options.MaxNoOfFiles>0\" [innerHTML]=\"ValidationCountMessage\"></div>\r\n </div>\r\n </div>\r\n <input ng2FileSelect [uploader]=\"uploader\" [accept]=\"AcceptedType\"\r\n class=\"fileSelector customFileUploadPlacment hidden v-required-multiplefiles d-none\" multiple=\"{{options.IsMultipleFile?'multiple':''}}\"\r\n name=\"file\" type=\"file\" value=\"\" autocomplete=\"off\" (change)=\"onFileChange()\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\"\r\n id=\"{{options.Name}}\" aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"{{options.Name}}\" #fileInput\r\n [class.is-invalid]=\"fileUploadFormControl.invalid && fileUploadFormControl.touched\">\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly && !options.Value\">\r\n <span class=\"readonly-view\">{{UtilityService.getResourceValue('NA')}}</span>\r\n </div>\r\n </div>\r\n <!--items uploaded-->\r\n <div class=\"uploaded-items\">\r\n <div class=\"btn-group\" *ngFor=\"let item of uploader.queue\">\r\n <a href=\"{{ item?.file?.rawFile?.url }}\" class=\"btn btn-download-file btn-sm\" download>\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M21 22H3C2.4 22 2 21.6 2 21C2 20.4 2.4 20 3 20H21C21.6 20 22 20.4 22 21C22 21.6 21.6 22 21 22ZM13 13.4V3C13 2.4 12.6 2 12 2C11.4 2 11 2.4 11 3V13.4H13Z\"\r\n fill=\"currentColor\"></path>\r\n <path opacity=\"0.3\" d=\"M7 13.4H17L12.7 17.7C12.3 18.1 11.7 18.1 11.3 17.7L7 13.4Z\" fill=\"currentColor\"></path>\r\n </svg>\r\n <span class=\"file-name\">{{ item?.file?.name }}</span>\r\n </a>\r\n <button *ngIf=\"!options.IsReadonly\" class=\"btn btn-download-file btn-sm btn-danger\" (click)=\"item.remove();removeFromControlValue(item)\">\r\n <i class=\"fa fa-times px-0\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!-- required text-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(fileUploadFormControl.invalid && fileUploadFormControl.touched)\">\r\n {{getErrorValidation(fileUploadFormControl.errors|keyvalue)}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\"> {{options.LabelDescription}}</div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n\r\n</div>"
1476
1479
  },] }
1477
1480
  ];
1478
1481
  FileUploadComponent.ctorParameters = function () { return [
@@ -1649,6 +1652,10 @@
1649
1652
  }
1650
1653
  this.ArabicFormControl.setValue(this.options.Value.Arabic);
1651
1654
  this.EnglishFormControl.setValue(this.options.Value.English);
1655
+ if (this.options.IsReadonly && !this.options.Value) {
1656
+ this.options.Value.Arabic = this.UtilityService.getResourceValue('NA');
1657
+ this.options.Value.English = this.UtilityService.getResourceValue('NA');
1658
+ }
1652
1659
  this.MultiLingualTextBoxFormControlHost.ngSubmit.subscribe(function (value) {
1653
1660
  _this.group.markAllAsTouched();
1654
1661
  _this.markAllAsTouched = true;
@@ -1984,6 +1991,8 @@
1984
1991
  }
1985
1992
  TextAreaComponent.prototype.ngOnInit = function () {
1986
1993
  var _this = this;
1994
+ if (this.options.IsReadonly && !this.options.Value)
1995
+ this.options.Value = this.UtilityService.getResourceValue('NA');
1987
1996
  if (this.options.ForceDirection)
1988
1997
  this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';
1989
1998
  else
@@ -2293,6 +2302,10 @@
2293
2302
  _this.group.markAllAsTouched();
2294
2303
  _this.markAllAsTouched = true;
2295
2304
  });
2305
+ if (this.options.IsReadonly && !this.options.Value) {
2306
+ this.options.Value.Arabic = this.UtilityService.getResourceValue('NA');
2307
+ this.options.Value.English = this.UtilityService.getResourceValue('NA');
2308
+ }
2296
2309
  return [2 /*return*/];
2297
2310
  }
2298
2311
  });
@@ -2800,6 +2813,8 @@
2800
2813
  else
2801
2814
  return this.options.DataSource.filter(function (item) { return _this.options.SelectedItems.includes(item[_this.options.ItemTempletkey]); }).map(function (item) { return item[_this.options.ItemTempletvalue]; });
2802
2815
  }
2816
+ else
2817
+ return this.UtilityService.getResourceValue('NA');
2803
2818
  };
2804
2819
  DropdownListComponent.prototype.onItemSelect = function () {
2805
2820
  this.onChangeService.ChangeValue(this.options.Name);
@@ -2847,7 +2862,7 @@
2847
2862
  { type: i0.Component, args: [{
2848
2863
  // tslint:disable-next-line: component-selector
2849
2864
  selector: 'BBSF-DropdownList',
2850
- template: "<div class=\"form-group bbsf-control bbsf-dropdown\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&!options.IsReadonly\" class=\"text-danger\"\r\n aria-required=\"true\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container\">\r\n <!--input enabled bootstrap select-->\r\n <ng-select class=\"form-control\" *ngIf=\"options.DisableBootstrapSelect==false&&!options.IsReadonly\" dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n [bindValue]=\"options.ItemTempletkey\" [bindLabel]=\"options.ItemTempletvalue\" [items]=\"options.DataSource\"\r\n [notFoundText]=\"options.NotFoundText\" [maxSelectedItems]=\"options.LimitSelection\"\r\n [searchable]=\"options.AllowSearchFilter\" [multiple]=\"!options.SingleSelection\" [readonly]=\"options.IsDisabled\"\r\n [clearable]=\"true\" placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\"\r\n [selectableGroup]=\"true\" [selectableGroupAsModel]=\"false\" formControlName=\"{{options.Name}}\"\r\n [(ngModel)]=\"options.SelectedItems\" (change)=\"onItemSelect()\" (clear)=\"Clear()\"\r\n [class.is-invalid]=\"DropdownListFormControl.invalid && DropdownListFormControl.touched\"\r\n [closeOnSelect]=\"options.SingleSelection ? true : false\">\r\n <!--No checkbox-->\r\n <ng-template *ngIf=\"!options.ShowCheckbox\" ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <label class=\"bbsf-label\" title=\"{{item.disabled ? options.DisabledItemsTooltipValue : ''}}\" id={{item.key}}>{{item.value}}</label>\r\n </ng-template>\r\n <!--checkbox-->\r\n <ng-template *ngIf=\"options.ShowCheckbox\" ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <div class=\" bbsf-checkbox\">\r\n <div class=\"bbsf-input-container align-items-center\">\r\n <input class=\"bbsf-checkbox-input\" id=\"item-{{index}}\" type=\"checkbox\" [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"item$.selected\" />\r\n <div class=\"label-subtext-container\">\r\n <label class=\"bbsf-label\" id={{item.key}}>{{item.value}}</label>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-select>\r\n <!--input disabled bootstrap select-->\r\n <select *ngIf=\"options.DisableBootstrapSelect&&!options.IsReadonly\" class=\"form-control\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\" (change)=\"onItemSelect()\" [(ngModel)]=\"options.SelectedItems\" [disabled]=\"options.IsDisabled\" formControlName=\"{{options.Name}}\">\r\n <option value=\"\" disabled>--{{UtilityService.getResourceValue(\"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 <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\"><span class=\"readonly-view\">{{getSelectedItemValue()}}</span>\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(DropdownListFormControl.invalid && DropdownListFormControl.touched)\">\r\n {{getErrorValidation(DropdownListFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n"
2865
+ template: "<div class=\"form-group bbsf-control bbsf-dropdown\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&!options.IsReadonly\" class=\"text-danger\"\r\n aria-required=\"true\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container\">\r\n <!--input enabled bootstrap select-->\r\n <ng-select class=\"form-control\" *ngIf=\"options.DisableBootstrapSelect==false&&!options.IsReadonly\" dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n [bindValue]=\"options.ItemTempletkey\" [bindLabel]=\"options.ItemTempletvalue\" [items]=\"options.DataSource\" [notFoundText]=\"options.NotFoundText\"\r\n [maxSelectedItems]=\"options.LimitSelection\" [searchable]=\"options.AllowSearchFilter\" [multiple]=\"!options.SingleSelection\"\r\n [readonly]=\"options.IsDisabled\" [clearable]=\"true\" placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" [selectableGroup]=\"true\"\r\n [selectableGroupAsModel]=\"false\" formControlName=\"{{options.Name}}\" [(ngModel)]=\"options.SelectedItems\" (change)=\"onItemSelect()\"\r\n (clear)=\"Clear()\" [class.is-invalid]=\"DropdownListFormControl.invalid && DropdownListFormControl.touched\"\r\n [closeOnSelect]=\"options.SingleSelection ? true : false\">\r\n <!--No checkbox-->\r\n <ng-template *ngIf=\"!options.ShowCheckbox\" ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <label class=\"bbsf-label\" title=\"{{item.disabled ? options.DisabledItemsTooltipValue : ''}}\" id={{item.key}}>{{item.value}}</label>\r\n </ng-template>\r\n <!--checkbox-->\r\n <ng-template *ngIf=\"options.ShowCheckbox\" ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <div class=\" bbsf-checkbox\">\r\n <div class=\"bbsf-input-container align-items-center\">\r\n <input class=\"bbsf-checkbox-input\" id=\"item-{{index}}\" type=\"checkbox\" [ngModelOptions]=\"{standalone: true}\"\r\n [ngModel]=\"item$.selected\" />\r\n <div class=\"label-subtext-container\">\r\n <label class=\"bbsf-label\" id={{item.key}}>{{item.value}}</label>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-select>\r\n <!--input disabled bootstrap select-->\r\n <select *ngIf=\"options.DisableBootstrapSelect&&!options.IsReadonly\" class=\"form-control\" dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n (change)=\"onItemSelect()\" [(ngModel)]=\"options.SelectedItems\" [disabled]=\"options.IsDisabled\" formControlName=\"{{options.Name}}\">\r\n <option value=\"\" disabled>--{{UtilityService.getResourceValue(\"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 <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\">\r\n <span class=\"readonly-view\">{{getSelectedItemValue()}}</span>\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(DropdownListFormControl.invalid && DropdownListFormControl.touched)\">\r\n {{getErrorValidation(DropdownListFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n</div>"
2851
2866
  },] }
2852
2867
  ];
2853
2868
  DropdownListComponent.ctorParameters = function () { return [
@@ -2910,6 +2925,8 @@
2910
2925
  }
2911
2926
  PhoneComponent.prototype.ngOnInit = function () {
2912
2927
  var _this = this;
2928
+ if (this.options.IsReadonly && !this.options.Value)
2929
+ this.options.Value = this.UtilityService.getResourceValue('NA');
2913
2930
  if (this.options.ForceDirection)
2914
2931
  this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';
2915
2932
  else
@@ -2937,7 +2954,7 @@
2937
2954
  if (this.options.IsDisabled) {
2938
2955
  this.PhoneFormControl.disable();
2939
2956
  }
2940
- this.PhoneControlHost.ngSubmit.subscribe(function (value) {
2957
+ this.PhoneControlHost.ngSubmit.subscribe(function () {
2941
2958
  _this.group.markAllAsTouched();
2942
2959
  _this.markAllAsTouched = true;
2943
2960
  });
@@ -2990,92 +3007,6 @@
2990
3007
  OnChange: [{ type: i0.Output }]
2991
3008
  };
2992
3009
 
2993
- var ToggleslideComponent = /** @class */ (function () {
2994
- // tslint:disable-next-line: max-line-length
2995
- function ToggleslideComponent(controlUtility, controlContainer, ToggleslideControlHost, TextControlHost, UtilityService, controlValidationService, globalSettings) {
2996
- this.controlUtility = controlUtility;
2997
- this.controlContainer = controlContainer;
2998
- this.ToggleslideControlHost = ToggleslideControlHost;
2999
- this.TextControlHost = TextControlHost;
3000
- this.UtilityService = UtilityService;
3001
- this.controlValidationService = controlValidationService;
3002
- this.globalSettings = globalSettings;
3003
- this.OnChange = new i0.EventEmitter();
3004
- this.SlideValue = false;
3005
- this.markAllAsTouched = false;
3006
- ToggleslideComponent.controlContainerstatic = this.controlContainer;
3007
- }
3008
- ToggleslideComponent.prototype.ngOnInit = function () {
3009
- if (this.options.ForceDirection)
3010
- this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';
3011
- else
3012
- this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';
3013
- this.group.addControl(this.options.Name, new forms.FormControl(''));
3014
- this.ToggleslideFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
3015
- var validationRules = [];
3016
- var validationRulesasync = [];
3017
- this.SlideValue = this.options.Value == undefined ? false : this.options.Value;
3018
- if (!this.options.ViewType)
3019
- this.options.ViewType = this.globalSettings.ViewType;
3020
- if (this.options.IsDisabled || this.options.IsReadonly) {
3021
- this.ToggleslideFormControl.disable();
3022
- }
3023
- if (this.options.LabelKey != null && this.options.LabelKey != "")
3024
- this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);
3025
- };
3026
- ToggleslideComponent.prototype.ngAfterViewInit = function () {
3027
- if (this.options.AttributeList != null) {
3028
- var element = document.getElementById(this.options.Name);
3029
- for (var index = 0; index < this.options.AttributeList.length; index++) {
3030
- element.setAttribute(this.options.AttributeList[index].Key, this.options.AttributeList[index].value);
3031
- }
3032
- }
3033
- };
3034
- ToggleslideComponent.prototype.resetError = function () {
3035
- this.controlValidationService.RemoveGlobalError();
3036
- };
3037
- ToggleslideComponent.prototype.showGlobalError = function () {
3038
- this.controlUtility.showGlobalError();
3039
- };
3040
- ToggleslideComponent.prototype.getErrorValidation = function (ErrorList) {
3041
- if (this.markAllAsTouched && this.group.invalid) {
3042
- this.showGlobalError();
3043
- this.markAllAsTouched = false;
3044
- }
3045
- return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);
3046
- };
3047
- ToggleslideComponent.prototype.changeValueToggle = function () {
3048
- this.OnChange.emit(this.SlideValue);
3049
- this.options.Value = this.SlideValue;
3050
- this.ToggleslideFormControl.setValue(this.SlideValue);
3051
- if (this.options.PatchFunction && this.options.PatchPath && this.ToggleslideFormControl.valid) {
3052
- this.controlUtility.patchControlValue(this.SlideValue, this.options.PatchFunction, this.options.PatchPath);
3053
- }
3054
- };
3055
- return ToggleslideComponent;
3056
- }());
3057
- ToggleslideComponent.controlContainerstatic = null;
3058
- ToggleslideComponent.decorators = [
3059
- { type: i0.Component, args: [{
3060
- selector: 'BBSF-Toggleslide',
3061
- template: "<div class=\"form-group bbsf-control bbsf-toggleslide\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label [hidden]=\"options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n </label>\r\n <div *ngIf=\"!options.IsReadonly\"class=\"bbsf-input-container\">\r\n <!--input-->\r\n <mat-slide-toggle [(ngModel)]=\"SlideValue\" [dir]=\"textDir\" [cssClass]=\"(options.ViewType==1)?'':'col-md-9'\"\r\n formControlName=\"{{options.Name}}\" disableRipple=\"true\" [disabled]=\"options.IsDisabled\" (change)=\"changeValueToggle()\">\r\n </mat-slide-toggle>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\">\r\n <span class=\"readonly-view\" *ngIf=\"options.Value\">{{UtilityService.getResourceValue(\"Yes\")}}</span>\r\n <span class=\"readonly-view\" *ngIf=\"!options.Value\">{{UtilityService.getResourceValue(\"No\")}}</span>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n </div>\r\n</div>\r\n"
3062
- },] }
3063
- ];
3064
- ToggleslideComponent.ctorParameters = function () { return [
3065
- { type: ControlUtility },
3066
- { type: forms.ControlContainer, decorators: [{ type: i0.Optional }] },
3067
- { type: forms.FormGroupDirective },
3068
- { type: forms.FormGroupDirective },
3069
- { type: bbsfUtilities.UtilityService },
3070
- { type: bbsfUtilities.ControlValidationService },
3071
- { type: GlobalSettings }
3072
- ]; };
3073
- ToggleslideComponent.propDecorators = {
3074
- group: [{ type: i0.Input }],
3075
- options: [{ type: i0.Input }],
3076
- OnChange: [{ type: i0.Output }]
3077
- };
3078
-
3079
3010
  var HtmlEditorComponent = /** @class */ (function () {
3080
3011
  function HtmlEditorComponent(zone, controlUtility, controlContainer, HtmlEditorControlHost, UtilityService, controlValidationService, globalSettings) {
3081
3012
  var _this = this;
@@ -4065,7 +3996,7 @@
4065
3996
  ImageUploaderComponent.decorators = [
4066
3997
  { type: i0.Component, args: [{
4067
3998
  selector: 'BBSF-ImageUpload',
4068
- template: "<div class=\"form-group bbsf-control bbsf-image-upload\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label [hidden]=\"options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&!options.IsReadonly\" class=\"text-danger\">*</span>\r\n </label>\r\n <!--Allow dropZone-->\r\n <div *ngIf=\"options.AllowDropZone&&!options.IsReadonly\" class=\"bbsf-input-container {{options.ExtraClasses}}\"\r\n ngx-dropzone\r\n [disabled]=\"options.IsDisabled\"\r\n [accept]=\"AcceptedType\"\r\n [multiple]=\"options.IsMultiple\"\r\n (change)=\"onFileChange($event)\"\r\n ngDefaultControl\r\n formControlName=\"{{options.Name}}\"\r\n [maxFileSize]=\"maxFileSize\"\r\n id=\"{{options.Name}}\"\r\n [class.is-invalid]=\"ImageUploadFormControl.invalid && ImageUploadFormControl.touched\">\r\n <ngx-dropzone-label class=\"dropzone-label\">\r\n <img *ngIf=\"ImageSource\" [src]=\"ImageSource\" style=\"align-items: center;border-radius: 5px;display: flex;height: 100px;justify-content: center;margin: 10px;max-width: 180px;min-height: 100px;min-width: 180px;padding: 0px 20px;position: relative;\" />\r\n <div class=\"svg-and-validation\" *ngIf=\"!ImageSource\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 50px; height: 50px;\">\r\n <path opacity=\"0.3\" d=\"M5 16C3.3 16 2 14.7 2 13C2 11.3 3.3 10 5 10H5.1C5 9.7 5 9.3 5 9C5 6.2 7.2 4 10 4C11.9 4 13.5 5 14.3 6.5C14.8 6.2 15.4 6 16 6C17.7 6 19 7.3 19 9C19 9.4 18.9 9.7 18.8 10C18.9 10 18.9 10 19 10C20.7 10 22 11.3 22 13C22 14.7 20.7 16 19 16H5ZM8 13.6H16L12.7 10.3C12.3 9.89999 11.7 9.89999 11.3 10.3L8 13.6Z\" fill=\"currentColor\" style=\"fill: #a1a1a1;\"></path>\r\n <path d=\"M11 13.6V19C11 19.6 11.4 20 12 20C12.6 20 13 19.6 13 19V13.6H11Z\" fill=\"currentColor\" style=\"fill: #989898;\"></path>\r\n </svg>\r\n <!--Validation text-->\r\n <div class=\"bbsf-validation-msg\" *ngIf=\"ValidationMessage\" [innerHTML]=\"ValidationMessage\"></div>\r\n </div>\r\n </ngx-dropzone-label>\r\n <ngx-dropzone-image-preview class=\"dropzone-preview\" *ngFor=\"let f of files\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\" ngProjectAs=\"ngx-dropzone-preview\">\r\n </ngx-dropzone-image-preview>\r\n </div>\r\n <!--Not allowed dropZone-->\r\n <div *ngIf=\"!options.AllowDropZone&&!options.IsReadonly\">\r\n <ngx-dropzone-label *ngIf=\"files.length==0\">\r\n <div #element (click)=\"showImageUploader(element)\">\r\n <img [src]=\"ImageSource\" />\r\n </div>\r\n </ngx-dropzone-label>\r\n <div class=\"d-none {{options.ExtraClasses}}\"\r\n ngx-dropzone\r\n [disabled]=\"options.IsDisabled\"\r\n [accept]=\"AcceptedType\"\r\n [multiple]=\"options.IsMultiple\"\r\n (change)=\"onFileChange($event)\"\r\n ngDefaultControl\r\n formControlName=\"{{options.Name}}\"\r\n [maxFileSize]=\"maxFileSize\"\r\n id=\"{{options.Name}}\"\r\n [class.is-invalid]=\"ImageUploadFormControl.invalid && ImageUploadFormControl.touched\">\r\n </div>\r\n <ngx-dropzone-image-preview *ngFor=\"let f of files\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\" ngProjectAs=\"ngx-dropzone-preview\">\r\n </ngx-dropzone-image-preview>\r\n <!--Validation text-->\r\n <div class=\"bbsf-validation-msg\" *ngIf=\"ValidationMessage\" [innerHTML]=\"ValidationMessage\"></div>\r\n </div>\r\n\r\n <ngx-dropzone-label *ngIf=\"files.length==0&&options.IsReadonly\">\r\n <div #element >\r\n <img [src]=\"ImageSource\" />\r\n </div>\r\n </ngx-dropzone-label>\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!-- required text-->\r\n <div class=\"bbsf-validation\"\r\n *ngIf=\"(ImageUploadFormControl.invalid && ImageUploadFormControl.touched)\">\r\n {{getErrorValidation(ImageUploadFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n <!-- image cropper modal-->\r\n <div id=\"mdlSample\" class=\"modal bbsf-cropper-modal\" role=\"dialog\" [ngStyle]=\"{'display': mdlSampleIsOpen ? 'block' : 'none', 'opacity': 1}\">\r\n <div class=\"modal-dialog modal-lg\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\">\r\n {{UtilityService.getResourceValue(\"CropImage\")}}\r\n </h4>\r\n <button type=\"button\" class=\"btn-close\" data-dismiss=\"modal\" (click)=\"openModal(false)\"></button>\r\n </div>\r\n <div class=\"modal-body\">\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 class=\"cropper-btns\">\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"zoomImage(0.1)\" class=\"btn btn-default\" ngbTooltip='{{UtilityService.getResourceValue(\"ZoomIn\")}}'>\r\n <span class=\"docs-tooltip\">\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\" ngbTooltip='{{UtilityService.getResourceValue(\"ZoomOut\")}}'>\r\n <span class=\"docs-tooltip\">\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\" ngbTooltip='{{UtilityService.getResourceValue(\"MoveLeft\")}}'>\r\n <span class=\"docs-tooltip\">\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\" ngbTooltip='{{UtilityService.getResourceValue(\"MoveRight\")}}'>\r\n <span class=\"docs-tooltip\">\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\" ngbTooltip='{{UtilityService.getResourceValue(\"MoveUp\")}}'>\r\n <span class=\"docs-tooltip\">\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\" ngbTooltip='{{UtilityService.getResourceValue(\"MoveDown\")}}'>\r\n <span class=\"docs-tooltip\">\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\" ngbTooltip='{{UtilityService.getResourceValue(\"RotateLeft\")}}'>\r\n <span class=\"docs-tooltip\">\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\" ngbTooltip='{{UtilityService.getResourceValue(\"RotateRight\")}}'>\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-redo-alt\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\" align=\"right\">\r\n <button type=\"button\" id=\"btnClose\" class=\"btn btn-sm btn-light\" (click)=\"openModal(false)\">\r\n {{UtilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"button\" (click)=\"cropImage()\" id=\"btnOK\" class=\"btn btn-sm btn-brand\">\r\n {{UtilityService.getResourceValue(\"Crop\")}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n"
3999
+ template: "<div class=\"form-group bbsf-control bbsf-image-upload\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label [hidden]=\"options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&!options.IsReadonly\" class=\"text-danger\">*</span>\r\n </label>\r\n <!--Allow dropZone-->\r\n <div *ngIf=\"options.AllowDropZone&&!options.IsReadonly\" class=\"bbsf-input-container {{options.ExtraClasses}}\" ngx-dropzone\r\n [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\" [multiple]=\"options.IsMultiple\" (change)=\"onFileChange($event)\" ngDefaultControl\r\n formControlName=\"{{options.Name}}\" [maxFileSize]=\"maxFileSize\" id=\"{{options.Name}}\"\r\n [class.is-invalid]=\"ImageUploadFormControl.invalid && ImageUploadFormControl.touched\">\r\n <ngx-dropzone-label class=\"dropzone-label\">\r\n <img *ngIf=\"ImageSource\" [src]=\"ImageSource\"\r\n style=\"align-items: center;border-radius: 5px;display: flex;height: 100px;justify-content: center;margin: 10px;max-width: 180px;min-height: 100px;min-width: 180px;padding: 0px 20px;position: relative;\" />\r\n <div class=\"svg-and-validation\" *ngIf=\"!ImageSource\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 50px; height: 50px;\">\r\n <path opacity=\"0.3\"\r\n d=\"M5 16C3.3 16 2 14.7 2 13C2 11.3 3.3 10 5 10H5.1C5 9.7 5 9.3 5 9C5 6.2 7.2 4 10 4C11.9 4 13.5 5 14.3 6.5C14.8 6.2 15.4 6 16 6C17.7 6 19 7.3 19 9C19 9.4 18.9 9.7 18.8 10C18.9 10 18.9 10 19 10C20.7 10 22 11.3 22 13C22 14.7 20.7 16 19 16H5ZM8 13.6H16L12.7 10.3C12.3 9.89999 11.7 9.89999 11.3 10.3L8 13.6Z\"\r\n fill=\"currentColor\" style=\"fill: #a1a1a1;\"></path>\r\n <path d=\"M11 13.6V19C11 19.6 11.4 20 12 20C12.6 20 13 19.6 13 19V13.6H11Z\" fill=\"currentColor\" style=\"fill: #989898;\"></path>\r\n </svg>\r\n <!--Validation text-->\r\n <div class=\"bbsf-validation-msg\" *ngIf=\"ValidationMessage\" [innerHTML]=\"ValidationMessage\"></div>\r\n </div>\r\n </ngx-dropzone-label>\r\n <ngx-dropzone-image-preview class=\"dropzone-preview\" *ngFor=\"let f of files\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n ngProjectAs=\"ngx-dropzone-preview\">\r\n </ngx-dropzone-image-preview>\r\n </div>\r\n <!--Not allowed dropZone-->\r\n <div *ngIf=\"!options.AllowDropZone&&!options.IsReadonly\">\r\n <ngx-dropzone-label *ngIf=\"files.length==0\">\r\n <div #element (click)=\"showImageUploader(element)\">\r\n <img [src]=\"ImageSource\" />\r\n </div>\r\n </ngx-dropzone-label>\r\n <div class=\"d-none {{options.ExtraClasses}}\" ngx-dropzone [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\"\r\n [multiple]=\"options.IsMultiple\" (change)=\"onFileChange($event)\" ngDefaultControl formControlName=\"{{options.Name}}\"\r\n [maxFileSize]=\"maxFileSize\" id=\"{{options.Name}}\" [class.is-invalid]=\"ImageUploadFormControl.invalid && ImageUploadFormControl.touched\">\r\n </div>\r\n <ngx-dropzone-image-preview *ngFor=\"let f of files\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n ngProjectAs=\"ngx-dropzone-preview\">\r\n </ngx-dropzone-image-preview>\r\n <!--Validation text-->\r\n <div class=\"bbsf-validation-msg\" *ngIf=\"ValidationMessage\" [innerHTML]=\"ValidationMessage\"></div>\r\n </div>\r\n\r\n <ngx-dropzone-label *ngIf=\"files.length==0&&options.IsReadonly\">\r\n <div *ngIf=\"ImageSource\" #element>\r\n <img [src]=\"ImageSource\" />\r\n </div>\r\n <div *ngIf=\"!ImageSource\">\r\n <span class=\"readonly-view\">{{UtilityService.getResourceValue('NA')}}</span>\r\n </div>\r\n </ngx-dropzone-label>\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!-- required text-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(ImageUploadFormControl.invalid && ImageUploadFormControl.touched)\">\r\n {{getErrorValidation(ImageUploadFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n <!-- image cropper modal-->\r\n <div id=\"mdlSample\" class=\"modal bbsf-cropper-modal\" role=\"dialog\" [ngStyle]=\"{'display': mdlSampleIsOpen ? 'block' : 'none', 'opacity': 1}\">\r\n <div class=\"modal-dialog modal-lg\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\">\r\n {{UtilityService.getResourceValue(\"CropImage\")}}\r\n </h4>\r\n <button type=\"button\" class=\"btn-close\" data-dismiss=\"modal\" (click)=\"openModal(false)\"></button>\r\n </div>\r\n <div class=\"modal-body\">\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 class=\"cropper-btns\">\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"zoomImage(0.1)\" class=\"btn btn-default\" ngbTooltip='{{UtilityService.getResourceValue(\"ZoomIn\")}}'>\r\n <span class=\"docs-tooltip\">\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\" ngbTooltip='{{UtilityService.getResourceValue(\"ZoomOut\")}}'>\r\n <span class=\"docs-tooltip\">\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\" ngbTooltip='{{UtilityService.getResourceValue(\"MoveLeft\")}}'>\r\n <span class=\"docs-tooltip\">\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\" ngbTooltip='{{UtilityService.getResourceValue(\"MoveRight\")}}'>\r\n <span class=\"docs-tooltip\">\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\" ngbTooltip='{{UtilityService.getResourceValue(\"MoveUp\")}}'>\r\n <span class=\"docs-tooltip\">\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\" ngbTooltip='{{UtilityService.getResourceValue(\"MoveDown\")}}'>\r\n <span class=\"docs-tooltip\">\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\" ngbTooltip='{{UtilityService.getResourceValue(\"RotateLeft\")}}'>\r\n <span class=\"docs-tooltip\">\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\" ngbTooltip='{{UtilityService.getResourceValue(\"RotateRight\")}}'>\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-redo-alt\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\" align=\"right\">\r\n <button type=\"button\" id=\"btnClose\" class=\"btn btn-sm btn-light\" (click)=\"openModal(false)\">\r\n {{UtilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"button\" (click)=\"cropImage()\" id=\"btnOK\" class=\"btn btn-sm btn-brand\">\r\n {{UtilityService.getResourceValue(\"Crop\")}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- readonly -->\r\n\r\n\r\n</div>"
4069
4000
  },] }
4070
4001
  ];
4071
4002
  ImageUploaderComponent.ctorParameters = function () { return [
@@ -4562,6 +4493,8 @@
4562
4493
  }
4563
4494
  AutocompleteTextBoxComponent.prototype.ngOnInit = function () {
4564
4495
  var _this = this;
4496
+ if (this.options.IsReadonly && !this.options.Value)
4497
+ this.options.Value = this.UtilityService.getResourceValue('NA');
4565
4498
  if (this.options.ForceDirection)
4566
4499
  this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';
4567
4500
  else
@@ -4806,6 +4739,8 @@
4806
4739
  };
4807
4740
  TagsInputComponent.prototype.ngOnInit = function () {
4808
4741
  var _this = this;
4742
+ if (this.options.IsReadonly && !this.options.Value)
4743
+ this.options.Value = this.UtilityService.getResourceValue('NA');
4809
4744
  if (this.options.ForceDirection)
4810
4745
  this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';
4811
4746
  else
@@ -5625,6 +5560,9 @@
5625
5560
  }
5626
5561
  TextboxComponent.prototype.ngOnInit = function () {
5627
5562
  var _this = this;
5563
+ if (this.options.IsReadonly && !this.options.Value) {
5564
+ this.options.Value = this.UtilityService.getResourceValue('NA');
5565
+ }
5628
5566
  if (this.options.ForceDirection)
5629
5567
  this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';
5630
5568
  else
@@ -5654,7 +5592,7 @@
5654
5592
  ]));
5655
5593
  break;
5656
5594
  case exports.InputType.URL:
5657
- var pattern = new RegExp("(https?://)?([\\da-z.-]+)\\.([a-z.]{2,6})[/\\w .-]*/?");
5595
+ var pattern = new RegExp("(https:\/\/www\.|http:\/\/www\.|https:\/\/|http:\/\/)?[a-zA-Z0-9]{2,}(\.[a-zA-Z0-9]{2,})(\.[a-zA-Z0-9]{2,})?");
5658
5596
  this.validationRules.push(forms.Validators.compose([
5659
5597
  this.controlUtility.patternValidator(pattern, { URLValidationKey: this.URLValidationKey }),
5660
5598
  ]));
@@ -5853,7 +5791,7 @@
5853
5791
  TextboxComponent.decorators = [
5854
5792
  { type: i0.Component, args: [{
5855
5793
  selector: 'BBSF-TextBox',
5856
- template: "<div class=\"form-group bbsf-control bbsf-textbox\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.HideLabel\"\r\n class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n <!--Asterisk-->\r\n <span\r\n *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&!options.IsReadonly\"\r\n class=\"text-danger\">*</span>\r\n </label>\r\n <!--MaskPattern-->\r\n <div *ngIf=\"MaskPattern!=null&&MaskPattern!=''&&!options.IsReadonly\"\r\n class=\"bbsf-input-container\"\r\n [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--Icon-->\r\n <div *ngIf=\"options.Icon!=null\" class=\"svg svg-icon-grey bbsf-icon\"\r\n [ngClass]=\"(options.IconPosition==1)?'bbsf-left-icon':'bbsf-right-icon'\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <!--input-->\r\n <input class=\"form-control {{options.ExtraClasses}}\"\r\n [mask]=\"MaskPattern\" placeHolderCharacter=\" \" [showMaskTyped]=\"true\"\r\n [validation]=\"true\"\r\n [dir]=\"textDir\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"{{options.Name}}\"\r\n type=\"{{getInputType(options.Type)}}\" [(ngModel)]=\"options.Value\"\r\n [class.is-invalid]=\"TextBoxFormControl.invalid && TextBoxFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\"\r\n autocomplete=\"{{options.AutoComplete}}\"\r\n (change)=\"trimControlValue()\" (keyup)=\"onTextChange()\"\r\n [readonly]=\"options.IsReadonly\"\r\n (keydown)=\"WordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinput>\r\n <!--CopyToClipboard-->\r\n <span class=\"copy-clipboard\" ngbTooltip=\"Copied!\"\r\n *ngIf=\"options.EnableCopyToClipboard\"\r\n (click)=\"copyInputMessage(userinput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n <!--NoMaskPattern-->\r\n <div *ngIf=\"MaskPattern==null||MaskPattern==''&&!options.IsReadonly\"\r\n class=\"bbsf-input-container\"\r\n [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--Icon-->\r\n <div class=\"svg svg-icon-grey bbsf-icon\"\r\n [ngClass]=\"(options.IconPosition==1)?'bbsf-left-icon':'bbsf-right-icon'\"\r\n *ngIf=\"options.Icon!=null\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <!--input-->\r\n <input class=\"form-control {{options.ExtraClasses}} \"\r\n [dir]=\"textDir\"\r\n (focus)=\"onFocus(true)\" (focusout)=\"onFocus(false)\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n aria-describedby=\"email-error\"\r\n aria-invalid=\"true\" formControlName=\"{{options.Name}}\"\r\n type=\"{{getInputType(options.Type)}}\"\r\n [class.is-invalid]=\"TextBoxFormControl.invalid && TextBoxFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\"\r\n autocomplete=\"{{options.AutoComplete}}\"\r\n (change)=\"trimControlValue()\" (keyup)=\"onTextChange()\"\r\n [(ngModel)]=\"options.Value\"\r\n (keydown)=\"WordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n [readonly]=\"options.IsReadonly\"\r\n #userinput>\r\n <!--CopyToClipboard-->\r\n <span class=\"copy-clipboard\" ngbTooltip=\"Copied!\" triggers=\"click:blur\"\r\n *ngIf=\"options.EnableCopyToClipboard\"\r\n (click)=\"copyInputMessage(userinput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\">\r\n <a *ngIf=\"options.Type==inputType.Email\" href = \"mailto: {{options.Value}}\">{{options.Value}}</a>\r\n <a *ngIf=\"options.Type==inputType.URL\" href = \"{{options.Value}}\" target=\"_blank\" >{{options.Value}}</a>\r\n <span *ngIf=\"options.Type!=inputType.URL&&options.Type!=inputType.Email\"class=\"readonly-view\">{{options.Value}}</span>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!--wordCount-->\r\n <div class=\"bbsf-word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowWordCount\">{{WordCount}}/{{options.MaxWordCount}}\r\n Words</div>\r\n <!-- CharsLimitMsg-->\r\n <div class=\"bbsf-character-count\" *ngIf=\"showCharsLimitMsg\"\r\n [ngClass]=\"{'badge-light-warning': charsLimitMsgClass === 'warning', 'badge-light-danger' : charsLimitMsgClass === 'danger' }\">\r\n {{maxLimitWarningMsg}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" [dir]=\"textDir\"\r\n *ngIf=\"(TextBoxFormControl.invalid && TextBoxFormControl.touched)\">\r\n {{getErrorValidation(TextBoxFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty)\">{{resetError()}}</div>\r\n</div>\r\n"
5794
+ template: "<div class=\"form-group bbsf-control bbsf-textbox\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&!options.IsReadonly\" class=\"text-danger\">*</span>\r\n </label>\r\n <!--MaskPattern-->\r\n <div *ngIf=\"MaskPattern!=null&&MaskPattern!=''&&!options.IsReadonly\" class=\"bbsf-input-container\"\r\n [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--Icon-->\r\n <div *ngIf=\"options.Icon!=null\" class=\"svg svg-icon-grey bbsf-icon\" [ngClass]=\"(options.IconPosition==1)?'bbsf-left-icon':'bbsf-right-icon'\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <!--input-->\r\n <input class=\"form-control {{options.ExtraClasses}}\" [mask]=\"MaskPattern\" placeHolderCharacter=\" \" [showMaskTyped]=\"true\" [validation]=\"true\"\r\n [dir]=\"textDir\" aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"{{options.Name}}\" type=\"{{getInputType(options.Type)}}\"\r\n [(ngModel)]=\"options.Value\" [class.is-invalid]=\"TextBoxFormControl.invalid && TextBoxFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" autocomplete=\"{{options.AutoComplete}}\" (change)=\"trimControlValue()\"\r\n (keyup)=\"onTextChange()\" [readonly]=\"options.IsReadonly\"\r\n (keydown)=\"WordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\" #userinput>\r\n <!--CopyToClipboard-->\r\n <span class=\"copy-clipboard\" ngbTooltip=\"Copied!\" *ngIf=\"options.EnableCopyToClipboard\" (click)=\"copyInputMessage(userinput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n <!--NoMaskPattern-->\r\n <div *ngIf=\"MaskPattern==null||MaskPattern==''&&!options.IsReadonly\" class=\"bbsf-input-container\"\r\n [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--Icon-->\r\n <div class=\"svg svg-icon-grey bbsf-icon\" [ngClass]=\"(options.IconPosition==1)?'bbsf-left-icon':'bbsf-right-icon'\" *ngIf=\"options.Icon!=null\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <!--input-->\r\n <input class=\"form-control {{options.ExtraClasses}} \" [dir]=\"textDir\" (focus)=\"onFocus(true)\" (focusout)=\"onFocus(false)\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"{{options.Name}}\" type=\"{{getInputType(options.Type)}}\"\r\n [class.is-invalid]=\"TextBoxFormControl.invalid && TextBoxFormControl.touched\" placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\"\r\n autocomplete=\"{{options.AutoComplete}}\" (change)=\"trimControlValue()\" (keyup)=\"onTextChange()\" [(ngModel)]=\"options.Value\"\r\n (keydown)=\"WordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\" [readonly]=\"options.IsReadonly\" #userinput>\r\n <!--CopyToClipboard-->\r\n <span class=\"copy-clipboard\" ngbTooltip=\"Copied!\" triggers=\"click:blur\" *ngIf=\"options.EnableCopyToClipboard\"\r\n (click)=\"copyInputMessage(userinput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\">\r\n <a *ngIf=\"options.Type==inputType.Email\" href=\"mailto: {{options.Value}}\">{{options.Value}}</a>\r\n <a *ngIf=\"options.Type==inputType.URL\" href=\"{{options.Value}}\" target=\"_blank\">{{options.Value}}</a>\r\n <span *ngIf=\"options.Type!=inputType.URL&&options.Type!=inputType.Email\" class=\"readonly-view\">{{options.Value}}</span>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!--wordCount-->\r\n <div class=\"bbsf-word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowWordCount\">{{WordCount}}/{{options.MaxWordCount}}\r\n Words</div>\r\n <!-- CharsLimitMsg-->\r\n <div class=\"bbsf-character-count\" *ngIf=\"showCharsLimitMsg\"\r\n [ngClass]=\"{'badge-light-warning': charsLimitMsgClass === 'warning', 'badge-light-danger' : charsLimitMsgClass === 'danger' }\">\r\n {{maxLimitWarningMsg}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" [dir]=\"textDir\" *ngIf=\"(TextBoxFormControl.invalid && TextBoxFormControl.touched)\">\r\n {{getErrorValidation(TextBoxFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty)\">{{resetError()}}</div>\r\n</div>"
5857
5795
  },] }
5858
5796
  ];
5859
5797
  TextboxComponent.ctorParameters = function () { return [
@@ -6494,6 +6432,13 @@
6494
6432
  options: [{ type: i0.Input }]
6495
6433
  };
6496
6434
 
6435
+ exports.StyleConfirmationMode = void 0;
6436
+ (function (StyleConfirmationMode) {
6437
+ StyleConfirmationMode[StyleConfirmationMode["Danger"] = 0] = "Danger";
6438
+ StyleConfirmationMode[StyleConfirmationMode["Warning"] = 1] = "Warning";
6439
+ StyleConfirmationMode[StyleConfirmationMode["Success"] = 2] = "Success";
6440
+ })(exports.StyleConfirmationMode || (exports.StyleConfirmationMode = {}));
6441
+
6497
6442
  var ConfirmationModalComponent = /** @class */ (function () {
6498
6443
  function ConfirmationModalComponent(utilityService, modalService, router) {
6499
6444
  this.utilityService = utilityService;
@@ -7017,6 +6962,92 @@
7017
6962
  { type: i0.ComponentFactoryResolver }
7018
6963
  ]; };
7019
6964
 
6965
+ var ToggleslideComponent = /** @class */ (function () {
6966
+ // tslint:disable-next-line: max-line-length
6967
+ function ToggleslideComponent(controlUtility, controlContainer, ToggleslideControlHost, TextControlHost, UtilityService, controlValidationService, globalSettings) {
6968
+ this.controlUtility = controlUtility;
6969
+ this.controlContainer = controlContainer;
6970
+ this.ToggleslideControlHost = ToggleslideControlHost;
6971
+ this.TextControlHost = TextControlHost;
6972
+ this.UtilityService = UtilityService;
6973
+ this.controlValidationService = controlValidationService;
6974
+ this.globalSettings = globalSettings;
6975
+ this.OnChange = new i0.EventEmitter();
6976
+ this.SlideValue = false;
6977
+ this.markAllAsTouched = false;
6978
+ ToggleslideComponent.controlContainerstatic = this.controlContainer;
6979
+ }
6980
+ ToggleslideComponent.prototype.ngOnInit = function () {
6981
+ if (this.options.ForceDirection)
6982
+ this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';
6983
+ else
6984
+ this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';
6985
+ this.group.addControl(this.options.Name, new forms.FormControl(''));
6986
+ this.ToggleslideFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
6987
+ var validationRules = [];
6988
+ var validationRulesasync = [];
6989
+ this.SlideValue = this.options.Value == undefined ? false : this.options.Value;
6990
+ if (!this.options.ViewType)
6991
+ this.options.ViewType = this.globalSettings.ViewType;
6992
+ if (this.options.IsDisabled || this.options.IsReadonly) {
6993
+ this.ToggleslideFormControl.disable();
6994
+ }
6995
+ if (this.options.LabelKey != null && this.options.LabelKey != "")
6996
+ this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);
6997
+ };
6998
+ ToggleslideComponent.prototype.ngAfterViewInit = function () {
6999
+ if (this.options.AttributeList != null) {
7000
+ var element = document.getElementById(this.options.Name);
7001
+ for (var index = 0; index < this.options.AttributeList.length; index++) {
7002
+ element.setAttribute(this.options.AttributeList[index].Key, this.options.AttributeList[index].value);
7003
+ }
7004
+ }
7005
+ };
7006
+ ToggleslideComponent.prototype.resetError = function () {
7007
+ this.controlValidationService.RemoveGlobalError();
7008
+ };
7009
+ ToggleslideComponent.prototype.showGlobalError = function () {
7010
+ this.controlUtility.showGlobalError();
7011
+ };
7012
+ ToggleslideComponent.prototype.getErrorValidation = function (ErrorList) {
7013
+ if (this.markAllAsTouched && this.group.invalid) {
7014
+ this.showGlobalError();
7015
+ this.markAllAsTouched = false;
7016
+ }
7017
+ return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);
7018
+ };
7019
+ ToggleslideComponent.prototype.changeValueToggle = function () {
7020
+ this.OnChange.emit(this.SlideValue);
7021
+ this.options.Value = this.SlideValue;
7022
+ this.ToggleslideFormControl.setValue(this.SlideValue);
7023
+ if (this.options.PatchFunction && this.options.PatchPath && this.ToggleslideFormControl.valid) {
7024
+ this.controlUtility.patchControlValue(this.SlideValue, this.options.PatchFunction, this.options.PatchPath);
7025
+ }
7026
+ };
7027
+ return ToggleslideComponent;
7028
+ }());
7029
+ ToggleslideComponent.controlContainerstatic = null;
7030
+ ToggleslideComponent.decorators = [
7031
+ { type: i0.Component, args: [{
7032
+ selector: 'BBSF-Toggleslide',
7033
+ template: "<div class=\"form-group bbsf-control bbsf-toggleslide\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label [hidden]=\"options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n </label>\r\n <div *ngIf=\"!options.IsReadonly\"class=\"bbsf-input-container\">\r\n <!--input-->\r\n <mat-slide-toggle [(ngModel)]=\"SlideValue\" [dir]=\"textDir\" [cssClass]=\"(options.ViewType==1)?'':'col-md-9'\"\r\n formControlName=\"{{options.Name}}\" disableRipple=\"true\" [disabled]=\"options.IsDisabled\" (change)=\"changeValueToggle()\">\r\n </mat-slide-toggle>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\">\r\n <span class=\"readonly-view\" *ngIf=\"options.Value\">{{UtilityService.getResourceValue(\"Yes\")}}</span>\r\n <span class=\"readonly-view\" *ngIf=\"!options.Value\">{{UtilityService.getResourceValue(\"No\")}}</span>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n </div>\r\n</div>\r\n"
7034
+ },] }
7035
+ ];
7036
+ ToggleslideComponent.ctorParameters = function () { return [
7037
+ { type: ControlUtility },
7038
+ { type: forms.ControlContainer, decorators: [{ type: i0.Optional }] },
7039
+ { type: forms.FormGroupDirective },
7040
+ { type: forms.FormGroupDirective },
7041
+ { type: bbsfUtilities.UtilityService },
7042
+ { type: bbsfUtilities.ControlValidationService },
7043
+ { type: GlobalSettings }
7044
+ ]; };
7045
+ ToggleslideComponent.propDecorators = {
7046
+ group: [{ type: i0.Input }],
7047
+ options: [{ type: i0.Input }],
7048
+ OnChange: [{ type: i0.Output }]
7049
+ };
7050
+
7020
7051
  var RepeaterFieldBuilderComponent = /** @class */ (function () {
7021
7052
  function RepeaterFieldBuilderComponent(renderComponentService, TextControlHost) {
7022
7053
  this.renderComponentService = renderComponentService;
@@ -7871,230 +7902,18 @@
7871
7902
  options: [{ type: i0.Input }]
7872
7903
  };
7873
7904
 
7874
- var BBSFDateTimePipe = /** @class */ (function () {
7875
- function BBSFDateTimePipe(datePipe) {
7876
- this.datePipe = datePipe;
7905
+ var RecaptchaModel = /** @class */ (function () {
7906
+ function RecaptchaModel() {
7907
+ this.ImageJpeg = [];
7877
7908
  }
7878
- BBSFDateTimePipe.prototype.transform = function (value) {
7879
- var latest_date = this.datePipe.transform(value, 'dd/MM/yyyy hh:mm a');
7880
- return latest_date;
7881
- };
7882
- return BBSFDateTimePipe;
7883
- }());
7884
- BBSFDateTimePipe.decorators = [
7885
- { type: i0.Pipe, args: [{
7886
- name: 'bbsfDateTime'
7887
- },] }
7888
- ];
7889
- BBSFDateTimePipe.ctorParameters = function () { return [
7890
- { type: common.DatePipe }
7891
- ]; };
7909
+ return RecaptchaModel;
7910
+ }());
7892
7911
 
7893
- var BBSFDatePipe = /** @class */ (function () {
7894
- function BBSFDatePipe(datePipe) {
7895
- this.datePipe = datePipe;
7912
+ var CaptchaStyle = /** @class */ (function () {
7913
+ function CaptchaStyle() {
7896
7914
  }
7897
- BBSFDatePipe.prototype.transform = function (value) {
7898
- var latest_date = this.datePipe.transform(value, 'dd/MM/yyyy');
7899
- return latest_date;
7900
- };
7901
- return BBSFDatePipe;
7902
- }());
7903
- BBSFDatePipe.decorators = [
7904
- { type: i0.Pipe, args: [{
7905
- name: 'bbsfDate'
7906
- },] }
7907
- ];
7908
- BBSFDatePipe.ctorParameters = function () { return [
7909
- { type: common.DatePipe }
7910
- ]; };
7911
-
7912
- exports.TagInputView = void 0;
7913
- (function (TagInputView) {
7914
- TagInputView[TagInputView["WithImage"] = 1] = "WithImage";
7915
- TagInputView[TagInputView["WithoutImage"] = 2] = "WithoutImage";
7916
- TagInputView[TagInputView["WithInitial"] = 3] = "WithInitial";
7917
- })(exports.TagInputView || (exports.TagInputView = {}));
7918
-
7919
- var noop = function () { };
7920
- var ɵ0$1 = noop;
7921
- 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";
7922
- 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";
7923
- var CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR = {
7924
- provide: forms.NG_VALUE_ACCESSOR,
7925
- useExisting: i0.forwardRef(function () { return BTagsInputComponent; }),
7926
- multi: true
7927
- };
7928
- var BTagsInputComponent = /** @class */ (function () {
7929
- function BTagsInputComponent() {
7930
- this.selected = '';
7931
- this.tags = [];
7932
- this.onTouchedCallback = noop;
7933
- this.onChangeCallback = noop;
7934
- this.tagInputViewEnum = exports.TagInputView;
7935
- this.removeLastOnBackspace = false;
7936
- this.canDeleteTags = true;
7937
- this.canAddTags = true;
7938
- this.ViewMode = exports.TagInputView.WithoutImage;
7939
- this.placeholder = '';
7940
- this.showDescription = true;
7941
- this.options = null;
7942
- this.defaultImageURL = null;
7943
- this.displayField = 'name';
7944
- this.minLengthBeforeOptions = 1;
7945
- this.scrollableOptions = false;
7946
- this.scrollableOptionsInView = 5;
7947
- this.onTagsChanged = new i0.EventEmitter();
7948
- this.onMaxTagsReached = new i0.EventEmitter();
7949
- this.onNoOptionsMatch = new i0.EventEmitter();
7950
- this.onBlurInput = new i0.EventEmitter();
7951
- // (keydown.Tab) = "onTab($event)"
7952
- //onTab(event) {
7953
- // this.onTabInput.emit();
7954
- // event.preventDefault();
7955
- // event.stopPropagation();
7956
- //}
7957
- }
7958
- BTagsInputComponent.prototype.getPlaceholder = function () {
7959
- if (this.tags && this.tags.length > 0) {
7960
- return '';
7961
- }
7962
- return this.placeholder;
7963
- };
7964
- BTagsInputComponent.prototype.tagsChanged = function (type, tag) {
7965
- this.onChangeCallback(this.tags);
7966
- this.onTagsChanged.emit({
7967
- change: type,
7968
- tag: tag
7969
- });
7970
- if (this.maximumOfTagsReached()) {
7971
- this.onMaxTagsReached.emit();
7972
- }
7973
- };
7974
- BTagsInputComponent.prototype.removeLastTag = function (tagInput) {
7975
- var _a;
7976
- if (!this.removeLastOnBackspace || !((_a = this.tags) === null || _a === void 0 ? void 0 : _a.length)) {
7977
- return;
7978
- }
7979
- if (tagInput.value === '') {
7980
- this.removeTag(this.tags[this.tags.length - 1]);
7981
- }
7982
- };
7983
- BTagsInputComponent.prototype.addTag = function (tagInput) {
7984
- var _b;
7985
- if (tagInput.value.trim() !== '') {
7986
- var tag = (_b = {},
7987
- _b[this.displayField] = tagInput.value,
7988
- _b);
7989
- this.addPredefinedTag(tag);
7990
- }
7991
- tagInput.value = '';
7992
- };
7993
- BTagsInputComponent.prototype.addPredefinedTag = function (tag) {
7994
- if (this.tags == null)
7995
- this.tags = [];
7996
- if (!this.maximumOfTagsReached()) {
7997
- this.tags.push(tag);
7998
- this.tagsChanged('add', tag);
7999
- }
8000
- };
8001
- BTagsInputComponent.prototype.removeTag = function (tagToRemove) {
8002
- if (!this.isDeleteable(tagToRemove)) {
8003
- return;
8004
- }
8005
- this.tags = this.tags.filter(function (tag) { return tagToRemove !== tag; });
8006
- this.tagsChanged('remove', tagToRemove);
8007
- };
8008
- BTagsInputComponent.prototype.maximumOfTagsReached = function () {
8009
- return typeof this.maxTags !== 'undefined' && this.tags && this.tags.length >= this.maxTags;
8010
- };
8011
- BTagsInputComponent.prototype.isDeleteable = function (tag) {
8012
- if (typeof tag.deleteable !== "undefined" && !tag.deleteable) {
8013
- return false;
8014
- }
8015
- return this.canDeleteTags;
8016
- };
8017
- BTagsInputComponent.prototype.typeaheadOnSelect = function (e) {
8018
- var _b;
8019
- if (typeof e.item === 'string') {
8020
- this.addPredefinedTag((_b = {},
8021
- _b[this.displayField] = e.value,
8022
- _b));
8023
- }
8024
- else {
8025
- this.addPredefinedTag(e.item);
8026
- }
8027
- this.selected = '';
8028
- };
8029
- BTagsInputComponent.prototype.typeaheadOnNoMatch = function (e) {
8030
- if (typeof this.onNoOptionsMatch !== 'undefined') {
8031
- this.onNoOptionsMatch.emit(e);
8032
- }
8033
- };
8034
- BTagsInputComponent.prototype.writeValue = function (value) {
8035
- if (value !== this.tags) {
8036
- this.tags = value;
8037
- }
8038
- };
8039
- BTagsInputComponent.prototype.registerOnChange = function (fn) {
8040
- this.onChangeCallback = fn;
8041
- };
8042
- BTagsInputComponent.prototype.registerOnTouched = function (fn) {
8043
- this.onTouchedCallback = fn;
8044
- };
8045
- BTagsInputComponent.prototype.calculateInitials = function (name) {
8046
- var fullName = name.split(' ');
8047
- var initials = "";
8048
- if (fullName.length > 1)
8049
- initials = fullName.shift().charAt(0) + fullName.pop().charAt(0);
8050
- else
8051
- initials = fullName.shift().charAt(0);
8052
- return initials.toUpperCase();
8053
- };
8054
- BTagsInputComponent.prototype.onBlur = function () {
8055
- this.onBlurInput.emit();
8056
- };
8057
- return BTagsInputComponent;
8058
- }());
8059
- BTagsInputComponent.decorators = [
8060
- { type: i0.Component, args: [{
8061
- selector: 'b-tags-input',
8062
- template: TAGS_INPUT_TEMPLATE,
8063
- providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR],
8064
- styles: [TAGS_INPUT_STYLE]
8065
- },] }
8066
- ];
8067
- BTagsInputComponent.propDecorators = {
8068
- maxTags: [{ type: i0.Input }],
8069
- removeLastOnBackspace: [{ type: i0.Input }],
8070
- canDeleteTags: [{ type: i0.Input }],
8071
- canAddTags: [{ type: i0.Input }],
8072
- ViewMode: [{ type: i0.Input }],
8073
- placeholder: [{ type: i0.Input }],
8074
- showDescription: [{ type: i0.Input }],
8075
- options: [{ type: i0.Input }],
8076
- defaultImageURL: [{ type: i0.Input }],
8077
- minLengthBeforeOptions: [{ type: i0.Input }],
8078
- scrollableOptions: [{ type: i0.Input }],
8079
- scrollableOptionsInView: [{ type: i0.Input }],
8080
- onTagsChanged: [{ type: i0.Output }],
8081
- onMaxTagsReached: [{ type: i0.Output }],
8082
- onNoOptionsMatch: [{ type: i0.Output }],
8083
- onBlurInput: [{ type: i0.Output }]
8084
- };
8085
-
8086
- var RecaptchaModel = /** @class */ (function () {
8087
- function RecaptchaModel() {
8088
- this.ImageJpeg = [];
8089
- }
8090
- return RecaptchaModel;
8091
- }());
8092
-
8093
- var CaptchaStyle = /** @class */ (function () {
8094
- function CaptchaStyle() {
8095
- }
8096
- return CaptchaStyle;
8097
- }());
7915
+ return CaptchaStyle;
7916
+ }());
8098
7917
 
8099
7918
  var RecaptchaComponent = /** @class */ (function () {
8100
7919
  function RecaptchaComponent(controlUtility, requestHandlerService, recaptchaControlHost, UtilityService, controlValidationService, globalSettings) {
@@ -8257,6 +8076,218 @@
8257
8076
  options: [{ type: i0.Input }]
8258
8077
  };
8259
8078
 
8079
+ var BBSFDateTimePipe = /** @class */ (function () {
8080
+ function BBSFDateTimePipe(datePipe) {
8081
+ this.datePipe = datePipe;
8082
+ }
8083
+ BBSFDateTimePipe.prototype.transform = function (value) {
8084
+ var latest_date = this.datePipe.transform(value, 'dd/MM/yyyy hh:mm a');
8085
+ return latest_date;
8086
+ };
8087
+ return BBSFDateTimePipe;
8088
+ }());
8089
+ BBSFDateTimePipe.decorators = [
8090
+ { type: i0.Pipe, args: [{
8091
+ name: 'bbsfDateTime'
8092
+ },] }
8093
+ ];
8094
+ BBSFDateTimePipe.ctorParameters = function () { return [
8095
+ { type: common.DatePipe }
8096
+ ]; };
8097
+
8098
+ var BBSFDatePipe = /** @class */ (function () {
8099
+ function BBSFDatePipe(datePipe) {
8100
+ this.datePipe = datePipe;
8101
+ }
8102
+ BBSFDatePipe.prototype.transform = function (value) {
8103
+ var latest_date = this.datePipe.transform(value, 'dd/MM/yyyy');
8104
+ return latest_date;
8105
+ };
8106
+ return BBSFDatePipe;
8107
+ }());
8108
+ BBSFDatePipe.decorators = [
8109
+ { type: i0.Pipe, args: [{
8110
+ name: 'bbsfDate'
8111
+ },] }
8112
+ ];
8113
+ BBSFDatePipe.ctorParameters = function () { return [
8114
+ { type: common.DatePipe }
8115
+ ]; };
8116
+
8117
+ exports.TagInputView = void 0;
8118
+ (function (TagInputView) {
8119
+ TagInputView[TagInputView["WithImage"] = 1] = "WithImage";
8120
+ TagInputView[TagInputView["WithoutImage"] = 2] = "WithoutImage";
8121
+ TagInputView[TagInputView["WithInitial"] = 3] = "WithInitial";
8122
+ })(exports.TagInputView || (exports.TagInputView = {}));
8123
+
8124
+ var noop = function () { };
8125
+ var ɵ0$1 = noop;
8126
+ 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";
8127
+ 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";
8128
+ var CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR = {
8129
+ provide: forms.NG_VALUE_ACCESSOR,
8130
+ useExisting: i0.forwardRef(function () { return BTagsInputComponent; }),
8131
+ multi: true
8132
+ };
8133
+ var BTagsInputComponent = /** @class */ (function () {
8134
+ function BTagsInputComponent() {
8135
+ this.selected = '';
8136
+ this.tags = [];
8137
+ this.onTouchedCallback = noop;
8138
+ this.onChangeCallback = noop;
8139
+ this.tagInputViewEnum = exports.TagInputView;
8140
+ this.removeLastOnBackspace = false;
8141
+ this.canDeleteTags = true;
8142
+ this.canAddTags = true;
8143
+ this.ViewMode = exports.TagInputView.WithoutImage;
8144
+ this.placeholder = '';
8145
+ this.showDescription = true;
8146
+ this.options = null;
8147
+ this.defaultImageURL = null;
8148
+ this.displayField = 'name';
8149
+ this.minLengthBeforeOptions = 1;
8150
+ this.scrollableOptions = false;
8151
+ this.scrollableOptionsInView = 5;
8152
+ this.onTagsChanged = new i0.EventEmitter();
8153
+ this.onMaxTagsReached = new i0.EventEmitter();
8154
+ this.onNoOptionsMatch = new i0.EventEmitter();
8155
+ this.onBlurInput = new i0.EventEmitter();
8156
+ // (keydown.Tab) = "onTab($event)"
8157
+ //onTab(event) {
8158
+ // this.onTabInput.emit();
8159
+ // event.preventDefault();
8160
+ // event.stopPropagation();
8161
+ //}
8162
+ }
8163
+ BTagsInputComponent.prototype.getPlaceholder = function () {
8164
+ if (this.tags && this.tags.length > 0) {
8165
+ return '';
8166
+ }
8167
+ return this.placeholder;
8168
+ };
8169
+ BTagsInputComponent.prototype.tagsChanged = function (type, tag) {
8170
+ this.onChangeCallback(this.tags);
8171
+ this.onTagsChanged.emit({
8172
+ change: type,
8173
+ tag: tag
8174
+ });
8175
+ if (this.maximumOfTagsReached()) {
8176
+ this.onMaxTagsReached.emit();
8177
+ }
8178
+ };
8179
+ BTagsInputComponent.prototype.removeLastTag = function (tagInput) {
8180
+ var _a;
8181
+ if (!this.removeLastOnBackspace || !((_a = this.tags) === null || _a === void 0 ? void 0 : _a.length)) {
8182
+ return;
8183
+ }
8184
+ if (tagInput.value === '') {
8185
+ this.removeTag(this.tags[this.tags.length - 1]);
8186
+ }
8187
+ };
8188
+ BTagsInputComponent.prototype.addTag = function (tagInput) {
8189
+ var _b;
8190
+ if (tagInput.value.trim() !== '') {
8191
+ var tag = (_b = {},
8192
+ _b[this.displayField] = tagInput.value,
8193
+ _b);
8194
+ this.addPredefinedTag(tag);
8195
+ }
8196
+ tagInput.value = '';
8197
+ };
8198
+ BTagsInputComponent.prototype.addPredefinedTag = function (tag) {
8199
+ if (this.tags == null)
8200
+ this.tags = [];
8201
+ if (!this.maximumOfTagsReached()) {
8202
+ this.tags.push(tag);
8203
+ this.tagsChanged('add', tag);
8204
+ }
8205
+ };
8206
+ BTagsInputComponent.prototype.removeTag = function (tagToRemove) {
8207
+ if (!this.isDeleteable(tagToRemove)) {
8208
+ return;
8209
+ }
8210
+ this.tags = this.tags.filter(function (tag) { return tagToRemove !== tag; });
8211
+ this.tagsChanged('remove', tagToRemove);
8212
+ };
8213
+ BTagsInputComponent.prototype.maximumOfTagsReached = function () {
8214
+ return typeof this.maxTags !== 'undefined' && this.tags && this.tags.length >= this.maxTags;
8215
+ };
8216
+ BTagsInputComponent.prototype.isDeleteable = function (tag) {
8217
+ if (typeof tag.deleteable !== "undefined" && !tag.deleteable) {
8218
+ return false;
8219
+ }
8220
+ return this.canDeleteTags;
8221
+ };
8222
+ BTagsInputComponent.prototype.typeaheadOnSelect = function (e) {
8223
+ var _b;
8224
+ if (typeof e.item === 'string') {
8225
+ this.addPredefinedTag((_b = {},
8226
+ _b[this.displayField] = e.value,
8227
+ _b));
8228
+ }
8229
+ else {
8230
+ this.addPredefinedTag(e.item);
8231
+ }
8232
+ this.selected = '';
8233
+ };
8234
+ BTagsInputComponent.prototype.typeaheadOnNoMatch = function (e) {
8235
+ if (typeof this.onNoOptionsMatch !== 'undefined') {
8236
+ this.onNoOptionsMatch.emit(e);
8237
+ }
8238
+ };
8239
+ BTagsInputComponent.prototype.writeValue = function (value) {
8240
+ if (value !== this.tags) {
8241
+ this.tags = value;
8242
+ }
8243
+ };
8244
+ BTagsInputComponent.prototype.registerOnChange = function (fn) {
8245
+ this.onChangeCallback = fn;
8246
+ };
8247
+ BTagsInputComponent.prototype.registerOnTouched = function (fn) {
8248
+ this.onTouchedCallback = fn;
8249
+ };
8250
+ BTagsInputComponent.prototype.calculateInitials = function (name) {
8251
+ var fullName = name.split(' ');
8252
+ var initials = "";
8253
+ if (fullName.length > 1)
8254
+ initials = fullName.shift().charAt(0) + fullName.pop().charAt(0);
8255
+ else
8256
+ initials = fullName.shift().charAt(0);
8257
+ return initials.toUpperCase();
8258
+ };
8259
+ BTagsInputComponent.prototype.onBlur = function () {
8260
+ this.onBlurInput.emit();
8261
+ };
8262
+ return BTagsInputComponent;
8263
+ }());
8264
+ BTagsInputComponent.decorators = [
8265
+ { type: i0.Component, args: [{
8266
+ selector: 'b-tags-input',
8267
+ template: TAGS_INPUT_TEMPLATE,
8268
+ providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR],
8269
+ styles: [TAGS_INPUT_STYLE]
8270
+ },] }
8271
+ ];
8272
+ BTagsInputComponent.propDecorators = {
8273
+ maxTags: [{ type: i0.Input }],
8274
+ removeLastOnBackspace: [{ type: i0.Input }],
8275
+ canDeleteTags: [{ type: i0.Input }],
8276
+ canAddTags: [{ type: i0.Input }],
8277
+ ViewMode: [{ type: i0.Input }],
8278
+ placeholder: [{ type: i0.Input }],
8279
+ showDescription: [{ type: i0.Input }],
8280
+ options: [{ type: i0.Input }],
8281
+ defaultImageURL: [{ type: i0.Input }],
8282
+ minLengthBeforeOptions: [{ type: i0.Input }],
8283
+ scrollableOptions: [{ type: i0.Input }],
8284
+ scrollableOptionsInView: [{ type: i0.Input }],
8285
+ onTagsChanged: [{ type: i0.Output }],
8286
+ onMaxTagsReached: [{ type: i0.Output }],
8287
+ onNoOptionsMatch: [{ type: i0.Output }],
8288
+ onBlurInput: [{ type: i0.Output }]
8289
+ };
8290
+
8260
8291
  var options;
8261
8292
  exports.AppInjector = void 0;
8262
8293
  var ɵ0 = ControlUtility.getLocal();
@@ -8350,10 +8381,7 @@
8350
8381
  overlay.OverlayModule,
8351
8382
  storeDevtools.StoreDevtoolsModule.instrument(),
8352
8383
  forms.FormsModule,
8353
- ngxIntlTelInput.NgxIntlTelInputModule,
8354
- ngxIntlTelInput.NgxIntlTelInputModule,
8355
8384
  datepicker.BsDatepickerModule.forRoot(),
8356
- angular.FullCalendarModule,
8357
8385
  typeahead.TypeaheadModule.forRoot(),
8358
8386
  angularEditor.AngularEditorModule,
8359
8387
  angularNgAutocomplete.AutocompleteLibModule,
@@ -8987,13 +9015,6 @@
8987
9015
  return FormOptions;
8988
9016
  }());
8989
9017
 
8990
- exports.StyleConfirmationMode = void 0;
8991
- (function (StyleConfirmationMode) {
8992
- StyleConfirmationMode[StyleConfirmationMode["Danger"] = 0] = "Danger";
8993
- StyleConfirmationMode[StyleConfirmationMode["Warning"] = 1] = "Warning";
8994
- StyleConfirmationMode[StyleConfirmationMode["Success"] = 2] = "Success";
8995
- })(exports.StyleConfirmationMode || (exports.StyleConfirmationMode = {}));
8996
-
8997
9018
  var ConfirmationModalOptions = /** @class */ (function () {
8998
9019
  function ConfirmationModalOptions() {
8999
9020
  //Represents confirmation modal title