kwikid-forms 0.1.9 → 0.1.11

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.
@@ -1,11 +1,11 @@
1
1
  import { copyArrayItem, moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
2
2
  import * as i0 from '@angular/core';
3
- import { VERSION, Component, Pipe, EventEmitter, Inject, Input, Output, Injectable, HostListener, NgModule } from '@angular/core';
3
+ import { VERSION, Component, Pipe, EventEmitter, Inject, Input, Output, HostListener, NgModule } from '@angular/core';
4
4
  import * as i6 from '@angular/forms';
5
5
  import { FormGroup, FormControl, Validators, FormArray, FormsModule, ReactiveFormsModule } from '@angular/forms';
6
6
  import * as i2 from 'kwikui';
7
7
  import { KwikUIButtonComponent, KwikUIProgressSegmentedComponent, KwikUIInputComponent, KwikUIModule } from 'kwikui';
8
- import { cloneDeep } from 'lodash';
8
+ import { cloneDeep as cloneDeep$1 } from 'lodash';
9
9
  import { __awaiter, __decorate } from 'tslib';
10
10
  import * as i3 from '@taiga-ui/core';
11
11
  import { TuiAlertService, TuiLabelModule, TuiSvgModule, TuiLoaderModule } from '@taiga-ui/core';
@@ -18,6 +18,7 @@ import * as i5 from '@angular/common';
18
18
  import { CommonModule } from '@angular/common';
19
19
  import * as i1 from '@angular/platform-browser';
20
20
  import { trigger, transition, style, animate } from '@angular/animations';
21
+ import * as cloneDeep from 'lodash/cloneDeep';
21
22
  import { HttpClientModule } from '@angular/common/http';
22
23
 
23
24
  class KwikIDFormsBuilderComponent {
@@ -101,7 +102,7 @@ class KwikIDFormsBuilderComponent {
101
102
  if (event.previousContainer !== event.container) {
102
103
  console.log("copying");
103
104
  // Clone the item that was dropped.
104
- let clone = cloneDeep(event.previousContainer.data[event.previousIndex]);
105
+ let clone = cloneDeep$1(event.previousContainer.data[event.previousIndex]);
105
106
  clone.id = clone.key + "__" + this.revisedRandId();
106
107
  event.previousContainer.data[event.previousIndex] = clone;
107
108
  let newFormGroup = new FormGroup({});
@@ -330,7 +331,9 @@ const convertFormFieldValueToStandardFormat = (field, value) => {
330
331
  if (isNotEmptyValue(value)) {
331
332
  switch (field.type) {
332
333
  case EFieldType.DATE:
333
- convertedValue = convertFormFieldTypeDateToStandardFormat(value);
334
+ if (typeof value !== "string") {
335
+ convertedValue = convertFormFieldTypeDateToStandardFormat(value);
336
+ }
334
337
  break;
335
338
  case EFieldType.RADIO:
336
339
  convertedValue = value.label;
@@ -476,6 +479,9 @@ class Defaults {
476
479
  __decorate([
477
480
  logMethod
478
481
  ], Defaults.prototype, "getFormFieldValue", null);
482
+ __decorate([
483
+ logMethod
484
+ ], Defaults.prototype, "getFormFieldOptions", null);
479
485
 
480
486
  class FormValidation {
481
487
  constructor() { }
@@ -585,6 +591,13 @@ class KwikIDFormViewService {
585
591
  if (field.isFormElement) {
586
592
  const defaults = new Defaults(field, fields, allFormsData, formData, previousFormData, takeAction);
587
593
  let value = yield defaults.getFormFieldValue();
594
+ if (checkObjectKeyExists(field, "default")) {
595
+ if (checkObjectKeyExists(field.default, "options")) {
596
+ if (field.default.options.triggers.includes("ON_INIT")) {
597
+ yield defaults.getFormFieldOptions();
598
+ }
599
+ }
600
+ }
588
601
  value = convertFormFieldValueToKwikUIFormat(field, value);
589
602
  const validators = new FormValidation().getFormFieldValidators(field);
590
603
  formGroup.addControl(field.key, new FormControl({ value: value, disabled: field.disabled }, { validators: validators }));
@@ -724,7 +737,6 @@ class KwikIDFormViewComponent {
724
737
  this.onClickViewForms = new EventEmitter();
725
738
  this.onClickSaveForm = new EventEmitter();
726
739
  this.onClickApiCall = new EventEmitter();
727
- this.getActiveFormData = new EventEmitter();
728
740
  this.fieldGroups = {};
729
741
  this.formFields = [];
730
742
  this.previousFormData = {};
@@ -742,6 +754,13 @@ class KwikIDFormViewComponent {
742
754
  }
743
755
  ngOnInit() {
744
756
  (() => __awaiter(this, void 0, void 0, function* () {
757
+ this.formsList = this.formsList.filter((form) => {
758
+ if (checkObjectKeyExists(form, "hidden")) {
759
+ if (!form.hidden) {
760
+ return form;
761
+ }
762
+ }
763
+ });
745
764
  yield this.initFormConfig(this.formConfig);
746
765
  this.loading = false;
747
766
  }))();
@@ -779,7 +798,13 @@ class KwikIDFormViewComponent {
779
798
  this.allFormsData = changes.allFormsData.currentValue;
780
799
  }
781
800
  if (verifyChange("formsList")) {
782
- this.formsList = changes.formsList.currentValue;
801
+ this.formsList = changes.formsList.currentValue.filter((form) => {
802
+ if (checkObjectKeyExists(form, "hidden")) {
803
+ if (!form.hidden) {
804
+ return form;
805
+ }
806
+ }
807
+ });
783
808
  }
784
809
  if (verifyChange("formConfig")) {
785
810
  this.formConfig = changes.formConfig.currentValue;
@@ -796,7 +821,7 @@ class KwikIDFormViewComponent {
796
821
  this.formGroup = yield this.formViewService.createFormGroup(this.formFields, this.formData, this.previousFormData, this.allFormsData, this.takeAction.bind(this));
797
822
  for (let field of this.formFields) {
798
823
  if (field.isFormElement) {
799
- this.previousFormData = Object.assign(Object.assign({}, this.previousFormData), { [field.key]: convertFormFieldValueToStandardFormat(field, this.formGroup.controls[field.key].value) });
824
+ this.previousFormData = Object.assign(Object.assign({}, this.previousFormData), { [field.key]: this.formGroup.controls[field.key].value });
800
825
  this.formGroup.controls[field.key].valueChanges
801
826
  .pipe(pairwise())
802
827
  .subscribe(([previousValue, currentValue]) => {
@@ -825,14 +850,6 @@ class KwikIDFormViewComponent {
825
850
  value: this.formGroup.controls[field.key].value
826
851
  }, "ON_INIT");
827
852
  }
828
- if (checkObjectKeyExists(field, "default")) {
829
- if (checkObjectKeyExists(field.default, "options")) {
830
- if (field.default.options.triggers.includes("ON_INIT")) {
831
- const defaults = new Defaults(field, this.formFields, this.allFormsData, this.formData, this.previousFormData, this.takeAction);
832
- yield defaults.getFormFieldOptions();
833
- }
834
- }
835
- }
836
853
  }
837
854
  }
838
855
  });
@@ -926,7 +943,9 @@ class KwikIDFormViewComponent {
926
943
  }
927
944
  }
928
945
  if (checkObjectKeyExists(connectedFieldConfig, "handleNestedFields")) {
929
- this.handleConnectedElements({ key: connectedFieldConfig.key }, eventType);
946
+ if (connectedFieldConfig.handleNestedFields) {
947
+ this.handleConnectedElements({ key: connectedFieldConfig.key }, eventType);
948
+ }
930
949
  }
931
950
  return currentField;
932
951
  });
@@ -1361,7 +1380,7 @@ class KwikIDFormViewComponent {
1361
1380
  }
1362
1381
  }
1363
1382
  /** @nocollapse */ KwikIDFormViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormViewComponent, deps: [{ token: TuiPushService }, { token: TuiAlertService }, { token: KwikIDFormViewService }], target: i0.ɵɵFactoryTarget.Component });
1364
- /** @nocollapse */ KwikIDFormViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDFormViewComponent, selector: "kwikid-form-view", inputs: { formConfig: "formConfig", formData: "formData", apiCallResponse: "apiCallResponse", isMobileView: "isMobileView", allFormsData: "allFormsData", formsList: "formsList" }, outputs: { onClickViewForms: "onClickViewForms", onClickSaveForm: "onClickSaveForm", onClickApiCall: "onClickApiCall", getActiveFormData: "getActiveFormData" }, providers: [KwikIDFormViewService], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"kwikid-form-container\"\n *ngIf=\"!this.loading\"\n>\n <div id=\"uf-form-fields-header-container\">\n <div id=\"uf-form-fields-title\">\n {{ this.formConfig.title }}\n </div>\n <div id=\"uf-form-fields-steps\">\n Step {{ this.formConfig.sequenceNo }} of {{ this.formsList.length }}\n </div>\n <hr />\n </div>\n <form\n class=\"kwikid-form show\"\n [formGroup]=\"this.formGroup\"\n >\n <ng-container *ngFor=\"let field of this.formFields; let i = index\">\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)=\"this.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 [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 <!-- Checkbox -->\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-checkbox-block\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 [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-checkbox-block\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 [max]=\"field?.properties?.max\"\n [min]=\"field?.properties?.min\"\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 [placeholder]=\"field?.properties?.placeholder\"\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\"\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 <!-- 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)=\"this.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 [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 </ng-container>\n </ng-container>\n </form>\n <div class=\"kwikid-form-buttons\">\n <kwikui-button\n *ngIf=\"this.isMobileView\"\n [disabled]=\"viewFormsButton.disabled\"\n id=\"\"\n label=\"View Forms\"\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)=\"this.handleOnClickViewForms($event)\"\n ></kwikui-button>\n <kwikui-button\n [disabled]=\"saveFormButton.disabled\"\n id=\"\"\n label=\"Save\"\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)=\"this.handleOnClickSaveForm($event)\"\n ></kwikui-button>\n </div>\n</div>\n<div\n class=\"kwikid-form-container-loading\"\n *ngIf=\"this.loading\"\n>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\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=\"tuiIconCancel\"\n style=\"color: #fff !important\"\n >\n </tui-svg>\n</tui-push>\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:.5rem;row-gap:.5rem;padding:1rem}#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:1em}.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}\n"], components: [{ type: i2.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }, { type: i2.KwikUIInputComponent, selector: "kwikui-input", inputs: ["label", "id", "type", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "validators", "case", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIMessagesComponent, selector: "kwikui-messages", inputs: ["messages", "id"] }, { type: i2.KwikUICheckboxBlockComponent, selector: "kwikui-checkbox-block", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "size", "contentAlign", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputNumberComponent, selector: "kwikui-input-number", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "min", "max", "prefix", "postfix", "precision", "decimal", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputDateComponent, selector: "kwikui-input-date", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "min", "max", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputPhoneComponent, selector: "kwikui-input-phone", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "countryCode", "phoneMaskAfterCountryCode", "removeCountryCodeFromValue", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i3.TuiLabelComponent, selector: "label[tuiLabel]", inputs: ["tuiLabel", "context"] }, { type: i2.KwikUIRadioListComponent, selector: "kwikui-radio-list", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "size", "orientation", "items", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUISelectComboboxComponent, selector: "kwikui-select-combobox", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "options", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIButtonApiCallComponent, selector: "kwikui-button-api-call", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "shape", "size", "apiStatus"], outputs: ["onClick"] }, { type: i2.KwikUIInputOtpComponent, selector: "kwikui-input-otp", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "placeholder", "mask", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputAadhaarComponent, selector: "kwikui-input-aadhaar", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "placeholder", "mask", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i4.TuiPushComponent, selector: "tui-push", inputs: ["heading", "type", "timestamp"], outputs: ["close"] }, { type: i3.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i6.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i4.TuiPushAlertDirective, selector: "[tuiPush]", inputs: ["tuiPush"] }, { type: i4.TuiPushDirective, selector: "tui-push" }], pipes: { "safeHtml": SafeHtmlPipe } });
1383
+ /** @nocollapse */ KwikIDFormViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDFormViewComponent, selector: "kwikid-form-view", inputs: { formConfig: "formConfig", formData: "formData", apiCallResponse: "apiCallResponse", isMobileView: "isMobileView", allFormsData: "allFormsData", formsList: "formsList" }, outputs: { onClickViewForms: "onClickViewForms", onClickSaveForm: "onClickSaveForm", onClickApiCall: "onClickApiCall" }, providers: [KwikIDFormViewService], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"kwikid-form-container\"\n *ngIf=\"!this.loading\"\n>\n <div id=\"uf-form-fields-header-container\">\n <div id=\"uf-form-fields-title\">\n {{ this.formConfig.title }}\n </div>\n <div id=\"uf-form-fields-steps\">\n Step {{ this.formConfig.sequenceNo }} of {{ this.formsList.length }}\n </div>\n <hr />\n </div>\n <form\n class=\"kwikid-form show\"\n [formGroup]=\"this.formGroup\"\n >\n <ng-container *ngFor=\"let field of this.formFields; let i = index\">\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)=\"this.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 [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 <!-- Checkbox -->\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-checkbox-block\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 [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-checkbox-block\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 [max]=\"field?.properties?.max\"\n [min]=\"field?.properties?.min\"\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 [placeholder]=\"field?.properties?.placeholder\"\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\"\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 <!-- 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)=\"this.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 [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 </ng-container>\n </ng-container>\n </form>\n <div class=\"kwikid-form-buttons\">\n <kwikui-button\n *ngIf=\"this.isMobileView\"\n [disabled]=\"viewFormsButton.disabled\"\n id=\"\"\n label=\"View Forms\"\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)=\"this.handleOnClickViewForms($event)\"\n ></kwikui-button>\n <kwikui-button\n [disabled]=\"saveFormButton.disabled\"\n id=\"\"\n label=\"Save\"\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)=\"this.handleOnClickSaveForm($event)\"\n ></kwikui-button>\n </div>\n</div>\n<div\n class=\"kwikid-form-container-loading\"\n *ngIf=\"this.loading\"\n>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\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=\"tuiIconCancel\"\n style=\"color: #fff !important\"\n >\n </tui-svg>\n</tui-push>\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:.5rem;row-gap:.5rem;padding:1rem}#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:1em}.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}\n"], components: [{ type: i2.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }, { type: i2.KwikUIInputComponent, selector: "kwikui-input", inputs: ["label", "id", "type", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "validators", "case", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIMessagesComponent, selector: "kwikui-messages", inputs: ["messages", "id"] }, { type: i2.KwikUICheckboxBlockComponent, selector: "kwikui-checkbox-block", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "size", "contentAlign", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputNumberComponent, selector: "kwikui-input-number", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "min", "max", "prefix", "postfix", "precision", "decimal", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputDateComponent, selector: "kwikui-input-date", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "min", "max", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputPhoneComponent, selector: "kwikui-input-phone", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "countryCode", "phoneMaskAfterCountryCode", "removeCountryCodeFromValue", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i3.TuiLabelComponent, selector: "label[tuiLabel]", inputs: ["tuiLabel", "context"] }, { type: i2.KwikUIRadioListComponent, selector: "kwikui-radio-list", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "size", "orientation", "items", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUISelectComboboxComponent, selector: "kwikui-select-combobox", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "options", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIButtonApiCallComponent, selector: "kwikui-button-api-call", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "shape", "size", "apiStatus"], outputs: ["onClick"] }, { type: i2.KwikUIInputOtpComponent, selector: "kwikui-input-otp", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "placeholder", "mask", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputAadhaarComponent, selector: "kwikui-input-aadhaar", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "placeholder", "mask", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i4.TuiPushComponent, selector: "tui-push", inputs: ["heading", "type", "timestamp"], outputs: ["close"] }, { type: i3.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i6.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i4.TuiPushAlertDirective, selector: "[tuiPush]", inputs: ["tuiPush"] }, { type: i4.TuiPushDirective, selector: "tui-push" }], pipes: { "safeHtml": SafeHtmlPipe } });
1365
1384
  __decorate([
1366
1385
  logMethod
1367
1386
  ], KwikIDFormViewComponent.prototype, "ngOnInit", null);
@@ -1511,8 +1530,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1511
1530
  type: Output
1512
1531
  }], onClickApiCall: [{
1513
1532
  type: Output
1514
- }], getActiveFormData: [{
1515
- type: Output
1516
1533
  }], ngOnInit: [], ngAfterViewInit: [], ngOnChanges: [], initFormConfig: [], setFormFieldsFromFormConfig: [], setFormFieldGroupsFromFormConfig: [], setFormDataFromAllFormsData: [], handleConnectedElementFieldGroupActions: [], handleConnectedElementFieldGroup: [], handleConnectedElementFieldActions: [], handleConnectedElementFields: [], handleConnectedElements: [], handleGetKeyValue: [], handleOnClickResetFormFields: [], handleOnClickApiCall: [], handleOnClickViewForms: [], handleOnClickSaveForm: [], toggleErrorNotification: [], fieldHide: [], fieldGroupHide: [], fieldShow: [], fieldGroupShow: [], fieldDisable: [], fieldGroupDisable: [], fieldEnable: [], fieldGroupEnable: [], fieldReset: [], fieldErrorShow: [], fieldErrorHide: [], fieldMessageShow: [], fieldMessageHide: [], setObjectValue: [], patchFieldControlValue: [], patchFormGroup: [], isFieldValid: [], isFieldEnabled: [], getFormGroupRawValues: [], takeActionOnFieldGroup: [], takeAction: [] } });
