@bnsights/bbsf-controls 1.0.28 → 1.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5176,16 +5176,23 @@ class RepeaterComponent {
5176
5176
  constructor() {
5177
5177
  this.templateRefs = [];
5178
5178
  this.items = [];
5179
+ this.originalItems = [];
5179
5180
  this.repeaterContext = { index: 0, delete: null, elements: null };
5180
5181
  }
5181
5182
  ngOnInit() {
5182
5183
  this.currentTemplate = this.initialTemplate;
5183
5184
  this.repeaterGroup = new FormGroup({});
5184
5185
  this.group.addControl(this.options.Name, this.repeaterGroup);
5185
- this.group.get(this.options.Name).setValue(this.options.RepeaterValue);
5186
- for (let index = 0; index < this.options.MinRequiredItems; index++) {
5187
- this.items.push(index);
5186
+ if (this.options.RepeaterValue.length > 0) {
5187
+ this.originalItems = this.options.RepeaterValue;
5188
+ for (let index = 0; index < this.options.RepeaterValue.length; index++) {
5189
+ this.items.push(index + 1);
5190
+ }
5188
5191
  }
5192
+ else
5193
+ for (let index = 0; index < this.options.MinRequiredItems; index++) {
5194
+ this.items.push(index);
5195
+ }
5189
5196
  this.repeaterGroup.valueChanges.subscribe((res) => {
5190
5197
  let result = [];
5191
5198
  let rowNumber = [];
@@ -5249,11 +5256,10 @@ class RepeaterComponent {
5249
5256
  }
5250
5257
  }
5251
5258
  }
5252
- let item = this.items[Index];
5253
- this.items = this.items.filter((res) => res != item);
5259
+ this.items = this.items.filter((res) => res != this.items[Index]);
5254
5260
  }
5255
- AddItem() {
5256
- this.items.push(this.items.length + 1);
5261
+ addItem() {
5262
+ this.items.push(this.items[this.items.length - 1] + 1);
5257
5263
  }
5258
5264
  ngAfterViewInit() {
5259
5265
  let templateRefs = this._templates["_results"].map((item) => item["template"]);
@@ -5268,7 +5274,7 @@ class RepeaterComponent {
5268
5274
  RepeaterComponent.decorators = [
5269
5275
  { type: Component, args: [{
5270
5276
  selector: 'BBSF-repeater',
5271
- 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> -->",
5277
+ template: "<ng-container *ngFor='let item of items ; index as i'>\r\n {{setCurrentIndex(i)}}\r\n <ng-container *ngTemplateOutlet=\"currentTemplate; context: repeaterContext\">\r\n </ng-container>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngTemplateOutlet=\"add\">\r\n</ng-container>\r\n\r\n<ng-template *ngFor=\"let RepeaterField of options.RepeaterStructure ; index as i\" name=\"R{{i}}\" let-Index=\"itemIndex\"\r\n let-control=\"controlIndex\">\r\n <repeater-field-builder *ngIf=\"RepeaterField\" [RepeaterField]=\"RepeaterField\" [itemNumber]=\"Index\"\r\n [itemsValue]=\"originalItems\" [controlNumber]=\"control\" [group]=\"repeaterGroup\">\r\n </repeater-field-builder>\r\n</ng-template>\r\n\r\n<ng-template #delete let-item=\"itemIndex\">\r\n <button class=\"{{options.DeleteButtonExtraClasses}}\" type=\"button\" (click)=\"deleteItem(item)\"\r\n [disabled]=\"items.length ==options.MinRequiredItems&&options.IsRequired\"> <span\r\n [innerHTML]=\"options.DeleteButtonText\"></span></button>\r\n</ng-template>\r\n\r\n<ng-template #add>\r\n <button class=\"{{options.AddButtonExtraClasses}}\" type=\"button\" (click)=\"addItem()\"><span\r\n [innerHTML]=\"options.AddButtonText\"></span></button>\r\n</ng-template>\r\n\r\n\r\n\r\n\r\n\r\n<!-- <ng-template adHost></ng-template> -->\r\n",
5272
5278
  styles: [""]
5273
5279
  },] }
5274
5280
  ];
@@ -5519,11 +5525,23 @@ class RepeaterFieldBuilderComponent {
5519
5525
  constructor(renderComponentService, TextControlHost) {
5520
5526
  this.renderComponentService = renderComponentService;
5521
5527
  this.TextControlHost = TextControlHost;
5528
+ this.itemsValue = [];
5529
+ this.itemValue = null;
5522
5530
  }
5523
5531
  ngOnInit() {
5524
5532
  }
5525
5533
  ngAfterViewInit() {
5526
5534
  setTimeout(() => {
5535
+ if (this.itemsValue.length > 0)
5536
+ this.itemValue = this.itemsValue[this.itemNumber];
5537
+ if (this.itemValue) {
5538
+ for (const key in this.itemValue) {
5539
+ if (Object.prototype.hasOwnProperty.call(this.itemValue, key) && key == this.RepeaterField.ControlOptions.Name) {
5540
+ const element = this.itemValue[key];
5541
+ this.value = element;
5542
+ }
5543
+ }
5544
+ }
5527
5545
  this.Item.clear();
5528
5546
  switch (this.RepeaterField.ControlType) {
5529
5547
  ///TextBox
@@ -5540,6 +5558,7 @@ class RepeaterFieldBuilderComponent {
5540
5558
  Text.MaxLength = this.RepeaterField.ControlOptions.maxLength;
5541
5559
  if (this.RepeaterField.ControlOptions.minLength)
5542
5560
  Text.MinLength = this.RepeaterField.ControlOptions.minLength;
5561
+ Text.Value = this.value;
5543
5562
  this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Text);
5544
5563
  break;
5545
5564
  case DataType.Name:
@@ -5555,6 +5574,7 @@ class RepeaterFieldBuilderComponent {
5555
5574
  if (this.RepeaterField.ControlOptions.minLength)
5556
5575
  Name.MinLength = this.RepeaterField.ControlOptions.minLength;
5557
5576
  Name.Type = InputType.Text;
5577
+ Name.Value = this.value;
5558
5578
  this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Name);
5559
5579
  break;
5560
5580
  case DataType.Email:
@@ -5566,6 +5586,7 @@ class RepeaterFieldBuilderComponent {
5566
5586
  Email.ViewType = this.RepeaterField.ControlOptions.ViewType;
5567
5587
  Email.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5568
5588
  Email.Type = InputType.Email;
5589
+ Email.Value = this.value;
5569
5590
  this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Email);
5570
5591
  break;
5571
5592
  case DataType.Number:
@@ -5581,6 +5602,7 @@ class RepeaterFieldBuilderComponent {
5581
5602
  rangeNumber.To = this.RepeaterField.ControlOptions.maxLength;
5582
5603
  rangeNumber.From = this.RepeaterField.ControlOptions.minLength;
5583
5604
  Number.NumberRange = rangeNumber;
5605
+ Number.Value = this.value;
5584
5606
  this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Number);
5585
5607
  break;
5586
5608
  ///DateTime
@@ -5595,6 +5617,7 @@ class RepeaterFieldBuilderComponent {
5595
5617
  Date.PickerType = PickerType.Calendar;
5596
5618
  Date.SelectMode = SelectMode.Single;
5597
5619
  Date.StartView = StartView.Month;
5620
+ Date.Value = this.value;
5598
5621
  this.renderComponentService.renderDynamicComponent(this.Item, DateInputComponent, this.group, Date);
5599
5622
  break;
5600
5623
  case DataType.DateTime:
@@ -5608,6 +5631,7 @@ class RepeaterFieldBuilderComponent {
5608
5631
  DateTime.PickerType = PickerType.Both;
5609
5632
  DateTime.SelectMode = SelectMode.Single;
5610
5633
  DateTime.StartView = StartView.Month;
5634
+ DateTime.Value = this.value;
5611
5635
  this.renderComponentService.renderDynamicComponent(this.Item, DateInputComponent, this.group, DateTime);
5612
5636
  break;
5613
5637
  case DataType.Time:
@@ -5621,6 +5645,7 @@ class RepeaterFieldBuilderComponent {
5621
5645
  Time.PickerType = PickerType.Timer;
5622
5646
  Time.SelectMode = SelectMode.Single;
5623
5647
  Time.StartView = StartView.Month;
5648
+ Time.Value = this.value;
5624
5649
  this.renderComponentService.renderDynamicComponent(this.Item, DateInputComponent, this.group, Time);
5625
5650
  break;
5626
5651
  //Dropdown
@@ -5636,6 +5661,7 @@ class RepeaterFieldBuilderComponent {
5636
5661
  SingleSelect.SingleSelection = true;
5637
5662
  SingleSelect.ShowCheckbox = false;
5638
5663
  SingleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
5664
+ SingleSelect.SelectedItems = this.value;
5639
5665
  this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, SingleSelect);
5640
5666
  break;
5641
5667
  case DataType.MulipleSelect:
@@ -5650,6 +5676,7 @@ class RepeaterFieldBuilderComponent {
5650
5676
  MulipleSelect.SingleSelection = false;
5651
5677
  MulipleSelect.ShowCheckbox = false;
5652
5678
  MulipleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
5679
+ MulipleSelect.SelectedItems = this.value;
5653
5680
  this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, MulipleSelect);
5654
5681
  break;
5655
5682
  case DataType.Goal:
@@ -5664,6 +5691,7 @@ class RepeaterFieldBuilderComponent {
5664
5691
  Goal.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
5665
5692
  Goal.ShowCheckbox = false;
5666
5693
  Goal.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
5694
+ Goal.SelectedItems = this.value;
5667
5695
  this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, Goal);
5668
5696
  break;
5669
5697
  case DataType.Challenge:
@@ -5679,6 +5707,7 @@ class RepeaterFieldBuilderComponent {
5679
5707
  Challenge.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
5680
5708
  Challenge.ShowCheckbox = false;
5681
5709
  Challenge.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
5710
+ Challenge.SelectedItems = this.value;
5682
5711
  this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, Challenge);
5683
5712
  break;
5684
5713
  case DataType.InnovationLab:
@@ -5693,6 +5722,7 @@ class RepeaterFieldBuilderComponent {
5693
5722
  InnovationLab.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
5694
5723
  InnovationLab.ShowCheckbox = false;
5695
5724
  InnovationLab.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
5725
+ InnovationLab.SelectedItems = this.value;
5696
5726
  this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, InnovationLab);
5697
5727
  break;
5698
5728
  case DataType.Country:
@@ -5707,6 +5737,7 @@ class RepeaterFieldBuilderComponent {
5707
5737
  Country.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
5708
5738
  Country.ShowCheckbox = false;
5709
5739
  Country.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
5740
+ Country.SelectedItems = this.value;
5710
5741
  this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, Country);
5711
5742
  break;
5712
5743
  //FileUpload
@@ -5719,6 +5750,7 @@ class RepeaterFieldBuilderComponent {
5719
5750
  File.ViewType = this.RepeaterField.ControlOptions.ViewType;
5720
5751
  File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5721
5752
  File.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
5753
+ File.Value = this.value;
5722
5754
  this.renderComponentService.renderDynamicComponent(this.Item, FileUploadComponent, this.group, File);
5723
5755
  break;
5724
5756
  case DataType.MultiFile:
@@ -5732,6 +5764,7 @@ class RepeaterFieldBuilderComponent {
5732
5764
  MultiFile.MaxSizeForAllFilesInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
5733
5765
  MultiFile.MaxNoOfFiles = this.RepeaterField.ControlOptions.maxFileCount;
5734
5766
  MultiFile.IsMultipleFile = true;
5767
+ MultiFile.Value = this.value;
5735
5768
  this.renderComponentService.renderDynamicComponent(this.Item, FileUploadComponent, this.group, MultiFile);
5736
5769
  break;
5737
5770
  //ImageUpload
@@ -5745,6 +5778,7 @@ class RepeaterFieldBuilderComponent {
5745
5778
  Image.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5746
5779
  if (this.RepeaterField.ControlOptions.maxFileSizeInMB)
5747
5780
  Image.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
5781
+ Image.Value = this.value;
5748
5782
  this.renderComponentService.renderDynamicComponent(this.Item, ImageUploaderComponent, this.group, Image);
5749
5783
  break;
5750
5784
  case DataType.CoverPhoto:
@@ -5757,6 +5791,7 @@ class RepeaterFieldBuilderComponent {
5757
5791
  CoverPhoto.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5758
5792
  if (this.RepeaterField.ControlOptions.maxFileSizeInMB)
5759
5793
  CoverPhoto.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
5794
+ CoverPhoto.Value = this.value;
5760
5795
  this.renderComponentService.renderDynamicComponent(this.Item, ImageUploaderComponent, this.group, CoverPhoto);
5761
5796
  break;
5762
5797
  //Mobile
@@ -5772,6 +5807,7 @@ class RepeaterFieldBuilderComponent {
5772
5807
  Mobile.PhoneValidation = true;
5773
5808
  Mobile.SelectFirstCountry = true;
5774
5809
  Mobile.EnablePlaceholder = true;
5810
+ Mobile.Value = this.value;
5775
5811
  this.renderComponentService.renderDynamicComponent(this.Item, PhoneComponent, this.group, Mobile);
5776
5812
  break;
5777
5813
  //MultilineText
@@ -5789,6 +5825,7 @@ class RepeaterFieldBuilderComponent {
5789
5825
  MultilineText.MinLength = this.RepeaterField.ControlOptions.minLength;
5790
5826
  MultilineText.Rows = this.RepeaterField.ControlOptions.rows;
5791
5827
  MultilineText.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection;
5828
+ MultilineText.Value = this.value;
5792
5829
  this.renderComponentService.renderDynamicComponent(this.Item, TextAreaComponent, this.group, MultilineText);
5793
5830
  break;
5794
5831
  //HTML
@@ -5806,6 +5843,7 @@ class RepeaterFieldBuilderComponent {
5806
5843
  HTML.MinLength = this.RepeaterField.ControlOptions.minLength;
5807
5844
  HTML.Height = this.RepeaterField.ControlOptions.rows;
5808
5845
  HTML.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection;
5846
+ HTML.Value = this.value;
5809
5847
  this.renderComponentService.renderDynamicComponent(this.Item, HtmlEditorComponent, this.group, HTML);
5810
5848
  break;
5811
5849
  //Boolean
@@ -5815,6 +5853,7 @@ class RepeaterFieldBuilderComponent {
5815
5853
  Boolean.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5816
5854
  Boolean.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5817
5855
  Boolean.ViewType = this.RepeaterField.ControlOptions.ViewType;
5856
+ Boolean.Value = this.value;
5818
5857
  Boolean.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5819
5858
  this.renderComponentService.renderDynamicComponent(this.Item, ToggleslideComponent, this.group, Boolean);
5820
5859
  break;
@@ -5826,6 +5865,7 @@ class RepeaterFieldBuilderComponent {
5826
5865
  Location.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5827
5866
  Location.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5828
5867
  Location.ViewType = this.RepeaterField.ControlOptions.ViewType;
5868
+ Location.Value = this.value;
5829
5869
  Location.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5830
5870
  this.renderComponentService.renderDynamicComponent(this.Item, MapAutoCompleteComponent, this.group, Location);
5831
5871
  break;
@@ -5835,341 +5875,342 @@ class RepeaterFieldBuilderComponent {
5835
5875
  }, 0);
5836
5876
  }
5837
5877
  ngOnChanges(changes) {
5838
- if (changes.itemNumber.previousValue) {
5839
- let name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.previousValue.toString() + "." + this.controlNumber.toString();
5840
- let value = this.group.controls[name].value;
5841
- this.Item.clear();
5842
- this.group.removeControl(name);
5843
- switch (this.RepeaterField.ControlType) {
5844
- ///TextBox
5845
- case DataType.Text:
5846
- let Text = new TextBoxOptions();
5847
- Text.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5848
- Text.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5849
- Text.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5850
- Text.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5851
- Text.ViewType = this.RepeaterField.ControlOptions.ViewType;
5852
- Text.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5853
- Text.Type = InputType.Text;
5854
- if (this.RepeaterField.ControlOptions.maxLength)
5855
- Text.MaxLength = this.RepeaterField.ControlOptions.maxLength;
5856
- if (this.RepeaterField.ControlOptions.minLength)
5857
- Text.MinLength = this.RepeaterField.ControlOptions.minLength;
5858
- Text.Value = value;
5859
- this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Text);
5860
- break;
5861
- case DataType.Name:
5862
- let Name = new TextBoxOptions();
5863
- Name.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5864
- Name.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5865
- Name.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5866
- Name.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5867
- Name.ViewType = this.RepeaterField.ControlOptions.ViewType;
5868
- Name.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5869
- if (this.RepeaterField.ControlOptions.maxLength)
5870
- Name.MaxLength = this.RepeaterField.ControlOptions.maxLength;
5871
- if (this.RepeaterField.ControlOptions.minLength)
5872
- Name.MinLength = this.RepeaterField.ControlOptions.minLength;
5873
- Name.Type = InputType.Text;
5874
- Name.Value = value;
5875
- this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Name);
5876
- break;
5877
- case DataType.Email:
5878
- let Email = new TextBoxOptions();
5879
- Email.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5880
- Email.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5881
- Email.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5882
- Email.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5883
- Email.ViewType = this.RepeaterField.ControlOptions.ViewType;
5884
- Email.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5885
- Email.Type = InputType.Email;
5886
- Email.Value = value;
5887
- this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Email);
5888
- break;
5889
- case DataType.Number:
5890
- let Number = new TextBoxOptions();
5891
- Number.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5892
- Number.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5893
- Number.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5894
- Number.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5895
- Number.ViewType = this.RepeaterField.ControlOptions.ViewType;
5896
- Number.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5897
- Number.Type = InputType.Number;
5898
- let rangeNumber = new RangeNumber();
5899
- rangeNumber.To = this.RepeaterField.ControlOptions.maxLength;
5900
- rangeNumber.From = this.RepeaterField.ControlOptions.minLength;
5901
- Number.NumberRange = rangeNumber;
5902
- Number.Value = value;
5903
- this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Number);
5904
- break;
5905
- ///DateTime
5906
- case DataType.Date:
5907
- let Date = new DatePickerOptions();
5908
- Date.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5909
- Date.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5910
- Date.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5911
- Date.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5912
- Date.ViewType = this.RepeaterField.ControlOptions.ViewType;
5913
- Date.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5914
- Date.PickerType = PickerType.Calendar;
5915
- Date.SelectMode = SelectMode.Single;
5916
- Date.StartView = StartView.Month;
5917
- Date.Value = value;
5918
- this.renderComponentService.renderDynamicComponent(this.Item, DateInputComponent, this.group, Date);
5919
- break;
5920
- case DataType.DateTime:
5921
- let DateTime = new DatePickerOptions();
5922
- DateTime.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5923
- DateTime.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5924
- DateTime.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5925
- DateTime.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5926
- DateTime.ViewType = this.RepeaterField.ControlOptions.ViewType;
5927
- DateTime.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5928
- DateTime.PickerType = PickerType.Both;
5929
- DateTime.SelectMode = SelectMode.Single;
5930
- DateTime.StartView = StartView.Month;
5931
- DateTime.Value = value;
5932
- this.renderComponentService.renderDynamicComponent(this.Item, DateInputComponent, this.group, DateTime);
5933
- break;
5934
- case DataType.Time:
5935
- let Time = new DatePickerOptions();
5936
- Time.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5937
- Time.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5938
- Time.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5939
- Time.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5940
- Time.ViewType = this.RepeaterField.ControlOptions.ViewType;
5941
- Time.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5942
- Time.PickerType = PickerType.Timer;
5943
- Time.SelectMode = SelectMode.Single;
5944
- Time.StartView = StartView.Month;
5945
- Time.Value = value;
5946
- this.renderComponentService.renderDynamicComponent(this.Item, DateInputComponent, this.group, Time);
5947
- break;
5948
- //Dropdown
5949
- case DataType.SingleSelect:
5950
- let SingleSelect = new DropdownOptions();
5951
- SingleSelect.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5952
- SingleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5953
- SingleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5954
- SingleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5955
- SingleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;
5956
- SingleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5957
- SingleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource;
5958
- SingleSelect.SingleSelection = true;
5959
- SingleSelect.ShowCheckbox = false;
5960
- SingleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
5961
- SingleSelect.SelectedItems = value;
5962
- this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, SingleSelect);
5963
- break;
5964
- case DataType.MulipleSelect:
5965
- let MulipleSelect = new DropdownOptions();
5966
- MulipleSelect.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5967
- MulipleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5968
- MulipleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5969
- MulipleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5970
- MulipleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;
5971
- MulipleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5972
- MulipleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource;
5973
- MulipleSelect.SingleSelection = false;
5974
- MulipleSelect.ShowCheckbox = false;
5975
- MulipleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
5976
- MulipleSelect.SelectedItems = value;
5977
- this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, MulipleSelect);
5978
- break;
5979
- case DataType.Goal:
5980
- let Goal = new DropdownOptions();
5981
- Goal.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5982
- Goal.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5983
- Goal.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5984
- Goal.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5985
- Goal.ViewType = this.RepeaterField.ControlOptions.ViewType;
5986
- Goal.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5987
- Goal.DataSource = this.RepeaterField.ControlOptions.dataSource;
5988
- Goal.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
5989
- Goal.ShowCheckbox = false;
5990
- Goal.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
5991
- Goal.SelectedItems = value;
5992
- this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, Goal);
5993
- break;
5994
- case DataType.Challenge:
5995
- let Challenge = new DropdownOptions();
5996
- Challenge.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5997
- Challenge.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5998
- Challenge.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5999
- Challenge.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6000
- Challenge.ViewType = this.RepeaterField.ControlOptions.ViewType;
6001
- Challenge.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6002
- Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource;
6003
- Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource;
6004
- Challenge.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
6005
- Challenge.ShowCheckbox = false;
6006
- Challenge.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6007
- Challenge.SelectedItems = value;
6008
- this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, Challenge);
6009
- break;
6010
- case DataType.InnovationLab:
6011
- let InnovationLab = new DropdownOptions();
6012
- InnovationLab.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6013
- InnovationLab.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6014
- InnovationLab.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6015
- InnovationLab.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6016
- InnovationLab.ViewType = this.RepeaterField.ControlOptions.ViewType;
6017
- InnovationLab.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6018
- InnovationLab.DataSource = this.RepeaterField.ControlOptions.dataSource;
6019
- InnovationLab.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
6020
- InnovationLab.ShowCheckbox = false;
6021
- InnovationLab.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6022
- InnovationLab.SelectedItems = value;
6023
- this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, InnovationLab);
6024
- break;
6025
- case DataType.Country:
6026
- let Country = new DropdownOptions();
6027
- Country.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6028
- Country.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6029
- Country.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6030
- Country.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6031
- Country.ViewType = this.RepeaterField.ControlOptions.ViewType;
6032
- Country.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6033
- Country.DataSource = this.RepeaterField.ControlOptions.dataSource;
6034
- Country.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
6035
- Country.ShowCheckbox = false;
6036
- Country.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6037
- Country.SelectedItems = value;
6038
- this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, Country);
6039
- break;
6040
- //FileUpload
6041
- case DataType.File:
6042
- let File = new FileUploadOptions();
6043
- File.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6044
- File.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6045
- File.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6046
- File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6047
- File.ViewType = this.RepeaterField.ControlOptions.ViewType;
6048
- File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6049
- File.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
6050
- File.Value = value;
6051
- this.renderComponentService.renderDynamicComponent(this.Item, FileUploadComponent, this.group, File);
6052
- break;
6053
- case DataType.MultiFile:
6054
- let MultiFile = new FileUploadOptions();
6055
- File.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6056
- File.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6057
- File.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6058
- File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6059
- File.ViewType = this.RepeaterField.ControlOptions.ViewType;
6060
- File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6061
- MultiFile.MaxSizeForAllFilesInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
6062
- MultiFile.MaxNoOfFiles = this.RepeaterField.ControlOptions.maxFileCount;
6063
- MultiFile.IsMultipleFile = true;
6064
- MultiFile.Value = value;
6065
- this.renderComponentService.renderDynamicComponent(this.Item, FileUploadComponent, this.group, MultiFile);
6066
- break;
6067
- //ImageUpload
6068
- case DataType.Image:
6069
- let Image = new ImageUploadOptions();
6070
- Image.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6071
- Image.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6072
- Image.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6073
- Image.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6074
- Image.ViewType = this.RepeaterField.ControlOptions.ViewType;
6075
- Image.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6076
- if (this.RepeaterField.ControlOptions.maxFileSizeInMB)
6077
- Image.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
6078
- Image.Value = value;
6079
- this.renderComponentService.renderDynamicComponent(this.Item, ImageUploaderComponent, this.group, Image);
6080
- break;
6081
- case DataType.CoverPhoto:
6082
- let CoverPhoto = new ImageUploadOptions();
6083
- CoverPhoto.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6084
- CoverPhoto.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6085
- CoverPhoto.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6086
- CoverPhoto.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6087
- CoverPhoto.ViewType = this.RepeaterField.ControlOptions.ViewType;
6088
- CoverPhoto.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6089
- if (this.RepeaterField.ControlOptions.maxFileSizeInMB)
6090
- CoverPhoto.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
6091
- CoverPhoto.Value = value;
6092
- this.renderComponentService.renderDynamicComponent(this.Item, ImageUploaderComponent, this.group, CoverPhoto);
6093
- break;
6094
- //Mobile
6095
- case DataType.Mobile:
6096
- let Mobile = new PhoneOptions();
6097
- Mobile.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6098
- Mobile.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6099
- Mobile.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6100
- Mobile.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6101
- Mobile.ViewType = this.RepeaterField.ControlOptions.ViewType;
6102
- Mobile.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6103
- Mobile.AllowSearch = true;
6104
- Mobile.PhoneValidation = true;
6105
- Mobile.SelectFirstCountry = true;
6106
- Mobile.EnablePlaceholder = true;
6107
- Mobile.Value = value;
6108
- this.renderComponentService.renderDynamicComponent(this.Item, PhoneComponent, this.group, Mobile);
6109
- break;
6110
- //MultilineText
6111
- case DataType.MultilineText:
6112
- let MultilineText = new TextAreaOptions();
6113
- MultilineText.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6114
- MultilineText.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6115
- MultilineText.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6116
- MultilineText.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6117
- MultilineText.ViewType = this.RepeaterField.ControlOptions.ViewType;
6118
- MultilineText.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6119
- if (this.RepeaterField.ControlOptions.maxLength)
6120
- MultilineText.MaxLength = this.RepeaterField.ControlOptions.maxLength;
6121
- if (this.RepeaterField.ControlOptions.minLength)
6122
- MultilineText.MinLength = this.RepeaterField.ControlOptions.minLength;
6123
- MultilineText.Rows = this.RepeaterField.ControlOptions.rows;
6124
- MultilineText.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection;
6125
- MultilineText.Value = value;
6126
- this.renderComponentService.renderDynamicComponent(this.Item, TextAreaComponent, this.group, MultilineText);
6127
- break;
6128
- //HTML
6129
- case DataType.HTML:
6130
- let HTML = new HtmlEditorOptions();
6131
- HTML.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6132
- HTML.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6133
- HTML.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6134
- HTML.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6135
- HTML.ViewType = this.RepeaterField.ControlOptions.ViewType;
6136
- HTML.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6137
- if (this.RepeaterField.ControlOptions.maxLength)
6138
- HTML.MaxLength = this.RepeaterField.ControlOptions.maxLength;
6139
- if (this.RepeaterField.ControlOptions.minLength)
6140
- HTML.MinLength = this.RepeaterField.ControlOptions.minLength;
6141
- HTML.Height = this.RepeaterField.ControlOptions.rows;
6142
- HTML.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection;
6143
- HTML.Value = value;
6144
- this.renderComponentService.renderDynamicComponent(this.Item, HtmlEditorComponent, this.group, HTML);
6145
- break;
6146
- //Boolean
6147
- case DataType.Boolean:
6148
- let Boolean = new ToggleSlideOptions();
6149
- Boolean.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6150
- Boolean.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6151
- Boolean.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6152
- Boolean.ViewType = this.RepeaterField.ControlOptions.ViewType;
6153
- Boolean.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6154
- Boolean.Value = value;
6155
- this.renderComponentService.renderDynamicComponent(this.Item, ToggleslideComponent, this.group, Boolean);
6156
- break;
6157
- //Location
6158
- case DataType.Location:
6159
- let Location = new MapAutoCompleteOptions();
6160
- Location.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6161
- Location.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6162
- Location.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6163
- Location.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6164
- Location.ViewType = this.RepeaterField.ControlOptions.ViewType;
6165
- Location.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6166
- Location.Value = value;
6167
- this.renderComponentService.renderDynamicComponent(this.Item, MapAutoCompleteComponent, this.group, Location);
6168
- break;
6169
- default:
6170
- break;
5878
+ if (changes.itemNumber)
5879
+ if (changes.itemNumber.previousValue) {
5880
+ let name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.previousValue.toString() + "." + this.controlNumber.toString();
5881
+ let value = this.group.controls[name].value;
5882
+ this.Item.clear();
5883
+ this.group.removeControl(name);
5884
+ switch (this.RepeaterField.ControlType) {
5885
+ ///TextBox
5886
+ case DataType.Text:
5887
+ let Text = new TextBoxOptions();
5888
+ Text.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5889
+ Text.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5890
+ Text.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5891
+ Text.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5892
+ Text.ViewType = this.RepeaterField.ControlOptions.ViewType;
5893
+ Text.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5894
+ Text.Type = InputType.Text;
5895
+ if (this.RepeaterField.ControlOptions.maxLength)
5896
+ Text.MaxLength = this.RepeaterField.ControlOptions.maxLength;
5897
+ if (this.RepeaterField.ControlOptions.minLength)
5898
+ Text.MinLength = this.RepeaterField.ControlOptions.minLength;
5899
+ Text.Value = value;
5900
+ this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Text);
5901
+ break;
5902
+ case DataType.Name:
5903
+ let Name = new TextBoxOptions();
5904
+ Name.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5905
+ Name.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5906
+ Name.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5907
+ Name.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5908
+ Name.ViewType = this.RepeaterField.ControlOptions.ViewType;
5909
+ Name.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5910
+ if (this.RepeaterField.ControlOptions.maxLength)
5911
+ Name.MaxLength = this.RepeaterField.ControlOptions.maxLength;
5912
+ if (this.RepeaterField.ControlOptions.minLength)
5913
+ Name.MinLength = this.RepeaterField.ControlOptions.minLength;
5914
+ Name.Type = InputType.Text;
5915
+ Name.Value = value;
5916
+ this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Name);
5917
+ break;
5918
+ case DataType.Email:
5919
+ let Email = new TextBoxOptions();
5920
+ Email.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5921
+ Email.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5922
+ Email.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5923
+ Email.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5924
+ Email.ViewType = this.RepeaterField.ControlOptions.ViewType;
5925
+ Email.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5926
+ Email.Type = InputType.Email;
5927
+ Email.Value = value;
5928
+ this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Email);
5929
+ break;
5930
+ case DataType.Number:
5931
+ let Number = new TextBoxOptions();
5932
+ Number.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5933
+ Number.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5934
+ Number.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5935
+ Number.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5936
+ Number.ViewType = this.RepeaterField.ControlOptions.ViewType;
5937
+ Number.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5938
+ Number.Type = InputType.Number;
5939
+ let rangeNumber = new RangeNumber();
5940
+ rangeNumber.To = this.RepeaterField.ControlOptions.maxLength;
5941
+ rangeNumber.From = this.RepeaterField.ControlOptions.minLength;
5942
+ Number.NumberRange = rangeNumber;
5943
+ Number.Value = value;
5944
+ this.renderComponentService.renderDynamicComponent(this.Item, TextboxComponent, this.group, Number);
5945
+ break;
5946
+ ///DateTime
5947
+ case DataType.Date:
5948
+ let Date = new DatePickerOptions();
5949
+ Date.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5950
+ Date.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5951
+ Date.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5952
+ Date.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5953
+ Date.ViewType = this.RepeaterField.ControlOptions.ViewType;
5954
+ Date.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5955
+ Date.PickerType = PickerType.Calendar;
5956
+ Date.SelectMode = SelectMode.Single;
5957
+ Date.StartView = StartView.Month;
5958
+ Date.Value = value;
5959
+ this.renderComponentService.renderDynamicComponent(this.Item, DateInputComponent, this.group, Date);
5960
+ break;
5961
+ case DataType.DateTime:
5962
+ let DateTime = new DatePickerOptions();
5963
+ DateTime.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5964
+ DateTime.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5965
+ DateTime.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5966
+ DateTime.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5967
+ DateTime.ViewType = this.RepeaterField.ControlOptions.ViewType;
5968
+ DateTime.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5969
+ DateTime.PickerType = PickerType.Both;
5970
+ DateTime.SelectMode = SelectMode.Single;
5971
+ DateTime.StartView = StartView.Month;
5972
+ DateTime.Value = value;
5973
+ this.renderComponentService.renderDynamicComponent(this.Item, DateInputComponent, this.group, DateTime);
5974
+ break;
5975
+ case DataType.Time:
5976
+ let Time = new DatePickerOptions();
5977
+ Time.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5978
+ Time.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5979
+ Time.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5980
+ Time.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5981
+ Time.ViewType = this.RepeaterField.ControlOptions.ViewType;
5982
+ Time.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5983
+ Time.PickerType = PickerType.Timer;
5984
+ Time.SelectMode = SelectMode.Single;
5985
+ Time.StartView = StartView.Month;
5986
+ Time.Value = value;
5987
+ this.renderComponentService.renderDynamicComponent(this.Item, DateInputComponent, this.group, Time);
5988
+ break;
5989
+ //Dropdown
5990
+ case DataType.SingleSelect:
5991
+ let SingleSelect = new DropdownOptions();
5992
+ SingleSelect.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
5993
+ SingleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
5994
+ SingleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
5995
+ SingleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
5996
+ SingleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;
5997
+ SingleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
5998
+ SingleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource;
5999
+ SingleSelect.SingleSelection = true;
6000
+ SingleSelect.ShowCheckbox = false;
6001
+ SingleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6002
+ SingleSelect.SelectedItems = value;
6003
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, SingleSelect);
6004
+ break;
6005
+ case DataType.MulipleSelect:
6006
+ let MulipleSelect = new DropdownOptions();
6007
+ MulipleSelect.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6008
+ MulipleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6009
+ MulipleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6010
+ MulipleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6011
+ MulipleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;
6012
+ MulipleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6013
+ MulipleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource;
6014
+ MulipleSelect.SingleSelection = false;
6015
+ MulipleSelect.ShowCheckbox = false;
6016
+ MulipleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6017
+ MulipleSelect.SelectedItems = value;
6018
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, MulipleSelect);
6019
+ break;
6020
+ case DataType.Goal:
6021
+ let Goal = new DropdownOptions();
6022
+ Goal.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6023
+ Goal.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6024
+ Goal.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6025
+ Goal.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6026
+ Goal.ViewType = this.RepeaterField.ControlOptions.ViewType;
6027
+ Goal.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6028
+ Goal.DataSource = this.RepeaterField.ControlOptions.dataSource;
6029
+ Goal.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
6030
+ Goal.ShowCheckbox = false;
6031
+ Goal.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6032
+ Goal.SelectedItems = value;
6033
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, Goal);
6034
+ break;
6035
+ case DataType.Challenge:
6036
+ let Challenge = new DropdownOptions();
6037
+ Challenge.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6038
+ Challenge.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6039
+ Challenge.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6040
+ Challenge.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6041
+ Challenge.ViewType = this.RepeaterField.ControlOptions.ViewType;
6042
+ Challenge.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6043
+ Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource;
6044
+ Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource;
6045
+ Challenge.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
6046
+ Challenge.ShowCheckbox = false;
6047
+ Challenge.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6048
+ Challenge.SelectedItems = value;
6049
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, Challenge);
6050
+ break;
6051
+ case DataType.InnovationLab:
6052
+ let InnovationLab = new DropdownOptions();
6053
+ InnovationLab.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6054
+ InnovationLab.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6055
+ InnovationLab.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6056
+ InnovationLab.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6057
+ InnovationLab.ViewType = this.RepeaterField.ControlOptions.ViewType;
6058
+ InnovationLab.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6059
+ InnovationLab.DataSource = this.RepeaterField.ControlOptions.dataSource;
6060
+ InnovationLab.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
6061
+ InnovationLab.ShowCheckbox = false;
6062
+ InnovationLab.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6063
+ InnovationLab.SelectedItems = value;
6064
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, InnovationLab);
6065
+ break;
6066
+ case DataType.Country:
6067
+ let Country = new DropdownOptions();
6068
+ Country.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6069
+ Country.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6070
+ Country.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6071
+ Country.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6072
+ Country.ViewType = this.RepeaterField.ControlOptions.ViewType;
6073
+ Country.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6074
+ Country.DataSource = this.RepeaterField.ControlOptions.dataSource;
6075
+ Country.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple;
6076
+ Country.ShowCheckbox = false;
6077
+ Country.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch;
6078
+ Country.SelectedItems = value;
6079
+ this.renderComponentService.renderDynamicComponent(this.Item, DropdownListComponent, this.group, Country);
6080
+ break;
6081
+ //FileUpload
6082
+ case DataType.File:
6083
+ let File = new FileUploadOptions();
6084
+ File.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6085
+ File.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6086
+ File.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6087
+ File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6088
+ File.ViewType = this.RepeaterField.ControlOptions.ViewType;
6089
+ File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6090
+ File.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
6091
+ File.Value = value;
6092
+ this.renderComponentService.renderDynamicComponent(this.Item, FileUploadComponent, this.group, File);
6093
+ break;
6094
+ case DataType.MultiFile:
6095
+ let MultiFile = new FileUploadOptions();
6096
+ File.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6097
+ File.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6098
+ File.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6099
+ File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6100
+ File.ViewType = this.RepeaterField.ControlOptions.ViewType;
6101
+ File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6102
+ MultiFile.MaxSizeForAllFilesInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
6103
+ MultiFile.MaxNoOfFiles = this.RepeaterField.ControlOptions.maxFileCount;
6104
+ MultiFile.IsMultipleFile = true;
6105
+ MultiFile.Value = value;
6106
+ this.renderComponentService.renderDynamicComponent(this.Item, FileUploadComponent, this.group, MultiFile);
6107
+ break;
6108
+ //ImageUpload
6109
+ case DataType.Image:
6110
+ let Image = new ImageUploadOptions();
6111
+ Image.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6112
+ Image.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6113
+ Image.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6114
+ Image.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6115
+ Image.ViewType = this.RepeaterField.ControlOptions.ViewType;
6116
+ Image.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6117
+ if (this.RepeaterField.ControlOptions.maxFileSizeInMB)
6118
+ Image.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
6119
+ Image.Value = value;
6120
+ this.renderComponentService.renderDynamicComponent(this.Item, ImageUploaderComponent, this.group, Image);
6121
+ break;
6122
+ case DataType.CoverPhoto:
6123
+ let CoverPhoto = new ImageUploadOptions();
6124
+ CoverPhoto.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6125
+ CoverPhoto.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6126
+ CoverPhoto.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6127
+ CoverPhoto.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6128
+ CoverPhoto.ViewType = this.RepeaterField.ControlOptions.ViewType;
6129
+ CoverPhoto.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6130
+ if (this.RepeaterField.ControlOptions.maxFileSizeInMB)
6131
+ CoverPhoto.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB;
6132
+ CoverPhoto.Value = value;
6133
+ this.renderComponentService.renderDynamicComponent(this.Item, ImageUploaderComponent, this.group, CoverPhoto);
6134
+ break;
6135
+ //Mobile
6136
+ case DataType.Mobile:
6137
+ let Mobile = new PhoneOptions();
6138
+ Mobile.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6139
+ Mobile.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6140
+ Mobile.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6141
+ Mobile.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6142
+ Mobile.ViewType = this.RepeaterField.ControlOptions.ViewType;
6143
+ Mobile.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6144
+ Mobile.AllowSearch = true;
6145
+ Mobile.PhoneValidation = true;
6146
+ Mobile.SelectFirstCountry = true;
6147
+ Mobile.EnablePlaceholder = true;
6148
+ Mobile.Value = value;
6149
+ this.renderComponentService.renderDynamicComponent(this.Item, PhoneComponent, this.group, Mobile);
6150
+ break;
6151
+ //MultilineText
6152
+ case DataType.MultilineText:
6153
+ let MultilineText = new TextAreaOptions();
6154
+ MultilineText.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6155
+ MultilineText.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6156
+ MultilineText.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6157
+ MultilineText.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6158
+ MultilineText.ViewType = this.RepeaterField.ControlOptions.ViewType;
6159
+ MultilineText.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6160
+ if (this.RepeaterField.ControlOptions.maxLength)
6161
+ MultilineText.MaxLength = this.RepeaterField.ControlOptions.maxLength;
6162
+ if (this.RepeaterField.ControlOptions.minLength)
6163
+ MultilineText.MinLength = this.RepeaterField.ControlOptions.minLength;
6164
+ MultilineText.Rows = this.RepeaterField.ControlOptions.rows;
6165
+ MultilineText.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection;
6166
+ MultilineText.Value = value;
6167
+ this.renderComponentService.renderDynamicComponent(this.Item, TextAreaComponent, this.group, MultilineText);
6168
+ break;
6169
+ //HTML
6170
+ case DataType.HTML:
6171
+ let HTML = new HtmlEditorOptions();
6172
+ HTML.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6173
+ HTML.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6174
+ HTML.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6175
+ HTML.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6176
+ HTML.ViewType = this.RepeaterField.ControlOptions.ViewType;
6177
+ HTML.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6178
+ if (this.RepeaterField.ControlOptions.maxLength)
6179
+ HTML.MaxLength = this.RepeaterField.ControlOptions.maxLength;
6180
+ if (this.RepeaterField.ControlOptions.minLength)
6181
+ HTML.MinLength = this.RepeaterField.ControlOptions.minLength;
6182
+ HTML.Height = this.RepeaterField.ControlOptions.rows;
6183
+ HTML.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection;
6184
+ HTML.Value = value;
6185
+ this.renderComponentService.renderDynamicComponent(this.Item, HtmlEditorComponent, this.group, HTML);
6186
+ break;
6187
+ //Boolean
6188
+ case DataType.Boolean:
6189
+ let Boolean = new ToggleSlideOptions();
6190
+ Boolean.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6191
+ Boolean.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6192
+ Boolean.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6193
+ Boolean.ViewType = this.RepeaterField.ControlOptions.ViewType;
6194
+ Boolean.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6195
+ Boolean.Value = value;
6196
+ this.renderComponentService.renderDynamicComponent(this.Item, ToggleslideComponent, this.group, Boolean);
6197
+ break;
6198
+ //Location
6199
+ case DataType.Location:
6200
+ let Location = new MapAutoCompleteOptions();
6201
+ Location.Name = this.RepeaterField.ControlOptions.Name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
6202
+ Location.HideLabel = this.RepeaterField.ControlOptions.HideLabel;
6203
+ Location.LabelKey = this.RepeaterField.ControlOptions.LabelKey;
6204
+ Location.IsRequired = this.RepeaterField.ControlOptions.IsRequired;
6205
+ Location.ViewType = this.RepeaterField.ControlOptions.ViewType;
6206
+ Location.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : "";
6207
+ Location.Value = value;
6208
+ this.renderComponentService.renderDynamicComponent(this.Item, MapAutoCompleteComponent, this.group, Location);
6209
+ break;
6210
+ default:
6211
+ break;
6212
+ }
6171
6213
  }
6172
- }
6173
6214
  }
6174
6215
  }
6175
6216
  RepeaterFieldBuilderComponent.decorators = [
@@ -6187,7 +6228,8 @@ RepeaterFieldBuilderComponent.propDecorators = {
6187
6228
  group: [{ type: Input }],
6188
6229
  itemNumber: [{ type: Input }],
6189
6230
  controlNumber: [{ type: Input }],
6190
- RepeaterField: [{ type: Input }]
6231
+ RepeaterField: [{ type: Input }],
6232
+ itemsValue: [{ type: Input }]
6191
6233
  };
6192
6234
 
6193
6235
  class RepeaterItemFieldComponent {
@@ -6209,6 +6251,108 @@ RepeaterItemFieldComponent.propDecorators = {
6209
6251
  itemIndex: [{ type: Input }]
6210
6252
  };
6211
6253
 
6254
+ class RepeaterTableComponent {
6255
+ constructor(utilityService) {
6256
+ this.utilityService = utilityService;
6257
+ this.items = [];
6258
+ this.originalItems = [];
6259
+ }
6260
+ ngOnInit() {
6261
+ this.repeaterGroup = new FormGroup({});
6262
+ this.group.addControl(this.options.Name, this.repeaterGroup);
6263
+ if (this.options.RepeaterValue.length > 0) {
6264
+ this.originalItems = this.options.RepeaterValue;
6265
+ for (let index = 0; index < this.options.RepeaterValue.length; index++) {
6266
+ this.items.push(index + 1);
6267
+ }
6268
+ }
6269
+ else
6270
+ for (let index = 0; index < this.options.MinRequiredItems; index++) {
6271
+ this.items.push(index);
6272
+ }
6273
+ this.repeaterGroup.valueChanges.subscribe((res) => {
6274
+ let result = [];
6275
+ let rowNumber = [];
6276
+ let addItems = [];
6277
+ for (const key in this.repeaterGroup.controls) {
6278
+ if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {
6279
+ const keySplitArr = key.split('.');
6280
+ let item = {
6281
+ [keySplitArr[1]]: { [keySplitArr[0]]: this.group.controls[this.options.Name].value[key] }
6282
+ };
6283
+ addItems.push(item);
6284
+ if (!rowNumber.includes(keySplitArr[1]))
6285
+ rowNumber.push(keySplitArr[1]);
6286
+ }
6287
+ }
6288
+ for (let index = 0; index < rowNumber.length; index++) {
6289
+ const row = rowNumber[index];
6290
+ let addObject = {};
6291
+ let filteredElements = addItems.filter(item => item[row]);
6292
+ for (let index = 0; index < filteredElements.length; index++) {
6293
+ const filteredElement = filteredElements[index];
6294
+ for (const key in filteredElement) {
6295
+ if (Object.prototype.hasOwnProperty.call(filteredElement, key)) {
6296
+ const element = filteredElement[key];
6297
+ for (const key in element) {
6298
+ if (Object.prototype.hasOwnProperty.call(element, key)) {
6299
+ const value = element[key];
6300
+ addObject[key] = value;
6301
+ }
6302
+ }
6303
+ }
6304
+ }
6305
+ }
6306
+ result.push(addObject);
6307
+ }
6308
+ this.options.RepeaterValue = result;
6309
+ });
6310
+ }
6311
+ deleteItem(Index) {
6312
+ if (this.items.length == this.options.MinRequiredItems && this.options.IsRequired)
6313
+ return;
6314
+ let deletedControls = [];
6315
+ let controlNames = this.options.RepeaterStructure.map(e => e.ControlOptions.Name);
6316
+ for (const key in this.repeaterGroup.controls) {
6317
+ if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {
6318
+ for (let index = 0; index < controlNames.length; index++) {
6319
+ const element = controlNames[index];
6320
+ const keySplitArr = key.split('.');
6321
+ if (keySplitArr[0] + keySplitArr[1] == `${element}${Index}`) {
6322
+ const element = this.repeaterGroup.controls[key];
6323
+ deletedControls.push({ [key]: element });
6324
+ }
6325
+ }
6326
+ }
6327
+ }
6328
+ for (let index = 0; index < deletedControls.length; index++) {
6329
+ const element = deletedControls[index];
6330
+ for (const key in element) {
6331
+ if (Object.prototype.hasOwnProperty.call(element, key)) {
6332
+ this.repeaterGroup.removeControl(key);
6333
+ }
6334
+ }
6335
+ }
6336
+ this.items = this.items.filter((res) => res != this.items[Index]);
6337
+ }
6338
+ addItem() {
6339
+ this.items.push(this.items[this.items.length - 1] + 1);
6340
+ }
6341
+ }
6342
+ RepeaterTableComponent.decorators = [
6343
+ { type: Component, args: [{
6344
+ selector: 'BBSF-repeater-table',
6345
+ template: "<div class=\"b-control b-repeater-table\">\r\n <table class=\"{{options.RepeaterTableExtraClasses}}\">\r\n <thead>\r\n <tr class=\"{{options.RepeaterTableRowExtraClasses}}\">\r\n <th *ngFor=\"let item of options.RepeaterStructure\" class=\"min-w-150px\">{{item.HeaderTitle}}</th>\r\n <th>{{utilityService.getResourceValue(options.ActionLabelKey)}}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of items ; index as i\">\r\n <td *ngFor=\"let RepeaterField of options.RepeaterStructure ; index as r\">\r\n <repeater-field-builder [RepeaterField]=\"RepeaterField\" [itemNumber]=\"i\" [itemsValue]=\"originalItems\"\r\n [controlNumber]=\"r\" [group]=\"repeaterGroup\"></repeater-field-builder>\r\n </td>\r\n <td>\r\n <button class=\"{{options.DeleteButtonExtraClasses}}\" type=\"button\" (click)=\"deleteItem(i)\"\r\n [disabled]=\"(items.length ==options.MinRequiredItems&&options.IsRequired) ||(originalItems.length-1>=i)\"> <span\r\n [innerHTML]=\"options.DeleteButtonText\"></span></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n <tfoot>\r\n <tr>\r\n <button class=\"{{options.AddButtonExtraClasses}}\" type=\"button\" (click)=\"addItem()\"><span\r\n [innerHTML]=\"options.AddButtonText\"></span></button>\r\n </tr>\r\n </tfoot>\r\n </table>\r\n</div>"
6346
+ },] }
6347
+ ];
6348
+ RepeaterTableComponent.ctorParameters = () => [
6349
+ { type: UtilityService }
6350
+ ];
6351
+ RepeaterTableComponent.propDecorators = {
6352
+ group: [{ type: Input }],
6353
+ options: [{ type: Input }]
6354
+ };
6355
+
6212
6356
  let options;
6213
6357
  let AppInjector;
6214
6358
  FullCalendarModule.registerPlugins([
@@ -6256,6 +6400,7 @@ BBSFControlsModule.decorators = [
6256
6400
  RepeaterFieldBuilderComponent,
6257
6401
  NgTemplateNameDirective,
6258
6402
  RepeaterItemFieldComponent,
6403
+ RepeaterTableComponent
6259
6404
  ],
6260
6405
  imports: [
6261
6406
  CommonModule,
@@ -6350,6 +6495,7 @@ BBSFControlsModule.decorators = [
6350
6495
  RepeaterFieldBuilderComponent,
6351
6496
  NgTemplateNameDirective,
6352
6497
  RepeaterItemFieldComponent,
6498
+ RepeaterTableComponent
6353
6499
  ]
6354
6500
  },] }
6355
6501
  ];
@@ -6714,6 +6860,7 @@ class RepeaterField {
6714
6860
  class RepeaterOptions {
6715
6861
  constructor() {
6716
6862
  this.MinRequiredItems = 1;
6863
+ this.ActionLabelKey = "";
6717
6864
  this.AddButtonText = "Add";
6718
6865
  this.DeleteButtonText = "Delete";
6719
6866
  this.RepeaterValue = [];
@@ -7044,5 +7191,5 @@ var FileType;
7044
7191
  * Generated bundle index. Do not edit.
7045
7192
  */
7046
7193
 
7047
- 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 };
7194
+ 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, RepeaterTableComponent, SaveDTO, SelectMode, StartView, Style, StyleConfirmationMode, TagsInputComponent, TagsInputDTO, TagsInputOptions, TextAreaComponent, TextAreaOptions, TextBoxOptions, TextboxComponent, ToggleSlideOptions, ToggleslideComponent, UploadPersonalImage, environment, options, ɵ0 };
7048
7195
  //# sourceMappingURL=bnsights-bbsf-controls.js.map