kwikid-forms 0.1.10 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/kwikid-forms.umd.js +502 -336
- package/bundles/kwikid-forms.umd.js.map +1 -1
- package/esm2015/lib/kwikid-forms.module.js +3 -5
- package/esm2015/lib/renderer/form-view/form-view.component.js +16 -6
- package/esm2015/lib/renderer/forms-list/forms-list.component.js +15 -2
- package/esm2015/lib/renderer/renderer.actions.definitions.js +9 -0
- package/esm2015/lib/renderer/renderer.component.js +331 -97
- package/esm2015/lib/renderer/renderer.helper.js +9 -0
- package/fesm2015/kwikid-forms.js +372 -263
- package/fesm2015/kwikid-forms.js.map +1 -1
- package/lib/renderer/form-view/form-view.component.d.ts +1 -2
- package/lib/renderer/renderer.actions.definitions.d.ts +50 -0
- package/lib/renderer/renderer.component.d.ts +71 -10
- package/lib/renderer/renderer.helper.d.ts +1 -0
- package/package.json +1 -1
- package/esm2015/lib/renderer/renderer.service.js +0 -169
- package/lib/renderer/renderer.service.d.ts +0 -28
|
@@ -20,7 +20,6 @@ export declare class KwikIDFormViewComponent implements OnInit, AfterViewInit {
|
|
|
20
20
|
onClickViewForms: EventEmitter<any>;
|
|
21
21
|
onClickSaveForm: EventEmitter<any>;
|
|
22
22
|
onClickApiCall: EventEmitter<any>;
|
|
23
|
-
getActiveFormData: EventEmitter<any>;
|
|
24
23
|
fieldGroups: any;
|
|
25
24
|
formFields: any[];
|
|
26
25
|
previousFormData: any;
|
|
@@ -76,5 +75,5 @@ export declare class KwikIDFormViewComponent implements OnInit, AfterViewInit {
|
|
|
76
75
|
takeActionOnFieldGroup(action: TAction, object: any): Promise<void>;
|
|
77
76
|
takeAction(action: TAction, object: any): Promise<void>;
|
|
78
77
|
static ɵfac: i0.ɵɵFactoryDeclaration<KwikIDFormViewComponent, never>;
|
|
79
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<KwikIDFormViewComponent, "kwikid-form-view", never, { "formConfig": "formConfig"; "formData": "formData"; "apiCallResponse": "apiCallResponse"; "isMobileView": "isMobileView"; "allFormsData": "allFormsData"; "formsList": "formsList"; }, { "onClickViewForms": "onClickViewForms"; "onClickSaveForm": "onClickSaveForm"; "onClickApiCall": "onClickApiCall";
|
|
78
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KwikIDFormViewComponent, "kwikid-form-view", never, { "formConfig": "formConfig"; "formData": "formData"; "apiCallResponse": "apiCallResponse"; "isMobileView": "isMobileView"; "allFormsData": "allFormsData"; "formsList": "formsList"; }, { "onClickViewForms": "onClickViewForms"; "onClickSaveForm": "onClickSaveForm"; "onClickApiCall": "onClickApiCall"; }, never, never>;
|
|
80
79
|
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { TAction, TSourceKey } from "kwikid-toolkit";
|
|
2
|
+
export declare enum ERendererActionKey {
|
|
3
|
+
SET_VALUE = "SET_VALUE",
|
|
4
|
+
FORM_HIDE = "FORM_HIDE",
|
|
5
|
+
FORM_SHOW = "FORM_SHOW",
|
|
6
|
+
FORM_DISABLE = "FORM_DISABLE",
|
|
7
|
+
FORM_ENABLE = "FORM_ENABLE"
|
|
8
|
+
}
|
|
9
|
+
export declare type TActionKey = ERendererActionKey.SET_VALUE | ERendererActionKey.FORM_HIDE | ERendererActionKey.FORM_SHOW | ERendererActionKey.FORM_DISABLE | ERendererActionKey.FORM_ENABLE;
|
|
10
|
+
export declare type TActionSetValue = TAction & {
|
|
11
|
+
key: ERendererActionKey.SET_VALUE;
|
|
12
|
+
props: {
|
|
13
|
+
value: {
|
|
14
|
+
source: {
|
|
15
|
+
key: TSourceKey;
|
|
16
|
+
path?: string;
|
|
17
|
+
value?: any;
|
|
18
|
+
};
|
|
19
|
+
destination: {
|
|
20
|
+
key: TSourceKey;
|
|
21
|
+
path?: string;
|
|
22
|
+
value?: any;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export declare type TActionFormShow = TAction & {
|
|
28
|
+
key: ERendererActionKey.FORM_SHOW;
|
|
29
|
+
props: {
|
|
30
|
+
fieldKey: string;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
export declare type TActionFormHide = TAction & {
|
|
34
|
+
key: ERendererActionKey.FORM_HIDE;
|
|
35
|
+
props: {
|
|
36
|
+
fieldKey: string;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
export declare type TActionFormEnable = TAction & {
|
|
40
|
+
key: ERendererActionKey.FORM_ENABLE;
|
|
41
|
+
props: {
|
|
42
|
+
fieldKey: string;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
export declare type TActionFormDisable = TAction & {
|
|
46
|
+
key: ERendererActionKey.FORM_DISABLE;
|
|
47
|
+
props: {
|
|
48
|
+
fieldKey: string;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { ElementRef, EventEmitter, OnChanges, OnInit, SimpleChanges } from "@angular/core";
|
|
2
|
-
import { KwikIDRendererService } from "./renderer.service";
|
|
1
|
+
import { ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnInit, SimpleChanges } from "@angular/core";
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
3
|
export declare class KwikIDFormsRendererComponent implements OnInit, OnChanges {
|
|
5
|
-
rendererService: KwikIDRendererService;
|
|
6
4
|
private hostElement;
|
|
5
|
+
private cdr;
|
|
7
6
|
windowResizeWatcher(): void;
|
|
8
7
|
stepConfig: any;
|
|
9
8
|
userConfig: any;
|
|
@@ -14,23 +13,85 @@ export declare class KwikIDFormsRendererComponent implements OnInit, OnChanges {
|
|
|
14
13
|
onClickApiCall: EventEmitter<any>;
|
|
15
14
|
loading: boolean;
|
|
16
15
|
loader: boolean;
|
|
16
|
+
showErrorNotification: boolean;
|
|
17
|
+
toggleErrorNotification(show: any): void;
|
|
18
|
+
activeFormConfig: any;
|
|
19
|
+
activeFormData: any;
|
|
20
|
+
activeFormFields: any[];
|
|
21
|
+
allFormsData: any;
|
|
22
|
+
formsList: any[];
|
|
23
|
+
formsListCompleted: string[];
|
|
24
|
+
isMobileView: boolean;
|
|
17
25
|
showForm: boolean;
|
|
18
26
|
showFormFields: boolean;
|
|
19
27
|
showFormSections: boolean;
|
|
20
|
-
constructor(
|
|
28
|
+
constructor(hostElement: ElementRef, cdr: ChangeDetectorRef);
|
|
21
29
|
ngOnInit(): void;
|
|
22
30
|
ngOnChanges(changes: SimpleChanges): void;
|
|
31
|
+
fetchFormConfig(url: string): Promise<any>;
|
|
23
32
|
initializeForms(): Promise<void>;
|
|
24
|
-
|
|
33
|
+
/**
|
|
34
|
+
* NOTE: To be deprecated.
|
|
35
|
+
* Why ? Will be directly assigned while executing 'chakra' for default form config.
|
|
36
|
+
* @param formsList any[]
|
|
37
|
+
* @param formsListCompleted string[]
|
|
38
|
+
* @returns any[]
|
|
39
|
+
*/
|
|
40
|
+
assignSequenceNoToForm(formsList: any[]): any[];
|
|
41
|
+
findCompletedFormsList(allFormsData: any): string[];
|
|
42
|
+
/**
|
|
43
|
+
* NOTE: To be deprecated. Why ? Will be replaced by 'chakra'.
|
|
44
|
+
* @param formsList any[]
|
|
45
|
+
* @param formsListCompleted string[]
|
|
46
|
+
* @returns any[]
|
|
47
|
+
*/
|
|
48
|
+
markFormInFormsListAsCompleted(formsList: any[], formsListCompleted: string[]): any[];
|
|
49
|
+
/**
|
|
50
|
+
* NOTE: To be deprecated. Why ? Will be replaced by 'chakra'.
|
|
51
|
+
* @param formsList any[]
|
|
52
|
+
* @param formsListCompleted string[]
|
|
53
|
+
* @returns any[]
|
|
54
|
+
*/
|
|
55
|
+
markFormInFormsListAsDisabled(formsList: any[], formsListCompleted: string[]): any[];
|
|
56
|
+
filterAllFormsData(allFormsData: any, formsList: any[]): any;
|
|
57
|
+
checkIfFormsStatusCompleted(formsList: any, formsListCompleted: string[]): any;
|
|
58
|
+
findActiveFormConfig(formsList: any[]): any;
|
|
59
|
+
updateFormsList(): Promise<void>;
|
|
60
|
+
formHide(formKey: string): void;
|
|
61
|
+
formShow(formKey: string): void;
|
|
62
|
+
takeAction(action: any, object: any): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Library Event Listeners
|
|
65
|
+
*/
|
|
66
|
+
/**
|
|
67
|
+
* FormList - Listens to event of opening the FormView of when any form is clicked in FormList
|
|
68
|
+
* @param selectedForm string
|
|
69
|
+
*/
|
|
25
70
|
handleOnClickSetActiveForm(selectedForm: string): Promise<void>;
|
|
26
|
-
|
|
71
|
+
/**
|
|
72
|
+
* FormView - Listens to event of executing an API call from within the FormView and emits (read as passes) the same event to the library consumer.
|
|
73
|
+
* @param e any
|
|
74
|
+
*/
|
|
27
75
|
handleOnClickApiCall(e: any): void;
|
|
28
|
-
|
|
76
|
+
/**
|
|
77
|
+
* FormView - Listens to event of getting the Active Form's Data when the Form is Saved and emits (read as passes) the same event to the library consumer.
|
|
78
|
+
* @param e any
|
|
79
|
+
*/
|
|
29
80
|
handleOnClickSaveForm(e: any): void;
|
|
81
|
+
/**
|
|
82
|
+
* FormView - Listens to event of showing the Forms List in Mobile View.
|
|
83
|
+
* @param e any
|
|
84
|
+
*/
|
|
30
85
|
handleOnClickViewForms(e: any): void;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
86
|
+
/**
|
|
87
|
+
* FormList - Listens to event of submitting all the forms and moving out of the library and also handles the validation of all the forms.
|
|
88
|
+
* @param e any
|
|
89
|
+
*/
|
|
90
|
+
handleOnClickSubmitForms(e: any): void;
|
|
91
|
+
/**
|
|
92
|
+
* Miscellaneous Methods
|
|
93
|
+
*/
|
|
94
|
+
handleResize(formsList: any[]): void;
|
|
34
95
|
static ɵfac: i0.ɵɵFactoryDeclaration<KwikIDFormsRendererComponent, never>;
|
|
35
96
|
static ɵcmp: i0.ɵɵComponentDeclaration<KwikIDFormsRendererComponent, "kwikid-forms-renderer", never, { "stepConfig": "stepConfig"; "userConfig": "userConfig"; "formsData": "formsData"; "apiCallResponse": "apiCallResponse"; }, { "onClickSubmit": "onClickSubmit"; "getFormData": "getFormData"; "onClickApiCall": "onClickApiCall"; }, never, never>;
|
|
36
97
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getFormConfigByKey: (forms: any[], key: string) => any;
|
package/package.json
CHANGED
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
import { __awaiter, __decorate } from "tslib";
|
|
2
|
-
import { Injectable } from "@angular/core";
|
|
3
|
-
import { checkObjectKeyExists, logMethod, setValueToObjectPath } from "kwikid-toolkit";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class KwikIDRendererService {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.isMobileView = false;
|
|
8
|
-
this.allFormsData = {};
|
|
9
|
-
}
|
|
10
|
-
setIsMobileView(isMobileView) {
|
|
11
|
-
this.isMobileView = isMobileView;
|
|
12
|
-
}
|
|
13
|
-
setFormsList(formsList) {
|
|
14
|
-
this.formsList = formsList;
|
|
15
|
-
}
|
|
16
|
-
setFormsListCompleted(formsListCompleted) {
|
|
17
|
-
this.formsListCompleted = formsListCompleted;
|
|
18
|
-
}
|
|
19
|
-
setAllFormsData(allFormsData) {
|
|
20
|
-
this.allFormsData = allFormsData;
|
|
21
|
-
}
|
|
22
|
-
setActiveFormConfig(activeFormConfig) {
|
|
23
|
-
this.activeFormConfig = activeFormConfig;
|
|
24
|
-
}
|
|
25
|
-
setActiveFormFields(activeFormFields) {
|
|
26
|
-
this.activeFormFields = activeFormFields;
|
|
27
|
-
}
|
|
28
|
-
setActiveFormData(activeFormData) {
|
|
29
|
-
this.activeFormData = activeFormData;
|
|
30
|
-
}
|
|
31
|
-
fetchFormConfig(url) {
|
|
32
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
-
const response = yield fetch(url, { method: "GET" });
|
|
34
|
-
const data = yield response.json();
|
|
35
|
-
return data;
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
findActiveFormConfig(formsList) {
|
|
39
|
-
const activeFormConfig = formsList.find((form) => {
|
|
40
|
-
return form.status === "editable" && !form.disabled;
|
|
41
|
-
});
|
|
42
|
-
return activeFormConfig;
|
|
43
|
-
}
|
|
44
|
-
findCompletedFormsList(allFormsData) {
|
|
45
|
-
let formsListCompleted = [];
|
|
46
|
-
Object.keys(allFormsData).map((formKey) => {
|
|
47
|
-
formsListCompleted.push(formKey);
|
|
48
|
-
});
|
|
49
|
-
return formsListCompleted;
|
|
50
|
-
}
|
|
51
|
-
markFormInFormsListAsCompleted(formsList, formsListCompleted) {
|
|
52
|
-
for (let form of formsList) {
|
|
53
|
-
if (formsListCompleted.includes(form.key)) {
|
|
54
|
-
form = setValueToObjectPath(form, "status", "completed");
|
|
55
|
-
form = setValueToObjectPath(form, "disabled", false);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return formsList;
|
|
59
|
-
}
|
|
60
|
-
markFormInFormsListAsDisabled(formsList, formsListCompleted) {
|
|
61
|
-
for (let form of formsList) {
|
|
62
|
-
if (form.status !== "completed") {
|
|
63
|
-
if (checkObjectKeyExists(form, "dependentOn")) {
|
|
64
|
-
const isDependent = form.dependentOn.every((r) => formsListCompleted.includes(r));
|
|
65
|
-
if (isDependent) {
|
|
66
|
-
form = setValueToObjectPath(form, "status", "editable");
|
|
67
|
-
form = setValueToObjectPath(form, "disabled", false);
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
form = setValueToObjectPath(form, "status", "locked");
|
|
71
|
-
form = setValueToObjectPath(form, "disabled", true);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
form = setValueToObjectPath(form, "dependentOn", []);
|
|
76
|
-
form = setValueToObjectPath(form, "status", "editable");
|
|
77
|
-
form = setValueToObjectPath(form, "disabled", false);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
return formsList;
|
|
82
|
-
}
|
|
83
|
-
assignSequenceNoToForm(formsList) {
|
|
84
|
-
let sequenceNo = 1;
|
|
85
|
-
for (let form of formsList) {
|
|
86
|
-
form.sequenceNo = sequenceNo++;
|
|
87
|
-
}
|
|
88
|
-
return formsList;
|
|
89
|
-
}
|
|
90
|
-
filterAllFormsData(allFormsData, formsList) {
|
|
91
|
-
let currentUserFormAllFormsData = {};
|
|
92
|
-
for (let form of formsList) {
|
|
93
|
-
if (checkObjectKeyExists(allFormsData, form.key)) {
|
|
94
|
-
currentUserFormAllFormsData = Object.assign(Object.assign({}, currentUserFormAllFormsData), { [form.key]: allFormsData[form.key] });
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
return currentUserFormAllFormsData;
|
|
98
|
-
}
|
|
99
|
-
updateFormsList() {
|
|
100
|
-
let formsList = this.formsList;
|
|
101
|
-
let formsListCompleted;
|
|
102
|
-
let activeFormConfig;
|
|
103
|
-
formsList = this.assignSequenceNoToForm(formsList);
|
|
104
|
-
/**
|
|
105
|
-
* Below code identifies the allFormsData required for the current User Form.
|
|
106
|
-
* Why? Because allFormsData will actually contain the whole journey's all
|
|
107
|
-
* possible User Form steps. So, it is important to set the form data which
|
|
108
|
-
* this particular User Form only has to LOCAL METHOD Variable.
|
|
109
|
-
*/
|
|
110
|
-
const currentUserFormAllFormsData = this.filterAllFormsData(this.allFormsData, formsList);
|
|
111
|
-
formsListCompleted = this.findCompletedFormsList(currentUserFormAllFormsData);
|
|
112
|
-
formsList = this.markFormInFormsListAsCompleted(formsList, formsListCompleted);
|
|
113
|
-
formsList = this.markFormInFormsListAsDisabled(formsList, formsListCompleted);
|
|
114
|
-
if (formsList.length !== formsListCompleted.length) {
|
|
115
|
-
activeFormConfig = this.findActiveFormConfig(formsList);
|
|
116
|
-
this.setActiveFormConfig(activeFormConfig);
|
|
117
|
-
}
|
|
118
|
-
this.setFormsList(formsList);
|
|
119
|
-
this.setFormsListCompleted(formsListCompleted);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
/** @nocollapse */ KwikIDRendererService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDRendererService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
123
|
-
/** @nocollapse */ KwikIDRendererService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDRendererService, providedIn: "root" });
|
|
124
|
-
__decorate([
|
|
125
|
-
logMethod
|
|
126
|
-
], KwikIDRendererService.prototype, "setFormsList", null);
|
|
127
|
-
__decorate([
|
|
128
|
-
logMethod
|
|
129
|
-
], KwikIDRendererService.prototype, "setFormsListCompleted", null);
|
|
130
|
-
__decorate([
|
|
131
|
-
logMethod
|
|
132
|
-
], KwikIDRendererService.prototype, "setAllFormsData", null);
|
|
133
|
-
__decorate([
|
|
134
|
-
logMethod
|
|
135
|
-
], KwikIDRendererService.prototype, "setActiveFormConfig", null);
|
|
136
|
-
__decorate([
|
|
137
|
-
logMethod
|
|
138
|
-
], KwikIDRendererService.prototype, "setActiveFormFields", null);
|
|
139
|
-
__decorate([
|
|
140
|
-
logMethod
|
|
141
|
-
], KwikIDRendererService.prototype, "setActiveFormData", null);
|
|
142
|
-
__decorate([
|
|
143
|
-
logMethod
|
|
144
|
-
], KwikIDRendererService.prototype, "findActiveFormConfig", null);
|
|
145
|
-
__decorate([
|
|
146
|
-
logMethod
|
|
147
|
-
], KwikIDRendererService.prototype, "findCompletedFormsList", null);
|
|
148
|
-
__decorate([
|
|
149
|
-
logMethod
|
|
150
|
-
], KwikIDRendererService.prototype, "markFormInFormsListAsCompleted", null);
|
|
151
|
-
__decorate([
|
|
152
|
-
logMethod
|
|
153
|
-
], KwikIDRendererService.prototype, "markFormInFormsListAsDisabled", null);
|
|
154
|
-
__decorate([
|
|
155
|
-
logMethod
|
|
156
|
-
], KwikIDRendererService.prototype, "assignSequenceNoToForm", null);
|
|
157
|
-
__decorate([
|
|
158
|
-
logMethod
|
|
159
|
-
], KwikIDRendererService.prototype, "filterAllFormsData", null);
|
|
160
|
-
__decorate([
|
|
161
|
-
logMethod
|
|
162
|
-
], KwikIDRendererService.prototype, "updateFormsList", null);
|
|
163
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDRendererService, decorators: [{
|
|
164
|
-
type: Injectable,
|
|
165
|
-
args: [{
|
|
166
|
-
providedIn: "root"
|
|
167
|
-
}]
|
|
168
|
-
}], ctorParameters: function () { return []; }, propDecorators: { setFormsList: [], setFormsListCompleted: [], setAllFormsData: [], setActiveFormConfig: [], setActiveFormFields: [], setActiveFormData: [], findActiveFormConfig: [], findCompletedFormsList: [], markFormInFormsListAsCompleted: [], markFormInFormsListAsDisabled: [], assignSequenceNoToForm: [], filterAllFormsData: [], updateFormsList: [] } });
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL3JlbmRlcmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixTQUFTLEVBQ1Qsb0JBQW9CLEVBQ3JCLE1BQU0sZ0JBQWdCLENBQUM7O0FBS3hCLE1BQU0sT0FBTyxxQkFBcUI7SUEwQ2hDO1FBekNBLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBaUJyQixpQkFBWSxHQUFRLEVBQUUsQ0FBQztJQXdCUixDQUFDO0lBeENoQixlQUFlLENBQUMsWUFBcUI7UUFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUlELFlBQVksQ0FBQyxTQUFnQjtRQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBSUQscUJBQXFCLENBQUMsa0JBQXlCO1FBQzdDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztJQUMvQyxDQUFDO0lBSUQsZUFBZSxDQUFDLFlBQW1CO1FBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ25DLENBQUM7SUFJRCxtQkFBbUIsQ0FBQyxnQkFBcUI7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0lBQzNDLENBQUM7SUFJRCxtQkFBbUIsQ0FBQyxnQkFBdUI7UUFDekMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0lBQzNDLENBQUM7SUFJRCxpQkFBaUIsQ0FBQyxjQUFtQjtRQUNuQyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUN2QyxDQUFDO0lBSUssZUFBZSxDQUFDLEdBQVc7O1lB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QWdCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRXhELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQzVDO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMscUJBQXFCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNqRCxDQUFDOztzSUFwTFUscUJBQXFCOzBJQUFyQixxQkFBcUIsY0FGcEIsTUFBTTtBQVVsQjtJQURDLFNBQVM7eURBR1Q7QUFJRDtJQURDLFNBQVM7a0VBR1Q7QUFJRDtJQURDLFNBQVM7NERBR1Q7QUFJRDtJQURDLFNBQVM7Z0VBR1Q7QUFJRDtJQURDLFNBQVM7Z0VBR1Q7QUFJRDtJQURDLFNBQVM7OERBR1Q7QUFXRDtJQURDLFNBQVM7aUVBTVQ7QUFHRDtJQURDLFNBQVM7bUVBU1Q7QUFHRDtJQURDLFNBQVM7MkVBYVQ7QUFHRDtJQURDLFNBQVM7MEVBMkJUO0FBR0Q7SUFEQyxTQUFTO21FQVFUO0FBR0Q7SUFEQyxTQUFTOytEQWNUO0FBR0Q7SUFEQyxTQUFTOzREQXlDVDs0RkFwTFUscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjswRUFTQyxZQUFZLE1BTVoscUJBQXFCLE1BTXJCLGVBQWUsTUFNZixtQkFBbUIsTUFNbkIsbUJBQW1CLE1BTW5CLGlCQUFpQixNQWFqQixvQkFBb0IsTUFRcEIsc0JBQXNCLE1BV3RCLDhCQUE4QixNQWU5Qiw2QkFBNkIsTUE2QjdCLHNCQUFzQixNQVV0QixrQkFBa0IsTUFnQmxCLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIGNoZWNrT2JqZWN0S2V5RXhpc3RzLFxuICBsb2dNZXRob2QsXG4gIHNldFZhbHVlVG9PYmplY3RQYXRoXG59IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46IFwicm9vdFwiXG59KVxuZXhwb3J0IGNsYXNzIEt3aWtJRFJlbmRlcmVyU2VydmljZSB7XG4gIGlzTW9iaWxlVmlldyA9IGZhbHNlO1xuICBzZXRJc01vYmlsZVZpZXcoaXNNb2JpbGVWaWV3OiBib29sZWFuKSB7XG4gICAgdGhpcy5pc01vYmlsZVZpZXcgPSBpc01vYmlsZVZpZXc7XG4gIH1cblxuICBmb3Jtc0xpc3Q6IGFueVtdO1xuICBAbG9nTWV0aG9kXG4gIHNldEZvcm1zTGlzdChmb3Jtc0xpc3Q6IGFueVtdKSB7XG4gICAgdGhpcy5mb3Jtc0xpc3QgPSBmb3Jtc0xpc3Q7XG4gIH1cblxuICBmb3Jtc0xpc3RDb21wbGV0ZWQ6IHN0cmluZ1tdO1xuICBAbG9nTWV0aG9kXG4gIHNldEZvcm1zTGlzdENvbXBsZXRlZChmb3Jtc0xpc3RDb21wbGV0ZWQ6IGFueVtdKSB7XG4gICAgdGhpcy5mb3Jtc0xpc3RDb21wbGV0ZWQgPSBmb3Jtc0xpc3RDb21wbGV0ZWQ7XG4gIH1cblxuICBhbGxGb3Jtc0RhdGE6IGFueSA9IHt9O1xuICBAbG9nTWV0aG9kXG4gIHNldEFsbEZvcm1zRGF0YShhbGxGb3Jtc0RhdGE6IGFueVtdKSB7XG4gICAgdGhpcy5hbGxGb3Jtc0RhdGEgPSBhbGxGb3Jtc0RhdGE7XG4gIH1cblxuICBhY3RpdmVGb3JtQ29uZmlnOiBhbnk7XG4gIEBsb2dNZXRob2RcbiAgc2V0QWN0aXZlRm9ybUNvbmZpZyhhY3RpdmVGb3JtQ29uZmlnOiBhbnkpIHtcbiAgICB0aGlzLmFjdGl2ZUZvcm1Db25maWcgPSBhY3RpdmVGb3JtQ29uZmlnO1xuICB9XG5cbiAgYWN0aXZlRm9ybUZpZWxkczogYW55W107XG4gIEBsb2dNZXRob2RcbiAgc2V0QWN0aXZlRm9ybUZpZWxkcyhhY3RpdmVGb3JtRmllbGRzOiBhbnlbXSkge1xuICAgIHRoaXMuYWN0aXZlRm9ybUZpZWxkcyA9IGFjdGl2ZUZvcm1GaWVsZHM7XG4gIH1cblxuICBhY3RpdmVGb3JtRGF0YTogYW55O1xuICBAbG9nTWV0aG9kXG4gIHNldEFjdGl2ZUZvcm1EYXRhKGFjdGl2ZUZvcm1EYXRhOiBhbnkpIHtcbiAgICB0aGlzLmFjdGl2ZUZvcm1EYXRhID0gYWN0aXZlRm9ybURhdGE7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgYXN5bmMgZmV0Y2hGb3JtQ29uZmlnKHVybDogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHsgbWV0aG9kOiBcIkdFVFwiIH0pO1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGZpbmRBY3RpdmVGb3JtQ29uZmlnKGZvcm1zTGlzdDogYW55W10pOiBhbnkge1xuICAgIGNvbnN0IGFjdGl2ZUZvcm1Db25maWcgPSBmb3Jtc0xpc3QuZmluZCgoZm9ybSkgPT4ge1xuICAgICAgcmV0dXJuIGZvcm0uc3RhdHVzID09PSBcImVkaXRhYmxlXCIgJiYgIWZvcm0uZGlzYWJsZWQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIGFjdGl2ZUZvcm1Db25maWc7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGZpbmRDb21wbGV0ZWRGb3Jtc0xpc3QoYWxsRm9ybXNEYXRhOiBhbnkpOiBzdHJpbmdbXSB7XG4gICAgbGV0IGZvcm1zTGlzdENvbXBsZXRlZDogc3RyaW5nW10gPSBbXTtcblxuICAgIE9iamVjdC5rZXlzKGFsbEZvcm1zRGF0YSkubWFwKChmb3JtS2V5KSA9PiB7XG4gICAgICBmb3Jtc0xpc3RDb21wbGV0ZWQucHVzaChmb3JtS2V5KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBmb3Jtc0xpc3RDb21wbGV0ZWQ7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIG1hcmtGb3JtSW5Gb3Jtc0xpc3RBc0NvbXBsZXRlZChcbiAgICBmb3Jtc0xpc3Q6IGFueVtdLFxuICAgIGZvcm1zTGlzdENvbXBsZXRlZDogc3RyaW5nW11cbiAgKTogYW55W10ge1xuICAgIGZvciAobGV0IGZvcm0gb2YgZm9ybXNMaXN0KSB7XG4gICAgICBpZiAoZm9ybXNMaXN0Q29tcGxldGVkLmluY2x1ZGVzKGZvcm0ua2V5KSkge1xuICAgICAgICBmb3JtID0gc2V0VmFsdWVUb09iamVjdFBhdGgoZm9ybSwgXCJzdGF0dXNcIiwgXCJjb21wbGV0ZWRcIik7XG4gICAgICAgIGZvcm0gPSBzZXRWYWx1ZVRvT2JqZWN0UGF0aChmb3JtLCBcImRpc2FibGVkXCIsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZm9ybXNMaXN0O1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBtYXJrRm9ybUluRm9ybXNMaXN0QXNEaXNhYmxlZChcbiAgICBmb3Jtc0xpc3Q6IGFueVtdLFxuICAgIGZvcm1zTGlzdENvbXBsZXRlZDogc3RyaW5nW11cbiAgKTogYW55W10ge1xuICAgIGZvciAobGV0IGZvcm0gb2YgZm9ybXNMaXN0KSB7XG4gICAgICBpZiAoZm9ybS5zdGF0dXMgIT09IFwiY29tcGxldGVkXCIpIHtcbiAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZvcm0sIFwiZGVwZW5kZW50T25cIikpIHtcbiAgICAgICAgICBjb25zdCBpc0RlcGVuZGVudCA9IGZvcm0uZGVwZW5kZW50T24uZXZlcnkoKHI6IHN0cmluZykgPT5cbiAgICAgICAgICAgIGZvcm1zTGlzdENvbXBsZXRlZC5pbmNsdWRlcyhyKVxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGlzRGVwZW5kZW50KSB7XG4gICAgICAgICAgICBmb3JtID0gc2V0VmFsdWVUb09iamVjdFBhdGgoZm9ybSwgXCJzdGF0dXNcIiwgXCJlZGl0YWJsZVwiKTtcbiAgICAgICAgICAgIGZvcm0gPSBzZXRWYWx1ZVRvT2JqZWN0UGF0aChmb3JtLCBcImRpc2FibGVkXCIsIGZhbHNlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybSA9IHNldFZhbHVlVG9PYmplY3RQYXRoKGZvcm0sIFwic3RhdHVzXCIsIFwibG9ja2VkXCIpO1xuICAgICAgICAgICAgZm9ybSA9IHNldFZhbHVlVG9PYmplY3RQYXRoKGZvcm0sIFwiZGlzYWJsZWRcIiwgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZvcm0gPSBzZXRWYWx1ZVRvT2JqZWN0UGF0aChmb3JtLCBcImRlcGVuZGVudE9uXCIsIFtdKTtcbiAgICAgICAgICBmb3JtID0gc2V0VmFsdWVUb09iamVjdFBhdGgoZm9ybSwgXCJzdGF0dXNcIiwgXCJlZGl0YWJsZVwiKTtcbiAgICAgICAgICBmb3JtID0gc2V0VmFsdWVUb09iamVjdFBhdGgoZm9ybSwgXCJkaXNhYmxlZFwiLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZm9ybXNMaXN0O1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBhc3NpZ25TZXF1ZW5jZU5vVG9Gb3JtKGZvcm1zTGlzdDogYW55W10pOiBhbnlbXSB7XG4gICAgbGV0IHNlcXVlbmNlTm8gPSAxO1xuICAgIGZvciAobGV0IGZvcm0gb2YgZm9ybXNMaXN0KSB7XG4gICAgICBmb3JtLnNlcXVlbmNlTm8gPSBzZXF1ZW5jZU5vKys7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcm1zTGlzdDtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgZmlsdGVyQWxsRm9ybXNEYXRhKGFsbEZvcm1zRGF0YTogYW55LCBmb3Jtc0xpc3Q6IGFueVtdKTogYW55IHtcbiAgICBsZXQgY3VycmVudFVzZXJGb3JtQWxsRm9ybXNEYXRhOiBhbnkgPSB7fTtcblxuICAgIGZvciAobGV0IGZvcm0gb2YgZm9ybXNMaXN0KSB7XG4gICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoYWxsRm9ybXNEYXRhLCBmb3JtLmtleSkpIHtcbiAgICAgICAgY3VycmVudFVzZXJGb3JtQWxsRm9ybXNEYXRhID0ge1xuICAgICAgICAgIC4uLmN1cnJlbnRVc2VyRm9ybUFsbEZvcm1zRGF0YSxcbiAgICAgICAgICBbZm9ybS5rZXldOiBhbGxGb3Jtc0RhdGFbZm9ybS5rZXldXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGN1cnJlbnRVc2VyRm9ybUFsbEZvcm1zRGF0YTtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgdXBkYXRlRm9ybXNMaXN0KCkge1xuICAgIGxldCBmb3Jtc0xpc3Q6IGFueVtdID0gdGhpcy5mb3Jtc0xpc3Q7XG4gICAgbGV0IGZvcm1zTGlzdENvbXBsZXRlZDogc3RyaW5nW107XG4gICAgbGV0IGFjdGl2ZUZvcm1Db25maWc6IGFueTtcblxuICAgIGZvcm1zTGlzdCA9IHRoaXMuYXNzaWduU2VxdWVuY2VOb1RvRm9ybShmb3Jtc0xpc3QpO1xuXG4gICAgLyoqXG4gICAgICogQmVsb3cgY29kZSBpZGVudGlmaWVzIHRoZSBhbGxGb3Jtc0RhdGEgcmVxdWlyZWQgZm9yIHRoZSBjdXJyZW50IFVzZXIgRm9ybS5cbiAgICAgKiBXaHk/IEJlY2F1c2UgYWxsRm9ybXNEYXRhIHdpbGwgYWN0dWFsbHkgY29udGFpbiB0aGUgd2hvbGUgam91cm5leSdzIGFsbFxuICAgICAqIHBvc3NpYmxlIFVzZXIgRm9ybSBzdGVwcy4gU28sIGl0IGlzIGltcG9ydGFudCB0byBzZXQgdGhlIGZvcm0gZGF0YSB3aGljaFxuICAgICAqIHRoaXMgcGFydGljdWxhciBVc2VyIEZvcm0gb25seSBoYXMgdG8gTE9DQUwgTUVUSE9EIFZhcmlhYmxlLlxuICAgICAqL1xuICAgIGNvbnN0IGN1cnJlbnRVc2VyRm9ybUFsbEZvcm1zRGF0YSA9IHRoaXMuZmlsdGVyQWxsRm9ybXNEYXRhKFxuICAgICAgdGhpcy5hbGxGb3Jtc0RhdGEsXG4gICAgICBmb3Jtc0xpc3RcbiAgICApO1xuXG4gICAgZm9ybXNMaXN0Q29tcGxldGVkID0gdGhpcy5maW5kQ29tcGxldGVkRm9ybXNMaXN0KFxuICAgICAgY3VycmVudFVzZXJGb3JtQWxsRm9ybXNEYXRhXG4gICAgKTtcblxuICAgIGZvcm1zTGlzdCA9IHRoaXMubWFya0Zvcm1JbkZvcm1zTGlzdEFzQ29tcGxldGVkKFxuICAgICAgZm9ybXNMaXN0LFxuICAgICAgZm9ybXNMaXN0Q29tcGxldGVkXG4gICAgKTtcblxuICAgIGZvcm1zTGlzdCA9IHRoaXMubWFya0Zvcm1JbkZvcm1zTGlzdEFzRGlzYWJsZWQoXG4gICAgICBmb3Jtc0xpc3QsXG4gICAgICBmb3Jtc0xpc3RDb21wbGV0ZWRcbiAgICApO1xuXG4gICAgaWYgKGZvcm1zTGlzdC5sZW5ndGggIT09IGZvcm1zTGlzdENvbXBsZXRlZC5sZW5ndGgpIHtcbiAgICAgIGFjdGl2ZUZvcm1Db25maWcgPSB0aGlzLmZpbmRBY3RpdmVGb3JtQ29uZmlnKGZvcm1zTGlzdCk7XG5cbiAgICAgIHRoaXMuc2V0QWN0aXZlRm9ybUNvbmZpZyhhY3RpdmVGb3JtQ29uZmlnKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldEZvcm1zTGlzdChmb3Jtc0xpc3QpO1xuICAgIHRoaXMuc2V0Rm9ybXNMaXN0Q29tcGxldGVkKGZvcm1zTGlzdENvbXBsZXRlZCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class KwikIDRendererService {
|
|
3
|
-
isMobileView: boolean;
|
|
4
|
-
setIsMobileView(isMobileView: boolean): void;
|
|
5
|
-
formsList: any[];
|
|
6
|
-
setFormsList(formsList: any[]): void;
|
|
7
|
-
formsListCompleted: string[];
|
|
8
|
-
setFormsListCompleted(formsListCompleted: any[]): void;
|
|
9
|
-
allFormsData: any;
|
|
10
|
-
setAllFormsData(allFormsData: any[]): void;
|
|
11
|
-
activeFormConfig: any;
|
|
12
|
-
setActiveFormConfig(activeFormConfig: any): void;
|
|
13
|
-
activeFormFields: any[];
|
|
14
|
-
setActiveFormFields(activeFormFields: any[]): void;
|
|
15
|
-
activeFormData: any;
|
|
16
|
-
setActiveFormData(activeFormData: any): void;
|
|
17
|
-
constructor();
|
|
18
|
-
fetchFormConfig(url: string): Promise<any>;
|
|
19
|
-
findActiveFormConfig(formsList: any[]): any;
|
|
20
|
-
findCompletedFormsList(allFormsData: any): string[];
|
|
21
|
-
markFormInFormsListAsCompleted(formsList: any[], formsListCompleted: string[]): any[];
|
|
22
|
-
markFormInFormsListAsDisabled(formsList: any[], formsListCompleted: string[]): any[];
|
|
23
|
-
assignSequenceNoToForm(formsList: any[]): any[];
|
|
24
|
-
filterAllFormsData(allFormsData: any, formsList: any[]): any;
|
|
25
|
-
updateFormsList(): void;
|
|
26
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<KwikIDRendererService, never>;
|
|
27
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<KwikIDRendererService>;
|
|
28
|
-
}
|