1517
1534
 
1518
1535
  class KwikIDFormsListComponent {
@@ -1529,6 +1546,13 @@ class KwikIDFormsListComponent {
1529
1546
  this.isAllFormsCompleted = true;
1530
1547
  }
1531
1548
  ngOnInit() {
1549
+ this.formsList = this.formsList.filter((form) => {
1550
+ if (checkObjectKeyExists(form, "hidden")) {
1551
+ if (!form.hidden) {
1552
+ return form;
1553
+ }
1554
+ }
1555
+ });
1532
1556
  this.isAllFormsCompleted = this.checkIsAllFormsCompleted(this.formsList);
1533
1557
  }
1534
1558
  ngOnChanges(changes) {
@@ -1539,7 +1563,13 @@ class KwikIDFormsListComponent {
1539
1563
  this.showFormFields = changes.showFormFields.currentValue;
1540
1564
  }
1541
1565
  if (verifyChange("formsList")) {
1542
- this.formsList = changes.formsList.currentValue;
1566
+ this.formsList = changes.formsList.currentValue.filter((form) => {
1567
+ if (checkObjectKeyExists(form, "hidden")) {
1568
+ if (!form.hidden) {
1569
+ return form;
1570
+ }
1571
+ }
1572
+ });
1543
1573
  this.isAllFormsCompleted = this.checkIsAllFormsCompleted(this.formsList);
1544
1574
  }
1545
1575
  if (verifyChange("isMobileView")) {
@@ -1597,6 +1627,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1597
1627
  type: Output
1598
1628
  }], ngOnChanges: [] } });
