kwikid-forms 0.3.21 → 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.
- package/bundles/kwikid-forms.umd.js +8985 -7727
- package/bundles/kwikid-forms.umd.js.map +1 -1
- package/esm2015/lib/builder/builder.component.js +2 -2
- package/esm2015/lib/builder/builder.module.js +8 -11
- package/esm2015/lib/builder/element-config-editor/editors/basic/radio-config.editor.component.js +10 -10
- package/esm2015/lib/builder/element-config-editor/editors/basic/select-config.editor.component.js +302 -0
- package/esm2015/lib/builder/element-config-editor/editors/basic/text-config.editor.component.js +6 -6
- package/esm2015/lib/builder/element-config-editor/editors/basic-element-config.editor.component.js +25 -25
- package/esm2015/lib/builder/element-config-editor/editors/document/pan-number-config.editor.component.js +6 -6
- package/esm2015/lib/builder/element-config-editor/editors/document-element-config.editor.component.js +18 -18
- package/esm2015/lib/builder/shared/elements.js +12 -3
- package/esm2015/lib/builder2/builder-form-editor/builder-form-editor.component.js +268 -0
- package/esm2015/lib/builder2/builder-form-editor/builder-form-editor.module.js +38 -0
- package/esm2015/lib/builder2/builder-form-editor/builder-form-editor.pipe.js +19 -0
- package/esm2015/lib/builder2/builder-form-editor/builder.form-editor.constants.js +178 -0
- package/esm2015/lib/builder2/builder-form-list/builder-forms-list.component.js +85 -0
- package/esm2015/lib/builder2/builder-form-list/builder-forms-list.module.js +37 -0
- package/esm2015/lib/builder2/builder2.component.js +169 -0
- package/esm2015/lib/builder2/builder2.module.js +46 -0
- package/esm2015/lib/kwikid-forms.module.js +16 -4
- package/esm2015/lib/renderer/config-converter.helper.js +86 -9
- package/esm2015/lib/renderer/form-view/definitions/form-view.fields.definition.js +4 -1
- package/esm2015/lib/renderer/form-view/form-view.component.js +196 -29
- package/esm2015/lib/renderer/form-view/helpers/form-view.fields.helper.js +17 -2
- package/esm2015/lib/renderer/forms-list/forms-list.component.js +6 -4
- package/esm2015/lib/renderer/renderer.component.js +73 -25
- package/esm2015/lib/renderer/renderer.definitions.js +6 -0
- package/esm2015/public_api.js +3 -1
- package/fesm2015/kwikid-forms.js +1300 -179
- package/fesm2015/kwikid-forms.js.map +1 -1
- package/lib/builder/builder.module.d.ts +2 -2
- package/lib/builder/element-config-editor/editors/basic/{dropdown-with-search-config.editor.component.d.ts → select-config.editor.component.d.ts} +5 -5
- package/lib/builder2/builder-form-editor/builder-form-editor.component.d.ts +48 -0
- package/lib/builder2/builder-form-editor/builder-form-editor.module.d.ts +12 -0
- package/lib/builder2/builder-form-editor/builder-form-editor.pipe.d.ts +7 -0
- package/lib/builder2/builder-form-editor/builder.form-editor.constants.d.ts +620 -0
- package/lib/builder2/builder-form-list/builder-forms-list.component.d.ts +19 -0
- package/lib/builder2/builder-form-list/builder-forms-list.module.d.ts +11 -0
- package/lib/builder2/builder2.component.d.ts +37 -0
- package/lib/builder2/builder2.module.d.ts +13 -0
- package/lib/kwikid-forms.module.d.ts +3 -2
- package/lib/renderer/form-view/definitions/form-view.fields.definition.d.ts +10 -7
- package/lib/renderer/form-view/form-view.component.d.ts +20 -3
- package/lib/renderer/form-view/helpers/form-view.fields.helper.d.ts +1 -0
- package/lib/renderer/renderer.definitions.d.ts +5 -0
- package/package.json +3 -16
- package/public_api.d.ts +2 -0
- package/esm2015/lib/builder/element-config-editor/editors/basic/dropdown-with-search-config.editor.component.js +0 -302
package/fesm2015/kwikid-forms.js
CHANGED
|
@@ -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,
|
|
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 {
|
|
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,
|
|
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: "
|
|
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: [
|
|
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
|
|
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
|
|
191
|
+
></kwikui-input-select>
|
|
182
192
|
</div>
|
|
183
193
|
</fieldset>
|
|
184
194
|
</div>
|
|
185
195
|
</form>
|
|
186
|
-
`, isInline: true, styles: [""], components: [{ type: i1.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
714
|
+
this.basicSelectFormGroup = undefined;
|
|
705
715
|
}
|
|
706
716
|
ngOnInit() {
|
|
707
|
-
this.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
744
|
+
this.basicSelectFormGroup = new FormGroup({
|
|
735
745
|
options: new FormArray(optionsFormArray)
|
|
736
746
|
});
|
|
737
|
-
this.
|
|
747
|
+
this.basicSelectFormGroup.updateValueAndValidity();
|
|
738
748
|
}
|
|
739
749
|
handleOnSave() {
|
|
740
|
-
let basicElementConfig = this.
|
|
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.
|
|
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.
|
|
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.
|
|
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 */
|
|
775
|
-
/** @nocollapse */
|
|
776
|
-
<form [formGroup]="
|
|
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-
|
|
797
|
+
[id]="'basic-select-config-title'"
|
|
788
798
|
[type]="'text'"
|
|
789
799
|
[formControlName]="'title'"
|
|
790
800
|
[formControl]="
|
|
791
|
-
|
|
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-
|
|
816
|
+
[id]="'basic-select-config-value'"
|
|
807
817
|
[type]="'text'"
|
|
808
818
|
[formControlName]="'value'"
|
|
809
819
|
[formControl]="
|
|
810
|
-
|
|
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
|
-
],
|
|
870
|
+
], BasicSelectConfigEditor.prototype, "ngOnInit", null);
|
|
861
871
|
__decorate([
|
|
862
872
|
logMethod
|
|
863
|
-
],
|
|
873
|
+
], BasicSelectConfigEditor.prototype, "ngOnChanges", null);
|
|
864
874
|
__decorate([
|
|
865
875
|
logMethod
|
|
866
|
-
],
|
|
876
|
+
], BasicSelectConfigEditor.prototype, "createBasicSelectFormGroup", null);
|
|
867
877
|
__decorate([
|
|
868
878
|
logMethod
|
|
869
|
-
],
|
|
879
|
+
], BasicSelectConfigEditor.prototype, "handleOnSave", null);
|
|
870
880
|
__decorate([
|
|
871
881
|
logMethod
|
|
872
|
-
],
|
|
882
|
+
], BasicSelectConfigEditor.prototype, "createOptionConfigFormGroup", null);
|
|
873
883
|
__decorate([
|
|
874
884
|
logMethod
|
|
875
|
-
],
|
|
885
|
+
], BasicSelectConfigEditor.prototype, "addOption", null);
|
|
876
886
|
__decorate([
|
|
877
887
|
logMethod
|
|
878
|
-
],
|
|
879
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type:
|
|
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-
|
|
892
|
+
selector: "basic-select-config-editor",
|
|
883
893
|
template: `
|
|
884
|
-
<form [formGroup]="
|
|
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-
|
|
905
|
+
[id]="'basic-select-config-title'"
|
|
896
906
|
[type]="'text'"
|
|
897
907
|
[formControlName]="'title'"
|
|
898
908
|
[formControl]="
|
|
899
|
-
|
|
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-
|
|
924
|
+
[id]="'basic-select-config-value'"
|
|
915
925
|
[type]="'text'"
|
|
916
926
|
[formControlName]="'value'"
|
|
917
927
|
[formControl]="
|
|
918
|
-
|
|
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: [],
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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="'
|
|
1637
|
-
<basic-
|
|
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-
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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="'
|
|
1927
|
-
<basic-
|
|
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-
|
|
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
|
|
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
|
|
2188
|
+
></kwikui-input-select>
|
|
2179
2189
|
</div>
|
|
2180
2190
|
</fieldset>
|
|
2181
2191
|
</div>
|
|
2182
2192
|
</form>
|
|
2183
|
-
`, isInline: true, styles: [""], components: [{ type: i1.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 ⋮⋮ {{ 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\">⋮⋮</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 ✎\n </button>\n <button\n (click)=\"removeElement(idx, formElementDropItem)\"\n title=\"delete element\"\n >\n ✖\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\"> © 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 ⋮⋮ {{ 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\">⋮⋮</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 ✎\n </button>\n <button\n (click)=\"removeElement(idx, formElementDropItem)\"\n title=\"delete element\"\n >\n ✖\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\"> © 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
|
-
],
|
|
4305
|
+
], KwikIDFormsBuilder2Component.prototype, "handleOnClickSetActiveForm", null);
|
|
3622
4306
|
__decorate([
|
|
3623
4307
|
logMethod
|
|
3624
|
-
],
|
|
3625
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type:
|
|
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-
|
|
3629
|
-
templateUrl: "./
|
|
3630
|
-
styleUrls: ["shared
|
|
4312
|
+
selector: "kwikid-forms-builder2",
|
|
4313
|
+
templateUrl: "./builder2.component.html",
|
|
4314
|
+
styleUrls: ["./shared.scss", "./builder2.component.scss"]
|
|
3631
4315
|
}]
|
|
3632
|
-
}], ctorParameters: function () { return []; }, propDecorators: {
|
|
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.
|
|
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
|
|
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
|
|
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 =
|
|
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 =
|
|
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 (
|
|
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,7 +5900,7 @@ class KwikIDFormViewComponent {
|
|
|
5097
5900
|
}
|
|
5098
5901
|
setLoaderType() {
|
|
5099
5902
|
this.loaderType = "CENTER_SCREEN";
|
|
5100
|
-
if (this.userConfig
|
|
5903
|
+
if (isNotEmptyValue(this.userConfig)) {
|
|
5101
5904
|
if (checkObjectKeyExists(this.userConfig, "utilityFlags")) {
|
|
5102
5905
|
if (checkObjectKeyExists(this.userConfig.utilityFlags, "loaderType")) {
|
|
5103
5906
|
this.loaderType = this.userConfig.utilityFlags.loaderType;
|
|
@@ -5164,11 +5967,17 @@ class KwikIDFormViewComponent {
|
|
|
5164
5967
|
if (field.isFormElement) {
|
|
5165
5968
|
this.previousFormData = Object.assign(Object.assign({}, this.previousFormData), { [field.key]: convertFormFieldValueToStandardFormat(field, this.formGroup.controls[field.key].value) });
|
|
5166
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
|
+
}
|
|
5167
5973
|
this.formGroup.controls[field.key].valueChanges
|
|
5168
5974
|
.pipe(pairwise())
|
|
5169
5975
|
.subscribe(([previousValue, currentValue]) => {
|
|
5170
5976
|
this.previousFormData = Object.assign(Object.assign({}, this.previousFormData), { [field.key]: convertFormFieldValueToStandardFormat(field, previousValue) });
|
|
5171
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
|
+
}
|
|
5172
5981
|
});
|
|
5173
5982
|
}
|
|
5174
5983
|
}
|
|
@@ -5322,6 +6131,99 @@ class KwikIDFormViewComponent {
|
|
|
5322
6131
|
}
|
|
5323
6132
|
});
|
|
5324
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
|
+
}
|
|
5325
6227
|
// DOM Event Handlers
|
|
5326
6228
|
handleGetKeyValue(e) {
|
|
5327
6229
|
this.formGroup.patchValue({
|
|
@@ -5385,7 +6287,7 @@ class KwikIDFormViewComponent {
|
|
|
5385
6287
|
}
|
|
5386
6288
|
handleFieldApiCall(field, api) {
|
|
5387
6289
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5388
|
-
api = yield this.
|
|
6290
|
+
api = yield this.executeApiCall(api, {
|
|
5389
6291
|
FIELD_CONFIG: field,
|
|
5390
6292
|
API_CONFIG: api,
|
|
5391
6293
|
FORM_FIELDS: this.formFields,
|
|
@@ -5394,8 +6296,7 @@ class KwikIDFormViewComponent {
|
|
|
5394
6296
|
PREVIOUS_FORM_DATA: this.previousFormData,
|
|
5395
6297
|
ALL_FORMS_DATA: this.allFormsData
|
|
5396
6298
|
});
|
|
5397
|
-
if (api
|
|
5398
|
-
api.request.headers.validation.is_valid) {
|
|
6299
|
+
if (this.validateHeadersAndBody(api)) {
|
|
5399
6300
|
if (checkObjectKeyExists(field.api, "request")) {
|
|
5400
6301
|
this.formData = Object.assign(Object.assign({}, this.formData), { [field.key]: api.response.value });
|
|
5401
6302
|
this.formGroup.patchValue({
|
|
@@ -5422,9 +6323,9 @@ class KwikIDFormViewComponent {
|
|
|
5422
6323
|
return { field: field, api: api };
|
|
5423
6324
|
});
|
|
5424
6325
|
}
|
|
5425
|
-
|
|
6326
|
+
handleApiCall(api) {
|
|
5426
6327
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5427
|
-
api = yield this.
|
|
6328
|
+
api = yield this.executeApiCall(api, {
|
|
5428
6329
|
FORM_CONFIG: this.formConfig,
|
|
5429
6330
|
API_CONFIG: api,
|
|
5430
6331
|
FORM_FIELDS: this.formFields,
|
|
@@ -5442,14 +6343,13 @@ class KwikIDFormViewComponent {
|
|
|
5442
6343
|
PREVIOUS_FORM_DATA: this.previousFormData,
|
|
5443
6344
|
ALL_FORMS_DATA: this.allFormsData
|
|
5444
6345
|
}, this.takeAction.bind(this));
|
|
5445
|
-
if (api
|
|
5446
|
-
api.request.headers.validation.is_valid) {
|
|
6346
|
+
if (this.validateHeadersAndBody(api)) {
|
|
5447
6347
|
api = yield apis.validateResponse();
|
|
5448
6348
|
}
|
|
5449
6349
|
return { api: api };
|
|
5450
6350
|
});
|
|
5451
6351
|
}
|
|
5452
|
-
|
|
6352
|
+
executeApiCall(api, object) {
|
|
5453
6353
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
5454
6354
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5455
6355
|
const apis = new Apis(object, this.takeAction.bind(this));
|
|
@@ -5459,8 +6359,7 @@ class KwikIDFormViewComponent {
|
|
|
5459
6359
|
api = yield apis.setRequestBody();
|
|
5460
6360
|
api = yield apis.validateRequestBody();
|
|
5461
6361
|
let apiCallResponse = {};
|
|
5462
|
-
if (api
|
|
5463
|
-
api.request.headers.validation.is_valid) {
|
|
6362
|
+
if (this.validateHeadersAndBody(api)) {
|
|
5464
6363
|
if (api.request.url.hasOwnProperty("type") &&
|
|
5465
6364
|
api.request.url.type === EApiRequestUrlType.MOCK) {
|
|
5466
6365
|
apiCallResponse = yield new Promise((resolve) => {
|
|
@@ -5505,6 +6404,12 @@ class KwikIDFormViewComponent {
|
|
|
5505
6404
|
return api;
|
|
5506
6405
|
});
|
|
5507
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
|
+
}
|
|
5508
6413
|
showApiLoader() {
|
|
5509
6414
|
this.apiLoading = true;
|
|
5510
6415
|
this.viewFormsButton["disabled"] = true;
|
|
@@ -5909,6 +6814,25 @@ class KwikIDFormViewComponent {
|
|
|
5909
6814
|
this.previousFormData = source.object.PREVIOUS_FORM_DATA;
|
|
5910
6815
|
});
|
|
5911
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
|
+
}
|
|
5912
6836
|
fieldMultipleApiCalls(action, object) {
|
|
5913
6837
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5914
6838
|
const entrypointApiKey = action.props.apiKey;
|
|
@@ -5936,16 +6860,10 @@ class KwikIDFormViewComponent {
|
|
|
5936
6860
|
taskApiCall(action, object) {
|
|
5937
6861
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5938
6862
|
this.showApiLoader();
|
|
5939
|
-
|
|
5940
|
-
const response = yield this.handleTaskApiCall(apiConfig);
|
|
5941
|
-
apiConfig = response.api;
|
|
5942
|
-
this.formConfig = setValueToObjectPath(this.formConfig, `apis.${action.props.formApiKey}`, apiConfig);
|
|
6863
|
+
const apiConfig = yield this.apiCall(action, object);
|
|
5943
6864
|
this.taskData = mergeObjects(this.taskData, {
|
|
5944
6865
|
[action.props.formApiKey]: apiConfig.response.value
|
|
5945
6866
|
});
|
|
5946
|
-
this.formData = mergeObjects(this.formData, {
|
|
5947
|
-
[action.props.formApiKey]: apiConfig.response.value
|
|
5948
|
-
});
|
|
5949
6867
|
this.waitingForChanges = false;
|
|
5950
6868
|
this.hideApiLoader();
|
|
5951
6869
|
});
|
|
@@ -5959,7 +6877,7 @@ class KwikIDFormViewComponent {
|
|
|
5959
6877
|
const endpoints = multipleApiConfig.endpoints;
|
|
5960
6878
|
const nextApiIndex = endpoints.findIndex((api) => api.apiKey == entrypointApiKey);
|
|
5961
6879
|
const apiConfig = endpoints[nextApiIndex];
|
|
5962
|
-
const response = yield this.
|
|
6880
|
+
const response = yield this.handleApiCall(apiConfig);
|
|
5963
6881
|
multipleApiConfig.endpoints[nextApiIndex] = response.api;
|
|
5964
6882
|
this.formConfig = setValueToObjectPath(this.formConfig, `apis.${action.props.formApiKey}`, multipleApiConfig);
|
|
5965
6883
|
this.hideApiLoader();
|
|
@@ -6011,9 +6929,10 @@ class KwikIDFormViewComponent {
|
|
|
6011
6929
|
}
|
|
6012
6930
|
}
|
|
6013
6931
|
patchFieldControlValue(key, value) {
|
|
6014
|
-
this.formGroup.patchValue({
|
|
6015
|
-
|
|
6016
|
-
|
|
6932
|
+
this.formGroup.controls[key].patchValue(value, { emitEvent: false });
|
|
6933
|
+
}
|
|
6934
|
+
setFieldControlValue(key, value) {
|
|
6935
|
+
this.formGroup.controls[key].setValue(value, { emitEvent: false });
|
|
6017
6936
|
}
|
|
6018
6937
|
patchFormGroup(formData) {
|
|
6019
6938
|
if (isUndefined(this.formGroup) || isUndefined(formData)) {
|
|
@@ -6215,6 +7134,7 @@ class KwikIDFormViewComponent {
|
|
|
6215
7134
|
this.handleConnectedElements({ key: action.props.fieldKey }, "ON_ACTION");
|
|
6216
7135
|
break;
|
|
6217
7136
|
case EActionKey.API_CALL:
|
|
7137
|
+
yield this.fieldApiCall(action, object);
|
|
6218
7138
|
break;
|
|
6219
7139
|
case EActionKey.API_CALL_MULTIPLE:
|
|
6220
7140
|
yield this.fieldMultipleApiCalls(action, object);
|
|
@@ -6312,7 +7232,7 @@ class KwikIDFormViewComponent {
|
|
|
6312
7232
|
}
|
|
6313
7233
|
}
|
|
6314
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 });
|
|
6315
|
-
/** @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 } });
|
|
6316
7236
|
__decorate([
|
|
6317
7237
|
logMethod
|
|
6318
7238
|
], KwikIDFormViewComponent.prototype, "ngOnInit", null);
|
|
@@ -6349,6 +7269,18 @@ __decorate([
|
|
|
6349
7269
|
__decorate([
|
|
6350
7270
|
logMethod
|
|
6351
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);
|
|
6352
7284
|
__decorate([
|
|
6353
7285
|
logMethod
|
|
6354
7286
|
], KwikIDFormViewComponent.prototype, "handleGetKeyValue", null);
|
|
@@ -6360,10 +7292,13 @@ __decorate([
|
|
|
6360
7292
|
], KwikIDFormViewComponent.prototype, "handleFieldApiCall", null);
|
|
6361
7293
|
__decorate([
|
|
6362
7294
|
logMethod
|
|
6363
|
-
], KwikIDFormViewComponent.prototype, "
|
|
7295
|
+
], KwikIDFormViewComponent.prototype, "handleApiCall", null);
|
|
7296
|
+
__decorate([
|
|
7297
|
+
logMethod
|
|
7298
|
+
], KwikIDFormViewComponent.prototype, "executeApiCall", null);
|
|
6364
7299
|
__decorate([
|
|
6365
7300
|
logMethod
|
|
6366
|
-
], KwikIDFormViewComponent.prototype, "
|
|
7301
|
+
], KwikIDFormViewComponent.prototype, "validateHeadersAndBody", null);
|
|
6367
7302
|
__decorate([
|
|
6368
7303
|
logMethod
|
|
6369
7304
|
], KwikIDFormViewComponent.prototype, "handleOnClickApiCall", null);
|
|
@@ -6427,6 +7362,12 @@ __decorate([
|
|
|
6427
7362
|
__decorate([
|
|
6428
7363
|
logMethod
|
|
6429
7364
|
], KwikIDFormViewComponent.prototype, "setDropdownOptions", null);
|
|
7365
|
+
__decorate([
|
|
7366
|
+
logMethod
|
|
7367
|
+
], KwikIDFormViewComponent.prototype, "apiCall", null);
|
|
7368
|
+
__decorate([
|
|
7369
|
+
logMethod
|
|
7370
|
+
], KwikIDFormViewComponent.prototype, "fieldApiCall", null);
|
|
6430
7371
|
__decorate([
|
|
6431
7372
|
logMethod
|
|
6432
7373
|
], KwikIDFormViewComponent.prototype, "fieldMultipleApiCalls", null);
|
|
@@ -6451,6 +7392,9 @@ __decorate([
|
|
|
6451
7392
|
__decorate([
|
|
6452
7393
|
logMethod
|
|
6453
7394
|
], KwikIDFormViewComponent.prototype, "patchFieldControlValue", null);
|
|
7395
|
+
__decorate([
|
|
7396
|
+
logMethod
|
|
7397
|
+
], KwikIDFormViewComponent.prototype, "setFieldControlValue", null);
|
|
6454
7398
|
__decorate([
|
|
6455
7399
|
logMethod
|
|
6456
7400
|
], KwikIDFormViewComponent.prototype, "patchFormGroup", null);
|
|
@@ -6514,6 +7458,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
6514
7458
|
type: Input
|
|
6515
7459
|
}], userConfig: [{
|
|
6516
7460
|
type: Input
|
|
7461
|
+
}], apiCallResponse: [{
|
|
7462
|
+
type: Input
|
|
6517
7463
|
}], popupFormCallback: [{
|
|
6518
7464
|
type: Input
|
|
6519
7465
|
}], onClickGoBack: [{
|
|
@@ -6526,7 +7472,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
6526
7472
|
type: Output
|
|
6527
7473
|
}], onActionShowPopupForm: [{
|
|
6528
7474
|
type: Output
|
|
6529
|
-
}], ngOnInit: [], ngAfterViewInit: [], ngOnChanges: [], initFormConfig: [], setFormFieldsFromFormConfig: [], setFormFieldGroupsFromFormConfig: [], setFormDataFromAllFormsData: [], handleConnectedElementFieldGroupActions: [], handleConnectedElementFieldGroup: [], handleConnectedElementFieldActions: [], handleConnectedElementFields: [], handleConnectedElements: [], handleGetKeyValue: [], handleOnClickResetFormFields: [], handleFieldApiCall: [],
|
|
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 = {}));
|
|
6530
7482
|
|
|
6531
7483
|
/**
|
|
6532
7484
|
* Generated class for the SafeHtmlPipe pipe.
|
|
@@ -6644,7 +7596,7 @@ class KwikIDFormsListComponent {
|
|
|
6644
7596
|
findFormsListLength(formsList) {
|
|
6645
7597
|
const _formsList = formsList.filter((form) => {
|
|
6646
7598
|
if (checkObjectKeyExists(form, "type")) {
|
|
6647
|
-
if (form.type
|
|
7599
|
+
if (form.type !== EFormType.HTML) {
|
|
6648
7600
|
if (checkObjectKeyExists(form, "hidden")) {
|
|
6649
7601
|
if (!form.hidden) {
|
|
6650
7602
|
return form;
|
|
@@ -6664,7 +7616,7 @@ class KwikIDFormsListComponent {
|
|
|
6664
7616
|
let isAllFormsCompleted = true;
|
|
6665
7617
|
for (let form of formsList) {
|
|
6666
7618
|
if (checkObjectKeyExists(form, "type")) {
|
|
6667
|
-
if (form.type
|
|
7619
|
+
if (form.type !== EFormType.HTML) {
|
|
6668
7620
|
if (form.status !== "completed") {
|
|
6669
7621
|
isAllFormsCompleted = false;
|
|
6670
7622
|
break;
|
|
@@ -6675,6 +7627,7 @@ class KwikIDFormsListComponent {
|
|
|
6675
7627
|
return isAllFormsCompleted;
|
|
6676
7628
|
}
|
|
6677
7629
|
handleOnClickSetActiveForm(selectedForm) {
|
|
7630
|
+
console.log(this.isMobileView, this.selectedForm, selectedForm, this.isAllFormsCompleted, this.showFormFields);
|
|
6678
7631
|
if (this.isMobileView ||
|
|
6679
7632
|
(!this.isMobileView && this.selectedForm !== selectedForm) ||
|
|
6680
7633
|
(this.isAllFormsCompleted && !this.showFormFields)) {
|
|
@@ -6693,7 +7646,7 @@ class KwikIDFormsListComponent {
|
|
|
6693
7646
|
}
|
|
6694
7647
|
}
|
|
6695
7648
|
/** @nocollapse */ KwikIDFormsListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6696
|
-
/** @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=\"'
|
|
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 }} <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 } });
|
|
6697
7650
|
__decorate([
|
|
6698
7651
|
logMethod
|
|
6699
7652
|
], KwikIDFormsListComponent.prototype, "ngOnChanges", null);
|
|
@@ -6899,7 +7852,7 @@ class KwikIDFormsRendererComponent {
|
|
|
6899
7852
|
this.handleResize(this.formsList);
|
|
6900
7853
|
if (isNotEmptyValue(this.activeFormConfig)) {
|
|
6901
7854
|
if (checkObjectKeyExists(this.activeFormConfig, "type")) {
|
|
6902
|
-
if (this.activeFormConfig.type
|
|
7855
|
+
if (this.activeFormConfig.type !== EFormType.HTML) {
|
|
6903
7856
|
yield this.handleOnClickSetActiveForm(this.activeFormConfig.key);
|
|
6904
7857
|
}
|
|
6905
7858
|
}
|
|
@@ -6917,10 +7870,7 @@ class KwikIDFormsRendererComponent {
|
|
|
6917
7870
|
});
|
|
6918
7871
|
}
|
|
6919
7872
|
convertFormListConfig(formsList) {
|
|
6920
|
-
|
|
6921
|
-
if (!checkObjectKeyExists(form, "type")) {
|
|
6922
|
-
form.type = "form";
|
|
6923
|
-
}
|
|
7873
|
+
const convertFormListConfigTypeForm = (form) => {
|
|
6924
7874
|
if (checkObjectKeyExists(form, "formContent")) {
|
|
6925
7875
|
if (checkObjectKeyExists(form.formContent, "url")) {
|
|
6926
7876
|
form = setValueToObjectPath(form, "props.url", form.formContent.url);
|
|
@@ -6951,6 +7901,48 @@ class KwikIDFormsRendererComponent {
|
|
|
6951
7901
|
form.dependentOn = [];
|
|
6952
7902
|
}
|
|
6953
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;
|
|
6954
7946
|
});
|
|
6955
7947
|
}
|
|
6956
7948
|
/**
|
|
@@ -6964,7 +7956,7 @@ class KwikIDFormsRendererComponent {
|
|
|
6964
7956
|
let sequenceNo = 1;
|
|
6965
7957
|
for (let form of formsList) {
|
|
6966
7958
|
if (checkObjectKeyExists(form, "hidden")) {
|
|
6967
|
-
if (!form.hidden && form.type
|
|
7959
|
+
if (!form.hidden && form.type !== EFormType.HTML) {
|
|
6968
7960
|
form.sequenceNo = sequenceNo++;
|
|
6969
7961
|
}
|
|
6970
7962
|
else {
|
|
@@ -6990,7 +7982,7 @@ class KwikIDFormsRendererComponent {
|
|
|
6990
7982
|
markFormInFormsListAsCompleted(formsList, formsListCompleted) {
|
|
6991
7983
|
for (let form of formsList) {
|
|
6992
7984
|
if (checkObjectKeyExists(form, "hidden")) {
|
|
6993
|
-
if (!form.hidden && form.type
|
|
7985
|
+
if (!form.hidden && form.type !== EFormType.HTML) {
|
|
6994
7986
|
if (formsListCompleted.includes(form.key)) {
|
|
6995
7987
|
form = setValueToObjectPath(form, "status", "completed");
|
|
6996
7988
|
form = setValueToObjectPath(form, "disabled", false);
|
|
@@ -7009,7 +8001,7 @@ class KwikIDFormsRendererComponent {
|
|
|
7009
8001
|
markFormInFormsListAsDisabled(formsList, formsListCompleted) {
|
|
7010
8002
|
for (let form of formsList) {
|
|
7011
8003
|
if (checkObjectKeyExists(form, "hidden")) {
|
|
7012
|
-
if (!form.hidden && form.type
|
|
8004
|
+
if (!form.hidden && form.type !== EFormType.HTML) {
|
|
7013
8005
|
if (form.status !== "completed") {
|
|
7014
8006
|
if (checkObjectKeyExists(form, "dependentOn")) {
|
|
7015
8007
|
const isDependent = form.dependentOn.every((r) => formsListCompleted.includes(r));
|
|
@@ -7038,7 +8030,7 @@ class KwikIDFormsRendererComponent {
|
|
|
7038
8030
|
for (let form of formsList) {
|
|
7039
8031
|
if (checkObjectKeyExists(form, "hidden") &&
|
|
7040
8032
|
!form.hidden &&
|
|
7041
|
-
form.type
|
|
8033
|
+
form.type !== EFormType.HTML) {
|
|
7042
8034
|
if (checkObjectKeyExists(allFormsData, form.key)) {
|
|
7043
8035
|
currentUserFormAllFormsData = Object.assign(Object.assign({}, currentUserFormAllFormsData), { [form.key]: allFormsData[form.key] });
|
|
7044
8036
|
}
|
|
@@ -7050,7 +8042,7 @@ class KwikIDFormsRendererComponent {
|
|
|
7050
8042
|
let allFormsCompleted = true;
|
|
7051
8043
|
for (const form of formsList) {
|
|
7052
8044
|
if (checkObjectKeyExists(form, "hidden")) {
|
|
7053
|
-
if (!form.hidden && form.type
|
|
8045
|
+
if (!form.hidden && form.type !== EFormType.HTML) {
|
|
7054
8046
|
if (form.status !== "completed") {
|
|
7055
8047
|
allFormsCompleted = false;
|
|
7056
8048
|
break;
|
|
@@ -7063,7 +8055,7 @@ class KwikIDFormsRendererComponent {
|
|
|
7063
8055
|
findActiveFormConfig(formsList) {
|
|
7064
8056
|
const activeFormConfig = formsList.find((form) => {
|
|
7065
8057
|
if (checkObjectKeyExists(form, "hidden")) {
|
|
7066
|
-
if (!form.hidden && form.type
|
|
8058
|
+
if (!form.hidden && form.type !== EFormType.HTML) {
|
|
7067
8059
|
return form.status === "editable" && !form.disabled;
|
|
7068
8060
|
}
|
|
7069
8061
|
}
|
|
@@ -7173,7 +8165,7 @@ class KwikIDFormsRendererComponent {
|
|
|
7173
8165
|
findFormsListLength(formsList) {
|
|
7174
8166
|
const _formsList = formsList.filter((form) => {
|
|
7175
8167
|
if (checkObjectKeyExists(form, "type")) {
|
|
7176
|
-
if (form.type
|
|
8168
|
+
if (form.type !== EFormType.HTML) {
|
|
7177
8169
|
if (checkObjectKeyExists(form, "hidden")) {
|
|
7178
8170
|
if (!form.hidden) {
|
|
7179
8171
|
return form;
|
|
@@ -7206,6 +8198,7 @@ class KwikIDFormsRendererComponent {
|
|
|
7206
8198
|
return form;
|
|
7207
8199
|
}
|
|
7208
8200
|
});
|
|
8201
|
+
console.log("activeFormConfig", activeFormConfig);
|
|
7209
8202
|
let formConfig = undefined;
|
|
7210
8203
|
if (checkObjectKeyExists(activeFormConfig, "props")) {
|
|
7211
8204
|
if (checkObjectKeyExists(activeFormConfig.props, "url")) {
|
|
@@ -7220,11 +8213,17 @@ class KwikIDFormsRendererComponent {
|
|
|
7220
8213
|
formConfig = Object.assign(Object.assign({}, activeFormConfig), formConfigFromPath);
|
|
7221
8214
|
}
|
|
7222
8215
|
else {
|
|
7223
|
-
if (checkObjectKeyExists(activeFormConfig, "
|
|
7224
|
-
|
|
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
|
+
}
|
|
7225
8224
|
}
|
|
7226
8225
|
else {
|
|
7227
|
-
console.error(
|
|
8226
|
+
console.error(`No Direct URL, No Path with Base URL, No fields key found in Active Form's Config!`);
|
|
7228
8227
|
}
|
|
7229
8228
|
}
|
|
7230
8229
|
}
|
|
@@ -7249,6 +8248,7 @@ class KwikIDFormsRendererComponent {
|
|
|
7249
8248
|
}
|
|
7250
8249
|
}
|
|
7251
8250
|
}
|
|
8251
|
+
console.log("formConfig", formConfig);
|
|
7252
8252
|
formConfig = new Converter().updateFormConfigMiscellaneous(formConfig, {
|
|
7253
8253
|
formsListLength: this.findFormsListLength(this.formsList)
|
|
7254
8254
|
});
|
|
@@ -7271,7 +8271,6 @@ class KwikIDFormsRendererComponent {
|
|
|
7271
8271
|
* @param e any
|
|
7272
8272
|
*/
|
|
7273
8273
|
handleOnClickApiCall(e) {
|
|
7274
|
-
this.loader = true;
|
|
7275
8274
|
this.onClickApiCall.emit(e);
|
|
7276
8275
|
}
|
|
7277
8276
|
handleOnActionShowPopupForm(e, content) {
|
|
@@ -7454,7 +8453,7 @@ class KwikIDFormsRendererComponent {
|
|
|
7454
8453
|
const formsList = JSON.parse(JSON.stringify(this.formsList));
|
|
7455
8454
|
for (let form of formsList) {
|
|
7456
8455
|
if (!form.hidden &&
|
|
7457
|
-
form.type
|
|
8456
|
+
form.type !== EFormType.HTML &&
|
|
7458
8457
|
form.required &&
|
|
7459
8458
|
form.status !== EFormsListStatus.COMPLETED) {
|
|
7460
8459
|
this.toggleErrorNotification(true);
|
|
@@ -7493,7 +8492,7 @@ class KwikIDFormsRendererComponent {
|
|
|
7493
8492
|
}
|
|
7494
8493
|
}
|
|
7495
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 });
|
|
7496
|
-
/** @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: [
|
|
7497
8496
|
trigger("panelInOut", [
|
|
7498
8497
|
transition(":enter", [
|
|
7499
8498
|
style({ transform: "translateY(100%)" }),
|
|
@@ -7684,7 +8683,7 @@ class KwikIDFormBuilderModule {
|
|
|
7684
8683
|
BasicElementConfigEditor,
|
|
7685
8684
|
BasicTextConfigEditor,
|
|
7686
8685
|
BasicRadioConfigEditor,
|
|
7687
|
-
|
|
8686
|
+
BasicSelectConfigEditor,
|
|
7688
8687
|
BasicNumberConfigEditor,
|
|
7689
8688
|
BasicCheckboxConfigEditor,
|
|
7690
8689
|
BasicDateConfigEditor,
|
|
@@ -7699,11 +8698,10 @@ class KwikIDFormBuilderModule {
|
|
|
7699
8698
|
FormsModule,
|
|
7700
8699
|
ReactiveFormsModule,
|
|
7701
8700
|
DragDropModule,
|
|
7702
|
-
KwikUIButtonIconModule,
|
|
7703
8701
|
KwikUIButtonModule,
|
|
7704
8702
|
KwikUIInputModule,
|
|
7705
8703
|
KwikUIInputNumberModule,
|
|
7706
|
-
|
|
8704
|
+
KwikUIInputSelectModule,
|
|
7707
8705
|
KwikUITableModule,
|
|
7708
8706
|
KwikUITextareaModule], exports: [KwikIDFormsBuilderComponent] });
|
|
7709
8707
|
/** @nocollapse */ KwikIDFormBuilderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormBuilderModule, providers: [], imports: [[
|
|
@@ -7711,11 +8709,10 @@ class KwikIDFormBuilderModule {
|
|
|
7711
8709
|
FormsModule,
|
|
7712
8710
|
ReactiveFormsModule,
|
|
7713
8711
|
DragDropModule,
|
|
7714
|
-
KwikUIButtonIconModule,
|
|
7715
8712
|
KwikUIButtonModule,
|
|
7716
8713
|
KwikUIInputModule,
|
|
7717
8714
|
KwikUIInputNumberModule,
|
|
7718
|
-
|
|
8715
|
+
KwikUIInputSelectModule,
|
|
7719
8716
|
KwikUITableModule,
|
|
7720
8717
|
KwikUITextareaModule
|
|
7721
8718
|
]] });
|
|
@@ -7728,7 +8725,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
7728
8725
|
BasicElementConfigEditor,
|
|
7729
8726
|
BasicTextConfigEditor,
|
|
7730
8727
|
BasicRadioConfigEditor,
|
|
7731
|
-
|
|
8728
|
+
BasicSelectConfigEditor,
|
|
7732
8729
|
BasicNumberConfigEditor,
|
|
7733
8730
|
BasicCheckboxConfigEditor,
|
|
7734
8731
|
BasicDateConfigEditor,
|
|
@@ -7746,11 +8743,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
7746
8743
|
FormsModule,
|
|
7747
8744
|
ReactiveFormsModule,
|
|
7748
8745
|
DragDropModule,
|
|
7749
|
-
KwikUIButtonIconModule,
|
|
7750
8746
|
KwikUIButtonModule,
|
|
7751
8747
|
KwikUIInputModule,
|
|
7752
8748
|
KwikUIInputNumberModule,
|
|
7753
|
-
|
|
8749
|
+
KwikUIInputSelectModule,
|
|
7754
8750
|
KwikUITableModule,
|
|
7755
8751
|
KwikUITextareaModule
|
|
7756
8752
|
],
|
|
@@ -7759,6 +8755,120 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
7759
8755
|
}]
|
|
7760
8756
|
}] });
|
|
7761
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
|
+
|
|
7762
8872
|
class KwikIDFormViewModule {
|
|
7763
8873
|
}
|
|
7764
8874
|
/** @nocollapse */ KwikIDFormViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -7896,14 +9006,20 @@ class KwikIDFormsModule {
|
|
|
7896
9006
|
FormsModule,
|
|
7897
9007
|
ReactiveFormsModule,
|
|
7898
9008
|
KwikIDFormBuilderModule,
|
|
7899
|
-
|
|
9009
|
+
KwikIDFormBuilder2Module,
|
|
9010
|
+
KwikIDFormRendererModule], exports: [KwikIDFormBuilderModule,
|
|
9011
|
+
KwikIDFormRendererModule,
|
|
9012
|
+
KwikIDFormBuilder2Module] });
|
|
7900
9013
|
/** @nocollapse */ KwikIDFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormsModule, imports: [[
|
|
7901
9014
|
CommonModule,
|
|
7902
9015
|
FormsModule,
|
|
7903
9016
|
ReactiveFormsModule,
|
|
7904
9017
|
KwikIDFormBuilderModule,
|
|
9018
|
+
KwikIDFormBuilder2Module,
|
|
7905
9019
|
KwikIDFormRendererModule
|
|
7906
|
-
], KwikIDFormBuilderModule,
|
|
9020
|
+
], KwikIDFormBuilderModule,
|
|
9021
|
+
KwikIDFormRendererModule,
|
|
9022
|
+
KwikIDFormBuilder2Module] });
|
|
7907
9023
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormsModule, decorators: [{
|
|
7908
9024
|
type: NgModule,
|
|
7909
9025
|
args: [{
|
|
@@ -7913,9 +9029,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
7913
9029
|
FormsModule,
|
|
7914
9030
|
ReactiveFormsModule,
|
|
7915
9031
|
KwikIDFormBuilderModule,
|
|
9032
|
+
KwikIDFormBuilder2Module,
|
|
7916
9033
|
KwikIDFormRendererModule
|
|
7917
9034
|
],
|
|
7918
|
-
exports: [
|
|
9035
|
+
exports: [
|
|
9036
|
+
KwikIDFormBuilderModule,
|
|
9037
|
+
KwikIDFormRendererModule,
|
|
9038
|
+
KwikIDFormBuilder2Module
|
|
9039
|
+
]
|
|
7919
9040
|
}]
|
|
7920
9041
|
}] });
|
|
7921
9042
|
|
|
@@ -7927,5 +9048,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
7927
9048
|
* Generated bundle index. Do not edit.
|
|
7928
9049
|
*/
|
|
7929
9050
|
|
|
7930
|
-
export { KwikIDFormBuilderModule, KwikIDFormRendererModule, KwikIDFormViewComponent, KwikIDFormViewModule, KwikIDFormsBuilderComponent, KwikIDFormsListComponent, KwikIDFormsListModule, KwikIDFormsModule, KwikIDFormsRendererComponent };
|
|
9051
|
+
export { KwikIDFormBuilder2Module, KwikIDFormBuilderModule, KwikIDFormRendererModule, KwikIDFormViewComponent, KwikIDFormViewModule, KwikIDFormsBuilder2Component, KwikIDFormsBuilderComponent, KwikIDFormsListComponent, KwikIDFormsListModule, KwikIDFormsModule, KwikIDFormsRendererComponent };
|
|
7931
9052
|
//# sourceMappingURL=kwikid-forms.js.map
|