kwikid-forms 0.0.2 → 0.0.4
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 +479 -312
- package/bundles/kwikid-forms.umd.js.map +1 -1
- package/esm2015/lib/renderer/form-view/definitions/common/form-view.common.enum.definitions.js +77 -23
- package/esm2015/lib/renderer/form-view/definitions/common/form-view.common.type.definitions.js +1 -1
- package/esm2015/lib/renderer/form-view/form-view.component.js +18 -36
- package/esm2015/lib/renderer/form-view/form-view.service.js +3 -2
- package/esm2015/lib/renderer/form-view/helpers/form-view.fields.helper.js +66 -6
- package/esm2015/lib/renderer/form-view/helpers/form-view.validations.helper.js +8 -11
- package/esm2015/lib/renderer/forms-list/forms-list.component.js +29 -5
- package/esm2015/lib/renderer/renderer.component.js +11 -4
- package/esm2015/lib/renderer/renderer.config-converter.helper.js +55 -22
- package/fesm2015/kwikid-forms.js +406 -252
- package/fesm2015/kwikid-forms.js.map +1 -1
- package/lib/renderer/form-view/definitions/common/form-view.common.enum.definitions.d.ts +78 -24
- package/lib/renderer/form-view/definitions/common/form-view.common.type.definitions.d.ts +1 -1
- package/lib/renderer/form-view/helpers/form-view.fields.helper.d.ts +3 -0
- package/lib/renderer/forms-list/forms-list.component.d.ts +5 -1
- package/lib/renderer/renderer.component.d.ts +2 -1
- package/package.json +1 -1
package/fesm2015/kwikid-forms.js
CHANGED
|
@@ -176,41 +176,95 @@ var EApiStatusType;
|
|
|
176
176
|
var EPatternKey;
|
|
177
177
|
(function (EPatternKey) {
|
|
178
178
|
EPatternKey["CUSTOM"] = "CUSTOM";
|
|
179
|
-
EPatternKey["
|
|
180
|
-
EPatternKey["IS_AADHAAR_NUMBER"] = "IS_AADHAAR_NUMBER";
|
|
181
|
-
EPatternKey["IS_EMPTY"] = "IS_EMPTY";
|
|
182
|
-
EPatternKey["IS_NOT_EMPTY"] = "IS_NOT_EMPTY";
|
|
183
|
-
EPatternKey["IS_EMAIL"] = "IS_EMAIL";
|
|
184
|
-
EPatternKey["IS_NUMBER"] = "IS_NUMBER";
|
|
185
|
-
EPatternKey["IS_INTEGER"] = "IS_INTEGER";
|
|
186
|
-
EPatternKey["IS_URL"] = "IS_URL";
|
|
179
|
+
EPatternKey["IS_ADDRESS"] = "IS_ADDRESS";
|
|
187
180
|
EPatternKey["IS_ALPHA"] = "IS_ALPHA";
|
|
188
181
|
EPatternKey["IS_ALPHANUMERIC"] = "IS_ALPHANUMERIC";
|
|
189
|
-
EPatternKey["
|
|
190
|
-
EPatternKey["
|
|
182
|
+
EPatternKey["IS_BOOLEAN"] = "IS_BOOLEAN";
|
|
183
|
+
EPatternKey["IS_EMAIL"] = "IS_EMAIL";
|
|
184
|
+
EPatternKey["IS_EMPTY"] = "IS_EMPTY";
|
|
185
|
+
EPatternKey["IS_FALSE"] = "IS_FALSE";
|
|
186
|
+
EPatternKey["IS_HTML"] = "IS_HTML";
|
|
187
|
+
EPatternKey["IS_INTEGER"] = "IS_INTEGER";
|
|
191
188
|
EPatternKey["IS_IP_ADDRESS"] = "IS_IP_ADDRESS";
|
|
192
189
|
EPatternKey["IS_JSON"] = "IS_JSON";
|
|
193
|
-
EPatternKey["
|
|
190
|
+
EPatternKey["IS_LOWERCASE"] = "IS_LOWERCASE";
|
|
191
|
+
EPatternKey["IS_NOT_EMPTY"] = "IS_NOT_EMPTY";
|
|
192
|
+
EPatternKey["IS_NUMBER"] = "IS_NUMBER";
|
|
194
193
|
EPatternKey["IS_TRUE"] = "IS_TRUE";
|
|
194
|
+
EPatternKey["IS_UPPERCASE"] = "IS_UPPERCASE";
|
|
195
|
+
EPatternKey["IS_URL"] = "IS_URL";
|
|
196
|
+
EPatternKey["IS_AADHAAR_NUMBER"] = "IS_AADHAAR_NUMBER";
|
|
197
|
+
EPatternKey["IS_BANK_ACCOUNT_NO"] = "IS_BANK_ACCOUNT_NO";
|
|
198
|
+
EPatternKey["IS_BANK_SWIFT_CODE"] = "IS_BANK_SWIFT_CODE";
|
|
199
|
+
EPatternKey["IS_BIRTH_CERTIFICATE_NO"] = "IS_BIRTH_CERTIFICATE_NO";
|
|
200
|
+
EPatternKey["IS_CHEQUE_NO"] = "IS_CHEQUE_NO";
|
|
201
|
+
EPatternKey["IS_CIN"] = "IS_CIN";
|
|
202
|
+
EPatternKey["IS_CREDIT_CARD_NO"] = "IS_CREDIT_CARD_NO";
|
|
203
|
+
EPatternKey["IS_DRIVING_LICENSE"] = "IS_DRIVING_LICENSE";
|
|
204
|
+
EPatternKey["IS_GSTIN"] = "IS_GSTIN";
|
|
205
|
+
EPatternKey["IS_IFSC_NO"] = "IS_IFSC_NO";
|
|
206
|
+
EPatternKey["IS_MICR_CODE"] = "IS_MICR_CODE";
|
|
207
|
+
EPatternKey["IS_MOBILE_NO"] = "IS_MOBILE_NO";
|
|
208
|
+
EPatternKey["IS_MOBILE_NO_IN"] = "IS_MOBILE_NO_IN";
|
|
209
|
+
EPatternKey["IS_NEFT_OR_RTGS_NO"] = "IS_NEFT_OR_RTGS_NO";
|
|
210
|
+
EPatternKey["IS_PAN_NUMBER"] = "IS_PAN_NUMBER";
|
|
211
|
+
EPatternKey["IS_PASSPORT"] = "IS_PASSPORT";
|
|
212
|
+
EPatternKey["IS_PHONE_NO"] = "IS_PHONE_NO";
|
|
213
|
+
EPatternKey["IS_PINCODE"] = "IS_PINCODE";
|
|
214
|
+
EPatternKey["IS_PURCHASE_ORDER_NO"] = "IS_PURCHASE_ORDER_NO";
|
|
215
|
+
EPatternKey["IS_RATION_CARD_NO"] = "IS_RATION_CARD_NO";
|
|
216
|
+
EPatternKey["IS_SERVICE_TAX_NO"] = "IS_SERVICE_TAX_NO";
|
|
217
|
+
EPatternKey["IS_SOCIAL_SECURITY_NO"] = "IS_SOCIAL_SECURITY_NO";
|
|
218
|
+
EPatternKey["IS_UPI_TRANSACTION_REFERENCE_NO"] = "IS_UPI_TRANSACTION_REFERENCE_NO";
|
|
219
|
+
EPatternKey["IS_VAT_TIN_NO"] = "IS_VAT_TIN_NO";
|
|
220
|
+
EPatternKey["IS_VEHICLE_REGISTRATION_NO"] = "IS_VEHICLE_REGISTRATION_NO";
|
|
221
|
+
EPatternKey["IS_VOTER_ID"] = "IS_VOTER_ID";
|
|
195
222
|
})(EPatternKey || (EPatternKey = {}));
|
|
196
223
|
var EPattern;
|
|
197
224
|
(function (EPattern) {
|
|
198
|
-
EPattern["IS_EMPTY"] = "^$";
|
|
199
|
-
EPattern["IS_PAN_NUMBER"] = "^[A-Z]{5}[[0-9]{4}[A-Z]{1}$";
|
|
200
|
-
EPattern["IS_AADHAAR_NUMBER"] = "^[0-9]{12}$";
|
|
201
|
-
EPattern["IS_NOT_EMPTY"] = "^.+$";
|
|
202
|
-
EPattern["IS_EMAIL"] = "^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$";
|
|
203
|
-
EPattern["IS_NUMBER"] = "^[+-]?d+(.d+)?$";
|
|
204
|
-
EPattern["IS_INTEGER"] = "^[+-]?d+$";
|
|
205
|
-
EPattern["IS_URL"] = "^(?:http(s)?://)?[w.-]+(?:.[w.-]+)+[w-._~:/?#[]@!$&'()*+,;=.]+$";
|
|
206
225
|
EPattern["IS_ALPHA"] = "^[a-zA-Z]+$";
|
|
226
|
+
EPattern["IS_ADDRESS"] = "^(\\w*\\s*[#-,/.()&]*)+";
|
|
207
227
|
EPattern["IS_ALPHANUMERIC"] = "^[a-zA-Z0-9]+$";
|
|
208
|
-
EPattern["
|
|
209
|
-
EPattern["
|
|
228
|
+
EPattern["IS_BOOLEAN"] = "(true|false)";
|
|
229
|
+
EPattern["IS_EMAIL"] = "^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$";
|
|
230
|
+
EPattern["IS_EMPTY"] = "^$";
|
|
231
|
+
EPattern["IS_FALSE"] = "false";
|
|
232
|
+
EPattern["IS_HTML"] = "^<([a-z]+)([^<]+)(?:>(.)</\\1>|\\s+/>)$";
|
|
233
|
+
EPattern["IS_INTEGER"] = "^[+-]?d+$";
|
|
210
234
|
EPattern["IS_IP_ADDRESS"] = "^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$";
|
|
211
235
|
EPattern["IS_JSON"] = "^\\s*({(.|\\s)}|[(.|\\s)])\\s*$";
|
|
212
|
-
EPattern["
|
|
236
|
+
EPattern["IS_LOWERCASE"] = "^[a-z]+$";
|
|
237
|
+
EPattern["IS_NOT_EMPTY"] = "^.+$";
|
|
238
|
+
EPattern["IS_NUMBER"] = "^[+-]?d+(.d+)?$";
|
|
213
239
|
EPattern["IS_TRUE"] = "true";
|
|
240
|
+
EPattern["IS_UPPERCASE"] = "^[A-Z]+$";
|
|
241
|
+
EPattern["IS_URL"] = "^(?:http(s)?://)?[w.-]+(?:.[w.-]+)+[w-._~:/?#[]@!$&'()*+,;=.]+$";
|
|
242
|
+
EPattern["IS_AADHAAR_NUMBER"] = "^[0-9]{12}$";
|
|
243
|
+
EPattern["IS_BANK_ACCOUNT_NO"] = "^[0-9]{9,18}$";
|
|
244
|
+
EPattern["IS_BANK_SWIFT_CODE"] = "^[A-Z]{4}[A-Z]{2}[0-9A-Z]{2}[0-9A-Z]{3}$";
|
|
245
|
+
EPattern["IS_BIRTH_CERTIFICATE_NO"] = "^[A-Z]{2}[0-9]{6}[A-Z]{1}[0-9]{2}$";
|
|
246
|
+
EPattern["IS_CHEQUE_NO"] = "^[0-9]{6,14}$";
|
|
247
|
+
EPattern["IS_CIN"] = "^[A-Z]{3}[0-9]{5}[0-9A-Z]{3}$";
|
|
248
|
+
EPattern["IS_CREDIT_CARD_NO"] = "^[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}$";
|
|
249
|
+
EPattern["IS_DRIVING_LICENSE"] = "^[A-Z]{2}[0-9]{2}((19|20)[0-9][0-9])[0-9]{7}$";
|
|
250
|
+
EPattern["IS_GSTIN"] = "^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[1-9A-Z]{1}Z[0-9A-Z]{1}$";
|
|
251
|
+
EPattern["IS_IFSC_NO"] = "^[A-Z]{4}[0][A-Z0-9]{6}$";
|
|
252
|
+
EPattern["IS_MICR_CODE"] = "^[0-9]{9}$";
|
|
253
|
+
EPattern["IS_MOBILE_NO"] = "^[6-9]\\d{9}$";
|
|
254
|
+
EPattern["IS_MOBILE_NO_IN"] = "^(\\+91)[6-9]\\d{9}$";
|
|
255
|
+
EPattern["IS_NEFT_OR_RTGS_NO"] = "^[A-Z]{4}[0-9]{7}$";
|
|
256
|
+
EPattern["IS_PAN_NUMBER"] = "^[A-Z]{5}[[0-9]{4}[A-Z]{1}$";
|
|
257
|
+
EPattern["IS_PASSPORT"] = "^[A-PR-WYa-pr-wy][1-9]\\d\\s?\\d{4}[1-9]$";
|
|
258
|
+
EPattern["IS_PHONE_NO"] = "^[6-9]\\d{9}$";
|
|
259
|
+
EPattern["IS_PINCODE"] = "^[1-9][0-9]{5}$";
|
|
260
|
+
EPattern["IS_PURCHASE_ORDER_NO"] = "^[0-9]{1,5}$";
|
|
261
|
+
EPattern["IS_RATION_CARD_NO"] = "^[A-Z]{3}[0-9]{7}$";
|
|
262
|
+
EPattern["IS_SERVICE_TAX_NO"] = "^[A-Z]{5}[0-9]{4}[A-Z]{1}$";
|
|
263
|
+
EPattern["IS_SOCIAL_SECURITY_NO"] = "^[0-9]{3}-[0-9]{2}-[0-9]{4}$";
|
|
264
|
+
EPattern["IS_UPI_TRANSACTION_REFERENCE_NO"] = "^[a-zA-Z0-9]{3,128}@[a-z]{3,9}$";
|
|
265
|
+
EPattern["IS_VAT_TIN_NO"] = "^[0-9]{11}$";
|
|
266
|
+
EPattern["IS_VEHICLE_REGISTRATION_NO"] = "^[A-Z]{2}[0-9]{2}((19|20)[0-9][0-9])[0-9]{6}$";
|
|
267
|
+
EPattern["IS_VOTER_ID"] = "^[A-Z]{3}[0-9]{7}$";
|
|
214
268
|
})(EPattern || (EPattern = {}));
|
|
215
269
|
var EMessageType;
|
|
216
270
|
(function (EMessageType) {
|
|
@@ -220,6 +274,21 @@ var EMessageType;
|
|
|
220
274
|
EMessageType["WARNING"] = "warning";
|
|
221
275
|
})(EMessageType || (EMessageType = {}));
|
|
222
276
|
|
|
277
|
+
var EFieldType;
|
|
278
|
+
(function (EFieldType) {
|
|
279
|
+
EFieldType["TITLE"] = "title";
|
|
280
|
+
EFieldType["TEXT"] = "text";
|
|
281
|
+
EFieldType["CHECKBOX"] = "checkbox";
|
|
282
|
+
EFieldType["NUMBER"] = "number";
|
|
283
|
+
EFieldType["DATE"] = "date";
|
|
284
|
+
EFieldType["PHONE"] = "phone";
|
|
285
|
+
EFieldType["RADIO"] = "radio";
|
|
286
|
+
EFieldType["DROPDOWN_WITH_SEARCH"] = "dropdown-with-search";
|
|
287
|
+
EFieldType["API_CALL"] = "api-call";
|
|
288
|
+
EFieldType["OTP"] = "otp";
|
|
289
|
+
EFieldType["AADHAAR_NUMBER"] = "aadhaar-number";
|
|
290
|
+
})(EFieldType || (EFieldType = {}));
|
|
291
|
+
|
|
223
292
|
/**
|
|
224
293
|
* A function that logs the execution of a method.
|
|
225
294
|
* @param {any} target - The object the method belongs to.
|
|
@@ -362,21 +431,6 @@ const isSingleForm = (formsList) => {
|
|
|
362
431
|
return formsList.length === 1;
|
|
363
432
|
};
|
|
364
433
|
|
|
365
|
-
var EFieldType;
|
|
366
|
-
(function (EFieldType) {
|
|
367
|
-
EFieldType["TITLE"] = "title";
|
|
368
|
-
EFieldType["TEXT"] = "text";
|
|
369
|
-
EFieldType["CHECKBOX"] = "checkbox";
|
|
370
|
-
EFieldType["NUMBER"] = "number";
|
|
371
|
-
EFieldType["DATE"] = "date";
|
|
372
|
-
EFieldType["PHONE"] = "phone";
|
|
373
|
-
EFieldType["RADIO"] = "radio";
|
|
374
|
-
EFieldType["DROPDOWN_WITH_SEARCH"] = "dropdown-with-search";
|
|
375
|
-
EFieldType["API_CALL"] = "api-call";
|
|
376
|
-
EFieldType["OTP"] = "otp";
|
|
377
|
-
EFieldType["AADHAAR_NUMBER"] = "aadhaar-number";
|
|
378
|
-
})(EFieldType || (EFieldType = {}));
|
|
379
|
-
|
|
380
434
|
const hasKey$1 = (object, key) => {
|
|
381
435
|
return object.hasOwnProperty(key);
|
|
382
436
|
};
|
|
@@ -879,6 +933,208 @@ __decorate([
|
|
|
879
933
|
log
|
|
880
934
|
], Defaults.prototype, "getDefaultValue", null);
|
|
881
935
|
|
|
936
|
+
const findFieldFromKey = (fields, key) => {
|
|
937
|
+
const field = fields.find((field) => {
|
|
938
|
+
if (field.key === key) {
|
|
939
|
+
return field;
|
|
940
|
+
}
|
|
941
|
+
});
|
|
942
|
+
return field;
|
|
943
|
+
};
|
|
944
|
+
const findFieldIndexFromKey = (fields, key) => {
|
|
945
|
+
let fieldIndex;
|
|
946
|
+
fieldIndex = fields.findIndex((_) => {
|
|
947
|
+
return key === _.key;
|
|
948
|
+
});
|
|
949
|
+
return fieldIndex;
|
|
950
|
+
};
|
|
951
|
+
const getSearchTextOptionsFromRemoteFile = (field, childField, formGroup) => __awaiter(void 0, void 0, void 0, function* () {
|
|
952
|
+
const parentFieldValue = formGroup.controls[field.key].value;
|
|
953
|
+
// Determine the URL of the remote file to fetch
|
|
954
|
+
let fileUrl;
|
|
955
|
+
if (childField.regexToGetJsonRemoteUrlKey) {
|
|
956
|
+
const fileKey = parentFieldValue.match(childField.regexToGetJsonRemoteUrlKey)[0];
|
|
957
|
+
fileUrl = childField.jsonRemoteUrlMapping[fileKey];
|
|
958
|
+
}
|
|
959
|
+
else {
|
|
960
|
+
fileUrl = childField.fileUrl;
|
|
961
|
+
}
|
|
962
|
+
// Return early if there is no file URL
|
|
963
|
+
if (!fileUrl)
|
|
964
|
+
return;
|
|
965
|
+
// Fetch the remote file and parse its JSON data
|
|
966
|
+
const response = yield fetch(fileUrl);
|
|
967
|
+
const data = yield response.json();
|
|
968
|
+
// Return the data for the given parent field value
|
|
969
|
+
return data[parentFieldValue];
|
|
970
|
+
});
|
|
971
|
+
const getSearchTextOptionsFromFieldConfig = (field, childField, formGroup) => {
|
|
972
|
+
let options;
|
|
973
|
+
const fieldValue = formGroup.controls[field.key].value;
|
|
974
|
+
if (isNotEmpty(childField["json"])) {
|
|
975
|
+
options = childField["json"][fieldValue];
|
|
976
|
+
}
|
|
977
|
+
return options;
|
|
978
|
+
};
|
|
979
|
+
const formatSearchTextOptions = (options) => {
|
|
980
|
+
return options.map(({ title }) => title);
|
|
981
|
+
};
|
|
982
|
+
const formatDateToStandardFormat = (date) => {
|
|
983
|
+
let formattedDate;
|
|
984
|
+
let year = date.year;
|
|
985
|
+
let month = date.month;
|
|
986
|
+
let day = date.day;
|
|
987
|
+
formattedDate = `${day}-${month + 1}-${year}`;
|
|
988
|
+
return formattedDate;
|
|
989
|
+
};
|
|
990
|
+
function highlightFieldError(field, error) {
|
|
991
|
+
field.invalid = error;
|
|
992
|
+
field.focus = error;
|
|
993
|
+
// if (!error) {
|
|
994
|
+
// field["messages"] = field["messages"].filter(function (fieldMessage: {
|
|
995
|
+
// type: string;
|
|
996
|
+
// message: string;
|
|
997
|
+
// }) {
|
|
998
|
+
// return fieldMessage.type === "error";
|
|
999
|
+
// });
|
|
1000
|
+
// }
|
|
1001
|
+
return field;
|
|
1002
|
+
}
|
|
1003
|
+
const addMessage = (field, message) => {
|
|
1004
|
+
const isDuplicateMessage = (messages, message) => {
|
|
1005
|
+
return messages.some((fieldMessage) => {
|
|
1006
|
+
return (fieldMessage.type === message.type &&
|
|
1007
|
+
fieldMessage.message === message.message);
|
|
1008
|
+
});
|
|
1009
|
+
};
|
|
1010
|
+
field["messages"] = [];
|
|
1011
|
+
if (hasKey$1(field, "messages")) {
|
|
1012
|
+
if (!isDuplicateMessage(field["messages"], message)) {
|
|
1013
|
+
field["messages"].push({
|
|
1014
|
+
type: message.type,
|
|
1015
|
+
message: message.message
|
|
1016
|
+
});
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
1019
|
+
else {
|
|
1020
|
+
field["messages"] = [{ type: message.type, message: message.message }];
|
|
1021
|
+
}
|
|
1022
|
+
return field;
|
|
1023
|
+
};
|
|
1024
|
+
const removeMessage = (field, message) => {
|
|
1025
|
+
field["messages"] = field["messages"].filter(function (fieldMessage) {
|
|
1026
|
+
return fieldMessage.type !== message.type;
|
|
1027
|
+
});
|
|
1028
|
+
return field;
|
|
1029
|
+
};
|
|
1030
|
+
function setFieldError(fields, errors, key, error) {
|
|
1031
|
+
const fieldIndex = fields.findIndex((field) => {
|
|
1032
|
+
return field.key === key;
|
|
1033
|
+
});
|
|
1034
|
+
const setErrorMessages = (field, errors) => {
|
|
1035
|
+
const getErrorMessage = (fieldLabel, errorType) => {
|
|
1036
|
+
let errorMessage = "";
|
|
1037
|
+
switch (errorType) {
|
|
1038
|
+
case "required":
|
|
1039
|
+
errorMessage = `${fieldLabel} is required!`;
|
|
1040
|
+
break;
|
|
1041
|
+
case "email":
|
|
1042
|
+
errorMessage = `${fieldLabel} has wrong email format!`;
|
|
1043
|
+
break;
|
|
1044
|
+
case "min":
|
|
1045
|
+
errorMessage = `${fieldLabel} has wrong value! Minimum value: ${field.validators.min}`;
|
|
1046
|
+
break;
|
|
1047
|
+
case "minlength":
|
|
1048
|
+
errorMessage = `${fieldLabel} has wrong length! Required minimum length: ${field.validators.minLength}`;
|
|
1049
|
+
break;
|
|
1050
|
+
case "max":
|
|
1051
|
+
errorMessage = `${fieldLabel} has wrong value! Maximum value: ${field.validators.maxLength}`;
|
|
1052
|
+
break;
|
|
1053
|
+
case "maxlength":
|
|
1054
|
+
errorMessage = `${fieldLabel} has wrong length! Required maximum length: ${field.validators.maxLength}`;
|
|
1055
|
+
break;
|
|
1056
|
+
case "areEqual":
|
|
1057
|
+
errorMessage = `${fieldLabel} must be equal!`;
|
|
1058
|
+
break;
|
|
1059
|
+
case "pattern":
|
|
1060
|
+
errorMessage = `${fieldLabel} is in incorrect format!`;
|
|
1061
|
+
break;
|
|
1062
|
+
default:
|
|
1063
|
+
errorMessage = `${fieldLabel}: ${errorType}`;
|
|
1064
|
+
break;
|
|
1065
|
+
}
|
|
1066
|
+
return errorMessage;
|
|
1067
|
+
};
|
|
1068
|
+
Object.keys(errors).forEach((error) => {
|
|
1069
|
+
field = addMessage(field, {
|
|
1070
|
+
type: "error",
|
|
1071
|
+
message: getErrorMessage(field.label, error)
|
|
1072
|
+
});
|
|
1073
|
+
});
|
|
1074
|
+
return field;
|
|
1075
|
+
};
|
|
1076
|
+
if (error) {
|
|
1077
|
+
fields[fieldIndex] = setErrorMessages(fields[fieldIndex], errors);
|
|
1078
|
+
}
|
|
1079
|
+
else {
|
|
1080
|
+
fields[fieldIndex]["messages"] = [];
|
|
1081
|
+
}
|
|
1082
|
+
fields[fieldIndex] = highlightFieldError(fields[fieldIndex], error);
|
|
1083
|
+
return fields;
|
|
1084
|
+
}
|
|
1085
|
+
const convertValueFromKwikUIFormatToBasicFormat = (type, value) => {
|
|
1086
|
+
let convertedValue = value;
|
|
1087
|
+
switch (type) {
|
|
1088
|
+
case EFieldType.DATE:
|
|
1089
|
+
const convertDateStringToTuiDayFormat = (date) => {
|
|
1090
|
+
const splitDate = date.split("-");
|
|
1091
|
+
const tuiDay = new TuiDay(Number(splitDate[2]), // Year
|
|
1092
|
+
Number(splitDate[1]) - 1, // Month, Why '-1' => Because Taiga-UI Required It, So...
|
|
1093
|
+
Number(splitDate[0]) // Day
|
|
1094
|
+
);
|
|
1095
|
+
return tuiDay;
|
|
1096
|
+
};
|
|
1097
|
+
convertedValue = convertDateStringToTuiDayFormat(value);
|
|
1098
|
+
break;
|
|
1099
|
+
default:
|
|
1100
|
+
break;
|
|
1101
|
+
}
|
|
1102
|
+
return convertedValue;
|
|
1103
|
+
};
|
|
1104
|
+
const convertValueFromBasicFormatToKwikUIFormat = (field, value) => {
|
|
1105
|
+
let convertedValue = value;
|
|
1106
|
+
switch (field.type) {
|
|
1107
|
+
case EFieldType.RADIO:
|
|
1108
|
+
if (hasKey$1(value, "label")) {
|
|
1109
|
+
convertedValue = value.label;
|
|
1110
|
+
}
|
|
1111
|
+
else {
|
|
1112
|
+
convertedValue = "";
|
|
1113
|
+
}
|
|
1114
|
+
break;
|
|
1115
|
+
case EFieldType.DATE:
|
|
1116
|
+
if (isNull(value)) {
|
|
1117
|
+
convertedValue = "";
|
|
1118
|
+
}
|
|
1119
|
+
else {
|
|
1120
|
+
convertedValue = formatDateToStandardFormat(value);
|
|
1121
|
+
}
|
|
1122
|
+
break;
|
|
1123
|
+
case EFieldType.PHONE:
|
|
1124
|
+
let fieldPhone = field;
|
|
1125
|
+
convertedValue = value.replace(String(fieldPhone.properties.countryCode), "");
|
|
1126
|
+
break;
|
|
1127
|
+
case EFieldType.TITLE:
|
|
1128
|
+
break;
|
|
1129
|
+
default:
|
|
1130
|
+
if (isEmpty(value)) {
|
|
1131
|
+
convertedValue = "";
|
|
1132
|
+
}
|
|
1133
|
+
break;
|
|
1134
|
+
}
|
|
1135
|
+
return convertedValue;
|
|
1136
|
+
};
|
|
1137
|
+
|
|
882
1138
|
class Validations {
|
|
883
1139
|
constructor(field, formData, previousFormData, allFormsData, takeAction) {
|
|
884
1140
|
this._field = field;
|
|
@@ -940,18 +1196,15 @@ class Validations {
|
|
|
940
1196
|
if (hasKey$1(field, "validators") &&
|
|
941
1197
|
hasKey$1(field.validators, "pattern") &&
|
|
942
1198
|
isNotEmpty(field.validators.pattern)) {
|
|
943
|
-
if (field.validators.pattern
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
1199
|
+
if (hasKey$1(field.validators.pattern, "key")) {
|
|
1200
|
+
if (field.validators.pattern.key === EPatternKey.CUSTOM) {
|
|
1201
|
+
validators.push(Validators.pattern(field.validators.pattern.pattern));
|
|
1202
|
+
}
|
|
1203
|
+
else {
|
|
1204
|
+
validators.push(Validators.pattern(EPattern[field.validators.pattern.key]));
|
|
1205
|
+
}
|
|
948
1206
|
}
|
|
949
1207
|
}
|
|
950
|
-
if (hasKey$1(field, "validators") &&
|
|
951
|
-
hasKey$1(field.validators, "nullValidator") &&
|
|
952
|
-
isNotEmpty(field.validators.nullValidator)) {
|
|
953
|
-
validators.push(Validators.nullValidator(field.validators.nullValidator));
|
|
954
|
-
}
|
|
955
1208
|
return validators;
|
|
956
1209
|
}
|
|
957
1210
|
getFormValidationErrors(control) {
|
|
@@ -1036,7 +1289,7 @@ class KwikIDFormViewService {
|
|
|
1036
1289
|
for (let field of fields) {
|
|
1037
1290
|
if (field.type !== "title") {
|
|
1038
1291
|
const defaults = new Defaults(field, allFormsData, formData, previousFormData, takeAction);
|
|
1039
|
-
const value = yield defaults.getDefaultValue();
|
|
1292
|
+
const value = convertValueFromBasicFormatToKwikUIFormat(field.type, yield defaults.getDefaultValue());
|
|
1040
1293
|
const validators = new Validations(field, formData, previousFormData, allFormsData, takeAction).getFieldValidators(field);
|
|
1041
1294
|
formGroup.addControl(field.key, new FormControl({ value: value, disabled: field.disabled }, { validators: validators }));
|
|
1042
1295
|
}
|
|
@@ -1147,150 +1400,6 @@ __decorate([
|
|
|
1147
1400
|
log
|
|
1148
1401
|
], Apis.prototype, "validateApiCallResponse", null);
|
|
1149
1402
|
|
|
1150
|
-
const findFieldFromKey = (fields, key) => {
|
|
1151
|
-
const field = fields.find((field) => {
|
|
1152
|
-
if (field.key === key) {
|
|
1153
|
-
return field;
|
|
1154
|
-
}
|
|
1155
|
-
});
|
|
1156
|
-
return field;
|
|
1157
|
-
};
|
|
1158
|
-
const findFieldIndexFromKey = (fields, key) => {
|
|
1159
|
-
let fieldIndex;
|
|
1160
|
-
fieldIndex = fields.findIndex((_) => {
|
|
1161
|
-
return key === _.key;
|
|
1162
|
-
});
|
|
1163
|
-
return fieldIndex;
|
|
1164
|
-
};
|
|
1165
|
-
const getSearchTextOptionsFromRemoteFile = (field, childField, formGroup) => __awaiter(void 0, void 0, void 0, function* () {
|
|
1166
|
-
const parentFieldValue = formGroup.controls[field.key].value;
|
|
1167
|
-
// Determine the URL of the remote file to fetch
|
|
1168
|
-
let fileUrl;
|
|
1169
|
-
if (childField.regexToGetJsonRemoteUrlKey) {
|
|
1170
|
-
const fileKey = parentFieldValue.match(childField.regexToGetJsonRemoteUrlKey)[0];
|
|
1171
|
-
fileUrl = childField.jsonRemoteUrlMapping[fileKey];
|
|
1172
|
-
}
|
|
1173
|
-
else {
|
|
1174
|
-
fileUrl = childField.fileUrl;
|
|
1175
|
-
}
|
|
1176
|
-
// Return early if there is no file URL
|
|
1177
|
-
if (!fileUrl)
|
|
1178
|
-
return;
|
|
1179
|
-
// Fetch the remote file and parse its JSON data
|
|
1180
|
-
const response = yield fetch(fileUrl);
|
|
1181
|
-
const data = yield response.json();
|
|
1182
|
-
// Return the data for the given parent field value
|
|
1183
|
-
return data[parentFieldValue];
|
|
1184
|
-
});
|
|
1185
|
-
const getSearchTextOptionsFromFieldConfig = (field, childField, formGroup) => {
|
|
1186
|
-
let options;
|
|
1187
|
-
const fieldValue = formGroup.controls[field.key].value;
|
|
1188
|
-
if (isNotEmpty(childField["json"])) {
|
|
1189
|
-
options = childField["json"][fieldValue];
|
|
1190
|
-
}
|
|
1191
|
-
return options;
|
|
1192
|
-
};
|
|
1193
|
-
const formatSearchTextOptions = (options) => {
|
|
1194
|
-
return options.map(({ title }) => title);
|
|
1195
|
-
};
|
|
1196
|
-
const formatDateToStandardFormat = (date) => {
|
|
1197
|
-
let formattedDate;
|
|
1198
|
-
let year = date.year;
|
|
1199
|
-
let month = date.month;
|
|
1200
|
-
let day = date.day;
|
|
1201
|
-
formattedDate = `${day}-${month + 1}-${year}`;
|
|
1202
|
-
return formattedDate;
|
|
1203
|
-
};
|
|
1204
|
-
function highlightFieldError(field, error) {
|
|
1205
|
-
field.invalid = error;
|
|
1206
|
-
field.focus = error;
|
|
1207
|
-
// if (!error) {
|
|
1208
|
-
// field["messages"] = field["messages"].filter(function (fieldMessage: {
|
|
1209
|
-
// type: string;
|
|
1210
|
-
// message: string;
|
|
1211
|
-
// }) {
|
|
1212
|
-
// return fieldMessage.type === "error";
|
|
1213
|
-
// });
|
|
1214
|
-
// }
|
|
1215
|
-
return field;
|
|
1216
|
-
}
|
|
1217
|
-
const addMessage = (field, message) => {
|
|
1218
|
-
const isDuplicateMessage = (messages, message) => {
|
|
1219
|
-
return messages.some((fieldMessage) => {
|
|
1220
|
-
return (fieldMessage.type === message.type &&
|
|
1221
|
-
fieldMessage.message === message.message);
|
|
1222
|
-
});
|
|
1223
|
-
};
|
|
1224
|
-
field["messages"] = [];
|
|
1225
|
-
if (hasKey$1(field, "messages")) {
|
|
1226
|
-
if (!isDuplicateMessage(field["messages"], message)) {
|
|
1227
|
-
field["messages"].push({
|
|
1228
|
-
type: message.type,
|
|
1229
|
-
message: message.message
|
|
1230
|
-
});
|
|
1231
|
-
}
|
|
1232
|
-
}
|
|
1233
|
-
else {
|
|
1234
|
-
field["messages"] = [{ type: message.type, message: message.message }];
|
|
1235
|
-
}
|
|
1236
|
-
return field;
|
|
1237
|
-
};
|
|
1238
|
-
const removeMessage = (field, message) => {
|
|
1239
|
-
field["messages"] = field["messages"].filter(function (fieldMessage) {
|
|
1240
|
-
return fieldMessage.type !== message.type;
|
|
1241
|
-
});
|
|
1242
|
-
return field;
|
|
1243
|
-
};
|
|
1244
|
-
function setFieldError(fields, errors, key, error) {
|
|
1245
|
-
const fieldIndex = fields.findIndex((field) => {
|
|
1246
|
-
return field.key === key;
|
|
1247
|
-
});
|
|
1248
|
-
const setErrorMessages = (field, errors) => {
|
|
1249
|
-
const getErrorMessage = (fieldLabel, errorType) => {
|
|
1250
|
-
let errorMessage = "";
|
|
1251
|
-
switch (errorType) {
|
|
1252
|
-
case "required":
|
|
1253
|
-
errorMessage = `${fieldLabel} is required!`;
|
|
1254
|
-
break;
|
|
1255
|
-
case "pattern":
|
|
1256
|
-
errorMessage = `${fieldLabel} has wrong pattern!`;
|
|
1257
|
-
break;
|
|
1258
|
-
case "email":
|
|
1259
|
-
errorMessage = `${fieldLabel} has wrong email format!`;
|
|
1260
|
-
break;
|
|
1261
|
-
case "minlength":
|
|
1262
|
-
errorMessage = `${fieldLabel} has wrong length! Required minimum length: ${field.validators.minLength}`;
|
|
1263
|
-
break;
|
|
1264
|
-
case "maxlength":
|
|
1265
|
-
errorMessage = `${fieldLabel} has wrong length! Required maximum length: ${field.validators.maxLength}`;
|
|
1266
|
-
break;
|
|
1267
|
-
case "areEqual":
|
|
1268
|
-
errorMessage = `${fieldLabel} must be equal!`;
|
|
1269
|
-
break;
|
|
1270
|
-
default:
|
|
1271
|
-
errorMessage = `${fieldLabel}: ${"error.error_name"}: ${"error.error_value"}`;
|
|
1272
|
-
break;
|
|
1273
|
-
}
|
|
1274
|
-
return errorMessage;
|
|
1275
|
-
};
|
|
1276
|
-
Object.keys(errors).forEach((error) => {
|
|
1277
|
-
field = addMessage(field, {
|
|
1278
|
-
type: "error",
|
|
1279
|
-
message: getErrorMessage(field.label, error)
|
|
1280
|
-
});
|
|
1281
|
-
});
|
|
1282
|
-
return field;
|
|
1283
|
-
};
|
|
1284
|
-
if (error) {
|
|
1285
|
-
fields[fieldIndex] = setErrorMessages(fields[fieldIndex], errors);
|
|
1286
|
-
}
|
|
1287
|
-
else {
|
|
1288
|
-
fields[fieldIndex]["messages"] = [];
|
|
1289
|
-
}
|
|
1290
|
-
fields[fieldIndex] = highlightFieldError(fields[fieldIndex], error);
|
|
1291
|
-
return fields;
|
|
1292
|
-
}
|
|
1293
|
-
|
|
1294
1403
|
class KwikIDFormViewComponent {
|
|
1295
1404
|
constructor(formViewService) {
|
|
1296
1405
|
this.formViewService = formViewService;
|
|
@@ -1558,16 +1667,26 @@ class KwikIDFormViewComponent {
|
|
|
1558
1667
|
handleOnClickSaveForm(e) {
|
|
1559
1668
|
let formData = this.formGroup.getRawValue();
|
|
1560
1669
|
for (let field of this.formFields) {
|
|
1561
|
-
if (field.type !==
|
|
1670
|
+
if (field.type !== EFieldType.TITLE) {
|
|
1671
|
+
if (field.hidden) {
|
|
1672
|
+
delete formData[field.key];
|
|
1673
|
+
}
|
|
1674
|
+
else {
|
|
1675
|
+
formData[field.key] = convertValueFromKwikUIFormatToBasicFormat(field, formData[field.key]);
|
|
1676
|
+
}
|
|
1677
|
+
}
|
|
1678
|
+
}
|
|
1679
|
+
for (let field of this.formFields) {
|
|
1680
|
+
if (field.type !== EFieldType.TITLE &&
|
|
1562
1681
|
field.validation.triggers.includes("ON_SAVE")) {
|
|
1563
|
-
const validations = new Validations(field,
|
|
1682
|
+
const validations = new Validations(field, formData, this.previousFormData, this.allFormsData, this.takeAction.bind(this));
|
|
1564
1683
|
(() => __awaiter(this, void 0, void 0, function* () {
|
|
1565
1684
|
yield validations.validateField();
|
|
1566
1685
|
}))();
|
|
1567
1686
|
}
|
|
1568
1687
|
}
|
|
1569
1688
|
if (this.formGroup.invalid) {
|
|
1570
|
-
const controls = new Validations(undefined,
|
|
1689
|
+
const controls = new Validations(undefined, formData, this.previousFormData, this.allFormsData, this.takeAction.bind(this)).findInvalidControlsRecursive(this.formGroup);
|
|
1571
1690
|
let firstFieldWithError = "";
|
|
1572
1691
|
for (let control of controls) {
|
|
1573
1692
|
if (control.invalid && isEmpty(firstFieldWithError)) {
|
|
@@ -1577,35 +1696,6 @@ class KwikIDFormViewComponent {
|
|
|
1577
1696
|
}
|
|
1578
1697
|
return;
|
|
1579
1698
|
}
|
|
1580
|
-
// Need to have an API Validator as well here.
|
|
1581
|
-
// if(apiCallSuccess()) { then only proceed further, else highlight the button to click to call api}
|
|
1582
|
-
for (let field of this.formFields) {
|
|
1583
|
-
switch (field.type) {
|
|
1584
|
-
case "radio":
|
|
1585
|
-
if (hasKey$1(formData[field.key], "label")) {
|
|
1586
|
-
formData[field.key] = formData[field.key].label;
|
|
1587
|
-
}
|
|
1588
|
-
else {
|
|
1589
|
-
formData[field.key] = "";
|
|
1590
|
-
}
|
|
1591
|
-
break;
|
|
1592
|
-
case "date":
|
|
1593
|
-
if (isNull(formData[field.key])) {
|
|
1594
|
-
formData[field.key] = "";
|
|
1595
|
-
}
|
|
1596
|
-
else {
|
|
1597
|
-
formData[field.key] = formatDateToStandardFormat(formData[field.key]);
|
|
1598
|
-
}
|
|
1599
|
-
break;
|
|
1600
|
-
case "title":
|
|
1601
|
-
break;
|
|
1602
|
-
default:
|
|
1603
|
-
if (isEmpty(formData[field.key])) {
|
|
1604
|
-
formData[field.key] = "";
|
|
1605
|
-
}
|
|
1606
|
-
break;
|
|
1607
|
-
}
|
|
1608
|
-
}
|
|
1609
1699
|
Object.keys(formData).map((key) => {
|
|
1610
1700
|
if (isEmpty(formData[key])) {
|
|
1611
1701
|
formData[key] = "";
|
|
@@ -1801,7 +1891,7 @@ class KwikIDFormViewComponent {
|
|
|
1801
1891
|
}
|
|
1802
1892
|
}
|
|
1803
1893
|
/** @nocollapse */ KwikIDFormViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: KwikIDFormViewComponent, deps: [{ token: KwikIDFormViewService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1804
|
-
/** @nocollapse */ KwikIDFormViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: KwikIDFormViewComponent, selector: "kwikid-form-view", inputs: { formConfig: "formConfig", formData: "formData", apiCallResponse: "apiCallResponse", isMobileView: "isMobileView", allFormsData: "allFormsData", formsList: "formsList" }, outputs: { onClickViewForms: "onClickViewForms", onClickSaveForm: "onClickSaveForm", onClickApiCall: "onClickApiCall", getActiveFormData: "getActiveFormData" }, providers: [KwikIDFormViewService], usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"kwikid-form-container\"\r\n *ngIf=\"!this.loading\"\r\n>\r\n <div id=\"uf-form-fields-header-container\">\r\n <div id=\"uf-form-fields-title\">\r\n {{ this.formConfig.title }}\r\n </div>\r\n <div id=\"uf-form-fields-steps\">\r\n Step {{ this.formConfig.sequenceNo }} of {{ this.formsList.length }}\r\n </div>\r\n </div>\r\n <form\r\n class=\"kwikid-form show\"\r\n [formGroup]=\"this.formGroup\"\r\n >\r\n <ng-container *ngFor=\"let field of this.formFields; let i = index\">\r\n <ng-container [ngSwitch]=\"field.type\">\r\n <!-- Form Title -->\r\n <ng-container *ngSwitchCase=\"'title'\">\r\n <div class=\"title\">\r\n <div>\r\n {{ field.label }}\r\n </div>\r\n <kwikui-button\r\n *ngIf=\"field?.reset\"\r\n appearance=\"whiteblock\"\r\n size=\"s\"\r\n label=\"Reset\"\r\n (onClick)=\"this.handleOnClickResetFormFields($event, field)\"\r\n ></kwikui-button>\r\n </div>\r\n </ng-container>\r\n <!-- Input Text -->\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <div [hidden]=\"field?.hidden\">\r\n <kwikui-input\r\n [case]=\"field?.properties?.case\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field.label\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [type]=\"'text'\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Checkbox -->\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <div [hidden]=\"field?.hidden\">\r\n <kwikui-checkbox-block\r\n [contentAlign]=\"field?.properties?.contentAlign ?? 'left'\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.properties?.placeholder\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [size]=\"field?.properties?.size ?? 'l'\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-checkbox-block\r\n ><kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Number -->\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <div [hidden]=\"field?.hidden\">\r\n <kwikui-input-number\r\n [decimal]=\"field?.properties?.decimal\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [max]=\"field?.properties?.max\"\r\n [min]=\"field?.properties?.min\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [postfix]=\"field?.properties?.postfix ?? ''\"\r\n [precision]=\"field?.properties?.precision\"\r\n [prefix]=\"field?.properties?.prefix ?? ''\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-number\r\n ><kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <div [hidden]=\"field?.hidden\">\r\n <kwikui-input-date\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field.label\"\r\n [max]=\"field?.properties?.max\"\r\n [min]=\"field?.properties?.min\"\r\n [placeholder]=\"field?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-date>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Phone -->\r\n <ng-container *ngSwitchCase=\"'phone'\">\r\n <div [hidden]=\"field?.hidden\">\r\n <kwikui-input-phone\r\n [countryCode]=\"field?.properties?.countryCode\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [phoneMaskAfterCountryCode]=\"\r\n field?.properties?.phoneMaskAfterCountryCode\r\n \"\r\n [placeholder]=\"field?.placeholder\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-phone>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Radio -->\r\n <ng-container *ngSwitchCase=\"'radio'\">\r\n <div [hidden]=\"field?.hidden\">\r\n <label\r\n [tuiLabel]=\"labelTemplate\"\r\n style=\"min-height: auto\"\r\n >\r\n <kwikui-radio-list\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [items]=\"field?.options\"\r\n [label]=\"field?.label\"\r\n [orientation]=\"field?.properties?.orientation\"\r\n [placeholder]=\"field?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [size]=\"field?.properties?.size\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-radio-list>\r\n </label>\r\n <ng-template #labelTemplate>\r\n <p\r\n class=\"tui-space_bottom-2\"\r\n [hidden]=\"field?.hidden\"\r\n >\r\n <b>\r\n {{ field.label }}\r\n <span *ngIf=\"field.validators?.required\"></span>\r\n </b>\r\n </p>\r\n </ng-template>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Dropdown -->\r\n <ng-container *ngSwitchCase=\"'dropdown-with-search'\">\r\n <div [hidden]=\"field?.hidden\">\r\n <kwikui-select-combobox\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field.label\"\r\n [options]=\"field.options\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-select-combobox>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- API Call -->\r\n <ng-container *ngSwitchCase=\"'api-call'\">\r\n <div [hidden]=\"field?.hidden\">\r\n <kwikui-button-api-call\r\n [apiStatus]=\"field?.api?.status?.value\"\r\n [class]=\"field?.class\"\r\n [disabled]=\"field?.disabled\"\r\n [id]=\"field.key\"\r\n [label]=\"field?.api?.status?.labels[field?.api?.status?.value]\"\r\n [showLoader]=\"field?.disabled === 'loading'\"\r\n shape=\"null\"\r\n size=\"m\"\r\n styles=\"width: fit-content\"\r\n (onClick)=\"this.handleOnClickApiCall($event)\"\r\n ></kwikui-button-api-call>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Mobile OTP -->\r\n <ng-container *ngSwitchCase=\"'otp'\">\r\n <div [hidden]=\"field?.hidden\">\r\n <kwikui-input-otp\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [mask]=\"field?.properties?.mask\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-otp>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Aadhaar Number -->\r\n <ng-container *ngSwitchCase=\"'aadhaar-number'\">\r\n <div [hidden]=\"field?.hidden\">\r\n <kwikui-input-aadhaar\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [placeholder]=\"field?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-aadhaar>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </form>\r\n <div class=\"kwikid-form-buttons\">\r\n <kwikui-button\r\n *ngIf=\"this.isMobileView\"\r\n [disabled]=\"viewFormsButton.disabled\"\r\n id=\"\"\r\n label=\"View Forms\"\r\n [showLoader]=\"viewFormsButton.showLoader\"\r\n styles=\"\"\r\n class=\"\"\r\n type=\"button\"\r\n appearance=\"secondary\"\r\n icon=\"\"\r\n iconRight=\"\"\r\n shape=\"null\"\r\n size=\"m\"\r\n styles=\"width: 100%\"\r\n (onClick)=\"this.handleOnClickViewForms($event)\"\r\n ></kwikui-button>\r\n <kwikui-button\r\n [disabled]=\"saveFormButton.disabled\"\r\n id=\"\"\r\n label=\"Save\"\r\n [showLoader]=\"saveFormButton.showLoader\"\r\n styles=\"\"\r\n class=\"\"\r\n type=\"button\"\r\n appearance=\"primary\"\r\n icon=\"\"\r\n iconRight=\"\"\r\n shape=\"null\"\r\n size=\"m\"\r\n styles=\"width: 100%\"\r\n (onClick)=\"this.handleOnClickSaveForm($event)\"\r\n ></kwikui-button>\r\n </div>\r\n</div>\r\n<div\r\n class=\"kwikid-form-container-loading\"\r\n *ngIf=\"this.loading\"\r\n>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n</div>\r\n", styles: ["::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}.kwikid-form-container{width:100%;height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center}.kwikid-form.show{width:100%;height:100%;padding:1rem;overflow-y:auto;display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch;grid-row-gap:1rem;row-gap:1rem}.kwikid-form-buttons{width:100%;bottom:0px;padding:1rem;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-column-gap:10px;column-gap:10px}.kwikid-form-buttons *{flex-grow:1}#uf-form-fields-header-container{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:flex-start;grid-row-gap:.5rem;row-gap:.5rem;padding:1rem}#uf-form-fields-title{color:#000;font-size:1.75em;font-weight:bold}#uf-form-fields-steps{color:var(--color-on-secondary-container);font-size:1em}.title{border-left:.25rem solid var(--tui-primary);padding:.75rem;font-size:1.4em;font-weight:bold;background-color:var(--tui-secondary);display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-gap:.5rem;gap:.5rem}.title:not(:first-child){margin-top:.5rem}.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}\n"], components: [{ type: i2.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }, { type: i2.KwikUIInputComponent, selector: "kwikui-input", inputs: ["label", "id", "type", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "validators", "case", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIMessagesComponent, selector: "kwikui-messages", inputs: ["messages", "id"] }, { type: i2.KwikUICheckboxBlockComponent, selector: "kwikui-checkbox-block", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "size", "contentAlign", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputNumberComponent, selector: "kwikui-input-number", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "placeholder", "min", "max", "prefix", "postfix", "precision", "decimal", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputDateComponent, selector: "kwikui-input-date", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "placeholder", "min", "max", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputPhoneComponent, selector: "kwikui-input-phone", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "placeholder", "countryCode", "phoneMaskAfterCountryCode", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i3.TuiLabelComponent, selector: "label[tuiLabel]", inputs: ["tuiLabel", "context"] }, { type: i2.KwikUIRadioListComponent, selector: "kwikui-radio-list", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "size", "items", "orientation", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUISelectComboboxComponent, selector: "kwikui-select-combobox", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "options", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIButtonApiCallComponent, selector: "kwikui-button-api-call", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "shape", "size", "apiStatus"], outputs: ["onClick"] }, { type: i2.KwikUIInputOtpComponent, selector: "kwikui-input-otp", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "placeholder", "mask", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputAadhaarComponent, selector: "kwikui-input-aadhaar", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "placeholder", "mask", "validators", "properties"], outputs: ["getKeyValue"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i5.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
1894
|
+
/** @nocollapse */ KwikIDFormViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: KwikIDFormViewComponent, selector: "kwikid-form-view", inputs: { formConfig: "formConfig", formData: "formData", apiCallResponse: "apiCallResponse", isMobileView: "isMobileView", allFormsData: "allFormsData", formsList: "formsList" }, outputs: { onClickViewForms: "onClickViewForms", onClickSaveForm: "onClickSaveForm", onClickApiCall: "onClickApiCall", getActiveFormData: "getActiveFormData" }, providers: [KwikIDFormViewService], usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"kwikid-form-container\"\r\n *ngIf=\"!this.loading\"\r\n>\r\n <div id=\"uf-form-fields-header-container\">\r\n <div id=\"uf-form-fields-title\">\r\n {{ this.formConfig.title }}\r\n </div>\r\n <div id=\"uf-form-fields-steps\">\r\n Step {{ this.formConfig.sequenceNo }} of {{ this.formsList.length }}\r\n </div>\r\n <hr />\r\n </div>\r\n <form\r\n class=\"kwikid-form show\"\r\n [formGroup]=\"this.formGroup\"\r\n >\r\n <ng-container *ngFor=\"let field of this.formFields; let i = index\">\r\n <ng-container [ngSwitch]=\"field.type\">\r\n <!-- Form Title -->\r\n <ng-container *ngSwitchCase=\"'title'\">\r\n <div class=\"title\">\r\n <div>\r\n {{ field.label }}\r\n </div>\r\n <kwikui-button\r\n *ngIf=\"field?.reset\"\r\n appearance=\"whiteblock\"\r\n size=\"s\"\r\n label=\"Reset\"\r\n (onClick)=\"this.handleOnClickResetFormFields($event, field)\"\r\n ></kwikui-button>\r\n </div>\r\n </ng-container>\r\n <!-- Input Text -->\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <div [hidden]=\"field?.hidden\">\r\n <kwikui-input\r\n [case]=\"field?.properties?.case\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field.label\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [type]=\"'text'\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Checkbox -->\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <div [hidden]=\"field?.hidden\">\r\n <kwikui-checkbox-block\r\n [contentAlign]=\"field?.properties?.contentAlign ?? 'left'\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.properties?.placeholder\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [size]=\"field?.properties?.size ?? 'l'\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-checkbox-block\r\n ><kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Number -->\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <div [hidden]=\"field?.hidden\">\r\n <kwikui-input-number\r\n [decimal]=\"field?.properties?.decimal\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [max]=\"field?.properties?.max\"\r\n [min]=\"field?.properties?.min\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [postfix]=\"field?.properties?.postfix ?? ''\"\r\n [precision]=\"field?.properties?.precision\"\r\n [prefix]=\"field?.properties?.prefix ?? ''\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-number\r\n ><kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <div [hidden]=\"field?.hidden\">\r\n <kwikui-input-date\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field.label\"\r\n [max]=\"field?.properties?.max\"\r\n [min]=\"field?.properties?.min\"\r\n [placeholder]=\"field?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-date>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Phone -->\r\n <ng-container *ngSwitchCase=\"'phone'\">\r\n <div [hidden]=\"field?.hidden\">\r\n <kwikui-input-phone\r\n [countryCode]=\"field?.properties?.countryCode\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [phoneMaskAfterCountryCode]=\"\r\n field?.properties?.phoneMaskAfterCountryCode\r\n \"\r\n [placeholder]=\"field?.placeholder\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-phone>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Radio -->\r\n <ng-container *ngSwitchCase=\"'radio'\">\r\n <div [hidden]=\"field?.hidden\">\r\n <label\r\n [tuiLabel]=\"labelTemplate\"\r\n style=\"min-height: auto\"\r\n >\r\n <kwikui-radio-list\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [items]=\"field?.options\"\r\n [label]=\"field?.label\"\r\n [orientation]=\"field?.properties?.orientation\"\r\n [placeholder]=\"field?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [size]=\"field?.properties?.size\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-radio-list>\r\n </label>\r\n <ng-template #labelTemplate>\r\n <p\r\n class=\"tui-space_bottom-2\"\r\n [hidden]=\"field?.hidden\"\r\n >\r\n <b>\r\n {{ field.label }}\r\n <span *ngIf=\"field.validators?.required\"></span>\r\n </b>\r\n </p>\r\n </ng-template>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Dropdown -->\r\n <ng-container *ngSwitchCase=\"'dropdown-with-search'\">\r\n <div [hidden]=\"field?.hidden\">\r\n <kwikui-select-combobox\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field.label\"\r\n [options]=\"field.options\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-select-combobox>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- API Call -->\r\n <ng-container *ngSwitchCase=\"'api-call'\">\r\n <div [hidden]=\"field?.hidden\">\r\n <kwikui-button-api-call\r\n [apiStatus]=\"field?.api?.status?.value\"\r\n [class]=\"field?.class\"\r\n [disabled]=\"field?.disabled\"\r\n [id]=\"field.key\"\r\n [label]=\"field?.api?.status?.labels[field?.api?.status?.value]\"\r\n [showLoader]=\"field?.disabled === 'loading'\"\r\n shape=\"null\"\r\n size=\"m\"\r\n styles=\"width: fit-content\"\r\n (onClick)=\"this.handleOnClickApiCall($event)\"\r\n ></kwikui-button-api-call>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Mobile OTP -->\r\n <ng-container *ngSwitchCase=\"'otp'\">\r\n <div [hidden]=\"field?.hidden\">\r\n <kwikui-input-otp\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [mask]=\"field?.properties?.mask\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-otp>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Aadhaar Number -->\r\n <ng-container *ngSwitchCase=\"'aadhaar-number'\">\r\n <div [hidden]=\"field?.hidden\">\r\n <kwikui-input-aadhaar\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [placeholder]=\"field?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-aadhaar>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </form>\r\n <div class=\"kwikid-form-buttons\">\r\n <kwikui-button\r\n *ngIf=\"this.isMobileView\"\r\n [disabled]=\"viewFormsButton.disabled\"\r\n id=\"\"\r\n label=\"View Forms\"\r\n [showLoader]=\"viewFormsButton.showLoader\"\r\n styles=\"\"\r\n class=\"\"\r\n type=\"button\"\r\n appearance=\"secondary\"\r\n icon=\"\"\r\n iconRight=\"\"\r\n shape=\"null\"\r\n size=\"m\"\r\n styles=\"width: 100%\"\r\n (onClick)=\"this.handleOnClickViewForms($event)\"\r\n ></kwikui-button>\r\n <kwikui-button\r\n [disabled]=\"saveFormButton.disabled\"\r\n id=\"\"\r\n label=\"Save\"\r\n [showLoader]=\"saveFormButton.showLoader\"\r\n styles=\"\"\r\n class=\"\"\r\n type=\"button\"\r\n appearance=\"primary\"\r\n icon=\"\"\r\n iconRight=\"\"\r\n shape=\"null\"\r\n size=\"m\"\r\n styles=\"width: 100%\"\r\n (onClick)=\"this.handleOnClickSaveForm($event)\"\r\n ></kwikui-button>\r\n </div>\r\n</div>\r\n<div\r\n class=\"kwikid-form-container-loading\"\r\n *ngIf=\"this.loading\"\r\n>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n</div>\r\n", styles: ["::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}.kwikid-form-container{width:100%;height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center}.kwikid-form.show{width:100%;height:100%;padding:1rem;overflow-y:auto;display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch;grid-row-gap:1rem;row-gap:1rem}.kwikid-form-buttons{width:100%;bottom:0px;padding:1rem;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-column-gap:10px;column-gap:10px}.kwikid-form-buttons *{flex-grow:1}#uf-form-fields-header-container{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:flex-start;grid-row-gap:.5rem;row-gap:.5rem;padding:1rem}#uf-form-fields-header-container hr{width:100%}#uf-form-fields-title{color:#000;font-size:1.75em;font-weight:bold}#uf-form-fields-steps{color:var(--color-on-secondary-container);font-size:1em}.title{border-left:.25rem solid var(--tui-primary);padding:.75rem;font-size:1.4em;font-weight:bold;background-color:var(--tui-secondary);display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-gap:.5rem;gap:.5rem}.title:not(:first-child){margin-top:.5rem}.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}\n"], components: [{ type: i2.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }, { type: i2.KwikUIInputComponent, selector: "kwikui-input", inputs: ["label", "id", "type", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "validators", "case", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIMessagesComponent, selector: "kwikui-messages", inputs: ["messages", "id"] }, { type: i2.KwikUICheckboxBlockComponent, selector: "kwikui-checkbox-block", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "size", "contentAlign", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputNumberComponent, selector: "kwikui-input-number", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "placeholder", "min", "max", "prefix", "postfix", "precision", "decimal", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputDateComponent, selector: "kwikui-input-date", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "placeholder", "min", "max", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputPhoneComponent, selector: "kwikui-input-phone", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "placeholder", "countryCode", "phoneMaskAfterCountryCode", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i3.TuiLabelComponent, selector: "label[tuiLabel]", inputs: ["tuiLabel", "context"] }, { type: i2.KwikUIRadioListComponent, selector: "kwikui-radio-list", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "size", "items", "orientation", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUISelectComboboxComponent, selector: "kwikui-select-combobox", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "options", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIButtonApiCallComponent, selector: "kwikui-button-api-call", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "shape", "size", "apiStatus"], outputs: ["onClick"] }, { type: i2.KwikUIInputOtpComponent, selector: "kwikui-input-otp", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "placeholder", "mask", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputAadhaarComponent, selector: "kwikui-input-aadhaar", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "placeholder", "mask", "validators", "properties"], outputs: ["getKeyValue"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i5.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
1805
1895
|
__decorate([
|
|
1806
1896
|
log
|
|
1807
1897
|
], KwikIDFormViewComponent.prototype, "ngOnInit", null);
|
|
@@ -1928,6 +2018,8 @@ const hasKey = (object, key) => {
|
|
|
1928
2018
|
|
|
1929
2019
|
class KwikIDFormsListComponent {
|
|
1930
2020
|
constructor() {
|
|
2021
|
+
this.showFormFields = {};
|
|
2022
|
+
this.userConfig = {};
|
|
1931
2023
|
this.formsList = [];
|
|
1932
2024
|
this.formsListCompleted = [];
|
|
1933
2025
|
this.isMobileView = false;
|
|
@@ -1935,21 +2027,39 @@ class KwikIDFormsListComponent {
|
|
|
1935
2027
|
this.onClickHideFormsList = new EventEmitter();
|
|
1936
2028
|
this.onClickSubmitForms = new EventEmitter();
|
|
1937
2029
|
this.selectedForm = "";
|
|
2030
|
+
this.isAllFormsCompleted = true;
|
|
2031
|
+
}
|
|
2032
|
+
ngOnInit() {
|
|
2033
|
+
this.isAllFormsCompleted = this.checkIsAllFormsCompleted(this.formsList);
|
|
1938
2034
|
}
|
|
1939
|
-
ngOnInit() { }
|
|
1940
2035
|
ngOnChanges(changes) {
|
|
1941
2036
|
const verifyChange = (key) => {
|
|
1942
2037
|
return hasKey(changes, key) && !changes[key].firstChange;
|
|
1943
2038
|
};
|
|
2039
|
+
if (verifyChange("showFormFields")) {
|
|
2040
|
+
this.showFormFields = changes.showFormFields.currentValue;
|
|
2041
|
+
}
|
|
1944
2042
|
if (verifyChange("formsList")) {
|
|
1945
2043
|
this.formsList = changes.formsList.currentValue;
|
|
2044
|
+
this.isAllFormsCompleted = this.checkIsAllFormsCompleted(this.formsList);
|
|
1946
2045
|
}
|
|
1947
2046
|
if (verifyChange("isMobileView")) {
|
|
1948
2047
|
this.isMobileView = changes.isMobileView.currentValue;
|
|
1949
2048
|
}
|
|
1950
2049
|
}
|
|
2050
|
+
checkIsAllFormsCompleted(formsList) {
|
|
2051
|
+
let isAllFormsCompleted = true;
|
|
2052
|
+
for (let forms of formsList) {
|
|
2053
|
+
if (forms.status !== "completed") {
|
|
2054
|
+
isAllFormsCompleted = false;
|
|
2055
|
+
break;
|
|
2056
|
+
}
|
|
2057
|
+
}
|
|
2058
|
+
return isAllFormsCompleted;
|
|
2059
|
+
}
|
|
1951
2060
|
handleOnClickSetActiveForm(selectedForm) {
|
|
1952
|
-
if (this.selectedForm !== selectedForm
|
|
2061
|
+
if (this.selectedForm !== selectedForm ||
|
|
2062
|
+
(this.isAllFormsCompleted && !this.showFormFields)) {
|
|
1953
2063
|
this.selectedForm = selectedForm;
|
|
1954
2064
|
this.onClickSetActiveForm.emit(selectedForm);
|
|
1955
2065
|
}
|
|
@@ -1959,7 +2069,7 @@ class KwikIDFormsListComponent {
|
|
|
1959
2069
|
}
|
|
1960
2070
|
}
|
|
1961
2071
|
/** @nocollapse */ KwikIDFormsListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: KwikIDFormsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1962
|
-
/** @nocollapse */ KwikIDFormsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: KwikIDFormsListComponent, selector: "kwikid-forms-list", inputs: { formsList: "formsList", formsListCompleted: "formsListCompleted", isMobileView: "isMobileView" }, outputs: { onClickSetActiveForm: "onClickSetActiveForm", onClickHideFormsList: "onClickHideFormsList", onClickSubmitForms: "onClickSubmitForms" }, usesOnChanges: true, ngImport: i0, template: "<div id=\"sidebar-container\">\r\n <div id=\"sidebar\">\r\n <div id=\"uf-progress\">\r\n <div id=\"uf-progress-steps\">\r\n {{ this.formsListCompleted.length }} / {{ this.formsList.length }} Steps\r\n Completed\r\n </div>\r\n <kwikui-progress-segmented\r\n [max]=\"this.formsList.length\"\r\n size=\"m\"\r\n [value]=\"this.formsListCompleted.length\"\r\n ></kwikui-progress-segmented>\r\n </div>\r\n <div id=\"uf-sections-container\">\r\n <div\r\n *ngFor=\"let form of formsList; let i = index\"\r\n [class]=\"'uf-section-item'\"\r\n [class.completed]=\"form.status === 'completed' && !form.disabled\"\r\n [class.edit]=\"form.status
|
|
2072
|
+
/** @nocollapse */ KwikIDFormsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: KwikIDFormsListComponent, selector: "kwikid-forms-list", inputs: { showFormFields: "showFormFields", userConfig: "userConfig", formsList: "formsList", formsListCompleted: "formsListCompleted", isMobileView: "isMobileView" }, outputs: { onClickSetActiveForm: "onClickSetActiveForm", onClickHideFormsList: "onClickHideFormsList", onClickSubmitForms: "onClickSubmitForms" }, usesOnChanges: true, ngImport: i0, template: "<div id=\"sidebar-container\">\r\n <div id=\"sidebar\">\r\n <div ngClass=\"kwikid-form-header\">\r\n <div id=\"uf-header\">\r\n <div id=\"uf-header-logo-container\">\r\n <img\r\n id=\"uf-header-logo\"\r\n src=\"{{ this.userConfig.theme.clientLogo }}\"\r\n [ngClass]=\"'large-icon'\"\r\n />\r\n </div>\r\n </div>\r\n <hr />\r\n </div>\r\n <div id=\"uf-progress\">\r\n <div id=\"uf-progress-steps\">\r\n {{ this.formsListCompleted.length }} / {{ this.formsList.length }} Steps\r\n Completed\r\n </div>\r\n <kwikui-progress-segmented\r\n [max]=\"this.formsList.length\"\r\n size=\"m\"\r\n [value]=\"this.formsListCompleted.length\"\r\n ></kwikui-progress-segmented>\r\n </div>\r\n <div id=\"uf-sections-container\">\r\n <div\r\n *ngFor=\"let form of formsList; let i = index\"\r\n [class]=\"'uf-section-item'\"\r\n [class.completed]=\"form.status === 'completed' && !form.disabled\"\r\n [class.edit]=\"form.status === 'editable' && !form.disabled\"\r\n [class.locked]=\"form.status === 'locked' && form.disabled\"\r\n (click)=\"\r\n form.status === 'locked' && form.disabled\r\n ? undefined\r\n : handleOnClickSetActiveForm(form.key)\r\n \"\r\n >\r\n <div class=\"uf-form-section-card-title\">\r\n {{ form.title }}\r\n </div>\r\n <div class=\"uf-form-section-card-action\">\r\n <div\r\n *ngIf=\"form.status === 'completed' && !form.disabled\"\r\n class=\"uf-form-section-card-action-img completed\"\r\n >\r\n <tui-svg src=\"tuiIconCheckLarge\"></tui-svg>\r\n </div>\r\n <div\r\n *ngIf=\"form.status !== 'completed' && !form.disabled\"\r\n class=\"uf-form-section-card-action-img edit\"\r\n >\r\n <tui-svg src=\"tuiIconEdit\"></tui-svg>\r\n </div>\r\n <div\r\n *ngIf=\"form.status !== 'completed' && form.disabled\"\r\n class=\"uf-form-section-card-action-img locked\"\r\n >\r\n <tui-svg src=\"tuiIconLock\"></tui-svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div id=\"submit-sidebar-btn-container\">\r\n <kwikui-button\r\n [disabled]=\"false\"\r\n id=\"\"\r\n label=\"Submit\"\r\n [showLoader]=\"false\"\r\n styles=\"\"\r\n class=\"\"\r\n type=\"button\"\r\n appearance=\"primary\"\r\n icon=\"\"\r\n iconRight=\"\"\r\n shape=\"null\"\r\n size=\"m\"\r\n styles=\"width: 100%\"\r\n (onClick)=\"handleOnSubmitForms($event)\"\r\n ></kwikui-button>\r\n </div>\r\n </div>\r\n</div>\r\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 .1rem .5rem -.25rem gray;border-radius:.5rem;background-color:var(--tui-base-02)}.uf-section-item:hover{box-shadow:0 .2rem .75rem -.5rem #656565}#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-action{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-action .uf-form-section-card-action-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-action-img.completed{background-color:#228b22;padding:.25rem;border-radius:50%;color:#fff}.uf-form-section-card-action-img.edit{background-color:#dc143c;padding:.25rem;border-radius:50%;color:#fff}.uf-form-section-card-action-img.locked{background-color:gray;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:#121212}@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: i2.KwikUIProgressSegmentedComponent, selector: "kwikui-progress-segmented", inputs: ["value", "max", "size", "colors"] }, { type: i3.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i2.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }], directives: [{ type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1963
2073
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: KwikIDFormsListComponent, decorators: [{
|
|
1964
2074
|
type: Component,
|
|
1965
2075
|
args: [{
|
|
@@ -1967,7 +2077,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
1967
2077
|
templateUrl: "./forms-list.component.html",
|
|
1968
2078
|
styleUrls: ["./forms-list.component.scss"]
|
|
1969
2079
|
}]
|
|
1970
|
-
}], ctorParameters: function () { return []; }, propDecorators: {
|
|
2080
|
+
}], ctorParameters: function () { return []; }, propDecorators: { showFormFields: [{
|
|
2081
|
+
type: Input
|
|
2082
|
+
}], userConfig: [{
|
|
2083
|
+
type: Input
|
|
2084
|
+
}], formsList: [{
|
|
1971
2085
|
type: Input
|
|
1972
2086
|
}], formsListCompleted: [{
|
|
1973
2087
|
type: Input
|
|
@@ -2195,7 +2309,6 @@ class Converter {
|
|
|
2195
2309
|
return { field: field, connectedFieldMapping: connectedFieldMapping };
|
|
2196
2310
|
};
|
|
2197
2311
|
const getConnectedElementParentFieldMapping = (field, connectedFieldMapping) => {
|
|
2198
|
-
console.log(field, connectedFieldMapping);
|
|
2199
2312
|
if (hasKey$2(connectedFieldMapping["child"], field.key)) {
|
|
2200
2313
|
for (let connectedParentKey of connectedFieldMapping["child"][field.key]) {
|
|
2201
2314
|
if (hasKey$2(connectedFieldMapping["parent"], connectedParentKey["key"])) {
|
|
@@ -2231,37 +2344,48 @@ class Converter {
|
|
|
2231
2344
|
return field;
|
|
2232
2345
|
};
|
|
2233
2346
|
const updateFieldValidatorConfig = (field) => {
|
|
2347
|
+
var _a, _b, _c, _d, _e;
|
|
2234
2348
|
if (field.type !== "title") {
|
|
2235
2349
|
const validators = hasKey$2(field, "validators") ? field.validators : {};
|
|
2236
2350
|
field = this.setMissingFieldKeyValue(field, "validators", {});
|
|
2237
2351
|
field = this.setFieldKeyValue(field, "validators", Object.assign(Object.assign({}, field["validators"]), { min: hasKey$2(validators, "min")
|
|
2238
|
-
? validators.min
|
|
2352
|
+
? isNotEmpty$1(validators.min)
|
|
2353
|
+
? Number(validators.min)
|
|
2354
|
+
: null
|
|
2239
2355
|
: hasKey$2(field, "min")
|
|
2240
|
-
? field.min
|
|
2241
|
-
:
|
|
2242
|
-
? validators.max
|
|
2356
|
+
? Number(field.min)
|
|
2357
|
+
: null, max: hasKey$2(validators, "max")
|
|
2358
|
+
? isNotEmpty$1(validators.max)
|
|
2359
|
+
? Number(validators.max)
|
|
2360
|
+
: null
|
|
2243
2361
|
: hasKey$2(field, "max")
|
|
2244
|
-
? field.max
|
|
2245
|
-
:
|
|
2246
|
-
? validators.required
|
|
2362
|
+
? Number(field.max)
|
|
2363
|
+
: null, required: hasKey$2(validators, "required")
|
|
2364
|
+
? Boolean(validators.required)
|
|
2247
2365
|
: hasKey$2(field, "required")
|
|
2248
|
-
? field.required
|
|
2249
|
-
:
|
|
2250
|
-
? validators.minLength
|
|
2366
|
+
? Boolean(field.required)
|
|
2367
|
+
: false, minLength: hasKey$2(validators, "minLength")
|
|
2368
|
+
? isNotEmpty$1(validators.minLength)
|
|
2369
|
+
? Number(validators.minLength)
|
|
2370
|
+
: null
|
|
2251
2371
|
: hasKey$2(field, "minLength")
|
|
2252
|
-
? field.minLength
|
|
2253
|
-
:
|
|
2254
|
-
? validators.maxLength
|
|
2372
|
+
? Number(field.minLength)
|
|
2373
|
+
: null, maxLength: hasKey$2(validators, "maxLength")
|
|
2374
|
+
? isNotEmpty$1(validators.maxLength)
|
|
2375
|
+
? Number(validators.maxLength)
|
|
2376
|
+
: null
|
|
2255
2377
|
: hasKey$2(field, "length")
|
|
2256
|
-
? field.length
|
|
2378
|
+
? Number(field.length)
|
|
2257
2379
|
: hasKey$2(field, "maxLength")
|
|
2258
|
-
? field.maxLength
|
|
2259
|
-
:
|
|
2260
|
-
?
|
|
2380
|
+
? Number(field.maxLength)
|
|
2381
|
+
: null, pattern: hasKey$2(validators, "pattern")
|
|
2382
|
+
? isNotEmpty$1(validators.pattern)
|
|
2383
|
+
? validators.pattern
|
|
2384
|
+
: undefined
|
|
2261
2385
|
: hasKey$2(field, "pattern")
|
|
2262
|
-
? field.pattern
|
|
2386
|
+
? { key: "CUSTOM", pattern: String(field.pattern) }
|
|
2263
2387
|
: hasKey$2(field, "regex")
|
|
2264
|
-
? field.regex
|
|
2388
|
+
? { key: "CUSTOM", pattern: String(field.regex) }
|
|
2265
2389
|
: undefined }));
|
|
2266
2390
|
delete field.min;
|
|
2267
2391
|
delete field.max;
|
|
@@ -2271,6 +2395,29 @@ class Converter {
|
|
|
2271
2395
|
delete field.maxLength;
|
|
2272
2396
|
delete field.pattern;
|
|
2273
2397
|
delete field.regex;
|
|
2398
|
+
switch (field.type) {
|
|
2399
|
+
case "text":
|
|
2400
|
+
delete field.validators.min;
|
|
2401
|
+
delete field.validators.max;
|
|
2402
|
+
break;
|
|
2403
|
+
default:
|
|
2404
|
+
break;
|
|
2405
|
+
}
|
|
2406
|
+
if (isEmpty$1((_a = field.validators) === null || _a === void 0 ? void 0 : _a.min)) {
|
|
2407
|
+
delete field.validators.min;
|
|
2408
|
+
}
|
|
2409
|
+
if (isEmpty$1((_b = field.validators) === null || _b === void 0 ? void 0 : _b.max)) {
|
|
2410
|
+
delete field.validators.min;
|
|
2411
|
+
}
|
|
2412
|
+
if (isEmpty$1((_c = field.validators) === null || _c === void 0 ? void 0 : _c.minLength)) {
|
|
2413
|
+
delete field.validators.minLength;
|
|
2414
|
+
}
|
|
2415
|
+
if (isEmpty$1((_d = field.validators) === null || _d === void 0 ? void 0 : _d.maxLength)) {
|
|
2416
|
+
delete field.validators.maxLength;
|
|
2417
|
+
}
|
|
2418
|
+
if (isEmpty$1((_e = field.validators) === null || _e === void 0 ? void 0 : _e.pattern)) {
|
|
2419
|
+
delete field.validators.pattern;
|
|
2420
|
+
}
|
|
2274
2421
|
}
|
|
2275
2422
|
return field;
|
|
2276
2423
|
};
|
|
@@ -2623,6 +2770,7 @@ class KwikIDFormsRendererComponent {
|
|
|
2623
2770
|
this.hostElement = hostElement;
|
|
2624
2771
|
this.formsData = {};
|
|
2625
2772
|
this.apiCallResponse = {};
|
|
2773
|
+
this.onClickSubmit = new EventEmitter();
|
|
2626
2774
|
this.getFormData = new EventEmitter();
|
|
2627
2775
|
this.onClickApiCall = new EventEmitter();
|
|
2628
2776
|
this.loading = false;
|
|
@@ -2712,7 +2860,9 @@ class KwikIDFormsRendererComponent {
|
|
|
2712
2860
|
}
|
|
2713
2861
|
// forms-list listener
|
|
2714
2862
|
handleOnClickSetActiveForm(selectedForm) {
|
|
2863
|
+
var _a;
|
|
2715
2864
|
return __awaiter(this, void 0, void 0, function* () {
|
|
2865
|
+
this.showForm = false;
|
|
2716
2866
|
const activeFormConfig = this.rendererService.formsList.find((form) => {
|
|
2717
2867
|
if (form.key === selectedForm) {
|
|
2718
2868
|
return form;
|
|
@@ -2720,7 +2870,8 @@ class KwikIDFormsRendererComponent {
|
|
|
2720
2870
|
});
|
|
2721
2871
|
let formConfig = yield this.rendererService.fetchFormConfig(activeFormConfig.formContent.url);
|
|
2722
2872
|
formConfig = new Converter().convertFormConfig(formConfig);
|
|
2723
|
-
|
|
2873
|
+
const activeFormData = (_a = this.rendererService.allFormsData[formConfig.key]) !== null && _a !== void 0 ? _a : {};
|
|
2874
|
+
this.rendererService.setActiveFormData(activeFormData);
|
|
2724
2875
|
this.rendererService.setActiveFormConfig(Object.assign(Object.assign({}, activeFormConfig), formConfig));
|
|
2725
2876
|
if (this.hostElement.nativeElement.offsetWidth < 600) {
|
|
2726
2877
|
this.showFormSections = false;
|
|
@@ -2736,6 +2887,7 @@ class KwikIDFormsRendererComponent {
|
|
|
2736
2887
|
// forms-list listener
|
|
2737
2888
|
handleOnClickSubmitForms(e) {
|
|
2738
2889
|
console.log(e);
|
|
2890
|
+
this.onClickSubmit.emit(e);
|
|
2739
2891
|
}
|
|
2740
2892
|
// form-view listener
|
|
2741
2893
|
handleOnClickApiCall(e) {
|
|
@@ -2749,20 +2901,20 @@ class KwikIDFormsRendererComponent {
|
|
|
2749
2901
|
}
|
|
2750
2902
|
// form-view listener
|
|
2751
2903
|
handleOnClickSaveForm(e) {
|
|
2904
|
+
this.rendererService.setActiveFormData({});
|
|
2752
2905
|
this.getFormData.emit({
|
|
2753
2906
|
[this.rendererService.activeFormConfig.key]: e["data"]
|
|
2754
2907
|
});
|
|
2755
2908
|
}
|
|
2756
2909
|
// form-view listener
|
|
2757
2910
|
handleOnClickViewForms(e) {
|
|
2758
|
-
console.log(e);
|
|
2759
2911
|
this.showFormSections = true;
|
|
2760
2912
|
this.showForm = false;
|
|
2761
2913
|
this.showFormFields = false;
|
|
2762
2914
|
}
|
|
2763
2915
|
}
|
|
2764
2916
|
/** @nocollapse */ KwikIDFormsRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: KwikIDFormsRendererComponent, deps: [{ token: KwikIDRendererService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
2765
|
-
/** @nocollapse */ KwikIDFormsRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: KwikIDFormsRendererComponent, selector: "kwikid-forms-renderer", inputs: { userConfig: "userConfig", formsData: "formsData", apiCallResponse: "apiCallResponse" }, outputs: { getFormData: "getFormData", onClickApiCall: "onClickApiCall" }, host: { listeners: { "window:resize": "windowResizeWatcher($event)" } }, providers: [KwikIDRendererService], usesOnChanges: true, ngImport: i0, template: "<div ngClass=\"kwikid-renderer\">\r\n <div
|
|
2917
|
+
/** @nocollapse */ KwikIDFormsRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: KwikIDFormsRendererComponent, selector: "kwikid-forms-renderer", inputs: { userConfig: "userConfig", formsData: "formsData", apiCallResponse: "apiCallResponse" }, outputs: { onClickSubmit: "onClickSubmit", getFormData: "getFormData", onClickApiCall: "onClickApiCall" }, host: { listeners: { "window:resize": "windowResizeWatcher($event)" } }, providers: [KwikIDRendererService], usesOnChanges: true, ngImport: i0, template: "<div ngClass=\"kwikid-renderer\">\r\n <div\r\n ngClass=\"kwikid-layout-container\"\r\n *ngIf=\"!loading\"\r\n >\r\n <div\r\n ngClass=\"kwikid-sections-container\"\r\n *ngIf=\"showFormSections\"\r\n class=\"active\"\r\n [class.active]=\"showFormSections\"\r\n [class.mobile]=\"rendererService.isMobileView\"\r\n >\r\n <kwikid-forms-list\r\n [showFormFields]=\"this.showFormFields\"\r\n [userConfig]=\"this.userConfig\"\r\n [formsList]=\"this.rendererService.formsList\"\r\n [formsListCompleted]=\"this.rendererService.formsListCompleted\"\r\n [isMobileView]=\"this.rendererService.isMobileView\"\r\n (onClickSetActiveForm)=\"this.handleOnClickSetActiveForm($event)\"\r\n (onClickSubmitForms)=\"this.handleOnClickSubmitForms($event)\"\r\n ></kwikid-forms-list>\r\n </div>\r\n <div\r\n ngClass=\"kwikid-forms-container\"\r\n *ngIf=\"this.showForm && this.showFormFields\"\r\n [class.active]=\"showFormFields\"\r\n [class.mobile]=\"rendererService.isMobileView\"\r\n [@panelInOut]\r\n >\r\n <kwikid-form-view\r\n [formConfig]=\"this.rendererService.activeFormConfig\"\r\n [formData]=\"this.rendererService.activeFormData\"\r\n [apiCallResponse]=\"this.apiCallResponse\"\r\n [formsList]=\"this.rendererService.formsList\"\r\n [allFormsData]=\"this.rendererService.allFormsData\"\r\n [isMobileView]=\"this.rendererService.isMobileView\"\r\n (onClickApiCall)=\"this.handleOnClickApiCall($event)\"\r\n (onClickViewForms)=\"this.handleOnClickViewForms($event)\"\r\n (onClickSaveForm)=\"this.handleOnClickSaveForm($event)\"\r\n (getActiveFormData)=\"this.handleGetActiveFormData($event)\"\r\n ></kwikid-form-view>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".kwikid-root{width:100%;height:100%}.kwikid-renderer{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center;width:100%;height:100%}.kwikid-layout-container{display:flex;flex-direction:row;padding:0 1rem;height:100%;justify-content:center;align-items:stretch;background:var(--tui-secondary);position:relative}.kwikid-sections-container{display:block;width:100%;max-width:400px;height:calc(100% - 2rem);padding:.25rem .5rem 0;border-radius:1rem;background-color:var(--tui-base-01);margin:auto 1rem auto 0;box-shadow:0 0 12px -8px var(--tui-primary)}.kwikid-sections-container.mobile{position:absolute;top:0;left:0;z-index:5;opacity:1;visibility:visible;transition:all 1s}.kwikid-forms-container{display:block;width:100%;max-width:50vw;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}@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}}\n"], components: [{ type: KwikIDFormsListComponent, selector: "kwikid-forms-list", inputs: ["showFormFields", "userConfig", "formsList", "formsListCompleted", "isMobileView"], outputs: ["onClickSetActiveForm", "onClickHideFormsList", "onClickSubmitForms"] }, { type: KwikIDFormViewComponent, selector: "kwikid-form-view", inputs: ["formConfig", "formData", "apiCallResponse", "isMobileView", "allFormsData", "formsList"], outputs: ["onClickViewForms", "onClickSaveForm", "onClickApiCall", "getActiveFormData"] }], directives: [{ type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
|
|
2766
2918
|
trigger("panelInOut", [
|
|
2767
2919
|
transition(":enter", [
|
|
2768
2920
|
style({ transform: "translateY(100%)" }),
|
|
@@ -2801,6 +2953,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
2801
2953
|
type: Input
|
|
2802
2954
|
}], apiCallResponse: [{
|
|
2803
2955
|
type: Input
|
|
2956
|
+
}], onClickSubmit: [{
|
|
2957
|
+
type: Output
|
|
2804
2958
|
}], getFormData: [{
|
|
2805
2959
|
type: Output
|
|
2806
2960
|
}], onClickApiCall: [{
|