1599
1629
 
1630
+ var ERendererActionKey;
1631
+ (function (ERendererActionKey) {
1632
+ ERendererActionKey["SET_VALUE"] = "SET_VALUE";
1633
+ ERendererActionKey["FORM_HIDE"] = "FORM_HIDE";
1634
+ ERendererActionKey["FORM_SHOW"] = "FORM_SHOW";
1635
+ ERendererActionKey["FORM_DISABLE"] = "FORM_DISABLE";
1636
+ ERendererActionKey["FORM_ENABLE"] = "FORM_ENABLE";
1637
+ })(ERendererActionKey || (ERendererActionKey = {}));
1638
+
1600
1639
  class Converter {
1601
1640
  constructor() {
1602
1641
  this.getFormFields = (formConfig) => {
@@ -2234,175 +2273,19 @@ __decorate([
2234
2273
  logMethod
2235
2274
  ], Converter.prototype, "convertFormConfig", null);
2236
2275
 
2237
- class KwikIDRendererService {
2238
- constructor() {
2239
- this.isMobileView = false;
2240
- this.allFormsData = {};
2241
- }
2242
- setIsMobileView(isMobileView) {
2243
- this.isMobileView = isMobileView;
2244
- }
2245
- setFormsList(formsList) {
2246
- this.formsList = formsList;
2247
- }
2248
- setFormsListCompleted(formsListCompleted) {
2249
- this.formsListCompleted = formsListCompleted;
2250
- }
2251
- setAllFormsData(allFormsData) {
2252
- this.allFormsData = allFormsData;
2253
- }
2254
- setActiveFormConfig(activeFormConfig) {
2255
- this.activeFormConfig = activeFormConfig;
2256
- }
2257
- setActiveFormFields(activeFormFields) {
2258
- this.activeFormFields = activeFormFields;
2259
- }
2260
- setActiveFormData(activeFormData) {
2261
- this.activeFormData = activeFormData;
2262
- }
2263
- fetchFormConfig(url) {
2264
- return __awaiter(this, void 0, void 0, function* () {
2265
- const response = yield fetch(url, { method: "GET" });
2266
- const data = yield response.json();
2267
- return data;
2268
- });
2269
- }
2270
- findActiveFormConfig(formsList) {
2271
- const activeFormConfig = formsList.find((form) => {
2272
- return form.status === "editable" && !form.disabled;
2273
- });
2274
- return activeFormConfig;
2275
- }
2276
- findCompletedFormsList(allFormsData) {
2277
- let formsListCompleted = [];
2278
- Object.keys(allFormsData).map((formKey) => {
2279
- formsListCompleted.push(formKey);
2280
- });
2281
- return formsListCompleted;
2282
- }
2283
- markFormInFormsListAsCompleted(formsList, formsListCompleted) {
2284
- for (let form of formsList) {
2285
- if (formsListCompleted.includes(form.key)) {
2286
- form = setValueToObjectPath(form, "status", "completed");
2287
- form = setValueToObjectPath(form, "disabled", false);
2288
- }
2289
- }
2290
- return formsList;
2291
- }
2292
- markFormInFormsListAsDisabled(formsList, formsListCompleted) {
2293
- for (let form of formsList) {
2294
- if (form.status !== "completed") {
2295
- if (checkObjectKeyExists(form, "dependentOn")) {
2296
- const isDependent = form.dependentOn.every((r) => formsListCompleted.includes(r));
2297
- if (isDependent) {
2298
- form = setValueToObjectPath(form, "status", "editable");
2299
- form = setValueToObjectPath(form, "disabled", false);
2300
- }
2301
- else {
2302
- form = setValueToObjectPath(form, "status", "locked");
2303
- form = setValueToObjectPath(form, "disabled", true);
2304
- }
2305
- }
2306
- else {
2307
- form = setValueToObjectPath(form, "dependentOn", []);
2308
- form = setValueToObjectPath(form, "status", "editable");
2309
- form = setValueToObjectPath(form, "disabled", false);
2310
- }
2311
- }
2312
- }
2313
- return formsList;
2314
- }
2315
- assignSequenceNoToForm(formsList) {
2316
- let sequenceNo = 1;
2317
- for (let form of formsList) {
2318
- form.sequenceNo = sequenceNo++;
2276
+ const getFormConfigByKey = (forms, key) => {
2277
+ const form = forms.find((form) => {
2278
+ if (form.key === key) {
2279
+ return form;
2319
2280
  }
2320
- return formsList;
2321
- }
2322
- filterAllFormsData(allFormsData, formsList) {
2323
- let currentUserFormAllFormsData = {};
2324
- for (let form of formsList) {
2325
- if (checkObjectKeyExists(allFormsData, form.key)) {
2326
- currentUserFormAllFormsData = Object.assign(Object.assign({}, currentUserFormAllFormsData), { [form.key]: allFormsData[form.key] });
2327
- }
2328
- }
2329
- return currentUserFormAllFormsData;
2330
- }
2331
- updateFormsList() {
2332
- let formsList = this.formsList;
2333
- let formsListCompleted;
2334
- let activeFormConfig;
2335
- formsList = this.assignSequenceNoToForm(formsList);
2336
- /**
2337
- * Below code identifies the allFormsData required for the current User Form.
2338
- * Why? Because allFormsData will actually contain the whole journey's all
2339
- * possible User Form steps. So, it is important to set the form data which
2340
- * this particular User Form only has to LOCAL METHOD Variable.
2341
- */
2342
- const currentUserFormAllFormsData = this.filterAllFormsData(this.allFormsData, formsList);
2343
- formsListCompleted = this.findCompletedFormsList(currentUserFormAllFormsData);
2344
- formsList = this.markFormInFormsListAsCompleted(formsList, formsListCompleted);
2345
- formsList = this.markFormInFormsListAsDisabled(formsList, formsListCompleted);
2346
- if (formsList.length !== formsListCompleted.length) {
2347
- activeFormConfig = this.findActiveFormConfig(formsList);
2348
- this.setActiveFormConfig(activeFormConfig);
2349
- }
2350
- this.setFormsList(formsList);
2351
- this.setFormsListCompleted(formsListCompleted);
2352
- }
2353
- }
2354
- /** @nocollapse */ KwikIDRendererService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDRendererService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2355
- /** @nocollapse */ KwikIDRendererService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDRendererService, providedIn: "root" });
2356
- __decorate([
2357
- logMethod
2358
- ], KwikIDRendererService.prototype, "setFormsList", null);
2359
- __decorate([
2360
- logMethod
2361
- ], KwikIDRendererService.prototype, "setFormsListCompleted", null);
2362
- __decorate([
2363
- logMethod
2364
- ], KwikIDRendererService.prototype, "setAllFormsData", null);
2365
- __decorate([
2366
- logMethod
2367
- ], KwikIDRendererService.prototype, "setActiveFormConfig", null);
2368
- __decorate([
2369
- logMethod
2370
- ], KwikIDRendererService.prototype, "setActiveFormFields", null);
2371
- __decorate([
2372
- logMethod
2373
- ], KwikIDRendererService.prototype, "setActiveFormData", null);
2374
- __decorate([
2375
- logMethod
2376
- ], KwikIDRendererService.prototype, "findActiveFormConfig", null);
2377
- __decorate([
2378
- logMethod
2379
- ], KwikIDRendererService.prototype, "findCompletedFormsList", null);
2380
- __decorate([
2381
- logMethod
2382
- ], KwikIDRendererService.prototype, "markFormInFormsListAsCompleted", null);
2383
- __decorate([
2384
- logMethod
2385
- ], KwikIDRendererService.prototype, "markFormInFormsListAsDisabled", null);
2386
- __decorate([
2387
- logMethod
2388
- ], KwikIDRendererService.prototype, "assignSequenceNoToForm", null);
2389
- __decorate([
2390
- logMethod
2391
- ], KwikIDRendererService.prototype, "filterAllFormsData", null);
2392
- __decorate([
2393
- logMethod
2394
- ], KwikIDRendererService.prototype, "updateFormsList", null);
2395
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDRendererService, decorators: [{
2396
- type: Injectable,
2397
- args: [{
2398
- providedIn: "root"
2399
- }]
2400
- }], ctorParameters: function () { return []; }, propDecorators: { setFormsList: [], setFormsListCompleted: [], setAllFormsData: [], setActiveFormConfig: [], setActiveFormFields: [], setActiveFormData: [], findActiveFormConfig: [], findCompletedFormsList: [], markFormInFormsListAsCompleted: [], markFormInFormsListAsDisabled: [], assignSequenceNoToForm: [], filterAllFormsData: [], updateFormsList: [] } });
2281
+ });
2282
+ return form;
2283
+ };
2401
2284
 
