@bnsights/bbsf-controls 1.0.24 → 1.0.27

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/bnsights-bbsf-controls-1.0.27.tgz +0 -0
  2. package/bnsights-bbsf-controls.d.ts +0 -23
  3. package/bnsights-bbsf-controls.metadata.json +1 -1
  4. package/bundles/bnsights-bbsf-controls.umd.js +1145 -220
  5. package/bundles/bnsights-bbsf-controls.umd.js.map +1 -1
  6. package/esm2015/bnsights-bbsf-controls.js +1 -24
  7. package/esm2015/lib/Shared/Directives/template-name.directive.js +18 -0
  8. package/esm2015/lib/Shared/Enums/Enums.js +45 -0
  9. package/esm2015/lib/Shared/Models/RepeaterField.js +3 -0
  10. package/esm2015/lib/Shared/Models/RepeaterOptions.js +10 -0
  11. package/esm2015/lib/Shared/services/render-component-service.service.js +19 -0
  12. package/esm2015/lib/controls/DropdownList/DropdownList.component.js +2 -2
  13. package/esm2015/lib/controls/ImageUpload/ImageUpload.component.js +6 -3
  14. package/esm2015/lib/controls/Paging/Paging.component.js +2 -2
  15. package/esm2015/lib/controls/Repeater/repeater/repeater.component.js +112 -0
  16. package/esm2015/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.js +704 -0
  17. package/esm2015/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.js +20 -0
  18. package/esm2015/lib/controls/TextBox/TextBox.component.js +1 -1
  19. package/esm2015/lib/controls/bbsf-controls.module.js +17 -10
  20. package/esm2015/public-api.js +32 -23
  21. package/fesm2015/bnsights-bbsf-controls.js +1087 -186
  22. package/fesm2015/bnsights-bbsf-controls.js.map +1 -1
  23. package/lib/Shared/Directives/template-name.directive.d.ts +6 -0
  24. package/lib/Shared/Enums/Enums.d.ts +40 -0
  25. package/lib/Shared/Models/RepeaterField.d.ts +5 -0
  26. package/lib/Shared/Models/RepeaterOptions.d.ts +13 -0
  27. package/lib/Shared/services/render-component-service.service.d.ts +7 -0
  28. package/lib/controls/Repeater/repeater/repeater.component.d.ts +25 -0
  29. package/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.d.ts +17 -0
  30. package/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.d.ts +8 -0
  31. package/package.json +1 -1
  32. package/public-api.d.ts +31 -0
  33. package/bnsights-bbsf-controls-1.0.24.tgz +0 -0
@@ -4,7 +4,7 @@ import timeGridPlugin from '@fullcalendar/timegrid';
4
4
  import listPlugin from '@fullcalendar/list';
5
5
  import interactionPlugin from '@fullcalendar/interaction';
6
6
  import * as i0 from '@angular/core';
7
- import { Injectable, Optional, EventEmitter, Component, Input, Output, ViewChild, NgZone, NgModule, NO_ERRORS_SCHEMA, Injector } from '@angular/core';
7
+ import { Injectable, Optional, EventEmitter, Component, Input, Output, ViewChild, NgZone, Directive, TemplateRef, ViewChildren, ComponentFactoryResolver, ViewContainerRef, NgModule, NO_ERRORS_SCHEMA, Injector } from '@angular/core';
8
8
  import { BlockUIModule } from 'ng-block-ui';
9
9
  import { ControlContainer, Validators, FormControl, FormGroupDirective, FormGroup, ReactiveFormsModule, FormsModule } from '@angular/forms';
10
10
  import { Http, HttpModule } from '@angular/http';
@@ -1894,7 +1894,7 @@ DropdownListComponent.decorators = [
1894
1894
  { type: Component, args: [{
1895
1895
  // tslint:disable-next-line: component-selector
1896
1896
  selector: 'BBSF-DropdownList',
1897
- template: "<div class=\"b-control b-dropdown-list\">\r\n <div class=\"form-group row validate is-invalid\" [formGroup]=\"group\">\r\n <label class=\"b-label col-form-label col-sm-12 \" [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\"\r\n [hidden]=\"options.HideLabel\">\r\n {{options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger Required-text\"\r\n aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <ng-select *ngIf=\"options.DisableBootstrapSelect==false\" dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n [bindValue]=\"options.ItemTempletkey\" [bindLabel]=\"options.ItemTempletvalue\" [items]=\"options.DataSource\"\r\n [notFoundText]=\"'No data found.'\" [maxSelectedItems]=\"options.LimitSelection\"\r\n [searchable]=\"options.AllowSearchFilter\" [multiple]=\"!options.SingleSelection\" [readonly]=\"options.IsDisabled\"\r\n [searchable]=\"true\" [clearable]=\"true\" placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\"\r\n [selectableGroup]=\"true\" [selectableGroupAsModel]=\"false\" formControlName=\"{{options.Name}}\"\r\n [(ngModel)]=\"SelectedList\" (change)=\"onItemSelect($event[options.ItemTempletkey])\" (clear)=\"Clear()\"\r\n [class.is-invalid]=\"DropdownListFormControl.invalid && DropdownListFormControl.touched\"\r\n [closeOnSelect]=\"options.SingleSelection ? true : false\">\r\n\r\n <ng-template *ngIf=\"options.ShowCheckbox\" ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <div class=\"ks-cboxtags\">\r\n <input id=\"item-{{index}}\" type=\"checkbox\" [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"item$.selected\"\r\n class=\" \" /> <label class=\"ng-option-label mb-0\" id={{item.key}}>{{item.value}}</label>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template *ngIf=\"!options.ShowCheckbox\" ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <label class=\"ng-option-label mb-0\" id={{item.key}}>{{item.value}}</label>\r\n </ng-template>\r\n\r\n </ng-select>\r\n\r\n <select *ngIf=\"options.DisableBootstrapSelect\" class=\"form-control bnsights-control\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\" (change)=\"onItemSelect($event.target.value)\"\r\n [disabled]=\"options.IsDisabled\" formControlName=\"{{options.Name}}\">\r\n <option value=\"\" disabled>--select--</option>\r\n <option *ngFor=\"let item of options.DataSource\" value=\"{{item.key}}\" [ngValue]=\"item.key\">\r\n {{item.value}}\r\n </option>\r\n </select>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(DropdownListFormControl.invalid && DropdownListFormControl.touched)\">\r\n {{getErrorValidation(DropdownListFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc\">{{options.LabelDescription}}</div>\r\n </div>\r\n\r\n <!-- <div *ngIf=\"DropdownListFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">\r\n {{resetError()}}</div>\r\n\r\n\r\n </div>\r\n </div>\r\n</div>",
1897
+ template: "<div class=\"b-control b-dropdown-list\">\r\n <div class=\"form-group row validate is-invalid\" [formGroup]=\"group\">\r\n <label class=\"b-label col-form-label col-sm-12 \" [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\"\r\n [hidden]=\"options.HideLabel\">\r\n {{options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger Required-text\"\r\n aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <ng-select *ngIf=\"options.DisableBootstrapSelect==false\" dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n [bindValue]=\"options.ItemTempletkey\" [bindLabel]=\"options.ItemTempletvalue\" [items]=\"options.DataSource\"\r\n [notFoundText]=\"'No data found.'\" [maxSelectedItems]=\"options.LimitSelection\"\r\n [searchable]=\"options.AllowSearchFilter\" [multiple]=\"!options.SingleSelection\" [readonly]=\"options.IsDisabled\"\r\n [clearable]=\"true\" placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\"\r\n [selectableGroup]=\"true\" [selectableGroupAsModel]=\"false\" formControlName=\"{{options.Name}}\"\r\n [(ngModel)]=\"options.SelectedItems\" (change)=\"onItemSelect($event[options.ItemTempletkey])\" (clear)=\"Clear()\"\r\n [class.is-invalid]=\"DropdownListFormControl.invalid && DropdownListFormControl.touched\"\r\n [closeOnSelect]=\"options.SingleSelection ? true : false\">\r\n\r\n <ng-template *ngIf=\"options.ShowCheckbox\" ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <div class=\"ks-cboxtags\">\r\n <input id=\"item-{{index}}\" type=\"checkbox\" [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"item$.selected\"\r\n class=\" \" /> <label class=\"ng-option-label mb-0\" id={{item.key}}>{{item.value}}</label>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template *ngIf=\"!options.ShowCheckbox\" ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <label class=\"ng-option-label mb-0\" id={{item.key}}>{{item.value}}</label>\r\n </ng-template>\r\n\r\n </ng-select>\r\n\r\n <select *ngIf=\"options.DisableBootstrapSelect\" class=\"form-control bnsights-control\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\" (change)=\"onItemSelect($event.target.value)\"\r\n [disabled]=\"options.IsDisabled\" formControlName=\"{{options.Name}}\">\r\n <option value=\"\" disabled>--select--</option>\r\n <option *ngFor=\"let item of options.DataSource\" value=\"{{item.key}}\" [ngValue]=\"item.key\">\r\n {{item.value}}\r\n </option>\r\n </select>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(DropdownListFormControl.invalid && DropdownListFormControl.touched)\">\r\n {{getErrorValidation(DropdownListFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc\">{{options.LabelDescription}}</div>\r\n </div>\r\n\r\n <!-- <div *ngIf=\"DropdownListFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">\r\n {{resetError()}}</div>\r\n\r\n\r\n </div>\r\n </div>\r\n</div>\r\n",
1898
1898
  styles: [".cuppa-dropdown{background-color:#fff}.arrow-up,.arrow-down{border-left:none!important;border-right:none!important}.dropdown-list{padding-top:0!important}.c-token{background-color:#6495ed}.pure-checkbox .selected-item{background-color:#6495ed;color:#fff}\n"]
1899
1899
  },] }
1900
1900
  ];
@@ -2783,7 +2783,7 @@ class ImageUploaderComponent {
2783
2783
  this.FileLikeObject = new FileLikeObject({
2784
2784
  name: element.FileName,
2785
2785
  size: element.FileSizeInMB * 1000 * 1000,
2786
- type: element.FileType
2786
+ type: element.FileType,
2787
2787
  });
2788
2788
  this.uploader.addToQueue([this.FileLikeObject]);
2789
2789
  }
@@ -2807,6 +2807,8 @@ class ImageUploaderComponent {
2807
2807
  }
2808
2808
  this.group.addControl(this.options.Name, new FormControl(''));
2809
2809
  this.ImageUploadFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
2810
+ if (this.options.Value != null)
2811
+ this.group.get(this.options.Name).setValue(this.options.Value);
2810
2812
  if (this.options.LabelKey != null && this.options.LabelKey != "")
2811
2813
  this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);
