kwikid-forms 0.3.20 → 0.4.1

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 (48) hide show
  1. package/bundles/kwikid-forms.umd.js +8985 -7725
  2. package/bundles/kwikid-forms.umd.js.map +1 -1
  3. package/esm2015/lib/builder/builder.component.js +2 -2
  4. package/esm2015/lib/builder/builder.module.js +8 -11
  5. package/esm2015/lib/builder/element-config-editor/editors/basic/radio-config.editor.component.js +10 -10
  6. package/esm2015/lib/builder/element-config-editor/editors/basic/select-config.editor.component.js +302 -0
  7. package/esm2015/lib/builder/element-config-editor/editors/basic/text-config.editor.component.js +6 -6
  8. package/esm2015/lib/builder/element-config-editor/editors/basic-element-config.editor.component.js +25 -25
  9. package/esm2015/lib/builder/element-config-editor/editors/document/pan-number-config.editor.component.js +6 -6
  10. package/esm2015/lib/builder/element-config-editor/editors/document-element-config.editor.component.js +18 -18
  11. package/esm2015/lib/builder/shared/elements.js +12 -3
  12. package/esm2015/lib/builder2/builder-form-editor/builder-form-editor.component.js +268 -0
  13. package/esm2015/lib/builder2/builder-form-editor/builder-form-editor.module.js +38 -0
  14. package/esm2015/lib/builder2/builder-form-editor/builder-form-editor.pipe.js +19 -0
  15. package/esm2015/lib/builder2/builder-form-editor/builder.form-editor.constants.js +178 -0
  16. package/esm2015/lib/builder2/builder-form-list/builder-forms-list.component.js +85 -0
  17. package/esm2015/lib/builder2/builder-form-list/builder-forms-list.module.js +37 -0
  18. package/esm2015/lib/builder2/builder2.component.js +169 -0
  19. package/esm2015/lib/builder2/builder2.module.js +46 -0
  20. package/esm2015/lib/kwikid-forms.module.js +16 -4
  21. package/esm2015/lib/renderer/config-converter.helper.js +86 -9
  22. package/esm2015/lib/renderer/form-view/definitions/form-view.fields.definition.js +4 -1
  23. package/esm2015/lib/renderer/form-view/form-view.component.js +200 -31
  24. package/esm2015/lib/renderer/form-view/helpers/form-view.fields.helper.js +17 -2
  25. package/esm2015/lib/renderer/forms-list/forms-list.component.js +6 -4
  26. package/esm2015/lib/renderer/renderer.component.js +73 -25
  27. package/esm2015/lib/renderer/renderer.definitions.js +6 -0
  28. package/esm2015/public_api.js +3 -1
  29. package/fesm2015/kwikid-forms.js +1304 -181
  30. package/fesm2015/kwikid-forms.js.map +1 -1
  31. package/lib/builder/builder.module.d.ts +2 -2
  32. package/lib/builder/element-config-editor/editors/basic/{dropdown-with-search-config.editor.component.d.ts → select-config.editor.component.d.ts} +5 -5
  33. package/lib/builder2/builder-form-editor/builder-form-editor.component.d.ts +48 -0
  34. package/lib/builder2/builder-form-editor/builder-form-editor.module.d.ts +12 -0
  35. package/lib/builder2/builder-form-editor/builder-form-editor.pipe.d.ts +7 -0
  36. package/lib/builder2/builder-form-editor/builder.form-editor.constants.d.ts +620 -0
  37. package/lib/builder2/builder-form-list/builder-forms-list.component.d.ts +19 -0
  38. package/lib/builder2/builder-form-list/builder-forms-list.module.d.ts +11 -0
  39. package/lib/builder2/builder2.component.d.ts +37 -0
  40. package/lib/builder2/builder2.module.d.ts +13 -0
  41. package/lib/kwikid-forms.module.d.ts +3 -2
  42. package/lib/renderer/form-view/definitions/form-view.fields.definition.d.ts +10 -7
  43. package/lib/renderer/form-view/form-view.component.d.ts +20 -3
  44. package/lib/renderer/form-view/helpers/form-view.fields.helper.d.ts +1 -0
  45. package/lib/renderer/renderer.definitions.d.ts +5 -0
  46. package/package.json +3 -16
  47. package/public_api.d.ts +2 -0
  48. package/esm2015/lib/builder/element-config-editor/editors/basic/dropdown-with-search-config.editor.component.js +0 -302
@@ -2,25 +2,26 @@ import { __decorate, __awaiter } from 'tslib';
2
2
  import * as i4 from '@angular/cdk/drag-drop';
3
3
  import { copyArrayItem, moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
4
4
  import * as i0 from '@angular/core';
5
- import { EventEmitter, Component, Input, Output, ViewEncapsulation, Pipe, Inject, ViewChild, HostListener, NgModule } from '@angular/core';
5
+ import { EventEmitter, Component, Input, Output, ViewEncapsulation, ChangeDetectionStrategy, Pipe, Inject, ViewChild, HostListener, NgModule } from '@angular/core';
6
6
  import * as i2 from '@angular/forms';
7
7
  import { FormGroup, FormControl, FormArray, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
8
- import { logMethod, setMissingKeyValue, mergeObjects, checkObjectKeyExists, getObjectFromLocalStorage, isNotEmptyValue, isEmptyValue, setValueToObjectPath, Source, Rule, Condition, Action, PATTERNS, Validation, ESourceKey, replaceString, getObjectValueFromPath, isUndefined, isNull, getObjectDeepCopy } from 'kwikid-toolkit';
8
+ import { logMethod, setMissingKeyValue, mergeObjects, checkObjectKeyExists, getObjectFromLocalStorage, isNotEmptyValue, isEmptyValue, setValueToObjectPath, getObjectValueFromPath, checkObjectPathExists, Source, Rule, Condition, Action, PATTERNS, getObjectDeepCopy, Validation, ESourceKey, replaceString, isUndefined, isNull } from 'kwikid-toolkit';
9
9
  import * as i1 from 'kwikui';
10
- import { KwikUIButtonIconModule, KwikUIButtonModule, KwikUIInputModule, KwikUIInputNumberModule, KwikUISelectComboboxModule, KwikUITableModule, KwikUITextareaModule, KwikUIModule } from 'kwikui';
10
+ import { KwikUIButtonModule, KwikUIInputModule, KwikUIInputNumberModule, KwikUIInputSelectModule, KwikUITableModule, KwikUITextareaModule, KwikUIModule } from 'kwikui';
11
11
  import * as i3 from '@angular/common';
12
12
  import { CommonModule } from '@angular/common';
13
13
  import _ from 'lodash';
14
+ import { trigger, transition, style, animate } from '@angular/animations';
14
15
  import * as i5 from '@taiga-ui/addon-preview';
15
16
  import { TuiPreviewDialogService, TuiPreviewModule, TuiPreviewActionModule } from '@taiga-ui/addon-preview';
16
17
  import * as i3$1 from '@taiga-ui/core';
17
- import { TuiAlertService, TuiDialogService, TuiLabelModule, TuiSvgModule, TuiButtonModule, TuiDialogModule, TuiLoaderModule } from '@taiga-ui/core';
18
+ import { TuiAlertService, TuiDialogService, TuiSvgModule, TuiLabelModule, TuiButtonModule, TuiDialogModule, TuiLoaderModule } from '@taiga-ui/core';
18
19
  import * as i4$1 from '@taiga-ui/kit';
19
20
  import { TuiPushService, TuiPushModule } from '@taiga-ui/kit';
20
21
  import { pairwise } from 'rxjs/operators';
22
+ import { v4 } from 'uuid';
21
23
  import { TuiDay } from '@taiga-ui/cdk';
22
24
  import * as i1$1 from '@angular/platform-browser';
23
- import { trigger, transition, style, animate } from '@angular/animations';
24
25
  import { HttpClientModule } from '@angular/common/http';
25
26
 
26
27
  class Elements {
@@ -55,7 +56,7 @@ class Elements {
55
56
  description: ""
56
57
  }
57
58
  ] }),