2402
2285
  class KwikIDFormsRendererComponent {
2403
- constructor(rendererService, hostElement) {
2404
- this.rendererService = rendererService;
2286
+ constructor(hostElement, cdr) {
2405
2287
  this.hostElement = hostElement;
2288
+ this.cdr = cdr;
2406
2289
  this.formsData = {};
2407
2290
  this.apiCallResponse = {};
2408
2291
  this.onClickSubmit = new EventEmitter();
@@ -2410,11 +2293,14 @@ class KwikIDFormsRendererComponent {
2410
2293
  this.onClickApiCall = new EventEmitter();
2411
2294
  this.loading = false;
2412
2295
  this.loader = false;
2296
+ this.showErrorNotification = false;
2297
+ this.allFormsData = {};
2298
+ this.formsList = [];
2299
+ this.isMobileView = false;
2413
2300
  // display forms and list conditionally
2414
2301
  this.showForm = false;
2415
2302
  this.showFormFields = true;
2416
2303
  this.showFormSections = true;
2417
- this.showErrorNotification = false;
2418
2304
  }
2419
2305
  // The final value should be provided to service, so that it can be used in all components
2420
2306
  windowResizeWatcher() {
@@ -2427,7 +2313,7 @@ class KwikIDFormsRendererComponent {
2427
2313
  this.showFormSections = true;
2428
2314
  this.showFormFields = false;
2429
2315
  }
2430
- this.rendererService.isMobileView = true;
2316
+ this.isMobileView = true;
2431
2317
  }
2432
2318
  else {
2433
2319
  if (this.showForm) {
@@ -2438,9 +2324,12 @@ class KwikIDFormsRendererComponent {
2438
2324
  this.showFormSections = true;
2439
2325
  this.showFormFields = false;
2440
2326
  }
2441
- this.rendererService.isMobileView = false;
2327
+ this.isMobileView = false;
2442
2328
  }
2443
2329
  }
2330
+ toggleErrorNotification(show) {
2331
+ this.showErrorNotification = show;
2332
+ }
2444
2333
  ngOnInit() {
2445
2334
  var _a, _b, _c;
2446
2335
  this.loader = true;
@@ -2448,10 +2337,10 @@ class KwikIDFormsRendererComponent {
2448
2337
  const formStepKey = (_c = (_b = (_a = this.stepConfig) === null || _a === void 0 ? void 0 : _a.form) === null || _b === void 0 ? void 0 : _b.key) !== null && _c !== void 0 ? _c : undefined;
2449
2338
  if (formStepKey !== undefined &&
2450
2339
  checkObjectKeyExists(this.userConfig.userFormFields, formStepKey)) {
2451
- this.rendererService.setFormsList(this.userConfig.userFormFields[formStepKey]);
2340
+ this.formsList = this.userConfig.userFormFields[formStepKey];
2452
2341
  }
2453
2342
  else if (Array.isArray(this.userConfig.userFormFields)) {
2454
- this.rendererService.setFormsList(this.userConfig.userFormFields);
2343
+ this.formsList = this.userConfig.userFormFields;
2455
2344
  }
2456
2345
  else {
2457
2346
  throw new Error(`userFormFields doesn't have a form defined with key: ${formStepKey}`);
@@ -2476,15 +2365,26 @@ class KwikIDFormsRendererComponent {
2476
2365
  this.loader = false;
2477
2366
  }
2478
2367
  }
2368
+ fetchFormConfig(url) {
2369
+ return __awaiter(this, void 0, void 0, function* () {
2370
+ const response = yield fetch(url, { method: "GET" });
2371
+ const data = yield response.json();
2372
+ return data;
2373
+ });
2374
+ }
2479
2375
  initializeForms() {
2480
2376
  return __awaiter(this, void 0, void 0, function* () {
2481
2377
  this.loader = true;
2482
- this.rendererService.setAllFormsData(this.formsData);
2483
- this.rendererService.updateFormsList();
2484
- this.handleResize(this.rendererService.formsList);
2485
- if (this.rendererService.formsList.length !==
2486
- this.rendererService.formsListCompleted.length) {
2487
- yield this.handleOnClickSetActiveForm(this.rendererService.activeFormConfig.key);
2378
+ this.allFormsData = this.formsData;
2379
+ console.log("START");
2380
+ console.log(JSON.parse(JSON.stringify(this.formsList)));
2381
+ yield this.updateFormsList();
2382
+ console.log("END");
2383
+ console.log(JSON.parse(JSON.stringify(this.formsList)));
2384
+ this.handleResize(this.formsList);
2385
+ console.log(JSON.stringify(this.activeFormConfig), this.formsListCompleted);
2386
+ if (isNotEmptyValue(this.activeFormConfig)) {
2387
+ yield this.handleOnClickSetActiveForm(this.activeFormConfig.key);
2488
2388
  }
2489
2389
  else {
2490
2390
  this.showForm = false;
@@ -2494,43 +2394,221 @@ class KwikIDFormsRendererComponent {
2494
2394
  this.loading = false;
2495
2395
  });
2496
2396
  }
2497
- handleResize(formsList) {
2498
- if (this.hostElement.nativeElement.offsetWidth < 600) {
2499
- const isSingleForm = (formsList) => {
2500
- return formsList.length === 1;
2501
- };
2502
- if (!isSingleForm(formsList)) {
2503
- this.showFormSections = true;
2504
- this.showFormFields = false;
2505
- this.showForm = false;
2397
+ /**
2398
+ * NOTE: To be deprecated.
2399
+ * Why ? Will be directly assigned while executing 'chakra' for default form config.
2400
+ * @param formsList any[]
2401
+ * @param formsListCompleted string[]
2402
+ * @returns any[]
2403
+ */
2404
+ assignSequenceNoToForm(formsList) {
2405
+ let sequenceNo = 1;
2406
+ for (let form of formsList) {
2407
+ if (checkObjectKeyExists(form, "hidden")) {
2408
+ if (!form.hidden) {
2409
+ form.sequenceNo = sequenceNo++;
2410
+ }
2411
+ else {
2412
+ delete form["sequenceNo"];
2413
+ }
2506
2414
  }
2507
- else {
2508
- this.showFormSections = true;
2509
- this.showFormFields = false;
2510
- this.showForm = false;
2415
+ }
2416
+ return formsList;
2417
+ }
2418
+ findCompletedFormsList(allFormsData) {
2419
+ let formsListCompleted = [];
2420
+ Object.keys(allFormsData).map((formKey) => {
2421
+ formsListCompleted.push(formKey);
2422
+ });
2423
+ return formsListCompleted;
2424
+ }
2425
+ /**
2426
+ * NOTE: To be deprecated. Why ? Will be replaced by 'chakra'.
2427
+ * @param formsList any[]
2428
+ * @param formsListCompleted string[]
2429
+ * @returns any[]
2430
+ */
2431
+ markFormInFormsListAsCompleted(formsList, formsListCompleted) {
2432
+ for (let form of formsList) {
2433
+ if (checkObjectKeyExists(form, "hidden")) {
2434
+ if (!form.hidden) {
2435
+ if (formsListCompleted.includes(form.key)) {
2436
+ form = setValueToObjectPath(form, "status", "completed");
2437
+ form = setValueToObjectPath(form, "disabled", false);
2438
+ }
2439
+ }
2511
2440
  }
2512
- this.rendererService.isMobileView = true;
2513
2441
  }
2514
- else {
2515
- this.rendererService.isMobileView = false;
2442
+ return formsList;
2443
+ }
2444
+ /**
2445
+ * NOTE: To be deprecated. Why ? Will be replaced by 'chakra'.
2446
+ * @param formsList any[]
2447
+ * @param formsListCompleted string[]
2448
+ * @returns any[]
2449
+ */
2450
+ markFormInFormsListAsDisabled(formsList, formsListCompleted) {
2451
+ for (let form of formsList) {
2452
+ if (checkObjectKeyExists(form, "hidden")) {
2453
+ if (!form.hidden) {
2454
+ if (form.status !== "completed") {
2455
+ if (checkObjectKeyExists(form, "dependentOn")) {
2456
+ const isDependent = form.dependentOn.every((r) => formsListCompleted.includes(r));
2457
+ if (isDependent) {
2458
+ form = setValueToObjectPath(form, "status", "editable");
2459
+ form = setValueToObjectPath(form, "disabled", false);
2460
+ }
2461
+ else {
2462
+ form = setValueToObjectPath(form, "status", "locked");
2463
+ form = setValueToObjectPath(form, "disabled", true);
2464
+ }
2465
+ }
2466
+ else {
2467
+ form = setValueToObjectPath(form, "dependentOn", []);
2468
+ form = setValueToObjectPath(form, "status", "editable");
2469
+ form = setValueToObjectPath(form, "disabled", false);
2470
+ }
2471
+ }
2472
+ }
2473
+ }
2516
2474
  }
2475
+ return formsList;
2517
2476
  }
2518
- // forms-list listener
2477
+ filterAllFormsData(allFormsData, formsList) {
2478
+ let currentUserFormAllFormsData = {};
2479
+ for (let form of formsList) {
2480
+ if (checkObjectKeyExists(form, "hidden") && !form.hidden) {
2481
+ if (checkObjectKeyExists(allFormsData, form.key)) {
2482
+ currentUserFormAllFormsData = Object.assign(Object.assign({}, currentUserFormAllFormsData), { [form.key]: allFormsData[form.key] });
2483
+ }
2484
+ }
2485
+ }
2486
+ return currentUserFormAllFormsData;
2487
+ }
2488
+ checkIfFormsStatusCompleted(formsList, formsListCompleted) {
2489
+ let allFormsCompleted = true;
2490
+ for (const form of formsList) {
2491
+ if (checkObjectKeyExists(form, "hidden")) {
2492
+ if (!form.hidden) {
2493
+ if (form.status !== "completed") {
2494
+ allFormsCompleted = false;
2495
+ break;
2496
+ }
2497
+ }
2498
+ }
2499
+ }
2500
+ return allFormsCompleted;
2501
+ }
2502
+ findActiveFormConfig(formsList) {
2503
+ const activeFormConfig = formsList.find((form) => {
2504
+ if (checkObjectKeyExists(form, "hidden")) {
2505
+ if (!form.hidden) {
2506
+ return form.status === "editable" && !form.disabled;
2507
+ }
2508
+ }
2509
+ });
2510
+ return activeFormConfig;
2511
+ }
2512
+ updateFormsList() {
2513
+ return __awaiter(this, void 0, void 0, function* () {
2514
+ for (let form of this.formsList) {
2515
+ if (checkObjectKeyExists(form, "default") &&
2516
+ isNotEmptyValue(form.default)) {
2517
+ const triggers = form.default.triggers;
2518
+ const rules = form.default.rules;
2519
+ const actions = form.default.actions;
2520
+ const rulesMapping = new Rule(rules, {
2521
+ USER_CONFIG: this.userConfig,
2522
+ FORMS_LIST: this.formsList,
2523
+ ALL_FORMS_DATA: this.allFormsData
2524
+ }).mapping();
2525
+ for (let action of actions) {
2526
+ const conditionEvaluation = new Condition(action.condition, rulesMapping).evaluate();
2527
+ if (conditionEvaluation) {
2528
+ const actions = new Action(action, rulesMapping, {
2529
+ FORMS_LIST: this.formsList,
2530
+ ALL_FORMS_DATA: this.allFormsData
2531
+ }, this.takeAction.bind(this));
2532
+ yield actions.execute();
2533
+ }
2534
+ }
2535
+ }
2536
+ else {
2537
+ if (!checkObjectKeyExists(form, "hidden")) {
2538
+ form.hidden = false;
2539
+ }
2540
+ }
2541
+ }
2542
+ this.formsList = this.assignSequenceNoToForm(this.formsList);
2543
+ /**
2544
+ * Below code identifies the allFormsData required for the current User Form.
2545
+ * Why? Because allFormsData will actually contain the whole journey's all
2546
+ * possible User Form steps. So, it is important to set the form data which
2547
+ * this particular User Form only has to LOCAL METHOD Variable.
2548
+ */
2549
+ const currentUserFormAllFormsData = this.filterAllFormsData(this.allFormsData, this.formsList);
2550
+ this.formsListCompleted = this.findCompletedFormsList(currentUserFormAllFormsData);
2551
+ this.formsList = this.markFormInFormsListAsCompleted(this.formsList, this.formsListCompleted);
2552
+ this.formsList = this.markFormInFormsListAsDisabled(this.formsList, this.formsListCompleted);
2553
+ this.formsList = cloneDeep(this.formsList);
2554
+ if (this.checkIfFormsStatusCompleted(this.formsList, this.formsListCompleted)) {
2555
+ this.activeFormConfig = this.findActiveFormConfig(this.formsList);
2556
+ }
2557
+ });
2558
+ }
2559
+ formHide(formKey) {
2560
+ let form = getFormConfigByKey(this.formsList, formKey);
2561
+ form = setValueToObjectPath(form, "hidden", true);
2562
+ }
2563
+ formShow(formKey) {
2564
+ let form = getFormConfigByKey(this.formsList, formKey);
2565
+ form = setValueToObjectPath(form, "hidden", false);
2566
+ }
2567
+ takeAction(action, object) {
2568
+ return __awaiter(this, void 0, void 0, function* () {
2569
+ switch (action.key) {
2570
+ case ERendererActionKey.FORM_HIDE:
2571
+ this.formHide(action.props.formKey);
2572
+ break;
2573
+ case ERendererActionKey.FORM_SHOW:
2574
+ this.formShow(action.props.formKey);
2575
+ break;
2576
+ case EActionKey.SET_VALUE:
2577
+ const sources = new Source({
2578
+ USER_CONFIG: this.userConfig,
2579
+ ALL_FORMS_DATA: this.formsData
2580
+ });
2581
+ const sourceValue = yield sources.getValueFromSource(action.props.value.source);
2582
+ sources.setValueToSource(action.props.value.destination, sourceValue);
2583
+ this.userConfig = sources.object.USER_CONFIG;
2584
+ this.formsData = sources.object.ALL_FORMS_DATA;
2585
+ break;
2586
+ default:
2587
+ break;
2588
+ }
2589
+ });
2590
+ }
2591
+ /**
2592
+ * Library Event Listeners
2593
+ */
2594
+ /**
2595
+ * FormList - Listens to event of opening the FormView of when any form is clicked in FormList
2596
+ * @param selectedForm string
2597
+ */
2519
2598
  handleOnClickSetActiveForm(selectedForm) {
2520
2599
  var _a;
2521
2600
  return __awaiter(this, void 0, void 0, function* () {
2522
2601
  this.showForm = false;
2523
2602
  this.loader = true;
2524
- const activeFormConfig = this.rendererService.formsList.find((form) => {
2603
+ const activeFormConfig = this.formsList.find((form) => {
2525
2604
  if (form.key === selectedForm) {
2526
2605
  return form;
2527
2606
  }
2528
2607
  });
2529
- let formConfig = yield this.rendererService.fetchFormConfig(activeFormConfig.formContent.url);
2608
+ let formConfig = yield this.fetchFormConfig(activeFormConfig.formContent.url);
2530
2609
  formConfig = new Converter().convertFormConfig(formConfig);
2531
- const activeFormData = (_a = this.rendererService.allFormsData[formConfig.key]) !== null && _a !== void 0 ? _a : {};
2532
- this.rendererService.setActiveFormData(activeFormData);
2533
- this.rendererService.setActiveFormConfig(Object.assign(Object.assign({}, activeFormConfig), formConfig));
2610
+ const activeFormData = (_a = this.allFormsData[formConfig.key]) !== null && _a !== void 0 ? _a : {};
2611
+ this.activeFormConfig = Object.assign(Object.assign({}, activeFormConfig), formConfig);
2534
2612
  if (this.hostElement.nativeElement.offsetWidth < 600) {
2535
2613
  this.showFormSections = false;
2536
2614
  this.showFormFields = true;
@@ -2543,11 +2621,43 @@ class KwikIDFormsRendererComponent {
2543
2621
  this.loader = false;
2544
2622
  });
2545
2623
  }
2546
- // forms-list listener
2624
+ /**
2625
+ * FormView - Listens to event of executing an API call from within the FormView and emits (read as passes) the same event to the library consumer.
2626
+ * @param e any
2627
+ */
2628
+ handleOnClickApiCall(e) {
2629
+ this.loader = true;
2630
+ this.onClickApiCall.emit(e);
2631
+ }
2632
+ /**
2633
+ * FormView - Listens to event of getting the Active Form's Data when the Form is Saved and emits (read as passes) the same event to the library consumer.
2634
+ * @param e any
2635
+ */
2636
+ handleOnClickSaveForm(e) {
2637
+ this.loader = true;
2638
+ this.activeFormData = {};
2639
+ this.getFormData.emit({
2640
+ [this.activeFormConfig.key]: e["data"]
2641
+ });
2642
+ }
2643
+ /**
2644
+ * FormView - Listens to event of showing the Forms List in Mobile View.
2645
+ * @param e any
2646
+ */
2647
+ handleOnClickViewForms(e) {
2648
+ this.showFormSections = true;
2649
+ this.showForm = false;
2650
+ this.showFormFields = false;
2651
+ }
2652
+ /**
2653
+ * FormList - Listens to event of submitting all the forms and moving out of the library and also handles the validation of all the forms.
2654
+ * @param e any
2655
+ */
2547
2656
  handleOnClickSubmitForms(e) {
2548
2657
  if (this.userConfig.userFormFieldsConfig.validation) {
2658
+ console.log(JSON.parse(JSON.stringify(this.userConfig)));
2549
2659
  const validations = new Validation({
2550
- USER_CONFIG: this.userConfig,
2660
+ FORMS_LIST: this.formsList,
2551
2661
  ALL_FORMS_DATA: this.formsData
2552
2662
  }, this.takeAction.bind(this));
2553
2663
  (() => __awaiter(this, void 0, void 0, function* () {
@@ -2564,56 +2674,33 @@ class KwikIDFormsRendererComponent {
2564
2674
  }))();
2565
2675
  }
2566
2676
  }
2567
- // form-view listener
2568
- handleOnClickApiCall(e) {
2569
- this.loader = true;
2570
- this.onClickApiCall.emit(e);
2571
- }
2572
- // form-view listener
2573
- handleGetActiveFormData(e) {
2574
- this.loader = true;
2575
- this.getFormData.emit({
2576
- [this.rendererService.activeFormConfig.key]: e["data"]
2577
- });
2578
- }
2579
- // form-view listener
2580
- handleOnClickSaveForm(e) {
2581
- this.loader = true;
2582
- this.rendererService.setActiveFormData({});
2583
- this.getFormData.emit({
2584
- [this.rendererService.activeFormConfig.key]: e["data"]
2585
- });
2586
- }
2587
- // form-view listener
2588
- handleOnClickViewForms(e) {
2589
- this.showFormSections = true;
2590
- this.showForm = false;
2591
- this.showFormFields = false;
2592
- }
2593
- toggleErrorNotification(show) {
2594
- this.showErrorNotification = show;
2595
- }
2596
- takeAction(action, userConfig, formsData) {
2597
- return __awaiter(this, void 0, void 0, function* () {
2598
- switch (action.key) {
2599
- case EActionKey.SET_VALUE:
2600
- const sources = new Source({
2601
- USER_CONFIG: this.userConfig,
2602
- ALL_FORMS_DATA: this.formsData
2603
- });
2604
- const sourceValue = yield sources.getValueFromSource(action.props.value.source);
2605
- sources.setValueToSource(action.props.value.destination, sourceValue);
2606
- this.userConfig = sources.object.USER_CONFIG;
2607
- this.formsData = sources.object.ALL_FORMS_DATA;
2608
- break;
2609
- default:
2610
- break;
2677
+ /**
2678
+ * Miscellaneous Methods
2679
+ */
2680
+ handleResize(formsList) {
2681
+ if (this.hostElement.nativeElement.offsetWidth < 600) {
2682
+ const isSingleForm = (formsList) => {
2683
+ return formsList.length === 1;
2684
+ };
2685
+ if (!isSingleForm(formsList)) {
2686
+ this.showFormSections = true;
2687
+ this.showFormFields = false;
2688
+ this.showForm = false;
2611
2689
  }
2612
- });
2690
+ else {
2691
+ this.showFormSections = true;
2692
+ this.showFormFields = false;
2693
+ this.showForm = false;
2694
+ }
2695
+ this.isMobileView = true;
2696
+ }
2697
+ else {
2698
+ this.isMobileView = false;
2699
+ }
2613
2700
  }
2614
2701
  }
2615
- /** @nocollapse */ KwikIDFormsRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormsRendererComponent, deps: [{ token: KwikIDRendererService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
2616
- /** @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", apiCallResponse: "apiCallResponse" }, outputs: { onClickSubmit: "onClickSubmit", getFormData: "getFormData", onClickApiCall: "onClickApiCall" }, host: { listeners: { "window:resize": "windowResizeWatcher($event)" } }, providers: [KwikIDRendererService], 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]=\"rendererService.isMobileView\"\n >\n <kwikid-forms-list\n [showFormFields]=\"this.showFormFields\"\n [userConfig]=\"this.userConfig\"\n [formsList]=\"this.rendererService.formsList\"\n [formsListCompleted]=\"this.rendererService.formsListCompleted\"\n [isMobileView]=\"this.rendererService.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=\"this.showForm && this.showFormFields\"\n [class.active]=\"showFormFields\"\n [class.mobile]=\"rendererService.isMobileView\"\n [@panelInOut]\n >\n <kwikid-form-view\n [formConfig]=\"this.rendererService.activeFormConfig\"\n [formData]=\"this.rendererService.activeFormData\"\n [apiCallResponse]=\"this.apiCallResponse\"\n [formsList]=\"this.rendererService.formsList\"\n [allFormsData]=\"this.rendererService.allFormsData\"\n [isMobileView]=\"this.rendererService.isMobileView\"\n (onClickApiCall)=\"this.handleOnClickApiCall($event)\"\n (onClickViewForms)=\"this.handleOnClickViewForms($event)\"\n (onClickSaveForm)=\"this.handleOnClickSaveForm($event)\"\n (getActiveFormData)=\"this.handleGetActiveFormData($event)\"\n ></kwikid-form-view>\n </div>\n </div>\n</div>\n<div\n ngClass=\"kwikid-forms-renderer-loader\"\n *ngIf=\"loader\"\n>\n <span class=\"loader\"></span>\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=\"tuiIconCancel\"\n style=\"color: #fff !important\"\n >\n </tui-svg>\n</tui-push>\n", styles: [":host{position:relative}.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);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-primary)}.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{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 .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 .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 .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}\n"], components: [{ type: KwikIDFormsListComponent, selector: "kwikid-forms-list", inputs: ["showFormFields", "userConfig", "formsList", "formsListCompleted", "isMobileView"], outputs: ["onClickSetActiveForm", "onClickHideFormsList", "onClickSubmitForms"] }, { type: KwikIDFormViewComponent, selector: "kwikid-form-view", inputs: ["formConfig", "formData", "apiCallResponse", "isMobileView", "allFormsData", "formsList"], outputs: ["onClickViewForms", "onClickSaveForm", "onClickApiCall", "getActiveFormData"] }, { type: i4.TuiPushComponent, selector: "tui-push", inputs: ["heading", "type", "timestamp"], outputs: ["close"] }, { type: i3.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.TuiPushAlertDirective, selector: "[tuiPush]", inputs: ["tuiPush"] }, { type: i4.TuiPushDirective, selector: "tui-push" }], animations: [
2702
+ /** @nocollapse */ KwikIDFormsRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormsRendererComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2703
+ /** @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", apiCallResponse: "apiCallResponse" }, outputs: { onClickSubmit: "onClickSubmit", getFormData: "getFormData", onClickApiCall: "onClickApiCall" }, host: { listeners: { "window:resize": "windowResizeWatcher($event)" } }, 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 [userConfig]=\"this.userConfig\"\n [formsList]=\"this.formsList\"\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=\"this.showForm && this.showFormFields\"\n [class.active]=\"showFormFields\"\n [class.mobile]=\"isMobileView\"\n [@panelInOut]\n >\n <kwikid-form-view\n [formConfig]=\"this.activeFormConfig\"\n [formData]=\"this.activeFormData\"\n [apiCallResponse]=\"this.apiCallResponse\"\n [formsList]=\"this.formsList\"\n [allFormsData]=\"this.allFormsData\"\n [isMobileView]=\"this.isMobileView\"\n (onClickApiCall)=\"this.handleOnClickApiCall($event)\"\n (onClickViewForms)=\"this.handleOnClickViewForms($event)\"\n (onClickSaveForm)=\"this.handleOnClickSaveForm($event)\"\n ></kwikid-form-view>\n </div>\n </div>\n</div>\n<div\n ngClass=\"kwikid-forms-renderer-loader\"\n *ngIf=\"loader\"\n>\n <span class=\"loader\"></span>\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=\"tuiIconCancel\"\n style=\"color: #fff !important\"\n >\n </tui-svg>\n</tui-push>\n", styles: [":host{position:relative}.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);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-primary)}.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{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 .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 .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 .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}\n"], components: [{ type: KwikIDFormsListComponent, selector: "kwikid-forms-list", inputs: ["showFormFields", "userConfig", "formsList", "formsListCompleted", "isMobileView"], outputs: ["onClickSetActiveForm", "onClickHideFormsList", "onClickSubmitForms"] }, { type: KwikIDFormViewComponent, selector: "kwikid-form-view", inputs: ["formConfig", "formData", "apiCallResponse", "isMobileView", "allFormsData", "formsList"], outputs: ["onClickViewForms", "onClickSaveForm", "onClickApiCall"] }, { type: i4.TuiPushComponent, selector: "tui-push", inputs: ["heading", "type", "timestamp"], outputs: ["close"] }, { type: i3.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.TuiPushAlertDirective, selector: "[tuiPush]", inputs: ["tuiPush"] }, { type: i4.TuiPushDirective, selector: "tui-push" }], animations: [
2617
2704
  trigger("panelInOut", [
2618
2705
  transition(":enter", [
2619
2706
  style({ transform: "translateY(100%)" }),
@@ -2624,6 +2711,36 @@ class KwikIDFormsRendererComponent {
2624
2711
  ])
2625
2712
  ])
2626
2713
  ] });
2714
+ __decorate([
2715
+ logMethod
2716
+ ], KwikIDFormsRendererComponent.prototype, "assignSequenceNoToForm", null);
2717
+ __decorate([
2718
+ logMethod
2719
+ ], KwikIDFormsRendererComponent.prototype, "findCompletedFormsList", null);
2720
+ __decorate([
2721
+ logMethod
2722
+ ], KwikIDFormsRendererComponent.prototype, "markFormInFormsListAsCompleted", null);
2723
+ __decorate([
2724
+ logMethod
2725
+ ], KwikIDFormsRendererComponent.prototype, "markFormInFormsListAsDisabled", null);
2726
+ __decorate([
2727
+ logMethod
2728
+ ], KwikIDFormsRendererComponent.prototype, "filterAllFormsData", null);
2729
+ __decorate([
2730
+ logMethod
2731
+ ], KwikIDFormsRendererComponent.prototype, "checkIfFormsStatusCompleted", null);
2732
+ __decorate([
2733
+ logMethod
2734
+ ], KwikIDFormsRendererComponent.prototype, "findActiveFormConfig", null);
2735
+ __decorate([
2736
+ logMethod
2737
+ ], KwikIDFormsRendererComponent.prototype, "updateFormsList", null);
2738
+ __decorate([
2739
+ logMethod
2740
+ ], KwikIDFormsRendererComponent.prototype, "formHide", null);
2741
+ __decorate([
2742
+ logMethod
2743
+ ], KwikIDFormsRendererComponent.prototype, "formShow", null);
2627
2744
  __decorate([
2628
2745
  logMethod
2629
2746
  ], KwikIDFormsRendererComponent.prototype, "handleOnClickSetActiveForm", null);
@@ -2646,10 +2763,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2646
2763
  animate(100, style({ transform: "translateY(100%)" }))
2647
2764
  ])
2648
2765
  ])
2649
- ],
2650
- providers: [KwikIDRendererService]
2766
+ ]
2651
2767
  }]
2652
- }], ctorParameters: function () { return [{ type: KwikIDRendererService }, { type: i0.ElementRef }]; }, propDecorators: { windowResizeWatcher: [{
2768
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { windowResizeWatcher: [{
2653
2769
  type: HostListener,
2654
2770
  args: ["window:resize", ["$event"]]
2655
2771
  }], stepConfig: [{
@@ -2666,7 +2782,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2666
2782
  type: Output
2667
2783
  }], onClickApiCall: [{
2668
2784
  type: Output
2669
- }], handleOnClickSetActiveForm: [], handleOnClickSubmitForms: [] } });
2785
+ }], assignSequenceNoToForm: [], findCompletedFormsList: [], markFormInFormsListAsCompleted: [], markFormInFormsListAsDisabled: [], filterAllFormsData: [], checkIfFormsStatusCompleted: [], findActiveFormConfig: [], updateFormsList: [], formHide: [], formShow: [], handleOnClickSetActiveForm: [], handleOnClickSubmitForms: [] } });
2670
2786
 
2671
2787
  class KwikIDFormBuilderModule {
2672
2788
  }
@@ -2797,7 +2913,7 @@ class KwikIDFormsModule {
2797
2913
  ReactiveFormsModule,
2798
2914
  KwikIDFormBuilderModule,
2799
2915
  KwikIDFormRendererModule], exports: [KwikIDFormBuilderModule, KwikIDFormRendererModule] });
2800
- /** @nocollapse */ KwikIDFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormsModule, providers: [KwikIDRendererService], imports: [[
2916
+ /** @nocollapse */ KwikIDFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormsModule, imports: [[
2801
2917
  CommonModule,
2802
2918
  FormsModule,
2803
2919
  ReactiveFormsModule,
@@ -2815,8 +2931,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2815
2931
  KwikIDFormBuilderModule,
2816
2932
  KwikIDFormRendererModule
2817
2933
  ],
2818
- exports: [KwikIDFormBuilderModule, KwikIDFormRendererModule],
2819
- providers: [KwikIDRendererService]
2934
+ exports: [KwikIDFormBuilderModule, KwikIDFormRendererModule]
2820
2935
  }]
2821
2936
  }] });
2822
2937