2812
2814
  if (this.options.CustomValidation.length > 0) {
@@ -2949,6 +2951,7 @@ class ImageUploaderComponent {
2949
2951
  FileType: this.EventFile.type,
2950
2952
  FileBase64: reader.result.toString().split(',')[1],
2951
2953
  FileSizeInMB: ((BlobFile.size / 1000) / 1000),
2954
+ NameWithExtension: this.EventFile.name
2952
2955
  };
2953
2956
  BlobFile.name = this.EventFile.name;
2954
2957
  FilesArray.push(FileObject);
@@ -2975,7 +2978,7 @@ ImageUploaderComponent.controlContainerstatic = null;
2975
2978
  ImageUploaderComponent.decorators = [
2976
2979
  { type: Component, args: [{
2977
2980
  selector: 'BBSF-ImageUpload',
2978
- template: "<div class=\"b-control b-image-upload\">\r\n <div class=\"form-group row validate is-invalid\" [formGroup]=\"group\">\r\n <label class=\"b-label col-form-label col-sm-12 \" [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\" [hidden]=\"options.HideLabel\">\r\n {{options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n\r\n <ejs-tooltip id=\"tooltip\" content='{{ValidationMessage}}' tipPointerPosition='Middle'>\r\n <i class=\"fa fa-info-circle\" data-plugin=\"tooltip\" data-html=\"true\">\r\n </i>\r\n </ejs-tooltip>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n\r\n <div *ngIf=\"options.AllowDropZone\" style=\"max-width:200px !important; max-height: 200px !important;\" class=\"d-inline-flex h-auto w-auto overflow-hidden m-0 {{options.ExtraClasses}}\" ngx-dropzone [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\" [multiple]=\"options.IsMultiple\"\r\n (change)=\"onFileChange($event)\" aria-describedby=\"email-error\" aria-invalid=\"true\" ngDefaultControl formControlName=\"{{options.Name}}\" [maxFileSize]=\"options.FileMaxSizeInMB\"\r\n id=\"{{options.Name}}\" [class.is-invalid]=\"ImageUploadFormControl.invalid && ImageUploadFormControl.touched\">\r\n <ngx-dropzone-label class=\"h-100 m-0\" style=\"max-width: 200px !important;\">\r\n <div class=\"h-100\">\r\n <img [src]=\"ImageSource\" class=\"h-100 w-100\" />\r\n </div>\r\n </ngx-dropzone-label>\r\n\r\n\r\n <ngx-dropzone-image-preview style=\"max-width:200px !important; max-height: 200px !important;\" *ngFor=\"let f of files\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n ngProjectAs=\"ngx-dropzone-preview\" class=\"b-img-preview w-100 h-100 m-0\">\r\n </ngx-dropzone-image-preview>\r\n </div>\r\n\r\n <div class=\"ImageUploadClassSelector\" *ngIf=\"!options.AllowDropZone\" >\r\n <ngx-dropzone-label class=\"h-100 m-0\" *ngIf=\"files.length==0\" >\r\n <div style=\"max-width:200px !important; max-height: 200px !important;\" class=\"h-100 file-fake-input\" #element (click)=\"showImageUploader(element)\">\r\n <img [src]=\"ImageSource\" class=\"h-100 w-100\" />\r\n </div>`\r\n </ngx-dropzone-label>\r\n\r\n <div style=\"border: none !important; max-width:200px !important; max-height: 200px !important;\" class=\" fileSelector customImageUploadPlacment d-inline-flex h-auto w-auto overflow-hidden m-0 {{options.ExtraClasses}}\" ngx-dropzone [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\" [multiple]=\"options.IsMultiple\"\r\n (change)=\"onFileChange($event)\" aria-describedby=\"email-error\" aria-invalid=\"true\" ngDefaultControl formControlName=\"{{options.Name}}\" [maxFileSize]=\"options.FileMaxSizeInMB\"\r\n id=\"{{options.Name}}\" [class.is-invalid]=\"ImageUploadFormControl.invalid && ImageUploadFormControl.touched\">\r\n \r\n\r\n\r\n <ngx-dropzone-image-preview style=\"max-width:200px !important; max-height: 200px !important;\" *ngFor=\"let f of files\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n ngProjectAs=\"ngx-dropzone-preview\" class=\"b-img-preview w-100 h-100 m-0\">\r\n </ngx-dropzone-image-preview>\r\n </div>\r\n </div>\r\n\r\n\r\n <div id=\"mdlSample\" class=\"modal fade\" role=\"dialog\" style=\"z-index: 11 !important ;\"\r\n [ngStyle]=\"{'display': mdlSampleIsOpen ? 'block' : 'none', 'opacity': 1}\">\r\n <div class=\"modal-dialog modal-lg\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\">\r\n Crop Image\r\n </h4>\r\n </div>\r\n <div class=\"modal-body py-5\">\r\n <div *ngIf=\"imageUrl\">\r\n <angular-cropper #angularCropper [cropperOptions]=\"config\" [imageUrl]=\"imageUrl\">\r\n </angular-cropper>\r\n <img [src]=\"imgwUrl\" />\r\n </div>\r\n <div style=\"text-align:center;\">\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"zoomImage(0.1)\" class=\"btn btn-default\" data-method=\"zoom\" data-option=\"0.1\" title=\"Zoom In\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.zoom(0.1)\">\r\n <span class=\"fa fa-search-plus\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"zoomImage(-0.1)\" class=\"btn btn-default\" data-method=\"zoom\" data-option=\"-0.1\" title=\"Zoom Out\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.zoom(-0.1)\">\r\n <span class=\"fa fa-search-minus\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"moveImage(-10,0)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"-10\" data-second-option=\"0\" title=\"Move Left\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(-10, 0)\" aria-describedby=\"tooltip631939\">\r\n <span class=\"fa fa-arrow-left\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(10,0)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"10\" data-second-option=\"0\" title=\"Move Right\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(10, 0)\">\r\n <span class=\"fa fa-arrow-right\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(0,-10)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"0\" data-second-option=\"-10\" title=\"Move Up\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(0, -10)\">\r\n <span class=\"fa fa-arrow-up\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(0,10)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"0\" data-second-option=\"10\" title=\"Move Down\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(0, 10)\">\r\n <span class=\"fa fa-arrow-down\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"rotateImage(-45)\" class=\"btn btn-default\" data-method=\"rotate\" data-option=\"-45\" title=\"Rotate Left\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.rotate(-45)\" aria-describedby=\"tooltip236044\">\r\n <span class=\"fa fa-undo-alt\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"rotateImage(45)\" class=\"btn btn-default\" data-method=\"rotate\" data-option=\"45\" title=\"Rotate Right\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.rotate(45)\">\r\n <span class=\"fa fa-redo-alt\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\" align=\"right\">\r\n <button type=\"button\" id=\"btnClose\" class=\"btn btn-default\" (click)=\"openModal(false)\">\r\n <i class=\"fa fa-times fa-fw\"></i> Cancel\r\n </button>\r\n <button type=\"button\" (click)=\"cropImage()\" id=\"btnOK\" class=\"btn btn-success\">\r\n <i class=\"fa fa-check fa-fw\"></i>\r\n Crop\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(ImageUploadFormControl.invalid && ImageUploadFormControl.touched)\">\r\n {{getErrorValidation(ImageUploadFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc text-dark\">{{options.LabelDescription}}</div>\r\n </div>\r\n\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n\r\n </div>\r\n\r\n </div>\r\n</div>\r\n",
2981
+ template: "<div class=\"b-control b-image-upload\">\r\n <div class=\"form-group row validate is-invalid\" [formGroup]=\"group\">\r\n <label class=\"b-label col-form-label col-sm-12 \" [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\" [hidden]=\"options.HideLabel\">\r\n {{options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n\r\n <ejs-tooltip id=\"tooltip\" content='{{ValidationMessage}}' tipPointerPosition='Middle'>\r\n <i class=\"fa fa-info-circle\" data-plugin=\"tooltip\" data-html=\"true\">\r\n </i>\r\n </ejs-tooltip>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n\r\n <div *ngIf=\"options.AllowDropZone\" style=\"max-width:200px !important; max-height: 200px !important;\" class=\"d-inline-flex h-auto w-auto overflow-hidden m-0 {{options.ExtraClasses}}\" ngx-dropzone [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\" [multiple]=\"options.IsMultiple\"\r\n (change)=\"onFileChange($event)\" aria-describedby=\"email-error\" aria-invalid=\"true\" ngDefaultControl formControlName=\"{{options.Name}}\" [maxFileSize]=\"options.FileMaxSizeInMB\"\r\n id=\"{{options.Name}}\" [class.is-invalid]=\"ImageUploadFormControl.invalid && ImageUploadFormControl.touched\">\r\n <ngx-dropzone-label class=\"h-100 m-0\" style=\"max-width: 200px !important;\">\r\n <div class=\"h-100\">\r\n <img [src]=\"ImageSource\" class=\"h-100 w-100\" />\r\n </div>\r\n </ngx-dropzone-label>\r\n\r\n\r\n <ngx-dropzone-image-preview style=\"max-width:200px !important; max-height: 200px !important;\" *ngFor=\"let f of files\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n ngProjectAs=\"ngx-dropzone-preview\" class=\"b-img-preview w-100 h-100 m-0\">\r\n </ngx-dropzone-image-preview>\r\n </div>\r\n\r\n <div class=\"ImageUploadClassSelector\" *ngIf=\"!options.AllowDropZone\" >\r\n <ngx-dropzone-label class=\"h-100 m-0\" *ngIf=\"files.length==0\" >\r\n <div style=\"max-width:200px !important; max-height: 200px !important;\" class=\"h-100 file-fake-input\" #element (click)=\"showImageUploader(element)\">\r\n <img [src]=\"ImageSource\" class=\"h-100 w-100\" />\r\n </div>\r\n </ngx-dropzone-label>\r\n\r\n <div style=\"border: none !important; max-width:200px !important; max-height: 200px !important;\" class=\" fileSelector customImageUploadPlacment d-inline-flex h-auto w-auto overflow-hidden m-0 {{options.ExtraClasses}}\" ngx-dropzone [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\" [multiple]=\"options.IsMultiple\"\r\n (change)=\"onFileChange($event)\" aria-describedby=\"email-error\" aria-invalid=\"true\" ngDefaultControl formControlName=\"{{options.Name}}\" [maxFileSize]=\"options.FileMaxSizeInMB\"\r\n id=\"{{options.Name}}\" [class.is-invalid]=\"ImageUploadFormControl.invalid && ImageUploadFormControl.touched\">\r\n \r\n\r\n\r\n <ngx-dropzone-image-preview style=\"max-width:200px !important; max-height: 200px !important;\" *ngFor=\"let f of files\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n ngProjectAs=\"ngx-dropzone-preview\" class=\"b-img-preview w-100 h-100 m-0\">\r\n </ngx-dropzone-image-preview>\r\n </div>\r\n </div>\r\n\r\n\r\n <div id=\"mdlSample\" class=\"modal fade\" role=\"dialog\" style=\"z-index: 11 !important ;\"\r\n [ngStyle]=\"{'display': mdlSampleIsOpen ? 'block' : 'none', 'opacity': 1}\">\r\n <div class=\"modal-dialog modal-lg\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\">\r\n Crop Image\r\n </h4>\r\n </div>\r\n <div class=\"modal-body py-5\">\r\n <div *ngIf=\"imageUrl\">\r\n <angular-cropper #angularCropper [cropperOptions]=\"config\" [imageUrl]=\"imageUrl\">\r\n </angular-cropper>\r\n <img [src]=\"imgwUrl\" />\r\n </div>\r\n <div style=\"text-align:center;\">\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"zoomImage(0.1)\" class=\"btn btn-default\" data-method=\"zoom\" data-option=\"0.1\" title=\"Zoom In\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.zoom(0.1)\">\r\n <span class=\"fa fa-search-plus\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"zoomImage(-0.1)\" class=\"btn btn-default\" data-method=\"zoom\" data-option=\"-0.1\" title=\"Zoom Out\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.zoom(-0.1)\">\r\n <span class=\"fa fa-search-minus\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"moveImage(-10,0)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"-10\" data-second-option=\"0\" title=\"Move Left\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(-10, 0)\" aria-describedby=\"tooltip631939\">\r\n <span class=\"fa fa-arrow-left\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(10,0)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"10\" data-second-option=\"0\" title=\"Move Right\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(10, 0)\">\r\n <span class=\"fa fa-arrow-right\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(0,-10)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"0\" data-second-option=\"-10\" title=\"Move Up\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(0, -10)\">\r\n <span class=\"fa fa-arrow-up\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(0,10)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"0\" data-second-option=\"10\" title=\"Move Down\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(0, 10)\">\r\n <span class=\"fa fa-arrow-down\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"rotateImage(-45)\" class=\"btn btn-default\" data-method=\"rotate\" data-option=\"-45\" title=\"Rotate Left\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.rotate(-45)\" aria-describedby=\"tooltip236044\">\r\n <span class=\"fa fa-undo-alt\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"rotateImage(45)\" class=\"btn btn-default\" data-method=\"rotate\" data-option=\"45\" title=\"Rotate Right\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.rotate(45)\">\r\n <span class=\"fa fa-redo-alt\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\" align=\"right\">\r\n <button type=\"button\" id=\"btnClose\" class=\"btn btn-default\" (click)=\"openModal(false)\">\r\n <i class=\"fa fa-times fa-fw\"></i> Cancel\r\n </button>\r\n <button type=\"button\" (click)=\"cropImage()\" id=\"btnOK\" class=\"btn btn-success\">\r\n <i class=\"fa fa-check fa-fw\"></i>\r\n Crop\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(ImageUploadFormControl.invalid && ImageUploadFormControl.touched)\">\r\n {{getErrorValidation(ImageUploadFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc text-dark\">{{options.LabelDescription}}</div>\r\n </div>\r\n\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n\r\n </div>\r\n\r\n </div>\r\n</div>\r\n",
2979
2982
  styles: [".e-tip-content{background-color:#afafaf;color:#fff;padding-left:10px;padding-right:10px;padding-top:2px}.my-drop-zone{border:dotted 3px lightgray}.nv-file-over{border:dotted 3px red}.another-file-over-class{border:dotted 3px green}html,body{height:100%}.modal{display:none;position:fixed;z-index:1;padding-top:100px;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#000;background-color:#0006}.modal-content{position:relative;background-color:#fefefe;margin:auto;padding:0;border:1px solid #888;width:80%;box-shadow:0 4px 8px #0003,0 6px 20px #00000030;-webkit-animation-name:animatetop;-webkit-animation-duration:.4s;animation-name:animatetop;animation-duration:.4s}@keyframes animatetop{0%{top:-300px;opacity:0}to{top:0;opacity:1}}.close{color:#fff;float:right;font-size:28px;font-weight:bold}.ImageUploadClassSelector img{cursor:pointer}.d-inline-flex.h-auto.m-0.overflow-hidden.w-auto.ng-untouched.ng-pristine.ng-valid{border-radius:40px;border-color:#c7c7c7}\n"]
2980
2983
  },] }
2981
2984
  ];
@@ -3998,7 +4001,7 @@ class PagingComponent {
3998
4001
  PagingComponent.decorators = [
3999
4002
  { type: Component, args: [{
4000
4003
  selector: 'BBSF-Paging',
4001
- template: "<div class=\"b-control b-paging\" *ngIf=\"(result.length > 0)\">\r\n <div class=\"d-flex justify-content-between align-items-center\" *ngIf=\"!options.IsLoadMoreControl\">\r\n <div class=\"b-pagination\">\r\n <jw-pagination [items]=\"items\" *ngIf=\"!((Pages==1)&&options.HidePaginationWhenPageSizeEqualOne)\"\r\n (changePage)=\"onChangePage($event)\" [pageSize]=\"options.PageSize\" [ShowFirstAndLast]=\"options.ShowFirstAndLast\"\r\n [initialPage]=\"1\" [maxPages]=\"10\"></jw-pagination>\r\n </div>\r\n <div class=\"b-pages d-flex\" *ngIf=\"!((Pages==1)&&options.HidePaginationWhenPageSizeEqualOne)\" >\r\n <select (change)=\"changePageSize($event)\" *ngIf=\"options.ShowPageSizeOption\">\r\n <option>10</option>\r\n <option>20</option>\r\n <option>50</option>\r\n <option>100</option>\r\n <option>200</option>\r\n </select>\r\n <div class=\"b-items ml-3\">\r\n <strong>{{totalRow}}</strong> {{utilityService.getResourceValue(\"ItemsIn\")}} <strong> {{Pages}}</strong> {{utilityService.getResourceValue(\"Pages\")}}\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"row\" style=\"align-self:center; align-items: center; text-align: center;\" *ngIf=\"options.IsLoadMoreControl\">\r\n <div class=\"search-results\" infinite-scroll [infiniteScrollDistance]=\"ScrollDistance\"\r\n [infiniteScrollUpDistance]=\"ScrollUpDistance\" [infiniteScrollThrottle]=\"Throttle\" (scrolled)=\"options.IsInfiniteScroll==true?onScrollDown():null\"\r\n [scrollWindow]=\"options.ScrollWindow\" [infiniteScrollContainer]=\"options.InfiniteScrollContainer\">\r\n </div>\r\n <button class=\"btn btn-primary\" (click)=\"onScrollDown()\" *ngIf=\"!(result.length==totalRow)\"> Load More </button>\r\n </div>\r\n</div>\r\n",
4004
+ template: "<div class=\"b-control b-paging\" *ngIf=\"(result.length > 0)\">\r\n <div class=\"d-flex justify-content-between align-items-center\" *ngIf=\"!options.IsLoadMoreControl\">\r\n <div class=\"b-pagination\">\r\n <jw-pagination [items]=\"items\" *ngIf=\"!((Pages==1)&&options.HidePaginationWhenPageSizeEqualOne)\"\r\n (changePage)=\"onChangePage($event)\" [pageSize]=\"options.PageSize\" [ShowFirstAndLast]=\"options.ShowFirstAndLast\"\r\n [initialPage]=\"1\" [maxPages]=\"10\"></jw-pagination>\r\n </div>\r\n <div class=\"b-pages d-flex\" *ngIf=\"!((Pages==1)&&options.HidePaginationWhenPageSizeEqualOne)\" >\r\n <select (change)=\"changePageSize($event)\" *ngIf=\"options.ShowPageSizeOption\">\r\n <option>10</option>\r\n <option>20</option>\r\n <option>50</option>\r\n <option>100</option>\r\n <option>200</option>\r\n </select>\r\n <div class=\"b-items ml-3\">\r\n <strong>{{totalRow}}</strong> {{utilityService.getResourceValue(\"ItemsIn\")}} <strong> {{Pages}}</strong> {{utilityService.getResourceValue(\"Pages\")}}\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"row\" style=\"align-self:center; align-items: center; text-align: center;\" *ngIf=\"options.IsLoadMoreControl\">\r\n <div class=\"search-results\" infinite-scroll [infiniteScrollDistance]=\"ScrollDistance\"\r\n [infiniteScrollUpDistance]=\"ScrollUpDistance\" [infiniteScrollThrottle]=\"Throttle\" (scrolled)=\"options.IsInfiniteScroll==true?onScrollDown():null\"\r\n [scrollWindow]=\"options.ScrollWindow\" [infiniteScrollContainer]=\"options.InfiniteScrollContainer\">\r\n </div>\r\n <button class=\"btn btn-info\" (click)=\"onScrollDown()\" *ngIf=\"!(result.length==totalRow)\">{{utilityService.getResourceValue(\"LoadMore\")}}</button>\r\n </div>\r\n</div>\r\n",
4002
4005
  styles: [".ngx-pager-container{text-align:center;padding:25px 0 0}.ngx-pager-container li{display:inline-block;margin:0 4px}.ngx-pager-container li a{display:block;width:26px;height:26px;border:1px solid #707070;text-align:center;color:#3e4e59;font-size:14px;line-height:24px;border-radius:5px;text-decoration:none}.ngx-pager-container li a:hover{color:#fff;background:#0a0e03}.ngx-pager-container li.invisible{display:none}.ngx-pager-container li.active{background:#0a0e03;border-radius:5px}.ngx-pager-container li.active a{border:none;color:#fff}\n"]
4003
4006
  },] }
4004
4007
  ];
@@ -5148,6 +5151,1060 @@ ConfirmationModalComponent.propDecorators = {
5148
5151
  confirmationModal: [{ type: ViewChild, args: ['confirmationModal', { static: false },] }]
5149
5152
  };
5150
5153
 
5154
+ class NgTemplateNameDirective {
5155
+ constructor(template) {
5156
+ this.template = template;
5157
+ }
5158
+ }
5159
+ NgTemplateNameDirective.decorators = [
5160
+ { type: Directive, args: [{
5161
+ selector: 'ng-template[name]'
5162
+ },] }
5163
+ ];
5164
+ NgTemplateNameDirective.ctorParameters = () => [
5165
+ { type: TemplateRef }
5166
+ ];
5167
+ NgTemplateNameDirective.propDecorators = {
5168
+ name: [{ type: Input }]
5169
+ };
5170
+
5171
+ class RepeaterComponent {
5172
+ constructor() {
5173
+ this.templateRefs = [];
5174
+ this.items = [];
5175
+ this.repeaterContext = { index: 0, delete: null, elements: null };
5176
+ }
5177
+ ngOnInit() {
5178
+ this.currentTemplate = this.initialTemplate;
5179
+ this.repeaterGroup = new FormGroup({});
5180
+ this.group.addControl(this.options.Name, this.repeaterGroup);
5181
+ this.group.get(this.options.Name).setValue(this.options.RepeaterValue);
5182
+ for (let index = 0; index < this.options.MinRequiredItems; index++) {
5183
+ this.items.push(index);
5184
+ }
5185
+ this.repeaterGroup.valueChanges.subscribe((res) => {
5186
+ let result = [];
5187
+ let rowNumber = [];
5188
+ let addItems = [];
5189
+ for (const key in this.repeaterGroup.controls) {
5190
+ if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {
5191
+ const keySplitArr = key.split('.');
5192
+ let item = {
5193
+ [keySplitArr[1]]: { [keySplitArr[0]]: this.group.controls[this.options.Name].value[key] }
5194
+ };
5195
+ addItems.push(item);
5196
+ if (!rowNumber.includes(keySplitArr[1]))
5197
+ rowNumber.push(keySplitArr[1]);
5198
+ }
5199
+ }
5200
+ for (let index = 0; index < rowNumber.length; index++) {
5201
+ const row = rowNumber[index];
5202
+ let addObject = {};
5203
+ let filteredElements = addItems.filter(item => item[row]);
5204
+ for (let index = 0; index < filteredElements.length; index++) {
5205
+ const filteredElement = filteredElements[index];
5206
+ for (const key in filteredElement) {
5207
+ if (Object.prototype.hasOwnProperty.call(filteredElement, key)) {
5208
+ const element = filteredElement[key];
5209
+ for (const key in element) {
5210
+ if (Object.prototype.hasOwnProperty.call(element, key)) {
5211
+ const value = element[key];
5212
+ addObject[key] = value;
5213
+ }
5214
+ }
5215
+ }
5216
+ }
5217
+ }
5218
+ result.push(addObject);
5219
+ }
5220
+ this.options.RepeaterValue = result;
5221
+ });
5222
+ }
5223
+ deleteItem(Index) {
5224
+ if (this.items.length == this.options.MinRequiredItems && this.options.IsRequired)
5225
+ return;
5226
+ let deletedControls = [];
5227
+ let controlNames = this.options.RepeaterStructure.map(e => e.ControlOptions.Name);
5228
+ for (const key in this.repeaterGroup.controls) {
5229
+ if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {
5230
+ for (let index = 0; index < controlNames.length; index++) {
5231
+ const element = controlNames[index];
5232
+ const keySplitArr = key.split('.');
5233
+ if (keySplitArr[0] + keySplitArr[1] == `${element}${Index}`) {
5234
+ const element = this.repeaterGroup.controls[key];
5235
+ deletedControls.push({ [key]: element });
5236
+ }
5237
+ }
5238
+ }
5239
+ }
5240
+ for (let index = 0; index < deletedControls.length; index++) {
5241
+ const element = deletedControls[index];
5242
+ for (const key in element) {
5243
+ if (Object.prototype.hasOwnProperty.call(element, key)) {
5244
+ this.repeaterGroup.removeControl(key);
5245
+ }
5246
+ }
5247
+ }
5248
+ let item = this.items[Index];
5249
+ this.items = this.items.filter((res) => res != item);
5250
+ }
5251
+ AddItem() {
5252
+ this.items.push(this.items.length + 1);
5253
+ }
5254
+ ngAfterViewInit() {
5255
+ let templateRefs = this._templates["_results"].map((item) => item["template"]);
5256
+ this.templateRefs = templateRefs;
5257
+ this.repeaterContext.elements = this.templateRefs;
5258
+ this.repeaterContext.delete = this.delete;
5259
+ }
5260
+ setCurrentIndex(i) {
5261
+ this.repeaterContext.index = i;
5262
+ }
5263
+ }
5264
+ RepeaterComponent.decorators = [
5265
+ { type: Component, args: [{
5266
+ selector: 'BBSF-repeater',
5267
+ template: "<div *ngFor='let item of items ; index as i'>\r\n {{setCurrentIndex(i)}}\r\n <ng-container *ngTemplateOutlet=\"currentTemplate; context: repeaterContext\">\r\n </ng-container>\r\n\r\n</div>\r\n\r\n<div>\r\n <ng-container *ngTemplateOutlet=\"add\">\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template *ngFor=\"let RepeaterField of options.RepeaterStructure ; index as i\" name=\"R{{i}}\" \r\n let-Index=\"itemIndex\" let-control=\"controlIndex\">\r\n <repeater-field-builder *ngIf=\"RepeaterField\" [RepeaterField]=\"RepeaterField\" [itemNumber]=\"Index\" [controlNumber]=\"control\"\r\n [group]=\"repeaterGroup\"></repeater-field-builder>\r\n</ng-template>\r\n\r\n<ng-template #delete let-item=\"itemIndex\">\r\n <button class=\"{{options.DeleteButtonExtraClasses}}\" type=\"button\" (click)=\"deleteItem(item)\"\r\n [disabled]=\"items.length ==options.MinRequiredItems&&options.IsRequired\"> <span [innerHTML]=\"options.DeleteButtonText\"></span></button>\r\n</ng-template>\r\n\r\n<ng-template #add>\r\n <button class=\"{{options.AddButtonExtraClasses}}\" type=\"button\"\r\n (click)=\"AddItem()\"><span [innerHTML]=\"options.AddButtonText\"></span></button>\r\n</ng-template>\r\n\r\n\r\n\r\n\r\n\r\n<!-- <ng-template adHost></ng-template> -->",
5268
+ styles: [""]
5269
+ },] }
5270
+ ];
5271
+ RepeaterComponent.ctorParameters = () => [];
5272
+ RepeaterComponent.propDecorators = {
5273
+ group: [{ type: Input }],
5274
+ options: [{ type: Input }],
5275
+ initialTemplate: [{ type: Input }],
5276
+ _templates: [{ type: ViewChildren, args: [NgTemplateNameDirective,] }],
5277
+ delete: [{ type: ViewChild, args: ['delete', { static: false },] }]
5278
+ };
5279
+
5280
+ var PermissionSets;
5281
+ (function (PermissionSets) {
5282
+ PermissionSets[PermissionSets["Admin"] = 1] = "Admin";
5283
+ PermissionSets[PermissionSets["BusinessAdmin"] = 2] = "BusinessAdmin";
5284
+ PermissionSets[PermissionSets["Customer"] = 3] = "Customer";
5285
+ })(PermissionSets || (PermissionSets = {}));
5286
+ var PropertyLocation;
5287
+ (function (PropertyLocation) {
5288
+ PropertyLocation[PropertyLocation["InternalIdeas"] = 53001] = "InternalIdeas";
5289
+ PropertyLocation[PropertyLocation["EvaluationRequest"] = 53002] = "EvaluationRequest";
5290
+ PropertyLocation[PropertyLocation["IMOBusiness"] = 53003] = "IMOBusiness";
5291
+ PropertyLocation[PropertyLocation["PublicIdeas"] = 53004] = "PublicIdeas";
5292
+ })(PropertyLocation || (PropertyLocation = {}));
5293
+ var LanguageType;
5294
+ (function (LanguageType) {
5295
+ LanguageType[LanguageType["English"] = 54001] = "English";
5296
+ LanguageType[LanguageType["Arabic"] = 54002] = "Arabic";
5297
+ LanguageType[LanguageType["Any"] = 54003] = "Any";
5298
+ })(LanguageType || (LanguageType = {}));
5299
+ var DataType;
5300
+ (function (DataType) {
5301
+ DataType[DataType["Text"] = 52001] = "Text";
5302
+ DataType[DataType["Email"] = 52002] = "Email";
5303
+ DataType[DataType["Number"] = 52005] = "Number";
5304
+ DataType[DataType["Name"] = 52003] = "Name";
5305
+ DataType[DataType["Mobile"] = 52004] = "Mobile";
5306
+ DataType[DataType["MultilineText"] = 52006] = "MultilineText";
5307
+ DataType[DataType["HTML"] = 52007] = "HTML";
5308
+ DataType[DataType["Image"] = 52010] = "Image";
5309
+ DataType[DataType["File"] = 52011] = "File";
5310
+ DataType[DataType["MultiFile"] = 52012] = "MultiFile";
5311
+ DataType[DataType["Boolean"] = 52013] = "Boolean";
5312
+ DataType[DataType["Date"] = 52014] = "Date";
5313
+ DataType[DataType["DateTime"] = 52015] = "DateTime";
5314
+ DataType[DataType["Time"] = 52016] = "Time";
5315
+ DataType[DataType["Location"] = 52017] = "Location";
5316
+ DataType[DataType["SingleSelect"] = 52008] = "SingleSelect";
5317
+ DataType[DataType["MulipleSelect"] = 52009] = "MulipleSelect";
5318
+ DataType[DataType["Goal"] = 52018] = "Goal";
5319
+ DataType[DataType["Challenge"] = 52019] = "Challenge";
5320
+ DataType[DataType["CoverPhoto"] = 52020] = "CoverPhoto";
5321
+ DataType[DataType["InnovationLab"] = 52021] = "InnovationLab";
5322
+ DataType[DataType["Country"] = 52022] = "Country";
5323
+ })(DataType || (DataType = {}));
5324
+
5325
+ var ForceDirection;
5326
+ (function (ForceDirection) {
5327
+ ForceDirection[ForceDirection["English"] = 1] = "English";
5328
+ ForceDirection[ForceDirection["Arabic"] = 2] = "Arabic";
5329
+ })(ForceDirection || (ForceDirection = {}));
5330
+
5331
+ class DatePickerOptions {
5332
+ constructor() {
5333
+ /** to set type of view if DatePicker is Vertical or Horizontal */
5334
+ this.ViewType = ControlLayout.Vertical;
5335
+ /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
5336
+ */
5337
+ this.CustomValidation = [];
5338
+ /**To set First Day Of Week to DatePicker */
5339
+ this.FirstDayOfWeek = 1;
5340
+ /**To set PickerType to DatePicker is Calendar or Timer Or Both */
5341
+ this.PickerType = PickerType.Calendar;
5342
+ /**To set StartView to DatePicker is Year or Month Or Multi-Year */
5343
+ this.StartView = StartView.Month;
5344
+ /**To set SelectMode to DatePicker is Single or Range */
5345
+ this.SelectMode = SelectMode.Single;
5346
+ this.ForceDirection = ForceDirection.English;
5347
+ }
5348
+ }
5349
+
5350
+ class DropdownOptions {
5351
+ constructor() {
5352
+ /** Disable Bootstrap DropdownList */
5353
+ this.DisableBootstrapSelect = false;
5354
+ /** to set type of view if DropdownList is Vertical or Horizontal */
5355
+ this.ViewType = null;
5356
+ /** To Set Custom Validation*/
5357
+ this.CustomValidation = [];
5358
+ /** Set key for item in DropdownList */
5359
+ this.ItemTempletkey = "key";
5360
+ /** Set value for item in DropdownList */
5361
+ this.ItemTempletvalue = "value";
5362
+ this.ForceDirection = ForceDirection.English;
5363
+ }
5364
+ }
5365
+
5366
+ class FileUploadOptions {
5367
+ constructor() {
5368
+ /** Ability to set FileInput required */
5369
+ this.IsMultipleFile = false;
5370
+ /** Sets boolean Value to Show IsDropZone Or Not */
5371
+ this.IsDropZone = false;
5372
+ /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
5373
+ */
5374
+ this.CustomValidation = [];
5375
+ /** to set type of view if textbox is Vertical or Horizontal */
5376
+ this.ViewType = null;
5377
+ }
5378
+ }
5379
+
5380
+ class HtmlEditorOptions {
5381
+ constructor() {
5382
+ /** to set type of view if textbox is Vertical or Horizontal */
5383
+ this.ViewType = null;
5384
+ /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
5385
+ */
5386
+ this.CustomValidation = [];
5387
+ /** to set Direction of HtmlEditor if HtmlEditor is Arabic or English */
5388
+ this.ForceDirection = ForceDirection.English;
5389
+ /** Set Height For */
5390
+ this.Height = 150;
5391
+ }
5392
+ }
5393
+
5394
+ var ImageType;
5395
+ (function (ImageType) {
5396
+ ImageType["ImageTypes"] = "image/png,image/bmp,image/jpeg";
5397
+ ImageType["PNG"] = "image/png";
5398
+ ImageType["JPG"] = "image/jpeg";
5399
+ ImageType["JPEG"] = "image/jpeg";
5400
+ ImageType["SVG"] = "image/svg+xml";
5401
+ ImageType["None"] = "";
5402
+ })(ImageType || (ImageType = {}));
5403
+
5404
+ class ImageUploadOptions {
5405
+ constructor() {
5406
+ /** Allow to Upload Multiple File */
5407
+ this.IsMultiple = false;
5408
+ /** Allow to Use Drop Zone */
5409
+ this.AllowDropZone = false;
5410
+ /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
5411
+ */
5412
+ this.CustomValidation = [];
5413
+ /** to set type of view if FileInput is Vertical or Horizontal */
5414
+ this.ViewType = null;
5415
+ /** Set List of Custom Attribute to FileInput */
5416
+ this.FileUploadAcceptsTypes = [ImageType.ImageTypes];
5417
+ }
5418
+ }
5419
+
5420
+ class MapAutoCompleteOptions {
5421
+ constructor() {
5422
+ /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
5423
+ */
5424
+ this.CustomValidation = [];
5425
+ /** to set type of view if MapAutoComplete is Vertical or Horizontal */
5426
+ this.ViewType = null;
5427
+ }
5428
+ }
5429
+
5430
+ class PhoneOptions {
5431
+ constructor() {
5432
+ /**
5433
+ * Represent Css classes to Phonebox
5434
+ */
5435
+ this.ExtraClasses = "form-control bnsights-control";
5436
+ /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
5437
+ */
5438
+ this.CustomValidation = [];
5439
+ /**Set List Of Countries As Preferred Countries*/
5440
+ this.PreferredCountries = [];
5441
+ /** to set type of view if Phonebox is Vertical or Horizontal */
5442
+ this.ViewType = null;
5443
+ this.ForceDirection = ForceDirection.English;
5444
+ }
5445
+ }
5446
+
5447
+ class RangeNumber {
5448
+ }
5449
+
5450
+ class TextAreaOptions {
5451
+ constructor() {
5452
+ /** to set type of view if TextArea is Vertical or Horizontal */
5453
+ this.ViewType = null;
5454
+ /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
5455
+ */
5456
+ this.CustomValidation = [];
5457
+ /** to set Direction of TextArea if TextArea is Arabic or English */
5458
+ this.ForceDirection = ForceDirection.English;
5459
+ }
5460
+ }
5461
+
5462
+ var IconPosition;
5463
+ (function (IconPosition) {
5464
+ IconPosition[IconPosition["left"] = 1] = "left";
5465
+ IconPosition[IconPosition["right"] = 2] = "right";
5466
+ })(IconPosition || (IconPosition = {}));
5467
+
5468
+ class TextBoxOptions {
5469
+ constructor() {
5470
+ /** set Range Number to Textbox with type number with From-Value and To-value*/
5471
+ this.NumberRange = new RangeNumber();
5472
+ /**Prevent AutoComplete of textbox*/
5473
+ this.AutoComplete = "off";
5474
+ /** to set type of view if textbox is Vertical or Horizontal */
5475
+ this.ViewType = null;
5476
+ /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
5477
+ */
5478
+ this.CustomValidation = [];
5479
+ /** to set Direction of textbox if textbox is Arabic or English */
5480
+ this.ForceDirection = null;
5481
+ /** Set Type of TextBox ("text","password","email","number") */
5482
+ this.Type = InputType.Text;
5483
+ this.IconPosition = IconPosition.left;
5484
+ this.NoMargin = false;
5485
+ this.ValidationRules = [];
5486
+ }
5487
+ }
5488
+
5489
+ class ToggleSlideOptions {
5490
+ constructor() {
5491
+ this.ViewType = null;
5492
+ this.ForceDirection = ForceDirection.English;
5493
+ }
5494
+ }
5495
+
5496
+ class RenderComponentService {
5497
+ constructor(componentFactoryResolver) {
5498
+ this.componentFactoryResolver = componentFactoryResolver;
5499
+ }
5500
+ renderDynamicComponent(viewContainerRef, component, group, options) {
5501
+ let factory = this.componentFactoryResolver.resolveComponentFactory(component);
5502
+ const componentRef = viewContainerRef.createComponent(factory);
5503
+ componentRef.instance.group = group;
5504
+ componentRef.instance.options = options;
5505
+ }
5506
+ }
5507
+ RenderComponentService.decorators = [
5508
+ { type: Injectable }
5509
+ ];
5510
+ RenderComponentService.ctorParameters = () => [
5511
+ { type: ComponentFactoryResolver }
5512
+ ];
5513
+
5514
+ class RepeaterFieldBuilderComponent {
5515
+ constructor(renderComponentService, TextControlHost) {
5516
+ this.renderComponentService = renderComponentService;
5517
+ this.TextControlHost = TextControlHost;
5518
+ }
5519
+ ngOnInit() {
5520
+ }
5521
+ ngAfterViewInit() {
5522
+ setTimeout(() => {
5523
+ this.Item.clear();
5524
+ switch (this.RepeaterField.ControlType) {
5525
+ ///TextBox
5526
+ case DataType.Text:
5527
+ let Text = new TextBoxOptions();
5528
+ Text.Name = this.RepeaterField.ControlOptions.Name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
5529
+ Text.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5530
+ Text.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5531
+ Text.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5532
+ Text.ViewType = this.RepeaterField.ControlOptions.ViewType;
5533
+ Text.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5534
+ Text.Type = InputType.Text;
5535
+ if (this.RepeaterField.ControlOptions.maxLength)
5536
+ Text.MaxLength = this.RepeaterField.ControlOptions.maxLength;
5537
+ if (this.RepeaterField.ControlOptions.minLength)
5538
+ Text.MinLength = this.RepeaterField.ControlOptions.minLength;
5539
+ this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Text);
5540
+ break;
5541
+ case DataType.Name:
5542
+ let Name = new TextBoxOptions();
5543
+ Name.Name = this.RepeaterField.ControlOptions.Name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
5544
+ Name.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5545
+ Name.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5546
+ Name.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5547
+ Name.ViewType = this.RepeaterField.ControlOptions.ViewType;
5548
+ Name.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5549
+ if (this.RepeaterField.ControlOptions.maxLength)
5550
+ Name.MaxLength = this.RepeaterField.ControlOptions.maxLength;
5551
+ if (this.RepeaterField.ControlOptions.minLength)
5552
+ Name.MinLength = this.RepeaterField.ControlOptions.minLength;
5553
+ Name.Type = InputType.Text;
5554
+ this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Name);
5555
+ break;
5556
+ case DataType.Email:
5557
+ let Email = new TextBoxOptions();
5558
+ Email.Name = this.RepeaterField.ControlOptions.Name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
5559
+ Email.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5560
+ Email.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5561
+ Email.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5562
+ Email.ViewType = this.RepeaterField.ControlOptions.ViewType;
5563
+ Email.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5564
+ Email.Type = InputType.Email;
5565
+ this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Email);
5566
+ break;
5567
+ case DataType.Number:
5568
+ let Number = new TextBoxOptions();
5569
+ Number.Name = this.RepeaterField.ControlOptions.Name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
5570
+ Number.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5571
+ Number.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5572
+ Number.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5573
+ Number.ViewType = this.RepeaterField.ControlOptions.ViewType;
5574
+ Number.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5575
+ Number.Type = InputType.Number;
5576
+ let rangeNumber = new RangeNumber();
5577
+ rangeNumber.To = this.RepeaterField.ControlOptions.maxLength;
5578
+ rangeNumber.From = this.RepeaterField.ControlOptions.minLength;
5579
+ Number.NumberRange = rangeNumber;
5580
+ this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Number);
5581
+ break;
5582
+ ///DateTime
5583
+ case DataType.Date:
5584
+ let Date = new DatePickerOptions();
5585
+ Date.Name = this.RepeaterField.ControlOptions.Name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
5586
+ Date.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5587
+ Date.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5588
+ Date.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5589
+ Date.ViewType = this.RepeaterField.ControlOptions.ViewType;
5590
+ Date.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5591
+ Date.PickerType = PickerType.Calendar;
5592
+ Date.SelectMode = SelectMode.Single;
5593
+ Date.StartView = StartView.Month;
5594
+ this.renderComponentService.renderDynamicComponent(this.Item, DateInputComponent, this.group, Date);
5595
+ break;
5596
+ case DataType.DateTime:
5597
+ let DateTime = new DatePickerOptions();
5598
+ DateTime.Name = this.RepeaterField.ControlOptions.Name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
5599
+ DateTime.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5600
+ DateTime.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5601
+ DateTime.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5602
+ DateTime.ViewType = this.RepeaterField.ControlOptions.ViewType;
5603
+ DateTime.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5604
+ DateTime.PickerType = PickerType.Both;
5605
+ DateTime.SelectMode = SelectMode.Single;
5606
+ DateTime.StartView = StartView.Month;
5607
+ this.renderComponentService.renderDynamicComponent(this.Item, DateInputComponent, this.group, DateTime);
5608
+ break;
5609
+ case DataType.Time:
5610
+ let Time = new DatePickerOptions();
5611
+ Time.Name = this.RepeaterField.ControlOptions.Name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
5612
+ Time.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5613
+ Time.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5614
+ Time.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5615
+ Time.ViewType = this.RepeaterField.ControlOptions.ViewType;
5616
+ Time.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5617
+ Time.PickerType = PickerType.Timer;
5618
+ Time.SelectMode = SelectMode.Single;
5619
+ Time.StartView = StartView.Month;
5620
+ this.renderComponentService.renderDynamicComponent(this.Item, DateInputComponent, this.group, Time);
5621
+ break;
5622
+ //Dropdown
5623
+ case DataType.SingleSelect:
5624
+ let SingleSelect = new DropdownOptions();
5625
+ SingleSelect.Name = this.RepeaterField.ControlOptions.Name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
5626
+ SingleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5627
+ SingleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5628
+ SingleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5629
+ SingleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;
5630
+ SingleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5631
+ SingleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource;
5632
+ SingleSelect.SingleSelection = true;
5633
+ SingleSelect.ShowCheckbox = false;
5634
+ SingleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
5635
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, SingleSelect);
5636
+ break;
5637
+ case DataType.MulipleSelect:
5638
+ let MulipleSelect = new DropdownOptions();
5639
+ MulipleSelect.Name = this.RepeaterField.ControlOptions.Name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
5640
+ MulipleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5641
+ MulipleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5642
+ MulipleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5643
+ MulipleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;
5644
+ MulipleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5645
+ MulipleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource;
5646
+ MulipleSelect.SingleSelection = false;
5647
+ MulipleSelect.ShowCheckbox = false;
5648
+ MulipleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
5649
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, MulipleSelect);
5650
+ break;
5651
+ case DataType.Goal:
5652
+ let Goal = new DropdownOptions();
5653
+ Goal.Name = this.RepeaterField.ControlOptions.Name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
5654
+ Goal.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5655
+ Goal.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5656
+ Goal.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5657
+ Goal.ViewType = this.RepeaterField.ControlOptions.ViewType;
5658
+ Goal.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5659
+ Goal.DataSource = this.RepeaterField.ControlOptions.dataSource;
5660
+ Goal.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
5661
+ Goal.ShowCheckbox = false;
5662
+ Goal.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
5663
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, Goal);
5664
+ break;
5665
+ case DataType.Challenge:
5666
+ let Challenge = new DropdownOptions();
5667
+ Challenge.Name = this.RepeaterField.ControlOptions.Name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
5668
+ Challenge.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5669
+ Challenge.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5670
+ Challenge.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5671
+ Challenge.ViewType = this.RepeaterField.ControlOptions.ViewType;
5672
+ Challenge.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5673
+ Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource;
5674
+ Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource;
5675
+ Challenge.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
5676
+ Challenge.ShowCheckbox = false;
5677
+ Challenge.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
5678
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, Challenge);
5679
+ break;
5680
+ case DataType.InnovationLab:
5681
+ let InnovationLab = new DropdownOptions();
5682
+ InnovationLab.Name = this.RepeaterField.ControlOptions.Name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
5683
+ InnovationLab.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5684
+ InnovationLab.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5685
+ InnovationLab.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5686
+ InnovationLab.ViewType = this.RepeaterField.ControlOptions.ViewType;
5687
+ InnovationLab.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5688
+ InnovationLab.DataSource = this.RepeaterField.ControlOptions.dataSource;
5689
+ InnovationLab.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
5690
+ InnovationLab.ShowCheckbox = false;
5691
+ InnovationLab.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
5692
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, InnovationLab);
5693
+ break;
5694
+ case DataType.Country:
5695
+ let Country = new DropdownOptions();
5696
+ Country.Name = this.RepeaterField.ControlOptions.Name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
5697
+ Country.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5698
+ Country.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5699
+ Country.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5700
+ Country.ViewType = this.RepeaterField.ControlOptions.ViewType;
5701
+ Country.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5702
+ Country.DataSource = this.RepeaterField.ControlOptions.dataSource;
5703
+ Country.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
5704
+ Country.ShowCheckbox = false;
5705
+ Country.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
5706
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, Country);
5707
+ break;
5708
+ //FileUpload
5709
+ case DataType.File:
5710
+ let File = new FileUploadOptions();
5711
+ File.Name = this.RepeaterField.ControlOptions.Name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
5712
+ File.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5713
+ File.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5714
+ File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5715
+ File.ViewType = this.RepeaterField.ControlOptions.ViewType;
5716
+ File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5717
+ File.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
5718
+ this.renderComponentService.renderDynamicComponent(this.Item, FileUploadComponent, this.group, File);
5719
+ break;
5720
+ case DataType.MultiFile:
5721
+ let MultiFile = new FileUploadOptions();
5722
+ File.Name = this.RepeaterField.ControlOptions.Name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
5723
+ File.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5724
+ File.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5725
+ File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5726
+ File.ViewType = this.RepeaterField.ControlOptions.ViewType;
5727
+ File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5728
+ MultiFile.MaxSizeForAllFilesInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
5729
+ MultiFile.MaxNoOfFiles = this.RepeaterField.ControlOptions.maxFileCount;
5730
+ MultiFile.IsMultipleFile = true;
5731
+ this.renderComponentService.renderDynamicComponent(this.Item, FileUploadComponent, this.group, MultiFile);
5732
+ break;
5733
+ //ImageUpload
5734
+ case DataType.Image:
5735
+ let Image = new ImageUploadOptions();
5736
+ Image.Name = this.RepeaterField.ControlOptions.Name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
5737
+ Image.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5738
+ Image.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5739
+ Image.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5740
+ Image.ViewType = this.RepeaterField.ControlOptions.ViewType;
5741
+ Image.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5742
+ if (this.RepeaterField.ControlOptions.maxFileSizeInMB)
5743
+ Image.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
5744
+ this.renderComponentService.renderDynamicComponent(this.Item, ImageUploaderComponent, this.group, Image);
5745
+ break;
5746
+ case DataType.CoverPhoto:
5747
+ let CoverPhoto = new ImageUploadOptions();
5748
+ CoverPhoto.Name = this.RepeaterField.ControlOptions.Name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
5749
+ CoverPhoto.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5750
+ CoverPhoto.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5751
+ CoverPhoto.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5752
+ CoverPhoto.ViewType = this.RepeaterField.ControlOptions.ViewType;
5753
+ CoverPhoto.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5754
+ if (this.RepeaterField.ControlOptions.maxFileSizeInMB)
5755
+ CoverPhoto.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
5756
+ this.renderComponentService.renderDynamicComponent(this.Item, ImageUploaderComponent, this.group, CoverPhoto);
5757
+ break;
5758
+ //Mobile
5759
+ case DataType.Mobile:
5760
+ let Mobile = new PhoneOptions();
5761
+ Mobile.Name = this.RepeaterField.ControlOptions.Name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
5762
+ Mobile.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5763
+ Mobile.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5764
+ Mobile.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5765
+ Mobile.ViewType = this.RepeaterField.ControlOptions.ViewType;
5766
+ Mobile.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5767
+ Mobile.AllowSearch = true;
5768
+ Mobile.PhoneValidation = true;
5769
+ Mobile.SelectFirstCountry = true;
5770
+ Mobile.EnablePlaceholder = true;
5771
+ this.renderComponentService.renderDynamicComponent(this.Item, PhoneComponent, this.group, Mobile);
5772
+ break;
5773
+ //MultilineText
5774
+ case DataType.MultilineText:
5775
+ let MultilineText = new TextAreaOptions();
5776
+ MultilineText.Name = this.RepeaterField.ControlOptions.Name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
5777
+ MultilineText.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5778
+ MultilineText.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5779
+ MultilineText.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5780
+ MultilineText.ViewType = this.RepeaterField.ControlOptions.ViewType;
5781
+ MultilineText.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5782
+ if (this.RepeaterField.ControlOptions.maxLength)
5783
+ MultilineText.MaxLength = this.RepeaterField.ControlOptions.maxLength;
5784
+ if (this.RepeaterField.ControlOptions.minLength)
5785
+ MultilineText.MinLength = this.RepeaterField.ControlOptions.minLength;
5786
+ MultilineText.Rows = this.RepeaterField.ControlOptions.rows;
5787
+ MultilineText.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection;
5788
+ this.renderComponentService.renderDynamicComponent(this.Item, TextAreaComponent, this.group, MultilineText);
5789
+ break;
5790
+ //HTML
5791
+ case DataType.HTML:
5792
+ let HTML = new HtmlEditorOptions();
5793
+ HTML.Name = this.RepeaterField.ControlOptions.Name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
5794
+ HTML.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5795
+ HTML.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5796
+ HTML.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5797
+ HTML.ViewType = this.RepeaterField.ControlOptions.ViewType;
5798
+ HTML.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5799
+ if (this.RepeaterField.ControlOptions.maxLength)
5800
+ HTML.MaxLength = this.RepeaterField.ControlOptions.maxLength;
5801
+ if (this.RepeaterField.ControlOptions.minLength)
5802
+ HTML.MinLength = this.RepeaterField.ControlOptions.minLength;
5803
+ HTML.Height = this.RepeaterField.ControlOptions.rows;
5804
+ HTML.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection;
5805
+ this.renderComponentService.renderDynamicComponent(this.Item, HtmlEditorComponent, this.group, HTML);
5806
+ break;
5807
+ //Boolean
5808
+ case DataType.Boolean:
5809
+ let Boolean = new ToggleSlideOptions();
5810
+ Boolean.Name = this.RepeaterField.ControlOptions.Name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
5811
+ Boolean.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5812
+ Boolean.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5813
+ Boolean.ViewType = this.RepeaterField.ControlOptions.ViewType;
5814
+ Boolean.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5815
+ this.renderComponentService.renderDynamicComponent(this.Item, ToggleslideComponent, this.group, Boolean);
5816
+ break;
5817
+ //Location
5818
+ case DataType.Location:
5819
+ let Location = new MapAutoCompleteOptions();
5820
+ Location.Name = this.RepeaterField.ControlOptions.Name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
5821
+ Location.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5822
+ Location.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5823
+ Location.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5824
+ Location.ViewType = this.RepeaterField.ControlOptions.ViewType;
5825
+ Location.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5826
+ this.renderComponentService.renderDynamicComponent(this.Item, MapAutoCompleteComponent, this.group, Location);
5827
+ break;
5828
+ default:
5829
+ break;
5830
+ }
5831
+ }, 0);
5832
+ }
5833
+ ngOnChanges(changes) {
5834
+ if (changes.itemNumber.previousValue) {
5835
+ let name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.previousValue.toString() + "." + this.controlNumber.toString();
5836
+ let value = this.group.controls[name].value;
5837
+ this.Item.clear();
5838
+ this.group.removeControl(name);
5839
+ switch (this.RepeaterField.ControlType) {
5840
+ ///TextBox
5841
+ case DataType.Text:
5842
+ let Text = new TextBoxOptions();
5843
+ Text.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5844
+ Text.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5845
+ Text.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5846
+ Text.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5847
+ Text.ViewType = this.RepeaterField.ControlOptions.ViewType;
5848
+ Text.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5849
+ Text.Type = InputType.Text;
5850
+ if (this.RepeaterField.ControlOptions.maxLength)
5851
+ Text.MaxLength = this.RepeaterField.ControlOptions.maxLength;
5852
+ if (this.RepeaterField.ControlOptions.minLength)
5853
+ Text.MinLength = this.RepeaterField.ControlOptions.minLength;
5854
+ Text.Value = value;
5855
+ this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Text);
5856
+ break;
5857
+ case DataType.Name:
5858
+ let Name = new TextBoxOptions();
5859
+ Name.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5860
+ Name.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5861
+ Name.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5862
+ Name.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5863
+ Name.ViewType = this.RepeaterField.ControlOptions.ViewType;
5864
+ Name.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5865
+ if (this.RepeaterField.ControlOptions.maxLength)
5866
+ Name.MaxLength = this.RepeaterField.ControlOptions.maxLength;
5867
+ if (this.RepeaterField.ControlOptions.minLength)
5868
+ Name.MinLength = this.RepeaterField.ControlOptions.minLength;
5869
+ Name.Type = InputType.Text;
5870
+ Name.Value = value;
5871
+ this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Name);
5872
+ break;
5873
+ case DataType.Email:
5874
+ let Email = new TextBoxOptions();
5875
+ Email.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5876
+ Email.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5877
+ Email.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5878
+ Email.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5879
+ Email.ViewType = this.RepeaterField.ControlOptions.ViewType;
5880
+ Email.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5881
+ Email.Type = InputType.Email;
5882
+ Email.Value = value;
5883
+ this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Email);
5884
+ break;
5885
+ case DataType.Number:
5886
+ let Number = new TextBoxOptions();
5887
+ Number.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5888
+ Number.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5889
+ Number.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5890
+ Number.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5891
+ Number.ViewType = this.RepeaterField.ControlOptions.ViewType;
5892
+ Number.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5893
+ Number.Type = InputType.Number;
5894
+ let rangeNumber = new RangeNumber();
5895
+ rangeNumber.To = this.RepeaterField.ControlOptions.maxLength;
5896
+ rangeNumber.From = this.RepeaterField.ControlOptions.minLength;
5897
+ Number.NumberRange = rangeNumber;
5898
+ Number.Value = value;
5899
+ this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Number);
5900
+ break;
5901
+ ///DateTime
5902
+ case DataType.Date:
5903
+ let Date = new DatePickerOptions();
5904
+ Date.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5905
+ Date.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5906
+ Date.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5907
+ Date.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5908
+ Date.ViewType = this.RepeaterField.ControlOptions.ViewType;
5909
+ Date.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5910
+ Date.PickerType = PickerType.Calendar;
5911
+ Date.SelectMode = SelectMode.Single;
5912
+ Date.StartView = StartView.Month;
5913
+ Date.Value = value;
5914
+ this.renderComponentService.renderDynamicComponent(this.Item, DateInputComponent, this.group, Date);
5915
+ break;
5916
+ case DataType.DateTime:
5917
+ let DateTime = new DatePickerOptions();
5918
+ DateTime.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5919
+ DateTime.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5920
+ DateTime.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5921
+ DateTime.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5922
+ DateTime.ViewType = this.RepeaterField.ControlOptions.ViewType;
5923
+ DateTime.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5924
+ DateTime.PickerType = PickerType.Both;
5925
+ DateTime.SelectMode = SelectMode.Single;
5926
+ DateTime.StartView = StartView.Month;
5927
+ DateTime.Value = value;
5928
+ this.renderComponentService.renderDynamicComponent(this.Item, DateInputComponent, this.group, DateTime);
5929
+ break;
5930
+ case DataType.Time:
5931
+ let Time = new DatePickerOptions();
5932
+ Time.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5933
+ Time.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5934
+ Time.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5935
+ Time.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5936
+ Time.ViewType = this.RepeaterField.ControlOptions.ViewType;
5937
+ Time.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5938
+ Time.PickerType = PickerType.Timer;
5939
+ Time.SelectMode = SelectMode.Single;
5940
+ Time.StartView = StartView.Month;
5941
+ Time.Value = value;
5942
+ this.renderComponentService.renderDynamicComponent(this.Item, DateInputComponent, this.group, Time);
5943
+ break;
5944
+ //Dropdown
5945
+ case DataType.SingleSelect:
5946
+ let SingleSelect = new DropdownOptions();
5947
+ SingleSelect.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5948
+ SingleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5949
+ SingleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5950
+ SingleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5951
+ SingleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;
5952
+ SingleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5953
+ SingleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource;
5954
+ SingleSelect.SingleSelection = true;
5955
+ SingleSelect.ShowCheckbox = false;
5956
+ SingleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
5957
+ SingleSelect.SelectedItems = value;
5958
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, SingleSelect);
5959
+ break;
5960
+ case DataType.MulipleSelect:
5961
+ let MulipleSelect = new DropdownOptions();
5962
+ MulipleSelect.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5963
+ MulipleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5964
+ MulipleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5965
+ MulipleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5966
+ MulipleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;
5967
+ MulipleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5968
+ MulipleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource;
5969
+ MulipleSelect.SingleSelection = false;
5970
+ MulipleSelect.ShowCheckbox = false;
5971
+ MulipleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
5972
+ MulipleSelect.SelectedItems = value;
5973
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, MulipleSelect);
5974
+ break;
5975
+ case DataType.Goal:
5976
+ let Goal = new DropdownOptions();
5977
+ Goal.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5978
+ Goal.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5979
+ Goal.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5980
+ Goal.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5981
+ Goal.ViewType = this.RepeaterField.ControlOptions.ViewType;
5982
+ Goal.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5983
+ Goal.DataSource = this.RepeaterField.ControlOptions.dataSource;
5984
+ Goal.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
5985
+ Goal.ShowCheckbox = false;
5986
+ Goal.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
5987
+ Goal.SelectedItems = value;
5988
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, Goal);
5989
+ break;
5990
+ case DataType.Challenge:
5991
+ let Challenge = new DropdownOptions();
5992
+ Challenge.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5993
+ Challenge.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5994
+ Challenge.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5995
+ Challenge.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5996
+ Challenge.ViewType = this.RepeaterField.ControlOptions.ViewType;
5997
+ Challenge.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5998
+ Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource;
5999
+ Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource;
6000
+ Challenge.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
6001
+ Challenge.ShowCheckbox = false;
6002
+ Challenge.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6003
+ Challenge.SelectedItems = value;
6004
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, Challenge);
6005
+ break;
6006
+ case DataType.InnovationLab:
6007
+ let InnovationLab = new DropdownOptions();
6008
+ InnovationLab.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6009
+ InnovationLab.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6010
+ InnovationLab.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6011
+ InnovationLab.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6012
+ InnovationLab.ViewType = this.RepeaterField.ControlOptions.ViewType;
6013
+ InnovationLab.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6014
+ InnovationLab.DataSource = this.RepeaterField.ControlOptions.dataSource;
6015
+ InnovationLab.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
6016
+ InnovationLab.ShowCheckbox = false;
6017
+ InnovationLab.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6018
+ InnovationLab.SelectedItems = value;
6019
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, InnovationLab);
6020
+ break;
6021
+ case DataType.Country:
6022
+ let Country = new DropdownOptions();
6023
+ Country.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6024
+ Country.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6025
+ Country.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6026
+ Country.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6027
+ Country.ViewType = this.RepeaterField.ControlOptions.ViewType;
6028
+ Country.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6029
+ Country.DataSource = this.RepeaterField.ControlOptions.dataSource;
6030
+ Country.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
6031
+ Country.ShowCheckbox = false;
6032
+ Country.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6033
+ Country.SelectedItems = value;
6034
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, Country);
6035
+ break;
6036
+ //FileUpload
6037
+ case DataType.File:
6038
+ let File = new FileUploadOptions();
6039
+ File.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6040
+ File.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6041
+ File.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6042
+ File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6043
+ File.ViewType = this.RepeaterField.ControlOptions.ViewType;
6044
+ File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6045
+ File.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
6046
+ File.Value = value;
6047
+ this.renderComponentService.renderDynamicComponent(this.Item, FileUploadComponent, this.group, File);
6048
+ break;
6049
+ case DataType.MultiFile:
6050
+ let MultiFile = new FileUploadOptions();
6051
+ File.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6052
+ File.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6053
+ File.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6054
+ File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6055
+ File.ViewType = this.RepeaterField.ControlOptions.ViewType;
6056
+ File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6057
+ MultiFile.MaxSizeForAllFilesInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
6058
+ MultiFile.MaxNoOfFiles = this.RepeaterField.ControlOptions.maxFileCount;
6059
+ MultiFile.IsMultipleFile = true;
6060
+ MultiFile.Value = value;
6061
+ this.renderComponentService.renderDynamicComponent(this.Item, FileUploadComponent, this.group, MultiFile);
6062
+ break;
6063
+ //ImageUpload
6064
+ case DataType.Image:
6065
+ let Image = new ImageUploadOptions();
6066
+ Image.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6067
+ Image.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6068
+ Image.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6069
+ Image.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6070
+ Image.ViewType = this.RepeaterField.ControlOptions.ViewType;
6071
+ Image.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6072
+ if (this.RepeaterField.ControlOptions.maxFileSizeInMB)
6073
+ Image.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
6074
+ Image.Value = value;
6075
+ this.renderComponentService.renderDynamicComponent(this.Item, ImageUploaderComponent, this.group, Image);
6076
+ break;
6077
+ case DataType.CoverPhoto:
6078
+ let CoverPhoto = new ImageUploadOptions();
6079
+ CoverPhoto.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6080
+ CoverPhoto.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6081
+ CoverPhoto.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6082
+ CoverPhoto.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6083
+ CoverPhoto.ViewType = this.RepeaterField.ControlOptions.ViewType;
6084
+ CoverPhoto.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6085
+ if (this.RepeaterField.ControlOptions.maxFileSizeInMB)
6086
+ CoverPhoto.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
6087
+ CoverPhoto.Value = value;
6088
+ this.renderComponentService.renderDynamicComponent(this.Item, ImageUploaderComponent, this.group, CoverPhoto);
6089
+ break;
6090
+ //Mobile
6091
+ case DataType.Mobile:
6092
+ let Mobile = new PhoneOptions();
6093
+ Mobile.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6094
+ Mobile.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6095
+ Mobile.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6096
+ Mobile.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6097
+ Mobile.ViewType = this.RepeaterField.ControlOptions.ViewType;
6098
+ Mobile.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6099
+ Mobile.AllowSearch = true;
6100
+ Mobile.PhoneValidation = true;
6101
+ Mobile.SelectFirstCountry = true;
6102
+ Mobile.EnablePlaceholder = true;
6103
+ Mobile.Value = value;
6104
+ this.renderComponentService.renderDynamicComponent(this.Item, PhoneComponent, this.group, Mobile);
6105
+ break;
6106
+ //MultilineText
6107
+ case DataType.MultilineText:
6108
+ let MultilineText = new TextAreaOptions();
6109
+ MultilineText.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6110
+ MultilineText.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6111
+ MultilineText.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6112
+ MultilineText.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6113
+ MultilineText.ViewType = this.RepeaterField.ControlOptions.ViewType;
6114
+ MultilineText.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6115
+ if (this.RepeaterField.ControlOptions.maxLength)
6116
+ MultilineText.MaxLength = this.RepeaterField.ControlOptions.maxLength;
6117
+ if (this.RepeaterField.ControlOptions.minLength)
6118
+ MultilineText.MinLength = this.RepeaterField.ControlOptions.minLength;
6119
+ MultilineText.Rows = this.RepeaterField.ControlOptions.rows;
6120
+ MultilineText.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection;
6121
+ MultilineText.Value = value;
6122
+ this.renderComponentService.renderDynamicComponent(this.Item, TextAreaComponent, this.group, MultilineText);
6123
+ break;
6124
+ //HTML
6125
+ case DataType.HTML:
6126
+ let HTML = new HtmlEditorOptions();
6127
+ HTML.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6128
+ HTML.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6129
+ HTML.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6130
+ HTML.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6131
+ HTML.ViewType = this.RepeaterField.ControlOptions.ViewType;
6132
+ HTML.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6133
+ if (this.RepeaterField.ControlOptions.maxLength)
6134
+ HTML.MaxLength = this.RepeaterField.ControlOptions.maxLength;
6135
+ if (this.RepeaterField.ControlOptions.minLength)
6136
+ HTML.MinLength = this.RepeaterField.ControlOptions.minLength;
6137
+ HTML.Height = this.RepeaterField.ControlOptions.rows;
6138
+ HTML.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection;
6139
+ HTML.Value = value;
6140
+ this.renderComponentService.renderDynamicComponent(this.Item, HtmlEditorComponent, this.group, HTML);
6141
+ break;
6142
+ //Boolean
6143
+ case DataType.Boolean:
6144
+ let Boolean = new ToggleSlideOptions();
6145
+ Boolean.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6146
+ Boolean.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6147
+ Boolean.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6148
+ Boolean.ViewType = this.RepeaterField.ControlOptions.ViewType;
6149
+ Boolean.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6150
+ Boolean.Value = value;
6151
+ this.renderComponentService.renderDynamicComponent(this.Item, ToggleslideComponent, this.group, Boolean);
6152
+ break;
6153
+ //Location
6154
+ case DataType.Location:
6155
+ let Location = new MapAutoCompleteOptions();
6156
+ Location.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6157
+ Location.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6158
+ Location.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6159
+ Location.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6160
+ Location.ViewType = this.RepeaterField.ControlOptions.ViewType;
6161
+ Location.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6162
+ Location.Value = value;
6163
+ this.renderComponentService.renderDynamicComponent(this.Item, MapAutoCompleteComponent, this.group, Location);
6164
+ break;
6165
+ default:
6166
+ break;
6167
+ }
6168
+ }
6169
+ }
6170
+ }
6171
+ RepeaterFieldBuilderComponent.decorators = [
6172
+ { type: Component, args: [{
6173
+ selector: 'repeater-field-builder',
6174
+ template: "<ng-container #Item></ng-container>\r\n"
6175
+ },] }
6176
+ ];
6177
+ RepeaterFieldBuilderComponent.ctorParameters = () => [
6178
+ { type: RenderComponentService },
6179
+ { type: FormGroupDirective }
6180
+ ];
6181
+ RepeaterFieldBuilderComponent.propDecorators = {
6182
+ Item: [{ type: ViewChild, args: ["Item", { read: ViewContainerRef },] }],
6183
+ group: [{ type: Input }],
6184
+ itemNumber: [{ type: Input }],
6185
+ controlNumber: [{ type: Input }],
6186
+ RepeaterField: [{ type: Input }]
6187
+ };
6188
+
6189
+ class RepeaterItemFieldComponent {
6190
+ constructor() { }
6191
+ ngOnInit() {
6192
+ }
6193
+ }
6194
+ RepeaterItemFieldComponent.decorators = [
6195
+ { type: Component, args: [{
6196
+ selector: 'repeater-item-field',
6197
+ template: "<ng-container *ngFor=\"let template of templates ; index as i\">\r\n <ng-container *ngIf=\"i==filedIndex\" [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext] ={itemIndex:itemIndex,controlIndex:i}></ng-container>\r\n </ng-container>",
6198
+ styles: [""]
6199
+ },] }
6200
+ ];
6201
+ RepeaterItemFieldComponent.ctorParameters = () => [];
6202
+ RepeaterItemFieldComponent.propDecorators = {
6203
+ templates: [{ type: Input }],
6204
+ filedIndex: [{ type: Input }],
6205
+ itemIndex: [{ type: Input }]
6206
+ };
6207
+
5151
6208
  let options;