58
- Object.assign(Object.assign({ elementTitle: "Dropdown with Search", elementType: "dropdown-with-search", isElement: true, elementCategory: "basic" }, this.commonCore), { validators: Object.assign({}, this.commonValidators), properties: Object.assign(Object.assign({}, this.commonProperties), { orientation: "vertical" }), options: [
59
+ Object.assign(Object.assign({ elementTitle: "select", elementType: "select", isElement: true, elementCategory: "basic" }, this.commonCore), { validators: Object.assign({}, this.commonValidators), properties: Object.assign(Object.assign({}, this.commonProperties), { orientation: "vertical" }), options: [
59
60
  {
60
61
  title: "",
61
62
  value: ""
@@ -95,7 +96,16 @@ class Elements {
95
96
  Object.assign(Object.assign({ elementTitle: "PAN with NSDL", elementType: "pan_with_nsdl", isElement: true, elementCategory: "template" }, this.commonCore), { validators: Object.assign({}, this.commonValidators), properties: Object.assign({}, this.commonProperties) })
96
97
  ];
97
98
  this.elementMapping = {
98
- basic: ["text", "number", "radio", "dropdown-with-search", "checkbox", "date", "otp", "phone"],
99
+ basic: [
100
+ "text",
101
+ "number",
102
+ "radio",
103
+ "select",
104
+ "checkbox",
105
+ "date",
106
+ "otp",
107
+ "phone"
108
+ ],
99
109
  documents: ["aadhaar-number", "pan-number"],
100
110
  others: ["html", "title"],
101
111
  templates: [],
@@ -165,7 +175,7 @@ class BasicTextConfigEditor {
165
175
  <fieldset>
166
176
  <legend class="form-group-title">Miscellaneous</legend>
167
177
  <div class="form-group">
168
- <kwikui-select-combobox
178
+ <kwikui-input-select
169
179
  [options]="['default', 'upper', 'lower']"
170
180
  [label]="'case'"
171
181
  [id]="'basic-text-config-case'"
@@ -178,12 +188,12 @@ class BasicTextConfigEditor {
178
188
  [disabled]="false"
179
189
  [invalid]="false"
180
190
  [placeholder]="'Please select either true or false'"
181
- ></kwikui-select-combobox>
191
+ ></kwikui-input-select>
182
192
  </div>
183
193
  </fieldset>
184
194
  </div>
185
195
  </form>
186
- `, isInline: true, styles: [""], components: [{ type: i1.KwikUISelectComboboxComponent, selector: "kwikui-select-combobox", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "options", "size", "validators", "properties"], outputs: ["getKeyValue"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
196
+ `, isInline: true, styles: [""], components: [{ type: i1.KwikUIInputSelectComponent, selector: "kwikui-input-select", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "options", "size", "validators", "properties"], outputs: ["getKeyValue"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
187
197
  __decorate([
188
198
  logMethod
189
199
  ], BasicTextConfigEditor.prototype, "ngOnInit", null);
@@ -206,7 +216,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
206
216
  <fieldset>
207
217
  <legend class="form-group-title">Miscellaneous</legend>
208
218
  <div class="form-group">
209
- <kwikui-select-combobox
219
+ <kwikui-input-select
210
220
  [options]="['default', 'upper', 'lower']"
211
221
  [label]="'case'"
212
222
  [id]="'basic-text-config-case'"
@@ -219,7 +229,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
219
229
  [disabled]="false"
220
230
  [invalid]="false"
221
231
  [placeholder]="'Please select either true or false'"
222
- ></kwikui-select-combobox>
232
+ ></kwikui-input-select>
223
233
  </div>
224
234
  </fieldset>
225
235
  </div>
@@ -425,7 +435,7 @@ class BasicRadioConfigEditor {
425
435
  ></kwikui-input>
426
436
  </div>
427
437
  <div class="form-group">
428
- <kwikui-select-combobox
438
+ <kwikui-input-select
429
439
  [options]="[true, false]"
430
440
  [label]="'disabled'"
431
441
  [id]="'basic-radio-config-disabled'"
@@ -440,7 +450,7 @@ class BasicRadioConfigEditor {
440
450
  [disabled]="false"
441
451
  [invalid]="false"
442
452
  [placeholder]="'Please select either true or false'"
443
- ></kwikui-select-combobox>
453
+ ></kwikui-input-select>
444
454
  </div>
445
455
  <div class="form-group">
446
456
  <kwikui-input
@@ -500,7 +510,7 @@ class BasicRadioConfigEditor {
500
510
  <fieldset>
501
511
  <legend class="form-group-title">Miscellaneous</legend>
502
512
  <div class="form-group">
503
- <kwikui-select-combobox
513
+ <kwikui-input-select
504
514
  [options]="['horizontal', 'vertical']"
505
515
  [label]="'Orientation'"
506
516
  [id]="'basic-radio-config-orientation'"
@@ -514,12 +524,12 @@ class BasicRadioConfigEditor {
514
524
  [disabled]="false"
515
525
  [invalid]="false"
516
526
  [placeholder]="'Please select orientation'"
517
- ></kwikui-select-combobox>
527
+ ></kwikui-input-select>
518
528
  </div>
519
529
  </fieldset>
520
530
  </div>
521
531
  </form>
522
- `, isInline: true, styles: ["\n .form-array-actions {\n display: flex;\n flex-direction: row;\n align-content: center;\n justify-content: center;\n align-items: center;\n gap: 1rem;\n }\n "], components: [{ type: i1.KwikUIInputComponent, selector: "kwikui-input", inputs: ["label", "id", "type", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "validators", "case", "size", "icon", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUISelectComboboxComponent, selector: "kwikui-select-combobox", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "options", "size", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
532
+ `, isInline: true, styles: ["\n .form-array-actions {\n display: flex;\n flex-direction: row;\n align-content: center;\n justify-content: center;\n align-items: center;\n gap: 1rem;\n }\n "], components: [{ type: i1.KwikUIInputComponent, selector: "kwikui-input", inputs: ["label", "id", "type", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "validators", "case", "size", "icon", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIInputSelectComponent, selector: "kwikui-input-select", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "options", "size", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
523
533
  __decorate([
524
534
  logMethod
525
535
  ], BasicRadioConfigEditor.prototype, "ngOnInit", null);
@@ -574,7 +584,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
574
584
  ></kwikui-input>
575
585
  </div>
576
586
  <div class="form-group">
577
- <kwikui-select-combobox
587
+ <kwikui-input-select
578
588
  [options]="[true, false]"
579
589
  [label]="'disabled'"
580
590
  [id]="'basic-radio-config-disabled'"
@@ -589,7 +599,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
589
599
  [disabled]="false"
590
600
  [invalid]="false"
591
601
  [placeholder]="'Please select either true or false'"
592
- ></kwikui-select-combobox>
602
+ ></kwikui-input-select>
593
603
  </div>
594
604
  <div class="form-group">
595
605
  <kwikui-input
@@ -649,7 +659,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
649
659
  <fieldset>
650
660
  <legend class="form-group-title">Miscellaneous</legend>
651
661
  <div class="form-group">
652
- <kwikui-select-combobox
662
+ <kwikui-input-select
653
663
  [options]="['horizontal', 'vertical']"
654
664
  [label]="'Orientation'"
655
665
  [id]="'basic-radio-config-orientation'"
@@ -663,7 +673,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
663
673
  [disabled]="false"
664
674
  [invalid]="false"
665
675
  [placeholder]="'Please select orientation'"
666
- ></kwikui-select-combobox>
676
+ ></kwikui-input-select>
667
677
  </div>
668
678
  </fieldset>
669
679
  </div>
@@ -690,7 +700,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
690
700
  type: Output
691
701
  }], ngOnInit: [], ngOnChanges: [], createBasicRadioFormGroup: [], handleOnSave: [], createOptionConfigFormGroup: [], addOption: [], removeOption: [] } });
692
702
 
693
- class BasicDropdownWithSearchConfigEditor {
703
+ class BasicSelectConfigEditor {
694
704
  constructor() {
695
705
  this.optionType = {
696
706
  title: "",
@@ -701,10 +711,10 @@ class BasicDropdownWithSearchConfigEditor {
701
711
  options: []
702
712
  };
703
713
  this.updateElement = new EventEmitter();
704
- this.basicDropdownWithSearchFormGroup = undefined;
714
+ this.basicSelectFormGroup = undefined;
705
715
  }
706
716
  ngOnInit() {
707
- this.createBasicDropdownWithSearchFormGroup();
717
+ this.createBasicSelectFormGroup();
708
718
  }
709
719
  ngOnChanges(changes) {
710
720
  var _a;
@@ -713,7 +723,7 @@ class BasicDropdownWithSearchConfigEditor {
713
723
  };
714
724
  if (verifyChange("elementConfig")) {
715
725
  this.elementConfig = changes.elementConfig.currentValue;
716
- (_a = this.basicDropdownWithSearchFormGroup) === null || _a === void 0 ? void 0 : _a.reset(this.elementConfig);
726
+ (_a = this.basicSelectFormGroup) === null || _a === void 0 ? void 0 : _a.reset(this.elementConfig);
717
727
  }
718
728
  if (verifyChange("saveBasicClickCounter")) {
719
729
  if (changes.saveBasicClickCounter.previousValue !==
@@ -723,7 +733,7 @@ class BasicDropdownWithSearchConfigEditor {
723
733
  }
724
734
  }
725
735
  }
726
- createBasicDropdownWithSearchFormGroup() {
736
+ createBasicSelectFormGroup() {
727
737
  let optionsFormArray = [];
728
738
  this.elementConfig = setMissingKeyValue(this.elementConfig, "options", [
729
739
  this.optionType
@@ -731,19 +741,19 @@ class BasicDropdownWithSearchConfigEditor {
731
741
  for (let option of this.elementConfig.options) {
732
742
  optionsFormArray.push(this.createOptionConfigFormGroup(option));
733
743
  }
734
- this.basicDropdownWithSearchFormGroup = new FormGroup({
744
+ this.basicSelectFormGroup = new FormGroup({
735
745
  options: new FormArray(optionsFormArray)
736
746
  });
737
- this.basicDropdownWithSearchFormGroup.updateValueAndValidity();
747
+ this.basicSelectFormGroup.updateValueAndValidity();
738
748
  }
739
749
  handleOnSave() {
740
- let basicElementConfig = this.basicDropdownWithSearchFormGroup.getRawValue();
750
+ let basicElementConfig = this.basicSelectFormGroup.getRawValue();
741
751
  this.updateElement.emit({
742
752
  basicElementConfig: basicElementConfig
743
753
  });
744
754
  }
745
755
  get optionsArray() {
746
- return this.basicDropdownWithSearchFormGroup.get("options");
756
+ return this.basicSelectFormGroup.get("options");
747
757
  }
748
758
  createOptionConfigFormGroup(optionConfig) {
749
759
  const optionFormGroup = new FormGroup({
@@ -757,11 +767,11 @@ class BasicDropdownWithSearchConfigEditor {
757
767
  return optionFormGroup;
758
768
  }
759
769
  addOption() {
760
- const options = this.basicDropdownWithSearchFormGroup.get("options");
770
+ const options = this.basicSelectFormGroup.get("options");
761
771
  options.push(this.createOptionConfigFormGroup(this.optionType));
762
772
  }
763
773
  removeOption(optionIndex) {
764
- const options = this.basicDropdownWithSearchFormGroup.get("options");
774
+ const options = this.basicSelectFormGroup.get("options");
765
775
  if (options.length > 1) {
766
776
  options.removeAt(optionIndex);
767
777
  }
@@ -771,9 +781,9 @@ class BasicDropdownWithSearchConfigEditor {
771
781
  }
772
782
  }
773
783
  }
774
- /** @nocollapse */ BasicDropdownWithSearchConfigEditor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BasicDropdownWithSearchConfigEditor, deps: [], target: i0.ɵɵFactoryTarget.Component });
775
- /** @nocollapse */ BasicDropdownWithSearchConfigEditor.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: BasicDropdownWithSearchConfigEditor, selector: "basic-dropdown-with-search-config-editor", inputs: { saveBasicClickCounter: "saveBasicClickCounter", elementConfig: "elementConfig" }, outputs: { updateElement: "updateElement" }, usesOnChanges: true, ngImport: i0, template: `
776
- <form [formGroup]="basicDropdownWithSearchFormGroup">
784
+ /** @nocollapse */ BasicSelectConfigEditor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BasicSelectConfigEditor, deps: [], target: i0.ɵɵFactoryTarget.Component });
785
+ /** @nocollapse */ BasicSelectConfigEditor.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: BasicSelectConfigEditor, selector: "basic-select-config-editor", inputs: { saveBasicClickCounter: "saveBasicClickCounter", elementConfig: "elementConfig" }, outputs: { updateElement: "updateElement" }, usesOnChanges: true, ngImport: i0, template: `
786
+ <form [formGroup]="basicSelectFormGroup">
777
787
  <fieldset>
778
788
  <legend class="form-group-title">Options</legend>
779
789
  <div formArrayName="options">
@@ -784,13 +794,13 @@ class BasicDropdownWithSearchConfigEditor {
784
794
  <div class="form-group">
785
795
  <kwikui-input
786
796
  [label]="'Title'"
787
- [id]="'basic-dropdown-with-search-config-title'"
797
+ [id]="'basic-select-config-title'"
788
798
  [type]="'text'"
789
799
  [formControlName]="'title'"
790
800
  [formControl]="
791
- basicDropdownWithSearchFormGroup['controls'].options['controls'][i][
801
+ basicSelectFormGroup['controls'].options[
792
802
  'controls'
793
- ].title
803
+ ][i]['controls'].title
794
804
  "
795
805
  [disabled]="false"
796
806
  [placeholder]="'Please enter your title'"
@@ -803,13 +813,13 @@ class BasicDropdownWithSearchConfigEditor {
803
813
  <div class="form-group">
804
814
  <kwikui-input
805
815
  [label]="'Value'"
806
- [id]="'basic-dropdown-with-search-config-value'"
816
+ [id]="'basic-select-config-value'"
807
817
  [type]="'text'"
808
818
  [formControlName]="'value'"
809
819
  [formControl]="
810
- basicDropdownWithSearchFormGroup['controls'].options['controls'][i][
820
+ basicSelectFormGroup['controls'].options[
811
821
  'controls'
812
- ].value
822
+ ][i]['controls'].value
813
823
  "
814
824
  [disabled]="false"
815
825
  [placeholder]="'Please enter your value'"
@@ -857,31 +867,31 @@ class BasicDropdownWithSearchConfigEditor {
857
867
  `, isInline: true, styles: ["\n .form-array-actions {\n display: flex;\n flex-direction: row;\n align-content: center;\n justify-content: center;\n align-items: center;\n gap: 1rem;\n }\n "], components: [{ type: i1.KwikUIInputComponent, selector: "kwikui-input", inputs: ["label", "id", "type", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "validators", "case", "size", "icon", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
858
868
  __decorate([
859
869
  logMethod
860
- ], BasicDropdownWithSearchConfigEditor.prototype, "ngOnInit", null);
870
+ ], BasicSelectConfigEditor.prototype, "ngOnInit", null);
861
871
  __decorate([
862
872
  logMethod
863
- ], BasicDropdownWithSearchConfigEditor.prototype, "ngOnChanges", null);
873
+ ], BasicSelectConfigEditor.prototype, "ngOnChanges", null);
864
874
  __decorate([
865
875
  logMethod
866
- ], BasicDropdownWithSearchConfigEditor.prototype, "createBasicDropdownWithSearchFormGroup", null);
876
+ ], BasicSelectConfigEditor.prototype, "createBasicSelectFormGroup", null);
867
877
  __decorate([
868
878
  logMethod
869
- ], BasicDropdownWithSearchConfigEditor.prototype, "handleOnSave", null);
879
+ ], BasicSelectConfigEditor.prototype, "handleOnSave", null);
870
880
  __decorate([
871
881
  logMethod
872
- ], BasicDropdownWithSearchConfigEditor.prototype, "createOptionConfigFormGroup", null);
882
+ ], BasicSelectConfigEditor.prototype, "createOptionConfigFormGroup", null);
873
883
  __decorate([
874
884
  logMethod
875
- ], BasicDropdownWithSearchConfigEditor.prototype, "addOption", null);
885
+ ], BasicSelectConfigEditor.prototype, "addOption", null);
876
886
  __decorate([
877
887
  logMethod
878
- ], BasicDropdownWithSearchConfigEditor.prototype, "removeOption", null);
879
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BasicDropdownWithSearchConfigEditor, decorators: [{
888
+ ], BasicSelectConfigEditor.prototype, "removeOption", null);
889
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BasicSelectConfigEditor, decorators: [{
880
890
  type: Component,
881
891
  args: [{
882
- selector: "basic-dropdown-with-search-config-editor",
892
+ selector: "basic-select-config-editor",
883
893
  template: `
884
- <form [formGroup]="basicDropdownWithSearchFormGroup">
894
+ <form [formGroup]="basicSelectFormGroup">
885
895
  <fieldset>
886
896
  <legend class="form-group-title">Options</legend>
887
897
  <div formArrayName="options">
@@ -892,13 +902,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
892
902
  <div class="form-group">
893
903
  <kwikui-input
894
904
  [label]="'Title'"
895
- [id]="'basic-dropdown-with-search-config-title'"
905
+ [id]="'basic-select-config-title'"
896
906
  [type]="'text'"
897
907
  [formControlName]="'title'"
898
908
  [formControl]="
899
- basicDropdownWithSearchFormGroup['controls'].options['controls'][i][
909
+ basicSelectFormGroup['controls'].options[
900
910
  'controls'
901
- ].title
911
+ ][i]['controls'].title
902
912
  "
903
913
  [disabled]="false"
904
914
  [placeholder]="'Please enter your title'"
@@ -911,13 +921,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
911
921
  <div class="form-group">
912
922
  <kwikui-input
913
923
  [label]="'Value'"
914
- [id]="'basic-dropdown-with-search-config-value'"
924
+ [id]="'basic-select-config-value'"
915
925
  [type]="'text'"
916
926
  [formControlName]="'value'"
917
927
  [formControl]="
918
- basicDropdownWithSearchFormGroup['controls'].options['controls'][i][
928
+ basicSelectFormGroup['controls'].options[
919
929
  'controls'
920
- ].value
930
+ ][i]['controls'].value
921
931
  "
922
932
  [disabled]="false"
923
933
  [placeholder]="'Please enter your value'"
@@ -982,7 +992,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
982
992
  type: Input
983
993
  }], updateElement: [{
984
994
  type: Output
985
- }], ngOnInit: [], ngOnChanges: [], createBasicDropdownWithSearchFormGroup: [], handleOnSave: [], createOptionConfigFormGroup: [], addOption: [], removeOption: [] } });
995
+ }], ngOnInit: [], ngOnChanges: [], createBasicSelectFormGroup: [], handleOnSave: [], createOptionConfigFormGroup: [], addOption: [], removeOption: [] } });
986
996
 
987
997
  class BasicCheckboxConfigEditor {
988
998
  constructor() {
@@ -1453,7 +1463,7 @@ class BasicElementConfigEditor {
1453
1463
  ></kwikui-input>
1454
1464
  </div>
1455
1465
  <div class="form-group">
1456
- <kwikui-select-combobox
1466
+ <kwikui-input-select
1457
1467
  [options]="[true, false]"
1458
1468
  [label]="'Disabled'"
1459
1469
  [id]="'basic-input-property-disabled'"
@@ -1464,7 +1474,7 @@ class BasicElementConfigEditor {
1464
1474
  [disabled]="false"
1465
1475
  [invalid]="false"
1466
1476
  [placeholder]="'Please select either true or false'"
1467
- ></kwikui-select-combobox>
1477
+ ></kwikui-input-select>
1468
1478
  </div>
1469
1479
  </fieldset>
1470
1480
 
@@ -1472,7 +1482,7 @@ class BasicElementConfigEditor {
1472
1482
  <fieldset>
1473
1483
  <legend class="form-group-title">Default</legend>
1474
1484
  <div class="form-group">
1475
- <kwikui-select-combobox
1485
+ <kwikui-input-select
1476
1486
  [options]="[true, false]"
1477
1487
  [label]="'value'"
1478
1488
  [id]="'basic-input-property-value'"
@@ -1485,7 +1495,7 @@ class BasicElementConfigEditor {
1485
1495
  [disabled]="false"
1486
1496
  [invalid]="false"
1487
1497
  [placeholder]="'Please select either true or false'"
1488
- ></kwikui-select-combobox>
1498
+ ></kwikui-input-select>
1489
1499
  </div>
1490
1500
  </fieldset>
1491
1501
  </div>
@@ -1554,7 +1564,7 @@ class BasicElementConfigEditor {
1554
1564
  ></kwikui-input-number>
1555
1565
  </div>
1556
1566
  <div class="form-group">
1557
- <kwikui-select-combobox
1567
+ <kwikui-input-select
1558
1568
  [options]="[true, false]"
1559
1569
  [label]="'required'"
1560
1570
  [id]="'basic-input-property-required'"
@@ -1567,7 +1577,7 @@ class BasicElementConfigEditor {
1567
1577
  [disabled]="false"
1568
1578
  [invalid]="false"
1569
1579
  [placeholder]="'Please select either true or false'"
1570
- ></kwikui-select-combobox>
1580
+ ></kwikui-input-select>
1571
1581
  </div>
1572
1582
  </fieldset>
1573
1583
  </div>
@@ -1593,7 +1603,7 @@ class BasicElementConfigEditor {
1593
1603
  ></kwikui-input>
1594
1604
  </div>
1595
1605
  <div class="form-group">
1596
- <kwikui-select-combobox
1606
+ <kwikui-input-select
1597
1607
  [options]="[true, false]"
1598
1608
  [label]="'readOnly'"
1599
1609
  [id]="'basic-input-property-readOnly'"
@@ -1606,7 +1616,7 @@ class BasicElementConfigEditor {
1606
1616
  [disabled]="false"
1607
1617
  [invalid]="false"
1608
1618
  [placeholder]="'Please select either true or false'"
1609
- ></kwikui-select-combobox>
1619
+ ></kwikui-input-select>
1610
1620
  </div>
1611
1621
  </fieldset>
1612
1622
  </div>
@@ -1633,12 +1643,12 @@ class BasicElementConfigEditor {
1633
1643
  (updateElement)="handleOnSaveUpdateElement($event)"
1634
1644
  ></basic-radio-config-editor>
1635
1645
  </ng-container>
1636
- <ng-container *ngSwitchCase="'dropdown-with-search'">
1637
- <basic-dropdown-with-search-config-editor
1646
+ <ng-container *ngSwitchCase="'select'">
1647
+ <basic-select-config-editor
1638
1648
  [saveBasicClickCounter]="saveBasicClickCounter"
1639
1649
  [elementConfig]="elementConfig"
1640
1650
  (updateElement)="handleOnSaveUpdateElement($event)"
1641
- ></basic-dropdown-with-search-config-editor>
1651
+ ></basic-select-config-editor>
1642
1652
  </ng-container>
1643
1653
  <ng-container *ngSwitchCase="'checkbox'">
1644
1654
  <basic-checkbox-config-editor
@@ -1670,7 +1680,7 @@ class BasicElementConfigEditor {
1670
1680
  </ng-container>
1671
1681
  </ng-container>
1672
1682
  </form>
1673
- `, isInline: true, styles: ["\n :host {\n display: flex;\n flex-direction: column;\n align-content: center;\n justify-content: flex-start;\n align-items: stretch;\n gap: 1rem;\n }\n "], components: [{ type: i1.KwikUITableComponent, selector: "kwikui-table", inputs: ["id", "columns", "headers", "data"], outputs: ["onClick"] }, { type: i1.KwikUIInputComponent, selector: "kwikui-input", inputs: ["label", "id", "type", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "validators", "case", "size", "icon", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUISelectComboboxComponent, selector: "kwikui-select-combobox", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "options", "size", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIInputNumberComponent, selector: "kwikui-input-number", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "min", "max", "prefix", "postfix", "precision", "decimal", "size", "validators", "properties"], outputs: ["getKeyValue"] }, { type: BasicTextConfigEditor, selector: "basic-text-config-editor", inputs: ["saveBasicClickCounter", "elementConfig"], outputs: ["updateElement"] }, { type: BasicNumberConfigEditor, selector: "basic-number-config-editor", inputs: ["saveBasicClickCounter", "elementConfig"], outputs: ["updateElement"] }, { type: BasicRadioConfigEditor, selector: "basic-radio-config-editor", inputs: ["saveBasicClickCounter", "elementConfig"], outputs: ["updateElement"] }, { type: BasicDropdownWithSearchConfigEditor, selector: "basic-dropdown-with-search-config-editor", inputs: ["saveBasicClickCounter", "elementConfig"], outputs: ["updateElement"] }, { type: BasicCheckboxConfigEditor, selector: "basic-checkbox-config-editor", inputs: ["saveBasicClickCounter", "elementConfig"], outputs: ["updateElement"] }, { type: BasicOtpConfigEditor, selector: "basic-otp-config-editor", inputs: ["saveBasicClickCounter", "elementConfig"], outputs: ["updateElement"] }, { type: BasicPhoneConfigEditor, selector: "basic-phone-config-editor", inputs: ["saveBasicClickCounter", "elementConfig"], outputs: ["updateElement"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] });
1683
+ `, isInline: true, styles: ["\n :host {\n display: flex;\n flex-direction: column;\n align-content: center;\n justify-content: flex-start;\n align-items: stretch;\n gap: 1rem;\n }\n "], components: [{ type: i1.KwikUITableComponent, selector: "kwikui-table", inputs: ["id", "columns", "headers", "data"], outputs: ["onClick"] }, { type: i1.KwikUIInputComponent, selector: "kwikui-input", inputs: ["label", "id", "type", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "validators", "case", "size", "icon", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIInputSelectComponent, selector: "kwikui-input-select", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "options", "size", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIInputNumberComponent, selector: "kwikui-input-number", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "min", "max", "prefix", "postfix", "precision", "decimal", "size", "validators", "properties"], outputs: ["getKeyValue"] }, { type: BasicTextConfigEditor, selector: "basic-text-config-editor", inputs: ["saveBasicClickCounter", "elementConfig"], outputs: ["updateElement"] }, { type: BasicNumberConfigEditor, selector: "basic-number-config-editor", inputs: ["saveBasicClickCounter", "elementConfig"], outputs: ["updateElement"] }, { type: BasicRadioConfigEditor, selector: "basic-radio-config-editor", inputs: ["saveBasicClickCounter", "elementConfig"], outputs: ["updateElement"] }, { type: BasicSelectConfigEditor, selector: "basic-select-config-editor", inputs: ["saveBasicClickCounter", "elementConfig"], outputs: ["updateElement"] }, { type: BasicCheckboxConfigEditor, selector: "basic-checkbox-config-editor", inputs: ["saveBasicClickCounter", "elementConfig"], outputs: ["updateElement"] }, { type: BasicOtpConfigEditor, selector: "basic-otp-config-editor", inputs: ["saveBasicClickCounter", "elementConfig"], outputs: ["updateElement"] }, { type: BasicPhoneConfigEditor, selector: "basic-phone-config-editor", inputs: ["saveBasicClickCounter", "elementConfig"], outputs: ["updateElement"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] });
1674
1684
  __decorate([
1675
1685
  logMethod
1676
1686
  ], BasicElementConfigEditor.prototype, "ngOnInit", null);
@@ -1743,7 +1753,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1743
1753
  ></kwikui-input>
1744
1754
  </div>
1745
1755
  <div class="form-group">
1746
- <kwikui-select-combobox
1756
+ <kwikui-input-select
1747
1757
  [options]="[true, false]"
1748
1758
  [label]="'Disabled'"
1749
1759
  [id]="'basic-input-property-disabled'"
@@ -1754,7 +1764,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1754
1764
  [disabled]="false"
1755
1765
  [invalid]="false"
1756
1766
  [placeholder]="'Please select either true or false'"
1757
- ></kwikui-select-combobox>
1767
+ ></kwikui-input-select>
1758
1768
  </div>
1759
1769
  </fieldset>
1760
1770
 
@@ -1762,7 +1772,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1762
1772
  <fieldset>
1763
1773
  <legend class="form-group-title">Default</legend>
1764
1774
  <div class="form-group">
1765
- <kwikui-select-combobox
1775
+ <kwikui-input-select
1766
1776
  [options]="[true, false]"
1767
1777
  [label]="'value'"
1768
1778
  [id]="'basic-input-property-value'"
@@ -1775,7 +1785,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1775
1785
  [disabled]="false"
1776
1786
  [invalid]="false"
1777
1787
  [placeholder]="'Please select either true or false'"
1778
- ></kwikui-select-combobox>
1788
+ ></kwikui-input-select>
1779
1789
  </div>
1780
1790
  </fieldset>
1781
1791
  </div>
@@ -1844,7 +1854,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1844
1854
  ></kwikui-input-number>
1845
1855
  </div>
1846
1856
  <div class="form-group">
1847
- <kwikui-select-combobox
1857
+ <kwikui-input-select
1848
1858
  [options]="[true, false]"
1849
1859
  [label]="'required'"
1850
1860
  [id]="'basic-input-property-required'"
@@ -1857,7 +1867,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1857
1867
  [disabled]="false"
1858
1868
  [invalid]="false"
1859
1869
  [placeholder]="'Please select either true or false'"
1860
- ></kwikui-select-combobox>
1870
+ ></kwikui-input-select>
1861
1871
  </div>
1862
1872
  </fieldset>
1863
1873
  </div>
@@ -1883,7 +1893,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1883
1893
  ></kwikui-input>
1884
1894
  </div>
1885
1895
  <div class="form-group">
1886
- <kwikui-select-combobox
1896
+ <kwikui-input-select
1887
1897
  [options]="[true, false]"
1888
1898
  [label]="'readOnly'"
1889
1899
  [id]="'basic-input-property-readOnly'"
@@ -1896,7 +1906,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1896
1906
  [disabled]="false"
1897
1907
  [invalid]="false"
1898
1908
  [placeholder]="'Please select either true or false'"
1899
- ></kwikui-select-combobox>
1909
+ ></kwikui-input-select>
1900
1910
  </div>
1901
1911
  </fieldset>
1902
1912
  </div>
@@ -1923,12 +1933,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1923
1933
  (updateElement)="handleOnSaveUpdateElement($event)"
1924
1934
  ></basic-radio-config-editor>
1925
1935
  </ng-container>
1926
- <ng-container *ngSwitchCase="'dropdown-with-search'">
1927
- <basic-dropdown-with-search-config-editor
1936
+ <ng-container *ngSwitchCase="'select'">
1937
+ <basic-select-config-editor
1928
1938
  [saveBasicClickCounter]="saveBasicClickCounter"
1929
1939
  [elementConfig]="elementConfig"
1930
1940
  (updateElement)="handleOnSaveUpdateElement($event)"
1931
- ></basic-dropdown-with-search-config-editor>
1941
+ ></basic-select-config-editor>
1932
1942
  </ng-container>
1933
1943
  <ng-container *ngSwitchCase="'checkbox'">
1934
1944
  <basic-checkbox-config-editor
@@ -2161,7 +2171,7 @@ class DocumentPanNumberConfigEditor {
2161
2171
  <fieldset>
2162
2172
  <legend class="form-group-title">Miscellaneous</legend>
2163
2173
  <div class="form-group">
2164
- <kwikui-select-combobox
2174
+ <kwikui-input-select
2165
2175
  [options]="['default', 'upper', 'lower']"
2166
2176
  [label]="'case'"
2167
2177
  [id]="'document-pan-number-config-case'"
@@ -2175,12 +2185,12 @@ class DocumentPanNumberConfigEditor {
2175
2185
  [disabled]="false"
2176
2186
  [invalid]="false"
2177
2187
  [placeholder]="'Please select either true or false'"
2178
- ></kwikui-select-combobox>
2188
+ ></kwikui-input-select>
2179
2189
  </div>
2180
2190
  </fieldset>
2181
2191
  </div>
2182
2192
  </form>
2183
- `, isInline: true, styles: [""], components: [{ type: i1.KwikUISelectComboboxComponent, selector: "kwikui-select-combobox", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "options", "size", "validators", "properties"], outputs: ["getKeyValue"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
2193
+ `, isInline: true, styles: [""], components: [{ type: i1.KwikUIInputSelectComponent, selector: "kwikui-input-select", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "options", "size", "validators", "properties"], outputs: ["getKeyValue"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
2184
2194
  __decorate([
2185
2195
  logMethod
2186
2196
  ], DocumentPanNumberConfigEditor.prototype, "ngOnInit", null);
@@ -2203,7 +2213,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2203
2213
  <fieldset>
2204
2214
  <legend class="form-group-title">Miscellaneous</legend>
2205
2215
  <div class="form-group">
2206
- <kwikui-select-combobox
2216
+ <kwikui-input-select
2207
2217
  [options]="['default', 'upper', 'lower']"
2208
2218
  [label]="'case'"
2209
2219
  [id]="'document-pan-number-config-case'"
@@ -2217,7 +2227,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2217
2227
  [disabled]="false"
2218
2228
  [invalid]="false"
2219
2229
  [placeholder]="'Please select either true or false'"
2220
- ></kwikui-select-combobox>
2230
+ ></kwikui-input-select>
2221
2231
  </div>
2222
2232
  </fieldset>
2223
2233
  </div>
@@ -2387,7 +2397,7 @@ class DocumentElementConfigEditor {
2387
2397
  ></kwikui-input>
2388
2398
  </div>
2389
2399
  <div class="form-group">
2390
- <kwikui-select-combobox
2400
+ <kwikui-input-select
2391
2401
  [options]="[true, false]"
2392
2402
  [label]="'Disabled'"
2393
2403
  [id]="'document-input-property-disabled'"
@@ -2398,7 +2408,7 @@ class DocumentElementConfigEditor {
2398
2408
  [disabled]="false"
2399
2409
  [invalid]="false"
2400
2410
  [placeholder]="'Please select either true or false'"
2401
- ></kwikui-select-combobox>
2411
+ ></kwikui-input-select>
2402
2412
  </div>
2403
2413
  </fieldset>
2404
2414
 
@@ -2406,7 +2416,7 @@ class DocumentElementConfigEditor {
2406
2416
  <fieldset>
2407
2417
  <legend class="form-group-title">Default</legend>
2408
2418
  <div class="form-group">
2409
- <kwikui-select-combobox
2419
+ <kwikui-input-select
2410
2420
  size="m"
2411
2421
  [options]="[true, false]"
2412
2422
  [label]="'value'"
@@ -2419,7 +2429,7 @@ class DocumentElementConfigEditor {
2419
2429
  [disabled]="false"
2420
2430
  [invalid]="false"
2421
2431
  [placeholder]="'Please select either true or false'"
2422
- ></kwikui-select-combobox>
2432
+ ></kwikui-input-select>
2423
2433
  </div>
2424
2434
  </fieldset>
2425
2435
  </div>
@@ -2488,7 +2498,7 @@ class DocumentElementConfigEditor {
2488
2498
  ></kwikui-input-number>
2489
2499
  </div>
2490
2500
  <div class="form-group">
2491
- <kwikui-select-combobox
2501
+ <kwikui-input-select
2492
2502
  size="m"
2493
2503
  [options]="[true, false]"
2494
2504
  [label]="'required'"
@@ -2501,7 +2511,7 @@ class DocumentElementConfigEditor {
2501
2511
  [disabled]="false"
2502
2512
  [invalid]="false"
2503
2513
  [placeholder]="'Please select either true or false'"
2504
- ></kwikui-select-combobox>
2514
+ ></kwikui-input-select>
2505
2515
  </div>
2506
2516
  </fieldset>
2507
2517
  </div>
@@ -2527,7 +2537,7 @@ class DocumentElementConfigEditor {
2527
2537
  ></kwikui-input>
2528
2538
  </div>
2529
2539
  <div class="form-group">
2530
- <kwikui-select-combobox
2540
+ <kwikui-input-select
2531
2541
  [options]="[true, false]"
2532
2542
  [label]="'readOnly'"
2533
2543
  [id]="'document-input-property-readOnly'"
@@ -2540,7 +2550,7 @@ class DocumentElementConfigEditor {
2540
2550
  [disabled]="false"
2541
2551
  [invalid]="false"
2542
2552
  [placeholder]="'Please select either true or false'"
2543
- ></kwikui-select-combobox>
2553
+ ></kwikui-input-select>
2544
2554
  </div>
2545
2555
  </fieldset>
2546
2556
  </div>
@@ -2562,7 +2572,7 @@ class DocumentElementConfigEditor {
2562
2572
  </ng-container>
2563
2573
  </ng-container>
2564
2574
  </form>
2565
- `, isInline: true, styles: ["\n :host {\n display: flex;\n flex-direction: column;\n align-content: center;\n justify-content: flex-start;\n align-items: stretch;\n gap: 1rem;\n }\n "], components: [{ type: i1.KwikUITableComponent, selector: "kwikui-table", inputs: ["id", "columns", "headers", "data"], outputs: ["onClick"] }, { type: i1.KwikUIInputComponent, selector: "kwikui-input", inputs: ["label", "id", "type", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "validators", "case", "size", "icon", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUISelectComboboxComponent, selector: "kwikui-select-combobox", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "options", "size", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIInputNumberComponent, selector: "kwikui-input-number", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "min", "max", "prefix", "postfix", "precision", "decimal", "size", "validators", "properties"], outputs: ["getKeyValue"] }, { type: DocumentAadhaarNumberConfigEditor, selector: "document-aadhaar-number-config-editor", inputs: ["saveDocumentClickCounter", "elementConfig"], outputs: ["updateElement"] }, { type: DocumentPanNumberConfigEditor, selector: "document-pan-number-config-editor", inputs: ["saveDocumentClickCounter", "elementConfig"], outputs: ["updateElement"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] });
2575
+ `, isInline: true, styles: ["\n :host {\n display: flex;\n flex-direction: column;\n align-content: center;\n justify-content: flex-start;\n align-items: stretch;\n gap: 1rem;\n }\n "], components: [{ type: i1.KwikUITableComponent, selector: "kwikui-table", inputs: ["id", "columns", "headers", "data"], outputs: ["onClick"] }, { type: i1.KwikUIInputComponent, selector: "kwikui-input", inputs: ["label", "id", "type", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "validators", "case", "size", "icon", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIInputSelectComponent, selector: "kwikui-input-select", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "options", "size", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIInputNumberComponent, selector: "kwikui-input-number", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "min", "max", "prefix", "postfix", "precision", "decimal", "size", "validators", "properties"], outputs: ["getKeyValue"] }, { type: DocumentAadhaarNumberConfigEditor, selector: "document-aadhaar-number-config-editor", inputs: ["saveDocumentClickCounter", "elementConfig"], outputs: ["updateElement"] }, { type: DocumentPanNumberConfigEditor, selector: "document-pan-number-config-editor", inputs: ["saveDocumentClickCounter", "elementConfig"], outputs: ["updateElement"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] });
2566
2576
  __decorate([
2567
2577
  logMethod
2568
2578
  ], DocumentElementConfigEditor.prototype, "ngOnInit", null);
@@ -2635,7 +2645,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2635
2645
  ></kwikui-input>
2636
2646
  </div>
2637
2647
  <div class="form-group">
2638
- <kwikui-select-combobox
2648
+ <kwikui-input-select
2639
2649
  [options]="[true, false]"
2640
2650
  [label]="'Disabled'"
2641
2651
  [id]="'document-input-property-disabled'"
@@ -2646,7 +2656,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2646
2656
  [disabled]="false"
2647
2657
  [invalid]="false"
2648
2658
  [placeholder]="'Please select either true or false'"
2649
- ></kwikui-select-combobox>
2659
+ ></kwikui-input-select>
2650
2660
  </div>
2651
2661
  </fieldset>
2652
2662
 
@@ -2654,7 +2664,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2654
2664
  <fieldset>
2655
2665
  <legend class="form-group-title">Default</legend>
2656
2666
  <div class="form-group">
2657
- <kwikui-select-combobox
2667
+ <kwikui-input-select
2658
2668
  size="m"
2659
2669
  [options]="[true, false]"
2660
2670
  [label]="'value'"
@@ -2667,7 +2677,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2667
2677
  [disabled]="false"
2668
2678
  [invalid]="false"
2669
2679
  [placeholder]="'Please select either true or false'"
2670
- ></kwikui-select-combobox>
2680
+ ></kwikui-input-select>
2671
2681
  </div>
2672
2682
  </fieldset>
2673
2683
  </div>
@@ -2736,7 +2746,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2736
2746
  ></kwikui-input-number>
2737
2747
  </div>
2738
2748
  <div class="form-group">
2739
- <kwikui-select-combobox
2749
+ <kwikui-input-select
2740
2750
  size="m"
2741
2751
  [options]="[true, false]"
2742
2752
  [label]="'required'"
@@ -2749,7 +2759,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2749
2759
  [disabled]="false"
2750
2760
  [invalid]="false"
2751
2761
  [placeholder]="'Please select either true or false'"
2752
- ></kwikui-select-combobox>
2762
+ ></kwikui-input-select>
2753
2763
  </div>
2754
2764
  </fieldset>
2755
2765
  </div>
@@ -2775,7 +2785,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2775
2785
  ></kwikui-input>
2776
2786
  </div>
2777
2787
  <div class="form-group">
2778
- <kwikui-select-combobox
2788
+ <kwikui-input-select
2779
2789
  [options]="[true, false]"
2780
2790
  [label]="'readOnly'"
2781
2791
  [id]="'document-input-property-readOnly'"
@@ -2788,7 +2798,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2788
2798
  [disabled]="false"
2789
2799
  [invalid]="false"
2790
2800
  [placeholder]="'Please select either true or false'"
2791
- ></kwikui-select-combobox>
2801
+ ></kwikui-input-select>
2792
2802
  </div>
2793
2803
  </fieldset>
2794
2804
  </div>
@@ -3600,7 +3610,7 @@ class KwikIDFormsBuilderComponent {
3600
3610
  }
3601
3611
  }
3602
3612
  /** @nocollapse */ KwikIDFormsBuilderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormsBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3603
- /** @nocollapse */ KwikIDFormsBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDFormsBuilderComponent, selector: "kwikid-forms-builder", ngImport: i0, template: "<div class=\"container\">\n <div class=\"wrapper\">\n <div class=\"builder-header\">\n <div class=\"builder-title\">KwikID Form Builder</div>\n <form\n [formGroup]=\"builderFormGroup\"\n class=\"builder-form\"\n >\n <kwikui-input\n [label]=\"'Form Key'\"\n [id]=\"'form_key'\"\n [type]=\"'text'\"\n [formControlName]=\"'formKey'\"\n [formControl]=\"builderFormGroup.controls['formKey']\"\n [disabled]=\"false\"\n [placeholder]=\"'Please enter a Form Key'\"\n [focus]=\"false\"\n [invalid]=\"false\"\n [case]=\"'upper'\"\n size=\"m\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input>\n <kwikui-input\n [label]=\"'Form Title'\"\n [id]=\"'form_title'\"\n [type]=\"'text'\"\n [formControlName]=\"'formTitle'\"\n [formControl]=\"builderFormGroup.controls['formTitle']\"\n [disabled]=\"false\"\n [placeholder]=\"'Please enter a Form Title'\"\n [focus]=\"false\"\n [invalid]=\"false\"\n [case]=\"'default'\"\n size=\"m\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input>\n <kwikui-button\n [disabled]=\"!builderFormGroup.valid\"\n id=\"save_form_btn\"\n label=\"Save Form\"\n [showLoader]=\"false\"\n styles=\"\"\n class=\"\"\n type=\"button\"\n appearance=\"primary\"\n icon=\"\"\n iconRight=\"\"\n size=\"m\"\n (onClick)=\"handleOnClickSaveForms($event)\"\n ></kwikui-button>\n </form>\n </div>\n <div class=\"builder-body\">\n <div class=\"form-elements-drag-wrapper\">\n <div\n class=\"form-elements-drag\"\n cdkDropList\n [cdkDropListData]=\"formElementsDragList\"\n cdkDropListSortingDisabled\n [cdkDropListConnectedTo]=\"[formElementsList]\"\n (cdkDropListExited)=\"exit($event, 'other')\"\n (cdkDropListEntered)=\"enter($event, 'other')\"\n >\n <ng-container\n *ngFor=\"let formElementDragItem of formElementsDragList\"\n >\n <ng-container *ngIf=\"formElementDragItem.isElement\">\n <div\n class=\"form-element-drag\"\n cdkDrag\n [cdkDragData]=\"formElementDragItem\"\n >\n &#8942;&#8942;&nbsp;&nbsp;{{ formElementDragItem.elementTitle }}\n <!-- <ng-container *ngComponentOutlet=\"formElementDragItem.component\"></ng-container> -->\n </div>\n <div\n class=\"form-element-drag\"\n *cdkDragPlaceholder\n >\n {{ formElementDragItem.elementTitle }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"!formElementDragItem.isElement\">\n <div class=\"form-element-category\">\n {{ formElementDragItem.elementTitle }}\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div\n class=\"form-elements-drop-wrapper\"\n cdkDropList\n #formElementsList=\"cdkDropList\"\n [cdkDropListData]=\"formElementsDropList\"\n (cdkDropListDropped)=\"drop($event, '')\"\n [cdkDropListEnterPredicate]=\"isElementPredicate\"\n >\n <ng-container\n *ngFor=\"\n let formElementDropItem of formElementsDropList;\n let idx = index\n \"\n >\n <div\n class=\"form-drop-element\"\n cdkDrag\n >\n <div class=\"form-drop-element-grab-symbol\">&#8942;&#8942;</div>\n <div class=\"form-drop-element-main\">\n <div class=\"form-drop-element-header\">\n <div class=\"form-drop-element-title\">\n {{ formElementDropItem.elementTitle }}\n </div>\n <div class=\"form-drop-element-actions\">\n <kwikui-button-icon\n [disabled]=\"false\"\n [id]=\"'edit-element'\"\n [showLoader]=\"false\"\n [styles]=\"\"\n [class]=\"\"\n [type]=\"'button'\"\n [appearance]=\"'secondary'\"\n [icon]=\"'tuiIconEdit'\"\n [shape]=\"'rounded'\"\n [size]=\"'s'\"\n (onClick)=\"editElement(idx, formElementDropItem)\"\n ></kwikui-button-icon>\n <kwikui-button-icon\n [disabled]=\"false\"\n [id]=\"'remove-element'\"\n [showLoader]=\"false\"\n [styles]=\"\"\n [class]=\"\"\n [type]=\"'button'\"\n [appearance]=\"'accent'\"\n [icon]=\"'tuiIconCloseLarge'\"\n [shape]=\"'rounded'\"\n [size]=\"'s'\"\n (onClick)=\"removeElement(idx, formElementDropItem)\"\n ></kwikui-button-icon>\n <!-- <button\n (click)=\"editElement(idx, formElementDropItem)\"\n title=\"edit element properties\"\n >\n &#9998;\n </button>\n <button\n (click)=\"removeElement(idx, formElementDropItem)\"\n title=\"delete element\"\n >\n &#10006;\n </button> -->\n </div>\n </div>\n <div class=\"form-drop-element-body\"> </div>\n <div class=\"form-drop-element-footer\">\n <div class=\"form-drop-element-id\">\n {{ formElementDropItem.elementId }}\n </div>\n <div class=\"form-drop-element-category\">\n {{ formElementDropItem.elementCategory }}\n </div>\n <div class=\"form-drop-element-type\">\n {{ formElementDropItem.elementType }}\n </div>\n </div>\n <div\n class=\"example-custom-placeholder\"\n *cdkDragPlaceholder\n ></div>\n <!-- <ng-container *ngComponentOutlet=\"formElementDropItem.component\"> </ng-container> -->\n <!-- <ng-container *ngTemplateOutlet=\"formModal; context: formElementDropItem\"></ng-container> -->\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"element-property-editor-wrapper\">\n <element-config-editor\n [elementConfig]=\"elementEditorElementConfig\"\n (updateElement)=\"handleOnSaveUpdateElement($event)\"\n ></element-config-editor>\n </div>\n </div>\n <div class=\"builder-footer\"> &copy; Baiju Dodhia, KwikID </div>\n </div>\n <div\n class=\"modal\"\n *ngIf=\"finalJSONConfig\"\n >\n <div class=\"modal-box\">\n <div class=\"modal-content\">\n <div class=\"modal-heading\">\n <div class=\"modal-title\">{{ formTitle }}</div>\n <div class=\"modal-actions\">\n <div\n class=\"modal-code-download\"\n (click)=\"downloadJSON()\"\n >Download JSON</div\n >\n <div\n class=\"modal-code-copy\"\n (click)=\"copyToClipboard()\"\n >Copy to Clipboard</div\n >\n <div\n class=\"modal-close\"\n (click)=\"closeJSONPopup()\"\n >\n Close\n </div>\n </div>\n </div>\n <pre>\n <code>{{JSON.stringify(finalJSONConfig, undefined, 2)}}</code>\n </pre>\n </div>\n </div>\n </div>\n</div>\n", styles: ["kwikid-forms-builder fieldset{display:flex;flex-direction:column;justify-content:center;align-items:stretch;align-content:center;grid-gap:.5rem;gap:.5rem;padding:.5rem 1rem 1rem;box-shadow:0 0 10px -6px #000;border:0px solid gray;border-radius:1rem}kwikid-forms-builder table,kwikid-forms-builder tr,kwikid-forms-builder td{border:1px solid black;padding:.5rem 1rem}kwikui-table table{width:100%;box-shadow:0 0 10px -6px #000;border:0px solid gray;padding:0}\n", ":host{all:unset;position:relative;width:100%;height:100%}.container{width:100%;height:100%;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center}.container .wrapper{width:100%;height:100%;display:flex;flex-direction:column;align-content:center;justify-content:space-between;align-items:stretch}.container .wrapper .builder-header{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-column-gap:1rem;column-gap:1rem;padding:1rem;max-height:max-content;border:1px solid lightgray;box-shadow:0 2px 10px -6px #000}.container .wrapper .builder-header .builder-title{font-weight:bold;display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center;font-size:1rem}.container .wrapper .builder-header .builder-form{display:flex;align-content:center;justify-content:flex-end;flex:1;flex-direction:row;align-items:center;grid-gap:1rem;gap:1rem;width:100%}.container .wrapper .builder-header .builder-form kwikui-input{width:16rem}.container .wrapper .builder-body{display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:stretch;grid-gap:1rem;gap:1rem;flex:1;padding:1rem;overflow:auto}.container .wrapper .builder-body>*{width:100%;border:1px solid lightgray;overflow:auto;box-shadow:0 2px 10px -6px #000}.container .wrapper .builder-body .form-elements-drag-wrapper{display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch;grid-gap:1rem;gap:1rem;padding:1rem;min-width:16rem;max-width:16rem}.container .wrapper .builder-body .form-elements-drag-wrapper .form-elements-drag{display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch;grid-gap:1rem;gap:1rem;border-bottom:none}.container .wrapper .builder-body .form-elements-drag-wrapper .form-elements-drag .form-element-drag{display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center;grid-gap:1rem;gap:1rem;border-radius:.5rem;padding:1rem;cursor:grab;box-shadow:0 2px 10px -6px #000;text-transform:capitalize}.container .wrapper .builder-body .form-elements-drag-wrapper .form-elements-drag .form-element-category{display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center;grid-gap:1rem;gap:1rem;border-left:.25rem solid var(--tui-primary);padding:1rem;background:var(--tui-secondary)}.container .wrapper .builder-body .form-elements-drop-wrapper{padding:1rem;display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch;grid-gap:1rem;gap:1rem;min-width:20rem;max-width:28rem}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder{display:flex;justify-content:flex-start;justify-items:start;align-items:center;padding:1rem;border-radius:1rem;box-shadow:0 2px 10px -6px #000;cursor:grab;flex-direction:row;position:relative;grid-gap:1rem;gap:1rem}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main{flex:1;display:flex;justify-content:space-between;justify-items:start;align-items:stretch;flex-direction:column;width:100%;grid-gap:.5rem;gap:.5rem}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-header,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-header{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-column-gap:1rem;column-gap:1rem}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-header .form-drop-element-actions,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-header .form-drop-element-actions{display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-gap:1rem;gap:1rem}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-header .form-drop-element-actions button,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-header .form-drop-element-actions button{width:1.6rem;height:1.6rem;transform:rotate(90deg)!important}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-header .form-drop-element-actions button:first-child,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-header .form-drop-element-actions button:first-child{background-color:#dc143c!important;color:#fff!important}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-header .form-drop-element-actions button:last-child,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-header .form-drop-element-actions button:last-child{background-color:gray!important;color:#fff!important}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-body,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-body{border-top:1px dashed lightgray;border-bottom:1px dashed lightgray}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-footer,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-footer{display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center;grid-gap:.5rem;gap:.5rem}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-footer .form-drop-element-id,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-footer .form-drop-element-id{background:var(--tui-secondary);padding:0 .3rem;border-radius:1rem;color:var(--tui-primary)}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-footer .form-drop-element-category,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-footer .form-drop-element-category{background:var(--tui-primary);padding:0 .3rem;border-radius:1rem;color:#fff}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-footer .form-drop-element-type,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-footer .form-drop-element-type{background:var(--tui-positive);padding:0 .3rem;border-radius:1rem;color:#fff}.container .wrapper .builder-body .element-property-editor-wrapper{display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch;padding:1rem;min-width:20rem;grid-gap:1rem;gap:1rem}.container .wrapper .builder-footer{display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-column-gap:1rem;column-gap:1rem;padding:1rem;max-height:30px;border:1px solid lightgray;box-shadow:0 -2px 10px -6px #000;font-weight:bold}.cdk-drag-preview{width:-moz-fit-content;width:fit-content;height:auto;box-sizing:border-box;background-color:transparent;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;cursor:grabbing}.cdk-drag-placeholder{opacity:1}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-custom-placeholder{background:#ccc;border:dotted 3px #999;min-height:60px;transition:transform .25s cubic-bezier(0,0,.2,1)}.modal{position:absolute;background-color:#0000004d;width:100%;height:100%;display:flex;justify-content:center;align-items:center}.modal-box{width:75%;height:75%;margin:auto;background-color:#fff;border:1px solid lightgray;box-shadow:0 2px 10px -6px #000}.modal-content{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:center;width:100%;height:100%}.modal-heading{padding:1rem;width:100%;display:flex;flex-direction:row;justify-content:space-between;border:1px solid lightgray;box-shadow:0 2px 10px -6px #000}.modal-title{font-weight:bold;font-size:1rem}.modal-actions{display:flex;flex-direction:row;grid-gap:1rem;gap:1rem;cursor:pointer}pre{float:left;justify-content:center;width:100%;height:100%;box-sizing:border-box;overflow:auto}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}\n"], components: [{ type: i1.KwikUIInputComponent, selector: "kwikui-input", inputs: ["label", "id", "type", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "validators", "case", "size", "icon", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }, { type: i1.KwikUIButtonIconComponent, selector: "kwikui-button-icon", inputs: ["disabled", "id", "showLoader", "styles", "class", "type", "appearance", "icon", "shape", "size"], outputs: ["onClick"] }, { type: ElementConfigEditor, selector: "element-config-editor", inputs: ["formKey", "elementConfig"], outputs: ["updateElement"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "id", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListAutoScrollDisabled", "cdkDropListOrientation", "cdkDropListLockAxis", "cdkDropListData", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragDisabled", "cdkDragStartDelay", "cdkDragLockAxis", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragBoundary", "cdkDragRootElement", "cdkDragPreviewContainer", "cdkDragData", "cdkDragFreeDragPosition"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i4.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }] });
3613
+ /** @nocollapse */ KwikIDFormsBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDFormsBuilderComponent, selector: "kwikid-forms-builder", ngImport: i0, template: "<div class=\"container\">\n <div class=\"wrapper\">\n <div class=\"builder-header\">\n <div class=\"builder-title\">KwikID Form Builder</div>\n <form\n [formGroup]=\"builderFormGroup\"\n class=\"builder-form\"\n >\n <kwikui-input\n [label]=\"'Form Key'\"\n [id]=\"'form_key'\"\n [type]=\"'text'\"\n [formControlName]=\"'formKey'\"\n [formControl]=\"builderFormGroup.controls['formKey']\"\n [disabled]=\"false\"\n [placeholder]=\"'Please enter a Form Key'\"\n [focus]=\"false\"\n [invalid]=\"false\"\n [case]=\"'upper'\"\n size=\"m\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input>\n <kwikui-input\n [label]=\"'Form Title'\"\n [id]=\"'form_title'\"\n [type]=\"'text'\"\n [formControlName]=\"'formTitle'\"\n [formControl]=\"builderFormGroup.controls['formTitle']\"\n [disabled]=\"false\"\n [placeholder]=\"'Please enter a Form Title'\"\n [focus]=\"false\"\n [invalid]=\"false\"\n [case]=\"'default'\"\n size=\"m\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input>\n <kwikui-button\n [disabled]=\"!builderFormGroup.valid\"\n id=\"save_form_btn\"\n label=\"Save Form\"\n [showLoader]=\"false\"\n styles=\"\"\n class=\"\"\n type=\"button\"\n appearance=\"primary\"\n icon=\"\"\n iconRight=\"\"\n size=\"m\"\n (onClick)=\"handleOnClickSaveForms($event)\"\n ></kwikui-button>\n </form>\n </div>\n <div class=\"builder-body\">\n <div class=\"form-elements-drag-wrapper\">\n <div\n class=\"form-elements-drag\"\n cdkDropList\n [cdkDropListData]=\"formElementsDragList\"\n cdkDropListSortingDisabled\n [cdkDropListConnectedTo]=\"[formElementsList]\"\n (cdkDropListExited)=\"exit($event, 'other')\"\n (cdkDropListEntered)=\"enter($event, 'other')\"\n >\n <ng-container\n *ngFor=\"let formElementDragItem of formElementsDragList\"\n >\n <ng-container *ngIf=\"formElementDragItem.isElement\">\n <div\n class=\"form-element-drag\"\n cdkDrag\n [cdkDragData]=\"formElementDragItem\"\n >\n &#8942;&#8942;&nbsp;&nbsp;{{ formElementDragItem.elementTitle }}\n <!-- <ng-container *ngComponentOutlet=\"formElementDragItem.component\"></ng-container> -->\n </div>\n <div\n class=\"form-element-drag\"\n *cdkDragPlaceholder\n >\n {{ formElementDragItem.elementTitle }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"!formElementDragItem.isElement\">\n <div class=\"form-element-category\">\n {{ formElementDragItem.elementTitle }}\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div\n class=\"form-elements-drop-wrapper\"\n cdkDropList\n #formElementsList=\"cdkDropList\"\n [cdkDropListData]=\"formElementsDropList\"\n (cdkDropListDropped)=\"drop($event, '')\"\n [cdkDropListEnterPredicate]=\"isElementPredicate\"\n >\n <ng-container\n *ngFor=\"\n let formElementDropItem of formElementsDropList;\n let idx = index\n \"\n >\n <div\n class=\"form-drop-element\"\n cdkDrag\n >\n <div class=\"form-drop-element-grab-symbol\">&#8942;&#8942;</div>\n <div class=\"form-drop-element-main\">\n <div class=\"form-drop-element-header\">\n <div class=\"form-drop-element-title\">\n {{ formElementDropItem.elementTitle }}\n </div>\n <div class=\"form-drop-element-actions\">\n <kwikui-button\n [disabled]=\"false\"\n [id]=\"'edit-element'\"\n [showLoader]=\"false\"\n [styles]=\"\"\n [class]=\"\"\n [type]=\"'button'\"\n [appearance]=\"'secondary'\"\n [icon]=\"'tuiIconEdit'\"\n [shape]=\"'rounded'\"\n [size]=\"'s'\"\n (onClick)=\"editElement(idx, formElementDropItem)\"\n ></kwikui-button>\n <kwikui-button\n [disabled]=\"false\"\n [id]=\"'remove-element'\"\n [showLoader]=\"false\"\n [styles]=\"\"\n [class]=\"\"\n [type]=\"'button'\"\n [appearance]=\"'accent'\"\n [icon]=\"'tuiIconCloseLarge'\"\n [shape]=\"'rounded'\"\n [size]=\"'s'\"\n (onClick)=\"removeElement(idx, formElementDropItem)\"\n ></kwikui-button>\n <!-- <button\n (click)=\"editElement(idx, formElementDropItem)\"\n title=\"edit element properties\"\n >\n &#9998;\n </button>\n <button\n (click)=\"removeElement(idx, formElementDropItem)\"\n title=\"delete element\"\n >\n &#10006;\n </button> -->\n </div>\n </div>\n <div class=\"form-drop-element-body\"> </div>\n <div class=\"form-drop-element-footer\">\n <div class=\"form-drop-element-id\">\n {{ formElementDropItem.elementId }}\n </div>\n <div class=\"form-drop-element-category\">\n {{ formElementDropItem.elementCategory }}\n </div>\n <div class=\"form-drop-element-type\">\n {{ formElementDropItem.elementType }}\n </div>\n </div>\n <div\n class=\"example-custom-placeholder\"\n *cdkDragPlaceholder\n ></div>\n <!-- <ng-container *ngComponentOutlet=\"formElementDropItem.component\"> </ng-container> -->\n <!-- <ng-container *ngTemplateOutlet=\"formModal; context: formElementDropItem\"></ng-container> -->\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"element-property-editor-wrapper\">\n <element-config-editor\n [elementConfig]=\"elementEditorElementConfig\"\n (updateElement)=\"handleOnSaveUpdateElement($event)\"\n ></element-config-editor>\n </div>\n </div>\n <div class=\"builder-footer\"> &copy; Baiju Dodhia, KwikID </div>\n </div>\n <div\n class=\"modal\"\n *ngIf=\"finalJSONConfig\"\n >\n <div class=\"modal-box\">\n <div class=\"modal-content\">\n <div class=\"modal-heading\">\n <div class=\"modal-title\">{{ formTitle }}</div>\n <div class=\"modal-actions\">\n <div\n class=\"modal-code-download\"\n (click)=\"downloadJSON()\"\n >Download JSON</div\n >\n <div\n class=\"modal-code-copy\"\n (click)=\"copyToClipboard()\"\n >Copy to Clipboard</div\n >\n <div\n class=\"modal-close\"\n (click)=\"closeJSONPopup()\"\n >\n Close\n </div>\n </div>\n </div>\n <pre>\n <code>{{JSON.stringify(finalJSONConfig, undefined, 2)}}</code>\n </pre>\n </div>\n </div>\n </div>\n</div>\n", styles: ["kwikid-forms-builder fieldset{display:flex;flex-direction:column;justify-content:center;align-items:stretch;align-content:center;grid-gap:.5rem;gap:.5rem;padding:.5rem 1rem 1rem;box-shadow:0 0 10px -6px #000;border:0px solid gray;border-radius:1rem}kwikid-forms-builder table,kwikid-forms-builder tr,kwikid-forms-builder td{border:1px solid black;padding:.5rem 1rem}kwikui-table table{width:100%;box-shadow:0 0 10px -6px #000;border:0px solid gray;padding:0}\n", ":host{all:unset;position:relative;width:100%;height:100%}.container{width:100%;height:100%;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center}.container .wrapper{width:100%;height:100%;display:flex;flex-direction:column;align-content:center;justify-content:space-between;align-items:stretch}.container .wrapper .builder-header{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-column-gap:1rem;column-gap:1rem;padding:1rem;max-height:max-content;border:1px solid lightgray;box-shadow:0 2px 10px -6px #000}.container .wrapper .builder-header .builder-title{font-weight:bold;display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center;font-size:1rem}.container .wrapper .builder-header .builder-form{display:flex;align-content:center;justify-content:flex-end;flex:1;flex-direction:row;align-items:center;grid-gap:1rem;gap:1rem;width:100%}.container .wrapper .builder-header .builder-form kwikui-input{width:16rem}.container .wrapper .builder-body{display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:stretch;grid-gap:1rem;gap:1rem;flex:1;padding:1rem;overflow:auto}.container .wrapper .builder-body>*{width:100%;border:1px solid lightgray;overflow:auto;box-shadow:0 2px 10px -6px #000}.container .wrapper .builder-body .form-elements-drag-wrapper{display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch;grid-gap:1rem;gap:1rem;padding:1rem;min-width:16rem;max-width:16rem}.container .wrapper .builder-body .form-elements-drag-wrapper .form-elements-drag{display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch;grid-gap:1rem;gap:1rem;border-bottom:none}.container .wrapper .builder-body .form-elements-drag-wrapper .form-elements-drag .form-element-drag{display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center;grid-gap:1rem;gap:1rem;border-radius:.5rem;padding:1rem;cursor:grab;box-shadow:0 2px 10px -6px #000;text-transform:capitalize}.container .wrapper .builder-body .form-elements-drag-wrapper .form-elements-drag .form-element-category{display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center;grid-gap:1rem;gap:1rem;border-left:.25rem solid var(--tui-primary);padding:1rem;background:var(--tui-secondary)}.container .wrapper .builder-body .form-elements-drop-wrapper{padding:1rem;display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch;grid-gap:1rem;gap:1rem;min-width:20rem;max-width:28rem}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder{display:flex;justify-content:flex-start;justify-items:start;align-items:center;padding:1rem;border-radius:1rem;box-shadow:0 2px 10px -6px #000;cursor:grab;flex-direction:row;position:relative;grid-gap:1rem;gap:1rem}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main{flex:1;display:flex;justify-content:space-between;justify-items:start;align-items:stretch;flex-direction:column;width:100%;grid-gap:.5rem;gap:.5rem}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-header,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-header{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-column-gap:1rem;column-gap:1rem}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-header .form-drop-element-actions,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-header .form-drop-element-actions{display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-gap:1rem;gap:1rem}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-header .form-drop-element-actions button,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-header .form-drop-element-actions button{width:1.6rem;height:1.6rem;transform:rotate(90deg)!important}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-header .form-drop-element-actions button:first-child,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-header .form-drop-element-actions button:first-child{background-color:#dc143c!important;color:#fff!important}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-header .form-drop-element-actions button:last-child,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-header .form-drop-element-actions button:last-child{background-color:gray!important;color:#fff!important}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-body,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-body{border-top:1px dashed lightgray;border-bottom:1px dashed lightgray}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-footer,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-footer{display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center;grid-gap:.5rem;gap:.5rem}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-footer .form-drop-element-id,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-footer .form-drop-element-id{background:var(--tui-secondary);padding:0 .3rem;border-radius:1rem;color:var(--tui-primary)}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-footer .form-drop-element-category,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-footer .form-drop-element-category{background:var(--tui-primary);padding:0 .3rem;border-radius:1rem;color:#fff}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-footer .form-drop-element-type,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-footer .form-drop-element-type{background:var(--tui-positive);padding:0 .3rem;border-radius:1rem;color:#fff}.container .wrapper .builder-body .element-property-editor-wrapper{display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch;padding:1rem;min-width:20rem;grid-gap:1rem;gap:1rem}.container .wrapper .builder-footer{display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-column-gap:1rem;column-gap:1rem;padding:1rem;max-height:30px;border:1px solid lightgray;box-shadow:0 -2px 10px -6px #000;font-weight:bold}.cdk-drag-preview{width:-moz-fit-content;width:fit-content;height:auto;box-sizing:border-box;background-color:transparent;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;cursor:grabbing}.cdk-drag-placeholder{opacity:1}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-custom-placeholder{background:#ccc;border:dotted 3px #999;min-height:60px;transition:transform .25s cubic-bezier(0,0,.2,1)}.modal{position:absolute;background-color:#0000004d;width:100%;height:100%;display:flex;justify-content:center;align-items:center}.modal-box{width:75%;height:75%;margin:auto;background-color:#fff;border:1px solid lightgray;box-shadow:0 2px 10px -6px #000}.modal-content{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:center;width:100%;height:100%}.modal-heading{padding:1rem;width:100%;display:flex;flex-direction:row;justify-content:space-between;border:1px solid lightgray;box-shadow:0 2px 10px -6px #000}.modal-title{font-weight:bold;font-size:1rem}.modal-actions{display:flex;flex-direction:row;grid-gap:1rem;gap:1rem;cursor:pointer}pre{float:left;justify-content:center;width:100%;height:100%;box-sizing:border-box;overflow:auto}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}\n"], components: [{ type: i1.KwikUIInputComponent, selector: "kwikui-input", inputs: ["label", "id", "type", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "validators", "case", "size", "icon", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }, { type: ElementConfigEditor, selector: "element-config-editor", inputs: ["formKey", "elementConfig"], outputs: ["updateElement"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "id", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListAutoScrollDisabled", "cdkDropListOrientation", "cdkDropListLockAxis", "cdkDropListData", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragDisabled", "cdkDragStartDelay", "cdkDragLockAxis", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragBoundary", "cdkDragRootElement", "cdkDragPreviewContainer", "cdkDragData", "cdkDragFreeDragPosition"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i4.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }] });
3604
3614
  __decorate([
3605
3615
  logMethod
3606
3616
  ], KwikIDFormsBuilderComponent.prototype, "handleGetKeyValue", null);
@@ -3615,21 +3625,697 @@ __decorate([
3615
3625
  ], KwikIDFormsBuilderComponent.prototype, "enter", null);
3616
3626
  __decorate([
3617
3627
  logMethod
3618
- ], KwikIDFormsBuilderComponent.prototype, "removeElement", null);
3628
+ ], KwikIDFormsBuilderComponent.prototype, "removeElement", null);
3629
+ __decorate([
3630
+ logMethod
3631
+ ], KwikIDFormsBuilderComponent.prototype, "editElement", null);
3632
+ __decorate([
3633
+ logMethod
3634
+ ], KwikIDFormsBuilderComponent.prototype, "handleOnSaveUpdateElement", null);
3635
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormsBuilderComponent, decorators: [{
3636
+ type: Component,
3637
+ args: [{
3638
+ selector: "kwikid-forms-builder",
3639
+ templateUrl: "./builder.component.html",
3640
+ styleUrls: ["shared/shared.scss", "./builder.component.scss"]
3641
+ }]
3642
+ }], ctorParameters: function () { return []; }, propDecorators: { handleGetKeyValue: [], drop: [], exit: [], enter: [], removeElement: [], editElement: [], handleOnSaveUpdateElement: [] } });
3643
+
3644
+ class KwikIDBuilderFormsListComponent {
3645
+ constructor() {
3646
+ this.activeFormConfig = {};
3647
+ this.formsList = [];
3648
+ this.onClickSetActiveForm = new EventEmitter();
3649
+ this.loader = false;
3650
+ this.selectedForm = "";
3651
+ this.addForm = new FormGroup({
3652
+ key: new FormControl("", Validators.required),
3653
+ title: new FormControl("", Validators.required)
3654
+ });
3655
+ }
3656
+ setSelectedForm(selected_form) {
3657
+ this.selectedForm = selected_form;
3658
+ }
3659
+ ngOnInit() { }
3660
+ ngOnChanges(changes) {
3661
+ const verifyChange = (key) => {
3662
+ return checkObjectKeyExists(changes, key) && !changes[key].firstChange;
3663
+ };
3664
+ if (verifyChange("activeFormConfig")) {
3665
+ this.activeFormConfig = changes.activeFormConfig.currentValue;
3666
+ }
3667
+ if (verifyChange("formsList")) {
3668
+ this.formsList = changes.formsList.currentValue;
3669
+ }
3670
+ }
3671
+ handleOnClickSetActiveForm(selectedForm) {
3672
+ if (this.selectedForm !== selectedForm) {
3673
+ this.selectedForm = selectedForm;
3674
+ this.onClickSetActiveForm.emit(selectedForm);
3675
+ }
3676
+ }
3677
+ handleOnClickAddForm() {
3678
+ if (this.addForm.invalid) {
3679
+ alert("Please fill all the fields");
3680
+ return;
3681
+ }
3682
+ else {
3683
+ const newForm = {
3684
+ key: this.addForm.value.key.toUpperCase(),
3685
+ title: this.addForm.value.title,
3686
+ formContent: {
3687
+ url: ""
3688
+ },
3689
+ required: true
3690
+ };
3691
+ this.formsList.push(newForm);
3692
+ this.addForm.reset();
3693
+ }
3694
+ }
3695
+ }
3696
+ /** @nocollapse */ KwikIDBuilderFormsListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDBuilderFormsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3697
+ /** @nocollapse */ KwikIDBuilderFormsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDBuilderFormsListComponent, selector: "kwikid-builder-forms-list", inputs: { activeFormConfig: "activeFormConfig", formsList: "formsList" }, outputs: { onClickSetActiveForm: "onClickSetActiveForm" }, usesOnChanges: true, ngImport: i0, template: "<div ngClass=\"container\">\n <div ngClass=\"forms-list\">\n <ng-container *ngFor=\"let form of formsList\">\n <button\n (click)=\"handleOnClickSetActiveForm(form.key)\"\n *ngIf=\"form.type !== 'html'\"\n >\n {{ form.title }}\n </button>\n </ng-container>\n </div>\n <form\n ngClass=\"add-form-container\"\n [formGroup]=\"addForm\"\n >\n <input\n type=\"text\"\n formControlName=\"key\"\n placeholder=\"key\"\n />\n <input\n type=\"text\"\n formControlName=\"title\"\n placeholder=\"title\"\n />\n <button (click)=\"handleOnClickAddForm()\">Add Form</button>\n </form>\n</div>\n\n<div\n ngClass=\"kwikid-forms-builder-loader\"\n *ngIf=\"loader\"\n>\n <div class=\"loader-container\">\n <span class=\"loader\"></span>\n <div class=\"loader-text\">Please wait</div>\n </div>\n</div>\n", styles: ["input[type=text],input[type=number]{width:100%;padding:6px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;-webkit-appearance:auto!important;appearance:auto!important}input[type=checkbox]{margin-right:5px;-webkit-appearance:auto!important;appearance:auto!important}select{width:100%;padding:6px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box}textarea{overflow-wrap:anywhere;resize:none;unicode-bidi:embed;white-space:pre-wrap}button{display:inline-block;padding:10px 20px;background-color:#007bff;color:#fff;text-decoration:none;border-radius:4px;border:none;cursor:pointer}button:hover{background-color:#0069d9}button:active{background-color:#0056b3}button:focus{outline:none}.field-container{display:flex;margin-bottom:10px}.field-container label{color:gray}.field-container.checkbox{flex-direction:row;align-items:center}.field-container.options,.field-container.number,.field-container.text{flex-direction:column}.kwikid-forms-builder-loader{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(211,211,211,.5);display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-gap:1rem;gap:1rem;z-index:100}.kwikid-forms-builder-loader .loader-container{display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;padding:2em 1.5em;grid-gap:1rem;gap:1rem;background-color:#fff;box-shadow:#959da533 0 8px 24px;border-radius:.5rem}.kwikid-forms-builder-loader .loader-container .loader{width:28px;height:28px;border-radius:50%;display:inline-block;position:relative;border:3px solid;box-sizing:border-box;border-color:var(--tui-primary) transparent transparent;animation:rotation 1s ease-out infinite}@keyframes rotation{0%{transform:rotate(0);animation-timing-function:ease-in}25%{animation-timing-function:linear}50%{transform:rotate(180deg);animation-timing-function:ease-out}75%{animation-timing-function:linear}to{transform:rotate(360deg);animation-timing-function:ease-in}}.kwikid-forms-builder-loader .loader-container .loader-text{font-size:1rem;color:#000;margin:0}.kwikid-forms-builder-loader .t-loader{display:none!important}\n", "::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}:host{all:unset;position:relative;height:100%}.container{width:calc(min(200px,100%));height:100%;display:flex;flex-direction:column;align-content:flex-start;justify-content:space-between;align-items:stretch;padding:1rem;box-shadow:#64646f33 0 7px 29px}.container .forms-list{display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch;grid-gap:1rem;gap:1rem;flex-grow:1;overflow:auto}.container .add-form-container{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-end;grid-gap:1rem;gap:1rem}\n"], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }] });
3698
+ __decorate([
3699
+ logMethod
3700
+ ], KwikIDBuilderFormsListComponent.prototype, "ngOnChanges", null);
3701
+ __decorate([
3702
+ logMethod
3703
+ ], KwikIDBuilderFormsListComponent.prototype, "handleOnClickSetActiveForm", null);
3704
+ __decorate([
3705
+ logMethod
3706
+ ], KwikIDBuilderFormsListComponent.prototype, "handleOnClickAddForm", null);
3707
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDBuilderFormsListComponent, decorators: [{
3708
+ type: Component,
3709
+ args: [{
3710
+ selector: "kwikid-builder-forms-list",
3711
+ templateUrl: "./builder-forms-list.component.html",
3712
+ styleUrls: ["../shared.scss", "./builder-forms-list.component.scss"]
3713
+ }]
3714
+ }], ctorParameters: function () { return []; }, propDecorators: { activeFormConfig: [{
3715
+ type: Input
3716
+ }], formsList: [{
3717
+ type: Input
3718
+ }], onClickSetActiveForm: [{
3719
+ type: Output
3720
+ }], ngOnChanges: [], handleOnClickSetActiveForm: [], handleOnClickAddForm: [] } });
3721
+
3722
+ const TABLE_COLUMNS = [
3723
+ "key",
3724
+ "label",
3725
+ "type",
3726
+ "disabled",
3727
+ "validators",
3728
+ "properties",
3729
+ "delete"
3730
+ ];
3731
+ const OPTIONS = {
3732
+ type: [
3733
+ "title",
3734
+ "text",
3735
+ "textarea",
3736
+ "checkbox",
3737
+ "number",
3738
+ "date",
3739
+ "phone",
3740
+ "radio",
3741
+ "radio-list",
3742
+ "select",
3743
+ "slider",
3744
+ "otp",
3745
+ "input-aadhaar",
3746
+ "image",
3747
+ "preview-image",
3748
+ "html"
3749
+ ],
3750
+ disabled: [true, false],
3751
+ properties: {
3752
+ text: {
3753
+ case: ["default", "upper", "lower"]
3754
+ },
3755
+ checkbox: {
3756
+ contentAlign: ["left", "right"],
3757
+ size: ["m", "l"],
3758
+ variant: ["basic", "block", "labeled"]
3759
+ },
3760
+ number: {
3761
+ decimal: [true, false]
3762
+ },
3763
+ phone: {
3764
+ removeCountryCodeFromValue: [true, false]
3765
+ },
3766
+ radio: {
3767
+ orientation: ["horizontal", "vertical"],
3768
+ size: ["l", "m"]
3769
+ },
3770
+ "radio-list": {
3771
+ orientation: ["horizontal", "vertical"],
3772
+ size: ["l", "m"]
3773
+ },
3774
+ slider: {
3775
+ size: ["s", "m", "l"]
3776
+ },
3777
+ otp: {
3778
+ size: ["s", "m", "l"],
3779
+ mode: ["single", "multiple"]
3780
+ },
3781
+ image: {
3782
+ imageType: ["base64", "url"],
3783
+ loadingType: ["auto", "lazy", "eager"]
3784
+ },
3785
+ "preview-image": {
3786
+ imageType: ["base64", "url"],
3787
+ loadingType: ["auto", "lazy", "eager"]
3788
+ }
3789
+ },
3790
+ validators: {
3791
+ required: [true, false],
3792
+ pattern: {
3793
+ key: [
3794
+ "IS_AADHAAR_NUMBER",
3795
+ "IS_BANK_ACCOUNT_NO",
3796
+ "IS_BANK_SWIFT_CODE",
3797
+ "IS_BIRTH_CERTIFICATE_NO",
3798
+ "IS_CHEQUE_NO",
3799
+ "IS_CIN",
3800
+ "IS_CREDIT_CARD_NO",
3801
+ "IS_CKYC_NO",
3802
+ "IS_DRIVING_LICENSE",
3803
+ "IS_GSTIN",
3804
+ "IS_IFSC_NO",
3805
+ "IS_MICR_CODE",
3806
+ "IS_MOBILE_NO",
3807
+ "IS_NEFT_OR_RTGS_NO",
3808
+ "IS_PAN_NUMBER",
3809
+ "IS_PASSPORT",
3810
+ "IS_PHONE_NO",
3811
+ "IS_PINCODE",
3812
+ "IS_PURCHASE_ORDER_NO",
3813
+ "IS_RATION_CARD_NO",
3814
+ "IS_SERVICE_TAX_NO",
3815
+ "IS_SOCIAL_SECURITY_NO",
3816
+ "IS_UPI_TRANSACTION_REFERENCE_NO",
3817
+ "IS_VAT_TIN_NO",
3818
+ "IS_VEHICLE_REGISTRATION_NO",
3819
+ "IS_VOTER_ID",
3820
+ "IS_ALPHA",
3821
+ "IS_ALPHANUMERIC",
3822
+ "IS_BOOLEAN",
3823
+ "IS_EMAIL",
3824
+ "IS_EMPTY",
3825
+ "IS_FALSE",
3826
+ "IS_HTML",
3827
+ "IS_INTEGER",
3828
+ "IS_JSON",
3829
+ "IS_LOWERCASE",
3830
+ "IS_NOT_EMPTY",
3831
+ "IS_NUMBER",
3832
+ "IS_TRUE",
3833
+ "IS_UPPERCASE",
3834
+ "CUSTOM"
3835
+ ]
3836
+ }
3837
+ }
3838
+ };
3839
+ const FIELD_VALIDATORS_CONFIG = {
3840
+ required: false,
3841
+ minLength: 0,
3842
+ maxLength: 0,
3843
+ pattern: {
3844
+ key: "CUSTOM",
3845
+ pattern: ""
3846
+ },
3847
+ min: 0,
3848
+ max: 0
3849
+ };
3850
+ const FIELD_PROPERTIES_COMMON_CONFIG = {
3851
+ readOnly: false,
3852
+ placeholder: ""
3853
+ };
3854
+ const FIELD_PROPERTIES_CONFIG = {
3855
+ title: Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG),
3856
+ text: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { case: "default" }),
3857
+ textarea: Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG),
3858
+ checkbox: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { contentAlign: "right", size: "l", variant: "labeled" }),
3859
+ number: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { decimal: false, min: -Infinity, max: Infinity, postfix: "", prefix: "", precision: 0 }),
3860
+ date: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { min: { month: 0, day: 0, year: 0 }, max: { month: 0, day: 0, year: 0 }, minCalculated: { month: 0, day: 0, year: 0 }, maxCalculated: { month: 0, day: 0, year: 0 } }),
3861
+ phone: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { countryCode: "+91", phoneMaskAfterCountryCode: "", removeCountryCodeFromValue: true }),
3862
+ radio: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { orientation: "vertical", size: "l" }),
3863
+ "radio-list": Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { orientation: "vertical", size: "l" }),
3864
+ select: Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG),
3865
+ slider: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { min: -Infinity, max: Infinity, quantum: 0, size: "m", steps: 1 }),
3866
+ otp: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { mask: "", size: "m", mode: "multiple", otpLength: 6 }),
3867
+ "input-aadhaar": Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG),
3868
+ image: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { altText: "", html: { before: "", after: "" }, imageType: "url", loadingType: "auto", styles: "", class: "" }),
3869
+ "preview-image": Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { altText: "", html: { before: "", after: "" }, imageType: "url", loadingType: "auto", styles: "", class: "" }),
3870
+ html: Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG)
3871
+ };
3872
+ const FIELD_COMMON_CONFIG = {
3873
+ key: "",
3874
+ label: "",
3875
+ disabled: false,
3876
+ validators: Object.assign({}, FIELD_VALIDATORS_CONFIG)
3877
+ };
3878
+ const FIELD_CONFIG = {
3879
+ title: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "title", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.title) }),
3880
+ text: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "text", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.text) }),
3881
+ textarea: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "textarea", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.textarea) }),
3882
+ checkbox: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "checkbox", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.checkbox) }),
3883
+ number: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "number", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.number) }),
3884
+ date: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "date", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.date) }),
3885
+ phone: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "phone", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.phone) }),
3886
+ radio: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "radio", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG["radio"]), options: [] }),
3887
+ "radio-list": Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "radio-list", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG["radio-list"]), options: [] }),
3888
+ select: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "select", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG["select"]), options: [] }),
3889
+ slider: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "slider", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.slider) }),
3890
+ otp: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "otp", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.otp) }),
3891
+ "input-aadhaar": Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "input-aadhaar", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG["input-aadhaar"]) }),
3892
+ image: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "image", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG["image"]) }),
3893
+ "preview-image": Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "preview-image", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG["preview-image"]) }),
3894
+ html: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "html", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.html), html: {
3895
+ before: "",
3896
+ after: ""
3897
+ } })
3898
+ };
3899
+
3900
+ class KwikIDBuilderFormEditorComponent {
3901
+ constructor() {
3902
+ this.activeFormConfig = {};
3903
+ this.onClickSaveActiveFormConfig = new EventEmitter();
3904
+ this.activeEditor = "fields";
3905
+ this.activeFormConfig_Fields = [];
3906
+ this.activeFormConfig_NoFields = {};
3907
+ this.loader = false;
3908
+ this.rows = [];
3909
+ this.columns = TABLE_COLUMNS;
3910
+ this.showPreview = false;
3911
+ // Constants
3912
+ this.options = OPTIONS;
3913
+ this.fieldValidators = FIELD_VALIDATORS_CONFIG;
3914
+ this.fieldProperties = FIELD_PROPERTIES_CONFIG;
3915
+ // Forms
3916
+ this.formGroup = {};
3917
+ }
3918
+ ngOnInit() { }
3919
+ ngOnChanges(changes) {
3920
+ const verifyChange = (key) => {
3921
+ return checkObjectKeyExists(changes, key) && !changes[key].firstChange;
3922
+ };
3923
+ if (verifyChange("activeFormConfig")) {
3924
+ this.activeFormConfig = changes.activeFormConfig.currentValue;
3925
+ this.initializeActiveFormConfig(this.activeFormConfig);
3926
+ }
3927
+ }
3928
+ initializeActiveFormConfig(activeFormConfig) {
3929
+ this.loader = true;
3930
+ this.activeFormConfig_Fields = JSON.parse(JSON.stringify(activeFormConfig.fields));
3931
+ this.activeFormConfig_NoFields = JSON.parse(JSON.stringify(activeFormConfig));
3932
+ delete this.activeFormConfig_NoFields.fields;
3933
+ this.rows = this.activeFormConfig_Fields.map((field) => {
3934
+ return {
3935
+ key: field.key,
3936
+ label: field.label,
3937
+ type: field.type,
3938
+ disabled: field.disabled,
3939
+ validators: Object.assign(Object.assign({}, this.fieldValidators), field.validators),
3940
+ properties: Object.assign(Object.assign({}, this.fieldProperties[field.type]), field.properties)
3941
+ };
3942
+ });
3943
+ // Create the nested FormGroup dynamically
3944
+ this.formGroup = this.createNestedFormGroup(this.rows);
3945
+ console.log(this.formGroup);
3946
+ this.loader = false;
3947
+ }
3948
+ createNestedFormGroup(object) {
3949
+ const formGroup = {};
3950
+ for (let index in object) {
3951
+ formGroup[index] = new FormControl(object[index]);
3952
+ }
3953
+ return new FormGroup(formGroup);
3954
+ }
3955
+ handleOnClickChangeEditor(editorType) {
3956
+ this.activeEditor = editorType;
3957
+ }
3958
+ handleOnClickSaveActiveFormConfig_NoFields(e) {
3959
+ this.activeFormConfig_NoFields = JSON.parse(e);
3960
+ }
3961
+ handleOnInput(e) {
3962
+ const fieldConfig = this.formGroup.getRawValue()[e.index];
3963
+ const finalPath = e.path !== "" ? `${e.path}.${e.key}` : e.key;
3964
+ let newFieldConfig = setValueToObjectPath(fieldConfig, finalPath, e.value.new);
3965
+ // Update properties config if type is changed
3966
+ if (e.key === "type") {
3967
+ this.loader = true;
3968
+ const updatedPropertiesConfig = Object.assign({}, FIELD_PROPERTIES_CONFIG[e.value.new]);
3969
+ newFieldConfig = Object.assign(Object.assign({}, newFieldConfig), { properties: updatedPropertiesConfig });
3970
+ // Update properties config in this.rows as well
3971
+ const rowIndex = this.rows.findIndex((row) => row.key === fieldConfig.key);
3972
+ if (rowIndex !== -1) {
3973
+ this.rows[rowIndex].properties = updatedPropertiesConfig;
3974
+ }
3975
+ this.loader = false;
3976
+ }
3977
+ this.formGroup.controls[e.index].setValue(newFieldConfig, {
3978
+ emitEvent: false
3979
+ });
3980
+ }
3981
+ handleOnClickPreview() {
3982
+ this.showPreview = true;
3983
+ }
3984
+ handleOnClickAddField() { }
3985
+ handleOnClickDeleteField(e) {
3986
+ this.rows = this.rows.filter((row) => {
3987
+ if (row.key !== e.key) {
3988
+ return row;
3989
+ }
3990
+ });
3991
+ console.log(JSON.parse(JSON.stringify(this.rows)));
3992
+ // Create the nested FormGroup dynamically
3993
+ this.formGroup = this.createNestedFormGroup(this.rows);
3994
+ console.log(this.formGroup);
3995
+ this.formGroup.updateValueAndValidity();
3996
+ }
3997
+ handleOnClickSaveActiveFormConfig() {
3998
+ // print deep copies of rows and activeFormFields_Fields
3999
+ this.activeFormConfig_Fields = this.activeFormConfig_Fields
4000
+ .filter((field) => _.some(this.rows, { key: field.key }))
4001
+ .map((field) => {
4002
+ const matchingRow = _.find(this.rows, { key: field.key });
4003
+ return _.merge({}, field, matchingRow);
4004
+ });
4005
+ this.activeFormConfig = mergeObjects(this.activeFormConfig_NoFields, {
4006
+ fields: this.activeFormConfig_Fields
4007
+ });
4008
+ this.onClickSaveActiveFormConfig.emit(this.activeFormConfig);
4009
+ }
4010
+ /**
4011
+ * Other Methods
4012
+ */
4013
+ copyToClipboard() {
4014
+ navigator.clipboard.writeText(JSON.stringify(this.activeFormConfig));
4015
+ }
4016
+ downloadJSON() {
4017
+ const DATA = JSON.stringify(this.activeFormConfig); // Convert object to JSON string
4018
+ const type = "application/json";
4019
+ const FILE_NAME = `${this.activeFormConfig.key}.json`;
4020
+ const blob = new Blob([DATA], { type });
4021
+ const url = window.URL.createObjectURL(blob);
4022
+ const link = document.createElement("a");
4023
+ link.download = FILE_NAME;
4024
+ link.href = url;
4025
+ link.click();
4026
+ window.URL.revokeObjectURL(url);
4027
+ }
4028
+ closeJSONPopup() {
4029
+ this.showPreview = false;
4030
+ }
4031
+ /**
4032
+ * Misc Methods
4033
+ */
4034
+ trackByFn(index, item) {
4035
+ const key = (item === null || item === void 0 ? void 0 : item.key) || "";
4036
+ const value = (item === null || item === void 0 ? void 0 : item.value) || "";
4037
+ if (typeof item === "string") {
4038
+ return `${String(index)}_${item}_${new Date().getTime()}`;
4039
+ }
4040
+ else {
4041
+ return `${String(index)}_${key}_${value}_${new Date().getTime()}`;
4042
+ }
4043
+ }
4044
+ getOptions(index, value, key, path) {
4045
+ if (path.includes("properties")) {
4046
+ const fieldType = this.rows[index].type;
4047
+ const finalPath = `${path}['${fieldType}'].${key}`;
4048
+ return getObjectValueFromPath(this.options, finalPath);
4049
+ }
4050
+ else {
4051
+ const finalPath = path !== "" ? `${path}.${key}` : key;
4052
+ return getObjectValueFromPath(this.options, finalPath);
4053
+ }
4054
+ }
4055
+ isOptions(index, value, key, path) {
4056
+ if (path.includes("properties")) {
4057
+ const fieldType = this.rows[index].type;
4058
+ const finalPath = `${path}['${fieldType}'].${key}`;
4059
+ return Array.isArray(getObjectValueFromPath(this.options, finalPath));
4060
+ }
4061
+ else {
4062
+ const finalPath = path !== "" ? `${path}.${key}` : key;
4063
+ return Array.isArray(getObjectValueFromPath(this.options, finalPath));
4064
+ }
4065
+ }
4066
+ isBoolean(value) {
4067
+ return typeof value === "boolean";
4068
+ }
4069
+ isString(value) {
4070
+ return typeof value === "string";
4071
+ }
4072
+ isNumber(value) {
4073
+ return typeof value === "number";
4074
+ }
4075
+ isObject(value) {
4076
+ return typeof value === "object" && value !== null;
4077
+ }
4078
+ }
4079
+ /** @nocollapse */ KwikIDBuilderFormEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDBuilderFormEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4080
+ /** @nocollapse */ KwikIDBuilderFormEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDBuilderFormEditorComponent, selector: "kwikid-builder-form-editor", inputs: { activeFormConfig: "activeFormConfig" }, outputs: { onClickSaveActiveFormConfig: "onClickSaveActiveFormConfig" }, usesOnChanges: true, ngImport: i0, template: "<div\n ngClass=\"container\"\n *ngIf=\"activeFormConfig\"\n>\n <header>\n <div>{{ activeFormConfig.title }} Form Editor</div>\n <div ngClass=\"header-form-editor-btns\">\n <button (click)=\"handleOnClickChangeEditor('non-fields')\">\n Edit Non-Fields\n </button>\n <button (click)=\"handleOnClickChangeEditor('fields')\">Edit Fields</button>\n </div>\n </header>\n <main>\n <div\n ngClass=\"form-config-no-fields\"\n *ngIf=\"activeEditor != 'fields'\"\n >\n <pre\n contenteditable=\"true\"\n (keyup)=\"\n handleOnClickSaveActiveFormConfig_NoFields($event.target.innerHTML)\n \"\n >{{ activeFormConfig_NoFields | json }}</pre\n >\n </div>\n <div\n ngClass=\"form-config-fields\"\n *ngIf=\"activeEditor == 'fields'\"\n >\n <table>\n <thead>\n <tr>\n <th *ngFor=\"let column of columns; trackBy: trackByFn\">{{\n column\n }}</th>\n </tr>\n </thead>\n <tbody>\n <ng-container\n *ngFor=\"let row of rows; let i = index; trackBy: trackByFn\"\n >\n <tr>\n <ng-container\n *ngFor=\"\n let column of columns;\n let j = index;\n trackBy: trackByFn\n \"\n >\n <td>\n <div [ngClass]=\"column\">\n <ng-container\n *ngIf=\"column !== 'delete'\"\n [ngTemplateOutlet]=\"getFieldTemplate\"\n [ngTemplateOutletContext]=\"{\n index: i,\n fieldValue: row[column],\n fieldKey: column,\n parentPath: ''\n }\"\n ></ng-container>\n <ng-container *ngIf=\"column === 'delete'\">\n <button\n (click)=\"\n handleOnClickDeleteField({\n index: i,\n key: row['key']\n })\n \"\n [disabled]=\"rows.length === 1\"\n >\n Delete\n </button>\n </ng-container>\n </div>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n </main>\n <footer>\n <button (click)=\"handleOnClickPreview()\">Preview</button>\n <button (click)=\"handleOnClickAddField()\">Add Field</button>\n <button (click)=\"handleOnClickSaveActiveFormConfig()\">Save</button>\n </footer>\n</div>\n<div\n ngClass=\"container\"\n *ngIf=\"!activeFormConfig\"\n>\n <h1 ngClass=\"no-form-selected\">Please select a form</h1>\n</div>\n\n<!-- Template for rendering different field types -->\n<ng-template\n #getFieldTemplate\n let-index=\"index\"\n let-value=\"fieldValue\"\n let-key=\"fieldKey\"\n let-path=\"parentPath\"\n>\n <div>\n <ng-container\n [ngTemplateOutlet]=\"\n isObject(value) ? objectFieldTemplate : notObjectFieldTemplate\n \"\n [ngTemplateOutletContext]=\"{\n index: index,\n fieldValue: value,\n fieldKey: key,\n parentPath: path\n }\"\n >\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template\n #objectFieldTemplate\n let-index=\"index\"\n let-value=\"fieldValue\"\n let-key=\"fieldKey\"\n let-path=\"parentPath\"\n>\n <ng-container *ngFor=\"let item of value | keyvalue; trackBy: trackByFn\">\n <ng-container\n [ngTemplateOutlet]=\"getFieldTemplate\"\n [ngTemplateOutletContext]=\"{\n index: index,\n fieldValue: item.value,\n fieldKey: item.key,\n parentPath: path === '' ? key : path + '.' + key\n }\"\n >\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template\n #notObjectFieldTemplate\n let-index=\"index\"\n let-value=\"fieldValue\"\n let-key=\"fieldKey\"\n let-path=\"parentPath\"\n>\n <div>\n <ng-container *ngIf=\"isOptions(index, value, key, path)\">\n <ng-container\n [ngTemplateOutlet]=\"optionFieldTemplate\"\n [ngTemplateOutletContext]=\"{\n index: index,\n key: key,\n value: value,\n path: path,\n options: getOptions(index, value, key, path)\n }\"\n ></ng-container>\n </ng-container>\n <ng-container\n *ngIf=\"!isOptions(index, value, key, path) && isString(value)\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n textFieldTemplate;\n context: { index: index, key: key, value: value, path: path }\n \"\n ></ng-container>\n </ng-container>\n <ng-container\n *ngIf=\"!isOptions(index, value, key, path) && isNumber(value)\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n numberFieldTemplate;\n context: { index: index, key: key, value: value, path: path }\n \"\n ></ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template\n #optionFieldTemplate\n let-index=\"index\"\n let-key=\"key\"\n let-value=\"value\"\n let-path=\"path\"\n let-options=\"options\"\n>\n <div class=\"field-container options\">\n <label for=\"\">{{ path }}.{{ key }}</label>\n <select\n (change)=\"handleOnInput({ index, key, value: { previous: value, new: $event.target.value }, path })\"\n >\n <option\n *ngFor=\"let option of options; trackBy: trackByFn\"\n [value]=\"option\"\n [selected]=\"option === value\"\n >{{ option }}</option\n >\n </select>\n </div>\n</ng-template>\n\n<ng-template\n #booleanFieldTemplate\n let-index=\"index\"\n let-key=\"key\"\n let-value=\"value\"\n let-path=\"path\"\n>\n <div class=\"field-container checkbox\">\n <input\n type=\"checkbox\"\n [checked]=\"value\"\n (change)=\"handleOnInput({ index, key, value: { previous: value, new: $event.target.checked }, path })\"\n />\n <span>{{ path }}.{{ key }}</span>\n </div>\n</ng-template>\n\n<ng-template\n #textFieldTemplate\n let-index=\"index\"\n let-key=\"key\"\n let-value=\"value\"\n let-path=\"path\"\n>\n <div class=\"field-container text\">\n <label for=\"\">{{ path }}.{{ key }}</label>\n <input\n placeholder=\"Enter {{ key }}\"\n type=\"text\"\n [value]=\"value\"\n (keyup)=\"handleOnInput({ index, key, value: { previous: value, new: $event.target.value }, path })\"\n />\n </div>\n</ng-template>\n\n<ng-template\n #numberFieldTemplate\n let-index=\"index\"\n let-key=\"key\"\n let-value=\"value\"\n let-path=\"path\"\n>\n <div class=\"field-container number\">\n <label>{{ path }}.{{ key }}</label>\n <input\n placeholder=\"Enter {{ key }}\"\n type=\"number\"\n [value]=\"value\"\n (keyup)=\"handleOnInput({ index, key, value: { previous: value, new: $event.target.value }, path })\"\n />\n </div>\n</ng-template>\n\n<div\n ngClass=\"kwikid-forms-builder-loader\"\n *ngIf=\"loader\"\n>\n <div class=\"loader-container\">\n <span class=\"loader\"></span>\n <div class=\"loader-text\">Please wait</div>\n </div>\n</div>\n\n<div\n class=\"modal\"\n *ngIf=\"showPreview\"\n [@panelInOut]\n>\n <div class=\"modal-box\">\n <div class=\"modal-content\">\n <div class=\"modal-heading\">\n <div class=\"modal-title\">\n {{ activeFormConfig.title }}'s Config Preview\n </div>\n <div class=\"modal-actions\">\n <button (click)=\"downloadJSON()\">Download Config</button>\n <button (click)=\"copyToClipboard()\">Copy Config to Clipboard</button>\n <button (click)=\"closeJSONPopup()\">Close</button>\n </div>\n </div>\n <div class=\"modal-body\">\n <pre>\n <code>{{ activeFormConfig | json }}</code>\n </pre>\n </div>\n </div>\n </div>\n</div>\n", styles: ["input[type=text],input[type=number]{width:100%;padding:6px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;-webkit-appearance:auto!important;appearance:auto!important}input[type=checkbox]{margin-right:5px;-webkit-appearance:auto!important;appearance:auto!important}select{width:100%;padding:6px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box}textarea{overflow-wrap:anywhere;resize:none;unicode-bidi:embed;white-space:pre-wrap}button{display:inline-block;padding:10px 20px;background-color:#007bff;color:#fff;text-decoration:none;border-radius:4px;border:none;cursor:pointer}button:hover{background-color:#0069d9}button:active{background-color:#0056b3}button:focus{outline:none}.field-container{display:flex;margin-bottom:10px}.field-container label{color:gray}.field-container.checkbox{flex-direction:row;align-items:center}.field-container.options,.field-container.number,.field-container.text{flex-direction:column}.kwikid-forms-builder-loader{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(211,211,211,.5);display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-gap:1rem;gap:1rem;z-index:100}.kwikid-forms-builder-loader .loader-container{display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;padding:2em 1.5em;grid-gap:1rem;gap:1rem;background-color:#fff;box-shadow:#959da533 0 8px 24px;border-radius:.5rem}.kwikid-forms-builder-loader .loader-container .loader{width:28px;height:28px;border-radius:50%;display:inline-block;position:relative;border:3px solid;box-sizing:border-box;border-color:var(--tui-primary) transparent transparent;animation:rotation 1s ease-out infinite}@keyframes rotation{0%{transform:rotate(0);animation-timing-function:ease-in}25%{animation-timing-function:linear}50%{transform:rotate(180deg);animation-timing-function:ease-out}75%{animation-timing-function:linear}to{transform:rotate(360deg);animation-timing-function:ease-in}}.kwikid-forms-builder-loader .loader-container .loader-text{font-size:1rem;color:#000;margin:0}.kwikid-forms-builder-loader .t-loader{display:none!important}\n", "::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}:host{all:unset;position:relative;width:100%;height:100%;overflow:auto}.container{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;height:100%}.container header{padding:.5rem;display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;border-bottom:1px solid lightgray}.container header .header-form-editor-btns{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-gap:1rem;gap:1rem}.container main{padding:.5rem;flex-grow:1;overflow:auto;display:flex;flex-direction:row;justify-content:flex-start;align-items:stretch;grid-gap:1rem;gap:1rem;white-space:nowrap}.container main .form-config-no-fields{overflow:auto;width:100%}.container main .form-config-fields{overflow:auto;width:100%}.container main .validators,.container main .properties{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;grid-gap:.5rem;gap:.5rem}.container main .input-checkbox-container{display:flex;flex-direction:row}.container footer{padding:.5rem;display:flex;flex-direction:row;justify-content:flex-end;align-items:stretch;grid-gap:1rem;gap:1rem;border-top:1px solid lightgray}.container .no-form-selected{display:flex;flex-direction:column;align-items:center;justify-content:center;grid-gap:1rem;gap:1rem;flex-grow:1}.modal{position:absolute;top:0;background-color:#0000004d;width:100%;height:100%;display:flex;justify-content:center;align-items:center;left:0;flex-direction:row}.modal-box{width:75%;height:75%;margin:auto;background-color:#fff;border-radius:1rem;box-shadow:#64646f33 0 7px 29px}.modal-content{display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch;width:100%;height:100%}.modal-heading{padding:.5rem 1rem;width:100%;display:flex;flex-direction:row;justify-content:space-between;border-bottom:1px solid lightgray;align-items:center}.modal-title{font-weight:bold;font-size:1rem}.modal-actions{display:flex;flex-direction:row;grid-gap:1rem;gap:1rem;cursor:pointer}.modal-body{overflow:auto}.modal-body pre{padding:1rem}pre{white-space:pre-wrap;overflow:auto}table{width:100%;border-collapse:collapse;margin-bottom:20px}table th,table td{padding:8px;text-align:left;border:1px solid #ccc;vertical-align:top}table th{background-color:#f2f2f2}table tr:nth-child(even){background-color:#f9f9f9}table tr:hover{background-color:#eaeaea}\n"], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], pipes: { "json": i3.JsonPipe, "keyvalue": i3.KeyValuePipe }, animations: [
4081
+ trigger("panelInOut", [
4082
+ transition(":enter", [
4083
+ style({ transform: "translateY(100%)" }),
4084
+ animate(150)
4085
+ ]),
4086
+ transition(":leave", [
4087
+ animate(100, style({ transform: "translateY(100%)" }))
4088
+ ])
4089
+ ])
4090
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4091
+ __decorate([
4092
+ logMethod
4093
+ ], KwikIDBuilderFormEditorComponent.prototype, "ngOnChanges", null);
4094
+ __decorate([
4095
+ logMethod
4096
+ ], KwikIDBuilderFormEditorComponent.prototype, "initializeActiveFormConfig", null);
4097
+ __decorate([
4098
+ logMethod
4099
+ ], KwikIDBuilderFormEditorComponent.prototype, "createNestedFormGroup", null);
4100
+ __decorate([
4101
+ logMethod
4102
+ ], KwikIDBuilderFormEditorComponent.prototype, "handleOnClickChangeEditor", null);
4103
+ __decorate([
4104
+ logMethod
4105
+ ], KwikIDBuilderFormEditorComponent.prototype, "handleOnClickSaveActiveFormConfig_NoFields", null);
4106
+ __decorate([
4107
+ logMethod
4108
+ ], KwikIDBuilderFormEditorComponent.prototype, "handleOnInput", null);
4109
+ __decorate([
4110
+ logMethod
4111
+ ], KwikIDBuilderFormEditorComponent.prototype, "handleOnClickPreview", null);
4112
+ __decorate([
4113
+ logMethod
4114
+ ], KwikIDBuilderFormEditorComponent.prototype, "handleOnClickAddField", null);
4115
+ __decorate([
4116
+ logMethod
4117
+ ], KwikIDBuilderFormEditorComponent.prototype, "handleOnClickDeleteField", null);
4118
+ __decorate([
4119
+ logMethod
4120
+ ], KwikIDBuilderFormEditorComponent.prototype, "handleOnClickSaveActiveFormConfig", null);
4121
+ __decorate([
4122
+ logMethod
4123
+ ], KwikIDBuilderFormEditorComponent.prototype, "copyToClipboard", null);
4124
+ __decorate([
4125
+ logMethod
4126
+ ], KwikIDBuilderFormEditorComponent.prototype, "downloadJSON", null);
4127
+ __decorate([
4128
+ logMethod
4129
+ ], KwikIDBuilderFormEditorComponent.prototype, "closeJSONPopup", null);
4130
+ __decorate([
4131
+ logMethod
4132
+ ], KwikIDBuilderFormEditorComponent.prototype, "trackByFn", null);
4133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDBuilderFormEditorComponent, decorators: [{
4134
+ type: Component,
4135
+ args: [{
4136
+ selector: "kwikid-builder-form-editor",
4137
+ templateUrl: "./builder-form-editor.component.html",
4138
+ styleUrls: ["../shared.scss", "./builder-form-editor.component.scss"],
4139
+ changeDetection: ChangeDetectionStrategy.OnPush,
4140
+ animations: [
4141
+ trigger("panelInOut", [
4142
+ transition(":enter", [
4143
+ style({ transform: "translateY(100%)" }),
4144
+ animate(150)
4145
+ ]),
4146
+ transition(":leave", [
4147
+ animate(100, style({ transform: "translateY(100%)" }))
4148
+ ])
4149
+ ])
4150
+ ]
4151
+ }]
4152
+ }], ctorParameters: function () { return []; }, propDecorators: { activeFormConfig: [{
4153
+ type: Input
4154
+ }], onClickSaveActiveFormConfig: [{
4155
+ type: Output
4156
+ }], ngOnChanges: [], initializeActiveFormConfig: [], createNestedFormGroup: [], handleOnClickChangeEditor: [], handleOnClickSaveActiveFormConfig_NoFields: [], handleOnInput: [], handleOnClickPreview: [], handleOnClickAddField: [], handleOnClickDeleteField: [], handleOnClickSaveActiveFormConfig: [], copyToClipboard: [], downloadJSON: [], closeJSONPopup: [], trackByFn: [] } });
4157
+
4158
+ class KwikIDFormsBuilder2Component {
4159
+ constructor() {
4160
+ this.userConfig = {};
4161
+ this.formsList = [
4162
+ {
4163
+ required: true,
4164
+ formContent: {
4165
+ url: "https://kwikid.s3.ap-south-1.amazonaws.com/CONFIG/USER/bobfinancial_dev/innerConfig/customer_existence.json"
4166
+ },
4167
+ key: "CUSTOMER_EXISTENCE",
4168
+ title: "Customer Existence"
4169
+ },
4170
+ {
4171
+ required: true,
4172
+ formContent: {
4173
+ url: "https://kwikid.s3.ap-south-1.amazonaws.com/CONFIG/USER/bobfinancial_dev/innerConfig/id_details.json"
4174
+ },
4175
+ key: "ID_DETAILS",
4176
+ title: "ID Details"
4177
+ },
4178
+ {
4179
+ dependentOn: ["ID_DETAILS"],
4180
+ required: true,
4181
+ formContent: {
4182
+ url: "https://kwikid.s3.ap-south-1.amazonaws.com/CONFIG/USER/bobfinancial_dev/innerConfig/personal_details.json"
4183
+ },
4184
+ key: "PERSONAL_DETAILS",
4185
+ title: "Personal Details"
4186
+ },
4187
+ {
4188
+ dependentOn: ["PERSONAL_DETAILS"],
4189
+ required: true,
4190
+ formContent: {
4191
+ url: "https://kwikid.s3.ap-south-1.amazonaws.com/CONFIG/USER/bobfinancial_dev/innerConfig/employment_details.json"
4192
+ },
4193
+ key: "EMPLOYMENT_DETAILS",
4194
+ title: "Employment Details"
4195
+ },
4196
+ {
4197
+ dependentOn: ["EMPLOYMENT_DETAILS"],
4198
+ required: true,
4199
+ formContent: {
4200
+ url: "https://kwikid.s3.ap-south-1.amazonaws.com/CONFIG/USER/bobfinancial_dev/innerConfig/credit_cards.json"
4201
+ },
4202
+ key: "CREDIT_CARDS",
4203
+ title: "Credit Card Offers"
4204
+ }
4205
+ ];
4206
+ this.activeFormConfig = undefined;
4207
+ this.loader = false;
4208
+ }
4209
+ ngOnInit() {
4210
+ const formStepKey = localStorage.getItem("form_key");
4211
+ if (formStepKey !== undefined &&
4212
+ checkObjectKeyExists(this.userConfig.userFormFields, formStepKey)) {
4213
+ this.formsList = this.userConfig.userFormFields[formStepKey];
4214
+ }
4215
+ else if (Array.isArray(this.userConfig.userFormFields)) {
4216
+ this.formsList = this.userConfig.userFormFields;
4217
+ }
4218
+ else {
4219
+ throw new Error(`userFormFields doesn't have a form defined with key: ${formStepKey}`);
4220
+ }
4221
+ }
4222
+ fetchFormConfig(url) {
4223
+ return __awaiter(this, void 0, void 0, function* () {
4224
+ const response = yield fetch(url, { method: "GET" });
4225
+ const data = yield response.json();
4226
+ return data;
4227
+ });
4228
+ }
4229
+ /**
4230
+ * Forms List Listeners
4231
+ */
4232
+ handleOnClickSetActiveForm(selectedFormKey) {
4233
+ var _a, _b, _c, _d;
4234
+ return __awaiter(this, void 0, void 0, function* () {
4235
+ this.loader = true;
4236
+ const activeFormConfig = this.formsList.find((form) => {
4237
+ if (form.key === selectedFormKey) {
4238
+ return form;
4239
+ }
4240
+ });
4241
+ let formConfig = undefined;
4242
+ if (getObjectFromLocalStorage(activeFormConfig.key)) {
4243
+ formConfig = getObjectFromLocalStorage(activeFormConfig.key);
4244
+ }
4245
+ else {
4246
+ if (checkObjectKeyExists(activeFormConfig, "props")) {
4247
+ if (checkObjectKeyExists(activeFormConfig["props"], "url")) {
4248
+ const formConfigFromUrl = yield this.fetchFormConfig(activeFormConfig["props"].url);
4249
+ formConfig = Object.assign(Object.assign({}, activeFormConfig), formConfigFromUrl);
4250
+ }
4251
+ else if (checkObjectKeyExists(activeFormConfig["props"], "path") &&
4252
+ checkObjectKeyExists(this.userConfig, "backend") &&
4253
+ checkObjectKeyExists(this.userConfig.backend, "CONFIG_BASE_URL")) {
4254
+ const url = `${(_b = (_a = this.userConfig) === null || _a === void 0 ? void 0 : _a.backend) === null || _b === void 0 ? void 0 : _b.CONFIG_BASE_URL}${activeFormConfig["props"].path}`;
4255
+ const formConfigFromPath = yield this.fetchFormConfig(url);
4256
+ formConfig = Object.assign(Object.assign({}, activeFormConfig), formConfigFromPath);
4257
+ }
4258
+ else {
4259
+ if (checkObjectKeyExists(activeFormConfig, "fields")) {
4260
+ formConfig = activeFormConfig;
4261
+ }
4262
+ else {
4263
+ console.error("No Direct URL, No Path with Base URL, No fields key found in Active Form's Config!");
4264
+ }
4265
+ }
4266
+ }
4267
+ else {
4268
+ if (checkObjectKeyExists(activeFormConfig.formContent, "url")) {
4269
+ const formConfigFromUrl = yield this.fetchFormConfig(activeFormConfig.formContent.url);
4270
+ formConfig = Object.assign(Object.assign({}, activeFormConfig), formConfigFromUrl);
4271
+ }
4272
+ else if (checkObjectKeyExists(activeFormConfig.formContent, "path") &&
4273
+ checkObjectKeyExists(this.userConfig, "backend") &&
4274
+ checkObjectKeyExists(this.userConfig.backend, "CONFIG_BASE_URL")) {
4275
+ const url = `${(_d = (_c = this.userConfig) === null || _c === void 0 ? void 0 : _c.backend) === null || _d === void 0 ? void 0 : _d.CONFIG_BASE_URL}${activeFormConfig["props"].path}`;
4276
+ const formConfigFromPath = yield this.fetchFormConfig(url);
4277
+ formConfig = Object.assign(Object.assign({}, activeFormConfig), formConfigFromPath);
4278
+ }
4279
+ else {
4280
+ if (checkObjectKeyExists(activeFormConfig, "fields")) {
4281
+ formConfig = activeFormConfig;
4282
+ }
4283
+ else {
4284
+ console.error("No Direct URL, No Path with Base URL, No fields key found in Active Form's Config!");
4285
+ }
4286
+ }
4287
+ }
4288
+ }
4289
+ this.activeFormConfig = Object.assign(Object.assign({}, activeFormConfig), formConfig);
4290
+ this.loader = false;
4291
+ });
4292
+ }
4293
+ /**
4294
+ * Form Editor Listeners
4295
+ */
4296
+ handleOnClickSaveActiveFormConfig(activeFormConfig) { }
4297
+ }
4298
+ /** @nocollapse */ KwikIDFormsBuilder2Component.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormsBuilder2Component, deps: [], target: i0.ɵɵFactoryTarget.Component });
4299
+ /** @nocollapse */ KwikIDFormsBuilder2Component.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDFormsBuilder2Component, selector: "kwikid-forms-builder2", inputs: { userConfig: "userConfig" }, ngImport: i0, template: "<div ngClass=\"container\">\n <kwikid-builder-forms-list\n [activeFormConfig]=\"this.activeFormConfig\"\n [formsList]=\"this.formsList\"\n (onClickSetActiveForm)=\"this.handleOnClickSetActiveForm($event)\"\n ></kwikid-builder-forms-list>\n <kwikid-builder-form-editor\n [activeFormConfig]=\"activeFormConfig\"\n (onClickSaveActiveFormConfig)=\"\n this.handleOnClickSaveActiveFormConfig($event)\n \"\n ></kwikid-builder-form-editor>\n</div>\n\n<div\n ngClass=\"kwikid-forms-builder-loader\"\n *ngIf=\"loader\"\n>\n <div class=\"loader-container\">\n <span class=\"loader\"></span>\n <div class=\"loader-text\">Please wait</div>\n </div>\n</div>\n", styles: ["input[type=text],input[type=number]{width:100%;padding:6px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;-webkit-appearance:auto!important;appearance:auto!important}input[type=checkbox]{margin-right:5px;-webkit-appearance:auto!important;appearance:auto!important}select{width:100%;padding:6px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box}textarea{overflow-wrap:anywhere;resize:none;unicode-bidi:embed;white-space:pre-wrap}button{display:inline-block;padding:10px 20px;background-color:#007bff;color:#fff;text-decoration:none;border-radius:4px;border:none;cursor:pointer}button:hover{background-color:#0069d9}button:active{background-color:#0056b3}button:focus{outline:none}.field-container{display:flex;margin-bottom:10px}.field-container label{color:gray}.field-container.checkbox{flex-direction:row;align-items:center}.field-container.options,.field-container.number,.field-container.text{flex-direction:column}.kwikid-forms-builder-loader{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(211,211,211,.5);display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-gap:1rem;gap:1rem;z-index:100}.kwikid-forms-builder-loader .loader-container{display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;padding:2em 1.5em;grid-gap:1rem;gap:1rem;background-color:#fff;box-shadow:#959da533 0 8px 24px;border-radius:.5rem}.kwikid-forms-builder-loader .loader-container .loader{width:28px;height:28px;border-radius:50%;display:inline-block;position:relative;border:3px solid;box-sizing:border-box;border-color:var(--tui-primary) transparent transparent;animation:rotation 1s ease-out infinite}@keyframes rotation{0%{transform:rotate(0);animation-timing-function:ease-in}25%{animation-timing-function:linear}50%{transform:rotate(180deg);animation-timing-function:ease-out}75%{animation-timing-function:linear}to{transform:rotate(360deg);animation-timing-function:ease-in}}.kwikid-forms-builder-loader .loader-container .loader-text{font-size:1rem;color:#000;margin:0}.kwikid-forms-builder-loader .t-loader{display:none!important}\n", ":host{all:unset;position:relative;width:100%;height:100%}.container{width:100%;height:100%;display:flex;flex-direction:row;justify-content:space-between;align-items:stretch}\n"], components: [{ type: KwikIDBuilderFormsListComponent, selector: "kwikid-builder-forms-list", inputs: ["activeFormConfig", "formsList"], outputs: ["onClickSetActiveForm"] }, { type: KwikIDBuilderFormEditorComponent, selector: "kwikid-builder-form-editor", inputs: ["activeFormConfig"], outputs: ["onClickSaveActiveFormConfig"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
4300
+ __decorate([
4301
+ logMethod
4302
+ ], KwikIDFormsBuilder2Component.prototype, "fetchFormConfig", null);
3619
4303
  __decorate([
3620
4304
  logMethod
3621
- ], KwikIDFormsBuilderComponent.prototype, "editElement", null);
4305
+ ], KwikIDFormsBuilder2Component.prototype, "handleOnClickSetActiveForm", null);
3622
4306
  __decorate([
3623
4307
  logMethod
3624
- ], KwikIDFormsBuilderComponent.prototype, "handleOnSaveUpdateElement", null);
3625
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormsBuilderComponent, decorators: [{
4308
+ ], KwikIDFormsBuilder2Component.prototype, "handleOnClickSaveActiveFormConfig", null);
4309
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormsBuilder2Component, decorators: [{
3626
4310
  type: Component,
3627
4311
  args: [{
3628
- selector: "kwikid-forms-builder",
3629
- templateUrl: "./builder.component.html",
3630
- styleUrls: ["shared/shared.scss", "./builder.component.scss"]
4312
+ selector: "kwikid-forms-builder2",
4313
+ templateUrl: "./builder2.component.html",
4314
+ styleUrls: ["./shared.scss", "./builder2.component.scss"]
3631
4315
  }]
3632
- }], ctorParameters: function () { return []; }, propDecorators: { handleGetKeyValue: [], drop: [], exit: [], enter: [], removeElement: [], editElement: [], handleOnSaveUpdateElement: [] } });
4316
+ }], ctorParameters: function () { return []; }, propDecorators: { userConfig: [{
4317
+ type: Input
4318
+ }], fetchFormConfig: [], handleOnClickSetActiveForm: [], handleOnClickSaveActiveFormConfig: [] } });
3633
4319
 
3634
4320
  var EFieldType;
3635
4321
  (function (EFieldType) {
@@ -3640,14 +4326,17 @@ var EFieldType;
3640
4326
  EFieldType["CHECKBOX"] = "checkbox";
3641
4327
  EFieldType["NUMBER"] = "number";
3642
4328
  EFieldType["DATE"] = "date";
4329
+ EFieldType["IMAGE"] = "image";
3643
4330
  EFieldType["PREVIEW_IMAGE"] = "preview-image";
3644
4331
  EFieldType["PHONE"] = "phone";
3645
4332
  EFieldType["RADIO"] = "radio";
4333
+ EFieldType["SELECT"] = "select";
3646
4334
  EFieldType["DROPDOWN_WITH_SEARCH"] = "dropdown-with-search";
3647
4335
  EFieldType["API_CALL"] = "api-call";
3648
4336
  EFieldType["OTP"] = "otp";
3649
4337
  EFieldType["AADHAAR_NUMBER"] = "aadhaar-number";
3650
4338
  EFieldType["SLIDER"] = "slider";
4339
+ EFieldType["FILE"] = "file";
3651
4340
  })(EFieldType || (EFieldType = {}));
3652
4341
 
3653
4342
  const getFormFieldByKey = (fields, key) => {
@@ -3691,6 +4380,17 @@ const appendFormFieldMessage = (field, message) => {
3691
4380
  }
3692
4381
  return field;
3693
4382
  };