5152
6209
  let AppInjector;
5153
6210
  FullCalendarModule.registerPlugins([
@@ -5190,7 +6247,11 @@ BBSFControlsModule.decorators = [
5190
6247
  JwPaginationComponent,
5191
6248
  RadioButtonComponent,
5192
6249
  FormComponent,
5193
- ConfirmationModalComponent
6250
+ ConfirmationModalComponent,
6251
+ RepeaterComponent,
6252
+ RepeaterFieldBuilderComponent,
6253
+ NgTemplateNameDirective,
6254
+ RepeaterItemFieldComponent,
5194
6255
  ],
5195
6256
  imports: [
5196
6257
  CommonModule,
@@ -5245,17 +6306,12 @@ BBSFControlsModule.decorators = [
5245
6306
  ErrorMassageValidation,
5246
6307
  ControlUtility,
5247
6308
  OnPagingFiltersChangeService,
5248
- // EnvironmentService,
5249
- // AuthService,
5250
- // RequestHandlerService,
5251
- // UtilityService,
5252
6309
  TranslateService,
5253
- // BBSFTranslateService,
5254
- // ControlValidationService,
5255
6310
  FormGroupDirective,
5256
6311
  NgbModal,
5257
6312
  NgbActiveModal,
5258
6313
  DatePipe,
6314
+ RenderComponentService,
5259
6315
  { provide: OWL_DATE_TIME_LOCALE, useValue: ɵ0 },
5260
6316
  ],
5261
6317
  schemas: [
@@ -5274,7 +6330,6 @@ BBSFControlsModule.decorators = [
5274
6330
  ToggleslideComponent,
5275
6331
  HtmlEditorComponent,
5276
6332
  MultiLingualHtmlEditorComponent,
5277
- FileUploadComponent,
5278
6333
  ImageUploaderComponent,
5279
6334
  ProfileImageUploaderComponent,
5280
6335
  CalendarComponent,
@@ -5286,7 +6341,11 @@ BBSFControlsModule.decorators = [
5286
6341
  RadioButtonComponent,
5287
6342
  FormComponent,
5288
6343
  PagingComponent,
5289
- ConfirmationModalComponent
6344
+ ConfirmationModalComponent,
6345
+ RepeaterComponent,
6346
+ RepeaterFieldBuilderComponent,
6347
+ NgTemplateNameDirective,
6348
+ RepeaterItemFieldComponent,
5290
6349
  ]
5291
6350
  },] }
5292
6351
  ];
@@ -5321,75 +6380,6 @@ class CustomValidator {
5321
6380
  }
5322
6381
  }