4383
+ const filterDuplicatesFiles = (array) => {
4384
+ const uniqueFiles = new Set();
4385
+ return array.filter((file) => {
4386
+ const fileKey = `${file.name}-${file.size}`;
4387
+ if (!uniqueFiles.has(fileKey)) {
4388
+ uniqueFiles.add(fileKey);
4389
+ return true;
4390
+ }
4391
+ return false;
4392
+ });
4393
+ };
3694
4394
  const removeFormFieldMessage = (field, message) => {
3695
4395
  field["messages"] = field["messages"].filter(function (fieldMessage) {
3696
4396
  return fieldMessage.type !== message.type;
@@ -3811,7 +4511,8 @@ const convertFormFieldValueToKwikUIFormat = (field, value) => {
3811
4511
  case EFieldType.DATE:
3812
4512
  convertedValue = convertFormFieldTypeDateToKwikUIFormat(value);
3813
4513
  break;
3814
- case EFieldType.TITLE:
4514
+ case EFieldType.FILE:
4515
+ convertedValue = value;
3815
4516
  break;
3816
4517
  default:
3817
4518
  break;
@@ -3835,6 +4536,9 @@ const convertFormFieldEmptyValueToKwikUIFormat = (field) => {
3835
4536
  case EFieldType.DATE:
3836
4537
  value = null;
3837
4538
  break;
4539
+ case EFieldType.FILE:
4540
+ value = [];
4541
+ break;
3838
4542
  default:
3839
4543
  value = "";
3840
4544
  break;
@@ -3845,11 +4549,11 @@ const convertFormFieldEmptyValueToKwikUIFormat = (field) => {
3845
4549
  class Converter {
3846
4550
  constructor() {
3847
4551
  this.getFormFields = (formConfig) => {
3848
- let fields;
4552
+ let fields = [];
3849
4553
  if (checkObjectKeyExists(formConfig, "multiForm")) {
3850
4554
  fields = formConfig.multiForm.fields;
3851
4555
  }
3852
- else {
4556
+ else if (checkObjectKeyExists(formConfig, "fields")) {
3853
4557
  fields = formConfig.fields;
3854
4558
  }
3855
4559
  return fields;
@@ -3966,7 +4670,7 @@ class Converter {
3966
4670
  field = this.setFieldKeyValue(field, "hidden", false);
3967
4671
  return field;
3968
4672
  };
3969
- const formatFieldTypePreviewImage = (field) => {
4673
+ const formatFieldTypeImage = (field) => {
3970
4674
  field = this.setFieldKeyValue(field, "isFormElement", true);
3971
4675
  field = this.setMissingFieldKeyValue(field, "properties", {});
3972
4676
  field.properties = this.setMissingFieldKeyValue(field.properties, "altText", "");
@@ -4063,7 +4767,7 @@ class Converter {
4063
4767
  }
4064
4768
  return field;
4065
4769
  };
4066
- const formatFieldTypeDropdownWithSearch = (field) => {
4770
+ const formatFieldTypeSelect = (field) => {
4067
4771
  field = this.setFieldKeyValue(field, "hidden", false);
4068
4772
  field = this.setFieldKeyValue(field, "isFormElement", true);
4069
4773
  return field;
@@ -4125,6 +4829,19 @@ class Converter {
4125
4829
  field = this.setFieldKeyValue(field, "isFormElement", true);
4126
4830
  return field;
4127
4831
  };
4832
+ const formatFieldTypeFile = (field) => {
4833
+ field = this.setFieldKeyValue(field, "isFormElement", true);
4834
+ field = this.setFieldKeyValue(field, "hidden", false);
4835
+ field = this.setMissingFieldKeyValue(field, "properties", {});
4836
+ field.properties = this.setMissingFieldKeyValue(field.properties, "multiple", true);
4837
+ field.properties = this.setMissingFieldKeyValue(field.properties, "accept", "application/pdf");
4838
+ field.properties = this.setMissingFieldKeyValue(field.properties, "label", "drop a file or");
4839
+ field.properties = this.setMissingFieldKeyValue(field.properties, "uploadFileToServer", true);
4840
+ field.properties = this.setMissingFieldKeyValue(field.properties, "link", "click to upload");
4841
+ field.properties = this.setMissingFieldKeyValue(field.properties, "size", "m");
4842
+ field.properties = this.setMissingFieldKeyValue(field.properties, "maxFileSize", 1000000);
4843
+ return field;
4844
+ };
4128
4845
  switch (field.type) {
4129
4846
  case EFieldType.HTML:
4130
4847
  field = formatFieldTypeHtml(field);
@@ -4145,7 +4862,11 @@ class Converter {
4145
4862
  field = formatFieldTypeNumber(field);
4146
4863
  break;
4147
4864
  case EFieldType.PREVIEW_IMAGE:
4148
- field = formatFieldTypePreviewImage(field);
4865
+ field = this.setFieldKeyValue(field, "type", "image");
4866
+ field = formatFieldTypeImage(field);
4867
+ break;
4868
+ case EFieldType.IMAGE:
4869
+ field = formatFieldTypeImage(field);
4149
4870
  break;
4150
4871
  case EFieldType.DATE:
4151
4872
  field = formatFieldTypeDate(field);
@@ -4163,7 +4884,11 @@ class Converter {
4163
4884
  field = formatFieldTypeSearchText(field);
4164
4885
  break;
4165
4886
  case EFieldType.DROPDOWN_WITH_SEARCH:
4166
- field = formatFieldTypeDropdownWithSearch(field);
4887
+ field = this.setFieldKeyValue(field, "type", "select");
4888
+ field = formatFieldTypeSelect(field);
4889
+ break;
4890
+ case EFieldType.SELECT:
4891
+ field = formatFieldTypeSelect(field);
4167
4892
  break;
4168
4893
  case EFieldType.API_CALL:
4169
4894
  field = formatFieldTypeApiCall(field);
@@ -4174,6 +4899,9 @@ class Converter {
4174
4899
  case EFieldType.AADHAAR_NUMBER:
4175
4900
  field = formatFieldTypeAadhaarNumber(field);
4176
4901
  break;
4902
+ case EFieldType.FILE:
4903
+ field = formatFieldTypeFile(field);
4904
+ break;
4177
4905
  default:
4178
4906
  break;
4179
4907
  }
@@ -4284,6 +5012,12 @@ class Converter {
4284
5012
  delete field.validators.max;
4285
5013
  delete field.validators.minLength;
4286
5014
  delete field.validators.maxLength;
5015
+ case EFieldType.FILE:
5016
+ delete field.validators.min;
5017
+ delete field.validators.max;
5018
+ delete field.validators.minLength;
5019
+ delete field.validators.maxLength;
5020
+ delete field.validators.pattern;
4287
5021
  break;
4288
5022
  default:
4289
5023
  break;
@@ -4309,11 +5043,58 @@ class Converter {
4309
5043
  return field;
4310
5044
  };
4311
5045
  const updateFieldDefaultValueConfig = (field) => {
5046
+ const defaultValue = {
5047
+ value: {
5048
+ is_found: false,
5049
+ value: "",
5050
+ sources: [
5051
+ {
5052
+ key: "OBJECT",
5053
+ props: {
5054
+ object: {
5055
+ key: "FORM_DATA",
5056
+ path: `$.${field.key}`
5057
+ }
5058
+ },
5059
+ value: "",
5060
+ validation: {
5061
+ is_valid: false,
5062
+ triggers: ["ON_INIT"],
5063
+ rules: [],
5064
+ actions: [
5065
+ {
5066
+ id: "1",
5067
+ key: "SET_FIELD_DEFAULT_VALUE",
5068
+ condition: "1",
5069
+ props: {
5070
+ value: {
5071
+ source: {
5072
+ key: "OBJECT",
5073
+ props: {
5074
+ object: {
5075
+ key: "FORM_DATA",
5076
+ path: `$.${field.key}`
5077
+ }
5078
+ }
5079
+ }
5080
+ }
5081
+ }
5082
+ }
5083
+ ]
5084
+ }
5085
+ }
5086
+ ]
5087
+ }
5088
+ };
4312
5089
  if (field.isFormElement) {
4313
5090
  if (checkObjectKeyExists(field, "defaultValue")) {
4314
5091
  return field;
4315
5092
  }
4316
- else if (checkObjectKeyExists(field, "default")) {
5093
+ else if (checkObjectPathExists(field, "default.value.sources")) {
5094
+ return field;
5095
+ }
5096
+ else if (!checkObjectPathExists(field, "default.value.sources")) {
5097
+ field = this.setFieldKeyValue(field, "default", defaultValue);
4317
5098
  return field;
4318
5099
  }
4319
5100
  delete field["defaultVal"];
@@ -5038,6 +5819,7 @@ class KwikIDFormViewComponent {
5038
5819
  disabled: false,
5039
5820
  showLoader: false
5040
5821
  };
5822
+ this.files = {};
5041
5823
  this.stopTaskExecution = false;
5042
5824
  this.waitingForChanges = false;
5043
5825
  this.popupFormConfig = undefined;
@@ -5058,6 +5840,7 @@ class KwikIDFormViewComponent {
5058
5840
  }
5059
5841
  ngAfterViewInit() { }
5060
5842
  ngOnChanges(changes) {
5843
+ var _a, _b, _c;
5061
5844
  const verifyChange = (key) => {
5062
5845
  return checkObjectKeyExists(changes, key) && !changes[key].firstChange;
5063
5846
  };
@@ -5085,6 +5868,26 @@ class KwikIDFormViewComponent {
5085
5868
  if (verifyChange("isMobileView")) {
5086
5869
  this.isMobileView = changes.isMobileView.currentValue;
5087
5870
  }
5871
+ if (verifyChange("apiCallResponse")) {
5872
+ this.apiCallResponse = changes.apiCallResponse.currentValue;
5873
+ let field = getFormFieldByKey(this.formFields, this.apiCallResponse.key);
5874
+ const response = (_a = this.apiCallResponse) === null || _a === void 0 ? void 0 : _a.response;
5875
+ switch (field.type) {
5876
+ case EFieldType.FILE:
5877
+ if (response) {
5878
+ const updatedFile = getObjectDeepCopy(Object.assign({ id: v4() }, response));
5879
+ this.updateFiles(updatedFile, "NORMAL", this.apiCallResponse.key);
5880
+ }
5881
+ else {
5882
+ const updatedFile = getObjectDeepCopy(Object.assign({ id: v4() }, (_c = (_b = this.apiCallResponse) === null || _b === void 0 ? void 0 : _b.payload) === null || _c === void 0 ? void 0 : _c.metadata));
5883
+ this.updateFiles(updatedFile, "ERROR", this.apiCallResponse.key);
5884
+ }
5885
+ this.hideApiLoader();
5886
+ break;
5887
+ default:
5888
+ break;
5889
+ }
5890
+ }
5088
5891
  if (verifyChange("allFormsData")) {
5089
5892
  this.allFormsData = changes.allFormsData.currentValue;
5090
5893
  }
@@ -5097,9 +5900,11 @@ class KwikIDFormViewComponent {
5097
5900
  }
5098
5901
  setLoaderType() {
5099
5902
  this.loaderType = "CENTER_SCREEN";
5100
- if (checkObjectKeyExists(this.userConfig, "utilityFlags")) {
5101
- if (checkObjectKeyExists(this.userConfig.utilityFlags, "loaderType")) {
5102
- this.loaderType = this.userConfig.utilityFlags.loaderType;
5903
+ if (isNotEmptyValue(this.userConfig)) {
5904
+ if (checkObjectKeyExists(this.userConfig, "utilityFlags")) {
5905
+ if (checkObjectKeyExists(this.userConfig.utilityFlags, "loaderType")) {
5906
+ this.loaderType = this.userConfig.utilityFlags.loaderType;
5907
+ }
5103
5908
  }
5104
5909
  }
5105
5910
  if (this.loaderType !== "FULL_SCREEN" &&
@@ -5162,11 +5967,17 @@ class KwikIDFormViewComponent {
5162
5967
  if (field.isFormElement) {
5163
5968
  this.previousFormData = Object.assign(Object.assign({}, this.previousFormData), { [field.key]: convertFormFieldValueToStandardFormat(field, this.formGroup.controls[field.key].value) });
5164
5969
  this.formData = Object.assign(Object.assign({}, this.formData), { [field.key]: convertFormFieldValueToStandardFormat(field, this.formGroup.controls[field.key].value) });
5970
+ if (field.type === EFieldType.FILE) {
5971
+ this.files[field.key] = this.formGroup.controls[field.key].value;
5972
+ }
5165
5973
  this.formGroup.controls[field.key].valueChanges
5166
5974
  .pipe(pairwise())
5167
5975
  .subscribe(([previousValue, currentValue]) => {
5168
5976
  this.previousFormData = Object.assign(Object.assign({}, this.previousFormData), { [field.key]: convertFormFieldValueToStandardFormat(field, previousValue) });
5169
5977
  this.formData = Object.assign(Object.assign({}, this.formData), { [field.key]: convertFormFieldValueToStandardFormat(field, currentValue) });
5978
+ if (field.type === EFieldType.FILE) {
5979
+ this.files[field.key] = currentValue;
5980
+ }
5170
5981
  });
5171
5982
  }
5172
5983
  }
@@ -5320,6 +6131,99 @@ class KwikIDFormViewComponent {
5320
6131
  }
5321
6132
  });
5322
6133
  }
6134
+ handleRemovedFile(e) {
6135
+ this.showApiLoader();
6136
+ if (this.formGroup["controls"][e.key].enabled) {
6137
+ this.files[e.key] = e.files;
6138
+ this.formData[e.key] = filterDuplicatesFiles(this.files[e.key]);
6139
+ this.formGroup.patchValue({
6140
+ [e.key]: this.formData[e.key]
6141
+ }, { emitEvent: false });
6142
+ }
6143
+ this.hideApiLoader();
6144
+ }
6145
+ handleGetKeyValueFile(e) {
6146
+ return __awaiter(this, void 0, void 0, function* () {
6147
+ this.showApiLoader();
6148
+ const field = getFormFieldByKey(this.formFields, e.key);
6149
+ let values = Array.isArray(e.value) ? e.value : [e.value];
6150
+ if (checkObjectKeyExists(field, "properties") &&
6151
+ checkObjectKeyExists(field.properties, "uploadFileToServer") &&
6152
+ field.properties.uploadFileToServer) {
6153
+ for (const value of values) {
6154
+ yield this.uploadFile(e.key, value);
6155
+ }
6156
+ }
6157
+ else {
6158
+ for (const value of values) {
6159
+ this.updateFiles(value, "LOADING", e.key);
6160
+ const updatedFile = getObjectDeepCopy(yield new Promise((resolve) => {
6161
+ setTimeout(() => {
6162
+ resolve({
6163
+ id: v4(),
6164
+ name: value.name,
6165
+ type: value.type,
6166
+ size: value.size,
6167
+ lastModified: value.lastModified,
6168
+ webkitRelativePath: value.webkitRelativePath
6169
+ });
6170
+ }, 300); // 1000 ms = 1 sec
6171
+ }));
6172
+ this.updateFiles(updatedFile, "NORMAL", e.key);
6173
+ }
6174
+ this.hideApiLoader();
6175
+ }
6176
+ });
6177
+ }
6178
+ /**
6179
+ * This method is used to update the files array with the new file and it's state and response from the api of uploading the file.
6180
+ */
6181
+ updateFiles(file, state, key) {
6182
+ const fileWithState = mergeObjects(file, { state: state });
6183
+ const updatedFiles = [
6184
+ ...this.files[key].filter((f) => f.name !== fileWithState.name || f.size !== fileWithState.size),
6185
+ fileWithState
6186
+ ];
6187
+ this.files[key] = filterDuplicatesFiles(updatedFiles);
6188
+ const normalFiles = this.files[key].filter((file) => {
6189
+ return file.state === "NORMAL";
6190
+ });
6191
+ this.formData[key] = normalFiles;
6192
+ this.formGroup.controls[key].patchValue(normalFiles, {
6193
+ emitEvent: false,
6194
+ onlySelf: false
6195
+ });
6196
+ this.formGroup.patchValue({
6197
+ [key]: normalFiles
6198
+ }, { emitEvent: false });
6199
+ }
6200
+ /**
6201
+ * This is a api upload mocking method. Set's to loading at first at point when API is called and then changes the status to random status after 2 seconds of delay showing a mocked response from API.
6202
+ */
6203
+ uploadFile(key, file) {
6204
+ return __awaiter(this, void 0, void 0, function* () {
6205
+ this.updateFiles(file, "LOADING", key);
6206
+ // Actual API Call
6207
+ try {
6208
+ this.onClickApiCall.emit({
6209
+ key: key,
6210
+ payload: {
6211
+ file: file,
6212
+ metadata: {
6213
+ name: file.name,
6214
+ type: file.type,
6215
+ size: file.size,
6216
+ lastModified: file.lastModified,
6217
+ webkitRelativePath: file.webkitRelativePath
6218
+ }
6219
+ }
6220
+ });
6221
+ }
6222
+ catch (err) {
6223
+ this.updateFiles(file, "ERROR", key);
6224
+ }
6225
+ });
6226
+ }
5323
6227
  // DOM Event Handlers
5324
6228
  handleGetKeyValue(e) {
5325
6229
  this.formGroup.patchValue({
@@ -5383,7 +6287,7 @@ class KwikIDFormViewComponent {
5383
6287
  }
5384
6288
  handleFieldApiCall(field, api) {
5385
6289
  return __awaiter(this, void 0, void 0, function* () {
5386
- api = yield this.handleApiCall(api, {
6290
+ api = yield this.executeApiCall(api, {
5387
6291
  FIELD_CONFIG: field,
5388
6292
  API_CONFIG: api,
5389
6293
  FORM_FIELDS: this.formFields,
@@ -5392,8 +6296,7 @@ class KwikIDFormViewComponent {
5392
6296
  PREVIOUS_FORM_DATA: this.previousFormData,
5393
6297
  ALL_FORMS_DATA: this.allFormsData
5394
6298
  });
5395
- if (api.request.body.validation.is_valid &&
5396
- api.request.headers.validation.is_valid) {
6299
+ if (this.validateHeadersAndBody(api)) {
5397
6300
  if (checkObjectKeyExists(field.api, "request")) {
5398
6301
  this.formData = Object.assign(Object.assign({}, this.formData), { [field.key]: api.response.value });
5399
6302
  this.formGroup.patchValue({
@@ -5420,9 +6323,9 @@ class KwikIDFormViewComponent {
5420
6323
  return { field: field, api: api };
5421
6324
  });
5422
6325
  }
5423
- handleTaskApiCall(api) {
6326
+ handleApiCall(api) {
5424
6327
  return __awaiter(this, void 0, void 0, function* () {
5425
- api = yield this.handleApiCall(api, {
6328
+ api = yield this.executeApiCall(api, {
5426
6329
  FORM_CONFIG: this.formConfig,
5427
6330
  API_CONFIG: api,
5428
6331
  FORM_FIELDS: this.formFields,
@@ -5440,14 +6343,13 @@ class KwikIDFormViewComponent {
5440
6343
  PREVIOUS_FORM_DATA: this.previousFormData,
5441
6344
  ALL_FORMS_DATA: this.allFormsData
5442
6345
  }, this.takeAction.bind(this));
5443
- if (api.request.body.validation.is_valid &&
5444
- api.request.headers.validation.is_valid) {
6346
+ if (this.validateHeadersAndBody(api)) {
5445
6347
  api = yield apis.validateResponse();
5446
6348
  }
5447
6349
  return { api: api };
5448
6350
  });
5449
6351
  }
5450
- handleApiCall(api, object) {
6352
+ executeApiCall(api, object) {
5451
6353
  var _a, _b, _c, _d, _e, _f, _g;
5452
6354
  return __awaiter(this, void 0, void 0, function* () {
5453
6355
  const apis = new Apis(object, this.takeAction.bind(this));
@@ -5457,8 +6359,7 @@ class KwikIDFormViewComponent {
5457
6359
  api = yield apis.setRequestBody();
5458
6360
  api = yield apis.validateRequestBody();
5459
6361
  let apiCallResponse = {};
5460
- if (api.request.body.validation.is_valid &&
5461
- api.request.headers.validation.is_valid) {
6362
+ if (this.validateHeadersAndBody(api)) {
5462
6363
  if (api.request.url.hasOwnProperty("type") &&
5463
6364
  api.request.url.type === EApiRequestUrlType.MOCK) {
5464
6365
  apiCallResponse = yield new Promise((resolve) => {
@@ -5503,6 +6404,12 @@ class KwikIDFormViewComponent {
5503
6404
  return api;
5504
6405
  });
5505
6406
  }
6407
+ validateHeadersAndBody(api) {
6408
+ return __awaiter(this, void 0, void 0, function* () {
6409
+ return (api.request.body.validation.is_valid &&
6410
+ api.request.headers.validation.is_valid);
6411
+ });
6412
+ }
5506
6413
  showApiLoader() {
5507
6414
  this.apiLoading = true;
5508
6415
  this.viewFormsButton["disabled"] = true;
@@ -5907,6 +6814,25 @@ class KwikIDFormViewComponent {
5907
6814
  this.previousFormData = source.object.PREVIOUS_FORM_DATA;
5908
6815
  });
5909
6816
  }
6817
+ apiCall(action, object) {
6818
+ return __awaiter(this, void 0, void 0, function* () {
6819
+ let apiConfig = this.formConfig.apis[action.props.formApiKey];
6820
+ const response = yield this.handleApiCall(apiConfig);
6821
+ apiConfig = response.api;
6822
+ this.formConfig = setValueToObjectPath(this.formConfig, `apis.${action.props.formApiKey}`, apiConfig);
6823
+ this.formData = mergeObjects(this.formData, {
6824
+ [action.props.formApiKey]: apiConfig.response.value
6825
+ });
6826
+ return apiConfig;
6827
+ });
6828
+ }
6829
+ fieldApiCall(action, object) {
6830
+ return __awaiter(this, void 0, void 0, function* () {
6831
+ this.showApiLoader();
6832
+ const apiConfig = yield this.apiCall(action, object);
6833
+ this.hideApiLoader();
6834
+ });
6835
+ }
5910
6836
  fieldMultipleApiCalls(action, object) {
5911
6837
  return __awaiter(this, void 0, void 0, function* () {
5912
6838
  const entrypointApiKey = action.props.apiKey;
@@ -5934,16 +6860,10 @@ class KwikIDFormViewComponent {
5934
6860
  taskApiCall(action, object) {
5935
6861
  return __awaiter(this, void 0, void 0, function* () {
5936
6862
  this.showApiLoader();
5937
- let apiConfig = this.formConfig.apis[action.props.formApiKey];
5938
- const response = yield this.handleTaskApiCall(apiConfig);
5939
- apiConfig = response.api;
5940
- this.formConfig = setValueToObjectPath(this.formConfig, `apis.${action.props.formApiKey}`, apiConfig);
6863
+ const apiConfig = yield this.apiCall(action, object);
5941
6864
  this.taskData = mergeObjects(this.taskData, {
5942
6865
  [action.props.formApiKey]: apiConfig.response.value
5943
6866
  });
5944
- this.formData = mergeObjects(this.formData, {
5945
- [action.props.formApiKey]: apiConfig.response.value
5946
- });
5947
6867
  this.waitingForChanges = false;
5948
6868
  this.hideApiLoader();
5949
6869
  });
@@ -5957,7 +6877,7 @@ class KwikIDFormViewComponent {
5957
6877
  const endpoints = multipleApiConfig.endpoints;
5958
6878
  const nextApiIndex = endpoints.findIndex((api) => api.apiKey == entrypointApiKey);
5959
6879
  const apiConfig = endpoints[nextApiIndex];
5960
- const response = yield this.handleTaskApiCall(apiConfig);
6880
+ const response = yield this.handleApiCall(apiConfig);
5961
6881
  multipleApiConfig.endpoints[nextApiIndex] = response.api;
5962
6882
  this.formConfig = setValueToObjectPath(this.formConfig, `apis.${action.props.formApiKey}`, multipleApiConfig);
5963
6883
  this.hideApiLoader();
@@ -6009,9 +6929,10 @@ class KwikIDFormViewComponent {
6009
6929
  }
6010
6930
  }
6011
6931
  patchFieldControlValue(key, value) {
6012
- this.formGroup.patchValue({
6013
- [key]: value
6014
- }, { emitEvent: false });
6932
+ this.formGroup.controls[key].patchValue(value, { emitEvent: false });
6933
+ }
6934
+ setFieldControlValue(key, value) {
6935
+ this.formGroup.controls[key].setValue(value, { emitEvent: false });
6015
6936
  }
6016
6937
  patchFormGroup(formData) {
6017
6938
  if (isUndefined(this.formGroup) || isUndefined(formData)) {
@@ -6213,6 +7134,7 @@ class KwikIDFormViewComponent {
6213
7134
  this.handleConnectedElements({ key: action.props.fieldKey }, "ON_ACTION");
6214
7135
  break;
6215
7136
  case EActionKey.API_CALL:
7137
+ yield this.fieldApiCall(action, object);
6216
7138
  break;
6217
7139
  case EActionKey.API_CALL_MULTIPLE:
6218
7140
  yield this.fieldMultipleApiCalls(action, object);
@@ -6310,7 +7232,7 @@ class KwikIDFormViewComponent {
6310
7232
  }
6311
7233
  }
6312
7234
  /** @nocollapse */ KwikIDFormViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormViewComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: KwikIDFormViewService }, { token: TuiPushService }, { token: TuiAlertService }, { token: TuiPreviewDialogService }, { token: TuiDialogService }], target: i0.ɵɵFactoryTarget.Component });
6313
- /** @nocollapse */ KwikIDFormViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDFormViewComponent, selector: "kwikid-form-view", inputs: { formConfig: "formConfig", formData: "formData", isMobileView: "isMobileView", allFormsData: "allFormsData", userConfig: "userConfig", popupFormCallback: "popupFormCallback" }, outputs: { onClickGoBack: "onClickGoBack", onClickViewForms: "onClickViewForms", onClickSaveForm: "onClickSaveForm", onClickApiCall: "onClickApiCall", onActionShowPopupForm: "onActionShowPopupForm" }, providers: [KwikIDFormViewService], viewQueries: [{ propertyName: "preview", first: true, predicate: ["preview"], descendants: true }, { propertyName: "dialog", first: true, predicate: ["dialog"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"kwikid-form-container\"\n *ngIf=\"!loading\"\n>\n <div\n id=\"uf-form-fields-header-container\"\n *ngIf=\"\n !formConfig.properties?.header?.title?.hidden ||\n !formConfig.properties?.header?.steps?.hidden ||\n !formConfig.properties?.header?.backButton?.hidden\n \"\n >\n <div id=\"uf-form-fields-header-main\">\n <div id=\"uf-form-fields-header-left\">\n <kwikui-button-icon\n *ngIf=\"\n !formConfig.properties?.header.backButton.hidden && isMobileView\n \"\n [disabled]=\"backButton.disabled\"\n id=\"\"\n [showLoader]=\"backButton.showLoader\"\n styles=\"\"\n class=\"\"\n type=\"submit\"\n appearance=\"mono\"\n icon=\"tuiIconArrowLeft\"\n shape=\"rounded\"\n size=\"m\"\n (onClick)=\"\n handleOnClickGoBack(\n $event,\n formConfig.properties?.header.backButton.mode\n )\n \"\n ></kwikui-button-icon>\n </div>\n <div id=\"uf-form-fields-header-right\">\n <div\n id=\"uf-form-fields-title\"\n *ngIf=\"!formConfig.properties?.header.title.hidden\"\n >{{ formConfig.properties?.header.title.label }}</div\n >\n <div\n id=\"uf-form-fields-steps\"\n *ngIf=\"!formConfig.properties?.header.steps.hidden\"\n >Step {{ formConfig.sequenceNo }} of\n {{ formConfig.formsListLength }}</div\n >\n </div>\n </div>\n <hr\n *ngIf=\"\n !formConfig.properties?.header.title.hidden ||\n !formConfig.properties?.header.steps.hidden ||\n !formConfig.properties?.header.backButton.hidden\n \"\n />\n </div>\n <form\n class=\"kwikid-form show\"\n [formGroup]=\"formGroup\"\n >\n <ng-container\n *ngFor=\"\n let field of formFields;\n let i = index;\n trackBy: getUniqueIdentifier\n \"\n >\n <ng-container [ngSwitch]=\"field.type\">\n <!-- HTML Content -->\n <ng-container *ngSwitchCase=\"'html'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <div [innerHtml]=\"field.html | safeHtml\"></div>\n </div>\n </ng-container>\n <!-- Form Title -->\n <ng-container *ngSwitchCase=\"'title'\">\n <div\n class=\"title\"\n [class.hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <div>\n {{ field.label }}\n </div>\n <kwikui-button\n *ngIf=\"field?.reset\"\n appearance=\"whiteblock\"\n size=\"s\"\n label=\"Reset\"\n (onClick)=\"handleOnClickResetFormFields($event, field)\"\n ></kwikui-button>\n </div>\n </ng-container>\n <!-- Input Text -->\n <ng-container *ngSwitchCase=\"'text'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input\n [case]=\"field?.properties?.case\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [type]=\"'text'\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Textarea -->\n <ng-container *ngSwitchCase=\"'textarea'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-textarea\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-textarea>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Checkbox -->\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-checkbox\n [contentAlign]=\"field?.properties?.contentAlign ?? 'left'\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.properties?.placeholder\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [size]=\"field?.properties?.size ?? 'l'\"\n [variant]=\"field?.properties?.variant ?? 'block'\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-checkbox>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Number -->\n <ng-container *ngSwitchCase=\"'number'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-number\n [decimal]=\"field?.properties?.decimal\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [max]=\"field?.properties?.max\"\n [min]=\"field?.properties?.min\"\n [placeholder]=\"field?.properties?.placeholder\"\n [postfix]=\"field?.properties?.postfix ?? ''\"\n [precision]=\"field?.properties?.precision\"\n [prefix]=\"field?.properties?.prefix ?? ''\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-number>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Date -->\n <ng-container *ngSwitchCase=\"'date'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-date\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [min]=\"field?.properties?.min\"\n [minCalculatedFromToday]=\"\n field?.properties?.minCalculatedFromToday\n \"\n [max]=\"field?.properties?.max\"\n [maxCalculatedFromToday]=\"\n field?.properties?.maxCalculatedFromToday\n \"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-date>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Phone -->\n <ng-container *ngSwitchCase=\"'phone'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-phone\n [countryCode]=\"field?.properties?.countryCode\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [phoneMaskAfterCountryCode]=\"\n field?.properties?.phoneMaskAfterCountryCode\n \"\n [removeCountryCodeFromValue]=\"\n field?.properties?.removeCountryCodeFromValue\n \"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-phone>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Radio -->\n <ng-container *ngSwitchCase=\"'radio'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <label\n [tuiLabel]=\"labelTemplate\"\n style=\"min-height: auto; padding: 0px 0.5rem\"\n >\n <kwikui-radio-list\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [items]=\"field?.options\"\n [label]=\"field?.label\"\n [orientation]=\"field?.properties?.orientation\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [size]=\"field?.properties?.size\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-radio-list>\n </label>\n <ng-template #labelTemplate>\n <p\n class=\"tui-space_bottom-2\"\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <b>\n {{ field.label }}\n <span *ngIf=\"field.validators?.required\">*</span>\n </b>\n </p>\n </ng-template>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Dropdown -->\n <ng-container *ngSwitchCase=\"'dropdown-with-search'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-select-combobox\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [options]=\"field.options\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-select-combobox>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Slider -->\n <ng-container *ngSwitchCase=\"'slider'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-slider\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [max]=\"field?.properties?.max\"\n [min]=\"field?.properties?.min\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [quantum]=\"field?.properties?.quantum\"\n [size]=\"field?.properties?.size\"\n [steps]=\"field?.properties?.steps\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-slider>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- API Call -->\n <ng-container *ngSwitchCase=\"'api-call'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-button-api-call\n [apiStatus]=\"field?.api?.status?.value\"\n [class]=\"field?.class\"\n [disabled]=\"field?.disabled\"\n [id]=\"field.key\"\n [label]=\"field?.api?.status?.labels[field?.api?.status?.value]\"\n [showLoader]=\"field?.disabled === 'loading'\"\n shape=\"null\"\n size=\"m\"\n styles=\"width: fit-content\"\n (onClick)=\"handleOnClickApiCall($event)\"\n ></kwikui-button-api-call>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Mobile OTP -->\n <ng-container *ngSwitchCase=\"'otp'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-otp\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [size]=\"field?.properties?.size\"\n [mode]=\"field?.properties?.mode\"\n [otpLength]=\"field?.properties?.otpLength\"\n [mask]=\"field?.properties?.mask\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-otp>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Aadhaar Number -->\n <ng-container *ngSwitchCase=\"'aadhaar-number'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-aadhaar\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [placeholder]=\"field?.placeholder\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-aadhaar>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Preview Image -->\n <ng-container *ngSwitchCase=\"'preview-image'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-preview-image\n [altText]=\"field?.properties?.altText\"\n [html]=\"field?.properties?.html\"\n [id]=\"field.key\"\n [imageSrc]=\"field?.default?.value?.value\"\n [imageType]=\"field?.properties?.imageType\"\n [loadingType]=\"field?.properties?.loadingType\"\n [styles]=\"field?.properties?.styles\"\n [class]=\"field?.properties?.class\"\n ></kwikui-preview-image>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </form>\n <div class=\"kwikid-form-buttons\">\n <kwikui-button\n *ngIf=\"\n !formConfig.properties.footer.viewFormsButton.hidden && isMobileView\n \"\n [disabled]=\"viewFormsButton.disabled\"\n id=\"\"\n label=\"{{ formConfig.properties.footer.viewFormsButton.label }}\"\n [showLoader]=\"viewFormsButton.showLoader\"\n styles=\"\"\n class=\"\"\n type=\"button\"\n appearance=\"secondary\"\n icon=\"\"\n iconRight=\"\"\n [shape]=\"null\"\n size=\"m\"\n styles=\"width: 100%\"\n (onClick)=\"handleOnClickViewForms($event)\"\n ></kwikui-button>\n <kwikui-button\n *ngIf=\"!formConfig.properties.footer.saveButton.hidden\"\n [disabled]=\"saveFormButton.disabled\"\n id=\"\"\n label=\"{{ formConfig.properties.footer.saveButton.label }}\"\n [showLoader]=\"saveFormButton.showLoader\"\n styles=\"\"\n class=\"\"\n type=\"button\"\n appearance=\"primary\"\n icon=\"\"\n iconRight=\"\"\n [shape]=\"null\"\n size=\"m\"\n styles=\"width: 100%\"\n (onClick)=\"handleOnClickSaveForm($event)\"\n ></kwikui-button>\n </div>\n</div>\n<div\n class=\"kwikid-form-container-loading\"\n *ngIf=\"loading\"\n>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n >\n </div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n >\n </div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n >\n </div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n >\n </div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n >\n </div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n >\n </div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n >\n </div>\n</div>\n<div\n ngClass=\"kwikid-form-view-api-loader-full_screen\"\n *ngIf=\"apiLoading && loaderType === 'FULL_SCREEN'\"\n>\n <span class=\"loader\"></span>\n</div>\n<div\n ngClass=\"kwikid-form-view-api-loader-center_screen\"\n *ngIf=\"apiLoading && loaderType === 'CENTER_SCREEN'\"\n>\n <div class=\"loader-container\">\n <span class=\"loader\"></span>\n <div class=\"loader-text\">Please wait</div>\n </div>\n</div>\n<tui-push\n id=\"field-error-notification\"\n *tuiPush=\"showErrorNotification\"\n heading=\"Missing/Incorrect Fields!\"\n type=\"Error\"\n (close)=\"toggleErrorNotification(false)\"\n>\n <tui-svg\n src=\"tuiIconXCircle\"\n style=\"color: #fff !important\"\n >\n </tui-svg>\n</tui-push>\n\n<ng-template\n #preview\n let-preview\n>\n <tui-preview\n [rotatable]=\"false\"\n [zoomable]=\"false\"\n class=\"preview-container\"\n >\n <tui-preview-title *ngIf=\"previewProperties.title !== ''\">{{\n previewProperties.title\n }}</tui-preview-title>\n\n <ng-container *ngIf=\"!previewProperties.unavailable\">\n <div\n *ngIf=\"previewProperties?.html?.before !== ''\"\n class=\"preview-html preview-html-before\"\n [style]=\"previewProperties?.html?.beforeStyles\"\n [innerHtml]=\"previewProperties.html.before | safeHtml\"\n ></div>\n\n <!-- Content within the iframe -->\n <div\n class=\"preview-iframe-content\"\n [style]=\"previewProperties?.iframe?.containerStyles\"\n *ngIf=\"previewProperties.iframe.src !== ''\"\n >\n <!-- Your HTML content here -->\n <iframe\n [src]=\"previewProperties.iframe.src | safeUrl\"\n frameborder=\"0\"\n allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n allowfullscreen\n [title]=\"previewProperties.iframe.title\"\n class=\"preview-iframe\"\n scrolling=\"auto\"\n ></iframe>\n </div>\n\n <div\n *ngIf=\"previewProperties?.html?.after !== ''\"\n class=\"preview-html preview-html-after\"\n [style]=\"previewProperties?.html?.afterStyles\"\n [innerHtml]=\"previewProperties.html.after | safeHtml\"\n ></div>\n </ng-container>\n\n <ng-container *ngIf=\"previewProperties.unavailable\">\n <div class=\"preview-unavailable\">\n <tui-svg\n src=\"tuiIconFileLarge\"\n class=\"t-icon\"\n ></tui-svg>\n <div>Preview unavailable</div>\n </div>\n </ng-container>\n\n <button\n tuiIconButton\n tuiPreviewAction\n icon=\"tuiIconCloseLarge\"\n title=\"Close\"\n type=\"button\"\n (click)=\"preview.complete()\"\n ></button>\n </tui-preview>\n</ng-template>\n\n<ng-template\n #dialog\n let-dialog\n>\n <div class=\"preview-container\">\n <ng-container *ngIf=\"!previewProperties.unavailable\">\n <div\n *ngIf=\"previewProperties?.html?.before !== ''\"\n class=\"preview-html preview-html-before\"\n [style]=\"previewProperties?.html?.beforeStyles\"\n [innerHtml]=\"previewProperties.html.before | safeHtml\"\n ></div>\n\n <!-- Content within the iframe -->\n <div\n class=\"preview-iframe-content\"\n [style]=\"previewProperties?.iframe?.containerStyles\"\n *ngIf=\"previewProperties.iframe.src !== ''\"\n >\n <!-- Your HTML content here -->\n <iframe\n [src]=\"previewProperties.iframe.src | safeUrl\"\n frameborder=\"0\"\n allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n allowfullscreen\n [title]=\"previewProperties.iframe.title\"\n class=\"preview-iframe\"\n scrolling=\"auto\"\n ></iframe>\n </div>\n\n <div\n *ngIf=\"previewProperties?.html?.after !== ''\"\n class=\"preview-html preview-html-after\"\n [style]=\"previewProperties?.html?.afterStyles\"\n [innerHtml]=\"previewProperties.html.after | safeHtml\"\n ></div>\n </ng-container>\n\n <ng-container *ngIf=\"previewProperties.unavailable\">\n <div class=\"preview-unavailable\">\n <tui-svg\n src=\"tuiIconFileLarge\"\n class=\"t-icon\"\n ></tui-svg>\n <div>Preview unavailable</div>\n </div>\n </ng-container>\n </div>\n</ng-template>\n", styles: ["::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}.kwikid-form-container{width:100%;height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center}.kwikid-form.show{width:100%;height:100%;padding:1rem;overflow-y:auto;display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch;grid-row-gap:1rem;row-gap:1rem}.kwikid-form-buttons{width:100%;bottom:0px;padding:1rem;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-column-gap:10px;column-gap:10px}.kwikid-form-buttons *{flex-grow:1}#uf-form-fields-header-container{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:flex-start;grid-row-gap:1rem;row-gap:1rem;padding:1rem 1rem 0}#uf-form-fields-header-container #uf-form-fields-header-main{display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center;grid-gap:.25rem;gap:.25rem;width:100%}#uf-form-fields-header-container #uf-form-fields-header-main #uf-form-fields-header-right{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:flex-start;grid-row-gap:.5rem;grid-row-gap:.25rem;row-gap:.25rem}#uf-form-fields-header-container hr{width:100%}#uf-form-fields-title{color:#000;font-size:1.75em;font-weight:bold}#uf-form-fields-steps{color:var(--color-on-secondary-container);font-size:1rem}.title{border-left:.25rem solid var(--tui-primary);padding:.75rem;font-size:1.4em;font-weight:bold;background-color:var(--tui-secondary);display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-gap:.5rem;gap:.5rem}.title:not(:first-child){margin-top:.5rem}.title.hidden{display:none}.large-wrapper{width:100%;height:60px}.large-wrapper:first-child{margin-bottom:auto}.large-wrapper:last-child{margin-top:auto}.kwikid-form-container-loading{width:100%;height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center;grid-row-gap:1rem;row-gap:1rem;padding:1rem}#field-error-notification{background-color:var(--tui-error-fill);color:#fff!important}#field-error-notification .t-top{color:#fff!important}#field-error-notification .t-close{color:#fff!important}.preview-container{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;align-content:center;grid-gap:1rem;gap:1rem;height:calc(100vh - 3rem)}.preview-container .preview-html{flex-grow:1}.preview-container .preview-iframe-content{height:100%;flex-grow:1}.preview-container .preview-iframe-content .preview-iframe{width:100%;height:100%}.preview-container .preview-unavailable{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:center;grid-gap:1rem;grid-gap:1.4rem;gap:1.4rem;color:#fff;font-size:1.2rem;top:50%;left:50%;width:100%;height:100vh}.kwikid-form-view-api-loader-full_screen{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.75);display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;z-index:100}.kwikid-form-view-api-loader-full_screen .loader{width:48px;height:48px;border-radius:50%;display:inline-block;position:relative;border:3px solid;border-color:#fff #fff transparent;box-sizing:border-box;animation:rotation 1s linear infinite}.kwikid-form-view-api-loader-full_screen .loader:after{content:\"\";box-sizing:border-box;position:absolute;left:0;right:0;top:0;bottom:0;margin:auto;border:3px solid;border-color:transparent var(--tui-primary) var(--tui-primary);width:24px;height:24px;border-radius:50%;animation:rotationBack .5s linear infinite;transform-origin:center center}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotationBack{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}.kwikid-form-view-api-loader-full_screen .t-loader{display:none!important}.kwikid-form-view-api-loader-center_screen{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(211,211,211,.5);display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-gap:1rem;gap:1rem;z-index:100}.kwikid-form-view-api-loader-center_screen .loader-container{display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;padding:2rem 1.5rem;grid-gap:1rem;gap:1rem;background-color:#fff;box-shadow:#959da533 0 8px 24px;border-radius:.5rem}.kwikid-form-view-api-loader-center_screen .loader-container .loader{width:28px;height:28px;border-radius:50%;display:inline-block;position:relative;border:3px solid;box-sizing:border-box;border-color:var(--tui-primary) transparent transparent;animation:rotation 1s ease-out infinite}@keyframes rotation{0%{transform:rotate(0);animation-timing-function:ease-in}25%{animation-timing-function:linear}50%{transform:rotate(180deg);animation-timing-function:ease-out}75%{animation-timing-function:linear}to{transform:rotate(360deg);animation-timing-function:ease-in}}.kwikid-form-view-api-loader-center_screen .loader-container .loader-text{font-size:1rem;color:#000;margin:0}.kwikid-form-view-api-loader-center_screen .t-loader{display:none!important}\n"], components: [{ type: i1.KwikUIButtonIconComponent, selector: "kwikui-button-icon", inputs: ["disabled", "id", "showLoader", "styles", "class", "type", "appearance", "icon", "shape", "size"], outputs: ["onClick"] }, { type: i1.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }, { type: i1.KwikUIInputComponent, selector: "kwikui-input", inputs: ["label", "id", "type", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "validators", "case", "size", "icon", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIMessagesComponent, selector: "kwikui-messages", inputs: ["messages", "id"] }, { type: i1.KwikUITextareaComponent, selector: "kwikui-textarea", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "size", "placeholder", "properties", "validators"], outputs: ["getKeyValue"] }, { type: i1.KwikUICheckboxComponent, selector: "kwikui-checkbox", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "contentAlign", "focus", "invalid", "disabled", "size", "validators", "properties", "variant"], outputs: ["getKeyValue"] }, { type: i1.KwikUIInputNumberComponent, selector: "kwikui-input-number", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "min", "max", "prefix", "postfix", "precision", "decimal", "size", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIInputDateComponent, selector: "kwikui-input-date", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "min", "minCalculatedFromToday", "max", "maxCalculatedFromToday", "size", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIInputPhoneComponent, selector: "kwikui-input-phone", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "countryCode", "phoneMaskAfterCountryCode", "removeCountryCodeFromValue", "size", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i3$1.TuiLabelComponent, selector: "label[tuiLabel]", inputs: ["tuiLabel", "context"] }, { type: i1.KwikUIRadioListComponent, selector: "kwikui-radio-list", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "size", "orientation", "items", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUISelectComboboxComponent, selector: "kwikui-select-combobox", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "options", "size", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIInputSliderComponent, selector: "kwikui-input-slider", inputs: ["label", "id", "type", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "validators", "size", "min", "max", "steps", "quantum", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIButtonApiCallComponent, selector: "kwikui-button-api-call", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "shape", "size", "apiStatus"], outputs: ["onClick"] }, { type: i1.KwikUIInputOtpComponent, selector: "kwikui-input-otp", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "placeholder", "mask", "size", "prefix", "postfix", "mode", "otpLength", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIInputAadhaarComponent, selector: "kwikui-input-aadhaar", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "placeholder", "mask", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIPreviewImageComponent, selector: "kwikui-preview-image", inputs: ["id", "imageSrc", "altText", "imageType", "styles", "class", "loadingType", "html"], outputs: ["onClick"] }, { type: i4$1.TuiPushComponent, selector: "tui-push", inputs: ["heading", "type", "timestamp"], outputs: ["close"] }, { type: i3$1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i5.TuiPreviewComponent, selector: "tui-preview", inputs: ["zoomable", "rotatable"] }, { type: i5.TuiPreviewTitleComponent, selector: "tui-preview-title" }, { type: i3$1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4$1.TuiPushAlertDirective, selector: "[tuiPush]", inputs: ["tuiPush"] }, { type: i4$1.TuiPushDirective, selector: "tui-push" }, { type: i5.TuiPreviewActionDirective, selector: "[tuiPreviewAction]" }], pipes: { "safeHtml": SafeHtmlPipe$1, "safeUrl": SafeUrlPipe } });
7235
+ /** @nocollapse */ KwikIDFormViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDFormViewComponent, selector: "kwikid-form-view", inputs: { formConfig: "formConfig", formData: "formData", isMobileView: "isMobileView", allFormsData: "allFormsData", userConfig: "userConfig", apiCallResponse: "apiCallResponse", popupFormCallback: "popupFormCallback" }, outputs: { onClickGoBack: "onClickGoBack", onClickViewForms: "onClickViewForms", onClickSaveForm: "onClickSaveForm", onClickApiCall: "onClickApiCall", onActionShowPopupForm: "onActionShowPopupForm" }, providers: [KwikIDFormViewService], viewQueries: [{ propertyName: "preview", first: true, predicate: ["preview"], descendants: true }, { propertyName: "dialog", first: true, predicate: ["dialog"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"kwikid-form-container\"\n *ngIf=\"!loading\"\n>\n <div\n id=\"uf-form-fields-header-container\"\n *ngIf=\"\n !formConfig.properties?.header?.title?.hidden ||\n !formConfig.properties?.header?.steps?.hidden ||\n !formConfig.properties?.header?.backButton?.hidden\n \"\n >\n <div id=\"uf-form-fields-header-main\">\n <div id=\"uf-form-fields-header-left\">\n <kwikui-button\n *ngIf=\"\n !formConfig.properties?.header.backButton.hidden && isMobileView\n \"\n [disabled]=\"backButton.disabled\"\n id=\"\"\n [showLoader]=\"backButton.showLoader\"\n styles=\"\"\n class=\"\"\n type=\"submit\"\n appearance=\"mono\"\n icon=\"tuiIconArrowLeft\"\n shape=\"rounded\"\n size=\"m\"\n (onClick)=\"\n handleOnClickGoBack(\n $event,\n formConfig.properties?.header.backButton.mode\n )\n \"\n ></kwikui-button>\n </div>\n <div id=\"uf-form-fields-header-right\">\n <div\n id=\"uf-form-fields-title\"\n *ngIf=\"!formConfig.properties?.header.title.hidden\"\n >{{ formConfig.properties?.header.title.label }}</div\n >\n <div\n id=\"uf-form-fields-steps\"\n *ngIf=\"!formConfig.properties?.header.steps.hidden\"\n >Step {{ formConfig.sequenceNo }} of\n {{ formConfig.formsListLength }}</div\n >\n </div>\n </div>\n <hr\n *ngIf=\"\n !formConfig.properties?.header.title.hidden ||\n !formConfig.properties?.header.steps.hidden ||\n !formConfig.properties?.header.backButton.hidden\n \"\n />\n </div>\n <form\n class=\"kwikid-form show\"\n [formGroup]=\"formGroup\"\n >\n <ng-container\n *ngFor=\"\n let field of formFields;\n let i = index;\n trackBy: getUniqueIdentifier\n \"\n >\n <ng-container [ngSwitch]=\"field.type\">\n <!-- HTML Content -->\n <ng-container *ngSwitchCase=\"'html'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <div [innerHtml]=\"field.html | safeHtml\"></div>\n </div>\n </ng-container>\n <!-- Form Title -->\n <ng-container *ngSwitchCase=\"'title'\">\n <div\n class=\"title\"\n [class.hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <div>\n {{ field.label }}\n </div>\n <kwikui-button\n *ngIf=\"field?.reset\"\n appearance=\"whiteblock\"\n size=\"s\"\n label=\"Reset\"\n (onClick)=\"handleOnClickResetFormFields($event, field)\"\n ></kwikui-button>\n </div>\n </ng-container>\n <!-- Input Text -->\n <ng-container *ngSwitchCase=\"'text'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input\n [case]=\"field?.properties?.case\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [type]=\"'text'\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Textarea -->\n <ng-container *ngSwitchCase=\"'textarea'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-textarea\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-textarea>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Checkbox -->\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-checkbox\n [contentAlign]=\"field?.properties?.contentAlign ?? 'left'\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.properties?.placeholder\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [size]=\"field?.properties?.size ?? 'l'\"\n [variant]=\"field?.properties?.variant ?? 'block'\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-checkbox>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Number -->\n <ng-container *ngSwitchCase=\"'number'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-number\n [decimal]=\"field?.properties?.decimal\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [max]=\"field?.properties?.max\"\n [min]=\"field?.properties?.min\"\n [placeholder]=\"field?.properties?.placeholder\"\n [postfix]=\"field?.properties?.postfix ?? ''\"\n [precision]=\"field?.properties?.precision\"\n [prefix]=\"field?.properties?.prefix ?? ''\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-number>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Date -->\n <ng-container *ngSwitchCase=\"'date'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-date\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [min]=\"field?.properties?.min\"\n [minCalculatedFromToday]=\"\n field?.properties?.minCalculatedFromToday\n \"\n [max]=\"field?.properties?.max\"\n [maxCalculatedFromToday]=\"\n field?.properties?.maxCalculatedFromToday\n \"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-date>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Phone -->\n <ng-container *ngSwitchCase=\"'phone'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-phone\n [countryCode]=\"field?.properties?.countryCode\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [phoneMaskAfterCountryCode]=\"\n field?.properties?.phoneMaskAfterCountryCode\n \"\n [removeCountryCodeFromValue]=\"\n field?.properties?.removeCountryCodeFromValue\n \"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-phone>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Radio -->\n <ng-container *ngSwitchCase=\"'radio'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <label\n [tuiLabel]=\"labelTemplate\"\n style=\"min-height: auto; padding: 0px 0.5rem\"\n >\n <kwikui-input-radio\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [items]=\"field?.options\"\n [label]=\"field?.label\"\n [orientation]=\"field?.properties?.orientation\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [size]=\"field?.properties?.size\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-radio>\n </label>\n <ng-template #labelTemplate>\n <p\n class=\"tui-space_bottom-2\"\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <b>\n {{ field.label }}\n <span *ngIf=\"field.validators?.required\">*</span>\n </b>\n </p>\n </ng-template>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Dropdown -->\n <ng-container *ngSwitchCase=\"'select'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-select\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [options]=\"field.options\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-select>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Slider -->\n <ng-container *ngSwitchCase=\"'slider'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-slider\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [max]=\"field?.properties?.max\"\n [min]=\"field?.properties?.min\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [quantum]=\"field?.properties?.quantum\"\n [size]=\"field?.properties?.size\"\n [steps]=\"field?.properties?.steps\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-slider>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- API Call -->\n <ng-container *ngSwitchCase=\"'api-call'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-button-api-call\n [apiStatus]=\"field?.api?.status?.value\"\n [class]=\"field?.class\"\n [disabled]=\"field?.disabled\"\n [id]=\"field.key\"\n [label]=\"field?.api?.status?.labels[field?.api?.status?.value]\"\n [showLoader]=\"field?.disabled === 'loading'\"\n shape=\"null\"\n size=\"m\"\n styles=\"width: fit-content\"\n (onClick)=\"handleOnClickApiCall($event)\"\n ></kwikui-button-api-call>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Mobile OTP -->\n <ng-container *ngSwitchCase=\"'otp'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-otp\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [size]=\"field?.properties?.size\"\n [mode]=\"field?.properties?.mode\"\n [otpLength]=\"field?.properties?.otpLength\"\n [mask]=\"field?.properties?.mask\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-otp>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Aadhaar Number -->\n <ng-container *ngSwitchCase=\"'aadhaar-number'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-aadhaar\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [placeholder]=\"field?.placeholder\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-aadhaar>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Preview Image -->\n <ng-container *ngSwitchCase=\"'image'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-image\n [altText]=\"field?.properties?.altText\"\n [html]=\"field?.properties?.html\"\n [id]=\"field.key\"\n [imageSrc]=\"field?.default?.value?.value\"\n [imageType]=\"field?.properties?.imageType\"\n [loadingType]=\"field?.properties?.loadingType\"\n [styles]=\"field?.properties?.styles\"\n [class]=\"field?.properties?.class\"\n ></kwikui-image>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- File Upload -->\n <ng-container *ngSwitchCase=\"'file'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <label\n [tuiLabel]=\"labelTemplate\"\n style=\"min-height: auto\"\n >\n <kwikui-input-files\n [id]=\"field?.key\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [styles]=\"field?.properties?.styles\"\n [class]=\"field?.properties?.class\"\n [multiple]=\"field?.properties?.multiple\"\n [accept]=\"field?.properties?.accept\"\n [files]=\"files[field.key]\"\n [setFileTypesToForm]=\"['NORMAL']\"\n [label]=\"field?.properties?.label\"\n [link]=\"field?.properties?.link\"\n [maxFileSize]=\"field?.properties?.maxFileSize\"\n [disabled]=\"field?.disabled\"\n [validators]=\"field?.validators\"\n (getRemovedFile)=\"handleRemovedFile($event)\"\n (getKeyValue)=\"handleGetKeyValueFile($event)\"\n ></kwikui-input-files>\n </label>\n <ng-template #labelTemplate>\n <p\n style=\"padding: 0px 0.25rem; margin-bottom: 0.25rem\"\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <b>\n {{ field.label }}\n <span *ngIf=\"field.validators?.required\">*</span>\n </b>\n </p>\n </ng-template>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </form>\n <div class=\"kwikid-form-buttons\">\n <kwikui-button\n *ngIf=\"\n !formConfig.properties.footer.viewFormsButton.hidden && isMobileView\n \"\n [disabled]=\"viewFormsButton.disabled\"\n id=\"\"\n label=\"{{ formConfig.properties.footer.viewFormsButton.label }}\"\n [showLoader]=\"viewFormsButton.showLoader\"\n styles=\"\"\n class=\"\"\n type=\"button\"\n appearance=\"secondary\"\n icon=\"\"\n iconRight=\"\"\n [shape]=\"null\"\n size=\"m\"\n styles=\"width: 100%\"\n (onClick)=\"handleOnClickViewForms($event)\"\n ></kwikui-button>\n <kwikui-button\n *ngIf=\"!formConfig.properties.footer.saveButton.hidden\"\n [disabled]=\"saveFormButton.disabled\"\n id=\"\"\n label=\"{{ formConfig.properties.footer.saveButton.label }}\"\n [showLoader]=\"saveFormButton.showLoader\"\n styles=\"\"\n class=\"\"\n type=\"button\"\n appearance=\"primary\"\n icon=\"\"\n iconRight=\"\"\n [shape]=\"null\"\n size=\"m\"\n styles=\"width: 100%\"\n (onClick)=\"handleOnClickSaveForm($event)\"\n ></kwikui-button>\n </div>\n</div>\n<div\n class=\"kwikid-form-container-loading\"\n *ngIf=\"loading\"\n>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n >\n </div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n >\n </div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n >\n </div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n >\n </div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n >\n </div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n >\n </div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n >\n </div>\n</div>\n\n<kwikui-loader\n [loaderText]=\"'Please wait'\"\n [showLoader]=\"apiLoading\"\n [fullscreen]=\"true\"\n></kwikui-loader>\n\n<tui-push\n id=\"field-error-notification\"\n *tuiPush=\"showErrorNotification\"\n heading=\"Missing/Incorrect Fields!\"\n type=\"Error\"\n (close)=\"toggleErrorNotification(false)\"\n>\n <tui-svg\n src=\"tuiIconXCircle\"\n style=\"color: #fff !important\"\n >\n </tui-svg>\n</tui-push>\n\n<ng-template\n #preview\n let-preview\n>\n <tui-preview\n [rotatable]=\"false\"\n [zoomable]=\"false\"\n class=\"preview-container\"\n >\n <tui-preview-title *ngIf=\"previewProperties.title !== ''\">{{\n previewProperties.title\n }}</tui-preview-title>\n\n <ng-container *ngIf=\"!previewProperties.unavailable\">\n <div\n *ngIf=\"previewProperties?.html?.before !== ''\"\n class=\"preview-html preview-html-before\"\n [style]=\"previewProperties?.html?.beforeStyles\"\n [innerHtml]=\"previewProperties.html.before | safeHtml\"\n ></div>\n\n <!-- Content within the iframe -->\n <div\n class=\"preview-iframe-content\"\n [style]=\"previewProperties?.iframe?.containerStyles\"\n *ngIf=\"previewProperties.iframe.src !== ''\"\n >\n <!-- Your HTML content here -->\n <iframe\n [src]=\"previewProperties.iframe.src | safeUrl\"\n frameborder=\"0\"\n allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n allowfullscreen\n [title]=\"previewProperties.iframe.title\"\n class=\"preview-iframe\"\n scrolling=\"auto\"\n ></iframe>\n </div>\n\n <div\n *ngIf=\"previewProperties?.html?.after !== ''\"\n class=\"preview-html preview-html-after\"\n [style]=\"previewProperties?.html?.afterStyles\"\n [innerHtml]=\"previewProperties.html.after | safeHtml\"\n ></div>\n </ng-container>\n\n <ng-container *ngIf=\"previewProperties.unavailable\">\n <div class=\"preview-unavailable\">\n <tui-svg\n src=\"tuiIconFileLarge\"\n class=\"t-icon\"\n ></tui-svg>\n <div>Preview unavailable</div>\n </div>\n </ng-container>\n\n <button\n tuiIconButton\n tuiPreviewAction\n icon=\"tuiIconCloseLarge\"\n title=\"Close\"\n type=\"button\"\n (click)=\"preview.complete()\"\n ></button>\n </tui-preview>\n</ng-template>\n\n<ng-template\n #dialog\n let-dialog\n>\n <div class=\"preview-container\">\n <ng-container *ngIf=\"!previewProperties.unavailable\">\n <div\n *ngIf=\"previewProperties?.html?.before !== ''\"\n class=\"preview-html preview-html-before\"\n [style]=\"previewProperties?.html?.beforeStyles\"\n [innerHtml]=\"previewProperties.html.before | safeHtml\"\n ></div>\n\n <!-- Content within the iframe -->\n <div\n class=\"preview-iframe-content\"\n [style]=\"previewProperties?.iframe?.containerStyles\"\n *ngIf=\"previewProperties.iframe.src !== ''\"\n >\n <!-- Your HTML content here -->\n <iframe\n [src]=\"previewProperties.iframe.src | safeUrl\"\n frameborder=\"0\"\n allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n allowfullscreen\n [title]=\"previewProperties.iframe.title\"\n class=\"preview-iframe\"\n scrolling=\"auto\"\n ></iframe>\n </div>\n\n <div\n *ngIf=\"previewProperties?.html?.after !== ''\"\n class=\"preview-html preview-html-after\"\n [style]=\"previewProperties?.html?.afterStyles\"\n [innerHtml]=\"previewProperties.html.after | safeHtml\"\n ></div>\n </ng-container>\n\n <ng-container *ngIf=\"previewProperties.unavailable\">\n <div class=\"preview-unavailable\">\n <tui-svg\n src=\"tuiIconFileLarge\"\n class=\"t-icon\"\n ></tui-svg>\n <div>Preview unavailable</div>\n </div>\n </ng-container>\n </div>\n</ng-template>\n", styles: ["::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}.kwikid-form-container{width:100%;height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center}.kwikid-form.show{width:100%;height:100%;padding:1rem;overflow-y:auto;display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch;grid-row-gap:1rem;row-gap:1rem}.kwikid-form-buttons{width:100%;bottom:0px;padding:1rem;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-column-gap:10px;column-gap:10px}.kwikid-form-buttons *{flex-grow:1}#uf-form-fields-header-container{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:flex-start;grid-row-gap:1rem;row-gap:1rem;padding:1rem 1rem 0}#uf-form-fields-header-container #uf-form-fields-header-main{display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center;grid-gap:.25rem;gap:.25rem;width:100%}#uf-form-fields-header-container #uf-form-fields-header-main #uf-form-fields-header-right{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:flex-start;grid-row-gap:.5rem;grid-row-gap:.25rem;row-gap:.25rem}#uf-form-fields-header-container hr{width:100%}#uf-form-fields-title{color:#000;font-size:1.75em;font-weight:bold}#uf-form-fields-steps{color:var(--color-on-secondary-container);font-size:1rem}.title{border-left:.25rem solid var(--tui-primary);padding:.75rem;font-size:1.4em;font-weight:bold;background-color:var(--tui-secondary);display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-gap:.5rem;gap:.5rem}.title:not(:first-child){margin-top:.5rem}.title.hidden{display:none}.large-wrapper{width:100%;height:60px}.large-wrapper:first-child{margin-bottom:auto}.large-wrapper:last-child{margin-top:auto}.kwikid-form-container-loading{width:100%;height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center;grid-row-gap:1rem;row-gap:1rem;padding:1rem}#field-error-notification{background-color:var(--tui-error-fill);color:#fff!important}#field-error-notification .t-top{color:#fff!important}#field-error-notification .t-close{color:#fff!important}.preview-container{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;align-content:center;grid-gap:1rem;gap:1rem;height:calc(100vh - 3rem)}.preview-container .preview-html{flex-grow:1}.preview-container .preview-iframe-content{height:100%;flex-grow:1}.preview-container .preview-iframe-content .preview-iframe{width:100%;height:100%}.preview-container .preview-unavailable{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:center;grid-gap:1rem;grid-gap:1.4rem;gap:1.4rem;color:#fff;font-size:1.2rem;top:50%;left:50%;width:100%;height:100vh}\n"], components: [{ type: i1.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }, { type: i1.KwikUIInputComponent, selector: "kwikui-input", inputs: ["label", "id", "type", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "validators", "case", "size", "icon", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIMessagesComponent, selector: "kwikui-messages", inputs: ["messages", "id"] }, { type: i1.KwikUITextareaComponent, selector: "kwikui-textarea", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "size", "placeholder", "properties", "validators"], outputs: ["getKeyValue"] }, { type: i1.KwikUICheckboxComponent, selector: "kwikui-checkbox", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "contentAlign", "focus", "invalid", "disabled", "size", "validators", "properties", "variant"], outputs: ["getKeyValue"] }, { type: i1.KwikUIInputNumberComponent, selector: "kwikui-input-number", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "min", "max", "prefix", "postfix", "precision", "decimal", "size", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIInputDateComponent, selector: "kwikui-input-date", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "min", "minCalculatedFromToday", "max", "maxCalculatedFromToday", "size", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIInputPhoneComponent, selector: "kwikui-input-phone", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "countryCode", "phoneMaskAfterCountryCode", "removeCountryCodeFromValue", "size", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i3$1.TuiLabelComponent, selector: "label[tuiLabel]", inputs: ["tuiLabel", "context"] }, { type: i1.KwikUIInputRadioComponent, selector: "kwikui-input-radio", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "size", "orientation", "items", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIInputSelectComponent, selector: "kwikui-input-select", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "options", "size", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIInputSliderComponent, selector: "kwikui-input-slider", inputs: ["label", "id", "type", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "validators", "size", "min", "max", "steps", "quantum", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIButtonApiCallComponent, selector: "kwikui-button-api-call", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "shape", "size", "apiStatus"], outputs: ["onClick"] }, { type: i1.KwikUIInputOtpComponent, selector: "kwikui-input-otp", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "placeholder", "mask", "size", "prefix", "postfix", "mode", "otpLength", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIInputAadhaarComponent, selector: "kwikui-input-aadhaar", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "placeholder", "mask", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIImageComponent, selector: "kwikui-image", inputs: ["id", "imageSrc", "altText", "imageType", "styles", "class", "loadingType", "html"], outputs: ["onClick"] }, { type: i1.KwikUIInputFilesComponent, selector: "kwikui-input-files", inputs: ["id", "formControlName", "formControl", "styles", "class", "multiple", "accept", "size", "label", "link", "icon", "maxFileSize", "disabled", "showAddedFiles", "setFileTypesToForm", "validators", "files"], outputs: ["getKeyValue", "getRemovedFile"] }, { type: i1.KwikUILoaderComponent, selector: "kwikui-loader", inputs: ["id", "loaderText", "showLoader", "fullscreen", "styles", "class"] }, { type: i4$1.TuiPushComponent, selector: "tui-push", inputs: ["heading", "type", "timestamp"], outputs: ["close"] }, { type: i3$1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i5.TuiPreviewComponent, selector: "tui-preview", inputs: ["zoomable", "rotatable"] }, { type: i5.TuiPreviewTitleComponent, selector: "tui-preview-title" }, { type: i3$1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i4$1.TuiPushAlertDirective, selector: "[tuiPush]", inputs: ["tuiPush"] }, { type: i4$1.TuiPushDirective, selector: "tui-push" }, { type: i5.TuiPreviewActionDirective, selector: "[tuiPreviewAction]" }], pipes: { "safeHtml": SafeHtmlPipe$1, "safeUrl": SafeUrlPipe } });
6314
7236
  __decorate([
6315
7237
  logMethod
6316
7238
  ], KwikIDFormViewComponent.prototype, "ngOnInit", null);
@@ -6347,6 +7269,18 @@ __decorate([
6347
7269
  __decorate([
6348
7270
  logMethod
6349
7271
  ], KwikIDFormViewComponent.prototype, "handleConnectedElements", null);
7272
+ __decorate([
7273
+ logMethod
7274
+ ], KwikIDFormViewComponent.prototype, "handleRemovedFile", null);
7275
+ __decorate([
7276
+ logMethod
7277
+ ], KwikIDFormViewComponent.prototype, "handleGetKeyValueFile", null);
7278
+ __decorate([
7279
+ logMethod
7280
+ ], KwikIDFormViewComponent.prototype, "updateFiles", null);
7281
+ __decorate([
7282
+ logMethod
7283
+ ], KwikIDFormViewComponent.prototype, "uploadFile", null);
6350
7284
  __decorate([
6351
7285
  logMethod
6352
7286
  ], KwikIDFormViewComponent.prototype, "handleGetKeyValue", null);
@@ -6358,10 +7292,13 @@ __decorate([
6358
7292
  ], KwikIDFormViewComponent.prototype, "handleFieldApiCall", null);
6359
7293
  __decorate([
6360
7294
  logMethod
6361
- ], KwikIDFormViewComponent.prototype, "handleTaskApiCall", null);
7295
+ ], KwikIDFormViewComponent.prototype, "handleApiCall", null);
7296
+ __decorate([
7297
+ logMethod
7298
+ ], KwikIDFormViewComponent.prototype, "executeApiCall", null);
6362
7299
  __decorate([
6363
7300
  logMethod
6364
- ], KwikIDFormViewComponent.prototype, "handleApiCall", null);
7301
+ ], KwikIDFormViewComponent.prototype, "validateHeadersAndBody", null);
6365
7302
  __decorate([
6366
7303
  logMethod
6367
7304
  ], KwikIDFormViewComponent.prototype, "handleOnClickApiCall", null);
@@ -6425,6 +7362,12 @@ __decorate([
6425
7362
  __decorate([
6426
7363
  logMethod
6427
7364
  ], KwikIDFormViewComponent.prototype, "setDropdownOptions", null);
7365
+ __decorate([
7366
+ logMethod
7367
+ ], KwikIDFormViewComponent.prototype, "apiCall", null);
7368
+ __decorate([
7369
+ logMethod
7370
+ ], KwikIDFormViewComponent.prototype, "fieldApiCall", null);
6428
7371
  __decorate([
6429
7372
  logMethod
6430
7373
  ], KwikIDFormViewComponent.prototype, "fieldMultipleApiCalls", null);
@@ -6449,6 +7392,9 @@ __decorate([
6449
7392
  __decorate([
6450
7393
  logMethod
6451
7394
  ], KwikIDFormViewComponent.prototype, "patchFieldControlValue", null);
7395
+ __decorate([
7396
+ logMethod
7397
+ ], KwikIDFormViewComponent.prototype, "setFieldControlValue", null);
6452
7398
  __decorate([
6453
7399
  logMethod
6454
7400
  ], KwikIDFormViewComponent.prototype, "patchFormGroup", null);
@@ -6512,6 +7458,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
6512
7458
  type: Input
6513
7459
  }], userConfig: [{
6514
7460
  type: Input
7461
+ }], apiCallResponse: [{
7462
+ type: Input
6515
7463
  }], popupFormCallback: [{
6516
7464
  type: Input
6517
7465
  }], onClickGoBack: [{
@@ -6524,7 +7472,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
6524
7472
  type: Output
6525
7473
  }], onActionShowPopupForm: [{
6526
7474
  type: Output
6527
- }], ngOnInit: [], ngAfterViewInit: [], ngOnChanges: [], initFormConfig: [], setFormFieldsFromFormConfig: [], setFormFieldGroupsFromFormConfig: [], setFormDataFromAllFormsData: [], handleConnectedElementFieldGroupActions: [], handleConnectedElementFieldGroup: [], handleConnectedElementFieldActions: [], handleConnectedElementFields: [], handleConnectedElements: [], handleGetKeyValue: [], handleOnClickResetFormFields: [], handleFieldApiCall: [], handleTaskApiCall: [], handleApiCall: [], handleOnClickApiCall: [], handleOnClickGoBack: [], handleOnClickViewForms: [], handleOnClickSaveForm: [], toggleErrorNotification: [], fieldHide: [], fieldGroupHide: [], fieldShow: [], fieldGroupShow: [], fieldDisable: [], fieldGroupDisable: [], fieldEnable: [], fieldGroupEnable: [], fieldReset: [], fieldErrorShow: [], fieldErrorHide: [], fieldMessageShow: [], fieldMessageHide: [], setValue: [], setFieldDefaultValue: [], setDropdownOptions: [], fieldMultipleApiCalls: [], fieldMultipleApiCallsEnd: [], taskApiCall: [], taskMultipleApiCalls: [], taskMultipleApiCallsEnd: [], dialogShow: [], dialogHide: [], patchFieldControlValue: [], patchFormGroup: [], isFieldValid: [], isFieldEnabled: [], getFormGroupRawValues: [], showPreview: [], showErrorPreview: [], showPopupForm: [], takeActionOnFieldGroup: [], takeAction: [] } });
7475
+ }], ngOnInit: [], ngAfterViewInit: [], ngOnChanges: [], initFormConfig: [], setFormFieldsFromFormConfig: [], setFormFieldGroupsFromFormConfig: [], setFormDataFromAllFormsData: [], handleConnectedElementFieldGroupActions: [], handleConnectedElementFieldGroup: [], handleConnectedElementFieldActions: [], handleConnectedElementFields: [], handleConnectedElements: [], handleRemovedFile: [], handleGetKeyValueFile: [], updateFiles: [], uploadFile: [], handleGetKeyValue: [], handleOnClickResetFormFields: [], handleFieldApiCall: [], handleApiCall: [], executeApiCall: [], validateHeadersAndBody: [], handleOnClickApiCall: [], handleOnClickGoBack: [], handleOnClickViewForms: [], handleOnClickSaveForm: [], toggleErrorNotification: [], fieldHide: [], fieldGroupHide: [], fieldShow: [], fieldGroupShow: [], fieldDisable: [], fieldGroupDisable: [], fieldEnable: [], fieldGroupEnable: [], fieldReset: [], fieldErrorShow: [], fieldErrorHide: [], fieldMessageShow: [], fieldMessageHide: [], setValue: [], setFieldDefaultValue: [], setDropdownOptions: [], apiCall: [], fieldApiCall: [], fieldMultipleApiCalls: [], fieldMultipleApiCallsEnd: [], taskApiCall: [], taskMultipleApiCalls: [], taskMultipleApiCallsEnd: [], dialogShow: [], dialogHide: [], patchFieldControlValue: [], setFieldControlValue: [], patchFormGroup: [], isFieldValid: [], isFieldEnabled: [], getFormGroupRawValues: [], showPreview: [], showErrorPreview: [], showPopupForm: [], takeActionOnFieldGroup: [], takeAction: [] } });
7476
+
7477
+ var EFormType;
7478
+ (function (EFormType) {
7479
+ EFormType["FORM"] = "FORM";
7480
+ EFormType["HTML"] = "HTML";
7481
+ })(EFormType || (EFormType = {}));
6528
7482
 
6529
7483
  /**
6530
7484
  * Generated class for the SafeHtmlPipe pipe.
@@ -6642,7 +7596,7 @@ class KwikIDFormsListComponent {
6642
7596
  findFormsListLength(formsList) {
6643
7597
  const _formsList = formsList.filter((form) => {
6644
7598
  if (checkObjectKeyExists(form, "type")) {
6645
- if (form.type === "form") {
7599
+ if (form.type !== EFormType.HTML) {
6646
7600
  if (checkObjectKeyExists(form, "hidden")) {
6647
7601
  if (!form.hidden) {
6648
7602
  return form;
@@ -6662,7 +7616,7 @@ class KwikIDFormsListComponent {
6662
7616
  let isAllFormsCompleted = true;
6663
7617
  for (let form of formsList) {
6664
7618
  if (checkObjectKeyExists(form, "type")) {
6665
- if (form.type === "form") {
7619
+ if (form.type !== EFormType.HTML) {
6666
7620
  if (form.status !== "completed") {
6667
7621
  isAllFormsCompleted = false;
6668
7622
  break;
@@ -6673,6 +7627,7 @@ class KwikIDFormsListComponent {
6673
7627
  return isAllFormsCompleted;
6674
7628
  }
6675
7629
  handleOnClickSetActiveForm(selectedForm) {
7630
+ console.log(this.isMobileView, this.selectedForm, selectedForm, this.isAllFormsCompleted, this.showFormFields);
6676
7631
  if (this.isMobileView ||
6677
7632
  (!this.isMobileView && this.selectedForm !== selectedForm) ||
6678
7633
  (this.isAllFormsCompleted && !this.showFormFields)) {
@@ -6691,7 +7646,7 @@ class KwikIDFormsListComponent {
6691
7646
  }
6692
7647
  }
6693
7648
  /** @nocollapse */ KwikIDFormsListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6694
- /** @nocollapse */ KwikIDFormsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDFormsListComponent, selector: "kwikid-forms-list", inputs: { showFormFields: "showFormFields", userConfig: "userConfig", stepConfig: "stepConfig", activeFormConfig: "activeFormConfig", formsList: "formsList", formsListCompleted: "formsListCompleted", isMobileView: "isMobileView" }, outputs: { onClickSetActiveForm: "onClickSetActiveForm", onClickHideFormsList: "onClickHideFormsList", onClickSubmitForms: "onClickSubmitForms" }, usesOnChanges: true, ngImport: i0, template: "<div\n id=\"sidebar-container\"\n *ngIf=\"!loading\"\n>\n <div id=\"sidebar\">\n <div ngClass=\"kwikid-form-header\">\n <div id=\"uf-header\">\n <div id=\"uf-header-logo-container\">\n <img\n id=\"uf-header-logo\"\n src=\"{{ this.userConfig.theme.clientLogo }}\"\n [ngClass]=\"'large-icon'\"\n />\n </div>\n </div>\n <hr />\n </div>\n <div id=\"uf-progress\">\n <div id=\"uf-progress-steps\">\n {{ this.formsListCompleted.length }} / {{ this.formsListLength }} Steps\n Completed\n </div>\n <kwikui-progress-segmented\n [max]=\"this.formsListLength\"\n size=\"m\"\n [value]=\"this.formsListCompleted.length\"\n ></kwikui-progress-segmented>\n </div>\n <div id=\"uf-sections-container\">\n <ng-container *ngFor=\"let form of formsList; let i = index\">\n <ng-container [ngSwitch]=\"form.type\">\n <!-- HTML Content -->\n <ng-container *ngSwitchCase=\"'html'\">\n <div [innerHtml]=\"form.props.htmlContent | safeHtml\"></div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'form'\">\n <div\n [class]=\"'uf-section-item'\"\n [class.completed]=\"form.status === 'completed' && !form.disabled\"\n [class.edit]=\"form.status === 'editable' && !form.disabled\"\n [class.locked]=\"form.status === 'locked' && form.disabled\"\n [class.active]=\"\n activeFormConfig !== undefined &&\n form.key === activeFormConfig.key\n \"\n (click)=\"\n form.status === 'locked' && form.disabled\n ? undefined\n : handleOnClickSetActiveForm(form.key)\n \"\n >\n <div class=\"uf-form-section-card-title\">\n {{ form.props.title }}&nbsp;<span *ngIf=\"form?.required\"\n >*</span\n >\n </div>\n <div class=\"uf-form-section-card-status\">\n <div\n *ngIf=\"form.status === 'completed' && !form.disabled\"\n class=\"uf-form-section-card-status-img completed\"\n >\n <tui-svg src=\"tuiIconCheckLarge\"></tui-svg>\n </div>\n <div\n *ngIf=\"form.status !== 'completed' && !form.disabled\"\n class=\"uf-form-section-card-status-img edit\"\n >\n <tui-svg src=\"tuiIconEdit\"></tui-svg>\n </div>\n <div\n *ngIf=\"form.status !== 'completed' && form.disabled\"\n class=\"uf-form-section-card-status-img locked\"\n >\n <tui-svg src=\"tuiIconLock\"></tui-svg>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div id=\"submit-sidebar-btn-container\">\n <kwikui-button\n *ngIf=\"\n !stepConfig.props.formListProperties.footer.submitFormButton.hidden\n \"\n [disabled]=\"false\"\n id=\"\"\n label=\"{{\n stepConfig.props.formListProperties.footer.submitFormButton.label\n }}\"\n [showLoader]=\"false\"\n styles=\"\"\n class=\"\"\n type=\"button\"\n appearance=\"primary\"\n icon=\"\"\n iconRight=\"\"\n [shape]=\"null\"\n size=\"m\"\n styles=\"width: 100%\"\n (onClick)=\"handleOnSubmitForms($event)\"\n ></kwikui-button>\n </div>\n </div>\n</div>\n", styles: ["::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}#sidebar-container{width:100%;height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center}#sidebar{width:100%;height:100%;display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch}.uf-section-item{width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;align-content:center;padding:1rem;grid-gap:1rem;gap:1rem;cursor:pointer;box-shadow:0 1px 3px -1px var(--tui-base-05);border-radius:.5rem;background-color:var(--tui-base-02);position:relative}.uf-section-item:hover{box-shadow:0 1px 3px -1px var(--tui-base-08)}#submit-sidebar-btn-container{width:100%;bottom:0px;z-index:1;padding:1rem;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-gap:1rem;gap:1rem}#submit-sidebar-btn-container *{flex-grow:1}#uf-sections-container{display:flex;flex-direction:column;height:100%;grid-row-gap:20px;row-gap:20px;padding:1rem;overflow-y:auto}.uf-form-section-card{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-column-gap:10px;column-gap:10px;border:none;border-radius:8px;background-color:#e9e9e9;height:-moz-fit-content;height:fit-content;min-height:60px;padding:10px 15px;width:100%;max-width:350px;margin:0 auto}.uf-section-item.locked{-webkit-user-select:none;user-select:none;cursor:not-allowed}.uf-form-section-card .uf-form-section-card-title{font-size:1.2em;text-align:left;line-height:1.25em}.uf-form-section-card .uf-form-section-card-status{width:30px;height:30px;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center}.uf-form-section-card .uf-form-section-card-status .uf-form-section-card-status-img{width:30px;height:30px;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;border-radius:100%;color:#fff;font-weight:bold}.uf-form-section-card-status-img.completed{background-color:var(--tui-success-fill);padding:.25rem;border-radius:50%;color:#fff}.uf-form-section-card-status-img.edit{background-color:var(--tui-error-fill);padding:.25rem;border-radius:50%;color:#fff}.uf-form-section-card-status-img.locked{background-color:var(--tui-neutral-fill);padding:.25rem;border-radius:50%;color:#fff}#uf-progress{display:flex;padding:1rem;flex-direction:column;align-content:center;justify-content:center;align-items:stretch;grid-gap:.5rem;gap:.5rem}#uf-progress-steps{font-size:1em;text-align:right;color:#3d3d3d}.uf-form-section-card-title{font-size:1em;font-weight:bold;color:#000}@media screen and (max-width: 600px){#sidebar-container{max-width:unset}}.kwikid-form-header{height:70px;z-index:6}.kwikid-form-header hr{width:calc(100% - 1rem);margin-left:auto;margin-right:auto}#uf-header{display:flex;flex-direction:row;align-content:center;align-items:center;justify-content:flex-start;grid-column-gap:10px;column-gap:10px;padding:10px 20px;width:100%;max-width:calc(400px + 50vw + 2rem);margin:0 auto;height:70px;z-index:1}#uf-header #uf-header-goback-container{display:none}#uf-header #uf-header-goback-container:hover{border-radius:50%;background-color:#d3d3d3}#uf-header #uf-header-goback-container #uf-header-goback{width:100%;height:auto}#uf-header #uf-header-logo-container{display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center}#uf-header #uf-header-logo-container #uf-header-logo.small-icon{width:100%;height:50px}#uf-header #uf-header-logo-container #uf-header-logo.large-icon{width:100%;height:50px}#uf-header #uf-header-title-container{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;grid-row-gap:4px;row-gap:4px}#uf-header #uf-header-title-container #uf-header-title{font-size:1.4em;color:#121212}#uf-header #uf-header-title-container #uf-header-subtitle{font-size:1.2em;color:#121212}\n"], components: [{ type: i1.KwikUIProgressSegmentedComponent, selector: "kwikui-progress-segmented", inputs: ["id", "value", "max", "size", "colors"] }, { type: i3$1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i1.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "safeHtml": SafeHtmlPipe } });
7649
+ /** @nocollapse */ KwikIDFormsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDFormsListComponent, selector: "kwikid-forms-list", inputs: { showFormFields: "showFormFields", userConfig: "userConfig", stepConfig: "stepConfig", activeFormConfig: "activeFormConfig", formsList: "formsList", formsListCompleted: "formsListCompleted", isMobileView: "isMobileView" }, outputs: { onClickSetActiveForm: "onClickSetActiveForm", onClickHideFormsList: "onClickHideFormsList", onClickSubmitForms: "onClickSubmitForms" }, usesOnChanges: true, ngImport: i0, template: "<div\n id=\"sidebar-container\"\n *ngIf=\"!loading\"\n>\n <div id=\"sidebar\">\n <div ngClass=\"kwikid-form-header\">\n <div id=\"uf-header\">\n <div id=\"uf-header-logo-container\">\n <img\n id=\"uf-header-logo\"\n src=\"{{ this.userConfig.theme.clientLogo }}\"\n [ngClass]=\"'large-icon'\"\n />\n </div>\n </div>\n <hr />\n </div>\n <div id=\"uf-progress\">\n <div id=\"uf-progress-steps\">\n {{ this.formsListCompleted.length }} / {{ this.formsListLength }} Steps\n Completed\n </div>\n <kwikui-progress-segmented\n [max]=\"this.formsListLength\"\n size=\"m\"\n [value]=\"this.formsListCompleted.length\"\n ></kwikui-progress-segmented>\n </div>\n <div id=\"uf-sections-container\">\n <ng-container *ngFor=\"let form of formsList; let i = index\">\n <ng-container [ngSwitch]=\"form.type\">\n <!-- HTML Content -->\n <ng-container *ngSwitchCase=\"'HTML'\">\n <div [innerHtml]=\"form.props.htmlContent | safeHtml\"></div>\n </ng-container>\n <!-- Type FORM -->\n <ng-container *ngSwitchCase=\"'FORM'\">\n <ng-container\n [ngTemplateOutlet]=\"FORM_BUTTON\"\n [ngTemplateOutletContext]=\"{\n form: form,\n activeFormConfig: activeFormConfig\n }\"\n >\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div id=\"submit-sidebar-btn-container\">\n <kwikui-button\n *ngIf=\"\n !stepConfig.props.formListProperties.footer.submitFormButton.hidden\n \"\n [disabled]=\"false\"\n id=\"\"\n label=\"{{\n stepConfig.props.formListProperties.footer.submitFormButton.label\n }}\"\n [showLoader]=\"false\"\n styles=\"\"\n class=\"\"\n type=\"button\"\n appearance=\"primary\"\n [shape]=\"null\"\n size=\"m\"\n styles=\"width: 100%\"\n (onClick)=\"handleOnSubmitForms($event)\"\n ></kwikui-button>\n </div>\n </div>\n</div>\n\n<ng-template\n #FORM_BUTTON\n let-form=\"form\"\n let-activeFormConfig=\"activeFormConfig\"\n>\n <div\n [class]=\"'uf-section-item'\"\n [class.completed]=\"form.status === 'completed' && !form.disabled\"\n [class.edit]=\"form.status === 'editable' && !form.disabled\"\n [class.locked]=\"form.status === 'locked' && form.disabled\"\n [class.active]=\"\n activeFormConfig !== undefined && form.key === activeFormConfig.key\n \"\n (click)=\"\n form.status === 'locked' && form.disabled\n ? undefined\n : handleOnClickSetActiveForm(form.key)\n \"\n >\n <div class=\"uf-form-section-card-title\">\n {{ form.props.title }}&nbsp;<span *ngIf=\"form?.required\">*</span>\n </div>\n <div class=\"uf-form-section-card-status\">\n <div\n *ngIf=\"form.status === 'completed' && !form.disabled\"\n class=\"uf-form-section-card-status-img completed\"\n >\n <tui-svg src=\"tuiIconCheckLarge\"></tui-svg>\n </div>\n <div\n *ngIf=\"form.status !== 'completed' && !form.disabled\"\n class=\"uf-form-section-card-status-img edit\"\n >\n <tui-svg src=\"tuiIconEdit\"></tui-svg>\n </div>\n <div\n *ngIf=\"form.status !== 'completed' && form.disabled\"\n class=\"uf-form-section-card-status-img locked\"\n >\n <tui-svg src=\"tuiIconLock\"></tui-svg>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: ["::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}#sidebar-container{width:100%;height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center}#sidebar{width:100%;height:100%;display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch}.uf-section-item{width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;align-content:center;padding:1rem;grid-gap:1rem;gap:1rem;cursor:pointer;box-shadow:0 1px 3px -1px var(--tui-base-05);border-radius:.5rem;background-color:var(--tui-base-02);position:relative}.uf-section-item:hover{box-shadow:0 1px 3px -1px var(--tui-base-08)}#submit-sidebar-btn-container{width:100%;bottom:0px;z-index:1;padding:1rem;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-gap:1rem;gap:1rem}#submit-sidebar-btn-container *{flex-grow:1}#uf-sections-container{display:flex;flex-direction:column;height:100%;grid-row-gap:20px;row-gap:20px;padding:1rem;overflow-y:auto}.uf-form-section-card{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-column-gap:10px;column-gap:10px;border:none;border-radius:8px;background-color:#e9e9e9;height:-moz-fit-content;height:fit-content;min-height:60px;padding:10px 15px;width:100%;max-width:350px;margin:0 auto}.uf-section-item.locked{-webkit-user-select:none;user-select:none;cursor:not-allowed}.uf-form-section-card .uf-form-section-card-title{font-size:1.2em;text-align:left;line-height:1.25em}.uf-form-section-card .uf-form-section-card-status{width:30px;height:30px;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center}.uf-form-section-card .uf-form-section-card-status .uf-form-section-card-status-img{width:30px;height:30px;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;border-radius:100%;color:#fff;font-weight:bold}.uf-form-section-card-status-img.completed{background-color:var(--tui-success-fill);padding:.25rem;border-radius:50%;color:#fff}.uf-form-section-card-status-img.edit{background-color:var(--tui-error-fill);padding:.25rem;border-radius:50%;color:#fff}.uf-form-section-card-status-img.locked{background-color:var(--tui-neutral-fill);padding:.25rem;border-radius:50%;color:#fff}#uf-progress{display:flex;padding:1rem;flex-direction:column;align-content:center;justify-content:center;align-items:stretch;grid-gap:.5rem;gap:.5rem}#uf-progress-steps{font-size:1em;text-align:right;color:#3d3d3d}.uf-form-section-card-title{font-size:1em;font-weight:bold;color:#000}@media screen and (max-width: 600px){#sidebar-container{max-width:unset}}.kwikid-form-header{height:70px;z-index:6}.kwikid-form-header hr{width:calc(100% - 1rem);margin-left:auto;margin-right:auto}#uf-header{display:flex;flex-direction:row;align-content:center;align-items:center;justify-content:flex-start;grid-column-gap:10px;column-gap:10px;padding:10px 20px;width:100%;max-width:calc(400px + 50vw + 2rem);margin:0 auto;height:70px;z-index:1}#uf-header #uf-header-goback-container{display:none}#uf-header #uf-header-goback-container:hover{border-radius:50%;background-color:#d3d3d3}#uf-header #uf-header-goback-container #uf-header-goback{width:100%;height:auto}#uf-header #uf-header-logo-container{display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center}#uf-header #uf-header-logo-container #uf-header-logo.small-icon{width:100%;height:50px}#uf-header #uf-header-logo-container #uf-header-logo.large-icon{width:100%;height:50px}#uf-header #uf-header-title-container{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;grid-row-gap:4px;row-gap:4px}#uf-header #uf-header-title-container #uf-header-title{font-size:1.4em;color:#121212}#uf-header #uf-header-title-container #uf-header-subtitle{font-size:1.2em;color:#121212}\n"], components: [{ type: i1.KwikUIProgressSegmentedComponent, selector: "kwikui-progress-segmented", inputs: ["id", "value", "max", "size", "colors"] }, { type: i1.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }, { type: i3$1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "safeHtml": SafeHtmlPipe } });
6695
7650
  __decorate([
6696
7651
  logMethod
6697
7652
  ], KwikIDFormsListComponent.prototype, "ngOnChanges", null);
@@ -6897,7 +7852,7 @@ class KwikIDFormsRendererComponent {
6897
7852
  this.handleResize(this.formsList);
6898
7853
  if (isNotEmptyValue(this.activeFormConfig)) {
6899
7854
  if (checkObjectKeyExists(this.activeFormConfig, "type")) {
6900
- if (this.activeFormConfig.type === "form") {
7855
+ if (this.activeFormConfig.type !== EFormType.HTML) {
6901
7856
  yield this.handleOnClickSetActiveForm(this.activeFormConfig.key);
6902
7857
  }
6903
7858
  }
@@ -6915,10 +7870,7 @@ class KwikIDFormsRendererComponent {
6915
7870
  });
6916
7871
  }
6917
7872
  convertFormListConfig(formsList) {
6918
- return formsList.map((form) => {
6919
- if (!checkObjectKeyExists(form, "type")) {
6920
- form.type = "form";
6921
- }
7873
+ const convertFormListConfigTypeForm = (form) => {
6922
7874
  if (checkObjectKeyExists(form, "formContent")) {
6923
7875
  if (checkObjectKeyExists(form.formContent, "url")) {
6924
7876
  form = setValueToObjectPath(form, "props.url", form.formContent.url);
@@ -6949,6 +7901,48 @@ class KwikIDFormsRendererComponent {
6949
7901
  form.dependentOn = [];
6950
7902
  }
6951
7903
  return form;
7904
+ };
7905
+ const convertFormListConfigTypeHtml = (form) => {
7906
+ if (form.type === "html") {
7907
+ form.type = EFormType.HTML;
7908
+ }
7909
+ if (checkObjectKeyExists(form, "htmlContent")) {
7910
+ if (!checkObjectKeyExists(form, "props")) {
7911
+ form.props = {
7912
+ htmlContent: form.htmlContent
7913
+ };
7914
+ }
7915
+ delete form["htmlContent"];
7916
+ }
7917
+ else {
7918
+ if (!checkObjectKeyExists(form, "props")) {
7919
+ form.props = {
7920
+ htmlContent: ""
7921
+ };
7922
+ }
7923
+ }
7924
+ if (checkObjectKeyExists(form, "title")) {
7925
+ form = setValueToObjectPath(form, "props.title", form.title);
7926
+ delete form["title"];
7927
+ }
7928
+ if (!checkObjectKeyExists(form, "hidden")) {
7929
+ form.hidden = false;
7930
+ }
7931
+ return form;
7932
+ };
7933
+ return formsList.map((form) => {
7934
+ if (!checkObjectKeyExists(form, "type")) {
7935
+ form.type = "FORM";
7936
+ }
7937
+ if (checkObjectKeyExists(form, "type")) {
7938
+ if (form.type === EFormType.FORM) {
7939
+ form = convertFormListConfigTypeForm(form);
7940
+ }
7941
+ if (form.type === EFormType.HTML || form.type === "html") {
7942
+ form = convertFormListConfigTypeHtml(form);
7943
+ }
7944
+ }
7945
+ return form;
6952
7946
  });
6953
7947
  }
6954
7948
  /**
@@ -6962,7 +7956,7 @@ class KwikIDFormsRendererComponent {
6962
7956
  let sequenceNo = 1;
6963
7957
  for (let form of formsList) {
6964
7958
  if (checkObjectKeyExists(form, "hidden")) {
6965
- if (!form.hidden && form.type === "form") {
7959
+ if (!form.hidden && form.type !== EFormType.HTML) {
6966
7960
  form.sequenceNo = sequenceNo++;
6967
7961
  }
6968
7962
  else {
@@ -6988,7 +7982,7 @@ class KwikIDFormsRendererComponent {
6988
7982
  markFormInFormsListAsCompleted(formsList, formsListCompleted) {
6989
7983
  for (let form of formsList) {
6990
7984
  if (checkObjectKeyExists(form, "hidden")) {
6991
- if (!form.hidden && form.type === "form") {
7985
+ if (!form.hidden && form.type !== EFormType.HTML) {
6992
7986
  if (formsListCompleted.includes(form.key)) {
6993
7987
  form = setValueToObjectPath(form, "status", "completed");
6994
7988
  form = setValueToObjectPath(form, "disabled", false);
@@ -7007,7 +8001,7 @@ class KwikIDFormsRendererComponent {
7007
8001
  markFormInFormsListAsDisabled(formsList, formsListCompleted) {
7008
8002
  for (let form of formsList) {
7009
8003
  if (checkObjectKeyExists(form, "hidden")) {
7010
- if (!form.hidden && form.type === "form") {
8004
+ if (!form.hidden && form.type !== EFormType.HTML) {
7011
8005
  if (form.status !== "completed") {
7012
8006
  if (checkObjectKeyExists(form, "dependentOn")) {
7013
8007
  const isDependent = form.dependentOn.every((r) => formsListCompleted.includes(r));
@@ -7036,7 +8030,7 @@ class KwikIDFormsRendererComponent {
7036
8030
  for (let form of formsList) {
7037
8031
  if (checkObjectKeyExists(form, "hidden") &&
7038
8032
  !form.hidden &&
7039
- form.type === "form") {
8033
+ form.type !== EFormType.HTML) {
7040
8034
  if (checkObjectKeyExists(allFormsData, form.key)) {
7041
8035
  currentUserFormAllFormsData = Object.assign(Object.assign({}, currentUserFormAllFormsData), { [form.key]: allFormsData[form.key] });
7042
8036
  }
@@ -7048,7 +8042,7 @@ class KwikIDFormsRendererComponent {
7048
8042
  let allFormsCompleted = true;
7049
8043
  for (const form of formsList) {
7050
8044
  if (checkObjectKeyExists(form, "hidden")) {
7051
- if (!form.hidden && form.type === "form") {
8045
+ if (!form.hidden && form.type !== EFormType.HTML) {
7052
8046
  if (form.status !== "completed") {
7053
8047
  allFormsCompleted = false;
7054
8048
  break;
@@ -7061,7 +8055,7 @@ class KwikIDFormsRendererComponent {
7061
8055
  findActiveFormConfig(formsList) {
7062
8056
  const activeFormConfig = formsList.find((form) => {
7063
8057
  if (checkObjectKeyExists(form, "hidden")) {
7064
- if (!form.hidden && form.type === "form") {
8058
+ if (!form.hidden && form.type !== EFormType.HTML) {
7065
8059
  return form.status === "editable" && !form.disabled;
7066
8060
  }
7067
8061
  }
@@ -7171,7 +8165,7 @@ class KwikIDFormsRendererComponent {
7171
8165
  findFormsListLength(formsList) {
7172
8166
  const _formsList = formsList.filter((form) => {
7173
8167
  if (checkObjectKeyExists(form, "type")) {
7174
- if (form.type === "form") {
8168
+ if (form.type !== EFormType.HTML) {
7175
8169
  if (checkObjectKeyExists(form, "hidden")) {
7176
8170
  if (!form.hidden) {
7177
8171
  return form;
@@ -7204,6 +8198,7 @@ class KwikIDFormsRendererComponent {
7204
8198
  return form;
7205
8199
  }
7206
8200
  });
8201
+ console.log("activeFormConfig", activeFormConfig);
7207
8202
  let formConfig = undefined;
7208
8203
  if (checkObjectKeyExists(activeFormConfig, "props")) {
7209
8204
  if (checkObjectKeyExists(activeFormConfig.props, "url")) {
@@ -7218,11 +8213,17 @@ class KwikIDFormsRendererComponent {
7218
8213
  formConfig = Object.assign(Object.assign({}, activeFormConfig), formConfigFromPath);
7219
8214
  }
7220
8215
  else {
7221
- if (checkObjectKeyExists(activeFormConfig, "fields")) {
7222
- formConfig = activeFormConfig;
8216
+ if (checkObjectKeyExists(activeFormConfig, "type") &&
8217
+ activeFormConfig.type === EFormType.FORM) {
8218
+ if (checkObjectKeyExists(activeFormConfig, "fields")) {
8219
+ formConfig = activeFormConfig;
8220
+ }
8221
+ else {
8222
+ console.error("No Direct URL, No Path with Base URL, No fields key found in Active Form's Config!");
8223
+ }
7223
8224
  }
7224
8225
  else {
7225
- console.error("No Direct URL, No Path with Base URL, No fields key found in Active Form's Config!");
8226
+ console.error(`No Direct URL, No Path with Base URL, No fields key found in Active Form's Config!`);
7226
8227
  }
7227
8228
  }
7228
8229
  }
@@ -7247,6 +8248,7 @@ class KwikIDFormsRendererComponent {
7247
8248
  }
7248
8249
  }
7249
8250
  }
8251
+ console.log("formConfig", formConfig);
7250
8252
  formConfig = new Converter().updateFormConfigMiscellaneous(formConfig, {
7251
8253
  formsListLength: this.findFormsListLength(this.formsList)
7252
8254
  });
@@ -7269,7 +8271,6 @@ class KwikIDFormsRendererComponent {
7269
8271
  * @param e any
7270
8272
  */
7271
8273
  handleOnClickApiCall(e) {
7272
- this.loader = true;
7273
8274
  this.onClickApiCall.emit(e);
7274
8275
  }
7275
8276
  handleOnActionShowPopupForm(e, content) {
@@ -7452,7 +8453,7 @@ class KwikIDFormsRendererComponent {
7452
8453
  const formsList = JSON.parse(JSON.stringify(this.formsList));
7453
8454
  for (let form of formsList) {
7454
8455
  if (!form.hidden &&
7455
- form.type == "form" &&
8456
+ form.type !== EFormType.HTML &&
7456
8457
  form.required &&
7457
8458
  form.status !== EFormsListStatus.COMPLETED) {
7458
8459
  this.toggleErrorNotification(true);
@@ -7491,7 +8492,7 @@ class KwikIDFormsRendererComponent {
7491
8492
  }
7492
8493
  }
7493
8494
  /** @nocollapse */ KwikIDFormsRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormsRendererComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: TuiPreviewDialogService }, { token: TuiDialogService }], target: i0.ɵɵFactoryTarget.Component });
7494
- /** @nocollapse */ KwikIDFormsRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDFormsRendererComponent, selector: "kwikid-forms-renderer", inputs: { stepConfig: "stepConfig", userConfig: "userConfig", formsData: "formsData", activeFormData: "activeFormData", apiCallResponse: "apiCallResponse" }, outputs: { onClickSubmit: "onClickSubmit", getFormData: "getFormData", onClickApiCall: "onClickApiCall" }, host: { listeners: { "window:resize": "windowResizeWatcher($event)" } }, viewQueries: [{ propertyName: "preview", first: true, predicate: ["preview"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div ngClass=\"kwikid-renderer\">\n <div\n ngClass=\"kwikid-layout-container\"\n *ngIf=\"!loading\"\n >\n <div\n ngClass=\"kwikid-sections-container\"\n *ngIf=\"showFormSections\"\n class=\"active\"\n [class.active]=\"showFormSections\"\n [class.mobile]=\"isMobileView\"\n >\n <kwikid-forms-list\n [showFormFields]=\"this.showFormFields\"\n [activeFormConfig]=\"this.activeFormConfig\"\n [userConfig]=\"this.userConfig\"\n [formsList]=\"this.formsList\"\n [stepConfig]=\"this.stepConfig\"\n [formsListCompleted]=\"this.formsListCompleted\"\n [isMobileView]=\"this.isMobileView\"\n (onClickSetActiveForm)=\"this.handleOnClickSetActiveForm($event)\"\n (onClickSubmitForms)=\"this.handleOnClickSubmitForms($event)\"\n ></kwikid-forms-list>\n </div>\n <div\n ngClass=\"kwikid-forms-container\"\n *ngIf=\"\n this.showForm &&\n this.showFormFields &&\n this.activeFormConfig !== undefined\n \"\n [class.active]=\"showFormFields\"\n [class.mobile]=\"isMobileView\"\n [@panelInOut]\n >\n <kwikid-form-view\n [formConfig]=\"this.activeFormConfig\"\n [allFormsData]=\"this.allFormsData\"\n [isMobileView]=\"this.isMobileView\"\n [userConfig]=\"this.userConfig\"\n [popupFormCallback]=\"this.popupFormCallback\"\n (onActionShowPopupForm)=\"\n this.handleOnActionShowPopupForm($event, content)\n \"\n (onClickGoBack)=\"this.handleOnClickGoBack($event)\"\n (onClickViewForms)=\"this.handleOnClickViewForms($event)\"\n (onClickSaveForm)=\"\n this.handleOnClickSaveForm($event, 'FORM', undefined)\n \"\n ></kwikid-form-view>\n </div>\n </div>\n</div>\n<div\n ngClass=\"kwikid-forms-renderer-loader-full_screen\"\n *ngIf=\"loader && loaderType === 'FULL_SCREEN'\"\n>\n <span class=\"loader\"></span>\n</div>\n<div\n ngClass=\"kwikid-forms-renderer-loader-center_screen\"\n *ngIf=\"loader && loaderType === 'CENTER_SCREEN'\"\n>\n <div class=\"loader-container\">\n <span class=\"loader\"></span>\n <div class=\"loader-text\">Please wait</div>\n </div>\n</div>\n<tui-push\n id=\"error-notification\"\n *tuiPush=\"showErrorNotification\"\n heading=\"Please complete the required Forms!\"\n type=\"Error\"\n (close)=\"toggleErrorNotification(false)\"\n>\n <tui-svg\n src=\"tuiIconXCircle\"\n style=\"color: #fff !important\"\n >\n </tui-svg>\n</tui-push>\n<ng-template\n #preview\n let-preview\n>\n <tui-preview\n [rotatable]=\"false\"\n [zoomable]=\"false\"\n class=\"preview-container\"\n *ngIf=\"popupFormConfig\"\n >\n <tui-preview-title *ngIf=\"previewProperties.title !== ''\">{{\n previewProperties.title\n }}</tui-preview-title>\n\n <div class=\"kwikid-form-view-popup-container\">\n <kwikid-form-view\n [formData]=\"activePopupFormData\"\n [formConfig]=\"popupFormConfig\"\n [allFormsData]=\"allFormsData\"\n [userConfig]=\"this.userConfig\"\n [isMobileView]=\"this.isMobileView\"\n (onClickSaveForm)=\"\n this.handleOnClickSaveForm($event, 'POPUP_FORM', undefined)\n \"\n ></kwikid-form-view>\n </div>\n\n <button\n tuiIconButton\n tuiPreviewAction\n icon=\"tuiIconCloseLarge\"\n title=\"Close\"\n type=\"button\"\n (click)=\"preview.complete()\"\n ></button>\n </tui-preview>\n</ng-template>\n<ng-template\n #content\n let-context\n>\n <div class=\"kwikid-form-view-popup-container\">\n <kwikid-form-view\n [formData]=\"activePopupFormData\"\n [formConfig]=\"popupFormConfig\"\n [allFormsData]=\"allFormsData\"\n [userConfig]=\"this.userConfig\"\n [isMobileView]=\"this.isMobileView\"\n (onClickSaveForm)=\"\n this.handleOnClickSaveForm($event, 'POPUP_FORM', context)\n \"\n ></kwikid-form-view>\n </div>\n</ng-template>\n", styles: [":host{position:relative;height:100%}.kwikid-root{width:100%;height:100%}.kwikid-renderer{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center;width:100%;height:100%}.kwikid-layout-container{display:flex;flex-direction:row;padding:0 1rem;height:100%;justify-content:center;align-items:stretch;background:var(--tui-secondary-active);position:relative}.kwikid-sections-container{display:block;width:100%;max-width:400px;height:calc(100% - 2rem);padding:.25rem .5rem 0;border-radius:1rem;background-color:var(--tui-base-01);margin:auto 1rem auto 0;box-shadow:0 0 12px -8px var(--tui-secondary)}.kwikid-sections-container.mobile{position:absolute;top:0;left:0;z-index:5;opacity:1;visibility:visible;transition:all 1s;height:100%;border-radius:0;max-width:unset}.kwikid-forms-container{display:block;width:100%;max-width:50%;margin:auto 0;height:calc(100% - 2rem);padding:.25rem .5rem 0;border-radius:1rem;background-color:var(--tui-base-01);box-shadow:0 0 12px -8px var(--tui-primary)}.kwikid-forms-container.mobile{position:absolute;top:0;left:0;z-index:5;opacity:1;visibility:visible;transition:all 1s;height:100%;border-radius:0;max-width:unset}@media screen and (max-width: 600px){.kwikid-layout-container{padding:0;background:transparent}.kwikid-sections-container{position:absolute;max-width:100%;bottom:-10000px;left:-10000px;opacity:0;padding:0;visibility:hidden}.kwikid-sections-container.active{visibility:visible}.kwikid-sections-container.mobile{height:100%;opacity:1;visibility:visible;transition:all 2s;border-radius:0;box-shadow:none;top:0px;margin:0;position:absolute}.kwikid-forms-container{display:none;max-width:100%;height:100%;padding:0;border-radius:0;box-shadow:none}.kwikid-forms-container.mobile{height:100%;opacity:1;visibility:visible;transition:all 2s;border-radius:0;box-shadow:none;top:0px;margin:0;position:absolute}.kwikid-forms-container.active{display:block}}.kwikid-forms-renderer-loader-full_screen{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.75);display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;z-index:100}.kwikid-forms-renderer-loader-full_screen .loader{width:48px;height:48px;border-radius:50%;display:inline-block;position:relative;border:3px solid;border-color:#fff #fff transparent;box-sizing:border-box;animation:rotation 1s linear infinite}.kwikid-forms-renderer-loader-full_screen .loader:after{content:\"\";box-sizing:border-box;position:absolute;left:0;right:0;top:0;bottom:0;margin:auto;border:3px solid;border-color:transparent var(--tui-primary) var(--tui-primary);width:24px;height:24px;border-radius:50%;animation:rotationBack .5s linear infinite;transform-origin:center center}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotationBack{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}.kwikid-forms-renderer-loader-full_screen .t-loader{display:none!important}.kwikid-forms-renderer-loader-center_screen{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(211,211,211,.5);display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-gap:1rem;gap:1rem;z-index:100}.kwikid-forms-renderer-loader-center_screen .loader-container{display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;padding:2em 1.5em;grid-gap:1rem;gap:1rem;background-color:#fff;box-shadow:#959da533 0 8px 24px;border-radius:.5rem}.kwikid-forms-renderer-loader-center_screen .loader-container .loader{width:28px;height:28px;border-radius:50%;display:inline-block;position:relative;border:3px solid;box-sizing:border-box;border-color:var(--tui-primary) transparent transparent;animation:rotation 1s ease-out infinite}@keyframes rotation{0%{transform:rotate(0);animation-timing-function:ease-in}25%{animation-timing-function:linear}50%{transform:rotate(180deg);animation-timing-function:ease-out}75%{animation-timing-function:linear}to{transform:rotate(360deg);animation-timing-function:ease-in}}.kwikid-forms-renderer-loader-center_screen .loader-container .loader-text{font-size:1rem;color:#000;margin:0}.kwikid-forms-renderer-loader-center_screen .t-loader{display:none!important}#error-notification{background-color:var(--tui-error-fill);color:#fff!important}#error-notification .t-top{color:#fff!important}#error-notification .t-close{color:#fff!important}.preview-container{display:flex!important;flex-grow:1!important;flex-direction:column!important;align-content:center!important;justify-content:space-between!important;align-items:stretch!important}.preview-container .preview-iframe{width:100vw;height:100vh}.preview-container .preview-unavailable{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:center;grid-gap:1rem;grid-gap:1.4rem;gap:1.4rem;color:#fff;font-size:1.2rem;top:50%;left:50%;width:100%;height:100vh}.kwikid-form-view-popup-container{border-radius:1rem;background:var(--tui-base-01)}\n"], components: [{ type: KwikIDFormsListComponent, selector: "kwikid-forms-list", inputs: ["showFormFields", "userConfig", "stepConfig", "activeFormConfig", "formsList", "formsListCompleted", "isMobileView"], outputs: ["onClickSetActiveForm", "onClickHideFormsList", "onClickSubmitForms"] }, { type: KwikIDFormViewComponent, selector: "kwikid-form-view", inputs: ["formConfig", "formData", "isMobileView", "allFormsData", "userConfig", "popupFormCallback"], outputs: ["onClickGoBack", "onClickViewForms", "onClickSaveForm", "onClickApiCall", "onActionShowPopupForm"] }, { type: i4$1.TuiPushComponent, selector: "tui-push", inputs: ["heading", "type", "timestamp"], outputs: ["close"] }, { type: i3$1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i5.TuiPreviewComponent, selector: "tui-preview", inputs: ["zoomable", "rotatable"] }, { type: i5.TuiPreviewTitleComponent, selector: "tui-preview-title" }, { type: i3$1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.TuiPushAlertDirective, selector: "[tuiPush]", inputs: ["tuiPush"] }, { type: i4$1.TuiPushDirective, selector: "tui-push" }, { type: i5.TuiPreviewActionDirective, selector: "[tuiPreviewAction]" }], animations: [
8495
+ /** @nocollapse */ KwikIDFormsRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDFormsRendererComponent, selector: "kwikid-forms-renderer", inputs: { stepConfig: "stepConfig", userConfig: "userConfig", formsData: "formsData", activeFormData: "activeFormData", apiCallResponse: "apiCallResponse" }, outputs: { onClickSubmit: "onClickSubmit", getFormData: "getFormData", onClickApiCall: "onClickApiCall" }, host: { listeners: { "window:resize": "windowResizeWatcher($event)" } }, viewQueries: [{ propertyName: "preview", first: true, predicate: ["preview"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div ngClass=\"kwikid-renderer\">\n <div\n ngClass=\"kwikid-layout-container\"\n *ngIf=\"!loading\"\n >\n <div\n ngClass=\"kwikid-sections-container\"\n *ngIf=\"showFormSections\"\n class=\"active\"\n [class.active]=\"showFormSections\"\n [class.mobile]=\"isMobileView\"\n >\n <kwikid-forms-list\n [showFormFields]=\"this.showFormFields\"\n [activeFormConfig]=\"this.activeFormConfig\"\n [userConfig]=\"this.userConfig\"\n [formsList]=\"this.formsList\"\n [stepConfig]=\"this.stepConfig\"\n [formsListCompleted]=\"this.formsListCompleted\"\n [isMobileView]=\"this.isMobileView\"\n (onClickSetActiveForm)=\"this.handleOnClickSetActiveForm($event)\"\n (onClickSubmitForms)=\"this.handleOnClickSubmitForms($event)\"\n ></kwikid-forms-list>\n </div>\n <div\n ngClass=\"kwikid-forms-container\"\n *ngIf=\"\n this.showForm &&\n this.showFormFields &&\n this.activeFormConfig !== undefined\n \"\n [class.active]=\"showFormFields\"\n [class.mobile]=\"isMobileView\"\n [@panelInOut]\n >\n <kwikid-form-view\n *ngIf=\"this.activeFormConfig.type === 'FORM'\"\n [formConfig]=\"this.activeFormConfig\"\n [allFormsData]=\"this.allFormsData\"\n [isMobileView]=\"this.isMobileView\"\n [userConfig]=\"this.userConfig\"\n [popupFormCallback]=\"this.popupFormCallback\"\n [apiCallResponse]=\"this.apiCallResponse\"\n (onClickApiCall)=\"handleOnClickApiCall($event)\"\n (onActionShowPopupForm)=\"\n this.handleOnActionShowPopupForm($event, content)\n \"\n (onClickGoBack)=\"this.handleOnClickGoBack($event)\"\n (onClickViewForms)=\"this.handleOnClickViewForms($event)\"\n (onClickSaveForm)=\"\n this.handleOnClickSaveForm($event, 'FORM', undefined)\n \"\n ></kwikid-form-view>\n </div>\n </div>\n</div>\n\n<kwikui-loader\n [loaderText]=\"'Please wait'\"\n [showLoader]=\"loader\"\n [fullscreen]=\"true\"\n></kwikui-loader>\n\n<tui-push\n id=\"error-notification\"\n *tuiPush=\"showErrorNotification\"\n heading=\"Please complete the required Forms!\"\n type=\"Error\"\n (close)=\"toggleErrorNotification(false)\"\n>\n <tui-svg\n src=\"tuiIconXCircle\"\n style=\"color: #fff !important\"\n >\n </tui-svg>\n</tui-push>\n<ng-template\n #preview\n let-preview\n>\n <tui-preview\n [rotatable]=\"false\"\n [zoomable]=\"false\"\n class=\"preview-container\"\n *ngIf=\"popupFormConfig\"\n >\n <tui-preview-title *ngIf=\"previewProperties.title !== ''\">{{\n previewProperties.title\n }}</tui-preview-title>\n\n <div class=\"kwikid-form-view-popup-container\">\n <kwikid-form-view\n [formData]=\"activePopupFormData\"\n [formConfig]=\"popupFormConfig\"\n [allFormsData]=\"allFormsData\"\n [userConfig]=\"this.userConfig\"\n [isMobileView]=\"this.isMobileView\"\n [apiCallResponse]=\"this.apiCallResponse\"\n (onClickApiCall)=\"handleOnClickApiCall($event)\"\n (onClickSaveForm)=\"\n this.handleOnClickSaveForm($event, 'POPUP_FORM', undefined)\n \"\n ></kwikid-form-view>\n </div>\n\n <button\n tuiIconButton\n tuiPreviewAction\n icon=\"tuiIconCloseLarge\"\n title=\"Close\"\n type=\"button\"\n (click)=\"preview.complete()\"\n ></button>\n </tui-preview>\n</ng-template>\n<ng-template\n #content\n let-context\n>\n <div class=\"kwikid-form-view-popup-container\">\n <kwikid-form-view\n [formData]=\"activePopupFormData\"\n [formConfig]=\"popupFormConfig\"\n [allFormsData]=\"allFormsData\"\n [userConfig]=\"this.userConfig\"\n [isMobileView]=\"this.isMobileView\"\n [apiCallResponse]=\"this.apiCallResponse\"\n (onClickApiCall)=\"handleOnClickApiCall($event)\"\n (onClickSaveForm)=\"\n this.handleOnClickSaveForm($event, 'POPUP_FORM', context)\n \"\n ></kwikid-form-view>\n </div>\n</ng-template>\n", styles: [":host{position:relative;height:100%}.kwikid-root{width:100%;height:100%}.kwikid-renderer{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center;width:100%;height:100%}.kwikid-layout-container{display:flex;flex-direction:row;padding:0 1rem;height:100%;justify-content:center;align-items:stretch;background:var(--tui-secondary-active);position:relative}.kwikid-sections-container{display:block;width:100%;max-width:400px;height:calc(100% - 2rem);padding:.25rem .5rem 0;border-radius:1rem;background-color:var(--tui-base-01);margin:auto 1rem auto 0;box-shadow:0 0 12px -8px var(--tui-secondary)}.kwikid-sections-container.mobile{position:absolute;top:0;left:0;z-index:5;opacity:1;visibility:visible;transition:all 1s;height:100%;border-radius:0;max-width:unset}.kwikid-forms-container{display:block;width:100%;max-width:50%;margin:auto 0;height:calc(100% - 2rem);padding:.25rem .5rem 0;border-radius:1rem;background-color:var(--tui-base-01);box-shadow:0 0 12px -8px var(--tui-primary)}.kwikid-forms-container.mobile{position:absolute;top:0;left:0;z-index:5;opacity:1;visibility:visible;transition:all 1s;height:100%;border-radius:0;max-width:unset}@media screen and (max-width: 600px){.kwikid-layout-container{padding:0;background:transparent}.kwikid-sections-container{position:absolute;max-width:100%;bottom:-10000px;left:-10000px;opacity:0;padding:0;visibility:hidden}.kwikid-sections-container.active{visibility:visible}.kwikid-sections-container.mobile{height:100%;opacity:1;visibility:visible;transition:all 2s;border-radius:0;box-shadow:none;top:0px;margin:0;position:absolute}.kwikid-forms-container{display:none;max-width:100%;height:100%;padding:0;border-radius:0;box-shadow:none}.kwikid-forms-container.mobile{height:100%;opacity:1;visibility:visible;transition:all 2s;border-radius:0;box-shadow:none;top:0px;margin:0;position:absolute}.kwikid-forms-container.active{display:block}}#error-notification{background-color:var(--tui-error-fill);color:#fff!important}#error-notification .t-top{color:#fff!important}#error-notification .t-close{color:#fff!important}.preview-container{display:flex!important;flex-grow:1!important;flex-direction:column!important;align-content:center!important;justify-content:space-between!important;align-items:stretch!important}.preview-container .preview-iframe{width:100vw;height:100vh}.preview-container .preview-unavailable{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:center;grid-gap:1rem;grid-gap:1.4rem;gap:1.4rem;color:#fff;font-size:1.2rem;top:50%;left:50%;width:100%;height:100vh}.kwikid-form-view-popup-container{border-radius:1rem;background:var(--tui-base-01)}\n"], components: [{ type: KwikIDFormsListComponent, selector: "kwikid-forms-list", inputs: ["showFormFields", "userConfig", "stepConfig", "activeFormConfig", "formsList", "formsListCompleted", "isMobileView"], outputs: ["onClickSetActiveForm", "onClickHideFormsList", "onClickSubmitForms"] }, { type: KwikIDFormViewComponent, selector: "kwikid-form-view", inputs: ["formConfig", "formData", "isMobileView", "allFormsData", "userConfig", "apiCallResponse", "popupFormCallback"], outputs: ["onClickGoBack", "onClickViewForms", "onClickSaveForm", "onClickApiCall", "onActionShowPopupForm"] }, { type: i1.KwikUILoaderComponent, selector: "kwikui-loader", inputs: ["id", "loaderText", "showLoader", "fullscreen", "styles", "class"] }, { type: i4$1.TuiPushComponent, selector: "tui-push", inputs: ["heading", "type", "timestamp"], outputs: ["close"] }, { type: i3$1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i5.TuiPreviewComponent, selector: "tui-preview", inputs: ["zoomable", "rotatable"] }, { type: i5.TuiPreviewTitleComponent, selector: "tui-preview-title" }, { type: i3$1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.TuiPushAlertDirective, selector: "[tuiPush]", inputs: ["tuiPush"] }, { type: i4$1.TuiPushDirective, selector: "tui-push" }, { type: i5.TuiPreviewActionDirective, selector: "[tuiPreviewAction]" }], animations: [
7495
8496
  trigger("panelInOut", [
7496
8497
  transition(":enter", [
7497
8498
  style({ transform: "translateY(100%)" }),
@@ -7682,7 +8683,7 @@ class KwikIDFormBuilderModule {
7682
8683
  BasicElementConfigEditor,
7683
8684
  BasicTextConfigEditor,
7684
8685
  BasicRadioConfigEditor,
7685
- BasicDropdownWithSearchConfigEditor,
8686
+ BasicSelectConfigEditor,
7686
8687
  BasicNumberConfigEditor,
7687
8688
  BasicCheckboxConfigEditor,
7688
8689
  BasicDateConfigEditor,
@@ -7697,11 +8698,10 @@ class KwikIDFormBuilderModule {
7697
8698
  FormsModule,
7698
8699
  ReactiveFormsModule,
7699
8700
  DragDropModule,
7700
- KwikUIButtonIconModule,
7701
8701
  KwikUIButtonModule,
7702
8702
  KwikUIInputModule,
7703
8703
  KwikUIInputNumberModule,
7704
- KwikUISelectComboboxModule,
8704
+ KwikUIInputSelectModule,
7705
8705
  KwikUITableModule,
7706
8706
  KwikUITextareaModule], exports: [KwikIDFormsBuilderComponent] });
7707
8707
  /** @nocollapse */ KwikIDFormBuilderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormBuilderModule, providers: [], imports: [[
@@ -7709,11 +8709,10 @@ class KwikIDFormBuilderModule {
7709
8709
  FormsModule,
7710
8710
  ReactiveFormsModule,
7711
8711
  DragDropModule,
7712
- KwikUIButtonIconModule,
7713
8712
  KwikUIButtonModule,
7714
8713
  KwikUIInputModule,
7715
8714
  KwikUIInputNumberModule,
7716
- KwikUISelectComboboxModule,
8715
+ KwikUIInputSelectModule,
7717
8716
  KwikUITableModule,
7718
8717
  KwikUITextareaModule
7719
8718
  ]] });
@@ -7726,7 +8725,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
7726
8725
  BasicElementConfigEditor,
7727
8726
  BasicTextConfigEditor,
7728
8727
  BasicRadioConfigEditor,
7729
- BasicDropdownWithSearchConfigEditor,
8728
+ BasicSelectConfigEditor,
7730
8729
  BasicNumberConfigEditor,
7731
8730
  BasicCheckboxConfigEditor,
7732
8731
  BasicDateConfigEditor,
@@ -7744,11 +8743,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
7744
8743
  FormsModule,
7745
8744
  ReactiveFormsModule,
7746
8745
  DragDropModule,
7747
- KwikUIButtonIconModule,
7748
8746
  KwikUIButtonModule,
7749
8747
  KwikUIInputModule,
7750
8748
  KwikUIInputNumberModule,
7751
- KwikUISelectComboboxModule,
8749
+ KwikUIInputSelectModule,
7752
8750
  KwikUITableModule,
7753
8751
  KwikUITextareaModule
7754
8752
  ],
@@ -7757,6 +8755,120 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
7757
8755
  }]
7758
8756
  }] });
7759
8757
 
8758
+ class ValueFormatterPipe {
8759
+ transform(value) {
8760
+ if (value && typeof value === "object") {
8761
+ return JSON.stringify(value);
8762
+ }
8763
+ else {
8764
+ return value;
8765
+ }
8766
+ }
8767
+ }
8768
+ /** @nocollapse */ ValueFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ValueFormatterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
8769
+ /** @nocollapse */ ValueFormatterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ValueFormatterPipe, name: "valueFormatter" });
8770
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ValueFormatterPipe, decorators: [{
8771
+ type: Pipe,
8772
+ args: [{ name: "valueFormatter" }]
8773
+ }] });
8774
+
8775
+ class KwikIDBuilderFormEditorModule {
8776
+ }
8777
+ /** @nocollapse */ KwikIDBuilderFormEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDBuilderFormEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8778
+ /** @nocollapse */ KwikIDBuilderFormEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDBuilderFormEditorModule, declarations: [KwikIDBuilderFormEditorComponent, ValueFormatterPipe], imports: [CommonModule,
8779
+ FormsModule,
8780
+ ReactiveFormsModule,
8781
+ KwikUIModule,
8782
+ TuiSvgModule], exports: [KwikIDBuilderFormEditorComponent] });
8783
+ /** @nocollapse */ KwikIDBuilderFormEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDBuilderFormEditorModule, imports: [[
8784
+ CommonModule,
8785
+ FormsModule,
8786
+ ReactiveFormsModule,
8787
+ KwikUIModule,
8788
+ TuiSvgModule
8789
+ ]] });
8790
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDBuilderFormEditorModule, decorators: [{
8791
+ type: NgModule,
8792
+ args: [{
8793
+ declarations: [KwikIDBuilderFormEditorComponent, ValueFormatterPipe],
8794
+ imports: [
8795
+ CommonModule,
8796
+ FormsModule,
8797
+ ReactiveFormsModule,
8798
+ KwikUIModule,
8799
+ TuiSvgModule
8800
+ ],
8801
+ exports: [KwikIDBuilderFormEditorComponent]
8802
+ }]
8803
+ }] });
8804
+
8805
+ class KwikIDBuilderFormsListModule {
8806
+ }
8807
+ /** @nocollapse */ KwikIDBuilderFormsListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDBuilderFormsListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8808
+ /** @nocollapse */ KwikIDBuilderFormsListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDBuilderFormsListModule, declarations: [KwikIDBuilderFormsListComponent], imports: [CommonModule,
8809
+ FormsModule,
8810
+ ReactiveFormsModule,
8811
+ KwikUIModule,
8812
+ TuiSvgModule], exports: [KwikIDBuilderFormsListComponent] });
8813
+ /** @nocollapse */ KwikIDBuilderFormsListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDBuilderFormsListModule, imports: [[
8814
+ CommonModule,
8815
+ FormsModule,
8816
+ ReactiveFormsModule,
8817
+ KwikUIModule,
8818
+ TuiSvgModule
8819
+ ]] });
8820
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDBuilderFormsListModule, decorators: [{
8821
+ type: NgModule,
8822
+ args: [{
8823
+ declarations: [KwikIDBuilderFormsListComponent],
8824
+ imports: [
8825
+ CommonModule,
8826
+ FormsModule,
8827
+ ReactiveFormsModule,
8828
+ KwikUIModule,
8829
+ TuiSvgModule
8830
+ ],
8831
+ exports: [KwikIDBuilderFormsListComponent]
8832
+ }]
8833
+ }] });
8834
+
8835
+ class KwikIDFormBuilder2Module {
8836
+ }
8837
+ /** @nocollapse */ KwikIDFormBuilder2Module.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormBuilder2Module, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8838
+ /** @nocollapse */ KwikIDFormBuilder2Module.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormBuilder2Module, declarations: [KwikIDFormsBuilder2Component], imports: [CommonModule,
8839
+ FormsModule,
8840
+ ReactiveFormsModule,
8841
+ DragDropModule,
8842
+ KwikIDBuilderFormsListModule,
8843
+ KwikIDBuilderFormEditorModule,
8844
+ KwikUIModule], exports: [KwikIDFormsBuilder2Component] });
8845
+ /** @nocollapse */ KwikIDFormBuilder2Module.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormBuilder2Module, providers: [], imports: [[
8846
+ CommonModule,
8847
+ FormsModule,
8848
+ ReactiveFormsModule,
8849
+ DragDropModule,
8850
+ KwikIDBuilderFormsListModule,
8851
+ KwikIDBuilderFormEditorModule,
8852
+ KwikUIModule
8853
+ ]] });
8854
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormBuilder2Module, decorators: [{
8855
+ type: NgModule,
8856
+ args: [{
8857
+ declarations: [KwikIDFormsBuilder2Component],
8858
+ imports: [
8859
+ CommonModule,
8860
+ FormsModule,
8861
+ ReactiveFormsModule,
8862
+ DragDropModule,
8863
+ KwikIDBuilderFormsListModule,
8864
+ KwikIDBuilderFormEditorModule,
8865
+ KwikUIModule
8866
+ ],
8867
+ providers: [],
8868
+ exports: [KwikIDFormsBuilder2Component]
8869
+ }]
8870
+ }] });
8871
+
7760
8872
  class KwikIDFormViewModule {
7761
8873
  }
7762
8874
  /** @nocollapse */ KwikIDFormViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -7894,14 +9006,20 @@ class KwikIDFormsModule {
7894
9006
  FormsModule,
7895
9007
  ReactiveFormsModule,
7896
9008
  KwikIDFormBuilderModule,
7897
- KwikIDFormRendererModule], exports: [KwikIDFormBuilderModule, KwikIDFormRendererModule] });
9009
+ KwikIDFormBuilder2Module,
9010
+ KwikIDFormRendererModule], exports: [KwikIDFormBuilderModule,
9011
+ KwikIDFormRendererModule,
9012
+ KwikIDFormBuilder2Module] });
7898
9013
  /** @nocollapse */ KwikIDFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormsModule, imports: [[
7899
9014
  CommonModule,
7900
9015
  FormsModule,
7901
9016
  ReactiveFormsModule,
7902
9017
  KwikIDFormBuilderModule,
9018
+ KwikIDFormBuilder2Module,
7903
9019
  KwikIDFormRendererModule
7904
- ], KwikIDFormBuilderModule, KwikIDFormRendererModule] });
9020
+ ], KwikIDFormBuilderModule,
9021
+ KwikIDFormRendererModule,
9022
+ KwikIDFormBuilder2Module] });
7905
9023
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormsModule, decorators: [{
7906
9024
  type: NgModule,
7907
9025
  args: [{
@@ -7911,9 +9029,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
7911
9029
  FormsModule,
7912
9030
  ReactiveFormsModule,
7913
9031
  KwikIDFormBuilderModule,
9032
+ KwikIDFormBuilder2Module,
7914
9033
  KwikIDFormRendererModule
7915
9034
  ],
7916
- exports: [KwikIDFormBuilderModule, KwikIDFormRendererModule]
9035
+ exports: [
9036
+ KwikIDFormBuilderModule,
9037
+ KwikIDFormRendererModule,
9038
+ KwikIDFormBuilder2Module
9039
+ ]
7917
9040
  }]
7918
9041
  }] });
7919
9042
 
@@ -7925,5 +9048,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
7925
9048
  * Generated bundle index. Do not edit.
7926
9049
  */
7927
9050
 
7928
- export { KwikIDFormBuilderModule, KwikIDFormRendererModule, KwikIDFormViewComponent, KwikIDFormViewModule, KwikIDFormsBuilderComponent, KwikIDFormsListComponent, KwikIDFormsListModule, KwikIDFormsModule, KwikIDFormsRendererComponent };
9051
+ export { KwikIDFormBuilder2Module, KwikIDFormBuilderModule, KwikIDFormRendererModule, KwikIDFormViewComponent, KwikIDFormViewModule, KwikIDFormsBuilder2Component, KwikIDFormsBuilderComponent, KwikIDFormsListComponent, KwikIDFormsListModule, KwikIDFormsModule, KwikIDFormsRendererComponent };
7929
9052
  //# sourceMappingURL=kwikid-forms.js.map