5323
6382
 
5324
- var ForceDirection;
5325
- (function (ForceDirection) {
5326
- ForceDirection[ForceDirection["English"] = 1] = "English";
5327
- ForceDirection[ForceDirection["Arabic"] = 2] = "Arabic";
5328
- })(ForceDirection || (ForceDirection = {}));
5329
-
5330
- class DatePickerOptions {
5331
- constructor() {
5332
- /** to set type of view if DatePicker is Vertical or Horizontal */
5333
- this.ViewType = ControlLayout.Vertical;
5334
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
5335
- */
5336
- this.CustomValidation = [];
5337
- /**To set First Day Of Week to DatePicker */
5338
- this.FirstDayOfWeek = 1;
5339
- /**To set PickerType to DatePicker is Calendar or Timer Or Both */
5340
- this.PickerType = PickerType.Calendar;
5341
- /**To set StartView to DatePicker is Year or Month Or Multi-Year */
5342
- this.StartView = StartView.Month;
5343
- /**To set SelectMode to DatePicker is Single or Range */
5344
- this.SelectMode = SelectMode.Single;
5345
- this.ForceDirection = ForceDirection.English;
5346
- }
5347
- }
5348
-
5349
- class RangeNumber {
5350
- }
5351
-
5352
- var IconPosition;
5353
- (function (IconPosition) {
5354
- IconPosition[IconPosition["left"] = 1] = "left";
5355
- IconPosition[IconPosition["right"] = 2] = "right";
5356
- })(IconPosition || (IconPosition = {}));
5357
-
5358
- class TextBoxOptions {
5359
- constructor() {
5360
- /** set Range Number to Textbox with type number with From-Value and To-value*/
5361
- this.NumberRange = new RangeNumber();
5362
- /**Prevent AutoComplete of textbox*/
5363
- this.AutoComplete = "off";
5364
- /** to set type of view if textbox is Vertical or Horizontal */
5365
- this.ViewType = null;
5366
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
5367
- */
5368
- this.CustomValidation = [];
5369
- /** to set Direction of textbox if textbox is Arabic or English */
5370
- this.ForceDirection = null;
5371
- /** Set Type of TextBox ("text","password","email","number") */
5372
- this.Type = InputType.Text;
5373
- this.IconPosition = IconPosition.left;
5374
- this.NoMargin = false;
5375
- this.ValidationRules = [];
5376
- }
5377
- }
5378
-
5379
- class FileUploadOptions {
5380
- constructor() {
5381
- /** Ability to set FileInput required */
5382
- this.IsMultipleFile = false;
5383
- /** Sets boolean Value to Show IsDropZone Or Not */
5384
- this.IsDropZone = false;
5385
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
5386
- */
5387
- this.CustomValidation = [];
5388
- /** to set type of view if textbox is Vertical or Horizontal */
5389
- this.ViewType = null;
5390
- }
5391
- }
5392
-
5393
6383
  class MultiLingualTextBoxOptions {
5394
6384
  constructor() {
5395
6385
  /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
@@ -5411,18 +6401,6 @@ class MultiLingualTextBoxOptions {
5411
6401
  class Attribute {
5412
6402
  }
5413
6403
 
5414
- class TextAreaOptions {
5415
- constructor() {
5416
- /** to set type of view if TextArea is Vertical or Horizontal */
5417
- this.ViewType = null;
5418
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
5419
- */
5420
- this.CustomValidation = [];
5421
- /** to set Direction of TextArea if TextArea is Arabic or English */
5422
- this.ForceDirection = ForceDirection.English;
5423
- }
5424
- }
5425
-
5426
6404
  class MultiLingualTextAreaOptions {
5427
6405
  constructor() {
5428
6406
  /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
@@ -5453,60 +6431,6 @@ class CheckBoxOptions {
5453
6431
  class DropdownListItem {
5454
6432
  }
5455
6433
 
5456
- class DropdownOptions {
5457
- constructor() {
5458
- /** Disable Bootstrap DropdownList */
5459
- this.DisableBootstrapSelect = false;
5460
- /** to set type of view if DropdownList is Vertical or Horizontal */
5461
- this.ViewType = null;
5462
- /** To Set Custom Validation*/
5463
- this.CustomValidation = [];
5464
- /** Set key for item in DropdownList */
5465
- this.ItemTempletkey = "key";
5466
- /** Set value for item in DropdownList */
5467
- this.ItemTempletvalue = "value";
5468
- this.ForceDirection = ForceDirection.English;
5469
- }
5470
- }
5471
-
5472
- class PhoneOptions {
5473
- constructor() {
5474
- /**
5475
- * Represent Css classes to Phonebox
5476
- */
5477
- this.ExtraClasses = "form-control bnsights-control";
5478
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
5479
- */
5480
- this.CustomValidation = [];
5481
- /**Set List Of Countries As Preferred Countries*/
5482
- this.PreferredCountries = [];
5483
- /** to set type of view if Phonebox is Vertical or Horizontal */
5484
- this.ViewType = null;
5485
- this.ForceDirection = ForceDirection.English;
5486
- }
5487
- }
5488
-
5489
- class ToggleSlideOptions {
5490
- constructor() {
5491
- this.ViewType = null;
5492
- this.ForceDirection = ForceDirection.English;
5493
- }
5494
- }
5495
-
5496
- class HtmlEditorOptions {
5497
- constructor() {
5498
- /** to set type of view if textbox is Vertical or Horizontal */
5499
- this.ViewType = null;
5500
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
5501
- */
5502
- this.CustomValidation = [];
5503
- /** to set Direction of HtmlEditor if HtmlEditor is Arabic or English */
5504
- this.ForceDirection = ForceDirection.English;
5505
- /** Set Height For */
5506
- this.Height = 150;
5507
- }
5508
- }
5509
-
5510
6434
  class MultiLingualHtmlEditorOptions {
5511
6435
  constructor() {
5512
6436
  /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
@@ -5523,32 +6447,6 @@ class MultiLingualHtmlEditorOptions {
5523
6447
  }
5524
6448
  }
5525
6449
 
5526
- var ImageType;
5527
- (function (ImageType) {
5528
- ImageType["ImageTypes"] = "image/png,image/bmp,image/jpeg";
5529
- ImageType["PNG"] = "image/png";
5530
- ImageType["JPG"] = "image/jpeg";
5531
- ImageType["JPEG"] = "image/jpeg";
5532
- ImageType["SVG"] = "image/svg+xml";
5533
- ImageType["None"] = "";
5534
- })(ImageType || (ImageType = {}));
5535
-
5536
- class ImageUploadOptions {
5537
- constructor() {
5538
- /** Allow to Upload Multiple File */
5539
- this.IsMultiple = false;
5540
- /** Allow to Use Drop Zone */
5541
- this.AllowDropZone = false;
5542
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
5543
- */
5544
- this.CustomValidation = [];
5545
- /** to set type of view if FileInput is Vertical or Horizontal */
5546
- this.ViewType = null;
5547
- /** Set List of Custom Attribute to FileInput */
5548
- this.FileUploadAcceptsTypes = [ImageType.ImageTypes];
5549
- }
5550
- }
5551
-
5552
6450
  class ProfileImageUploadOptions {
5553
6451
  constructor() {
5554
6452
  /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
@@ -5609,16 +6507,6 @@ class CalendarOptions {
5609
6507
  class CalendarEventDTO {
5610
6508
  }
5611
6509
 
5612
- class MapAutoCompleteOptions {
5613
- constructor() {
5614
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
5615
- */
5616
- this.CustomValidation = [];
5617
- /** to set type of view if MapAutoComplete is Vertical or Horizontal */
5618
- this.ViewType = null;
5619
- }
5620
- }
5621
-
5622
6510
  class AutocompleteOptions {
5623
6511
  constructor() {
5624
6512
  /**
@@ -5816,6 +6704,19 @@ class ConfirmationModalOptions {
5816
6704
  }
5817
6705
  }
5818
6706
 
6707
+ class RepeaterField {
6708
+ }
6709
+
6710
+ class RepeaterOptions {
6711
+ constructor() {
6712
+ this.MinRequiredItems = 1;
6713
+ this.AddButtonText = "Add";
6714
+ this.DeleteButtonText = "Delete";
6715
+ this.RepeaterValue = [];
6716
+ this.RepeaterStructure = [];
6717
+ }
6718
+ }
6719
+
5819
6720
  var MenuListType;
5820
6721
  (function (MenuListType) {
5821
6722
  MenuListType[MenuListType["AdminType"] = 1] = "AdminType";
@@ -6139,5 +7040,5 @@ var FileType;
6139
7040
  * Generated bundle index. Do not edit.
6140
7041
  */
6141
7042
 
6142
- export { AppInjector, Attribute, AutocompleteDTO, AutocompleteOptions, BBSFControlsModule, CalendarEventDTO, CalendarOptions, CalendarView, CancelDTO, CheckBoxOptions, ConfirmationModalOptions, ControlLayout, ControlUtility, Country, CustomValidation, CustomValidator, DatePickerOptions, DropdownListItem, DropdownOptions, EditPersonalImage, EnglishArabicDTO, ErrorMassageValidation, FileType, FileUploadModel, FileUploadOptions, FilterItem, FilterType, FontSize, ForceDirection, FormOptions, GlobalSettings, HtmlEditorOptions, IconPosition, ImageType, ImageUploadOptions, InputType, Insert, LanguageMode, MapAutoCompleteOptions, MapAutocompleteDTO, MenuListType, Misc, MultiLingualHtmlEditorOptions, MultiLingualTextAreaOptions, MultiLingualTextBoxOptions, MultipleFileUploadModel, OnPagingFiltersChangeService, PagingActionMode, PagingDTO, PagingOptions, Para, PhoneOptions, PickerType, ProfileImageUploadOptions, ProfilePictureDTO, RadioButtonItem, RadioButtonOptions, RangeNumber, SaveDTO, SelectMode, StartView, Style, StyleConfirmationMode, TagsInputDTO, TagsInputOptions, TextAreaOptions, TextBoxOptions, ToggleSlideOptions, UploadPersonalImage, environment, options, ɵ0, DateInputComponent as ɵa, FileUploadComponent as ɵb, MultiLingualTextBoxComponent as ɵc, TextboxComponent as ɵd, TextAreaComponent as ɵe, MultiLingualTextAreaComponent as ɵf, CheckBoxComponent as ɵg, DropdownListComponent as ɵh, PhoneComponent as ɵi, ToggleslideComponent as ɵj, HtmlEditorComponent as ɵk, MultiLingualHtmlEditorComponent as ɵl, ImageUploaderComponent as ɵm, ProfileImageUploaderComponent as ɵn, CalendarComponent as ɵo, MapAutoCompleteComponent as ɵp, AutocompleteTextBoxComponent as ɵq, TagsInputComponent as ɵr, PagingComponent as ɵs, JwPaginationComponent as ɵt, RadioButtonComponent as ɵu, FormComponent as ɵv, ConfirmationModalComponent as ɵw };
7043
+ export { AppInjector, Attribute, AutocompleteDTO, AutocompleteOptions, AutocompleteTextBoxComponent, BBSFControlsModule, CalendarComponent, CalendarEventDTO, CalendarOptions, CalendarView, CancelDTO, CheckBoxComponent, CheckBoxOptions, ConfirmationModalComponent, ConfirmationModalOptions, ControlLayout, ControlUtility, Country, CustomValidation, CustomValidator, DataType, DateInputComponent, DatePickerOptions, DropdownListComponent, DropdownListItem, DropdownOptions, EditPersonalImage, EnglishArabicDTO, ErrorMassageValidation, FileType, FileUploadComponent, FileUploadModel, FileUploadOptions, FilterItem, FilterType, FontSize, ForceDirection, FormComponent, FormOptions, GlobalSettings, HtmlEditorComponent, HtmlEditorOptions, IconPosition, ImageType, ImageUploadOptions, ImageUploaderComponent, InputType, Insert, JwPaginationComponent, LanguageMode, LanguageType, MapAutoCompleteComponent, MapAutoCompleteOptions, MapAutocompleteDTO, MenuListType, Misc, MultiLingualHtmlEditorComponent, MultiLingualHtmlEditorOptions, MultiLingualTextAreaComponent, MultiLingualTextAreaOptions, MultiLingualTextBoxComponent, MultiLingualTextBoxOptions, MultipleFileUploadModel, NgTemplateNameDirective, OnPagingFiltersChangeService, PagingActionMode, PagingComponent, PagingDTO, PagingOptions, Para, PermissionSets, PhoneComponent, PhoneOptions, PickerType, ProfileImageUploadOptions, ProfileImageUploaderComponent, ProfilePictureDTO, PropertyLocation, RadioButtonComponent, RadioButtonItem, RadioButtonOptions, RangeNumber, RenderComponentService, RepeaterComponent, RepeaterField, RepeaterFieldBuilderComponent, RepeaterItemFieldComponent, RepeaterOptions, SaveDTO, SelectMode, StartView, Style, StyleConfirmationMode, TagsInputComponent, TagsInputDTO, TagsInputOptions, TextAreaComponent, TextAreaOptions, TextBoxOptions, TextboxComponent, ToggleSlideOptions, ToggleslideComponent, UploadPersonalImage, environment, options, ɵ0 };
6143
7044
  //# sourceMappingURL=bnsights-bbsf-controls.js.map