kwikid-forms 0.6.43 → 0.6.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/bundles/kwikid-forms.umd.js +1010 -829
  2. package/bundles/kwikid-forms.umd.js.map +1 -1
  3. package/esm2015/lib/builder/builder-form-editor/builder-form-editor.component.js +22 -32
  4. package/esm2015/lib/builder/builder-form-editor/builder-form-editor.definitions.js +2 -1
  5. package/esm2015/lib/builder/builder-form-editor/builder-form-editor.helper.js +2 -4
  6. package/esm2015/lib/builder/builder-form-editor/builder.form-editor.constants.js +5 -5
  7. package/esm2015/lib/builder/builder-form-editor/builder.form-editor.service.js +6 -5
  8. package/esm2015/lib/builder/builder-form-list/builder-forms-list.component.js +4 -6
  9. package/esm2015/lib/builder/builder.component.js +43 -53
  10. package/esm2015/lib/builder/builder.helper.js +11 -13
  11. package/esm2015/lib/renderer/config-converter/config-converter.constants.js +22 -7
  12. package/esm2015/lib/renderer/config-converter/config-converter.helper.js +9 -10
  13. package/esm2015/lib/renderer/config-converter/config-converter.js +57 -37
  14. package/esm2015/lib/renderer/form-view/definitions/form-view.actions.definition.js +1 -1
  15. package/esm2015/lib/renderer/form-view/definitions/form-view.apis.definition.js +1 -1
  16. package/esm2015/lib/renderer/form-view/definitions/form-view.commons.definition.js +2 -1
  17. package/esm2015/lib/renderer/form-view/definitions/form-view.fields.definition.js +2 -1
  18. package/esm2015/lib/renderer/form-view/definitions/form-view.logs.definition.js +2 -1
  19. package/esm2015/lib/renderer/form-view/form-view.api.service.js +25 -24
  20. package/esm2015/lib/renderer/form-view/form-view.component.js +451 -287
  21. package/esm2015/lib/renderer/form-view/form-view.constants.js +17 -0
  22. package/esm2015/lib/renderer/form-view/form-view.module.js +15 -3
  23. package/esm2015/lib/renderer/form-view/form-view.service.js +6 -7
  24. package/esm2015/lib/renderer/form-view/helpers/form-view.apis.helper.js +44 -58
  25. package/esm2015/lib/renderer/form-view/helpers/form-view.camera.helper.js +16 -20
  26. package/esm2015/lib/renderer/form-view/helpers/form-view.defaults.helper.js +36 -97
  27. package/esm2015/lib/renderer/form-view/helpers/form-view.fields.helper.js +95 -92
  28. package/esm2015/lib/renderer/form-view/helpers/form-view.form-validations.helper.js +23 -22
  29. package/esm2015/lib/renderer/form-view/helpers/form-view.tasks.helper.js +5 -5
  30. package/esm2015/lib/renderer/form-view/pipes/filter-image-url-or-base64-from-object.pipe.js +34 -0
  31. package/esm2015/lib/renderer/form-view/pipes/filter-video-url-or-base64-from-object.pipe.js +30 -0
  32. package/esm2015/lib/renderer/forms-list/forms-list.component.js +31 -39
  33. package/esm2015/lib/renderer/forms-list/forms-list.definitions.js +2 -1
  34. package/esm2015/lib/renderer/renderer.actions.definitions.js +1 -1
  35. package/esm2015/lib/renderer/renderer.component.js +87 -113
  36. package/esm2015/lib/renderer/renderer.definitions.js +2 -1
  37. package/esm2015/lib/renderer/renderer.helper.js +2 -4
  38. package/fesm2015/kwikid-forms.js +1054 -917
  39. package/fesm2015/kwikid-forms.js.map +1 -1
  40. package/lib/builder/builder-form-editor/builder-form-editor.component.d.ts +4 -5
  41. package/lib/builder/builder-form-editor/builder.form-editor.service.d.ts +0 -1
  42. package/lib/builder/builder-form-list/builder-forms-list.component.d.ts +3 -5
  43. package/lib/renderer/config-converter/config-converter.constants.d.ts +21 -6
  44. package/lib/renderer/config-converter/config-converter.helper.d.ts +1 -0
  45. package/lib/renderer/form-view/definitions/form-view.fields.definition.d.ts +45 -25
  46. package/lib/renderer/form-view/form-view.api.service.d.ts +0 -1
  47. package/lib/renderer/form-view/form-view.component.d.ts +13 -13
  48. package/lib/renderer/form-view/form-view.constants.d.ts +16 -0
  49. package/lib/renderer/form-view/form-view.module.d.ts +10 -8
  50. package/lib/renderer/form-view/form-view.service.d.ts +1 -2
  51. package/lib/renderer/form-view/helpers/form-view.camera.helper.d.ts +5 -7
  52. package/lib/renderer/form-view/helpers/form-view.defaults.helper.d.ts +4 -6
  53. package/lib/renderer/form-view/helpers/form-view.fields.helper.d.ts +1 -1
  54. package/lib/renderer/form-view/helpers/form-view.form-validations.helper.d.ts +1 -2
  55. package/lib/renderer/form-view/helpers/form-view.tasks.helper.d.ts +1 -1
  56. package/lib/renderer/form-view/pipes/filter-image-url-or-base64-from-object.pipe.d.ts +7 -0
  57. package/lib/renderer/form-view/pipes/filter-video-url-or-base64-from-object.pipe.d.ts +7 -0
  58. package/lib/renderer/forms-list/forms-list.component.d.ts +1 -2
  59. package/package.json +1 -1
@@ -518,19 +518,19 @@
518
518
  if (kwikidToolkit.checkObjectKeyExists(form, "formContent")) {
519
519
  if (kwikidToolkit.checkObjectKeyExists(form.formContent, "url")) {
520
520
  form = kwikidToolkit.setValueToObjectPath(form, "props.url", form.formContent.url);
521
- delete form["formContent"]["url"];
521
+ delete form.formContent.url;
522
522
  }
523
523
  if (kwikidToolkit.checkObjectKeyExists(form.formContent, "path")) {
524
524
  form = kwikidToolkit.setValueToObjectPath(form, "props.path", form.formContent.path);
525
- delete form["formContent"]["path"];
525
+ delete form.formContent.path;
526
526
  }
527
527
  }
528
528
  if (kwikidToolkit.isEmptyValue(form.formContent)) {
529
- delete form["formContent"];
529
+ delete form.formContent;
530
530
  }
531
531
  if (kwikidToolkit.checkObjectKeyExists(form, "title")) {
532
532
  form = kwikidToolkit.setValueToObjectPath(form, "props.title", form.title);
533
- delete form["title"];
533
+ delete form.title;
534
534
  }
535
535
  if (!kwikidToolkit.checkObjectKeyExists(form, "hidden")) {
536
536
  form.hidden = false;
@@ -556,18 +556,16 @@
556
556
  htmlContent: form.htmlContent
557
557
  };
558
558
  }
559
- delete form["htmlContent"];
559
+ delete form.htmlContent;
560
560
  }
561
- else {
562
- if (!kwikidToolkit.checkObjectKeyExists(form, "props")) {
563
- form.props = {
564
- htmlContent: ""
565
- };
566
- }
561
+ else if (!kwikidToolkit.checkObjectKeyExists(form, "props")) {
562
+ form.props = {
563
+ htmlContent: ""
564
+ };
567
565
  }
568
566
  if (kwikidToolkit.checkObjectKeyExists(form, "title")) {
569
567
  form = kwikidToolkit.setValueToObjectPath(form, "props.title", form.title);
570
- delete form["title"];
568
+ delete form.title;
571
569
  }
572
570
  if (!kwikidToolkit.checkObjectKeyExists(form, "hidden")) {
573
571
  form.hidden = false;
@@ -602,10 +600,9 @@
602
600
  title: new i3.FormControl("", i3.Validators.required)
603
601
  });
604
602
  }
605
- KwikIDBuilderFormsListComponent.prototype.setSelectedForm = function (selected_form) {
606
- this.selectedForm = selected_form;
603
+ KwikIDBuilderFormsListComponent.prototype.setSelectedForm = function (selectedForm) {
604
+ this.selectedForm = selectedForm;
607
605
  };
608
- KwikIDBuilderFormsListComponent.prototype.ngOnInit = function () { };
609
606
  KwikIDBuilderFormsListComponent.prototype.ngOnChanges = function (changes) {
610
607
  var verifyChange = function (key) {
611
608
  return kwikidToolkit.checkObjectKeyExists(changes, key) && !changes[key].firstChange;
@@ -626,7 +623,6 @@
626
623
  KwikIDBuilderFormsListComponent.prototype.handleOnClickAddForm = function () {
627
624
  if (this.addForm.invalid) {
628
625
  alert("Please fill all the fields");
629
- return;
630
626
  }
631
627
  else {
632
628
  if (kwikidToolkit.isEmptyValue(this.activeFormConfig)) {
@@ -669,7 +665,7 @@
669
665
  templateUrl: "./builder-forms-list.component.html",
670
666
  styleUrls: ["../shared.scss", "./builder-forms-list.component.scss"]
671
667
  }]
672
- }], ctorParameters: function () { return []; }, propDecorators: { activeFormConfig: [{
668
+ }], propDecorators: { activeFormConfig: [{
673
669
  type: i0.Input
674
670
  }], formsList: [{
675
671
  type: i0.Input
@@ -708,6 +704,7 @@
708
704
  EFieldType["RECORD"] = "record";
709
705
  EFieldType["STAR_RATING"] = "star-rating";
710
706
  EFieldType["LIVE_LOCATION"] = "live-location";
707
+ EFieldType["DATA_HOLDER"] = "data-holder";
711
708
  EFieldType["CURRENCY"] = "currency";
712
709
  })(EFieldType || (EFieldType = {}));
713
710
 
@@ -856,14 +853,31 @@
856
853
  uploadFileToServer: true
857
854
  },
858
855
  capture: {
859
- containerStyles: "",
860
856
  buttonText: "Camera",
857
+ containerStyles: "",
861
858
  icon: "tuiIconCameraLarge",
862
- showMediaFiles: true,
863
- uploadFileToServer: false,
864
859
  isCroppedImage: false,
865
860
  isMaskedImage: false,
866
- watermarkDataSources: [],
861
+ showMediaFiles: true,
862
+ uploadFileToServer: false,
863
+ features: {
864
+ ocr: {
865
+ isEnabled: false,
866
+ documentType: "",
867
+ documentSide: "",
868
+ isOcrFromServer: false
869
+ },
870
+ facematch: {
871
+ isEnabled: false,
872
+ isFacematchFromServer: false,
873
+ sources: []
874
+ },
875
+ watermark: {
876
+ isEnabled: false,
877
+ isWatermarkFromServer: false,
878
+ sources: []
879
+ }
880
+ },
867
881
  cameraConfig: {
868
882
  header: {
869
883
  title: "Camera",
@@ -878,8 +892,6 @@
878
892
  },
879
893
  others: {
880
894
  isFrontCamera: false,
881
- isWatermark: false,
882
- isWatermarkForImageUpload: false,
883
895
  flipHorizontal: false,
884
896
  mask: {
885
897
  shape: ""
@@ -958,16 +970,10 @@
958
970
  };
959
971
 
960
972
  var getFormFieldByKey = function (fields, key) {
961
- var field = fields.find(function (field) {
962
- if (field.key === key) {
963
- return field;
964
- }
965
- });
966
- return field;
973
+ return fields.find(function (field) { return field.key === key; });
967
974
  };
968
975
  var getFormFieldIndexByKey = function (fields, key) {
969
- var fieldIndex;
970
- fieldIndex = fields.findIndex(function (_) {
976
+ var fieldIndex = fields.findIndex(function (_) {
971
977
  return key === _.key;
972
978
  });
973
979
  return fieldIndex;
@@ -993,17 +999,17 @@
993
999
  fieldMessage.message === message.message);
994
1000
  });
995
1001
  };
996
- field["messages"] = [];
1002
+ field.messages = [];
997
1003
  if (kwikidToolkit.checkObjectKeyExists(field, "messages")) {
998
- if (!hasDuplicateMessage(field["messages"], message)) {
999
- field["messages"].push({
1004
+ if (!hasDuplicateMessage(field.messages, message)) {
1005
+ field.messages.push({
1000
1006
  type: message.type,
1001
1007
  message: message.message
1002
1008
  });
1003
1009
  }
1004
1010
  }
1005
1011
  else {
1006
- field["messages"] = [{ type: message.type, message: message.message }];
1012
+ field.messages = [{ type: message.type, message: message.message }];
1007
1013
  }
1008
1014
  return field;
1009
1015
  };
@@ -1030,19 +1036,19 @@
1030
1036
  };
1031
1037
  var removeFormFieldMessage = function (field, message) {
1032
1038
  if (kwikidToolkit.isNotEmptyValue(field === null || field === void 0 ? void 0 : field.messages)) {
1033
- field["messages"] = field["messages"].filter(function (fieldMessage) {
1039
+ field.messages = field.messages.filter(function (fieldMessage) {
1034
1040
  return fieldMessage.type !== message.type;
1035
1041
  });
1036
1042
  }
1037
1043
  else {
1038
- field["messages"] = [];
1044
+ field.messages = [];
1039
1045
  }
1040
1046
  return field;
1041
1047
  };
1042
1048
  var setApiTimerMessage = function (field, timer) {
1043
1049
  if (timer === void 0) { timer = {}; }
1044
1050
  if (kwikidToolkit.checkObjectKeyExists(field, "api")) {
1045
- field["api"]["timer"] = timer;
1051
+ field.api.timer = timer;
1046
1052
  }
1047
1053
  else {
1048
1054
  kwikidToolkit.setMissingKeyValue(field, "api", { timer: timer });
@@ -1102,7 +1108,7 @@
1102
1108
  fields[fieldIndex] = setErrorMessages(fields[fieldIndex], errors);
1103
1109
  }
1104
1110
  else {
1105
- fields[fieldIndex]["messages"] = [];
1111
+ fields[fieldIndex].messages = [];
1106
1112
  }
1107
1113
  fields[fieldIndex] = highlightFormFieldError(fields[fieldIndex], error);
1108
1114
  return fields;
@@ -1117,14 +1123,17 @@
1117
1123
  };
1118
1124
  var convertFormFieldTypeTimeToKwikUIFormat = function (time) {
1119
1125
  var timeParts = time.split(/[.:]/);
1120
- var hours = 0, minutes = 0, seconds = 0, milliseconds = 0;
1126
+ var hours = 0;
1127
+ var minutes = 0;
1128
+ var seconds = 0;
1129
+ var milliseconds = 0;
1121
1130
  if (timeParts.length >= 2) {
1122
- hours = parseInt(timeParts[0]);
1123
- minutes = parseInt(timeParts[1]);
1131
+ hours = parseInt(timeParts[0], 10);
1132
+ minutes = parseInt(timeParts[1], 10);
1124
1133
  if (timeParts.length >= 3) {
1125
- seconds = parseInt(timeParts[2]);
1134
+ seconds = parseInt(timeParts[2], 10);
1126
1135
  if (timeParts.length === 4) {
1127
- milliseconds = parseInt(timeParts[3]);
1136
+ milliseconds = parseInt(timeParts[3], 10);
1128
1137
  }
1129
1138
  }
1130
1139
  }
@@ -1132,22 +1141,17 @@
1132
1141
  return tuiTime;
1133
1142
  };
1134
1143
  var convertFormFieldTypeDateToStandardFormat = function (date) {
1135
- var formattedDate;
1136
- var year = date.year;
1137
- var month = date.month;
1138
- var day = date.day;
1139
- formattedDate = day.toString().padStart(2, "0") + "-" + (month + 1)
1144
+ var day = date.day, month = date.month, year = date.year;
1145
+ var formattedDate = day.toString().padStart(2, "0") + "-" + (month + 1)
1140
1146
  .toString()
1141
1147
  .padStart(2, "0") + "-" + year;
1142
1148
  return formattedDate;
1143
1149
  };
1144
1150
  var convertFormFieldTypeTimeToStandardFormat = function (time) {
1145
- var formattedDate;
1146
1151
  var hour = time.hours;
1147
- var minutes = time.minutes;
1148
- var seconds = time.seconds;
1152
+ var seconds = time.seconds, minutes = time.minutes;
1149
1153
  var milliseconds = time.ms;
1150
- formattedDate = hour.toString().padStart(2, "0") + ":" + minutes
1154
+ var formattedDate = hour.toString().padStart(2, "0") + ":" + minutes
1151
1155
  .toString()
1152
1156
  .padStart(2, "0") + (seconds > 0 ? ":" + seconds.toString().padStart(2, "0") : "") + (seconds > 0 && milliseconds > 0
1153
1157
  ? ":" + milliseconds.toString().padStart(2, "0")
@@ -1173,16 +1177,15 @@
1173
1177
  break;
1174
1178
  case EFieldType.SELECT:
1175
1179
  if (Array.isArray(field.options)) {
1176
- field.options.find(function (item) {
1177
- if (kwikidToolkit.isObject(item)) {
1178
- if (item.title == value) {
1179
- convertedValue = item.value;
1180
- }
1181
- }
1180
+ var foundItem = field.options.find(function (item) {
1181
+ return kwikidToolkit.isObject(item) && item.title === value;
1182
1182
  });
1183
+ if (foundItem) {
1184
+ convertedValue = foundItem.value;
1185
+ }
1183
1186
  }
1184
1187
  break;
1185
- case EFieldType.PHONE:
1188
+ case EFieldType.PHONE: {
1186
1189
  var phoneField = field;
1187
1190
  if (phoneField.properties.removeCountryCodeFromValue) {
1188
1191
  convertedValue = value
@@ -1190,6 +1193,7 @@
1190
1193
  .replace(phoneField.properties.countryCode, "");
1191
1194
  }
1192
1195
  break;
1196
+ }
1193
1197
  case EFieldType.CAPTURE:
1194
1198
  if (Array.isArray(value) && kwikidToolkit.isNotEmptyValue(value[0])) {
1195
1199
  convertedValue = value[0];
@@ -1217,6 +1221,40 @@
1217
1221
  }
1218
1222
  return convertedValue;
1219
1223
  };
1224
+ var convertFormFieldEmptyValueToKwikUIFormat = function (field) {
1225
+ var fieldType = field.type;
1226
+ var value;
1227
+ switch (fieldType) {
1228
+ case EFieldType.CHECKBOX:
1229
+ value = false;
1230
+ break;
1231
+ case EFieldType.NUMBER:
1232
+ value = null;
1233
+ break;
1234
+ case EFieldType.DATE:
1235
+ value = null;
1236
+ break;
1237
+ case EFieldType.FILE:
1238
+ value = [];
1239
+ break;
1240
+ case EFieldType.CAPTURE:
1241
+ value = [];
1242
+ break;
1243
+ case EFieldType.RECORD:
1244
+ value = [];
1245
+ break;
1246
+ case EFieldType.SELECT:
1247
+ value = null;
1248
+ break;
1249
+ case EFieldType.DROPDOWN_WITH_SEARCH:
1250
+ value = null;
1251
+ break;
1252
+ default:
1253
+ value = "";
1254
+ break;
1255
+ }
1256
+ return value;
1257
+ };
1220
1258
  var convertFormFieldValueToKwikUIFormat = function (field, value) {
1221
1259
  var convertedValue = value;
1222
1260
  if (kwikidToolkit.isNotEmptyValue(value)) {
@@ -1232,13 +1270,12 @@
1232
1270
  break;
1233
1271
  case EFieldType.SELECT:
1234
1272
  if (Array.isArray(field.options)) {
1235
- field.options.find(function (item) {
1236
- if (kwikidToolkit.isObject(item)) {
1237
- if (item.value == value) {
1238
- convertedValue = item.title;
1239
- }
1240
- }
1273
+ var foundItem = field.options.find(function (item) {
1274
+ return kwikidToolkit.isObject(item) && item.value === value;
1241
1275
  });
1276
+ if (foundItem) {
1277
+ convertedValue = foundItem.title;
1278
+ }
1242
1279
  }
1243
1280
  break;
1244
1281
  case EFieldType.DATE:
@@ -1251,25 +1288,37 @@
1251
1288
  convertedValue = value;
1252
1289
  break;
1253
1290
  case EFieldType.CAPTURE:
1254
- if (typeof value === "string") {
1291
+ if (Array.isArray(value)) {
1292
+ convertedValue = value.filter(function (item) {
1293
+ return (typeof item === "string" ||
1294
+ (kwikidToolkit.isObject(item) && kwikidToolkit.checkObjectKeyExists(item, "image")));
1295
+ });
1296
+ }
1297
+ else if (typeof value === "string") {
1255
1298
  convertedValue = [value];
1256
1299
  }
1257
- else if (!Array.isArray(value)) {
1258
- convertedValue = [];
1300
+ else if (kwikidToolkit.isObject(value) && kwikidToolkit.checkObjectKeyExists(value, "image")) {
1301
+ convertedValue = [value];
1259
1302
  }
1260
1303
  else {
1261
- convertedValue = value;
1304
+ convertedValue = [];
1262
1305
  }
1263
1306
  break;
1264
1307
  case EFieldType.RECORD:
1265
- if (typeof value === "string") {
1308
+ if (Array.isArray(value)) {
1309
+ convertedValue = value.filter(function (item) {
1310
+ return (typeof item === "string" ||
1311
+ (kwikidToolkit.isObject(item) && kwikidToolkit.checkObjectKeyExists(item, "video")));
1312
+ });
1313
+ }
1314
+ else if (typeof value === "string") {
1266
1315
  convertedValue = [value];
1267
1316
  }
1268
- else if (!Array.isArray(value)) {
1269
- convertedValue = [];
1317
+ else if (kwikidToolkit.isObject(value) && kwikidToolkit.checkObjectKeyExists(value, "video")) {
1318
+ convertedValue = [value];
1270
1319
  }
1271
1320
  else {
1272
- convertedValue = value;
1321
+ convertedValue = [];
1273
1322
  }
1274
1323
  break;
1275
1324
  default:
@@ -1281,40 +1330,6 @@
1281
1330
  }
1282
1331
  return convertedValue;
1283
1332
  };
1284
- var convertFormFieldEmptyValueToKwikUIFormat = function (field) {
1285
- var fieldType = field.type;
1286
- var value;
1287
- switch (fieldType) {
1288
- case EFieldType.CHECKBOX:
1289
- value = false;
1290
- break;
1291
- case EFieldType.NUMBER:
1292
- value = null;
1293
- break;
1294
- case EFieldType.DATE:
1295
- value = null;
1296
- break;
1297
- case EFieldType.FILE:
1298
- value = [];
1299
- break;
1300
- case EFieldType.CAPTURE:
1301
- value = [];
1302
- break;
1303
- case EFieldType.RECORD:
1304
- value = [];
1305
- break;
1306
- case EFieldType.SELECT:
1307
- value = null;
1308
- break;
1309
- case EFieldType.DROPDOWN_WITH_SEARCH:
1310
- value = null;
1311
- break;
1312
- default:
1313
- value = "";
1314
- break;
1315
- }
1316
- return value;
1317
- };
1318
1333
 
1319
1334
  var getFormFields = function (formConfig) {
1320
1335
  var fields = [];
@@ -1339,6 +1354,9 @@
1339
1354
  var setFieldKeyHidden = function (field) {
1340
1355
  return setMissingFieldKeyValue(field, "hidden", false);
1341
1356
  };
1357
+ var setFieldKeyDisabled = function (field) {
1358
+ return setMissingFieldKeyValue(field, "disabled", true);
1359
+ };
1342
1360
  var setFieldAsFormElement = function (field, value) {
1343
1361
  return setFieldKeyValue(field, "isFormElement", value);
1344
1362
  };
@@ -1348,11 +1366,9 @@
1348
1366
  * This is to handler old version of config.
1349
1367
  * Please don't add "min" at field level, add it insider field.properties only.
1350
1368
  */
1351
- return convertFormFieldTypeDateToKwikUIFormat(field["min"]);
1352
- }
1353
- else {
1354
- return {};
1369
+ return convertFormFieldTypeDateToKwikUIFormat(field.min);
1355
1370
  }
1371
+ return {};
1356
1372
  };
1357
1373
  var getMaxDate = function (field) {
1358
1374
  if (kwikidToolkit.checkObjectKeyExists(field, "max")) {
@@ -1360,11 +1376,9 @@
1360
1376
  * This is to handler old version of config.
1361
1377
  * Please don't add "max" at field level, add it insider field.properties only.
1362
1378
  */
1363
- return convertFormFieldTypeDateToKwikUIFormat(field["max"]);
1364
- }
1365
- else {
1366
- return {};
1379
+ return convertFormFieldTypeDateToKwikUIFormat(field.max);
1367
1380
  }
1381
+ return {};
1368
1382
  };
1369
1383
  var updateLanguage = function (object, language) {
1370
1384
  if (kwikidToolkit.isObject(object)) {
@@ -1372,7 +1386,7 @@
1372
1386
  object = object[language];
1373
1387
  }
1374
1388
  else {
1375
- object = object["en"];
1389
+ object = object.en;
1376
1390
  }
1377
1391
  }
1378
1392
  return object;
@@ -1461,7 +1475,7 @@
1461
1475
  return formConfig;
1462
1476
  };
1463
1477
  Converter.prototype.convertFormConfig = function (formConfig) {
1464
- var e_1, _f;
1478
+ var e_1, _l;
1465
1479
  var formatOnFieldType = function (field) {
1466
1480
  var updateFormFieldProperties = function (field) {
1467
1481
  if (kwikidToolkit.checkObjectKeyExists(FIELD_PROPERTIES, field.type)) {
@@ -1576,20 +1590,18 @@
1576
1590
  if (typeof x === "string" || typeof x === "number") {
1577
1591
  return { label: x, disabled: false, description: "" };
1578
1592
  }
1579
- else {
1580
- if (kwikidToolkit.checkObjectKeyExists(x, "label") &&
1581
- kwikidToolkit.checkObjectKeyExists(x, "disabled") &&
1582
- kwikidToolkit.checkObjectKeyExists(x, "description")) {
1583
- return x;
1584
- }
1585
- if (!kwikidToolkit.checkObjectKeyExists(x, "disabled")) {
1586
- x = Object.assign(Object.assign({}, x), { disabled: false });
1587
- }
1588
- if (!kwikidToolkit.checkObjectKeyExists(x, "description")) {
1589
- x = Object.assign(Object.assign({}, x), { description: false });
1590
- }
1593
+ if (kwikidToolkit.checkObjectKeyExists(x, "label") &&
1594
+ kwikidToolkit.checkObjectKeyExists(x, "disabled") &&
1595
+ kwikidToolkit.checkObjectKeyExists(x, "description")) {
1591
1596
  return x;
1592
1597
  }
1598
+ if (!kwikidToolkit.checkObjectKeyExists(x, "disabled")) {
1599
+ x = Object.assign(Object.assign({}, x), { disabled: false });
1600
+ }
1601
+ if (!kwikidToolkit.checkObjectKeyExists(x, "description")) {
1602
+ x = Object.assign(Object.assign({}, x), { description: false });
1603
+ }
1604
+ return x;
1593
1605
  });
1594
1606
  return field;
1595
1607
  };
@@ -1676,6 +1688,13 @@
1676
1688
  }
1677
1689
  return field;
1678
1690
  };
1691
+ var formatFieldTypeDataHolder = function (field) {
1692
+ field = setFieldKeyHidden(field);
1693
+ field = setFieldKeyDisabled(field);
1694
+ field = setFieldAsFormElement(field, true);
1695
+ field = updateFormFieldProperties(field);
1696
+ return field;
1697
+ };
1679
1698
  var formatFieldTypeOtp = function (field) {
1680
1699
  var _a, _b;
1681
1700
  field = setFieldKeyHidden(field);
@@ -1700,9 +1719,18 @@
1700
1719
  return field;
1701
1720
  };
1702
1721
  var formatFieldTypeCapture = function (field) {
1722
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
1703
1723
  field = setFieldKeyHidden(field);
1704
1724
  field = setFieldAsFormElement(field, true);
1705
1725
  field = updateFormFieldProperties(field);
1726
+ field.properties = kwikidToolkit.getObjectDeepCopy(Object.assign(Object.assign({}, field.properties), { features: Object.assign(Object.assign({}, field.properties.features), { watermark: {
1727
+ isEnabled: (_d = (_c = (_b = (_a = field === null || field === void 0 ? void 0 : field.properties) === null || _a === void 0 ? void 0 : _a.cameraConfig) === null || _b === void 0 ? void 0 : _b.others) === null || _c === void 0 ? void 0 : _c.isWatermark) !== null && _d !== void 0 ? _d : field.properties.features.watermark.isWatermark,
1728
+ isWatermarkFromServer: (_h = (_g = (_f = (_e = field === null || field === void 0 ? void 0 : field.properties) === null || _e === void 0 ? void 0 : _e.cameraConfig) === null || _f === void 0 ? void 0 : _f.others) === null || _g === void 0 ? void 0 : _g.isWatermarkForServer) !== null && _h !== void 0 ? _h : field.properties.features.watermark.isWatermarkFromServer,
1729
+ sources: (_k = (_j = field === null || field === void 0 ? void 0 : field.properties) === null || _j === void 0 ? void 0 : _j.watermarkDataSources) !== null && _k !== void 0 ? _k : field.properties.features.watermark.sources
1730
+ } }) }));
1731
+ delete field.properties.watermarkDataSources;
1732
+ delete field.properties.cameraConfig.others.isWatermark;
1733
+ delete field.properties.cameraConfig.others.isWatermarkForImageUpload;
1706
1734
  return field;
1707
1735
  };
1708
1736
  var formatFieldTypeRecord = function (field) {
@@ -1779,11 +1807,11 @@
1779
1807
  case EFieldType.LIVE_LOCATION:
1780
1808
  field = formatFieldTypeLiveLocation(field);
1781
1809
  break;
1810
+ case EFieldType.DATA_HOLDER:
1811
+ field = formatFieldTypeDataHolder(field);
1812
+ break;
1782
1813
  case EFieldType.API:
1783
1814
  field = formatFieldTypeApi(field);
1784
- case EFieldType.LIVE_LOCATION:
1785
- field = formatFieldTypeLiveLocation(field);
1786
- break;
1787
1815
  break;
1788
1816
  case EFieldType.OTP:
1789
1817
  field = formatFieldTypeOtp(field);
@@ -1818,7 +1846,7 @@
1818
1846
  ? field.validators
1819
1847
  : {};
1820
1848
  field = setMissingFieldKeyValue(field, "validators", {});
1821
- field = setFieldKeyValue(field, "validators", Object.assign(Object.assign({}, field["validators"]), { min: kwikidToolkit.checkObjectKeyExists(validators, "min")
1849
+ field = setFieldKeyValue(field, "validators", Object.assign(Object.assign({}, field.validators), { min: kwikidToolkit.checkObjectKeyExists(validators, "min")
1822
1850
  ? kwikidToolkit.isNotEmptyValue(validators.min)
1823
1851
  ? Number(validators.min)
1824
1852
  : null
@@ -1870,6 +1898,10 @@
1870
1898
  delete field.validators.min;
1871
1899
  delete field.validators.max;
1872
1900
  break;
1901
+ case EFieldType.DATA_HOLDER:
1902
+ delete field.validators.min;
1903
+ delete field.validators.max;
1904
+ break;
1873
1905
  case EFieldType.CHECKBOX:
1874
1906
  delete field.validators.min;
1875
1907
  delete field.validators.max;
@@ -1929,18 +1961,18 @@
1929
1961
  if (kwikidToolkit.checkObjectKeyExists(field, "defaultValue")) {
1930
1962
  return field;
1931
1963
  }
1932
- else if (kwikidToolkit.checkObjectPathExists(field, "default.value.sources")) {
1964
+ if (kwikidToolkit.checkObjectPathExists(field, "default.value.sources")) {
1933
1965
  return field;
1934
1966
  }
1935
- else if (kwikidToolkit.checkObjectPathExists(field, "default.value.rules") &&
1967
+ if (kwikidToolkit.checkObjectPathExists(field, "default.value.rules") &&
1936
1968
  kwikidToolkit.checkObjectPathExists(field, "default.value.actions")) {
1937
1969
  return field;
1938
1970
  }
1939
- else if (kwikidToolkit.checkObjectPathExists(field, "default.value.value") &&
1971
+ if (kwikidToolkit.checkObjectPathExists(field, "default.value.value") &&
1940
1972
  kwikidToolkit.isNotEmptyValue(field.default.value.value)) {
1941
1973
  return field;
1942
1974
  }
1943
- else if (!kwikidToolkit.checkObjectPathExists(field, "default.value.sources")) {
1975
+ if (!kwikidToolkit.checkObjectPathExists(field, "default.value.sources")) {
1944
1976
  var defaultValue = {
1945
1977
  value: "",
1946
1978
  triggers: ["ON_INIT"],
@@ -1969,8 +2001,8 @@
1969
2001
  field = kwikidToolkit.setValueToObjectPath(field, "default.value", defaultValue);
1970
2002
  return field;
1971
2003
  }
1972
- delete field["defaultVal"];
1973
- delete field["defaultValue"];
2004
+ delete field.defaultVal;
2005
+ delete field.defaultValue;
1974
2006
  }
1975
2007
  return field;
1976
2008
  };
@@ -1998,30 +2030,30 @@
1998
2030
  };
1999
2031
  var setFormFields = function (formConfig, fields) {
2000
2032
  if (kwikidToolkit.checkObjectKeyExists(formConfig, "multiForm")) {
2001
- formConfig.multiForm["fields"] = fields;
2033
+ formConfig.multiForm.fields = fields;
2002
2034
  }
2003
2035
  else {
2004
- formConfig["fields"] = fields;
2036
+ formConfig.fields = fields;
2005
2037
  }
2006
2038
  return formConfig;
2007
2039
  };
2008
2040
  var setFormFieldGroups = function (formConfig, groups) {
2009
- formConfig["fieldGroups"] = groups;
2041
+ formConfig.fieldGroups = groups;
2010
2042
  return formConfig;
2011
2043
  };
2012
2044
  var updateFieldGroupKey = function (field) {
2013
2045
  if (kwikidToolkit.checkObjectKeyExists(field, "groupKey") &&
2014
2046
  !Array.isArray(field.groupKey)) {
2015
- field["groupKey"] = [field.groupKey];
2047
+ field.groupKey = [field.groupKey];
2016
2048
  }
2017
2049
  return field;
2018
2050
  };
2019
2051
  var updateFormFieldGroups = function (fieldGroups, field) {
2020
- var e_2, _f;
2052
+ var e_2, _l;
2021
2053
  if (kwikidToolkit.checkObjectKeyExists(field, "groupKey")) {
2022
2054
  try {
2023
- for (var _g = __values(field.groupKey), _h = _g.next(); !_h.done; _h = _g.next()) {
2024
- var groupKey = _h.value;
2055
+ for (var _m = __values(field.groupKey), _o = _m.next(); !_o.done; _o = _m.next()) {
2056
+ var groupKey = _o.value;
2025
2057
  if (kwikidToolkit.checkObjectKeyExists(fieldGroups, groupKey)) {
2026
2058
  fieldGroups[groupKey].push(field.key);
2027
2059
  }
@@ -2033,7 +2065,7 @@
2033
2065
  catch (e_2_1) { e_2 = { error: e_2_1 }; }
2034
2066
  finally {
2035
2067
  try {
2036
- if (_h && !_h.done && (_f = _g.return)) _f.call(_g);
2068
+ if (_o && !_o.done && (_l = _m.return)) _l.call(_m);
2037
2069
  }
2038
2070
  finally { if (e_2) throw e_2.error; }
2039
2071
  }
@@ -2045,26 +2077,28 @@
2045
2077
  field.label = updateLanguage(field.label, language);
2046
2078
  }
2047
2079
  if (kwikidToolkit.checkObjectPathExists(field, "properties.placeholder")) {
2048
- field.properties["placeholder"] = updateLanguage(field.properties["placeholder"], language);
2080
+ field.properties.placeholder = updateLanguage(field.properties.placeholder, language);
2049
2081
  }
2050
2082
  if (kwikidToolkit.checkObjectPathExists(field, "properties.label")) {
2051
- field.properties["label"] = updateLanguage(field.properties["label"], language);
2083
+ field.properties.label = updateLanguage(field.properties.label, language);
2052
2084
  }
2053
2085
  var updateApiStatus = function (fieldApiStatus) {
2054
2086
  for (var status in fieldApiStatus) {
2055
- fieldApiStatus[status] = updateLanguage(fieldApiStatus[status], language);
2087
+ if (kwikidToolkit.isNotEmptyValue(status)) {
2088
+ fieldApiStatus[status] = updateLanguage(fieldApiStatus[status], language);
2089
+ }
2056
2090
  }
2057
2091
  return fieldApiStatus;
2058
2092
  };
2059
2093
  switch (field.type) {
2060
2094
  case EFieldType.HTML:
2061
- field["html"] = updateLanguage(field["html"], language);
2095
+ field.html = updateLanguage(field.html, language);
2062
2096
  break;
2063
2097
  case EFieldType.CAPTURE:
2064
- field.properties["cameraConfig"].header.title = updateLanguage(field.properties["cameraConfig"].header.title, language);
2098
+ field.properties.cameraConfig.header.title = updateLanguage(field.properties.cameraConfig.header.title, language);
2065
2099
  break;
2066
2100
  case EFieldType.RECORD:
2067
- field.properties["cameraConfig"].header.title = updateLanguage(field.properties["cameraConfig"].header.title, language);
2101
+ field.properties.cameraConfig.header.title = updateLanguage(field.properties.cameraConfig.header.title, language);
2068
2102
  break;
2069
2103
  case EFieldType.SELECT:
2070
2104
  field.options = field.options.map(function (option) {
@@ -2106,10 +2140,10 @@
2106
2140
  });
2107
2141
  break;
2108
2142
  case EFieldType.API_CALL:
2109
- field["api"]["status"]["labels"] = updateApiStatus(field["api"]["status"]["labels"]);
2143
+ field.api.status.labels = updateApiStatus(field.api.status.labels);
2110
2144
  break;
2111
2145
  case EFieldType.LIVE_LOCATION:
2112
- field["api"]["status"]["labels"] = updateApiStatus(field["api"]["status"]["labels"]);
2146
+ field.api.status.labels = updateApiStatus(field.api.status.labels);
2113
2147
  break;
2114
2148
  default:
2115
2149
  break;
@@ -2135,7 +2169,7 @@
2135
2169
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
2136
2170
  finally {
2137
2171
  try {
2138
- if (fields_1_1 && !fields_1_1.done && (_f = fields_1.return)) _f.call(fields_1);
2172
+ if (fields_1_1 && !fields_1_1.done && (_l = fields_1.return)) _l.call(fields_1);
2139
2173
  }
2140
2174
  finally { if (e_1) throw e_1.error; }
2141
2175
  }
@@ -2158,6 +2192,7 @@
2158
2192
  kwikidToolkit.logMethod
2159
2193
  ], Converter.prototype, "convertFormConfig", null);
2160
2194
 
2195
+ /* eslint-disable no-unused-vars */
2161
2196
  var EFormEditorType;
2162
2197
  (function (EFormEditorType) {
2163
2198
  EFormEditorType["FIELDS"] = "FIELDS";
@@ -2166,9 +2201,7 @@
2166
2201
 
2167
2202
  var removeField = function (fields, fieldKey) {
2168
2203
  fields = fields.filter(function (row) {
2169
- if (row.key !== fieldKey) {
2170
- return row;
2171
- }
2204
+ return row.key !== fieldKey;
2172
2205
  });
2173
2206
  return fields;
2174
2207
  };
@@ -2401,16 +2434,16 @@
2401
2434
  number: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "number", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.number) }),
2402
2435
  date: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "date", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.date) }),
2403
2436
  phone: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "phone", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.phone) }),
2404
- radio: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "radio", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG["radio"]), options: [] }),
2437
+ radio: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "radio", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.radio), options: [] }),
2405
2438
  "radio-list": Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "radio-list", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG["radio-list"]), options: [] }),
2406
- select: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "select", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG["select"]), options: [] }),
2439
+ select: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "select", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.select), options: [] }),
2407
2440
  slider: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "slider", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.slider) }),
2408
2441
  otp: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "otp", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.otp) }),
2409
- api: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "api", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG["api"]) }),
2442
+ api: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "api", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.api) }),
2410
2443
  "api-call": Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "api-call", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG["api-call"]) }),
2411
2444
  "aadhaar-number": Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "aadhaar-number", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG["aadhaar-number"]) }),
2412
2445
  "input-aadhaar": Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "input-aadhaar", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG["input-aadhaar"]) }),
2413
- image: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "image", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG["image"]) }),
2446
+ image: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "image", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.image) }),
2414
2447
  "preview-image": Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "preview-image", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG["preview-image"]) }),
2415
2448
  html: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "html", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.html), html: {
2416
2449
  before: "",
@@ -2456,7 +2489,9 @@
2456
2489
  KwikIDFormBuilderFormEditorService.prototype.createNestedFormGroup = function (object) {
2457
2490
  var formGroup = {};
2458
2491
  for (var index in object) {
2459
- formGroup[index] = new i3.FormControl(object[index]);
2492
+ if (kwikidToolkit.isNotEmptyValue(index)) {
2493
+ formGroup[index] = new i3.FormControl(object[index]);
2494
+ }
2460
2495
  }
2461
2496
  return new i3.FormGroup(formGroup);
2462
2497
  };
@@ -2524,7 +2559,7 @@
2524
2559
  ];
2525
2560
  this.activeEditorType = EFormEditorType.FIELDS;
2526
2561
  this.activeFormConfig_Fields = [];
2527
- this.activeFormConfig_NoFields = {};
2562
+ this.activeFormConfigNoFields = {};
2528
2563
  this.showConfigPreview = false;
2529
2564
  // Forms
2530
2565
  this.formGroup = new i3.FormGroup({});
@@ -2556,7 +2591,6 @@
2556
2591
  /**
2557
2592
  * Angular Lifecycle Methods
2558
2593
  */
2559
- KwikIDBuilderFormEditorComponent.prototype.ngOnInit = function () { };
2560
2594
  KwikIDBuilderFormEditorComponent.prototype.ngOnChanges = function (changes) {
2561
2595
  var verifyChange = function (key) {
2562
2596
  return kwikidToolkit.checkObjectKeyExists(changes, key) && !changes[key].firstChange;
@@ -2571,8 +2605,8 @@
2571
2605
  KwikIDBuilderFormEditorComponent.prototype.initFormEditor = function (activeFormConfig) {
2572
2606
  this.toggleLoader(true);
2573
2607
  this.activeFormConfig_Fields = kwikidToolkit.getObjectDeepCopy(activeFormConfig.fields);
2574
- this.activeFormConfig_NoFields = kwikidToolkit.getObjectDeepCopy(activeFormConfig);
2575
- delete this.activeFormConfig_NoFields.fields;
2608
+ this.activeFormConfigNoFields = kwikidToolkit.getObjectDeepCopy(activeFormConfig);
2609
+ delete this.activeFormConfigNoFields.fields;
2576
2610
  this.rows = this.activeFormConfig_Fields.map(function (field) {
2577
2611
  var _a;
2578
2612
  return {
@@ -2622,21 +2656,21 @@
2622
2656
  */
2623
2657
  KwikIDBuilderFormEditorComponent.prototype.handleOnClickEditValidators = function (e) {
2624
2658
  var fieldConfig = this.formGroup.getRawValue()[e.index];
2625
- var fieldConfigValidators = fieldConfig["validators"];
2659
+ var fieldConfigValidators = fieldConfig.validators;
2626
2660
  this.activeFieldConfigValidatorsConfig = kwikidToolkit.mergeObjects(FIELD_VALIDATORS_CONFIG, fieldConfigValidators);
2627
2661
  this.showFieldConfigValidatorsConfigEditor = true;
2628
2662
  this.activeFieldConfigEditing = fieldConfig;
2629
2663
  };
2630
2664
  KwikIDBuilderFormEditorComponent.prototype.handleOnClickEditProperties = function (e) {
2631
2665
  var fieldConfig = this.formGroup.getRawValue()[e.index];
2632
- var fieldConfigProperties = fieldConfig["properties"];
2666
+ var fieldConfigProperties = fieldConfig.properties;
2633
2667
  this.activeFieldConfigPropertiesConfig = kwikidToolkit.mergeObjects(FIELD_PROPERTIES_CONFIG[e.type], fieldConfigProperties);
2634
2668
  this.showFieldConfigPropertiesConfigEditor = true;
2635
2669
  this.activeFieldConfigEditing = fieldConfig;
2636
2670
  };
2637
2671
  KwikIDBuilderFormEditorComponent.prototype.handleOnClickEditOptions = function (e) {
2638
2672
  var fieldConfig = this.formGroup.getRawValue()[e.index];
2639
- var fieldConfigOptions = fieldConfig["options"];
2673
+ var fieldConfigOptions = fieldConfig.options;
2640
2674
  this.activeFieldConfigOptionsConfig = kwikidToolkit.mergeObjects([], fieldConfigOptions);
2641
2675
  this.showFieldConfigOptionsConfigEditor = true;
2642
2676
  this.activeFieldConfigEditing = fieldConfig;
@@ -2734,8 +2768,8 @@
2734
2768
  /**
2735
2769
  * Non Fields Editor Related Methods
2736
2770
  */
2737
- KwikIDBuilderFormEditorComponent.prototype.handleOnClickSaveActiveFormConfig_NoFields = function (e) {
2738
- this.activeFormConfig_NoFields = JSON.parse(e);
2771
+ KwikIDBuilderFormEditorComponent.prototype.handleOnClickSaveActiveFormConfigNoFields = function (e) {
2772
+ this.activeFormConfigNoFields = JSON.parse(e);
2739
2773
  };
2740
2774
  /**
2741
2775
  * Other Component Methods
@@ -2772,7 +2806,7 @@
2772
2806
  try {
2773
2807
  for (var _c = __values(Object.values(kwikidToolkit.getObjectDeepCopy(this.formGroup.getRawValue()))), _d = _c.next(); !_d.done; _d = _c.next()) {
2774
2808
  var field = _d.value;
2775
- fields.push(kwikidToolkit.setValueToObjectPath(findModifiedKeys(FIELD_CONFIG[field["type"]], field, ""), "type", field["type"]));
2809
+ fields.push(kwikidToolkit.setValueToObjectPath(findModifiedKeys(FIELD_CONFIG[field.type], field, ""), "type", field.type));
2776
2810
  }
2777
2811
  }
2778
2812
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
@@ -2782,8 +2816,8 @@
2782
2816
  }
2783
2817
  finally { if (e_1) throw e_1.error; }
2784
2818
  }
2785
- var activeFormConfig_NoFields_Minified = findModifiedKeys(NOFIELD_CONFIG, kwikidToolkit.getObjectDeepCopy(this.activeFormConfig_NoFields), "");
2786
- this.activeFormConfig = kwikidToolkit.mergeObjects({}, activeFormConfig_NoFields_Minified, {
2819
+ var activeFormConfigNoFieldsMinified = findModifiedKeys(NOFIELD_CONFIG, kwikidToolkit.getObjectDeepCopy(this.activeFormConfigNoFields), "");
2820
+ this.activeFormConfig = kwikidToolkit.mergeObjects({}, activeFormConfigNoFieldsMinified, {
2787
2821
  fields: fields
2788
2822
  });
2789
2823
  };
@@ -2801,24 +2835,20 @@
2801
2835
  KwikIDBuilderFormEditorComponent.prototype.getOptions = function (index, value, key, path) {
2802
2836
  if (path.includes("properties")) {
2803
2837
  var fieldType = this.rows[index].type;
2804
- var finalPath = path + "['" + fieldType + "']." + key;
2805
- return kwikidToolkit.getObjectValueFromPath(OPTIONS, finalPath);
2806
- }
2807
- else {
2808
- var finalPath = path !== "" ? path + "." + key : key;
2809
- return kwikidToolkit.getObjectValueFromPath(OPTIONS, finalPath);
2838
+ var finalPath_1 = path + "['" + fieldType + "']." + key;
2839
+ return kwikidToolkit.getObjectValueFromPath(OPTIONS, finalPath_1);
2810
2840
  }
2841
+ var finalPath = path !== "" ? path + "." + key : key;
2842
+ return kwikidToolkit.getObjectValueFromPath(OPTIONS, finalPath);
2811
2843
  };
2812
2844
  KwikIDBuilderFormEditorComponent.prototype.isOptions = function (index, value, key, path) {
2813
2845
  if (path.includes("properties")) {
2814
2846
  var fieldType = this.rows[index].type;
2815
- var finalPath = path + "['" + fieldType + "']." + key;
2816
- return Array.isArray(kwikidToolkit.getObjectValueFromPath(OPTIONS, finalPath));
2817
- }
2818
- else {
2819
- var finalPath = path !== "" ? path + "." + key : key;
2820
- return Array.isArray(kwikidToolkit.getObjectValueFromPath(OPTIONS, finalPath));
2847
+ var finalPath_2 = path + "['" + fieldType + "']." + key;
2848
+ return Array.isArray(kwikidToolkit.getObjectValueFromPath(OPTIONS, finalPath_2));
2821
2849
  }
2850
+ var finalPath = path !== "" ? path + "." + key : key;
2851
+ return Array.isArray(kwikidToolkit.getObjectValueFromPath(OPTIONS, finalPath));
2822
2852
  };
2823
2853
  KwikIDBuilderFormEditorComponent.prototype.isBoolean = function (value) {
2824
2854
  return typeof value === "boolean";
@@ -2841,14 +2871,12 @@
2841
2871
  if (typeof item === "string") {
2842
2872
  return String(index) + "_" + item + "_" + new Date().getTime();
2843
2873
  }
2844
- else {
2845
- return String(index) + "_" + key + "_" + value + "_" + new Date().getTime();
2846
- }
2874
+ return String(index) + "_" + key + "_" + value + "_" + new Date().getTime();
2847
2875
  };
2848
2876
  return KwikIDBuilderFormEditorComponent;
2849
2877
  }());
2850
2878
  /** @nocollapse */ KwikIDBuilderFormEditorComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: KwikIDBuilderFormEditorComponent, deps: [{ token: i3__namespace.KwikUILoaderService }, { token: KwikIDFormBuilderFormEditorService }], target: i0__namespace.ɵɵFactoryTarget.Component });
2851
- /** @nocollapse */ KwikIDBuilderFormEditorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDBuilderFormEditorComponent, selector: "kwikid-builder-form-editor", inputs: { activeFormConfig: "activeFormConfig" }, outputs: { onClickSaveActiveFormConfig: "onClickSaveActiveFormConfig" }, usesOnChanges: true, ngImport: i0__namespace, template: "<!-- Component Loader -->\n<kwikui-loader></kwikui-loader>\n\n<!-- Component Main View -->\n<div class=\"container\">\n <ng-container *ngIf=\"activeFormConfig; else noFormSelectedTemplate\">\n <header>\n <div>\n &nbsp;Editing Config of Form: <b>{{ activeFormConfig.props.title }}</b>\n </div>\n <div class=\"header-form-editor-btns\">\n <button (click)=\"handleOnClickPreview()\">preview</button>\n <div>Editor&nbsp;Type:</div>\n <select (change)=\"handleOnClickChangeActiveEditor($event.target.value)\">\n <option\n *ngFor=\"let option of editorTypeOptions\"\n [value]=\"option.key\"\n [selected]=\"option.key === activeEditorType\"\n >\n {{ option.label }}\n </option>\n </select>\n </div>\n </header>\n <main>\n <div\n class=\"form-config-fields\"\n *ngIf=\"activeEditorType == 'FIELDS'; else nonFieldsEditorTemplate\"\n >\n <ng-container *ngIf=\"rows.length <= 0\">\n <div class=\"no-fields disclaimer\">\n <div><p>Please add field to get started</p></div>\n <div class=\"icon\"><h1>&plus;</h1></div>\n <button (click)=\"handleOnClickAddField()\">add field</button>\n </div>\n </ng-container>\n <table>\n <thead>\n <tr>\n <th *ngFor=\"let column of columns\">\n {{ column }}\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-container\n *ngFor=\"let row of rows; let i = index; trackBy: trackByFn\"\n >\n <tr>\n <ng-container *ngFor=\"let column of columns; let j = index\">\n <td>\n <div [class]=\"column\">\n <ng-container\n *ngIf=\"\n column !== 'delete' &&\n column !== 'validators' &&\n column !== 'properties' &&\n column !== 'type' &&\n column !== 'disabled' &&\n column !== 'options'\n \"\n [ngTemplateOutlet]=\"getFieldTemplate\"\n [ngTemplateOutletContext]=\"{\n index: i,\n fieldValue: row[column],\n fieldKey: column,\n parentPath: ''\n }\"\n ></ng-container>\n <ng-container *ngIf=\"column === 'type'\">\n <ng-container\n [ngTemplateOutlet]=\"optionFieldTemplate\"\n [ngTemplateOutletContext]=\"{\n index: i,\n key: column,\n value: row[column],\n path: '',\n options: memoizedGetOptions(\n i,\n row[column],\n column,\n ''\n )\n }\"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"column === 'disabled'\">\n <ng-container\n [ngTemplateOutlet]=\"booleanFieldTemplate\"\n [ngTemplateOutletContext]=\"{\n index: i,\n key: column,\n value: row[column],\n path: '',\n options: memoizedGetOptions(\n i,\n row[column],\n column,\n ''\n )\n }\"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"column === 'delete'\">\n <button\n (click)=\"\n handleOnClickDeleteField({\n index: i,\n key: row['key']\n })\n \"\n [disabled]=\"rows.length === 1\"\n >\n delete\n </button>\n </ng-container>\n <ng-container *ngIf=\"column === 'validators'\">\n <button\n (click)=\"\n handleOnClickEditValidators({\n index: i,\n key: row['key'],\n type: row['type']\n })\n \"\n >\n edit\n </button>\n </ng-container>\n <ng-container *ngIf=\"column === 'properties'\">\n <button\n (click)=\"\n handleOnClickEditProperties({\n index: i,\n key: row['key'],\n type: row['type']\n })\n \"\n >\n edit\n </button>\n </ng-container>\n <ng-container\n *ngIf=\"row['type'] === 'radio' && column === 'options'\"\n >\n <button\n (click)=\"\n handleOnClickEditOptions({\n index: i,\n key: row['key'],\n type: row['type']\n })\n \"\n >\n add\n </button>\n </ng-container>\n <ng-container\n *ngIf=\"row['type'] === 'select' && column === 'options'\"\n >\n <button\n (click)=\"\n handleOnClickEditOptions({\n index: i,\n key: row['key'],\n type: row['type']\n })\n \"\n >\n add\n </button>\n </ng-container>\n </div>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </tbody>\n </table>\n <div class=\"add-field-btn-container\"> </div>\n </div>\n <ng-template #nonFieldsEditorTemplate>\n <div class=\"form-config-no-fields\">\n <div\n class=\"json-editor\"\n contenteditable=\"true\"\n (keyup)=\"\n handleOnClickSaveActiveFormConfig_NoFields(\n $event.target.innerHTML\n )\n \"\n >\n {{ activeFormConfig_NoFields | json }}\n </div>\n </div>\n </ng-template>\n </main>\n <footer>\n <button\n *ngIf=\"rows.length > 0\"\n (click)=\"handleOnClickAddField()\"\n >\n add field\n </button>\n <button\n (click)=\"handleOnClickSaveActiveFormConfig()\"\n [class.secondary]=\"!savedConfig\"\n >\n {{ savedConfig ? \"saved\" : \"unsaved\" }}\n </button>\n </footer>\n </ng-container>\n <ng-template #noFormSelectedTemplate>\n <div class=\"no-form-selected disclaimer\">\n <div class=\"icon\"><h1>&#10150;</h1></div>\n <div><p>Please select a form to edit it's fields</p></div>\n </div>\n </ng-template>\n</div>\n\n<!-- Component Dialog -->\n<div\n class=\"modal\"\n [class.error]=\"dialogError === true\"\n *ngIf=\"\n dialogOpen ||\n showFieldConfigValidatorsConfigEditor ||\n showFieldConfigPropertiesConfigEditor ||\n showFieldConfigOptionsConfigEditor\n \"\n [@panelInOut]\n>\n <div class=\"modal-box\">\n <div\n class=\"modal-content\"\n *ngIf=\"dialogOpen\"\n >\n <div class=\"modal-heading\">\n <div class=\"modal-title\">\n {{ activeFormConfig.props.title }}'s Config Preview\n </div>\n <div class=\"modal-actions\">\n <button (click)=\"convertToMinifiedJson()\">minify</button>\n <button (click)=\"convertToCompleteJson()\">full</button>\n <button (click)=\"downloadJSON()\">download</button>\n <button (click)=\"copyToClipboard()\">copy</button>\n <button (click)=\"closeJSONPopup()\">close</button>\n </div>\n </div>\n <div class=\"modal-body\">\n <div class=\"json-editor\">\n <code>{{ activeFormConfig | json }}</code>\n </div>\n </div>\n </div>\n <div\n class=\"modal-content\"\n *ngIf=\"showFieldConfigValidatorsConfigEditor\"\n >\n <div class=\"modal-heading\">\n <div class=\"modal-title\">\n {{ activeFormConfig.props.title }}'s Validator Config Editor\n </div>\n <div class=\"modal-actions\">\n <button (click)=\"closeJSONPopup()\">close</button>\n </div>\n </div>\n <div class=\"modal-body\">\n <div\n class=\"json-editor\"\n contenteditable=\"true\"\n (keyup)=\"\n handleOnInputFieldConfigValidatorsConfig($event.target.innerHTML)\n \"\n >\n {{ this.activeFieldConfigValidatorsConfig | json }}\n </div>\n </div>\n </div>\n <div\n class=\"modal-content\"\n *ngIf=\"showFieldConfigPropertiesConfigEditor\"\n >\n <div class=\"modal-heading\">\n <div class=\"modal-title\">\n {{ activeFormConfig.props.title }}'s Properties Config Editor\n </div>\n <div class=\"modal-actions\">\n <button (click)=\"closeJSONPopup()\">close</button>\n </div>\n </div>\n <div class=\"modal-body\">\n <div\n class=\"json-editor\"\n contenteditable=\"true\"\n (keyup)=\"\n handleOnInputFieldConfigPropertiesConfig($event.target.innerHTML)\n \"\n >\n {{ this.activeFieldConfigPropertiesConfig | json }}\n </div>\n </div>\n </div>\n <div\n class=\"modal-content\"\n *ngIf=\"showFieldConfigOptionsConfigEditor\"\n >\n <div class=\"modal-heading\">\n <div class=\"modal-title\">\n {{ activeFormConfig.props.title }}'s Options Config Editor\n </div>\n <div class=\"modal-actions\">\n <button (click)=\"closeJSONPopup()\">close</button>\n </div>\n </div>\n <div class=\"modal-body\">\n <div\n class=\"json-editor\"\n contenteditable=\"true\"\n (keyup)=\"\n handleOnInputFieldConfigOptionsConfig($event.target.innerHTML)\n \"\n >\n {{ this.activeFieldConfigOptionsConfig | json }}\n </div>\n </div>\n </div>\n </div>\n</div>\n<!-- END -->\n\n<!-- Template for rendering different field types -->\n<!-- General Field Template -->\n<ng-template\n #getFieldTemplate\n let-index=\"index\"\n let-value=\"fieldValue\"\n let-key=\"fieldKey\"\n let-path=\"parentPath\"\n>\n <div>\n <ng-container\n [ngTemplateOutlet]=\"\n isObject(value) ? objectFieldTemplate : notObjectFieldTemplate\n \"\n [ngTemplateOutletContext]=\"{\n index: index,\n fieldValue: value,\n fieldKey: key,\n parentPath: path\n }\"\n >\n </ng-container>\n </div>\n</ng-template>\n\n<!-- Object Type Field Template -->\n<ng-template\n #objectFieldTemplate\n let-index=\"index\"\n let-value=\"fieldValue\"\n let-key=\"fieldKey\"\n let-path=\"parentPath\"\n>\n <ng-container *ngFor=\"let item of value | keyvalue\">\n <ng-container\n [ngTemplateOutlet]=\"getFieldTemplate\"\n [ngTemplateOutletContext]=\"{\n index: index,\n fieldValue: item.value,\n fieldKey: item.key,\n parentPath: path === '' ? key : path + '.' + key\n }\"\n >\n </ng-container>\n </ng-container>\n</ng-template>\n\n<!-- Non Object Type Field Template -->\n<ng-template\n #notObjectFieldTemplate\n let-index=\"index\"\n let-value=\"fieldValue\"\n let-key=\"fieldKey\"\n let-path=\"parentPath\"\n>\n <div>\n <ng-container *ngIf=\"isOptions(index, value, key, path)\">\n <ng-container\n [ngTemplateOutlet]=\"optionFieldTemplate\"\n [ngTemplateOutletContext]=\"{\n index: index,\n key: key,\n value: value,\n path: path,\n options: memoizedGetOptions(index, value, key, path)\n }\"\n ></ng-container>\n </ng-container>\n <ng-container\n *ngIf=\"!isOptions(index, value, key, path) && isString(value)\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n textFieldTemplate;\n context: { index: index, key: key, value: value, path: path }\n \"\n ></ng-container>\n </ng-container>\n <ng-container\n *ngIf=\"!isOptions(index, value, key, path) && isNumber(value)\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n numberFieldTemplate;\n context: { index: index, key: key, value: value, path: path }\n \"\n ></ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<!-- Non Object Type Field :: Options Field Template -->\n<ng-template\n #optionFieldTemplate\n let-index=\"index\"\n let-key=\"key\"\n let-value=\"value\"\n let-path=\"path\"\n let-options=\"options\"\n>\n <div class=\"field-container options\">\n <select\n (change)=\"handleOnInput({ index, key, value: { previous: value, new: $event.target.value }, path })\"\n >\n <option\n *ngFor=\"let option of options\"\n [value]=\"option\"\n [selected]=\"option === value\"\n >{{ option }}</option\n >\n </select>\n </div>\n</ng-template>\n\n<!-- Non Object Type Field :: Boolean Field Template -->\n<ng-template\n #booleanFieldTemplate\n let-index=\"index\"\n let-key=\"key\"\n let-value=\"value\"\n let-path=\"path\"\n>\n <div class=\"field-container checkbox\">\n <input\n type=\"checkbox\"\n [checked]=\"value\"\n (change)=\"handleOnInput({ index, key, value: { previous: value, new: $event.target.checked }, path })\"\n />\n </div>\n</ng-template>\n\n<!-- Non Object Type Field :: Text Field Template -->\n<ng-template\n #textFieldTemplate\n let-index=\"index\"\n let-key=\"key\"\n let-value=\"value\"\n let-path=\"path\"\n>\n <div class=\"field-container text\">\n <input\n placeholder=\"Enter {{ key }}\"\n type=\"text\"\n [value]=\"value\"\n (blur)=\"handleOnInput({ index, key, value: { previous: value, new: $event.target.value }, path })\"\n />\n </div>\n</ng-template>\n\n<!-- Non Object Type Field :: Number Field Template -->\n<ng-template\n #numberFieldTemplate\n let-index=\"index\"\n let-key=\"key\"\n let-value=\"value\"\n let-path=\"path\"\n>\n <div class=\"field-container number\">\n <input\n placeholder=\"Enter {{ key }}\"\n type=\"number\"\n [value]=\"value\"\n (blur)=\"handleOnInput({ index, key, value: { previous: value, new: $event.target.value }, path })\"\n />\n </div>\n</ng-template>\n<!-- END -->\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}input[type=text],input[type=number]{width:100%;padding:8px 12px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;appearance:auto!important}input[type=checkbox]{appearance:auto!important;width:1rem;height:1rem}select{width:100%;padding:8px 12px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box}textarea{overflow-wrap:anywhere;resize:none;unicode-bidi:embed;white-space:pre-wrap}button{display:inline-block;padding:8px 12px;background-color:#007bff;color:#fff;text-decoration:none;border-radius:4px;border:none;cursor:pointer}button:hover{background-color:#0069d9}button:active{background-color:#0056b3}button:focus{outline:none}button.secondary{padding:7px 11px;border:1px solid #007bff;background-color:#fff;color:#007bff}button.secondary:hover{background-color:#b7daff}button.secondary:active{background-color:#b7daff}button.secondary:focus{outline:none}.field-container{display:flex}.field-container label{color:gray}.field-container.checkbox{flex-direction:row;align-items:center;justify-content:center;padding:8px 12px;margin:auto}.field-container.options,.field-container.number,.field-container.text{flex-direction:column}.disclaimer{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:center;color:#121212;width:100%;height:100%}.disclaimer>*:not(:last-child){margin-bottom:1.5rem}.disclaimer .icon{width:3rem;height:3rem;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center}.disclaimer.no-form-selected h1{transform:scaleX(-1)}.disclaimer h1{font-size:5rem;font-weight:100}.disclaimer p{font-size:1rem}\n", ":host{all:unset;position:relative;width:100%;height:100%;overflow:auto}.container{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;height:100%;border:1px solid #ccc}.container header{padding:.5rem;display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;border-bottom:1px solid #ccc}.container header .header-form-editor-btns{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center}.container header .header-form-editor-btns>*:not(:last-child){margin-right:1rem}.container main{padding:.5rem;flex-grow:1;overflow:auto;display:flex;flex-direction:row;justify-content:flex-start;align-items:stretch;white-space:nowrap;position:relative}.container main>*:not(:last-child){margin-right:1rem}.container main .no-fields{position:absolute;top:0;left:0;background:white}.container main .form-config-no-fields{overflow:auto;width:100%}.container main .form-config-fields{overflow:auto;width:100%}.container main .form-config-fields .add-field-btn-container{width:100%;text-align:center}.container main .validators,.container main .properties{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch}.container main .validators>*:not(:last-child),.container main .properties>*:not(:last-child){margin-bottom:.5rem}.container main .input-checkbox-container{display:flex;flex-direction:row}.container footer{padding:.5rem;display:flex;flex-direction:row;justify-content:flex-end;align-items:stretch;border-top:1px solid lightgray}.container footer>*:not(:last-child){margin-right:1rem}.modal{position:absolute;top:0;background-color:#0000004d;width:100%;height:100%;display:flex;justify-content:center;align-items:center;left:0;flex-direction:row}.modal.error{background-color:#ff00004d}.modal-box{width:75%;height:75%;margin:auto;background-color:#fff;border-radius:1rem;box-shadow:#64646f33 0 7px 29px}.modal-content{display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch;width:100%;height:100%}.modal-heading{padding:.5rem 1rem;width:100%;display:flex;flex-direction:row;justify-content:space-between;border-bottom:1px solid lightgray;align-items:center}.modal-title{font-weight:bold;font-size:1rem}.modal-actions{display:flex;flex-direction:row;cursor:pointer}.modal-actions>*:not(:last-child){margin-right:1rem}.modal-body{overflow:auto;flex:1}.modal-body .json-editor{font-family:monospace;white-space:pre-wrap;border:none;padding:0;background-color:#f5f5f5;height:100%;outline:none;overflow:auto}.json-editor{font-family:monospace;white-space:pre-wrap;border:none;padding:0;background-color:#f5f5f5;height:100%;outline:none;overflow:auto}table{width:100%;border-collapse:collapse;margin-bottom:20px}table th,table td{padding:8px;text-align:left;border:1px solid #ccc;vertical-align:top}table th{background-color:#f2f2f2}table tr:nth-child(even){background-color:#f9f9f9}table tr:hover{background-color:#eaeaea}\n"], components: [{ type: i3__namespace.KwikUILoaderComponent, selector: "kwikui-loader" }], directives: [{ type: i3__namespace$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3__namespace$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i3__namespace$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i3__namespace$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "json": i3__namespace$2.JsonPipe, "keyvalue": i3__namespace$2.KeyValuePipe }, animations: [
2879
+ /** @nocollapse */ KwikIDBuilderFormEditorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDBuilderFormEditorComponent, selector: "kwikid-builder-form-editor", inputs: { activeFormConfig: "activeFormConfig" }, outputs: { onClickSaveActiveFormConfig: "onClickSaveActiveFormConfig" }, usesOnChanges: true, ngImport: i0__namespace, template: "<!-- Component Loader -->\n<kwikui-loader></kwikui-loader>\n\n<!-- Component Main View -->\n<div class=\"container\">\n <ng-container *ngIf=\"activeFormConfig; else noFormSelectedTemplate\">\n <header>\n <div>\n &nbsp;Editing Config of Form: <b>{{ activeFormConfig.props.title }}</b>\n </div>\n <div class=\"header-form-editor-btns\">\n <button (click)=\"handleOnClickPreview()\">preview</button>\n <div>Editor&nbsp;Type:</div>\n <select (change)=\"handleOnClickChangeActiveEditor($event.target.value)\">\n <option\n *ngFor=\"let option of editorTypeOptions\"\n [value]=\"option.key\"\n [selected]=\"option.key === activeEditorType\"\n >\n {{ option.label }}\n </option>\n </select>\n </div>\n </header>\n <main>\n <div\n class=\"form-config-fields\"\n *ngIf=\"activeEditorType == 'FIELDS'; else nonFieldsEditorTemplate\"\n >\n <ng-container *ngIf=\"rows.length <= 0\">\n <div class=\"no-fields disclaimer\">\n <div><p>Please add field to get started</p></div>\n <div class=\"icon\"><h1>&plus;</h1></div>\n <button (click)=\"handleOnClickAddField()\">add field</button>\n </div>\n </ng-container>\n <table>\n <thead>\n <tr>\n <th *ngFor=\"let column of columns\">\n {{ column }}\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-container\n *ngFor=\"let row of rows; let i = index; trackBy: trackByFn\"\n >\n <tr>\n <ng-container *ngFor=\"let column of columns; let j = index\">\n <td>\n <div [class]=\"column\">\n <ng-container\n *ngIf=\"\n column !== 'delete' &&\n column !== 'validators' &&\n column !== 'properties' &&\n column !== 'type' &&\n column !== 'disabled' &&\n column !== 'options'\n \"\n [ngTemplateOutlet]=\"getFieldTemplate\"\n [ngTemplateOutletContext]=\"{\n index: i,\n fieldValue: row[column],\n fieldKey: column,\n parentPath: ''\n }\"\n ></ng-container>\n <ng-container *ngIf=\"column === 'type'\">\n <ng-container\n [ngTemplateOutlet]=\"optionFieldTemplate\"\n [ngTemplateOutletContext]=\"{\n index: i,\n key: column,\n value: row[column],\n path: '',\n options: memoizedGetOptions(\n i,\n row[column],\n column,\n ''\n )\n }\"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"column === 'disabled'\">\n <ng-container\n [ngTemplateOutlet]=\"booleanFieldTemplate\"\n [ngTemplateOutletContext]=\"{\n index: i,\n key: column,\n value: row[column],\n path: '',\n options: memoizedGetOptions(\n i,\n row[column],\n column,\n ''\n )\n }\"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"column === 'delete'\">\n <button\n (click)=\"\n handleOnClickDeleteField({\n index: i,\n key: row['key']\n })\n \"\n [disabled]=\"rows.length === 1\"\n >\n delete\n </button>\n </ng-container>\n <ng-container *ngIf=\"column === 'validators'\">\n <button\n (click)=\"\n handleOnClickEditValidators({\n index: i,\n key: row['key'],\n type: row['type']\n })\n \"\n >\n edit\n </button>\n </ng-container>\n <ng-container *ngIf=\"column === 'properties'\">\n <button\n (click)=\"\n handleOnClickEditProperties({\n index: i,\n key: row['key'],\n type: row['type']\n })\n \"\n >\n edit\n </button>\n </ng-container>\n <ng-container\n *ngIf=\"row['type'] === 'radio' && column === 'options'\"\n >\n <button\n (click)=\"\n handleOnClickEditOptions({\n index: i,\n key: row['key'],\n type: row['type']\n })\n \"\n >\n add\n </button>\n </ng-container>\n <ng-container\n *ngIf=\"row['type'] === 'select' && column === 'options'\"\n >\n <button\n (click)=\"\n handleOnClickEditOptions({\n index: i,\n key: row['key'],\n type: row['type']\n })\n \"\n >\n add\n </button>\n </ng-container>\n </div>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </tbody>\n </table>\n <div class=\"add-field-btn-container\"> </div>\n </div>\n <ng-template #nonFieldsEditorTemplate>\n <div class=\"form-config-no-fields\">\n <div\n class=\"json-editor\"\n contenteditable=\"true\"\n (keyup)=\"\n handleOnClickSaveActiveFormConfigNoFields($event.target.innerHTML)\n \"\n >\n {{ activeFormConfigNoFields | json }}\n </div>\n </div>\n </ng-template>\n </main>\n <footer>\n <button\n *ngIf=\"rows.length > 0\"\n (click)=\"handleOnClickAddField()\"\n >\n add field\n </button>\n <button\n (click)=\"handleOnClickSaveActiveFormConfig()\"\n [class.secondary]=\"!savedConfig\"\n >\n {{ savedConfig ? \"saved\" : \"unsaved\" }}\n </button>\n </footer>\n </ng-container>\n <ng-template #noFormSelectedTemplate>\n <div class=\"no-form-selected disclaimer\">\n <div class=\"icon\"><h1>&#10150;</h1></div>\n <div><p>Please select a form to edit it's fields</p></div>\n </div>\n </ng-template>\n</div>\n\n<!-- Component Dialog -->\n<div\n class=\"modal\"\n [class.error]=\"dialogError === true\"\n *ngIf=\"\n dialogOpen ||\n showFieldConfigValidatorsConfigEditor ||\n showFieldConfigPropertiesConfigEditor ||\n showFieldConfigOptionsConfigEditor\n \"\n [@panelInOut]\n>\n <div class=\"modal-box\">\n <div\n class=\"modal-content\"\n *ngIf=\"dialogOpen\"\n >\n <div class=\"modal-heading\">\n <div class=\"modal-title\">\n {{ activeFormConfig.props.title }}'s Config Preview\n </div>\n <div class=\"modal-actions\">\n <button (click)=\"convertToMinifiedJson()\">minify</button>\n <button (click)=\"convertToCompleteJson()\">full</button>\n <button (click)=\"downloadJSON()\">download</button>\n <button (click)=\"copyToClipboard()\">copy</button>\n <button (click)=\"closeJSONPopup()\">close</button>\n </div>\n </div>\n <div class=\"modal-body\">\n <div class=\"json-editor\">\n <code>{{ activeFormConfig | json }}</code>\n </div>\n </div>\n </div>\n <div\n class=\"modal-content\"\n *ngIf=\"showFieldConfigValidatorsConfigEditor\"\n >\n <div class=\"modal-heading\">\n <div class=\"modal-title\">\n {{ activeFormConfig.props.title }}'s Validator Config Editor\n </div>\n <div class=\"modal-actions\">\n <button (click)=\"closeJSONPopup()\">close</button>\n </div>\n </div>\n <div class=\"modal-body\">\n <div\n class=\"json-editor\"\n contenteditable=\"true\"\n (keyup)=\"\n handleOnInputFieldConfigValidatorsConfig($event.target.innerHTML)\n \"\n >\n {{ this.activeFieldConfigValidatorsConfig | json }}\n </div>\n </div>\n </div>\n <div\n class=\"modal-content\"\n *ngIf=\"showFieldConfigPropertiesConfigEditor\"\n >\n <div class=\"modal-heading\">\n <div class=\"modal-title\">\n {{ activeFormConfig.props.title }}'s Properties Config Editor\n </div>\n <div class=\"modal-actions\">\n <button (click)=\"closeJSONPopup()\">close</button>\n </div>\n </div>\n <div class=\"modal-body\">\n <div\n class=\"json-editor\"\n contenteditable=\"true\"\n (keyup)=\"\n handleOnInputFieldConfigPropertiesConfig($event.target.innerHTML)\n \"\n >\n {{ this.activeFieldConfigPropertiesConfig | json }}\n </div>\n </div>\n </div>\n <div\n class=\"modal-content\"\n *ngIf=\"showFieldConfigOptionsConfigEditor\"\n >\n <div class=\"modal-heading\">\n <div class=\"modal-title\">\n {{ activeFormConfig.props.title }}'s Options Config Editor\n </div>\n <div class=\"modal-actions\">\n <button (click)=\"closeJSONPopup()\">close</button>\n </div>\n </div>\n <div class=\"modal-body\">\n <div\n class=\"json-editor\"\n contenteditable=\"true\"\n (keyup)=\"\n handleOnInputFieldConfigOptionsConfig($event.target.innerHTML)\n \"\n >\n {{ this.activeFieldConfigOptionsConfig | json }}\n </div>\n </div>\n </div>\n </div>\n</div>\n<!-- END -->\n\n<!-- Template for rendering different field types -->\n<!-- General Field Template -->\n<ng-template\n #getFieldTemplate\n let-index=\"index\"\n let-value=\"fieldValue\"\n let-key=\"fieldKey\"\n let-path=\"parentPath\"\n>\n <div>\n <ng-container\n [ngTemplateOutlet]=\"\n isObject(value) ? objectFieldTemplate : notObjectFieldTemplate\n \"\n [ngTemplateOutletContext]=\"{\n index: index,\n fieldValue: value,\n fieldKey: key,\n parentPath: path\n }\"\n >\n </ng-container>\n </div>\n</ng-template>\n\n<!-- Object Type Field Template -->\n<ng-template\n #objectFieldTemplate\n let-index=\"index\"\n let-value=\"fieldValue\"\n let-key=\"fieldKey\"\n let-path=\"parentPath\"\n>\n <ng-container *ngFor=\"let item of value | keyvalue\">\n <ng-container\n [ngTemplateOutlet]=\"getFieldTemplate\"\n [ngTemplateOutletContext]=\"{\n index: index,\n fieldValue: item.value,\n fieldKey: item.key,\n parentPath: path === '' ? key : path + '.' + key\n }\"\n >\n </ng-container>\n </ng-container>\n</ng-template>\n\n<!-- Non Object Type Field Template -->\n<ng-template\n #notObjectFieldTemplate\n let-index=\"index\"\n let-value=\"fieldValue\"\n let-key=\"fieldKey\"\n let-path=\"parentPath\"\n>\n <div>\n <ng-container *ngIf=\"isOptions(index, value, key, path)\">\n <ng-container\n [ngTemplateOutlet]=\"optionFieldTemplate\"\n [ngTemplateOutletContext]=\"{\n index: index,\n key: key,\n value: value,\n path: path,\n options: memoizedGetOptions(index, value, key, path)\n }\"\n ></ng-container>\n </ng-container>\n <ng-container\n *ngIf=\"!isOptions(index, value, key, path) && isString(value)\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n textFieldTemplate;\n context: { index: index, key: key, value: value, path: path }\n \"\n ></ng-container>\n </ng-container>\n <ng-container\n *ngIf=\"!isOptions(index, value, key, path) && isNumber(value)\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n numberFieldTemplate;\n context: { index: index, key: key, value: value, path: path }\n \"\n ></ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<!-- Non Object Type Field :: Options Field Template -->\n<ng-template\n #optionFieldTemplate\n let-index=\"index\"\n let-key=\"key\"\n let-value=\"value\"\n let-path=\"path\"\n let-options=\"options\"\n>\n <div class=\"field-container options\">\n <select\n (change)=\"\n handleOnInput({\n index,\n key,\n value: { previous: value, new: $event.target.value },\n path\n })\n \"\n >\n <option\n *ngFor=\"let option of options\"\n [value]=\"option\"\n [selected]=\"option === value\"\n >{{ option }}</option\n >\n </select>\n </div>\n</ng-template>\n\n<!-- Non Object Type Field :: Boolean Field Template -->\n<ng-template\n #booleanFieldTemplate\n let-index=\"index\"\n let-key=\"key\"\n let-value=\"value\"\n let-path=\"path\"\n>\n <div class=\"field-container checkbox\">\n <input\n type=\"checkbox\"\n [checked]=\"value\"\n (change)=\"\n handleOnInput({\n index,\n key,\n value: { previous: value, new: $event.target.checked },\n path\n })\n \"\n />\n </div>\n</ng-template>\n\n<!-- Non Object Type Field :: Text Field Template -->\n<ng-template\n #textFieldTemplate\n let-index=\"index\"\n let-key=\"key\"\n let-value=\"value\"\n let-path=\"path\"\n>\n <div class=\"field-container text\">\n <input\n placeholder=\"Enter {{ key }}\"\n type=\"text\"\n [value]=\"value\"\n (blur)=\"\n handleOnInput({\n index,\n key,\n value: { previous: value, new: $event.target.value },\n path\n })\n \"\n />\n </div>\n</ng-template>\n\n<!-- Non Object Type Field :: Number Field Template -->\n<ng-template\n #numberFieldTemplate\n let-index=\"index\"\n let-key=\"key\"\n let-value=\"value\"\n let-path=\"path\"\n>\n <div class=\"field-container number\">\n <input\n placeholder=\"Enter {{ key }}\"\n type=\"number\"\n [value]=\"value\"\n (blur)=\"\n handleOnInput({\n index,\n key,\n value: { previous: value, new: $event.target.value },\n path\n })\n \"\n />\n </div>\n</ng-template>\n<!-- END -->\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}input[type=text],input[type=number]{width:100%;padding:8px 12px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;appearance:auto!important}input[type=checkbox]{appearance:auto!important;width:1rem;height:1rem}select{width:100%;padding:8px 12px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box}textarea{overflow-wrap:anywhere;resize:none;unicode-bidi:embed;white-space:pre-wrap}button{display:inline-block;padding:8px 12px;background-color:#007bff;color:#fff;text-decoration:none;border-radius:4px;border:none;cursor:pointer}button:hover{background-color:#0069d9}button:active{background-color:#0056b3}button:focus{outline:none}button.secondary{padding:7px 11px;border:1px solid #007bff;background-color:#fff;color:#007bff}button.secondary:hover{background-color:#b7daff}button.secondary:active{background-color:#b7daff}button.secondary:focus{outline:none}.field-container{display:flex}.field-container label{color:gray}.field-container.checkbox{flex-direction:row;align-items:center;justify-content:center;padding:8px 12px;margin:auto}.field-container.options,.field-container.number,.field-container.text{flex-direction:column}.disclaimer{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:center;color:#121212;width:100%;height:100%}.disclaimer>*:not(:last-child){margin-bottom:1.5rem}.disclaimer .icon{width:3rem;height:3rem;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center}.disclaimer.no-form-selected h1{transform:scaleX(-1)}.disclaimer h1{font-size:5rem;font-weight:100}.disclaimer p{font-size:1rem}\n", ":host{all:unset;position:relative;width:100%;height:100%;overflow:auto}.container{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;height:100%;border:1px solid #ccc}.container header{padding:.5rem;display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;border-bottom:1px solid #ccc}.container header .header-form-editor-btns{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center}.container header .header-form-editor-btns>*:not(:last-child){margin-right:1rem}.container main{padding:.5rem;flex-grow:1;overflow:auto;display:flex;flex-direction:row;justify-content:flex-start;align-items:stretch;white-space:nowrap;position:relative}.container main>*:not(:last-child){margin-right:1rem}.container main .no-fields{position:absolute;top:0;left:0;background:white}.container main .form-config-no-fields{overflow:auto;width:100%}.container main .form-config-fields{overflow:auto;width:100%}.container main .form-config-fields .add-field-btn-container{width:100%;text-align:center}.container main .validators,.container main .properties{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch}.container main .validators>*:not(:last-child),.container main .properties>*:not(:last-child){margin-bottom:.5rem}.container main .input-checkbox-container{display:flex;flex-direction:row}.container footer{padding:.5rem;display:flex;flex-direction:row;justify-content:flex-end;align-items:stretch;border-top:1px solid lightgray}.container footer>*:not(:last-child){margin-right:1rem}.modal{position:absolute;top:0;background-color:#0000004d;width:100%;height:100%;display:flex;justify-content:center;align-items:center;left:0;flex-direction:row}.modal.error{background-color:#ff00004d}.modal-box{width:75%;height:75%;margin:auto;background-color:#fff;border-radius:1rem;box-shadow:#64646f33 0 7px 29px}.modal-content{display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch;width:100%;height:100%}.modal-heading{padding:.5rem 1rem;width:100%;display:flex;flex-direction:row;justify-content:space-between;border-bottom:1px solid lightgray;align-items:center}.modal-title{font-weight:bold;font-size:1rem}.modal-actions{display:flex;flex-direction:row;cursor:pointer}.modal-actions>*:not(:last-child){margin-right:1rem}.modal-body{overflow:auto;flex:1}.modal-body .json-editor{font-family:monospace;white-space:pre-wrap;border:none;padding:0;background-color:#f5f5f5;height:100%;outline:none;overflow:auto}.json-editor{font-family:monospace;white-space:pre-wrap;border:none;padding:0;background-color:#f5f5f5;height:100%;outline:none;overflow:auto}table{width:100%;border-collapse:collapse;margin-bottom:20px}table th,table td{padding:8px;text-align:left;border:1px solid #ccc;vertical-align:top}table th{background-color:#f2f2f2}table tr:nth-child(even){background-color:#f9f9f9}table tr:hover{background-color:#eaeaea}\n"], components: [{ type: i3__namespace.KwikUILoaderComponent, selector: "kwikui-loader" }], directives: [{ type: i3__namespace$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3__namespace$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i3__namespace$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i3__namespace$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "json": i3__namespace$2.JsonPipe, "keyvalue": i3__namespace$2.KeyValuePipe }, animations: [
2852
2880
  animations.trigger("panelInOut", [
2853
2881
  animations.transition(":enter", [
2854
2882
  animations.style({ transform: "translateY(100%)" }),
@@ -2859,9 +2887,6 @@
2859
2887
  ])
2860
2888
  ])
2861
2889
  ], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
2862
- __decorate([
2863
- kwikidToolkit.logMethod
2864
- ], KwikIDBuilderFormEditorComponent.prototype, "ngOnInit", null);
2865
2890
  __decorate([
2866
2891
  kwikidToolkit.logMethod
2867
2892
  ], KwikIDBuilderFormEditorComponent.prototype, "ngOnChanges", null);
@@ -2903,7 +2928,7 @@
2903
2928
  ], KwikIDBuilderFormEditorComponent.prototype, "handleOnClickDeleteField", null);
2904
2929
  __decorate([
2905
2930
  kwikidToolkit.logMethod
2906
- ], KwikIDBuilderFormEditorComponent.prototype, "handleOnClickSaveActiveFormConfig_NoFields", null);
2931
+ ], KwikIDBuilderFormEditorComponent.prototype, "handleOnClickSaveActiveFormConfigNoFields", null);
2907
2932
  __decorate([
2908
2933
  kwikidToolkit.logMethod
2909
2934
  ], KwikIDBuilderFormEditorComponent.prototype, "handleOnClickPreview", null);
@@ -2948,7 +2973,7 @@
2948
2973
  type: i0.Input
2949
2974
  }], onClickSaveActiveFormConfig: [{
2950
2975
  type: i0.Output
2951
- }], ngOnInit: [], ngOnChanges: [], initFormEditor: [], handleOnClickChangeActiveEditor: [], handleOnClickSaveActiveFormConfig: [], handleOnClickAddField: [], handleOnClickEditValidators: [], handleOnClickEditProperties: [], handleOnClickEditOptions: [], handleOnInput: [], handleOnInputFieldConfigValidatorsConfig: [], handleOnInputFieldConfigPropertiesConfig: [], handleOnInputFieldConfigOptionsConfig: [], handleOnClickDeleteField: [], handleOnClickSaveActiveFormConfig_NoFields: [], handleOnClickPreview: [], toggleLoader: [], closeJSONPopup: [], copyToClipboard: [], convertToMinifiedJson: [], convertToCompleteJson: [], downloadJSON: [] } });
2976
+ }], ngOnChanges: [], initFormEditor: [], handleOnClickChangeActiveEditor: [], handleOnClickSaveActiveFormConfig: [], handleOnClickAddField: [], handleOnClickEditValidators: [], handleOnClickEditProperties: [], handleOnClickEditOptions: [], handleOnInput: [], handleOnInputFieldConfigValidatorsConfig: [], handleOnInputFieldConfigPropertiesConfig: [], handleOnInputFieldConfigOptionsConfig: [], handleOnClickDeleteField: [], handleOnClickSaveActiveFormConfigNoFields: [], handleOnClickPreview: [], toggleLoader: [], closeJSONPopup: [], copyToClipboard: [], convertToMinifiedJson: [], convertToCompleteJson: [], downloadJSON: [] } });
2952
2977
 
2953
2978
  var KwikIDFormsBuilderComponent = /** @class */ (function () {
2954
2979
  function KwikIDFormsBuilderComponent(loaderService) {
@@ -3001,27 +3026,24 @@
3001
3026
  case 0:
3002
3027
  this.toggleLoader(true);
3003
3028
  activeFormConfig = this.formsList.find(function (form) {
3004
- if (form.key === selectedFormKey) {
3005
- return form;
3006
- }
3029
+ return form.key === selectedFormKey;
3007
3030
  });
3008
- formConfig = undefined;
3009
3031
  if (!kwikidToolkit.getObjectFromLocalStorage(activeFormConfig.key)) return [3 /*break*/, 1];
3010
3032
  formConfig = kwikidToolkit.getObjectFromLocalStorage(activeFormConfig.key);
3011
3033
  return [3 /*break*/, 14];
3012
3034
  case 1:
3013
3035
  if (!kwikidToolkit.checkObjectKeyExists(activeFormConfig, "props")) return [3 /*break*/, 7];
3014
- if (!kwikidToolkit.checkObjectKeyExists(activeFormConfig["props"], "url")) return [3 /*break*/, 3];
3015
- return [4 /*yield*/, this.fetchFormConfig(activeFormConfig["props"].url)];
3036
+ if (!kwikidToolkit.checkObjectKeyExists(activeFormConfig.props, "url")) return [3 /*break*/, 3];
3037
+ return [4 /*yield*/, this.fetchFormConfig(activeFormConfig.props.url)];
3016
3038
  case 2:
3017
3039
  formConfigFromUrl = _e.sent();
3018
3040
  formConfig = Object.assign(Object.assign({}, activeFormConfig), formConfigFromUrl);
3019
3041
  return [3 /*break*/, 6];
3020
3042
  case 3:
3021
- if (!(kwikidToolkit.checkObjectKeyExists(activeFormConfig["props"], "path") &&
3043
+ if (!(kwikidToolkit.checkObjectKeyExists(activeFormConfig.props, "path") &&
3022
3044
  kwikidToolkit.checkObjectKeyExists(this.userConfig, "backend") &&
3023
3045
  kwikidToolkit.checkObjectKeyExists(this.userConfig.backend, "CONFIG_BASE_URL"))) return [3 /*break*/, 5];
3024
- url = "" + ((_b = (_a = this.userConfig) === null || _a === void 0 ? void 0 : _a.backend) === null || _b === void 0 ? void 0 : _b.CONFIG_BASE_URL) + activeFormConfig["props"].path;
3046
+ url = "" + ((_b = (_a = this.userConfig) === null || _a === void 0 ? void 0 : _a.backend) === null || _b === void 0 ? void 0 : _b.CONFIG_BASE_URL) + activeFormConfig.props.path;
3025
3047
  return [4 /*yield*/, this.fetchFormConfig(url)];
3026
3048
  case 4:
3027
3049
  formConfigFromPath = _e.sent();
@@ -3048,7 +3070,7 @@
3048
3070
  if (!(kwikidToolkit.checkObjectKeyExists(activeFormConfig.formContent, "path") &&
3049
3071
  kwikidToolkit.checkObjectKeyExists(this.userConfig, "backend") &&
3050
3072
  kwikidToolkit.checkObjectKeyExists(this.userConfig.backend, "CONFIG_BASE_URL"))) return [3 /*break*/, 11];
3051
- url = "" + ((_d = (_c = this.userConfig) === null || _c === void 0 ? void 0 : _c.backend) === null || _d === void 0 ? void 0 : _d.CONFIG_BASE_URL) + activeFormConfig["props"].path;
3073
+ url = "" + ((_d = (_c = this.userConfig) === null || _c === void 0 ? void 0 : _c.backend) === null || _d === void 0 ? void 0 : _d.CONFIG_BASE_URL) + activeFormConfig.props.path;
3052
3074
  return [4 /*yield*/, this.fetchFormConfig(url)];
3053
3075
  case 10:
3054
3076
  formConfigFromPath = _e.sent();
@@ -3105,7 +3127,7 @@
3105
3127
  return KwikIDFormsBuilderComponent;
3106
3128
  }());
3107
3129
  /** @nocollapse */ KwikIDFormsBuilderComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: KwikIDFormsBuilderComponent, deps: [{ token: i3__namespace.KwikUILoaderService }], target: i0__namespace.ɵɵFactoryTarget.Component });
3108
- /** @nocollapse */ KwikIDFormsBuilderComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDFormsBuilderComponent, selector: "kwikid-forms-builder", inputs: { userConfig: "userConfig" }, ngImport: i0__namespace, template: "<div class=\"container\">\n <kwikid-builder-forms-list\n [activeFormConfig]=\"this.activeFormConfig\"\n [formsList]=\"this.formsList\"\n (getFormsList)=\"this.handleGetFormsList($event)\"\n (onClickSetActiveForm)=\"this.handleOnClickSetActiveForm($event)\"\n ></kwikid-builder-forms-list>\n <kwikid-builder-form-editor\n [activeFormConfig]=\"activeFormConfig\"\n (onClickSaveActiveFormConfig)=\"\n this.handleOnClickSaveActiveFormConfig($event)\n \"\n ></kwikid-builder-form-editor>\n</div>\n\n<kwikui-loader\n></kwikui-loader>\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}input[type=text],input[type=number]{width:100%;padding:8px 12px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;appearance:auto!important}input[type=checkbox]{appearance:auto!important;width:1rem;height:1rem}select{width:100%;padding:8px 12px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box}textarea{overflow-wrap:anywhere;resize:none;unicode-bidi:embed;white-space:pre-wrap}button{display:inline-block;padding:8px 12px;background-color:#007bff;color:#fff;text-decoration:none;border-radius:4px;border:none;cursor:pointer}button:hover{background-color:#0069d9}button:active{background-color:#0056b3}button:focus{outline:none}button.secondary{padding:7px 11px;border:1px solid #007bff;background-color:#fff;color:#007bff}button.secondary:hover{background-color:#b7daff}button.secondary:active{background-color:#b7daff}button.secondary:focus{outline:none}.field-container{display:flex}.field-container label{color:gray}.field-container.checkbox{flex-direction:row;align-items:center;justify-content:center;padding:8px 12px;margin:auto}.field-container.options,.field-container.number,.field-container.text{flex-direction:column}.disclaimer{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:center;color:#121212;width:100%;height:100%}.disclaimer>*:not(:last-child){margin-bottom:1.5rem}.disclaimer .icon{width:3rem;height:3rem;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center}.disclaimer.no-form-selected h1{transform:scaleX(-1)}.disclaimer h1{font-size:5rem;font-weight:100}.disclaimer p{font-size:1rem}\n", ":host{all:unset;position:relative;width:100%;height:100%}.container{width:100%;height:100%;display:flex;flex-direction:row;justify-content:space-between;align-items:stretch;padding:1rem}.container>*:not(:last-child){margin-right:1rem}\n"], components: [{ type: KwikIDBuilderFormsListComponent, selector: "kwikid-builder-forms-list", inputs: ["activeFormConfig", "formsList"], outputs: ["onClickSetActiveForm", "getFormsList"] }, { type: KwikIDBuilderFormEditorComponent, selector: "kwikid-builder-form-editor", inputs: ["activeFormConfig"], outputs: ["onClickSaveActiveFormConfig"] }, { type: i3__namespace.KwikUILoaderComponent, selector: "kwikui-loader" }] });
3130
+ /** @nocollapse */ KwikIDFormsBuilderComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDFormsBuilderComponent, selector: "kwikid-forms-builder", inputs: { userConfig: "userConfig" }, ngImport: i0__namespace, template: "<div class=\"container\">\n <kwikid-builder-forms-list\n [activeFormConfig]=\"this.activeFormConfig\"\n [formsList]=\"this.formsList\"\n (getFormsList)=\"this.handleGetFormsList($event)\"\n (onClickSetActiveForm)=\"this.handleOnClickSetActiveForm($event)\"\n ></kwikid-builder-forms-list>\n <kwikid-builder-form-editor\n [activeFormConfig]=\"activeFormConfig\"\n (onClickSaveActiveFormConfig)=\"\n this.handleOnClickSaveActiveFormConfig($event)\n \"\n ></kwikid-builder-form-editor>\n</div>\n\n<kwikui-loader></kwikui-loader>\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}input[type=text],input[type=number]{width:100%;padding:8px 12px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;appearance:auto!important}input[type=checkbox]{appearance:auto!important;width:1rem;height:1rem}select{width:100%;padding:8px 12px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box}textarea{overflow-wrap:anywhere;resize:none;unicode-bidi:embed;white-space:pre-wrap}button{display:inline-block;padding:8px 12px;background-color:#007bff;color:#fff;text-decoration:none;border-radius:4px;border:none;cursor:pointer}button:hover{background-color:#0069d9}button:active{background-color:#0056b3}button:focus{outline:none}button.secondary{padding:7px 11px;border:1px solid #007bff;background-color:#fff;color:#007bff}button.secondary:hover{background-color:#b7daff}button.secondary:active{background-color:#b7daff}button.secondary:focus{outline:none}.field-container{display:flex}.field-container label{color:gray}.field-container.checkbox{flex-direction:row;align-items:center;justify-content:center;padding:8px 12px;margin:auto}.field-container.options,.field-container.number,.field-container.text{flex-direction:column}.disclaimer{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:center;color:#121212;width:100%;height:100%}.disclaimer>*:not(:last-child){margin-bottom:1.5rem}.disclaimer .icon{width:3rem;height:3rem;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center}.disclaimer.no-form-selected h1{transform:scaleX(-1)}.disclaimer h1{font-size:5rem;font-weight:100}.disclaimer p{font-size:1rem}\n", ":host{all:unset;position:relative;width:100%;height:100%}.container{width:100%;height:100%;display:flex;flex-direction:row;justify-content:space-between;align-items:stretch;padding:1rem}.container>*:not(:last-child){margin-right:1rem}\n"], components: [{ type: KwikIDBuilderFormsListComponent, selector: "kwikid-builder-forms-list", inputs: ["activeFormConfig", "formsList"], outputs: ["onClickSetActiveForm", "getFormsList"] }, { type: KwikIDBuilderFormEditorComponent, selector: "kwikid-builder-form-editor", inputs: ["activeFormConfig"], outputs: ["onClickSaveActiveFormConfig"] }, { type: i3__namespace.KwikUILoaderComponent, selector: "kwikui-loader" }] });
3109
3131
  __decorate([
3110
3132
  kwikidToolkit.logMethod
3111
3133
  ], KwikIDFormsBuilderComponent.prototype, "fetchFormConfig", null);
@@ -3132,6 +3154,7 @@
3132
3154
  type: i0.Input
3133
3155
  }], fetchFormConfig: [], handleGetFormsList: [], handleOnClickSetActiveForm: [], handleOnClickSaveActiveFormConfig: [], toggleLoader: [] } });
3134
3156
 
3157
+ /* eslint-disable no-unused-vars */
3135
3158
  var EFormsListStatus;
3136
3159
  (function (EFormsListStatus) {
3137
3160
  EFormsListStatus["COMPLETED"] = "completed";
@@ -3215,6 +3238,7 @@
3215
3238
  EApiRequestUrlType["CALCULATED"] = "CALCULATED";
3216
3239
  })(EApiRequestUrlType || (EApiRequestUrlType = {}));
3217
3240
 
3241
+ /* eslint-disable no-unused-vars */
3218
3242
  var EMessageType;
3219
3243
  (function (EMessageType) {
3220
3244
  EMessageType["DEFAULT"] = "default";
@@ -3228,6 +3252,7 @@
3228
3252
  EFormViewGoBackMode["TABBED"] = "TABBED";
3229
3253
  })(EFormViewGoBackMode || (EFormViewGoBackMode = {}));
3230
3254
 
3255
+ /* eslint-disable no-unused-vars */
3231
3256
  var ELogEventType$1;
3232
3257
  (function (ELogEventType) {
3233
3258
  ELogEventType["FORM__ACTION_EXECUTE"] = "FORM__ACTION_EXECUTE";
@@ -3318,24 +3343,23 @@
3318
3343
  .join("");
3319
3344
  return outputString;
3320
3345
  }
3321
- else {
3322
- return undefined;
3323
- }
3346
+ return undefined;
3324
3347
  };
3325
3348
  // Function to preprocess header data
3326
3349
  KwikIDFormViewApiService.prototype.preProcessHeader = function (headerData, isVerifySignature) {
3327
3350
  if (!headerData)
3328
3351
  headerData = {};
3329
3352
  if (!headerData.headers)
3330
- headerData["headers"] = {};
3353
+ headerData.headers = {};
3331
3354
  // Generate a unique identifier if signature verification is required
3332
3355
  if (isVerifySignature) {
3333
- headerData["headers"]["xrid"] = uuid.v4();
3356
+ headerData.headers.xrid = uuid.v4();
3334
3357
  }
3335
3358
  // Retrieve session ID from local storage and add it to headers
3336
- var session_id = localStorage.getItem("session_id");
3337
- if (session_id)
3338
- headerData["headers"]["ses"] = session_id;
3359
+ var sessionId = localStorage.getItem("session_id");
3360
+ if (sessionId) {
3361
+ headerData.headers.ses = sessionId;
3362
+ }
3339
3363
  return headerData;
3340
3364
  };
3341
3365
  // Function to verify the signature
@@ -3345,16 +3369,16 @@
3345
3369
  if (!isVerifySignature) {
3346
3370
  resolve(true);
3347
3371
  }
3348
- // Check if data is invalid
3349
3372
  else if (!data) {
3373
+ // Check if data is invalid
3350
3374
  resolve(true);
3351
3375
  }
3352
- // Check if the signature is missing in headers when authentication is not skipped
3353
3376
  else if (isVerifySignature && header && !(header === null || header === void 0 ? void 0 : header.sig)) {
3377
+ // Check if the signature is missing in headers when authentication is not skipped
3354
3378
  reject(false);
3355
3379
  }
3356
- // Verify the signature when public key and header with signature are present and authentication is not skipped
3357
3380
  else if (isVerifySignature && header && (header === null || header === void 0 ? void 0 : header.sig)) {
3381
+ // Verify the signature when public key and header with signature are present and authentication is not skipped
3358
3382
  // Extract the signature and decode it
3359
3383
  var signature = header.sig.split(".")[0];
3360
3384
  var rawSignature = atob(signature);
@@ -3366,7 +3390,7 @@
3366
3390
  if (signature) {
3367
3391
  // Check if the current time is before the expiration time
3368
3392
  var dateValue = new Date().valueOf();
3369
- var dateCheck = dateValue < parseInt(exp);
3393
+ var dateCheck = dateValue < parseInt(exp, 10);
3370
3394
  // Check if the signature matches the data
3371
3395
  var res = signature === data;
3372
3396
  // Resolve the promise if the signature is valid and the date check passes
@@ -3402,7 +3426,7 @@
3402
3426
  preProcessedHeader = this.preProcessHeader(headerData, isVerifySignature);
3403
3427
  }
3404
3428
  else {
3405
- preProcessedHeader["observe"] = "response";
3429
+ preProcessedHeader.observe = "response";
3406
3430
  }
3407
3431
  // Encrypt body if required
3408
3432
  if (isEncrypt) {
@@ -3414,7 +3438,7 @@
3414
3438
  return __generator(this, function (_c) {
3415
3439
  switch (_c.label) {
3416
3440
  case 0:
3417
- data = res["data"];
3441
+ data = res.data;
3418
3442
  if (!(data && isDecrypt)) return [3 /*break*/, 2];
3419
3443
  encryptedResponse = data;
3420
3444
  return [4 /*yield*/, kwikidToolkit.decryptWithAES(encryptedResponse)];
@@ -3478,7 +3502,7 @@
3478
3502
  preProcessedHeader = this.preProcessHeader(headerData, isVerifySignature);
3479
3503
  }
3480
3504
  else {
3481
- preProcessedHeader["observe"] = "response";
3505
+ preProcessedHeader.observe = "response";
3482
3506
  }
3483
3507
  return new rxjs.Observable(function (subscriber) {
3484
3508
  axios__default["default"].get(url, preProcessedHeader).then(function (res) { return __awaiter(_this, void 0, void 0, function () {
@@ -3486,7 +3510,7 @@
3486
3510
  return __generator(this, function (_c) {
3487
3511
  switch (_c.label) {
3488
3512
  case 0:
3489
- data = res["data"];
3513
+ data = res.data;
3490
3514
  if (!isDecrypt) return [3 /*break*/, 2];
3491
3515
  encryptedResponse = data;
3492
3516
  return [4 /*yield*/, kwikidToolkit.decryptWithAES(encryptedResponse)];
@@ -3541,7 +3565,7 @@
3541
3565
  KwikIDFormViewApiService.prototype.executeApiCall = function (url, method, body, headers, isEncrypt, isDecrypt, isVerifySignature) {
3542
3566
  var _this = this;
3543
3567
  return new Promise(function (resolve) {
3544
- if (method == "GET") {
3568
+ if (method === "GET") {
3545
3569
  _this.get(url, { headers: headers }, isDecrypt, isVerifySignature).subscribe(function (res) {
3546
3570
  resolve(res);
3547
3571
  }, function (err) {
@@ -3575,16 +3599,39 @@
3575
3599
  kwikidToolkit.logMethod
3576
3600
  ], KwikIDFormViewApiService.prototype, "get", null);
3577
3601
 
3602
+ var FORM_VIEW_TIMERS = {
3603
+ WAIT_FOR_CHANGES_BEFORE_MOVING_TO_NEXT_TASK: 10,
3604
+ WAIT_FOR_FILE_METADATA_DEEPCOPY: 300,
3605
+ WAIT_FOR_KWIKID_CAMERA_TO_LOAD: 500,
3606
+ WAIT_FOR_KWIKID_CAMERA_MEDIA_TO_BE_SET: 500,
3607
+ LOCATION_PERMISSION_ERROR_TOGGLE: 3000,
3608
+ LOCATION_PERMISSION_RESET_BUTTON_STATUS: 500,
3609
+ INVALID_FIELDS_SAVE_FORM_ERROR_TOGGLE: 3000,
3610
+ TIMER_300: 300,
3611
+ TIMER_500: 500,
3612
+ TIMER_1000: 1000,
3613
+ TIMER_3000: 3000,
3614
+ WAIT_FOR_API_MOCK_DATA: 1000,
3615
+ API_MOCK_SUCCESS_STATUS_CODE: 200,
3616
+ API_MOCK_ERROR_STATUS_CODE: 200
3617
+ };
3618
+
3578
3619
  var Defaults = /** @class */ (function () {
3579
- function Defaults(field, formFields, allFormsData, formData, previousFormData, extraData, takeAction) {
3620
+ function Defaults(field, object, takeAction) {
3580
3621
  this._field = field;
3581
- this._formFields = formFields;
3582
- this._allFormsData = allFormsData;
3583
- this._formData = formData;
3584
- this._previousFormData = previousFormData;
3585
- this._extraData = extraData;
3622
+ this._object = object;
3586
3623
  this._takeAction = takeAction;
3587
3624
  }
3625
+ Object.defineProperty(Defaults.prototype, "object", {
3626
+ get: function () {
3627
+ return this._object;
3628
+ },
3629
+ set: function (value) {
3630
+ this._object = value;
3631
+ },
3632
+ enumerable: false,
3633
+ configurable: true
3634
+ });
3588
3635
  Defaults.prototype.getFormFieldValue = function () {
3589
3636
  return __awaiter(this, void 0, void 0, function () {
3590
3637
  var defaultValue, engine, triggers, rules, actions, rulesMapping, actions_1, actions_1_1, action, conditionEvaluation, actions_3, e_1_1, sources, sourceIndex, sources_1, sources_1_1, source, sources_2, value, validation, triggers, rules, actions, rulesMapping, actions_2, actions_2_1, action, conditionEvaluation, actions_4, e_2_1, e_3_1;
@@ -3602,17 +3649,8 @@
3602
3649
  case 1:
3603
3650
  if (!!kwikidToolkit.checkObjectKeyExists(this._field.default.value, "sources")) return [3 /*break*/, 10];
3604
3651
  engine = this._field.default.value;
3605
- triggers = engine.triggers;
3606
- rules = engine.rules;
3607
- actions = engine.actions;
3608
- rulesMapping = new kwikidToolkit.Rule(rules, {
3609
- FIELD_CONFIG: this._field,
3610
- FORM_FIELDS: this._formFields,
3611
- FORM_DATA: this._formData,
3612
- PREVIOUS_FORM_DATA: this._previousFormData,
3613
- ALL_FORMS_DATA: this._allFormsData,
3614
- EXTRA_DATA: this._extraData
3615
- }).mapping();
3652
+ triggers = engine.triggers, rules = engine.rules, actions = engine.actions;
3653
+ rulesMapping = new kwikidToolkit.Rule(rules, Object.assign(Object.assign({}, this._object), { FIELD_CONFIG: this._field })).mapping();
3616
3654
  _d.label = 2;
3617
3655
  case 2:
3618
3656
  _d.trys.push([2, 7, 8, 9]);
@@ -3623,14 +3661,7 @@
3623
3661
  action = actions_1_1.value;
3624
3662
  conditionEvaluation = new kwikidToolkit.Condition(action.condition, rulesMapping).evaluate();
3625
3663
  if (!conditionEvaluation) return [3 /*break*/, 5];
3626
- actions_3 = new kwikidToolkit.Action(action, rulesMapping, {
3627
- FIELD_CONFIG: this._field,
3628
- FORM_FIELDS: this._formFields,
3629
- FORM_DATA: this._formData,
3630
- PREVIOUS_FORM_DATA: this._previousFormData,
3631
- ALL_FORMS_DATA: this._allFormsData,
3632
- EXTRA_DATA: this._extraData
3633
- }, this._takeAction);
3664
+ actions_3 = new kwikidToolkit.Action(action, rulesMapping, Object.assign(Object.assign({}, this._object), { FIELD_CONFIG: this._field }), this._takeAction);
3634
3665
  return [4 /*yield*/, actions_3.execute()];
3635
3666
  case 4:
3636
3667
  _d.sent();
@@ -3666,14 +3697,7 @@
3666
3697
  case 12:
3667
3698
  if (!!sources_1_1.done) return [3 /*break*/, 22];
3668
3699
  source = sources_1_1.value;
3669
- sources_2 = new kwikidToolkit.Source({
3670
- FIELD_CONFIG: this._field,
3671
- FORM_FIELDS: this._formFields,
3672
- FORM_DATA: this._formData,
3673
- PREVIOUS_FORM_DATA: this._previousFormData,
3674
- ALL_FORMS_DATA: this._allFormsData,
3675
- EXTRA_DATA: this._extraData
3676
- });
3700
+ sources_2 = new kwikidToolkit.Source(Object.assign(Object.assign({}, this._object), { FIELD_CONFIG: this._field }));
3677
3701
  value = sources_2.getValueFromSource(source);
3678
3702
  // Set the Value of current source.
3679
3703
  this._field = kwikidToolkit.setValueToObjectPath(this._field, "default.value.sources.[" + sourceIndex + "].value", value);
@@ -3681,14 +3705,7 @@
3681
3705
  triggers = validation.triggers;
3682
3706
  rules = validation.rules;
3683
3707
  actions = validation.actions;
3684
- rulesMapping = new kwikidToolkit.Rule(rules, {
3685
- FIELD_CONFIG: this._field,
3686
- FORM_FIELDS: this._formFields,
3687
- FORM_DATA: this._formData,
3688
- PREVIOUS_FORM_DATA: this._previousFormData,
3689
- ALL_FORMS_DATA: this._allFormsData,
3690
- EXTRA_DATA: this._extraData
3691
- }).mapping();
3708
+ rulesMapping = new kwikidToolkit.Rule(rules, Object.assign(Object.assign({}, this._object), { FIELD_CONFIG: this._field })).mapping();
3692
3709
  _d.label = 13;
3693
3710
  case 13:
3694
3711
  _d.trys.push([13, 18, 19, 20]);
@@ -3699,14 +3716,7 @@
3699
3716
  action = actions_2_1.value;
3700
3717
  conditionEvaluation = new kwikidToolkit.Condition(action.condition, rulesMapping).evaluate();
3701
3718
  if (!conditionEvaluation) return [3 /*break*/, 16];
3702
- actions_4 = new kwikidToolkit.Action(action, rulesMapping, {
3703
- FIELD_CONFIG: this._field,
3704
- FORM_FIELDS: this._formFields,
3705
- FORM_DATA: this._formData,
3706
- PREVIOUS_FORM_DATA: this._previousFormData,
3707
- ALL_FORMS_DATA: this._allFormsData,
3708
- EXTRA_DATA: this._extraData
3709
- }, this._takeAction);
3719
+ actions_4 = new kwikidToolkit.Action(action, rulesMapping, Object.assign(Object.assign({}, this._object), { FIELD_CONFIG: this._field }), this._takeAction);
3710
3720
  return [4 /*yield*/, actions_4.execute()];
3711
3721
  case 15:
3712
3722
  _d.sent();
@@ -3726,7 +3736,7 @@
3726
3736
  finally { if (e_2) throw e_2.error; }
3727
3737
  return [7 /*endfinally*/];
3728
3738
  case 20:
3729
- sourceIndex++;
3739
+ sourceIndex += 1;
3730
3740
  _d.label = 21;
3731
3741
  case 21:
3732
3742
  sources_1_1 = sources_1.next();
@@ -3763,14 +3773,7 @@
3763
3773
  apiConfig = this._field.default.api;
3764
3774
  rules = apiConfig.rules;
3765
3775
  actions = apiConfig.actions;
3766
- rulesMapping = new kwikidToolkit.Rule(rules, {
3767
- FIELD_CONFIG: this._field,
3768
- FORM_FIELDS: this._formFields,
3769
- FORM_DATA: this._formData,
3770
- PREVIOUS_FORM_DATA: this._previousFormData,
3771
- ALL_FORMS_DATA: this._allFormsData,
3772
- EXTRA_DATA: this._extraData
3773
- }).mapping();
3776
+ rulesMapping = new kwikidToolkit.Rule(rules, Object.assign(Object.assign({}, this._object), { FIELD_CONFIG: this._field })).mapping();
3774
3777
  _b.label = 1;
3775
3778
  case 1:
3776
3779
  _b.trys.push([1, 6, 7, 8]);
@@ -3781,14 +3784,7 @@
3781
3784
  action = actions_5_1.value;
3782
3785
  conditionEvaluation = new kwikidToolkit.Condition(action.condition, rulesMapping).evaluate();
3783
3786
  if (!conditionEvaluation) return [3 /*break*/, 4];
3784
- actions_6 = new kwikidToolkit.Action(action, rulesMapping, {
3785
- FIELD_CONFIG: this._field,
3786
- FORM_FIELDS: this._formFields,
3787
- FORM_DATA: this._formData,
3788
- PREVIOUS_FORM_DATA: this._previousFormData,
3789
- ALL_FORMS_DATA: this._allFormsData,
3790
- EXTRA_DATA: this._extraData
3791
- }, this._takeAction);
3787
+ actions_6 = new kwikidToolkit.Action(action, rulesMapping, Object.assign(Object.assign({}, this._object), { FIELD_CONFIG: this._field }), this._takeAction);
3792
3788
  return [4 /*yield*/, actions_6.execute()];
3793
3789
  case 3:
3794
3790
  _b.sent();
@@ -3822,14 +3818,7 @@
3822
3818
  optionsConfig = this._field.default.options;
3823
3819
  rules = optionsConfig.rules;
3824
3820
  actions = optionsConfig.actions;
3825
- rulesMapping = new kwikidToolkit.Rule(rules, {
3826
- FIELD_CONFIG: this._field,
3827
- FORM_FIELDS: this._formFields,
3828
- FORM_DATA: this._formData,
3829
- PREVIOUS_FORM_DATA: this._previousFormData,
3830
- ALL_FORMS_DATA: this._allFormsData,
3831
- EXTRA_DATA: this._extraData
3832
- }).mapping();
3821
+ rulesMapping = new kwikidToolkit.Rule(rules, Object.assign(Object.assign({}, this._object), { FIELD_CONFIG: this._field })).mapping();
3833
3822
  _b.label = 1;
3834
3823
  case 1:
3835
3824
  _b.trys.push([1, 6, 7, 8]);
@@ -3840,14 +3829,7 @@
3840
3829
  action = actions_7_1.value;
3841
3830
  conditionEvaluation = new kwikidToolkit.Condition(action.condition, rulesMapping).evaluate();
3842
3831
  if (!conditionEvaluation) return [3 /*break*/, 4];
3843
- actions_8 = new kwikidToolkit.Action(action, rulesMapping, {
3844
- FIELD_CONFIG: this._field,
3845
- FORM_FIELDS: this._formFields,
3846
- FORM_DATA: this._formData,
3847
- PREVIOUS_FORM_DATA: this._previousFormData,
3848
- ALL_FORMS_DATA: this._allFormsData,
3849
- EXTRA_DATA: this._extraData
3850
- }, this._takeAction);
3832
+ actions_8 = new kwikidToolkit.Action(action, rulesMapping, Object.assign(Object.assign({}, this._object), { FIELD_CONFIG: this._field }), this._takeAction);
3851
3833
  return [4 /*yield*/, actions_8.execute()];
3852
3834
  case 3:
3853
3835
  _b.sent();
@@ -3883,6 +3865,15 @@
3883
3865
  kwikidToolkit.logMethod
3884
3866
  ], Defaults.prototype, "getFormFieldOptions", null);
3885
3867
 
3868
+ function NoWhitespacesValidator() {
3869
+ return function (control) {
3870
+ var value = control.value;
3871
+ if (!value || typeof value !== "string") {
3872
+ return null;
3873
+ }
3874
+ return kwikidToolkit.hasWhitespacesOnly(value) ? { onlyWhitespaces: true } : null;
3875
+ };
3876
+ }
3886
3877
  var FormValidation = /** @class */ (function () {
3887
3878
  function FormValidation() {
3888
3879
  }
@@ -3936,14 +3927,16 @@
3936
3927
  FormValidation.prototype.getFormFieldsValidationErrors = function (formGroup) {
3937
3928
  var errors = [];
3938
3929
  var _loop_1 = function (key) {
3939
- var controlErrors = formGroup.controls[key].errors;
3940
- if (controlErrors !== null && controlErrors !== undefined) {
3941
- Object.keys(controlErrors).forEach(function (keyError) {
3942
- errors.push({
3943
- name: keyError,
3944
- value: controlErrors[keyError]
3930
+ if (kwikidToolkit.isNotEmptyValue(key)) {
3931
+ var controlErrors_1 = formGroup.controls[key].errors;
3932
+ if (controlErrors_1 !== null && controlErrors_1 !== undefined) {
3933
+ Object.keys(controlErrors_1).forEach(function (keyError) {
3934
+ errors.push({
3935
+ name: keyError,
3936
+ value: controlErrors_1[keyError]
3937
+ });
3945
3938
  });
3946
- });
3939
+ }
3947
3940
  }
3948
3941
  };
3949
3942
  for (var key in formGroup.controls) {
@@ -3990,21 +3983,12 @@
3990
3983
  __decorate([
3991
3984
  kwikidToolkit.logMethod
3992
3985
  ], FormValidation.prototype, "getFormFieldsInvalidControls", null);
3993
- function NoWhitespacesValidator() {
3994
- return function (control) {
3995
- var value = control.value;
3996
- if (!value || typeof value !== "string") {
3997
- return null;
3998
- }
3999
- return kwikidToolkit.hasWhitespacesOnly(value) ? { onlyWhitespaces: true } : null;
4000
- };
4001
- }
4002
3986
 
4003
3987
  var KwikIDFormViewService = /** @class */ (function () {
4004
3988
  function KwikIDFormViewService() {
4005
3989
  }
4006
3990
  // 'init' stage of the form
4007
- KwikIDFormViewService.prototype.createFormGroup = function (fields, formData, previousFormData, allFormsData, extraData, takeAction) {
3991
+ KwikIDFormViewService.prototype.createFormGroup = function (fields, object, takeAction) {
4008
3992
  return __awaiter(this, void 0, void 0, function () {
4009
3993
  var formGroup, fields_1, fields_1_1, field, defaults, value, validators, e_1_1;
4010
3994
  var e_1, _a;
@@ -4021,7 +4005,7 @@
4021
4005
  if (!!fields_1_1.done) return [3 /*break*/, 10];
4022
4006
  field = fields_1_1.value;
4023
4007
  if (!field.isFormElement) return [3 /*break*/, 9];
4024
- defaults = new Defaults(field, fields, allFormsData, formData, previousFormData, extraData, takeAction);
4008
+ defaults = new Defaults(field, Object.assign(Object.assign({}, object), { FORM_FIELDS: fields }), takeAction);
4025
4009
  value = "";
4026
4010
  if (!kwikidToolkit.checkObjectKeyExists(field, "default")) return [3 /*break*/, 4];
4027
4011
  if (!kwikidToolkit.checkObjectKeyExists(field.default, "value")) return [3 /*break*/, 4];
@@ -4097,7 +4081,7 @@
4097
4081
  return __generator(this, function (_l) {
4098
4082
  switch (_l.label) {
4099
4083
  case 0:
4100
- if (!(this._request.url.hasOwnProperty("type") &&
4084
+ if (!(kwikidToolkit.checkObjectKeyExists(this._request.url, "type") &&
4101
4085
  this._request.url.type === EApiRequestUrlType.CALCULATED)) return [3 /*break*/, 2];
4102
4086
  source = new kwikidToolkit.Source(this._object);
4103
4087
  return [4 /*yield*/, source.getValueFromSource(this._request.url.props.value.source)];
@@ -4123,7 +4107,7 @@
4123
4107
  return __generator(this, function (_q) {
4124
4108
  switch (_q.label) {
4125
4109
  case 0:
4126
- if (!kwikidToolkit.checkObjectKeyExists(this._request, "body")) return [3 /*break*/, 34];
4110
+ if (!kwikidToolkit.checkObjectKeyExists(this._request, "body")) return [3 /*break*/, 33];
4127
4111
  if (!kwikidToolkit.checkObjectKeyExists(this._request.body, "params")) return [3 /*break*/, 23];
4128
4112
  params = this._request.body.params;
4129
4113
  paramIndex = 0;
@@ -4184,7 +4168,7 @@
4184
4168
  finally { if (e_1) throw e_1.error; }
4185
4169
  return [7 /*endfinally*/];
4186
4170
  case 12:
4187
- sourceIndex++;
4171
+ sourceIndex += 1;
4188
4172
  _q.label = 13;
4189
4173
  case 13:
4190
4174
  sources_1_1 = sources_1.next();
@@ -4201,7 +4185,7 @@
4201
4185
  finally { if (e_2) throw e_2.error; }
4202
4186
  return [7 /*endfinally*/];
4203
4187
  case 17:
4204
- paramIndex++;
4188
+ paramIndex += 1;
4205
4189
  _q.label = 18;
4206
4190
  case 18:
4207
4191
  params_1_1 = params_1.next();
@@ -4256,9 +4240,7 @@
4256
4240
  return [7 /*endfinally*/];
4257
4241
  case 31: return [2 /*return*/, this._object.API_CONFIG];
4258
4242
  case 32: return [2 /*return*/, this._object.API_CONFIG];
4259
- case 33: return [3 /*break*/, 35];
4260
- case 34: return [2 /*return*/, this._object.API_CONFIG];
4261
- case 35: return [2 /*return*/];
4243
+ case 33: return [2 /*return*/, this._object.API_CONFIG];
4262
4244
  }
4263
4245
  });
4264
4246
  });
@@ -4271,7 +4253,7 @@
4271
4253
  return __generator(this, function (_o) {
4272
4254
  switch (_o.label) {
4273
4255
  case 0:
4274
- if (!kwikidToolkit.checkObjectKeyExists(this._request, "body")) return [3 /*break*/, 20];
4256
+ if (!kwikidToolkit.checkObjectKeyExists(this._request, "body")) return [3 /*break*/, 19];
4275
4257
  if (!kwikidToolkit.checkObjectKeyExists(this._request.body, "validation")) return [3 /*break*/, 9];
4276
4258
  body = this._request.body;
4277
4259
  validation = body.validation;
@@ -4349,11 +4331,9 @@
4349
4331
  case 18:
4350
4332
  this._object = kwikidToolkit.setValueToObjectPath(this._object, "API_CONFIG.request.body.is_valid", true);
4351
4333
  return [2 /*return*/, this._object.API_CONFIG];
4352
- case 19: return [3 /*break*/, 21];
4353
- case 20:
4334
+ case 19:
4354
4335
  this._object = kwikidToolkit.setValueToObjectPath(this._object, "API_CONFIG.request.body.is_valid", true);
4355
4336
  return [2 /*return*/, this._object.API_CONFIG];
4356
- case 21: return [2 /*return*/];
4357
4337
  }
4358
4338
  });
4359
4339
  });
@@ -4366,7 +4346,7 @@
4366
4346
  return __generator(this, function (_q) {
4367
4347
  switch (_q.label) {
4368
4348
  case 0:
4369
- if (!kwikidToolkit.checkObjectKeyExists(this._request, "headers")) return [3 /*break*/, 34];
4349
+ if (!kwikidToolkit.checkObjectKeyExists(this._request, "headers")) return [3 /*break*/, 33];
4370
4350
  if (!kwikidToolkit.checkObjectKeyExists(this._request.headers, "params")) return [3 /*break*/, 23];
4371
4351
  params = this._request.headers.params;
4372
4352
  paramIndex = 0;
@@ -4427,7 +4407,7 @@
4427
4407
  finally { if (e_7) throw e_7.error; }
4428
4408
  return [7 /*endfinally*/];
4429
4409
  case 12:
4430
- sourceIndex++;
4410
+ sourceIndex += 1;
4431
4411
  _q.label = 13;
4432
4412
  case 13:
4433
4413
  sources_3_1 = sources_3.next();
@@ -4444,7 +4424,7 @@
4444
4424
  finally { if (e_8) throw e_8.error; }
4445
4425
  return [7 /*endfinally*/];
4446
4426
  case 17:
4447
- paramIndex++;
4427
+ paramIndex += 1;
4448
4428
  _q.label = 18;
4449
4429
  case 18:
4450
4430
  params_2_1 = params_2.next();
@@ -4499,9 +4479,7 @@
4499
4479
  return [7 /*endfinally*/];
4500
4480
  case 31: return [2 /*return*/, this._object.API_CONFIG];
4501
4481
  case 32: return [2 /*return*/, this._object.API_CONFIG];
4502
- case 33: return [3 /*break*/, 35];
4503
- case 34: return [2 /*return*/, this._object.API_CONFIG];
4504
- case 35: return [2 /*return*/];
4482
+ case 33: return [2 /*return*/, this._object.API_CONFIG];
4505
4483
  }
4506
4484
  });
4507
4485
  });
@@ -4515,7 +4493,7 @@
4515
4493
  switch (_o.label) {
4516
4494
  case 0:
4517
4495
  headers = this._request.headers;
4518
- if (!kwikidToolkit.checkObjectKeyExists(this._request, "headers")) return [3 /*break*/, 20];
4496
+ if (!kwikidToolkit.checkObjectKeyExists(this._request, "headers")) return [3 /*break*/, 19];
4519
4497
  if (!kwikidToolkit.checkObjectKeyExists(this._request.headers, "validation")) return [3 /*break*/, 9];
4520
4498
  validation = headers.validation;
4521
4499
  triggers = (_a = validation === null || validation === void 0 ? void 0 : validation.triggers) !== null && _a !== void 0 ? _a : [];
@@ -4592,11 +4570,9 @@
4592
4570
  case 18:
4593
4571
  this._object = kwikidToolkit.setValueToObjectPath(this._object, "API_CONFIG.request.headers.is_valid", true);
4594
4572
  return [2 /*return*/, this._object.API_CONFIG];
4595
- case 19: return [3 /*break*/, 21];
4596
- case 20:
4573
+ case 19:
4597
4574
  this._object = kwikidToolkit.setValueToObjectPath(this._object, "API_CONFIG.request.headers.is_valid", true);
4598
4575
  return [2 /*return*/, this._object.API_CONFIG];
4599
- case 21: return [2 /*return*/];
4600
4576
  }
4601
4577
  });
4602
4578
  });
@@ -4757,61 +4733,61 @@
4757
4733
  ], Apis.prototype, "callNextApi", null);
4758
4734
 
4759
4735
  var CameraHelper = /** @class */ (function () {
4760
- function CameraHelper(field, formFields, allFormsData, formData, previousFormData, extraData) {
4761
- this.cameraData = {};
4736
+ function CameraHelper(field, object) {
4737
+ this.activeCameraData = {};
4762
4738
  this._field = field;
4763
- this._formFields = formFields;
4764
- this._allFormsData = allFormsData;
4765
- this._formData = formData;
4766
- this._previousFormData = previousFormData;
4767
- this._extraData = extraData;
4739
+ this._object = object;
4768
4740
  }
4741
+ Object.defineProperty(CameraHelper.prototype, "object", {
4742
+ get: function () {
4743
+ return this._object;
4744
+ },
4745
+ set: function (value) {
4746
+ this._object = value;
4747
+ },
4748
+ enumerable: false,
4749
+ configurable: true
4750
+ });
4769
4751
  CameraHelper.prototype.getCameraWatermarkData = function () {
4752
+ var _a, _b;
4770
4753
  return __awaiter(this, void 0, void 0, function () {
4771
4754
  var sources, sources_1, sources_1_1, source, sources_2, value, e_1_1;
4772
- var e_1, _a;
4773
- return __generator(this, function (_b) {
4774
- switch (_b.label) {
4755
+ var e_1, _c;
4756
+ return __generator(this, function (_d) {
4757
+ switch (_d.label) {
4775
4758
  case 0:
4776
- sources = this._field.properties["watermarkDataSources"];
4777
- _b.label = 1;
4759
+ sources = (_b = (_a = this._field.properties.features) === null || _a === void 0 ? void 0 : _a.watermark) === null || _b === void 0 ? void 0 : _b.sources;
4760
+ _d.label = 1;
4778
4761
  case 1:
4779
- _b.trys.push([1, 6, 7, 8]);
4762
+ _d.trys.push([1, 6, 7, 8]);
4780
4763
  sources_1 = __values(sources), sources_1_1 = sources_1.next();
4781
- _b.label = 2;
4764
+ _d.label = 2;
4782
4765
  case 2:
4783
4766
  if (!!sources_1_1.done) return [3 /*break*/, 5];
4784
4767
  source = sources_1_1.value;
4785
- sources_2 = new kwikidToolkit.Source({
4786
- FIELD_CONFIG: this._field,
4787
- FORM_FIELDS: this._formFields,
4788
- FORM_DATA: this._formData,
4789
- PREVIOUS_FORM_DATA: this._previousFormData,
4790
- ALL_FORMS_DATA: this._allFormsData,
4791
- EXTRA_DATA: this._extraData
4792
- });
4768
+ sources_2 = new kwikidToolkit.Source(Object.assign(Object.assign({}, this._object), { FIELD_CONFIG: this._field }));
4793
4769
  return [4 /*yield*/, sources_2.getValueFromSource(source)];
4794
4770
  case 3:
4795
- value = _b.sent();
4771
+ value = _d.sent();
4796
4772
  if (kwikidToolkit.checkObjectKeyExists(source, "id")) {
4797
- this.cameraData[source.id] = value;
4773
+ this.activeCameraData[source.id] = value;
4798
4774
  }
4799
- _b.label = 4;
4775
+ _d.label = 4;
4800
4776
  case 4:
4801
4777
  sources_1_1 = sources_1.next();
4802
4778
  return [3 /*break*/, 2];
4803
4779
  case 5: return [3 /*break*/, 8];
4804
4780
  case 6:
4805
- e_1_1 = _b.sent();
4781
+ e_1_1 = _d.sent();
4806
4782
  e_1 = { error: e_1_1 };
4807
4783
  return [3 /*break*/, 8];
4808
4784
  case 7:
4809
4785
  try {
4810
- if (sources_1_1 && !sources_1_1.done && (_a = sources_1.return)) _a.call(sources_1);
4786
+ if (sources_1_1 && !sources_1_1.done && (_c = sources_1.return)) _c.call(sources_1);
4811
4787
  }
4812
4788
  finally { if (e_1) throw e_1.error; }
4813
4789
  return [7 /*endfinally*/];
4814
- case 8: return [2 /*return*/, this.cameraData];
4790
+ case 8: return [2 /*return*/, this.activeCameraData];
4815
4791
  }
4816
4792
  });
4817
4793
  });
@@ -4848,20 +4824,18 @@
4848
4824
  }
4849
4825
  Tasks.prototype.execute = function () {
4850
4826
  return __awaiter(this, void 0, void 0, function () {
4851
- var triggers, rules, actions, rulesMapping, actions_1, actions_1_1, action, conditionEvaluation, actions_2, e_1_1;
4852
- var e_1, _a;
4853
- return __generator(this, function (_b) {
4854
- switch (_b.label) {
4827
+ var _a, triggers, rules, actions, rulesMapping, actions_1, actions_1_1, action, conditionEvaluation, actions_2, e_1_1;
4828
+ var e_1, _b;
4829
+ return __generator(this, function (_c) {
4830
+ switch (_c.label) {
4855
4831
  case 0:
4856
- triggers = this._task.triggers;
4857
- rules = this._task.rules;
4858
- actions = this._task.actions;
4832
+ _a = this._task, triggers = _a.triggers, rules = _a.rules, actions = _a.actions;
4859
4833
  rulesMapping = new kwikidToolkit.Rule(rules, this._object).mapping();
4860
- _b.label = 1;
4834
+ _c.label = 1;
4861
4835
  case 1:
4862
- _b.trys.push([1, 6, 7, 8]);
4836
+ _c.trys.push([1, 6, 7, 8]);
4863
4837
  actions_1 = __values(actions), actions_1_1 = actions_1.next();
4864
- _b.label = 2;
4838
+ _c.label = 2;
4865
4839
  case 2:
4866
4840
  if (!!actions_1_1.done) return [3 /*break*/, 5];
4867
4841
  action = actions_1_1.value;
@@ -4870,19 +4844,19 @@
4870
4844
  actions_2 = new kwikidToolkit.Action(action, rulesMapping, this._object, this._takeAction);
4871
4845
  return [4 /*yield*/, actions_2.execute()];
4872
4846
  case 3:
4873
- _b.sent();
4874
- _b.label = 4;
4847
+ _c.sent();
4848
+ _c.label = 4;
4875
4849
  case 4:
4876
4850
  actions_1_1 = actions_1.next();
4877
4851
  return [3 /*break*/, 2];
4878
4852
  case 5: return [3 /*break*/, 8];
4879
4853
  case 6:
4880
- e_1_1 = _b.sent();
4854
+ e_1_1 = _c.sent();
4881
4855
  e_1 = { error: e_1_1 };
4882
4856
  return [3 /*break*/, 8];
4883
4857
  case 7:
4884
4858
  try {
4885
- if (actions_1_1 && !actions_1_1.done && (_a = actions_1.return)) _a.call(actions_1);
4859
+ if (actions_1_1 && !actions_1_1.done && (_b = actions_1.return)) _b.call(actions_1);
4886
4860
  }
4887
4861
  finally { if (e_1) throw e_1.error; }
4888
4862
  return [7 /*endfinally*/];
@@ -4915,6 +4889,69 @@
4915
4889
  }]
4916
4890
  }], ctorParameters: function () { return [{ type: i1__namespace.DomSanitizer }]; } });
4917
4891
 
4892
+ var FilterImageUrlOrBase64FromObjectPipe = /** @class */ (function () {
4893
+ function FilterImageUrlOrBase64FromObjectPipe() {
4894
+ }
4895
+ FilterImageUrlOrBase64FromObjectPipe.prototype.transform = function (mediaFiles) {
4896
+ if (kwikidToolkit.isEmptyValue(mediaFiles)) {
4897
+ return [];
4898
+ }
4899
+ return mediaFiles
4900
+ .map(function (item) {
4901
+ if (kwikidToolkit.isObject(item) && kwikidToolkit.checkObjectKeyExists(item, "image")) {
4902
+ return item.image;
4903
+ }
4904
+ if (kwikidToolkit.isNotEmptyValue(item)) {
4905
+ return item;
4906
+ }
4907
+ return null; // Use null to filter out unwanted items
4908
+ })
4909
+ .filter(function (item) { return kwikidToolkit.isNotEmptyValue(item); });
4910
+ };
4911
+ return FilterImageUrlOrBase64FromObjectPipe;
4912
+ }());
4913
+ /** @nocollapse */ FilterImageUrlOrBase64FromObjectPipe.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FilterImageUrlOrBase64FromObjectPipe, deps: [], target: i0__namespace.ɵɵFactoryTarget.Pipe });
4914
+ /** @nocollapse */ FilterImageUrlOrBase64FromObjectPipe.ɵpipe = i0__namespace.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FilterImageUrlOrBase64FromObjectPipe, name: "filterImageUrlOrBase64FromObject" });
4915
+ __decorate([
4916
+ kwikidToolkit.logMethod
4917
+ ], FilterImageUrlOrBase64FromObjectPipe.prototype, "transform", null);
4918
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FilterImageUrlOrBase64FromObjectPipe, decorators: [{
4919
+ type: i0.Pipe,
4920
+ args: [{
4921
+ name: "filterImageUrlOrBase64FromObject"
4922
+ }]
4923
+ }], propDecorators: { transform: [] } });
4924
+
4925
+ var FilterVideoUrlOrBase64FromObjectPipe = /** @class */ (function () {
4926
+ function FilterVideoUrlOrBase64FromObjectPipe() {
4927
+ }
4928
+ FilterVideoUrlOrBase64FromObjectPipe.prototype.transform = function (mediaFiles) {
4929
+ if (kwikidToolkit.isEmptyValue(mediaFiles)) {
4930
+ return [];
4931
+ }
4932
+ return mediaFiles
4933
+ .map(function (item) {
4934
+ if (kwikidToolkit.isObject(item) && kwikidToolkit.checkObjectKeyExists(item, "video")) {
4935
+ return item.video;
4936
+ }
4937
+ if (kwikidToolkit.isNotEmptyValue(item)) {
4938
+ return item;
4939
+ }
4940
+ return null; // Use null to filter out unwanted items
4941
+ })
4942
+ .filter(function (item) { return kwikidToolkit.isNotEmptyValue(item); });
4943
+ };
4944
+ return FilterVideoUrlOrBase64FromObjectPipe;
4945
+ }());
4946
+ /** @nocollapse */ FilterVideoUrlOrBase64FromObjectPipe.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FilterVideoUrlOrBase64FromObjectPipe, deps: [], target: i0__namespace.ɵɵFactoryTarget.Pipe });
4947
+ /** @nocollapse */ FilterVideoUrlOrBase64FromObjectPipe.ɵpipe = i0__namespace.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FilterVideoUrlOrBase64FromObjectPipe, name: "filterVideoUrlOrBase64FromObject" });
4948
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FilterVideoUrlOrBase64FromObjectPipe, decorators: [{
4949
+ type: i0.Pipe,
4950
+ args: [{
4951
+ name: "filterVideoUrlOrBase64FromObject"
4952
+ }]
4953
+ }] });
4954
+
4918
4955
  var TimerPipe = /** @class */ (function () {
4919
4956
  function TimerPipe() {
4920
4957
  }
@@ -4964,18 +5001,19 @@
4964
5001
  this.fieldGroups = {};
4965
5002
  this.formFields = [];
4966
5003
  this.previousFormData = {};
5004
+ this.cameraData = {};
4967
5005
  this.isShowCamera = false;
4968
5006
  this.isShowCameraFullscreen = false;
4969
- this.cameraFieldKey = "";
4970
- this.cameraData = undefined;
4971
- this.cameraType = undefined;
4972
- this.cameraImage = "";
4973
- this.cameraVideo = "";
4974
- this.cameraConfig = undefined;
4975
- this.cameraRecordingTime = 0;
4976
- this.cameraRecordingTimerSubcription = undefined;
4977
- this.cameraRecordingState = "NONE";
4978
- this.cameraRecordingStateSubcription = undefined;
5007
+ this.activeCameraFieldKey = "";
5008
+ this.activeCameraData = {};
5009
+ this.activeCameraType = undefined;
5010
+ this.activeCameraImage = "";
5011
+ this.activeCameraVideo = "";
5012
+ this.activeCameraConfig = undefined;
5013
+ this.activeCameraRecordingTime = 0;
5014
+ this.activeCameraRecordingTimerSubcription = undefined;
5015
+ this.activeCameraRecordingState = "NONE";
5016
+ this.activeCameraRecordingStateSubcription = undefined;
4979
5017
  this.previewProperties = {
4980
5018
  html: {
4981
5019
  before: "",
@@ -5022,14 +5060,14 @@
5022
5060
  KwikIDFormViewComponent.prototype.resetCamera = function () {
5023
5061
  this.isShowCamera = false;
5024
5062
  this.isShowCameraFullscreen = false;
5025
- this.cameraFieldKey = "";
5026
- this.cameraData = undefined;
5027
- this.cameraType = undefined;
5028
- this.cameraImage = "";
5029
- this.cameraVideo = "";
5030
- this.cameraConfig = undefined;
5031
- this.cameraRecordingTime = 0;
5032
- this.cameraRecordingState = "NONE";
5063
+ this.activeCameraFieldKey = "";
5064
+ this.activeCameraData = undefined;
5065
+ this.activeCameraType = undefined;
5066
+ this.activeCameraImage = "";
5067
+ this.activeCameraVideo = "";
5068
+ this.activeCameraConfig = undefined;
5069
+ this.activeCameraRecordingTime = 0;
5070
+ this.activeCameraRecordingState = "NONE";
5033
5071
  };
5034
5072
  KwikIDFormViewComponent.prototype.ngOnInit = function () {
5035
5073
  var _this = this;
@@ -5043,16 +5081,16 @@
5043
5081
  res = _15.sent();
5044
5082
  if (res) {
5045
5083
  this.loading = false;
5046
- this.cameraRecordingTimerSubcription = this.cameraRecordService
5084
+ this.activeCameraRecordingTimerSubcription = this.cameraRecordService
5047
5085
  .getTimerUpdate()
5048
5086
  .subscribe(function (time) {
5049
- _this.cameraRecordingTime = time;
5087
+ _this.activeCameraRecordingTime = time;
5050
5088
  _this.ref.detectChanges();
5051
5089
  });
5052
- this.cameraRecordingStateSubcription = this.cameraRecordService
5090
+ this.activeCameraRecordingStateSubcription = this.cameraRecordService
5053
5091
  .getRecordingState()
5054
5092
  .subscribe(function (state) {
5055
- _this.cameraRecordingState = state;
5093
+ _this.activeCameraRecordingState = state;
5056
5094
  _this.ref.detectChanges();
5057
5095
  });
5058
5096
  }
@@ -5080,7 +5118,7 @@
5080
5118
  if (verifyChange("formData")) {
5081
5119
  if (kwikidToolkit.checkObjectKeyExists(changes.formData.currentValue, "data") &&
5082
5120
  kwikidToolkit.checkObjectKeyExists(changes.formData.currentValue, "extendedData")) {
5083
- this.formData = Object.assign(Object.assign({}, this.formData), changes.formData.currentValue["data"]);
5121
+ this.formData = Object.assign(Object.assign({}, this.formData), changes.formData.currentValue.data);
5084
5122
  }
5085
5123
  else {
5086
5124
  this.formData = Object.assign(Object.assign({}, this.formData), changes.formData.currentValue);
@@ -5090,7 +5128,7 @@
5090
5128
  if (kwikidToolkit.isNotEmptyValue(changes.popupFormCallback.currentValue)) {
5091
5129
  var popupFormData = kwikidToolkit.checkObjectKeyExists(changes.popupFormCallback.currentValue.popupFormData, "data") &&
5092
5130
  kwikidToolkit.checkObjectKeyExists(changes.popupFormCallback.currentValue.popupFormData, "extendedData")
5093
- ? changes.popupFormCallback.currentValue.popupFormData["data"]
5131
+ ? changes.popupFormCallback.currentValue.popupFormData.data
5094
5132
  : changes.popupFormCallback.currentValue.popupFormData;
5095
5133
  var popupFormConfig = changes.popupFormCallback.currentValue.popupFormConfig;
5096
5134
  this.popupFormData = kwikidToolkit.mergeObjects(this.popupFormData, (_15 = {},
@@ -5141,14 +5179,20 @@
5141
5179
  if (response) {
5142
5180
  this.resetCamera();
5143
5181
  var image = response === null || response === void 0 ? void 0 : response.image_url;
5144
- this.formData[field_1.key] = kwikidToolkit.getObjectDeepCopy([image]);
5145
- this.mediaFiles[field_1.key] = kwikidToolkit.getObjectDeepCopy([image]);
5146
- this.formGroup.controls[field_1.key].patchValue(kwikidToolkit.getObjectDeepCopy([image]), {
5182
+ var imageOcr = response === null || response === void 0 ? void 0 : response.image_ocr;
5183
+ var imageFacematch = response === null || response === void 0 ? void 0 : response.image_facematch;
5184
+ var imageWatermark = response === null || response === void 0 ? void 0 : response.image_watermark;
5185
+ var imageData = imageOcr || imageFacematch || imageWatermark
5186
+ ? Object.assign(Object.assign(Object.assign({ image: image }, (imageOcr && { ocr: imageOcr })), (imageFacematch && { facematch: imageFacematch })), (imageWatermark && { watermark: imageWatermark })) : image;
5187
+ this.formData[field_1.key] = kwikidToolkit.getObjectDeepCopy([imageData]);
5188
+ this.cameraData[field_1.key] = kwikidToolkit.getObjectDeepCopy(imageData);
5189
+ this.mediaFiles[field_1.key] = kwikidToolkit.getObjectDeepCopy([imageData]);
5190
+ this.formGroup.controls[field_1.key].patchValue(kwikidToolkit.getObjectDeepCopy([imageData]), {
5147
5191
  emitEvent: false,
5148
5192
  onlySelf: false
5149
5193
  });
5150
5194
  this.formGroup.patchValue((_16 = {},
5151
- _16[field_1.key] = kwikidToolkit.getObjectDeepCopy([image]),
5195
+ _16[field_1.key] = kwikidToolkit.getObjectDeepCopy([imageData]),
5152
5196
  _16), { emitEvent: false });
5153
5197
  this.formGroup.controls[field_1.key].updateValueAndValidity({
5154
5198
  emitEvent: false
@@ -5164,6 +5208,7 @@
5164
5208
  FIELD_CONFIG: field_1,
5165
5209
  FORM_FIELDS: this.formFields,
5166
5210
  FORM_DATA: this.formData,
5211
+ CAMERA_DATA: this.cameraData,
5167
5212
  TASK_DATA: this.taskData,
5168
5213
  PREVIOUS_FORM_DATA: this.previousFormData,
5169
5214
  ALL_FORMS_DATA: this.allFormsData,
@@ -5209,6 +5254,7 @@
5209
5254
  this.resetCamera();
5210
5255
  var video = response === null || response === void 0 ? void 0 : response.video_url;
5211
5256
  this.formData[field_1.key] = kwikidToolkit.getObjectDeepCopy([video]);
5257
+ this.cameraData[field_1.key] = kwikidToolkit.getObjectDeepCopy(video);
5212
5258
  this.mediaFiles[field_1.key] = kwikidToolkit.getObjectDeepCopy([video]);
5213
5259
  this.formGroup.controls[field_1.key].patchValue(kwikidToolkit.getObjectDeepCopy([video]), {
5214
5260
  emitEvent: false,
@@ -5231,6 +5277,7 @@
5231
5277
  FIELD_CONFIG: field_1,
5232
5278
  FORM_FIELDS: this.formFields,
5233
5279
  FORM_DATA: this.formData,
5280
+ CAMERA_DATA: this.cameraData,
5234
5281
  TASK_DATA: this.taskData,
5235
5282
  PREVIOUS_FORM_DATA: this.previousFormData,
5236
5283
  ALL_FORMS_DATA: this.allFormsData,
@@ -5274,7 +5321,6 @@
5274
5321
  case EFieldType.LIVE_LOCATION:
5275
5322
  if (response) {
5276
5323
  this.formData[field_1.key] = kwikidToolkit.getObjectDeepCopy(response);
5277
- this.mediaFiles[field_1.key] = kwikidToolkit.getObjectDeepCopy(response);
5278
5324
  this.formGroup.controls[field_1.key].patchValue(kwikidToolkit.getObjectDeepCopy(response), {
5279
5325
  emitEvent: false,
5280
5326
  onlySelf: false
@@ -5295,6 +5341,7 @@
5295
5341
  API_RESPONSE: response,
5296
5342
  FORM_FIELDS: this.formFields,
5297
5343
  FORM_DATA: this.formData,
5344
+ CAMERA_DATA: this.cameraData,
5298
5345
  TASK_DATA: this.taskData,
5299
5346
  PREVIOUS_FORM_DATA: this.previousFormData,
5300
5347
  ALL_FORMS_DATA: this.allFormsData,
@@ -5319,6 +5366,7 @@
5319
5366
  FIELD_CONFIG: field_1,
5320
5367
  FORM_FIELDS: this.formFields,
5321
5368
  FORM_DATA: this.formData,
5369
+ CAMERA_DATA: this.cameraData,
5322
5370
  TASK_DATA: this.taskData,
5323
5371
  PREVIOUS_FORM_DATA: this.previousFormData,
5324
5372
  ALL_FORMS_DATA: this.allFormsData,
@@ -5362,6 +5410,7 @@
5362
5410
  API_RESPONSE: {},
5363
5411
  FORM_FIELDS: this.formFields,
5364
5412
  FORM_DATA: this.formData,
5413
+ CAMERA_DATA: this.cameraData,
5365
5414
  TASK_DATA: this.taskData,
5366
5415
  PREVIOUS_FORM_DATA: this.previousFormData,
5367
5416
  ALL_FORMS_DATA: this.allFormsData,
@@ -5393,15 +5442,15 @@
5393
5442
  var field_2 = getFormFieldByKey(this.formFields, (_d = this.buttonClickResponse) === null || _d === void 0 ? void 0 : _d.key);
5394
5443
  if (kwikidToolkit.checkObjectKeyExists(this.buttonClickResponse, "default")) {
5395
5444
  field_2.default = kwikidToolkit.getObjectDeepCopy(this.buttonClickResponse.default);
5396
- delete this.buttonClickResponse["default"];
5445
+ delete this.buttonClickResponse.default;
5397
5446
  }
5398
5447
  if (kwikidToolkit.checkObjectKeyExists(this.buttonClickResponse, "messages")) {
5399
5448
  field_2.messages = kwikidToolkit.getObjectDeepCopy(this.buttonClickResponse.messages);
5400
- delete this.buttonClickResponse["messages"];
5449
+ delete this.buttonClickResponse.messages;
5401
5450
  }
5402
5451
  if (kwikidToolkit.checkObjectKeyExists(this.buttonClickResponse, "validation")) {
5403
5452
  field_2.validation = kwikidToolkit.getObjectDeepCopy(this.buttonClickResponse.validation);
5404
- delete this.buttonClickResponse["validation"];
5453
+ delete this.buttonClickResponse.validation;
5405
5454
  }
5406
5455
  field_2 = kwikidToolkit.getObjectDeepCopy(kwikidToolkit.mergeObjects(field_2, this.buttonClickResponse));
5407
5456
  if (kwikidToolkit.checkObjectKeyExists(field_2, "validation")) {
@@ -5411,6 +5460,7 @@
5411
5460
  FIELD_CONFIG: field_2,
5412
5461
  FORM_FIELDS: this.formFields,
5413
5462
  FORM_DATA: this.formData,
5463
+ CAMERA_DATA: this.cameraData,
5414
5464
  TASK_DATA: this.taskData,
5415
5465
  PREVIOUS_FORM_DATA: this.previousFormData,
5416
5466
  ALL_FORMS_DATA: this.allFormsData,
@@ -5448,11 +5498,11 @@
5448
5498
  }
5449
5499
  };
5450
5500
  KwikIDFormViewComponent.prototype.ngOnDestroy = function () {
5451
- if (this.cameraRecordingTimerSubcription) {
5452
- this.cameraRecordingTimerSubcription.unsubscribe();
5501
+ if (this.activeCameraRecordingTimerSubcription) {
5502
+ this.activeCameraRecordingTimerSubcription.unsubscribe();
5453
5503
  }
5454
- if (this.cameraRecordingStateSubcription) {
5455
- this.cameraRecordingStateSubcription.unsubscribe();
5504
+ if (this.activeCameraRecordingStateSubcription) {
5505
+ this.activeCameraRecordingStateSubcription.unsubscribe();
5456
5506
  }
5457
5507
  };
5458
5508
  KwikIDFormViewComponent.prototype.triggerLogs = function (eventType, logs) {
@@ -5490,6 +5540,7 @@
5490
5540
  FORM_CONFIG: this.formConfig,
5491
5541
  FORM_FIELDS: this.formFields,
5492
5542
  FORM_DATA: this.formData,
5543
+ CAMERA_DATA: this.cameraData,
5493
5544
  TASK_DATA: this.taskData,
5494
5545
  PREVIOUS_FORM_DATA: this.previousFormData,
5495
5546
  ALL_FORMS_DATA: this.allFormsData,
@@ -5512,7 +5563,7 @@
5512
5563
  clearInterval(intervalId);
5513
5564
  resolve();
5514
5565
  }
5515
- }, 10);
5566
+ }, FORM_VIEW_TIMERS.WAIT_FOR_CHANGES_BEFORE_MOVING_TO_NEXT_TASK);
5516
5567
  })];
5517
5568
  case 4:
5518
5569
  // Wait for ngOnChanges to be called before continuing to the next task
@@ -5543,7 +5594,15 @@
5543
5594
  return [2 /*return*/, false];
5544
5595
  }
5545
5596
  _17 = this;
5546
- return [4 /*yield*/, this.formViewService.createFormGroup(this.formFields, this.formData, this.previousFormData, this.allFormsData, this.extraData, this.takeAction.bind(this))];
5597
+ return [4 /*yield*/, this.formViewService.createFormGroup(this.formFields, {
5598
+ FORM_CONFIG: this.formConfig,
5599
+ FORM_DATA: this.formData,
5600
+ CAMERA_DATA: this.cameraData,
5601
+ TASK_DATA: this.taskData,
5602
+ PREVIOUS_FORM_DATA: this.previousFormData,
5603
+ ALL_FORMS_DATA: this.allFormsData,
5604
+ EXTRA_DATA: this.extraData
5605
+ }, this.takeAction.bind(this))];
5547
5606
  case 11:
5548
5607
  _17.formGroup = _25.sent();
5549
5608
  /**
@@ -5552,10 +5611,10 @@
5552
5611
  * Below piece of code is to remove that redundent value from formData.
5553
5612
  */
5554
5613
  if (kwikidToolkit.checkObjectKeyExists(this.formData, "undefined")) {
5555
- delete this.formData["undefined"];
5614
+ delete this.formData.undefined;
5556
5615
  }
5557
5616
  _loop_1 = function (field) {
5558
- var _26, _27;
5617
+ var _26, _27, _28, _29;
5559
5618
  if (field.isFormElement) {
5560
5619
  this_1.previousFormData = Object.assign(Object.assign({}, this_1.previousFormData), (_26 = {}, _26[field.key] = convertFormFieldValueToStandardFormat(field, this_1.formGroup.controls[field.key].value), _26));
5561
5620
  this_1.formData = Object.assign(Object.assign({}, this_1.formData), (_27 = {}, _27[field.key] = convertFormFieldValueToStandardFormat(field, this_1.formGroup.controls[field.key].value), _27));
@@ -5564,17 +5623,19 @@
5564
5623
  }
5565
5624
  if (field.type === EFieldType.CAPTURE) {
5566
5625
  this_1.resetCamera();
5626
+ this_1.cameraData = Object.assign(Object.assign({}, this_1.cameraData), (_28 = {}, _28[field.key] = convertFormFieldValueToStandardFormat(field, this_1.formGroup.controls[field.key].value), _28));
5567
5627
  this_1.mediaFiles[field.key] = this_1.formGroup.controls[field.key].value;
5568
5628
  }
5569
5629
  if (field.type === EFieldType.RECORD) {
5570
5630
  this_1.resetCamera();
5631
+ this_1.cameraData = Object.assign(Object.assign({}, this_1.cameraData), (_29 = {}, _29[field.key] = convertFormFieldValueToStandardFormat(field, this_1.formGroup.controls[field.key].value), _29));
5571
5632
  this_1.mediaFiles[field.key] = this_1.formGroup.controls[field.key].value;
5572
5633
  }
5573
5634
  this_1.formGroup.controls[field.key].valueChanges
5574
5635
  .pipe(operators.pairwise())
5575
5636
  .subscribe(function (_15) {
5576
- var _16, _17;
5577
- var _18 = __read(_15, 2), previousValue = _18[0], currentValue = _18[1];
5637
+ var _16, _17, _18, _19;
5638
+ var _20 = __read(_15, 2), previousValue = _20[0], currentValue = _20[1];
5578
5639
  _this.previousFormData = Object.assign(Object.assign({}, _this.previousFormData), (_16 = {}, _16[field.key] = convertFormFieldValueToStandardFormat(field, previousValue), _16));
5579
5640
  _this.formData = Object.assign(Object.assign({}, _this.formData), (_17 = {}, _17[field.key] = convertFormFieldValueToStandardFormat(field, currentValue), _17));
5580
5641
  if (field.type === EFieldType.FILE) {
@@ -5582,10 +5643,12 @@
5582
5643
  }
5583
5644
  if (field.type === EFieldType.CAPTURE) {
5584
5645
  _this.resetCamera();
5646
+ _this.cameraData = Object.assign(Object.assign({}, _this.cameraData), (_18 = {}, _18[field.key] = convertFormFieldValueToStandardFormat(field, currentValue), _18));
5585
5647
  _this.mediaFiles[field.key] = currentValue;
5586
5648
  }
5587
5649
  if (field.type === EFieldType.RECORD) {
5588
5650
  _this.resetCamera();
5651
+ _this.cameraData = Object.assign(Object.assign({}, _this.cameraData), (_19 = {}, _19[field.key] = convertFormFieldValueToStandardFormat(field, currentValue), _19));
5589
5652
  _this.mediaFiles[field.key] = currentValue;
5590
5653
  }
5591
5654
  });
@@ -5620,6 +5683,7 @@
5620
5683
  FIELD_CONFIG: field,
5621
5684
  FORM_FIELDS: this.formFields,
5622
5685
  FORM_DATA: this.formData,
5686
+ CAMERA_DATA: this.cameraData,
5623
5687
  TASK_DATA: this.taskData,
5624
5688
  PREVIOUS_FORM_DATA: this.previousFormData,
5625
5689
  ALL_FORMS_DATA: this.allFormsData,
@@ -5673,7 +5737,7 @@
5673
5737
  var formData = this.allFormsData[this.formConfig.key];
5674
5738
  if (kwikidToolkit.checkObjectKeyExists(formData, "data") &&
5675
5739
  kwikidToolkit.checkObjectKeyExists(formData, "extendedData")) {
5676
- this.formData = Object.assign(Object.assign({}, this.formData), formData["data"]);
5740
+ this.formData = Object.assign(Object.assign({}, this.formData), formData.data);
5677
5741
  }
5678
5742
  else {
5679
5743
  this.formData = Object.assign(Object.assign({}, this.formData), formData);
@@ -5694,6 +5758,7 @@
5694
5758
  rulesMapping = new kwikidToolkit.Rule(childFieldGroupConfig.rules, {
5695
5759
  FIELD_CONFIG: parentField,
5696
5760
  FORM_DATA: this.formData,
5761
+ CAMERA_DATA: this.cameraData,
5697
5762
  TASK_DATA: this.taskData,
5698
5763
  PREVIOUS_FORM_DATA: this.previousFormData,
5699
5764
  ALL_FORMS_DATA: this.allFormsData,
@@ -5713,6 +5778,7 @@
5713
5778
  FIELD_CONFIG: parentField,
5714
5779
  FORM_FIELDS: this.formFields,
5715
5780
  FORM_DATA: this.formData,
5781
+ CAMERA_DATA: this.cameraData,
5716
5782
  TASK_DATA: this.taskData,
5717
5783
  PREVIOUS_FORM_DATA: this.previousFormData,
5718
5784
  ALL_FORMS_DATA: this.allFormsData,
@@ -5768,6 +5834,7 @@
5768
5834
  rulesMapping = new kwikidToolkit.Rule(connectedFieldConfig.rules, {
5769
5835
  FIELD_CONFIG: connectedField,
5770
5836
  FORM_DATA: this.formData,
5837
+ CAMERA_DATA: this.cameraData,
5771
5838
  TASK_DATA: this.taskData,
5772
5839
  PREVIOUS_FORM_DATA: this.previousFormData,
5773
5840
  ALL_FORMS_DATA: this.allFormsData,
@@ -5787,6 +5854,7 @@
5787
5854
  FORM_FIELDS: this.formFields,
5788
5855
  FIELD_CONFIG: connectedField,
5789
5856
  FORM_DATA: this.formData,
5857
+ CAMERA_DATA: this.cameraData,
5790
5858
  TASK_DATA: this.taskData,
5791
5859
  PREVIOUS_FORM_DATA: this.previousFormData,
5792
5860
  ALL_FORMS_DATA: this.allFormsData,
@@ -5821,7 +5889,7 @@
5821
5889
  return __generator(this, function (_15) {
5822
5890
  switch (_15.label) {
5823
5891
  case 0:
5824
- connectedField = getFormFieldByKey(this.formFields, connectedFieldConfig["key"]);
5892
+ connectedField = getFormFieldByKey(this.formFields, connectedFieldConfig.key);
5825
5893
  if (!kwikidToolkit.checkObjectKeyExists(connectedFieldConfig, "triggers")) return [3 /*break*/, 2];
5826
5894
  if (!connectedFieldConfig.triggers.includes(eventType)) return [3 /*break*/, 2];
5827
5895
  return [4 /*yield*/, this.handleConnectedElementFieldActions(connectedFieldConfig, connectedField)];
@@ -5917,7 +5985,7 @@
5917
5985
  var _15;
5918
5986
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
5919
5987
  this.showApiLoader();
5920
- if (this.formGroup["controls"][e.key].enabled) {
5988
+ if (this.formGroup.controls[e.key].enabled) {
5921
5989
  this.files[e.key] = e.files;
5922
5990
  this.formData[e.key] = filterDuplicatesFiles(this.files[e.key]);
5923
5991
  this.formGroup.patchValue((_15 = {},
@@ -5997,7 +6065,7 @@
5997
6065
  lastModified: value.lastModified,
5998
6066
  webkitRelativePath: value.webkitRelativePath
5999
6067
  });
6000
- }, 300); // 1000 ms = 1 sec
6068
+ }, FORM_VIEW_TIMERS.WAIT_FOR_FILE_METADATA_DEEPCOPY); // 1000 ms = 1 sec
6001
6069
  })];
6002
6070
  case 1:
6003
6071
  updatedFile = _18.apply(void 0, [_19.sent()]);
@@ -6044,21 +6112,58 @@
6044
6112
  /** Methods for Camera related fields like 'CAPTURE' or 'RECORD' */
6045
6113
  KwikIDFormViewComponent.prototype.handleOnClickGetRemovedMediaFile = function (e) {
6046
6114
  var _15;
6115
+ var _this = this;
6047
6116
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
6048
- this.showApiLoader();
6049
- if (this.formGroup["controls"][e.key].enabled) {
6117
+ if (this.formGroup.controls[e.key].enabled) {
6118
+ this.showApiLoader();
6119
+ var field_3 = getFormFieldByKey(this.formFields, e.key);
6050
6120
  this.resetCamera();
6051
6121
  this.mediaFiles[e.key] = e.mediaFiles;
6052
6122
  this.formData[e.key] = filterDuplicatesMediaFiles(this.mediaFiles[e.key]);
6123
+ this.cameraData[e.key] = convertFormFieldValueToStandardFormat(field_3, this.formData[e.key]);
6053
6124
  this.formGroup.patchValue((_15 = {},
6054
6125
  _15[e.key] = this.formData[e.key],
6055
6126
  _15), { emitEvent: false });
6056
6127
  this.triggerLogs(ELogEventType$1.FORM__FIELD_MEDIA_FILE_REMOVE, Object.assign(Object.assign(Object.assign({ field_key: e.key }, ((_b = (_a = e.file) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : { file_name: (_c = e.file) === null || _c === void 0 ? void 0 : _c.name })), ((_e = (_d = e.file) === null || _d === void 0 ? void 0 : _d.size) !== null && _e !== void 0 ? _e : { file_size: (_f = e.file) === null || _f === void 0 ? void 0 : _f.size })), ((_h = (_g = e.file) === null || _g === void 0 ? void 0 : _g.type) !== null && _h !== void 0 ? _h : { file_type: (_j = e.file) === null || _j === void 0 ? void 0 : _j.type })));
6128
+ this.getUnsavedDataState.emit(true);
6129
+ if (field_3.isFormElement &&
6130
+ kwikidToolkit.checkObjectKeyExists(field_3, "validation") &&
6131
+ field_3.validation.triggers.includes("ON_CHANGE")) {
6132
+ var ruleEngine_5 = new kwikidToolkit.RuleEngine({
6133
+ FIELD_CONFIG: field_3,
6134
+ FORM_FIELDS: this.formFields,
6135
+ FORM_DATA: this.formData,
6136
+ CAMERA_DATA: this.cameraData,
6137
+ TASK_DATA: this.taskData,
6138
+ PREVIOUS_FORM_DATA: this.previousFormData,
6139
+ ALL_FORMS_DATA: this.allFormsData,
6140
+ EXTRA_DATA: this.extraData
6141
+ }, this.takeAction.bind(this));
6142
+ (function () { return __awaiter(_this, void 0, void 0, function () {
6143
+ return __generator(this, function (_15) {
6144
+ switch (_15.label) {
6145
+ case 0: return [4 /*yield*/, ruleEngine_5.run(field_3.validation)];
6146
+ case 1:
6147
+ _15.sent();
6148
+ return [2 /*return*/];
6149
+ }
6150
+ });
6151
+ }); })();
6152
+ }
6153
+ if (field_3.isFormElement &&
6154
+ kwikidToolkit.checkObjectKeyExists(field_3, "connectedElements")) {
6155
+ this.handleConnectedElements({
6156
+ key: field_3.key,
6157
+ value: this.formGroup.controls[field_3.key].value
6158
+ }, "ON_CHANGE");
6159
+ }
6160
+ setTimeout(function () {
6161
+ _this.hideApiLoader();
6162
+ }, 500);
6057
6163
  }
6058
- this.hideApiLoader();
6059
6164
  };
6060
6165
  KwikIDFormViewComponent.prototype.handleOnClickInputCamera = function (e, field) {
6061
- var _a, _b, _c, _d, _e, _f;
6166
+ var _a, _b, _c, _d, _e, _f, _g;
6062
6167
  return __awaiter(this, void 0, void 0, function () {
6063
6168
  var fieldKey, fieldcameraConfig, _15, cameraHelper, _16, _17;
6064
6169
  return __generator(this, function (_18) {
@@ -6070,48 +6175,55 @@
6070
6175
  });
6071
6176
  fieldKey = field.key;
6072
6177
  fieldcameraConfig = (_b = (_a = field === null || field === void 0 ? void 0 : field.properties) === null || _a === void 0 ? void 0 : _a.cameraConfig) !== null && _b !== void 0 ? _b : {};
6073
- this.cameraType = (field === null || field === void 0 ? void 0 : field.type.toUpperCase()) || "";
6074
- this.cameraFieldKey = fieldKey;
6178
+ this.activeCameraType = (field === null || field === void 0 ? void 0 : field.type.toUpperCase()) || "";
6179
+ this.activeCameraFieldKey = fieldKey;
6075
6180
  this.triggerLogs(ELogEventType$1.FORM__FIELD_CAMERA_BUTTON_CLICK, {
6076
6181
  field_key: field.key,
6077
6182
  field_type: field.type,
6078
- camera_type: this.cameraType
6183
+ camera_type: this.activeCameraType
6079
6184
  });
6080
- _15 = this.cameraType;
6185
+ _15 = this.activeCameraType;
6081
6186
  switch (_15) {
6082
6187
  case "CAPTURE": return [3 /*break*/, 1];
6083
- case "RECORD": return [3 /*break*/, 5];
6188
+ case "RECORD": return [3 /*break*/, 4];
6084
6189
  }
6085
- return [3 /*break*/, 6];
6190
+ return [3 /*break*/, 5];
6086
6191
  case 1:
6087
- this.cameraConfig = kwikidToolkit.mergeObjectsDeep([
6192
+ this.activeCameraConfig = kwikidToolkit.mergeObjectsDeep([
6088
6193
  FIELD_PROPERTIES.capture.cameraConfig,
6089
6194
  fieldcameraConfig
6090
6195
  ]);
6091
- if (!(((_d = (_c = this.cameraConfig) === null || _c === void 0 ? void 0 : _c.others) === null || _d === void 0 ? void 0 : _d.isWatermark) ||
6092
- ((_f = (_e = this.cameraConfig) === null || _e === void 0 ? void 0 : _e.others) === null || _f === void 0 ? void 0 : _f.isWatermarkForImageUpload))) return [3 /*break*/, 3];
6093
- cameraHelper = new CameraHelper(field, this.formFields, this.allFormsData, this.formData, this.previousFormData, this.extraData);
6196
+ this.activeCameraData = {};
6197
+ if (!(((_e = (_d = (_c = this.activeCameraConfig) === null || _c === void 0 ? void 0 : _c.features) === null || _d === void 0 ? void 0 : _d.watermark) === null || _e === void 0 ? void 0 : _e.isEnabled) &&
6198
+ !((_g = (_f = this.activeCameraConfig.features) === null || _f === void 0 ? void 0 : _f.watermark) === null || _g === void 0 ? void 0 : _g.isWatermarkForServer))) return [3 /*break*/, 3];
6199
+ cameraHelper = new CameraHelper(field, {
6200
+ FORM_FIELDS: this.formFields,
6201
+ FIELD_CONFIG: field,
6202
+ FORM_DATA: this.formData,
6203
+ CAMERA_DATA: this.cameraData,
6204
+ TASK_DATA: this.taskData,
6205
+ PREVIOUS_FORM_DATA: this.previousFormData,
6206
+ ALL_FORMS_DATA: this.allFormsData,
6207
+ EXTRA_DATA: this.extraData
6208
+ });
6094
6209
  _16 = this;
6095
6210
  _17 = {};
6096
6211
  return [4 /*yield*/, cameraHelper.getCameraWatermarkData()];
6097
6212
  case 2:
6098
- _16.cameraData = (_17.watermark = _18.sent(),
6213
+ _16.activeCameraData = (_17.watermark = _18.sent(),
6099
6214
  _17);
6100
- return [3 /*break*/, 4];
6101
- case 3:
6102
- this.cameraData = undefined;
6103
- _18.label = 4;
6104
- case 4: return [3 /*break*/, 7];
6105
- case 5:
6106
- this.cameraConfig = kwikidToolkit.mergeObjectsDeep([
6215
+ _18.label = 3;
6216
+ case 3: return [3 /*break*/, 6];
6217
+ case 4:
6218
+ this.activeCameraConfig = kwikidToolkit.mergeObjectsDeep([
6107
6219
  FIELD_PROPERTIES.record.cameraConfig,
6108
6220
  fieldcameraConfig
6109
6221
  ]);
6110
- return [3 /*break*/, 7];
6111
- case 6:
6222
+ return [3 /*break*/, 6];
6223
+ case 5:
6112
6224
  this.resetCamera();
6113
- return [3 /*break*/, 7];
6114
- case 7:
6225
+ return [3 /*break*/, 6];
6226
+ case 6:
6115
6227
  /**
6116
6228
  * Config and other data is set now, so we can show the camera.
6117
6229
  */
@@ -6126,13 +6238,13 @@
6126
6238
  /** CameraType = CAPTURE */
6127
6239
  KwikIDFormViewComponent.prototype.setCameraMedia = function (media) {
6128
6240
  return __awaiter(this, void 0, void 0, function () {
6129
- var field, ruleEngine_5;
6241
+ var field, activeCameraData, updatedMedia, ruleEngine_6;
6130
6242
  var _15;
6131
6243
  var _this = this;
6132
6244
  return __generator(this, function (_16) {
6133
6245
  switch (_16.label) {
6134
6246
  case 0:
6135
- field = getFormFieldByKey(this.formFields, this.cameraFieldKey);
6247
+ field = getFormFieldByKey(this.formFields, this.activeCameraFieldKey);
6136
6248
  if (!(kwikidToolkit.checkObjectKeyExists(field, "properties") &&
6137
6249
  kwikidToolkit.checkObjectKeyExists(field.properties, "uploadFileToServer") &&
6138
6250
  field.properties.uploadFileToServer)) return [3 /*break*/, 2];
@@ -6141,15 +6253,28 @@
6141
6253
  _16.sent();
6142
6254
  return [3 /*break*/, 3];
6143
6255
  case 2:
6256
+ activeCameraData = this.activeCameraData;
6144
6257
  this.resetCamera();
6145
- this.formData[field.key] = kwikidToolkit.getObjectDeepCopy([media]);
6146
- this.mediaFiles[field.key] = kwikidToolkit.getObjectDeepCopy([media]);
6147
- this.formGroup.controls[field.key].patchValue(kwikidToolkit.getObjectDeepCopy([media]), {
6258
+ updatedMedia = {};
6259
+ switch (field.type) {
6260
+ case EFieldType.CAPTURE:
6261
+ updatedMedia = Object.assign(Object.assign({}, (kwikidToolkit.isNotEmptyValue(activeCameraData) ? activeCameraData : {})), { image: media });
6262
+ break;
6263
+ case EFieldType.RECORD:
6264
+ updatedMedia = Object.assign(Object.assign({}, (kwikidToolkit.isNotEmptyValue(activeCameraData) ? activeCameraData : {})), { video: media });
6265
+ break;
6266
+ default:
6267
+ break;
6268
+ }
6269
+ this.formData[field.key] = kwikidToolkit.getObjectDeepCopy([updatedMedia]);
6270
+ this.cameraData[field.key] = kwikidToolkit.getObjectDeepCopy(updatedMedia);
6271
+ this.mediaFiles[field.key] = kwikidToolkit.getObjectDeepCopy([updatedMedia]);
6272
+ this.formGroup.controls[field.key].patchValue(kwikidToolkit.getObjectDeepCopy([updatedMedia]), {
6148
6273
  emitEvent: false,
6149
6274
  onlySelf: false
6150
6275
  });
6151
6276
  this.formGroup.patchValue((_15 = {},
6152
- _15[field.key] = kwikidToolkit.getObjectDeepCopy([media]),
6277
+ _15[field.key] = kwikidToolkit.getObjectDeepCopy([updatedMedia]),
6153
6278
  _15), { emitEvent: false });
6154
6279
  this.formGroup.controls[field.key].updateValueAndValidity({
6155
6280
  emitEvent: false
@@ -6161,10 +6286,11 @@
6161
6286
  if (field.isFormElement &&
6162
6287
  kwikidToolkit.checkObjectKeyExists(field, "validation") &&
6163
6288
  field.validation.triggers.includes("ON_CHANGE")) {
6164
- ruleEngine_5 = new kwikidToolkit.RuleEngine({
6289
+ ruleEngine_6 = new kwikidToolkit.RuleEngine({
6165
6290
  FIELD_CONFIG: field,
6166
6291
  FORM_FIELDS: this.formFields,
6167
6292
  FORM_DATA: this.formData,
6293
+ CAMERA_DATA: this.cameraData,
6168
6294
  TASK_DATA: this.taskData,
6169
6295
  PREVIOUS_FORM_DATA: this.previousFormData,
6170
6296
  ALL_FORMS_DATA: this.allFormsData,
@@ -6173,7 +6299,7 @@
6173
6299
  (function () { return __awaiter(_this, void 0, void 0, function () {
6174
6300
  return __generator(this, function (_15) {
6175
6301
  switch (_15.label) {
6176
- case 0: return [4 /*yield*/, ruleEngine_5.run(field.validation)];
6302
+ case 0: return [4 /*yield*/, ruleEngine_6.run(field.validation)];
6177
6303
  case 1:
6178
6304
  _15.sent();
6179
6305
  return [2 /*return*/];
@@ -6199,12 +6325,12 @@
6199
6325
  });
6200
6326
  };
6201
6327
  /** Camera Common Methods */
6202
- KwikIDFormViewComponent.prototype.handleGetCameraMedia = function (e, cameraType) {
6328
+ KwikIDFormViewComponent.prototype.handleGetCameraMedia = function (e, activeCameraType) {
6203
6329
  var _this = this;
6204
- switch (cameraType) {
6330
+ switch (activeCameraType) {
6205
6331
  case "CAPTURE":
6206
6332
  this.showApiLoader();
6207
- this.cameraImage = "";
6333
+ this.activeCameraImage = "";
6208
6334
  setTimeout(function () {
6209
6335
  var _a, _b, _c, _d, _e, _f, _g;
6210
6336
  /**
@@ -6215,77 +6341,98 @@
6215
6341
  *
6216
6342
  * If no masked or cropped image is available then directly set Original Image
6217
6343
  */
6218
- var field = getFormFieldByKey(_this.formFields, _this.cameraFieldKey);
6344
+ var field = getFormFieldByKey(_this.formFields, _this.activeCameraFieldKey);
6219
6345
  var image = ((_a = field.properties) === null || _a === void 0 ? void 0 : _a.isMaskedImage)
6220
6346
  ? (_b = e === null || e === void 0 ? void 0 : e.maskedImage) !== null && _b !== void 0 ? _b : e === null || e === void 0 ? void 0 : e.originalImage
6221
6347
  : ((_c = field.properties) === null || _c === void 0 ? void 0 : _c.isCroppedImage)
6222
6348
  ? (_d = e === null || e === void 0 ? void 0 : e.croppedImage) !== null && _d !== void 0 ? _d : e === null || e === void 0 ? void 0 : e.originalImage
6223
6349
  : e === null || e === void 0 ? void 0 : e.originalImage;
6224
- var isShowImagePreview = (_g = (_f = (_e = _this.cameraConfig) === null || _e === void 0 ? void 0 : _e.others) === null || _f === void 0 ? void 0 : _f.preview) === null || _g === void 0 ? void 0 : _g.show;
6350
+ var isShowImagePreview = (_g = (_f = (_e = _this.activeCameraConfig) === null || _e === void 0 ? void 0 : _e.others) === null || _f === void 0 ? void 0 : _f.preview) === null || _g === void 0 ? void 0 : _g.show;
6225
6351
  if (isShowImagePreview) {
6226
- _this.cameraImage = image;
6352
+ _this.activeCameraImage = image;
6227
6353
  }
6228
6354
  else {
6229
6355
  _this.setCameraMedia(image);
6230
6356
  }
6231
6357
  _this.hideApiLoader();
6232
- }, 500); // Delay is added due to issus with KwikID Camera not being able to handle to fast processing.
6358
+ }, FORM_VIEW_TIMERS.WAIT_FOR_KWIKID_CAMERA_TO_LOAD); // Delay is added due to issus with KwikID Camera not being able to handle to fast processing.
6233
6359
  break;
6234
6360
  case "RECORD":
6235
6361
  this.showApiLoader();
6236
- this.cameraVideo = "";
6362
+ this.activeCameraVideo = "";
6237
6363
  setTimeout(function () {
6238
6364
  var _a, _b, _c;
6239
6365
  /**
6240
6366
  * Priority of Image to Set for Config Based
6241
6367
  * 1. Original
6242
6368
  */
6243
- var field = getFormFieldByKey(_this.formFields, _this.cameraFieldKey);
6369
+ var field = getFormFieldByKey(_this.formFields, _this.activeCameraFieldKey);
6244
6370
  var video = e === null || e === void 0 ? void 0 : e.originalVideo;
6245
- var isShowVideoPreview = (_c = (_b = (_a = _this.cameraConfig) === null || _a === void 0 ? void 0 : _a.others) === null || _b === void 0 ? void 0 : _b.preview) === null || _c === void 0 ? void 0 : _c.show;
6371
+ var isShowVideoPreview = (_c = (_b = (_a = _this.activeCameraConfig) === null || _a === void 0 ? void 0 : _a.others) === null || _b === void 0 ? void 0 : _b.preview) === null || _c === void 0 ? void 0 : _c.show;
6246
6372
  if (isShowVideoPreview) {
6247
- _this.cameraVideo = video;
6373
+ _this.activeCameraVideo = video;
6248
6374
  }
6249
6375
  else {
6250
6376
  _this.setCameraMedia(video);
6251
6377
  }
6252
6378
  _this.hideApiLoader();
6253
- }, 500); // Delay is added due to issus with KwikID Camera not being able to handle to fast processing.
6379
+ }, FORM_VIEW_TIMERS.WAIT_FOR_KWIKID_CAMERA_TO_LOAD); // Delay is added due to issus with KwikID Camera not being able to handle to fast processing.
6254
6380
  break;
6255
6381
  default:
6256
6382
  break;
6257
6383
  }
6258
6384
  };
6259
- KwikIDFormViewComponent.prototype.handleOnClickSaveCameraMedia = function (e, cameraType) {
6385
+ KwikIDFormViewComponent.prototype.handleOnClickSaveCameraMedia = function (e, activeCameraType) {
6260
6386
  var _this = this;
6261
6387
  this.showApiLoader();
6262
- var field = getFormFieldByKey(this.formFields, this.cameraFieldKey);
6388
+ var field = getFormFieldByKey(this.formFields, this.activeCameraFieldKey);
6263
6389
  this.triggerLogs(ELogEventType$1.FORM__CAMERA_SAVE_BUTTON_CLICK, {
6264
6390
  field_key: field.key,
6265
6391
  field_type: field.type,
6266
- camera_type: cameraType
6392
+ camera_type: activeCameraType
6267
6393
  });
6268
- switch (cameraType) {
6394
+ switch (activeCameraType) {
6269
6395
  case "CAPTURE":
6270
- this.cameraImage = "";
6396
+ this.activeCameraImage = "";
6271
6397
  setTimeout(function () {
6272
- var image = e === null || e === void 0 ? void 0 : e.originalImage;
6398
+ var _a, _b, _c, _d;
6399
+ /**
6400
+ * Priority of Image to Set for Config Based
6401
+ * 1. Masked
6402
+ * 2. Cropped
6403
+ * 3. Original
6404
+ *
6405
+ * If no masked or cropped image is available then directly set Original Image
6406
+ */
6407
+ var field = getFormFieldByKey(_this.formFields, _this.activeCameraFieldKey);
6408
+ var image = ((_a = field.properties) === null || _a === void 0 ? void 0 : _a.isMaskedImage)
6409
+ ? (_b = e === null || e === void 0 ? void 0 : e.maskedImage) !== null && _b !== void 0 ? _b : e === null || e === void 0 ? void 0 : e.originalImage
6410
+ : ((_c = field.properties) === null || _c === void 0 ? void 0 : _c.isCroppedImage)
6411
+ ? (_d = e === null || e === void 0 ? void 0 : e.croppedImage) !== null && _d !== void 0 ? _d : e === null || e === void 0 ? void 0 : e.originalImage
6412
+ : e === null || e === void 0 ? void 0 : e.originalImage;
6273
6413
  _this.setCameraMedia(image);
6274
6414
  _this.hideApiLoader();
6275
- }, 500);
6415
+ }, FORM_VIEW_TIMERS.WAIT_FOR_KWIKID_CAMERA_TO_LOAD); // Delay is added due to issus with KwikID Camera not being able to handle to fast processing.
6276
6416
  break;
6277
6417
  case "RECORD":
6278
- this.cameraVideo = "";
6418
+ this.activeCameraVideo = "";
6279
6419
  setTimeout(function () {
6420
+ /**
6421
+ * Priority of Image to Set for Config Based
6422
+ * 1. Original
6423
+ */
6424
+ var field = getFormFieldByKey(_this.formFields, _this.activeCameraFieldKey);
6280
6425
  var video = e === null || e === void 0 ? void 0 : e.originalVideo;
6281
6426
  _this.setCameraMedia(video);
6282
6427
  _this.hideApiLoader();
6283
- }, 500);
6428
+ }, FORM_VIEW_TIMERS.WAIT_FOR_KWIKID_CAMERA_TO_LOAD); // Delay is added due to issus with KwikID Camera not being able to handle to fast processing.
6429
+ break;
6430
+ default:
6284
6431
  break;
6285
6432
  }
6286
6433
  };
6287
6434
  KwikIDFormViewComponent.prototype.handleOnClickCameraBack = function (e) {
6288
- var field = getFormFieldByKey(this.formFields, this.cameraFieldKey);
6435
+ var field = getFormFieldByKey(this.formFields, this.activeCameraFieldKey);
6289
6436
  this.triggerLogs(ELogEventType$1.FORM__CAMERA_BACK_BUTTON_CLICK, {
6290
6437
  field_key: field.key,
6291
6438
  field_type: field.type
@@ -6293,7 +6440,7 @@
6293
6440
  this.resetCamera();
6294
6441
  };
6295
6442
  KwikIDFormViewComponent.prototype.handleOnClickCameraClose = function (e) {
6296
- var field = getFormFieldByKey(this.formFields, this.cameraFieldKey);
6443
+ var field = getFormFieldByKey(this.formFields, this.activeCameraFieldKey);
6297
6444
  this.triggerLogs(ELogEventType$1.FORM__CAMERA_CLOSE_BUTTON_CLICK, {
6298
6445
  field_key: field.key,
6299
6446
  field_type: field.type
@@ -6339,10 +6486,11 @@
6339
6486
  if (field.isFormElement &&
6340
6487
  kwikidToolkit.checkObjectKeyExists(field, "validation") &&
6341
6488
  field.validation.triggers.includes("ON_CHANGE")) {
6342
- var ruleEngine_6 = new kwikidToolkit.RuleEngine({
6489
+ var ruleEngine_7 = new kwikidToolkit.RuleEngine({
6343
6490
  FIELD_CONFIG: field,
6344
6491
  FORM_FIELDS: this.formFields,
6345
6492
  FORM_DATA: this.formData,
6493
+ CAMERA_DATA: this.cameraData,
6346
6494
  TASK_DATA: this.taskData,
6347
6495
  PREVIOUS_FORM_DATA: this.previousFormData,
6348
6496
  ALL_FORMS_DATA: this.allFormsData,
@@ -6351,7 +6499,7 @@
6351
6499
  (function () { return __awaiter(_this, void 0, void 0, function () {
6352
6500
  return __generator(this, function (_15) {
6353
6501
  switch (_15.label) {
6354
- case 0: return [4 /*yield*/, ruleEngine_6.run(field.validation)];
6502
+ case 0: return [4 /*yield*/, ruleEngine_7.run(field.validation)];
6355
6503
  case 1:
6356
6504
  _15.sent();
6357
6505
  return [2 /*return*/];
@@ -6371,10 +6519,21 @@
6371
6519
  * This is a api upload mocking method. Set's to loading at first at point when API is called and then changes the status to random status after 2 seconds of delay showing a mocked response from API.
6372
6520
  */
6373
6521
  KwikIDFormViewComponent.prototype.uploadFile = function (field, file) {
6522
+ var _a, _b, _c, _d, _e, _f;
6374
6523
  return __awaiter(this, void 0, void 0, function () {
6375
- return __generator(this, function (_15) {
6376
- switch (field.type) {
6377
- case EFieldType.FILE:
6524
+ var _15, ocrPayload, facematchPayload, facematchSources, facematchSources_1, facematchSources_1_1, facematchSourceConfig, source, sourceValue, facematchSource, e_10_1, watermarkPayload, watermarkSources, watermarkSources_1, watermarkSources_1_1, watermarkSourceConfig, source, sourceValue, watermarkSource, e_11_1, imageUploadPayload;
6525
+ var e_10, _16, e_11, _17;
6526
+ return __generator(this, function (_18) {
6527
+ switch (_18.label) {
6528
+ case 0:
6529
+ _15 = field.type;
6530
+ switch (_15) {
6531
+ case EFieldType.FILE: return [3 /*break*/, 1];
6532
+ case EFieldType.CAPTURE: return [3 /*break*/, 2];
6533
+ case EFieldType.RECORD: return [3 /*break*/, 19];
6534
+ }
6535
+ return [3 /*break*/, 20];
6536
+ case 1:
6378
6537
  this.updateFiles(file, "LOADING", field.key);
6379
6538
  this.triggerLogs(ELogEventType$1.FORM__API_REQUEST_UPLOAD_FILE, {
6380
6539
  field_key: field.key,
@@ -6407,30 +6566,137 @@
6407
6566
  catch (err) {
6408
6567
  this.updateFiles(file, "ERROR", field.key);
6409
6568
  }
6410
- break;
6411
- case EFieldType.CAPTURE:
6412
- // Actual API Call
6569
+ return [3 /*break*/, 21];
6570
+ case 2:
6571
+ ocrPayload = {};
6572
+ if (kwikidToolkit.isNotEmptyValue((_b = (_a = field === null || field === void 0 ? void 0 : field.properties) === null || _a === void 0 ? void 0 : _a.features) === null || _b === void 0 ? void 0 : _b.ocr)) {
6573
+ ocrPayload = field.properties.features.ocr;
6574
+ }
6575
+ facematchPayload = {};
6576
+ if (!kwikidToolkit.isNotEmptyValue((_d = (_c = field === null || field === void 0 ? void 0 : field.properties) === null || _c === void 0 ? void 0 : _c.features) === null || _d === void 0 ? void 0 : _d.facematch)) return [3 /*break*/, 10];
6577
+ facematchPayload.isEnabled =
6578
+ field.properties.features.facematch.isEnabled;
6579
+ facematchPayload.isFacematchFromServer =
6580
+ field.properties.features.facematch.isFacematchFromServer;
6581
+ facematchPayload.images = [];
6582
+ facematchSources = field.properties.features.facematch.sources;
6583
+ _18.label = 3;
6584
+ case 3:
6585
+ _18.trys.push([3, 8, 9, 10]);
6586
+ facematchSources_1 = __values(facematchSources), facematchSources_1_1 = facematchSources_1.next();
6587
+ _18.label = 4;
6588
+ case 4:
6589
+ if (!!facematchSources_1_1.done) return [3 /*break*/, 7];
6590
+ facematchSourceConfig = facematchSources_1_1.value;
6591
+ source = new kwikidToolkit.Source({
6592
+ FIELD_CONFIG: field,
6593
+ FORM_FIELDS: this.formFields,
6594
+ FORM_DATA: this.formData,
6595
+ CAMERA_DATA: this.cameraData,
6596
+ TASK_DATA: this.taskData,
6597
+ PREVIOUS_FORM_DATA: this.previousFormData,
6598
+ ALL_FORMS_DATA: this.allFormsData,
6599
+ EXTRA_DATA: this.extraData
6600
+ });
6601
+ return [4 /*yield*/, source.getValueFromSource(facematchSourceConfig)];
6602
+ case 5:
6603
+ sourceValue = _18.sent();
6604
+ facematchSource = {
6605
+ key: facematchSourceConfig.id,
6606
+ value: sourceValue
6607
+ };
6608
+ facematchPayload.images.push(facematchSource);
6609
+ _18.label = 6;
6610
+ case 6:
6611
+ facematchSources_1_1 = facematchSources_1.next();
6612
+ return [3 /*break*/, 4];
6613
+ case 7: return [3 /*break*/, 10];
6614
+ case 8:
6615
+ e_10_1 = _18.sent();
6616
+ e_10 = { error: e_10_1 };
6617
+ return [3 /*break*/, 10];
6618
+ case 9:
6619
+ try {
6620
+ if (facematchSources_1_1 && !facematchSources_1_1.done && (_16 = facematchSources_1.return)) _16.call(facematchSources_1);
6621
+ }
6622
+ finally { if (e_10) throw e_10.error; }
6623
+ return [7 /*endfinally*/];
6624
+ case 10:
6625
+ watermarkPayload = {};
6626
+ if (!kwikidToolkit.isNotEmptyValue((_f = (_e = field === null || field === void 0 ? void 0 : field.properties) === null || _e === void 0 ? void 0 : _e.features) === null || _f === void 0 ? void 0 : _f.watermark)) return [3 /*break*/, 18];
6627
+ watermarkPayload.isEnabled =
6628
+ field.properties.features.watermark.isEnabled;
6629
+ watermarkPayload.isWatermarkFromServer =
6630
+ field.properties.features.watermark.isWatermarkFromServer;
6631
+ watermarkPayload.data = [];
6632
+ watermarkSources = field.properties.features.watermark.sources;
6633
+ watermarkPayload.config = field.properties.features.watermark.sources;
6634
+ _18.label = 11;
6635
+ case 11:
6636
+ _18.trys.push([11, 16, 17, 18]);
6637
+ watermarkSources_1 = __values(watermarkSources), watermarkSources_1_1 = watermarkSources_1.next();
6638
+ _18.label = 12;
6639
+ case 12:
6640
+ if (!!watermarkSources_1_1.done) return [3 /*break*/, 15];
6641
+ watermarkSourceConfig = watermarkSources_1_1.value;
6642
+ source = new kwikidToolkit.Source({
6643
+ FIELD_CONFIG: field,
6644
+ FORM_FIELDS: this.formFields,
6645
+ FORM_DATA: this.formData,
6646
+ CAMERA_DATA: this.cameraData,
6647
+ TASK_DATA: this.taskData,
6648
+ PREVIOUS_FORM_DATA: this.previousFormData,
6649
+ ALL_FORMS_DATA: this.allFormsData,
6650
+ EXTRA_DATA: this.extraData
6651
+ });
6652
+ return [4 /*yield*/, source.getValueFromSource(watermarkSourceConfig)];
6653
+ case 13:
6654
+ sourceValue = _18.sent();
6655
+ watermarkSource = {
6656
+ key: watermarkSourceConfig.id,
6657
+ value: sourceValue
6658
+ };
6659
+ watermarkPayload.data.push(watermarkSource);
6660
+ _18.label = 14;
6661
+ case 14:
6662
+ watermarkSources_1_1 = watermarkSources_1.next();
6663
+ return [3 /*break*/, 12];
6664
+ case 15: return [3 /*break*/, 18];
6665
+ case 16:
6666
+ e_11_1 = _18.sent();
6667
+ e_11 = { error: e_11_1 };
6668
+ return [3 /*break*/, 18];
6669
+ case 17:
6670
+ try {
6671
+ if (watermarkSources_1_1 && !watermarkSources_1_1.done && (_17 = watermarkSources_1.return)) _17.call(watermarkSources_1);
6672
+ }
6673
+ finally { if (e_11) throw e_11.error; }
6674
+ return [7 /*endfinally*/];
6675
+ case 18:
6676
+ imageUploadPayload = Object.assign(Object.assign(Object.assign({ image: file }, ((ocrPayload === null || ocrPayload === void 0 ? void 0 : ocrPayload.isEnabled) && {
6677
+ ocr: ocrPayload
6678
+ })), ((facematchPayload === null || facematchPayload === void 0 ? void 0 : facematchPayload.isEnabled) && {
6679
+ facematch: facematchPayload
6680
+ })), ((watermarkPayload === null || watermarkPayload === void 0 ? void 0 : watermarkPayload.isEnabled) && {
6681
+ watermark: watermarkPayload
6682
+ }));
6413
6683
  this.triggerLogs(ELogEventType$1.FORM__API_REQUEST_UPLOAD_IMAGE, {
6414
6684
  field_key: field.key,
6415
6685
  field_type: field.type,
6416
- request: {
6417
- image: file
6418
- }
6686
+ request: imageUploadPayload
6419
6687
  });
6420
6688
  try {
6421
6689
  this.onClickApiCall.emit({
6422
6690
  key: field.key,
6423
6691
  type: field.type,
6424
- payload: {
6425
- image: file
6426
- }
6692
+ payload: imageUploadPayload
6427
6693
  });
6428
6694
  }
6429
6695
  catch (err) {
6430
6696
  console.log("Failed to upload image to server!");
6431
6697
  }
6432
- break;
6433
- case EFieldType.RECORD:
6698
+ return [3 /*break*/, 21];
6699
+ case 19:
6434
6700
  // Actual API Call
6435
6701
  this.triggerLogs(ELogEventType$1.FORM__API_REQUEST_UPLOAD_VIDEO, {
6436
6702
  field_key: field.key,
@@ -6451,34 +6717,35 @@
6451
6717
  catch (err) {
6452
6718
  console.log("Failed to upload video to server!");
6453
6719
  }
6454
- break;
6720
+ return [3 /*break*/, 21];
6721
+ case 20: return [3 /*break*/, 21];
6722
+ case 21: return [2 /*return*/];
6455
6723
  }
6456
- return [2 /*return*/];
6457
6724
  });
6458
6725
  });
6459
6726
  };
6460
6727
  KwikIDFormViewComponent.prototype.handleOnClickFormFieldButton = function (field) {
6461
- var e_10, _15;
6728
+ var e_12, _15;
6462
6729
  var formData = this.formGroup.getRawValue();
6463
6730
  try {
6464
6731
  for (var _16 = __values(this.formFields), _17 = _16.next(); !_17.done; _17 = _16.next()) {
6465
- var field_3 = _17.value;
6466
- if (field_3.isFormElement) {
6467
- if (field_3.hidden) {
6468
- delete formData[field_3.key];
6732
+ var field_4 = _17.value;
6733
+ if (field_4.isFormElement) {
6734
+ if (field_4.hidden) {
6735
+ delete formData[field_4.key];
6469
6736
  }
6470
6737
  else {
6471
- formData[field_3.key] = convertFormFieldValueToStandardFormat(field_3, formData[field_3.key]);
6738
+ formData[field_4.key] = convertFormFieldValueToStandardFormat(field_4, formData[field_4.key]);
6472
6739
  }
6473
6740
  }
6474
6741
  }
6475
6742
  }
6476
- catch (e_10_1) { e_10 = { error: e_10_1 }; }
6743
+ catch (e_12_1) { e_12 = { error: e_12_1 }; }
6477
6744
  finally {
6478
6745
  try {
6479
6746
  if (_17 && !_17.done && (_15 = _16.return)) _15.call(_16);
6480
6747
  }
6481
- finally { if (e_10) throw e_10.error; }
6748
+ finally { if (e_12) throw e_12.error; }
6482
6749
  }
6483
6750
  var extendedFormData = this.formFields.reduce(function (result, field, index) {
6484
6751
  var _15;
@@ -6514,8 +6781,8 @@
6514
6781
  return field.key === _.key;
6515
6782
  });
6516
6783
  // set button status to default
6517
- field["api"]["status"]["value"] = EApiStatusType.LOADING;
6518
- field["showLoader"] = true;
6784
+ field.api.status.value = EApiStatusType.LOADING;
6785
+ field.showLoader = true;
6519
6786
  this.formFields[fieldIndex] = field;
6520
6787
  this.showApiLoader();
6521
6788
  this.fieldShowApiLoader(field.key);
@@ -6527,7 +6794,7 @@
6527
6794
  this.togglePermissionErrorNotification(true);
6528
6795
  setTimeout(function () {
6529
6796
  _this.togglePermissionErrorNotification(false);
6530
- }, 3000);
6797
+ }, FORM_VIEW_TIMERS.LOCATION_PERMISSION_ERROR_TOGGLE);
6531
6798
  }
6532
6799
  else {
6533
6800
  this.triggerLogs(ELogEventType$1.FORM__LIVE_LOCATION_PERMISSION_SUCCESS, {
@@ -6537,16 +6804,16 @@
6537
6804
  }
6538
6805
  setTimeout(function () {
6539
6806
  // set button status to default
6540
- field["api"]["status"]["value"] = EApiStatusType.DEFAULT;
6541
- field["showLoader"] = false;
6807
+ field.api.status.value = EApiStatusType.DEFAULT;
6808
+ field.showLoader = false;
6542
6809
  _this.formFields[fieldIndex] = field;
6543
6810
  _this.hideApiLoader();
6544
6811
  _this.fieldHideApiLoader(field.key);
6545
- }, 500);
6812
+ }, FORM_VIEW_TIMERS.LOCATION_PERMISSION_RESET_BUTTON_STATUS);
6546
6813
  };
6547
6814
  KwikIDFormViewComponent.prototype.handleOnClickLiveLocation = function (e) {
6548
6815
  return __awaiter(this, void 0, void 0, function () {
6549
- var field, ruleEngine_7;
6816
+ var field, ruleEngine_8;
6550
6817
  var _15;
6551
6818
  var _this = this;
6552
6819
  return __generator(this, function (_16) {
@@ -6558,8 +6825,8 @@
6558
6825
  field_type: field.type
6559
6826
  });
6560
6827
  // set button status to loading
6561
- field["api"]["status"]["value"] = EApiStatusType.LOADING;
6562
- field["showLoader"] = true;
6828
+ field.api.status.value = EApiStatusType.LOADING;
6829
+ field.showLoader = true;
6563
6830
  this.showApiLoader();
6564
6831
  this.formGroup.patchValue((_15 = {},
6565
6832
  _15[e.key] = e.value,
@@ -6578,20 +6845,21 @@
6578
6845
  case 1: return [4 /*yield*/, new Promise(function (resolve) {
6579
6846
  setTimeout(function () {
6580
6847
  resolve(true);
6581
- }, 300); // 1000 ms = 1 sec
6848
+ }, FORM_VIEW_TIMERS.TIMER_300); // 1000 ms = 1 sec
6582
6849
  })];
6583
6850
  case 2:
6584
6851
  _16.sent();
6585
6852
  // set button status to success
6586
- field["api"]["status"]["value"] = EApiStatusType.SUCCESS;
6587
- field["showLoader"] = false;
6853
+ field.api.status.value = EApiStatusType.SUCCESS;
6854
+ field.showLoader = false;
6588
6855
  if (field.isFormElement &&
6589
6856
  kwikidToolkit.checkObjectKeyExists(field, "validation") &&
6590
6857
  field.validation.triggers.includes("ON_CHANGE")) {
6591
- ruleEngine_7 = new kwikidToolkit.RuleEngine({
6858
+ ruleEngine_8 = new kwikidToolkit.RuleEngine({
6592
6859
  FIELD_CONFIG: field,
6593
6860
  FORM_FIELDS: this.formFields,
6594
6861
  FORM_DATA: this.formData,
6862
+ CAMERA_DATA: this.cameraData,
6595
6863
  TASK_DATA: this.taskData,
6596
6864
  PREVIOUS_FORM_DATA: this.previousFormData,
6597
6865
  ALL_FORMS_DATA: this.allFormsData,
@@ -6600,7 +6868,7 @@
6600
6868
  (function () { return __awaiter(_this, void 0, void 0, function () {
6601
6869
  return __generator(this, function (_15) {
6602
6870
  switch (_15.label) {
6603
- case 0: return [4 /*yield*/, ruleEngine_7.run(field.validation)];
6871
+ case 0: return [4 /*yield*/, ruleEngine_8.run(field.validation)];
6604
6872
  case 1:
6605
6873
  _15.sent();
6606
6874
  return [2 /*return*/];
@@ -6635,10 +6903,11 @@
6635
6903
  if (field.isFormElement &&
6636
6904
  kwikidToolkit.checkObjectKeyExists(field, "validation") &&
6637
6905
  field.validation.triggers.includes("ON_CHANGE")) {
6638
- var ruleEngine_8 = new kwikidToolkit.RuleEngine({
6906
+ var ruleEngine_9 = new kwikidToolkit.RuleEngine({
6639
6907
  FIELD_CONFIG: field,
6640
6908
  FORM_FIELDS: this.formFields,
6641
6909
  FORM_DATA: this.formData,
6910
+ CAMERA_DATA: this.cameraData,
6642
6911
  TASK_DATA: this.taskData,
6643
6912
  PREVIOUS_FORM_DATA: this.previousFormData,
6644
6913
  ALL_FORMS_DATA: this.allFormsData,
@@ -6647,7 +6916,7 @@
6647
6916
  (function () { return __awaiter(_this, void 0, void 0, function () {
6648
6917
  return __generator(this, function (_15) {
6649
6918
  switch (_15.label) {
6650
- case 0: return [4 /*yield*/, ruleEngine_8.run(field.validation)];
6919
+ case 0: return [4 /*yield*/, ruleEngine_9.run(field.validation)];
6651
6920
  case 1:
6652
6921
  _15.sent();
6653
6922
  return [2 /*return*/];
@@ -6663,95 +6932,6 @@
6663
6932
  }, "ON_CHANGE");
6664
6933
  }
6665
6934
  };
6666
- KwikIDFormViewComponent.prototype.handleOnClickResetFormFields2 = function (e, field) {
6667
- var _a;
6668
- return __awaiter(this, void 0, void 0, function () {
6669
- var resetFormFields, BYPASS_RESET_CONFIRM, CONFIRM_RESET;
6670
- var _this = this;
6671
- return __generator(this, function (_15) {
6672
- this.triggerLogs(ELogEventType$1.FORM__FIELD_RESET_BUTTON_CLICK, {
6673
- field_key: field.key
6674
- });
6675
- resetFormFields = function () { return __awaiter(_this, void 0, void 0, function () {
6676
- var _15, _16, f, _17, _18, action, resetField, actions, e_11_1, e_12_1;
6677
- var e_12, _19, e_11, _20;
6678
- return __generator(this, function (_21) {
6679
- switch (_21.label) {
6680
- case 0:
6681
- _21.trys.push([0, 11, 12, 13]);
6682
- _15 = __values(field.reset.fields), _16 = _15.next();
6683
- _21.label = 1;
6684
- case 1:
6685
- if (!!_16.done) return [3 /*break*/, 10];
6686
- f = _16.value;
6687
- _21.label = 2;
6688
- case 2:
6689
- _21.trys.push([2, 7, 8, 9]);
6690
- _17 = (e_11 = void 0, __values(f.actions)), _18 = _17.next();
6691
- _21.label = 3;
6692
- case 3:
6693
- if (!!_18.done) return [3 /*break*/, 6];
6694
- action = _18.value;
6695
- resetField = getFormFieldByKey(this.formFields, action.props.fieldKey);
6696
- actions = new kwikidToolkit.Action(action, {}, {
6697
- FIELD_CONFIG: resetField,
6698
- FORM_FIELDS: this.formFields,
6699
- FORM_DATA: this.formData,
6700
- TASK_DATA: this.taskData,
6701
- PREVIOUS_FORM_DATA: this.previousFormData,
6702
- ALL_FORMS_DATA: this.allFormsData,
6703
- EXTRA_DATA: this.extraData
6704
- }, this.takeAction.bind(this));
6705
- return [4 /*yield*/, actions.execute()];
6706
- case 4:
6707
- _21.sent();
6708
- _21.label = 5;
6709
- case 5:
6710
- _18 = _17.next();
6711
- return [3 /*break*/, 3];
6712
- case 6: return [3 /*break*/, 9];
6713
- case 7:
6714
- e_11_1 = _21.sent();
6715
- e_11 = { error: e_11_1 };
6716
- return [3 /*break*/, 9];
6717
- case 8:
6718
- try {
6719
- if (_18 && !_18.done && (_20 = _17.return)) _20.call(_17);
6720
- }
6721
- finally { if (e_11) throw e_11.error; }
6722
- return [7 /*endfinally*/];
6723
- case 9:
6724
- _16 = _15.next();
6725
- return [3 /*break*/, 1];
6726
- case 10: return [3 /*break*/, 13];
6727
- case 11:
6728
- e_12_1 = _21.sent();
6729
- e_12 = { error: e_12_1 };
6730
- return [3 /*break*/, 13];
6731
- case 12:
6732
- try {
6733
- if (_16 && !_16.done && (_19 = _15.return)) _19.call(_15);
6734
- }
6735
- finally { if (e_12) throw e_12.error; }
6736
- return [7 /*endfinally*/];
6737
- case 13: return [2 /*return*/];
6738
- }
6739
- });
6740
- }); };
6741
- BYPASS_RESET_CONFIRM = (_a = field === null || field === void 0 ? void 0 : field.properties) === null || _a === void 0 ? void 0 : _a.bypassResetConfirmation;
6742
- if (!BYPASS_RESET_CONFIRM) {
6743
- CONFIRM_RESET = window.confirm("This action will reset all the fields. Do you still want to continue?");
6744
- if (CONFIRM_RESET) {
6745
- resetFormFields();
6746
- }
6747
- }
6748
- else {
6749
- resetFormFields();
6750
- }
6751
- return [2 /*return*/];
6752
- });
6753
- });
6754
- };
6755
6935
  KwikIDFormViewComponent.prototype.handleOnClickResetFormFields = function (e, field) {
6756
6936
  var _a;
6757
6937
  return __awaiter(this, void 0, void 0, function () {
@@ -6789,6 +6969,7 @@
6789
6969
  FIELD_CONFIG: resetField,
6790
6970
  FORM_FIELDS: this.formFields,
6791
6971
  FORM_DATA: this.formData,
6972
+ CAMERA_DATA: this.cameraData,
6792
6973
  TASK_DATA: this.taskData,
6793
6974
  PREVIOUS_FORM_DATA: this.previousFormData,
6794
6975
  ALL_FORMS_DATA: this.allFormsData,
@@ -6857,6 +7038,7 @@
6857
7038
  FIELD_CONFIG: resetField,
6858
7039
  FORM_FIELDS: this.formFields,
6859
7040
  FORM_DATA: this.formData,
7041
+ CAMERA_DATA: this.cameraData,
6860
7042
  TASK_DATA: this.taskData,
6861
7043
  PREVIOUS_FORM_DATA: this.previousFormData,
6862
7044
  ALL_FORMS_DATA: this.allFormsData,
@@ -6937,6 +7119,7 @@
6937
7119
  API_CONFIG: api,
6938
7120
  FORM_FIELDS: this.formFields,
6939
7121
  FORM_DATA: this.formData,
7122
+ CAMERA_DATA: this.cameraData,
6940
7123
  TASK_DATA: this.taskData,
6941
7124
  PREVIOUS_FORM_DATA: this.previousFormData,
6942
7125
  ALL_FORMS_DATA: this.allFormsData,
@@ -6957,6 +7140,7 @@
6957
7140
  API_RESPONSE: api.response,
6958
7141
  FORM_FIELDS: this.formFields,
6959
7142
  FORM_DATA: this.formData,
7143
+ CAMERA_DATA: this.cameraData,
6960
7144
  TASK_DATA: this.taskData,
6961
7145
  PREVIOUS_FORM_DATA: this.previousFormData,
6962
7146
  ALL_FORMS_DATA: this.allFormsData,
@@ -6968,9 +7152,9 @@
6968
7152
  return [3 /*break*/, 4];
6969
7153
  case 3:
6970
7154
  setTimeout(function () {
6971
- field["api"]["status"]["value"] = EApiStatusType.FAILED;
6972
- field["showLoader"] = false;
6973
- }, 500);
7155
+ field.api.status.value = EApiStatusType.FAILED;
7156
+ field.showLoader = false;
7157
+ }, FORM_VIEW_TIMERS.TIMER_500);
6974
7158
  _17.label = 4;
6975
7159
  case 4: return [2 /*return*/, { field: field, api: api }];
6976
7160
  }
@@ -6987,6 +7171,7 @@
6987
7171
  API_CONFIG: api,
6988
7172
  FORM_FIELDS: this.formFields,
6989
7173
  FORM_DATA: this.formData,
7174
+ CAMERA_DATA: this.cameraData,
6990
7175
  TASK_DATA: this.taskData,
6991
7176
  PREVIOUS_FORM_DATA: this.previousFormData,
6992
7177
  ALL_FORMS_DATA: this.allFormsData,
@@ -6999,6 +7184,7 @@
6999
7184
  API_CONFIG: api,
7000
7185
  FORM_FIELDS: this.formFields,
7001
7186
  FORM_DATA: this.formData,
7187
+ CAMERA_DATA: this.cameraData,
7002
7188
  TASK_DATA: this.taskData,
7003
7189
  PREVIOUS_FORM_DATA: this.previousFormData,
7004
7190
  ALL_FORMS_DATA: this.allFormsData,
@@ -7039,16 +7225,17 @@
7039
7225
  api = _15.sent();
7040
7226
  apiCallResponse = {};
7041
7227
  if (!this.isValidRequestHeadersAndBody(api)) return [3 /*break*/, 17];
7042
- if (!(api.request.url.hasOwnProperty("type") &&
7228
+ if (!(kwikidToolkit.checkObjectKeyExists(api.request.url, "type") &&
7043
7229
  api.request.url.type === EApiRequestUrlType.MOCK)) return [3 /*break*/, 7];
7044
7230
  return [4 /*yield*/, new Promise(function (resolve) {
7045
7231
  setTimeout(function () {
7046
7232
  resolve(api.request.url.props.mockedData);
7047
- }, 1000); // 1000 ms = 1 sec
7233
+ }, FORM_VIEW_TIMERS.WAIT_FOR_API_MOCK_DATA); // 1000 ms = 1 sec
7048
7234
  })];
7049
7235
  case 6:
7050
7236
  apiCallResponse = _15.sent();
7051
- apiCallResponseStatusCode = (_b = (_a = api.request.url.props) === null || _a === void 0 ? void 0 : _a.statusCode) !== null && _b !== void 0 ? _b : 200; // Default Status Code for Mocked APIs
7237
+ apiCallResponseStatusCode =
7238
+ (_b = (_a = api.request.url.props) === null || _a === void 0 ? void 0 : _a.statusCode) !== null && _b !== void 0 ? _b : FORM_VIEW_TIMERS.API_MOCK_SUCCESS_STATUS_CODE; // Default Status Code for Mocked APIs
7052
7239
  return [3 /*break*/, 16];
7053
7240
  case 7:
7054
7241
  url = api.request.url.value;
@@ -7077,7 +7264,8 @@
7077
7264
  _13_1 = _15.sent();
7078
7265
  // Handle any errors
7079
7266
  apiCallResponse = {};
7080
- apiCallResponseStatusCode = 500; // Internal Server Error
7267
+ apiCallResponseStatusCode =
7268
+ FORM_VIEW_TIMERS.API_MOCK_ERROR_STATUS_CODE; // Internal Server Error
7081
7269
  return [3 /*break*/, 11];
7082
7270
  case 11: return [3 /*break*/, 16];
7083
7271
  case 12:
@@ -7102,7 +7290,8 @@
7102
7290
  _14_1 = _15.sent();
7103
7291
  // Handle any errors
7104
7292
  apiCallResponse = {};
7105
- apiCallResponseStatusCode = 500; // Internal Server Error
7293
+ apiCallResponseStatusCode =
7294
+ FORM_VIEW_TIMERS.API_MOCK_ERROR_STATUS_CODE; // Internal Server Error
7106
7295
  return [3 /*break*/, 16];
7107
7296
  case 16:
7108
7297
  api.response = kwikidToolkit.setValueToObjectPath(api.response, "value", apiCallResponse);
@@ -7138,17 +7327,17 @@
7138
7327
  fullscreen: true,
7139
7328
  loaderText: "Please wait"
7140
7329
  });
7141
- this.viewFormsButton["disabled"] = true;
7142
- this.viewFormsButton["showLoader"] = true;
7143
- this.saveFormButton["disabled"] = true;
7144
- this.saveFormButton["showLoader"] = true;
7330
+ this.viewFormsButton.disabled = true;
7331
+ this.viewFormsButton.showLoader = true;
7332
+ this.saveFormButton.disabled = true;
7333
+ this.saveFormButton.showLoader = true;
7145
7334
  };
7146
7335
  KwikIDFormViewComponent.prototype.hideApiLoader = function () {
7147
7336
  this.loaderService.hide();
7148
- this.viewFormsButton["disabled"] = false;
7149
- this.viewFormsButton["showLoader"] = false;
7150
- this.saveFormButton["disabled"] = false;
7151
- this.saveFormButton["showLoader"] = false;
7337
+ this.viewFormsButton.disabled = false;
7338
+ this.viewFormsButton.showLoader = false;
7339
+ this.saveFormButton.disabled = false;
7340
+ this.saveFormButton.showLoader = false;
7152
7341
  };
7153
7342
  KwikIDFormViewComponent.prototype.handleOnClickApiCall = function (e) {
7154
7343
  return __awaiter(this, void 0, void 0, function () {
@@ -7163,8 +7352,8 @@
7163
7352
  field_type: field.type
7164
7353
  });
7165
7354
  // set button status to loading
7166
- field["api"]["status"]["value"] = EApiStatusType.LOADING;
7167
- field["showLoader"] = true;
7355
+ field.api.status.value = EApiStatusType.LOADING;
7356
+ field.showLoader = true;
7168
7357
  this.showApiLoader();
7169
7358
  if (!kwikidToolkit.checkObjectKeyExists(field.api, "request")) return [3 /*break*/, 2];
7170
7359
  return [4 /*yield*/, this.handleFieldApiCall(field, field.api)];
@@ -7177,6 +7366,7 @@
7177
7366
  API_CONFIG: {},
7178
7367
  FORM_FIELDS: this.formFields,
7179
7368
  FORM_DATA: this.formData,
7369
+ CAMERA_DATA: this.cameraData,
7180
7370
  TASK_DATA: this.taskData,
7181
7371
  PREVIOUS_FORM_DATA: this.previousFormData,
7182
7372
  ALL_FORMS_DATA: this.allFormsData,
@@ -7296,6 +7486,7 @@
7296
7486
  FIELD_CONFIG: field,
7297
7487
  FORM_FIELDS: this.formFields,
7298
7488
  FORM_DATA: this.formData,
7489
+ CAMERA_DATA: this.cameraData,
7299
7490
  TASK_DATA: this.taskData,
7300
7491
  PREVIOUS_FORM_DATA: this.previousFormData,
7301
7492
  ALL_FORMS_DATA: this.allFormsData,
@@ -7308,7 +7499,7 @@
7308
7499
  this.toggleErrorNotification(true);
7309
7500
  setTimeout(function () {
7310
7501
  _this.toggleErrorNotification(false);
7311
- }, 3000);
7502
+ }, FORM_VIEW_TIMERS.INVALID_FIELDS_SAVE_FORM_ERROR_TOGGLE);
7312
7503
  return [2 /*return*/];
7313
7504
  }
7314
7505
  _25.label = 4;
@@ -7368,6 +7559,7 @@
7368
7559
  if (kwikidToolkit.isEmptyValue(formData[key])) {
7369
7560
  formData[key] = "";
7370
7561
  }
7562
+ return null;
7371
7563
  });
7372
7564
  if (!(kwikidToolkit.checkObjectKeyExists(this.formConfig, "tasks") &&
7373
7565
  kwikidToolkit.checkObjectKeyExists(this.formConfig.tasks, "post"))) return [3 /*break*/, 18];
@@ -7384,6 +7576,7 @@
7384
7576
  FORM_CONFIG: this.formConfig,
7385
7577
  FORM_FIELDS: this.formFields,
7386
7578
  FORM_DATA: this.formData,
7579
+ CAMERA_DATA: this.cameraData,
7387
7580
  TASK_DATA: this.taskData,
7388
7581
  PREVIOUS_FORM_DATA: this.previousFormData,
7389
7582
  ALL_FORMS_DATA: this.allFormsData,
@@ -7406,7 +7599,7 @@
7406
7599
  clearInterval(intervalId);
7407
7600
  resolve();
7408
7601
  }
7409
- }, 10);
7602
+ }, FORM_VIEW_TIMERS.WAIT_FOR_CHANGES_BEFORE_MOVING_TO_NEXT_TASK);
7410
7603
  })];
7411
7604
  case 12:
7412
7605
  // Wait for ngOnChanges to be called before continuing to the next task
@@ -7483,7 +7676,7 @@
7483
7676
  var fieldIndex = this.formFields.findIndex(function (_) {
7484
7677
  return field.key === _.key;
7485
7678
  });
7486
- this.formFields[fieldIndex]["hidden"] = true;
7679
+ this.formFields[fieldIndex].hidden = true;
7487
7680
  this.formGroup.updateValueAndValidity();
7488
7681
  this.triggerLogs(ELogEventType$1.FORM__FIELD_HIDE, {
7489
7682
  field_key: fieldKey,
@@ -7511,7 +7704,7 @@
7511
7704
  var fieldIndex = this.formFields.findIndex(function (_) {
7512
7705
  return field.key === _.key;
7513
7706
  });
7514
- this.formFields[fieldIndex]["hidden"] = false;
7707
+ this.formFields[fieldIndex].hidden = false;
7515
7708
  this.formGroup.updateValueAndValidity();
7516
7709
  this.triggerLogs(ELogEventType$1.FORM__FIELD_SHOW, {
7517
7710
  field_key: fieldKey,
@@ -7540,17 +7733,16 @@
7540
7733
  return field.key === _.key;
7541
7734
  });
7542
7735
  if (field.isFormElement) {
7543
- this.formFields[fieldIndex]["disabled"] = true;
7736
+ this.formFields[fieldIndex].disabled = true;
7544
7737
  if (kwikidToolkit.isNotEmptyValue(this.formGroup.controls)) {
7545
7738
  this.formGroup.controls[field.key].disable({
7546
7739
  emitEvent: false
7547
7740
  });
7548
7741
  }
7549
7742
  this.formGroup.updateValueAndValidity();
7550
- console.log("YES DISABLING THE FIELD");
7551
7743
  }
7552
7744
  else if (field.type === EFieldType.BUTTON) {
7553
- this.formFields[fieldIndex]["disabled"] = true;
7745
+ this.formFields[fieldIndex].disabled = true;
7554
7746
  }
7555
7747
  this.triggerLogs(ELogEventType$1.FORM__FIELD_DISABLE, {
7556
7748
  field_key: fieldKey,
@@ -7579,7 +7771,7 @@
7579
7771
  return field.key === _.key;
7580
7772
  });
7581
7773
  if (field.isFormElement) {
7582
- this.formFields[fieldIndex]["disabled"] = false;
7774
+ this.formFields[fieldIndex].disabled = false;
7583
7775
  if (kwikidToolkit.isNotEmptyValue(this.formGroup.controls)) {
7584
7776
  this.formGroup.controls[field.key].enable({
7585
7777
  emitEvent: false
@@ -7588,7 +7780,7 @@
7588
7780
  this.formGroup.updateValueAndValidity();
7589
7781
  }
7590
7782
  else if (field.type === EFieldType.BUTTON) {
7591
- this.formFields[fieldIndex]["disabled"] = false;
7783
+ this.formFields[fieldIndex].disabled = false;
7592
7784
  }
7593
7785
  this.triggerLogs(ELogEventType$1.FORM__FIELD_ENABLE, {
7594
7786
  field_key: fieldKey,
@@ -7644,23 +7836,24 @@
7644
7836
  });
7645
7837
  // Reset the value of the field in the formFields array
7646
7838
  switch (field.type) {
7647
- case EFieldType.API:
7839
+ case EFieldType.API: {
7648
7840
  var fieldApiCall = field;
7649
7841
  fieldApiCall.api.status.value = EApiStatusType.DEFAULT;
7650
7842
  this.formFields[fieldIndex] = fieldApiCall;
7651
7843
  break;
7652
- case EFieldType.LIVE_LOCATION:
7844
+ }
7845
+ case EFieldType.LIVE_LOCATION: {
7653
7846
  var fieldLiveLocation = field;
7654
7847
  fieldLiveLocation.api.status.value = EApiStatusType.DEFAULT;
7655
7848
  this.formFields[fieldIndex] = fieldLiveLocation;
7656
7849
  break;
7657
- default:
7658
- console.log("BAIJU BEFORE", kwikidToolkit.getObjectDeepCopy(field), kwikidToolkit.getObjectDeepCopy(this.formFields));
7850
+ }
7851
+ default: {
7659
7852
  field.focus = false;
7660
7853
  field.invalid = false;
7661
7854
  this.formFields[fieldIndex] = field;
7662
- console.log("BAIJU AFTER", kwikidToolkit.getObjectDeepCopy(field), kwikidToolkit.getObjectDeepCopy(this.formFields));
7663
7855
  break;
7856
+ }
7664
7857
  }
7665
7858
  this.triggerLogs(ELogEventType$1.FORM__FIELD_RESET, {
7666
7859
  field_key: fieldKey,
@@ -7690,18 +7883,21 @@
7690
7883
  });
7691
7884
  // Reset the value of the field in the formFields array
7692
7885
  switch (field.type) {
7693
- case EFieldType.API:
7886
+ case EFieldType.API: {
7694
7887
  var fieldApiCall = field;
7695
7888
  fieldApiCall.disabled = false;
7696
7889
  this.formFields[fieldIndex] = fieldApiCall;
7697
7890
  break;
7698
- case EFieldType.LIVE_LOCATION:
7891
+ }
7892
+ case EFieldType.LIVE_LOCATION: {
7699
7893
  var fieldLiveLocation = field;
7700
7894
  fieldLiveLocation.disabled = false;
7701
7895
  this.formFields[fieldIndex] = fieldLiveLocation;
7702
7896
  break;
7703
- default:
7897
+ }
7898
+ default: {
7704
7899
  break;
7900
+ }
7705
7901
  }
7706
7902
  };
7707
7903
  KwikIDFormViewComponent.prototype.fieldShowApiLoader = function (fieldKey) {
@@ -7711,18 +7907,21 @@
7711
7907
  });
7712
7908
  // Reset the value of the field in the formFields array
7713
7909
  switch (field.type) {
7714
- case EFieldType.API:
7910
+ case EFieldType.API: {
7715
7911
  var fieldApiCall = field;
7716
7912
  fieldApiCall.disabled = true;
7717
7913
  this.formFields[fieldIndex] = fieldApiCall;
7718
7914
  break;
7719
- case EFieldType.LIVE_LOCATION:
7915
+ }
7916
+ case EFieldType.LIVE_LOCATION: {
7720
7917
  var fieldLiveLocation = field;
7721
7918
  fieldLiveLocation.disabled = true;
7722
7919
  this.formFields[fieldIndex] = fieldLiveLocation;
7723
7920
  break;
7724
- default:
7921
+ }
7922
+ default: {
7725
7923
  break;
7924
+ }
7726
7925
  }
7727
7926
  };
7728
7927
  KwikIDFormViewComponent.prototype.setHtml = function (fieldKey, message) {
@@ -7809,7 +8008,7 @@
7809
8008
  };
7810
8009
  KwikIDFormViewComponent.prototype.fieldApiTimerMessageHide = function (fieldKey) {
7811
8010
  return __awaiter(this, void 0, void 0, function () {
7812
- var field, fieldIndex, ruleEngine_9;
8011
+ var field, fieldIndex, ruleEngine_10;
7813
8012
  var _this = this;
7814
8013
  return __generator(this, function (_15) {
7815
8014
  field = getFormFieldByKey(this.formFields, fieldKey);
@@ -7820,10 +8019,11 @@
7820
8019
  if (field.isFormElement &&
7821
8020
  kwikidToolkit.checkObjectKeyExists(field, "validation") &&
7822
8021
  field.validation.triggers.includes("ON_API_TIMER_STOP")) {
7823
- ruleEngine_9 = new kwikidToolkit.RuleEngine({
8022
+ ruleEngine_10 = new kwikidToolkit.RuleEngine({
7824
8023
  FIELD_CONFIG: field,
7825
8024
  FORM_FIELDS: this.formFields,
7826
8025
  FORM_DATA: this.formData,
8026
+ CAMERA_DATA: this.cameraData,
7827
8027
  TASK_DATA: this.taskData,
7828
8028
  PREVIOUS_FORM_DATA: this.previousFormData,
7829
8029
  ALL_FORMS_DATA: this.allFormsData,
@@ -7832,7 +8032,7 @@
7832
8032
  (function () { return __awaiter(_this, void 0, void 0, function () {
7833
8033
  return __generator(this, function (_15) {
7834
8034
  switch (_15.label) {
7835
- case 0: return [4 /*yield*/, ruleEngine_9.run(field.validation)];
8035
+ case 0: return [4 /*yield*/, ruleEngine_10.run(field.validation)];
7836
8036
  case 1:
7837
8037
  _15.sent();
7838
8038
  return [2 /*return*/];
@@ -8130,11 +8330,12 @@
8130
8330
  entrypointApiKey = action.props.apiKey;
8131
8331
  field = getFormFieldByKey(this.formFields, action.props.fieldKey);
8132
8332
  endpoints = field.api.endpoints;
8133
- nextApiIndex = endpoints.findIndex(function (api) { return api.apiKey == entrypointApiKey; });
8333
+ nextApiIndex = endpoints.findIndex(function (api) { return api.apiKey === entrypointApiKey; });
8134
8334
  apiConfig = endpoints[nextApiIndex];
8135
8335
  return [4 /*yield*/, this.handleFieldApiCall(field, apiConfig)];
8136
8336
  case 1:
8137
8337
  response = _15.sent();
8338
+ // eslint-disable-next-line prefer-destructuring
8138
8339
  field = response.field;
8139
8340
  field.api.endpoints[nextApiIndex] = response.api;
8140
8341
  return [2 /*return*/];
@@ -8149,7 +8350,7 @@
8149
8350
  return __generator(this, function (_16) {
8150
8351
  field = getFormFieldByKey(this.formFields, action.props.fieldKey);
8151
8352
  multipleApiCallResponses = {};
8152
- field.api.endpoints.map(function (api) {
8353
+ field.api.endpoints.forEach(function (api) {
8153
8354
  if (kwikidToolkit.checkObjectKeyExists(api.response, "value"))
8154
8355
  multipleApiCallResponses = kwikidToolkit.setValueToObjectPath(multipleApiCallResponses, "" + api.apiKey, api.response.value);
8155
8356
  });
@@ -8191,7 +8392,7 @@
8191
8392
  if (!kwikidToolkit.checkObjectKeyExists(action.props, "apiKey")) return [3 /*break*/, 2];
8192
8393
  entrypointApiKey_1 = action.props.apiKey;
8193
8394
  endpoints = multipleApiConfig.endpoints;
8194
- nextApiIndex = endpoints.findIndex(function (api) { return api.apiKey == entrypointApiKey_1; });
8395
+ nextApiIndex = endpoints.findIndex(function (api) { return api.apiKey === entrypointApiKey_1; });
8195
8396
  apiConfig = endpoints[nextApiIndex];
8196
8397
  return [4 /*yield*/, this.handleApiCall(apiConfig)];
8197
8398
  case 1:
@@ -8206,6 +8407,7 @@
8206
8407
  API_CONFIG: multipleApiConfig,
8207
8408
  FORM_FIELDS: this.formFields,
8208
8409
  FORM_DATA: this.formData,
8410
+ CAMERA_DATA: this.cameraData,
8209
8411
  TASK_DATA: this.taskData,
8210
8412
  PREVIOUS_FORM_DATA: this.previousFormData,
8211
8413
  ALL_FORMS_DATA: this.allFormsData,
@@ -8227,7 +8429,7 @@
8227
8429
  return __generator(this, function (_16) {
8228
8430
  multipleApiConfig = this.formConfig.apis[action.props.formApiKey];
8229
8431
  multipleApiCallResponses = {};
8230
- multipleApiConfig.endpoints.map(function (api) {
8432
+ multipleApiConfig.endpoints.forEach(function (api) {
8231
8433
  if (kwikidToolkit.checkObjectKeyExists(api.response, "value"))
8232
8434
  multipleApiCallResponses = kwikidToolkit.setValueToObjectPath(multipleApiCallResponses, "" + api.apiKey, api.response.value);
8233
8435
  });
@@ -8269,7 +8471,8 @@
8269
8471
  if (kwikidToolkit.checkObjectKeyExists(action.props.url, "url")) {
8270
8472
  var timeout = 2000;
8271
8473
  if (kwikidToolkit.checkObjectKeyExists(action.props.url, "timeout") &&
8272
- typeof action.props.url.timeout == "number") {
8474
+ typeof action.props.url.timeout === "number") {
8475
+ // eslint-disable-next-line prefer-destructuring
8273
8476
  timeout = action.props.url.timeout;
8274
8477
  }
8275
8478
  this.triggerLogs(ELogEventType$1.FORM__REDIRECT_URL, {
@@ -8300,10 +8503,12 @@
8300
8503
  else {
8301
8504
  var formDataInKwikUIFormat = {};
8302
8505
  for (var fieldKey in formData) {
8303
- var field = getFormFieldByKey(this.formFields, fieldKey);
8304
- if (!kwikidToolkit.isUndefined(field) && !kwikidToolkit.isNull(field)) {
8305
- formDataInKwikUIFormat[fieldKey] =
8306
- convertFormFieldValueToKwikUIFormat(field, formData[fieldKey]);
8506
+ if (kwikidToolkit.isNotEmptyValue(fieldKey)) {
8507
+ var field = getFormFieldByKey(this.formFields, fieldKey);
8508
+ if (!kwikidToolkit.isUndefined(field) && !kwikidToolkit.isNull(field)) {
8509
+ formDataInKwikUIFormat[fieldKey] =
8510
+ convertFormFieldValueToKwikUIFormat(field, formData[fieldKey]);
8511
+ }
8307
8512
  }
8308
8513
  }
8309
8514
  this.formGroup.patchValue(formDataInKwikUIFormat, { emitEvent: false });
@@ -8487,7 +8692,7 @@
8487
8692
  KwikIDFormViewComponent.prototype.takeAction = function (action, object) {
8488
8693
  var _a, _b, _c, _d, _e, _f;
8489
8694
  return __awaiter(this, void 0, void 0, function () {
8490
- var _15, fieldErrorShow_Source, fieldErrorShowSourceValue, fieldErrorHide_Source, fieldErrorHideSourceValue, redirectToUrl_Source, redirectToUrlSourceValue, previewErrorShow_Source, previewErrorShowSourceValue, fieldHtmlMessage_Source, fieldHtmlMessageSourceValue;
8695
+ var _15, fieldErrorShowSource, fieldErrorShowSourceValue, fieldErrorHideSource, fieldErrorHideSourceValue, redirectToUrlSource, redirectToUrlSourceValue, previewErrorShowSource, previewErrorShowSourceValue, fieldHtmlMessageSource, fieldHtmlMessageSourceValue;
8491
8696
  return __generator(this, function (_16) {
8492
8697
  switch (_16.label) {
8493
8698
  case 0:
@@ -8562,12 +8767,12 @@
8562
8767
  return [3 /*break*/, 73];
8563
8768
  case 8:
8564
8769
  if (!kwikidToolkit.checkObjectKeyExists(action.props.message, "source")) return [3 /*break*/, 10];
8565
- fieldErrorShow_Source = new kwikidToolkit.Source(object);
8566
- return [4 /*yield*/, fieldErrorShow_Source.getValueFromSource(action.props.message.source)];
8770
+ fieldErrorShowSource = new kwikidToolkit.Source(object);
8771
+ return [4 /*yield*/, fieldErrorShowSource.getValueFromSource(action.props.message.source)];
8567
8772
  case 9:
8568
8773
  fieldErrorShowSourceValue = _16.sent();
8569
- if (typeof fieldErrorShowSourceValue == "string" ||
8570
- typeof fieldErrorShowSourceValue == "number") {
8774
+ if (typeof fieldErrorShowSourceValue === "string" ||
8775
+ typeof fieldErrorShowSourceValue === "number") {
8571
8776
  fieldErrorShowSourceValue = String(fieldErrorShowSourceValue);
8572
8777
  }
8573
8778
  else {
@@ -8581,12 +8786,12 @@
8581
8786
  return [3 /*break*/, 73];
8582
8787
  case 11:
8583
8788
  if (!kwikidToolkit.checkObjectKeyExists(action.props.message, "source")) return [3 /*break*/, 13];
8584
- fieldErrorHide_Source = new kwikidToolkit.Source(object);
8585
- return [4 /*yield*/, fieldErrorHide_Source.getValueFromSource(action.props.message.source)];
8789
+ fieldErrorHideSource = new kwikidToolkit.Source(object);
8790
+ return [4 /*yield*/, fieldErrorHideSource.getValueFromSource(action.props.message.source)];
8586
8791
  case 12:
8587
8792
  fieldErrorHideSourceValue = _16.sent();
8588
- if (typeof fieldErrorHideSourceValue == "string" ||
8589
- typeof fieldErrorHideSourceValue == "number") {
8793
+ if (typeof fieldErrorHideSourceValue === "string" ||
8794
+ typeof fieldErrorHideSourceValue === "number") {
8590
8795
  fieldErrorHideSourceValue = String(fieldErrorHideSourceValue);
8591
8796
  }
8592
8797
  else {
@@ -8676,8 +8881,8 @@
8676
8881
  return [3 /*break*/, 73];
8677
8882
  case 51:
8678
8883
  if (!kwikidToolkit.checkObjectKeyExists(action.props.url, "source")) return [3 /*break*/, 53];
8679
- redirectToUrl_Source = new kwikidToolkit.Source(object);
8680
- return [4 /*yield*/, redirectToUrl_Source.getValueFromSource(action.props.url.source)];
8884
+ redirectToUrlSource = new kwikidToolkit.Source(object);
8885
+ return [4 /*yield*/, redirectToUrlSource.getValueFromSource(action.props.url.source)];
8681
8886
  case 52:
8682
8887
  redirectToUrlSourceValue = _16.sent();
8683
8888
  if (kwikidToolkit.isEmptyString(redirectToUrlSourceValue)) {
@@ -8687,18 +8892,18 @@
8687
8892
  _16.label = 53;
8688
8893
  case 53:
8689
8894
  this.redirectToUrl(action);
8690
- _16.label = 54;
8895
+ return [3 /*break*/, 73];
8691
8896
  case 54:
8692
8897
  this.showPreview(action.props);
8693
8898
  return [3 /*break*/, 73];
8694
8899
  case 55:
8695
8900
  if (!kwikidToolkit.checkObjectKeyExists(action.props.message, "source")) return [3 /*break*/, 57];
8696
- previewErrorShow_Source = new kwikidToolkit.Source(object);
8697
- return [4 /*yield*/, previewErrorShow_Source.getValueFromSource(action.props.message.source)];
8901
+ previewErrorShowSource = new kwikidToolkit.Source(object);
8902
+ return [4 /*yield*/, previewErrorShowSource.getValueFromSource(action.props.message.source)];
8698
8903
  case 56:
8699
8904
  previewErrorShowSourceValue = _16.sent();
8700
- if (typeof previewErrorShowSourceValue == "string" ||
8701
- typeof previewErrorShowSourceValue == "number") {
8905
+ if (typeof previewErrorShowSourceValue === "string" ||
8906
+ typeof previewErrorShowSourceValue === "number") {
8702
8907
  previewErrorShowSourceValue = String(previewErrorShowSourceValue);
8703
8908
  }
8704
8909
  else {
@@ -8749,12 +8954,12 @@
8749
8954
  return [3 /*break*/, 73];
8750
8955
  case 69:
8751
8956
  if (!kwikidToolkit.checkObjectKeyExists(action.props.message, "source")) return [3 /*break*/, 71];
8752
- fieldHtmlMessage_Source = new kwikidToolkit.Source(object);
8753
- return [4 /*yield*/, fieldHtmlMessage_Source.getValueFromSource(action.props.message.source)];
8957
+ fieldHtmlMessageSource = new kwikidToolkit.Source(object);
8958
+ return [4 /*yield*/, fieldHtmlMessageSource.getValueFromSource(action.props.message.source)];
8754
8959
  case 70:
8755
8960
  fieldHtmlMessageSourceValue = _16.sent();
8756
- if (typeof fieldHtmlMessageSourceValue == "string" ||
8757
- typeof fieldHtmlMessageSourceValue == "number") {
8961
+ if (typeof fieldHtmlMessageSourceValue === "string" ||
8962
+ typeof fieldHtmlMessageSourceValue === "number") {
8758
8963
  fieldHtmlMessageSourceValue = String(fieldHtmlMessageSourceValue);
8759
8964
  }
8760
8965
  else {
@@ -8775,7 +8980,7 @@
8775
8980
  return KwikIDFormViewComponent;
8776
8981
  }());
8777
8982
  /** @nocollapse */ KwikIDFormViewComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: KwikIDFormViewComponent, deps: [{ token: i0__namespace.ChangeDetectorRef }, { token: KwikIDFormViewService }, { token: KwikIDFormViewApiService }, { token: i6.TuiPushService }, { token: i5.TuiAlertService }, { token: i7.TuiPreviewDialogService }, { token: i5.TuiDialogService }, { token: i3__namespace.KwikUILoaderService }, { token: i4__namespace.KwikIDCameraRecordService }, { token: i0__namespace.ChangeDetectorRef }, { token: i0__namespace.Renderer2 }], target: i0__namespace.ɵɵFactoryTarget.Component });
8778
- /** @nocollapse */ KwikIDFormViewComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDFormViewComponent, selector: "kwikid-form-view", inputs: { allFormsData: "allFormsData", extraData: "extraData", apiCallResponse: "apiCallResponse", buttonClickResponse: "buttonClickResponse", formConfig: "formConfig", formData: "formData", isMobileView: "isMobileView", popupFormCallback: "popupFormCallback", userConfig: "userConfig", stepConfig: "stepConfig" }, outputs: { getLogs: "getLogs", getUnsavedDataState: "getUnsavedDataState", onActionShowPopupForm: "onActionShowPopupForm", onClickApiCall: "onClickApiCall", onClickViewFile: "onClickViewFile", onClickFormFieldButton: "onClickFormFieldButton", onClickGoBack: "onClickGoBack", onClickSaveForm: "onClickSaveForm", onClickViewForms: "onClickViewForms" }, providers: [KwikIDFormViewService, KwikIDFormViewApiService], viewQueries: [{ propertyName: "formFieldContainerRef", first: true, predicate: ["formFieldContainerRef"], descendants: true }, { propertyName: "dialog", first: true, predicate: ["dialog"], descendants: true }, { propertyName: "preview", first: true, predicate: ["preview"], descendants: true }, { propertyName: "formFieldsRef", predicate: ["formFieldsRef"], descendants: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<div\n class=\"kwikid-form-container\"\n *ngIf=\"!loading\"\n>\n <div\n id=\"uf-form-fields-header-container\"\n *ngIf=\"\n !formConfig.properties?.header?.title?.hidden ||\n !formConfig.properties?.header?.logo?.hidden ||\n !formConfig.properties?.header?.steps?.hidden ||\n !formConfig.properties?.header?.backButton?.hidden\n \"\n >\n <img\n id=\"uf-header-logo\"\n *ngIf=\"!formConfig.properties?.header?.logo?.hidden && isMobileView\"\n [src]=\"formConfig.properties?.header?.logo?.src\"\n [alt]=\"formConfig.properties?.header?.logo?.alt\"\n [style]=\"\n formConfig.properties?.header?.logo?.styles ?? '' | styleSanitizer\n \"\n />\n <div id=\"uf-form-fields-header-main\">\n <div id=\"uf-form-fields-header-left\">\n <kwikui-button\n *ngIf=\"\n !formConfig.properties?.header.backButton.hidden && isMobileView\n \"\n [disabled]=\"backButton.disabled\"\n [showLoader]=\"backButton.showLoader\"\n appearance=\"mono\"\n icon=\"tuiIconArrowLeft\"\n shape=\"rounded\"\n (onClick)=\"\n handleOnClickGoBack(\n $event,\n formConfig.properties?.header.backButton.mode\n )\n \"\n ></kwikui-button>\n </div>\n <div id=\"uf-form-fields-header-right\">\n <div\n id=\"uf-form-fields-title\"\n *ngIf=\"!formConfig.properties?.header.title.hidden\"\n >{{ formConfig.properties?.header.title.label }}</div\n >\n <div\n id=\"uf-form-fields-steps\"\n *ngIf=\"!formConfig.properties?.header.steps.hidden\"\n >\n Step {{ formConfig.sequenceNo }} of {{ formConfig.formsListLength }}\n </div>\n </div>\n </div>\n <hr\n *ngIf=\"\n !formConfig.properties?.header.title.hidden ||\n !formConfig.properties?.header.steps.hidden ||\n !formConfig.properties?.header.backButton.hidden\n \"\n />\n </div>\n <form\n #formFieldContainerRef\n class=\"kwikid-form show\"\n [style]=\"formConfig.properties?.main?.styles ?? '' | styleSanitizer\"\n [formGroup]=\"formGroup\"\n >\n <ng-container\n *ngFor=\"\n let field of formFields;\n let i = index;\n trackBy: getUniqueIdentifier\n \"\n >\n <ng-container [ngSwitch]=\"field.type\">\n <!-- HTML Content -->\n <ng-container *ngSwitchCase=\"'html'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <div [innerHtml]=\"field.html | kwikuiSafeHtml\"></div>\n </div>\n </ng-container>\n <!-- Form Title -->\n <ng-container *ngSwitchCase=\"'title'\">\n <div\n #formFieldsRef\n class=\"title\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n [class.hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <div>\n {{ field.label }}\n </div>\n <kwikui-button\n *ngIf=\"field?.reset\"\n appearance=\"whiteblock\"\n size=\"s\"\n [label]=\"field?.properties?.resetButtonLabel ?? 'Reset'\"\n (onClick)=\"handleOnClickResetFormFields($event, field)\"\n ></kwikui-button>\n </div>\n </ng-container>\n <!-- Button -->\n <ng-container *ngSwitchCase=\"'button'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-button\n [appearance]=\"field?.properties?.appearance ?? 'primary'\"\n [class]=\"field?.properties?.class\"\n [disabled]=\"field?.disabled\"\n [icon]=\"field?.properties?.icon\"\n [iconRight]=\"field?.properties?.iconRight\"\n [id]=\"field?.key\"\n [label]=\"field?.label\"\n [shape]=\"field?.properties?.shape\"\n [showLoader]=\"field?.properties?.loading ?? false\"\n [size]=\"field?.properties?.size\"\n [styles]=\"field?.properties?.styles\"\n [type]=\"'button'\"\n (onClick)=\"handleOnClickFormFieldButton(field)\"\n ></kwikui-button>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Text -->\n <ng-container *ngSwitchCase=\"'text'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input\n [case]=\"field?.properties?.case\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [placeholder]=\"field?.properties?.placeholder\"\n [postfix]=\"field?.properties?.postfix\"\n [prefix]=\"field?.properties?.prefix\"\n [properties]=\"field?.properties\"\n [type]=\"'text'\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Currency -->\n <ng-container *ngSwitchCase=\"'currency'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-currency\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [currencyType]=\"field?.properties?.currencyType\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [placeholder]=\"field?.properties?.placeholder\"\n [postfix]=\"field?.properties?.postfix\"\n [prefix]=\"field?.properties?.prefix\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n [value]=\"formGroup.controls[field.key].value\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-currency>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Email -->\n <ng-container *ngSwitchCase=\"'email'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-email\n [case]=\"field?.properties?.case\"\n [disabled]=\"field?.disabled\"\n [domains]=\"field?.properties?.domains\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [placeholder]=\"field?.properties?.placeholder\"\n [postfix]=\"field?.properties?.postfix\"\n [prefix]=\"field?.properties?.prefix\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-email>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Password -->\n <ng-container *ngSwitchCase=\"'password'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-password\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [hintContent]=\"field?.properties?.hintContent\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [placeholder]=\"field?.properties?.placeholder\"\n [postfix]=\"field?.properties?.postfix\"\n [prefix]=\"field?.properties?.prefix\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-password>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Textarea -->\n <ng-container *ngSwitchCase=\"'textarea'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-textarea\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-textarea>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Checkbox -->\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-checkbox\n [contentAlign]=\"field?.properties?.contentAlign ?? 'left'\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.properties?.placeholder\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [size]=\"field?.properties?.size ?? 'l'\"\n [validators]=\"field?.validators\"\n [variant]=\"field?.properties?.variant ?? 'block'\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-checkbox>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Number -->\n <ng-container *ngSwitchCase=\"'number'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-number\n [decimal]=\"field?.properties?.decimal\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [max]=\"field?.properties?.max\"\n [min]=\"field?.properties?.min\"\n [placeholder]=\"field?.properties?.placeholder\"\n [postfix]=\"field?.properties?.postfix ?? ''\"\n [precision]=\"field?.properties?.precision\"\n [prefix]=\"field?.properties?.prefix ?? ''\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-number>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Date -->\n <ng-container *ngSwitchCase=\"'date'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-date\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [max]=\"field?.properties?.max\"\n [maxCalculatedFromToday]=\"\n field?.properties?.maxCalculatedFromToday\n \"\n [min]=\"field?.properties?.min\"\n [minCalculatedFromToday]=\"\n field?.properties?.minCalculatedFromToday\n \"\n [placeholder]=\"field?.properties?.placeholder\"\n [postfix]=\"field?.properties?.postfix\"\n [prefix]=\"field?.properties?.prefix\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-date>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Time -->\n <ng-container *ngSwitchCase=\"'time'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-time\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [items]=\"field?.properties?.items\"\n [label]=\"field?.label\"\n [mode]=\"field?.properties?.mode\"\n [placeholder]=\"field?.properties?.placeholder\"\n [postfix]=\"field?.properties?.postfix\"\n [prefix]=\"field?.properties?.prefix\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-time>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Phone -->\n <ng-container *ngSwitchCase=\"'phone'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-phone\n [countryCode]=\"field?.properties?.countryCode\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [phoneMaskAfterCountryCode]=\"\n field?.properties?.phoneMaskAfterCountryCode\n \"\n [placeholder]=\"field?.properties?.placeholder\"\n [postfix]=\"field?.properties?.postfix\"\n [prefix]=\"field?.properties?.prefix\"\n [properties]=\"field?.properties\"\n [removeCountryCodeFromValue]=\"\n field?.properties?.removeCountryCodeFromValue\n \"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-phone>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Radio -->\n <ng-container *ngSwitchCase=\"'radio'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <label\n [tuiLabel]=\"labelTemplate\"\n style=\"min-height: auto; padding: 0px 0.5rem\"\n >\n <kwikui-input-radio\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [items]=\"field?.options\"\n [label]=\"field?.label\"\n [orientation]=\"field?.properties?.orientation\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [size]=\"field?.properties?.size\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-radio>\n </label>\n <ng-template #labelTemplate>\n <p\n class=\"tui-space_bottom-2\"\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <b>\n {{ field.label }}\n <span *ngIf=\"field.validators?.required\">*</span>\n </b>\n </p>\n </ng-template>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Dropdown -->\n <ng-container *ngSwitchCase=\"'select'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-select\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [options]=\"field.options\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [searchable]=\"field?.properties?.searchable\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-select>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Slider -->\n <ng-container *ngSwitchCase=\"'slider'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-slider\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [max]=\"field?.properties?.max\"\n [min]=\"field?.properties?.min\"\n [placeholder]=\"field?.properties?.placeholder\"\n [postfix]=\"field?.properties?.postfix\"\n [prefix]=\"field?.properties?.prefix\"\n [properties]=\"field?.properties\"\n [quantum]=\"field?.properties?.quantum\"\n [size]=\"field?.properties?.size\"\n [steps]=\"field?.properties?.steps\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-slider>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- API Call -->\n <ng-container *ngSwitchCase=\"'api'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-button-api-call\n [apiStatus]=\"field?.api?.status?.value\"\n [apiTimer]=\"field?.api?.timer\"\n [class]=\"field?.class\"\n [disabled]=\"field?.disabled\"\n [id]=\"field.key\"\n [label]=\"field?.api?.status?.labels[field?.api?.status?.value]\"\n [showLoader]=\"field?.disabled === 'loading'\"\n [size]=\"field?.properties?.size\"\n [styles]=\"\n field?.properties?.styles\n ? field?.properties?.styles\n : 'width: fit-content'\n \"\n (onClick)=\"handleOnClickApiCall($event)\"\n (onApiTimerStop)=\"handleOnApiTimerStop($event)\"\n ></kwikui-button-api-call>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Live Location -->\n <ng-container *ngSwitchCase=\"'live-location'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-button-live-location\n [class]=\"field?.class\"\n [disabled]=\"field?.disabled\"\n [id]=\"field.key\"\n [label]=\"field?.api?.status?.labels[field?.api?.status?.value]\"\n [liveLocationStatus]=\"field?.api?.status?.value\"\n [shape]=\"field?.properties?.shape\"\n [isShowLatLongCaptureTimestamp]=\"\n field?.properties?.isShowLatLongCaptureTimestamp\n \"\n [showLoader]=\"field?.disabled\"\n [size]=\"field?.properties?.size\"\n styles=\"width: fit-content\"\n (onClick)=\"handleOnClickLiveLocation($event)\"\n (onLocationPermission)=\"handleOnLocationPermission($event)\"\n ></kwikui-button-live-location>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Mobile OTP -->\n <ng-container *ngSwitchCase=\"'otp'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-otp\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [mask]=\"field?.properties?.mask\"\n [mode]=\"field?.properties?.mode\"\n [otpLength]=\"field?.properties?.otpLength\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [size]=\"field?.properties?.size\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-otp>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Aadhaar Number -->\n <ng-container *ngSwitchCase=\"'aadhaar-number'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-aadhaar\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [mask]=\"field?.properties?.mask\"\n [placeholder]=\"field?.placeholder\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-aadhaar>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Preview Image -->\n <ng-container *ngSwitchCase=\"'image'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-image\n [altText]=\"field?.properties?.altText\"\n [class]=\"field?.properties?.class\"\n [html]=\"field?.properties?.html\"\n [id]=\"field.key\"\n [imageSrc]=\"formGroup.controls[field.key].value ?? ''\"\n [imageType]=\"field?.properties?.imageType\"\n [loadingType]=\"field?.properties?.loadingType\"\n [styles]=\"field?.properties?.styles\"\n ></kwikui-image>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- File Upload -->\n <ng-container *ngSwitchCase=\"'file'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <label\n [tuiLabel]=\"labelTemplate\"\n style=\"min-height: auto\"\n >\n <kwikui-input-files\n [accept]=\"field?.properties?.accept\"\n [class]=\"field?.properties?.class\"\n [disabled]=\"field?.disabled\"\n [files]=\"files[field.key]\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field?.key\"\n [label]=\"field?.properties?.label\"\n [link]=\"field?.properties?.link\"\n [maxFileSize]=\"field?.properties?.maxFileSize\"\n [multiple]=\"field?.properties?.multiple\"\n [setFileTypesToForm]=\"['NORMAL']\"\n [styles]=\"field?.properties?.styles\"\n [validators]=\"field?.validators\"\n [showViewButton]=\"field?.properties?.showViewButton\"\n (getKeyValue)=\"handleGetKeyValueFile($event)\"\n (getRemovedFile)=\"handleRemovedFile($event)\"\n (getViewButtonClick)=\"handleViewButtonClick($event, field)\"\n ></kwikui-input-files>\n </label>\n <ng-template #labelTemplate>\n <p\n style=\"padding: 0px 0.25rem; margin-bottom: 0.25rem\"\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <b>\n {{ field.label }}\n <span *ngIf=\"field.validators?.required\">*</span>\n </b>\n </p>\n </ng-template>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Camera Capture -->\n <ng-container *ngSwitchCase=\"'capture'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <label\n *ngIf=\"\n field?.label !== '' &&\n field?.label !== undefined &&\n field?.label !== null\n \"\n style=\"min-height: auto\"\n >\n <p\n *ngIf=\"field?.label !== ''\"\n style=\"padding: 0px 0.25rem; margin-bottom: 0.5rem\"\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <b>\n {{ field.label }}\n <span *ngIf=\"field.validators?.required\">*</span>\n </b>\n </p>\n </label>\n <kwikui-input-camera\n [buttonText]=\"field?.properties?.buttonText\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [icon]=\"field?.properties?.icon\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [mediaFiles]=\"mediaFiles[field.key]\"\n [properties]=\"field?.properties\"\n [showMediaFiles]=\"field?.properties?.showMediaFiles\"\n [type]=\"'capture'\"\n [validators]=\"field?.validators\"\n (onClick)=\"handleOnClickInputCamera($event, field)\"\n (getRemovedFile)=\"handleOnClickGetRemovedMediaFile($event)\"\n ></kwikui-input-camera>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Camera Record -->\n <ng-container *ngSwitchCase=\"'record'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <label\n *ngIf=\"\n field?.label !== '' &&\n field?.label !== undefined &&\n field?.label !== null\n \"\n style=\"min-height: auto\"\n >\n <p\n *ngIf=\"field?.label !== ''\"\n style=\"padding: 0px 0.25rem; margin-bottom: 0.5rem\"\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <b>\n {{ field.label }}\n <span *ngIf=\"field.validators?.required\">*</span>\n </b>\n </p>\n </label>\n <kwikui-input-camera\n [buttonText]=\"field?.properties?.buttonText\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [icon]=\"field?.properties?.icon\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [mediaFiles]=\"mediaFiles[field.key]\"\n [properties]=\"field?.properties\"\n [showMediaFiles]=\"field?.properties?.showMediaFiles\"\n [type]=\"'record'\"\n [validators]=\"field?.validators\"\n (onClick)=\"handleOnClickInputCamera($event, field)\"\n (getRemovedFile)=\"handleOnClickGetRemovedMediaFile($event)\"\n ></kwikui-input-camera>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Star Rating -->\n <ng-container *ngSwitchCase=\"'star-rating'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <label\n [tuiLabel]=\"labelTemplate\"\n style=\"min-height: auto; padding: 0px 0.5rem\"\n >\n <kwikui-star-rating\n [color]=\"field?.properties?.color\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [icon]=\"field?.properties?.icon\"\n [iconMarked]=\"field?.properties?.iconMarked\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [max]=\"field?.properties?.max\"\n [min]=\"field?.properties?.min\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [size]=\"field?.properties?.size\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-star-rating>\n </label>\n <ng-template #labelTemplate>\n <p>\n <b\n >{{ field?.properties?.placeholder }}\n <span *ngIf=\"field.validators?.required\">*</span></b\n >\n </p>\n </ng-template>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </form>\n <div\n class=\"kwikid-form-buttons\"\n *ngIf=\"\n !formConfig.properties.footer.viewFormsButton.hidden ||\n !formConfig.properties.footer.saveButton.hidden\n \"\n >\n <kwikui-button\n *ngIf=\"\n !formConfig.properties.footer.viewFormsButton.hidden && isMobileView\n \"\n [appearance]=\"'secondary'\"\n [disabled]=\"viewFormsButton.disabled\"\n [label]=\"formConfig.properties.footer.viewFormsButton.label\"\n [showLoader]=\"viewFormsButton.showLoader\"\n [styles]=\"'width: 100%'\"\n (onClick)=\"handleOnClickViewForms($event)\"\n ></kwikui-button>\n <kwikui-button\n *ngIf=\"!formConfig.properties.footer.saveButton.hidden\"\n [disabled]=\"saveFormButton.disabled\"\n [label]=\"formConfig.properties.footer.saveButton.label\"\n [showLoader]=\"saveFormButton.showLoader\"\n [styles]=\"'width: 100%'\"\n (onClick)=\"handleOnClickSaveForm($event)\"\n ></kwikui-button>\n </div>\n</div>\n<div\n class=\"kwikid-form-container-loading\"\n *ngIf=\"loading\"\n>\n <div\n *ngFor=\"let item of [].constructor(7); let i = index\"\n class=\"large-wrapper tui-skeleton tui-skeleton_rounded\"\n >\n </div>\n</div>\n\n<kwikui-loader></kwikui-loader>\n\n<tui-push\n id=\"field-error-notification\"\n *tuiPush=\"showErrorNotification\"\n heading=\"Missing/Incorrect Fields!\"\n type=\"Error\"\n (close)=\"toggleErrorNotification(false)\"\n>\n <tui-svg\n src=\"tuiIconXCircle\"\n style=\"color: #fff !important\"\n >\n </tui-svg>\n</tui-push>\n\n<tui-push\n id=\"permission-error-notification\"\n *tuiPush=\"showPermissionErrorNotification\"\n heading=\"Please provide required permissions!\"\n type=\"Error\"\n (close)=\"togglePermissionErrorNotification(false)\"\n>\n <tui-svg\n src=\"tuiIconXCircle\"\n style=\"color: #fff !important\"\n >\n </tui-svg>\n</tui-push>\n\n<ng-template\n #preview\n let-preview\n>\n <tui-preview\n [rotatable]=\"false\"\n [zoomable]=\"false\"\n class=\"preview-container\"\n >\n <tui-preview-title *ngIf=\"previewProperties.title !== ''\">{{\n previewProperties.title\n }}</tui-preview-title>\n\n <ng-container *ngIf=\"!previewProperties.unavailable\">\n <div\n *ngIf=\"previewProperties?.html?.before !== ''\"\n class=\"preview-html preview-html-before\"\n [style]=\"previewProperties?.html?.beforeStyles ?? '' | styleSanitizer\"\n [innerHtml]=\"previewProperties.html.before | kwikuiSafeHtml\"\n ></div>\n\n <!-- Content within the iframe -->\n <div\n class=\"preview-iframe-content\"\n [style]=\"\n previewProperties?.iframe?.containerStyles ?? '' | styleSanitizer\n \"\n *ngIf=\"previewProperties.iframe.src !== ''\"\n >\n <!-- Your HTML content here -->\n <iframe\n [src]=\"previewProperties.iframe.src | kwikuiSafeUrl\"\n frameborder=\"0\"\n allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n allowfullscreen\n [title]=\"previewProperties.iframe.title\"\n class=\"preview-iframe\"\n scrolling=\"auto\"\n ></iframe>\n </div>\n\n <div\n *ngIf=\"previewProperties?.html?.after !== ''\"\n class=\"preview-html preview-html-after\"\n [style]=\"previewProperties?.html?.afterStyles ?? '' | styleSanitizer\"\n [innerHtml]=\"previewProperties.html.after | kwikuiSafeHtml\"\n ></div>\n </ng-container>\n\n <ng-container *ngIf=\"previewProperties.unavailable\">\n <div class=\"preview-unavailable\">\n <tui-svg\n src=\"tuiIconFileLarge\"\n class=\"t-icon\"\n ></tui-svg>\n <div>Preview unavailable</div>\n </div>\n </ng-container>\n\n <button\n tuiIconButton\n tuiPreviewAction\n icon=\"tuiIconCloseLarge\"\n title=\"Close\"\n type=\"button\"\n (click)=\"preview.complete()\"\n ></button>\n </tui-preview>\n</ng-template>\n\n<ng-template\n #dialog\n let-dialog\n>\n <div class=\"preview-container\">\n <ng-container *ngIf=\"!previewProperties.unavailable\">\n <div\n *ngIf=\"previewProperties?.html?.before !== ''\"\n class=\"preview-html preview-html-before\"\n [style]=\"previewProperties?.html?.beforeStyles ?? '' | styleSanitizer\"\n [innerHtml]=\"previewProperties.html.before | kwikuiSafeHtml\"\n ></div>\n\n <!-- Content within the iframe -->\n <div\n class=\"preview-iframe-content\"\n [style]=\"\n previewProperties?.iframe?.containerStyles ?? '' | styleSanitizer\n \"\n *ngIf=\"previewProperties.iframe.src !== ''\"\n >\n <!-- Your HTML content here -->\n <iframe\n [src]=\"previewProperties.iframe.src | kwikuiSafeUrl\"\n frameborder=\"0\"\n allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n allowfullscreen\n [title]=\"previewProperties.iframe.title\"\n class=\"preview-iframe\"\n scrolling=\"auto\"\n ></iframe>\n </div>\n\n <div\n *ngIf=\"previewProperties?.html?.after !== ''\"\n class=\"preview-html preview-html-after\"\n [style]=\"previewProperties?.html?.afterStyles ?? '' | styleSanitizer\"\n [innerHtml]=\"previewProperties.html.after | kwikuiSafeHtml\"\n ></div>\n </ng-container>\n\n <ng-container *ngIf=\"previewProperties.unavailable\">\n <div class=\"preview-unavailable\">\n <tui-svg\n src=\"tuiIconFileLarge\"\n class=\"t-icon\"\n ></tui-svg>\n <div>Preview unavailable</div>\n </div>\n </ng-container>\n </div>\n</ng-template>\n\n<div\n id=\"kwikid-camera-container\"\n *ngIf=\"isShowCamera\"\n>\n <div\n id=\"kwikid-camera-wrapper\"\n [class.fullscreen]=\"isShowCameraFullscreen\"\n >\n <kwikid-camera\n [type]=\"cameraType\"\n [data]=\"cameraData\"\n [image]=\"cameraImage\"\n [video]=\"cameraVideo\"\n [config]=\"cameraConfig\"\n (getImage)=\"handleGetCameraMedia($event, 'CAPTURE')\"\n (getVideo)=\"handleGetCameraMedia($event, 'RECORD')\"\n (onClickBack)=\"handleOnClickCameraBack($event)\"\n (onClickClose)=\"handleOnClickCameraClose($event)\"\n (onClickSave)=\"handleOnClickSaveCameraMedia($event, cameraType)\"\n >\n <ng-container\n *ngIf=\"cameraType === 'CAPTURE'\"\n slot=\"capture-header\"\n >\n <div class=\"capture-header-container\">\n <div class=\"capture-header-left\"> </div>\n <div class=\"capture-header-center\">\n <kwikui-button\n *ngIf=\"cameraConfig?.header?.title !== ''\"\n appearance=\"whiteblock\"\n [label]=\"cameraConfig?.header?.title\"\n shape=\"rounded\"\n size=\"s\"\n ></kwikui-button>\n </div>\n <div class=\"capture-header-right\">\n <kwikui-button\n *ngIf=\"cameraConfig?.header?.isExpand\"\n id=\"kwikid-camera-header-enlarge-button\"\n appearance=\"whiteblock\"\n [icon]=\"\n isShowCameraFullscreen ? 'tuiIconMinimize2' : 'tuiIconMaximize2'\n \"\n shape=\"rounded\"\n size=\"s\"\n (click)=\"isShowCameraFullscreen = !isShowCameraFullscreen\"\n ></kwikui-button>\n <kwikui-button\n *ngIf=\"cameraConfig?.header?.isClose\"\n id=\"kwikid-camera-header-close-button\"\n appearance=\"whiteblock\"\n icon=\"tuiIconCloseLarge\"\n shape=\"rounded\"\n size=\"s\"\n (click)=\"handleOnClickCameraClose($event)\"\n ></kwikui-button>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"cameraType === 'RECORD'\"\n slot=\"record-header\"\n >\n <div class=\"record-header-container\">\n <div class=\"record-header-row row-1\">\n <div class=\"record-header-left\">\n <kwikui-button\n *ngIf=\"\n cameraConfig?.header?.isBack && cameraRecordingState == 'NONE'\n \"\n appearance=\"whiteblock\"\n icon=\"tuiIconArrowLeft\"\n shape=\"rounded\"\n size=\"s\"\n (click)=\"handleOnClickCameraClose($event)\"\n ></kwikui-button>\n </div>\n <div class=\"record-header-center\">\n <kwikui-button\n *ngIf=\"cameraConfig?.header?.title !== ''\"\n appearance=\"whiteblock\"\n [label]=\"cameraConfig?.header?.title\"\n shape=\"rounded\"\n size=\"s\"\n ></kwikui-button>\n </div>\n <div class=\"record-header-right\">\n <kwikui-button\n *ngIf=\"cameraConfig?.header?.isExpand\"\n id=\"kwikid-camera-header-enlarge-button\"\n appearance=\"whiteblock\"\n [icon]=\"\n isShowCameraFullscreen\n ? 'tuiIconMinimize2'\n : 'tuiIconMaximize2'\n \"\n shape=\"rounded\"\n size=\"s\"\n (click)=\"isShowCameraFullscreen = !isShowCameraFullscreen\"\n ></kwikui-button>\n </div>\n </div>\n <div class=\"record-header-row row-2\">\n <div\n id=\"blinking-dot-container\"\n [class.recording]=\"cameraRecordingState == 'RECORDING'\"\n [class.paused]=\"cameraRecordingState == 'PAUSED'\"\n [class.recorded]=\"\n cameraRecordingState == 'NONE' ||\n cameraRecordingState === 'RECORDED'\n \"\n >\n <div\n *ngIf=\"cameraRecordingState == 'RECORDING'\"\n class=\"dot recording blink\"\n >\n </div>\n <div\n *ngIf=\"cameraRecordingState === 'PAUSED'\"\n class=\"dot paused\"\n >\n </div>\n <div\n *ngIf=\"\n cameraRecordingState == 'NONE' ||\n cameraRecordingState === 'RECORDED'\n \"\n class=\"dot recorded\"\n >\n </div>\n <div>\n &nbsp;{{ cameraRecordingTime | formatTimer }}\n <ng-container\n *ngIf=\"cameraConfig?.others?.maxRecordingTimeInSeconds\"\n >\n /\n {{\n cameraConfig?.others?.maxRecordingTimeInSeconds\n | formatTimer\n }}\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </kwikid-camera>\n </div>\n</div>\n", styles: [".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;scroll-behavior:smooth}.kwikid-form.show>*:not(:last-child){margin-bottom:1rem}.kwikid-form-buttons{width:100%;bottom:0px;padding:1rem;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center}.kwikid-form-buttons>*:not(:last-child){margin-right:1rem}.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;padding:1rem 1rem 0}#uf-form-fields-header-container>*:not(:last-child){margin-bottom:.5rem}#uf-form-fields-header-container #uf-header-logo{width:-moz-fit-content;width:fit-content;height:50px}#uf-form-fields-header-container #uf-form-fields-header-main{display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center;width:100%}#uf-form-fields-header-container #uf-form-fields-header-main>*:not(:last-child){margin-right:.25rem}#uf-form-fields-header-container #uf-form-fields-header-main #uf-form-fields-header-right{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:flex-start}#uf-form-fields-header-container #uf-form-fields-header-main #uf-form-fields-header-right>*{margin-bottom:.5rem}#uf-form-fields-header-container hr{width:100%}#uf-form-fields-title{color:#000;font-size:1.75em;font-weight:bold}#uf-form-fields-steps{color:var(--color-on-secondary-container);font-size:1rem}.title{border-left:.25rem solid var(--tui-primary);padding:.75rem;font-size:1.4em;font-weight:bold;background-color:var(--tui-secondary);display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center}.title>*:not(:last-child){margin-right:.5rem}.title:not(:first-child){margin-top:.5rem}.title.hidden{display:none}.large-wrapper{width:100%;height:60px}.large-wrapper:first-child{margin-bottom:auto}.large-wrapper:last-child{margin-top:auto}.kwikid-form-container-loading{width:100%;height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center;padding:1rem}.kwikid-form-container-loading>* :not(:last-child){margin-bottom:1rem}#field-error-notification,#permission-error-notification{background-color:var(--tui-error-fill);color:#fff!important}#field-error-notification .t-top,#permission-error-notification .t-top{color:#fff!important}#field-error-notification .t-close,#permission-error-notification .t-close{color:#fff!important}.preview-container{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;align-content:center;height:calc(100vh - 3rem)}@media only screen and (min-width: 768px){.preview-container{height:calc(100vh - 10rem);width:calc(100vw - 10rem)}}.preview-container>*:not(:last-child){margin-bottom:1rem}.preview-container .preview-html{flex-grow:1}.preview-container .preview-iframe-content{height:100%;flex-grow:1}.preview-container .preview-iframe-content .preview-iframe{width:100%;height:100%}.preview-container .preview-unavailable{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:center;color:#fff;font-size:1.2rem;top:50%;left:50%;width:100%;height:100vh}.preview-container .preview-unavailable>*:not(:last-child){margin-bottom:1rem}#kwikid-camera-container{width:100%;height:100%;position:fixed;top:50%;left:50%;background-color:#0000008f;transform:translate(-50%,-50%);z-index:100}#kwikid-camera-container #kwikid-camera-wrapper{width:min(80%);height:max(85%);box-shadow:#0000008f 0 22px 70px 4px;overflow:hidden;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:1rem;background-color:#000;transition:5s linear ease}#kwikid-camera-container #kwikid-camera-wrapper .capture-header-container{display:flex;width:100%;max-width:100%;padding:0}#kwikid-camera-container #kwikid-camera-wrapper .capture-header-container .capture-header-left{flex:1;text-align:left}#kwikid-camera-container #kwikid-camera-wrapper .capture-header-container .capture-header-center{flex:1;width:100%;min-width:max-content;text-align:center;margin:auto}#kwikid-camera-container #kwikid-camera-wrapper .capture-header-container .capture-header-right{flex:1;text-align:right;display:flex;justify-content:flex-end;grid-gap:1rem;gap:1rem}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container{display:flex;width:100%;max-width:100%;padding:0;color:#fff;flex-direction:column;justify-content:flex-start;align-items:stretch}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-1{display:flex;flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:1rem}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-1 .record-header-left{flex:1;display:flex;justify-content:flex-start;grid-gap:1rem;gap:1rem;text-align:left}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-1 .record-header-center{flex:1;width:100%;min-width:max-content;text-align:center;margin:auto}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-1 .record-header-right{flex:1;text-align:right;display:flex;justify-content:flex-end;grid-gap:1rem;gap:1rem}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-2{display:flex;flex-direction:row;justify-content:center;align-items:center}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-2 #blinking-dot-container{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;grid-gap:.25rem;gap:.25rem;padding:.35rem .6rem;width:-moz-fit-content;width:fit-content;border-radius:2rem;background-color:#f5f5f5}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-2 #blinking-dot-container.recording{color:red;font-weight:bold}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-2 #blinking-dot-container.paused{color:#525252;font-weight:bold}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-2 #blinking-dot-container.recorded{color:#000;font-weight:bold}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-2 #blinking-dot-container .dot{display:inline-block;width:.75rem;height:.75rem;border-radius:100%}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-2 #blinking-dot-container .dot.recording{background-color:red;box-shadow:0 0 5px -1px red}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-2 #blinking-dot-container .dot.paused{background-color:#525252;box-shadow:0 0 5px -1px #000}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-2 #blinking-dot-container .dot.recorded{background-color:#000;box-shadow:0 0 5px -1px #000}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-2 #blinking-dot-container .dot.blink{animation:blinker 1s cubic-bezier(.5,0,1,1) infinite alternate}@keyframes blinker{0%{opacity:1}to{opacity:0}}#kwikid-camera-container #kwikid-camera-wrapper.fullscreen{width:100%;height:100%;border-radius:0;transition:5s linear ease}@media only screen and (max-width: 600px){#kwikid-camera-container #kwikid-camera-wrapper{width:100%;height:100%;border-radius:0;transition:5s linear ease}#kwikid-camera-container #kwikid-camera-wrapper #kwikid-camera-header-enlarge-button{display:none}}\n", "::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}\n"], components: [{ type: i3__namespace.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["appearance", "class", "disabled", "icon", "iconRight", "id", "label", "shape", "showLoader", "size", "styles", "type", "pseudoHover"], outputs: ["onClick"] }, { type: i3__namespace.KwikUIMessagesComponent, selector: "kwikui-messages", inputs: ["id", "messages"] }, { type: i3__namespace.KwikUIInputComponent, selector: "kwikui-input", inputs: ["case", "disabled", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "invalid", "label", "placeholder", "postfix", "prefix", "properties", "size", "type", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIInputCurrencyComponent, selector: "kwikui-input-currency", inputs: ["currencyType", "disabled", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "invalid", "label", "placeholder", "postfix", "prefix", "properties", "size", "validators", "value"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIInputEmailComponent, selector: "kwikui-input-email", inputs: ["case", "disabled", "domains", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "invalid", "label", "placeholder", "postfix", "prefix", "properties", "size", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIInputPasswordComponent, selector: "kwikui-input-password", inputs: ["disabled", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "invalid", "label", "placeholder", "postfix", "prefix", "properties", "size", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUITextareaComponent, selector: "kwikui-textarea", inputs: ["disabled", "focus", "formControl", "formControlName", "id", "invalid", "label", "placeholder", "properties", "size", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUICheckboxComponent, selector: "kwikui-checkbox", inputs: ["contentAlign", "disabled", "focus", "formControl", "formControlName", "id", "invalid", "label", "placeholder", "properties", "size", "validators", "variant"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIInputNumberComponent, selector: "kwikui-input-number", inputs: ["decimal", "disabled", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "invalid", "label", "max", "min", "placeholder", "postfix", "precision", "prefix", "properties", "size", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIInputDateComponent, selector: "kwikui-input-date", inputs: ["disabled", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "invalid", "label", "max", "maxCalculatedFromToday", "min", "minCalculatedFromToday", "placeholder", "postfix", "prefix", "properties", "size", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIInputTimeComponent, selector: "kwikui-input-time", inputs: ["disabled", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "items", "invalid", "label", "mode", "placeholder", "postfix", "prefix", "properties", "size", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIInputPhoneComponent, selector: "kwikui-input-phone", inputs: ["countryCode", "disabled", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "invalid", "label", "phoneMaskAfterCountryCode", "placeholder", "postfix", "prefix", "properties", "removeCountryCodeFromValue", "size", "validators"], outputs: ["getKeyValue"] }, { type: i5__namespace.TuiLabelComponent, selector: "label[tuiLabel]", inputs: ["tuiLabel", "context"] }, { type: i3__namespace.KwikUIInputRadioComponent, selector: "kwikui-input-radio", inputs: ["disabled", "focus", "formControl", "formControlName", "id", "invalid", "items", "label", "orientation", "placeholder", "properties", "size", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIInputSelectComponent, selector: "kwikui-input-select", inputs: ["disabled", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "invalid", "label", "options", "placeholder", "properties", "searchable", "size", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIInputSliderComponent, selector: "kwikui-input-slider", inputs: ["disabled", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "invalid", "label", "max", "min", "placeholder", "postfix", "prefix", "properties", "quantum", "size", "steps", "type", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIButtonApiCallComponent, selector: "kwikui-button-api-call", inputs: ["apiTimer", "apiStatus", "class", "disabled", "id", "label", "shape", "showLoader", "size", "styles"], outputs: ["onClick", "onApiTimerStop"] }, { type: i3__namespace.KwikUIButtonLiveLocationComponent, selector: "kwikui-button-live-location", inputs: ["liveLocationStatus", "class", "disabled", "id", "label", "shape", "showLoader", "size", "styles", "isShowLatLongCaptureTimestamp"], outputs: ["onClick", "onLocationPermission"] }, { type: i3__namespace.KwikUIInputOtpComponent, selector: "kwikui-input-otp", inputs: ["disabled", "focus", "formControl", "formControlName", "id", "invalid", "label", "mask", "mode", "otpLength", "placeholder", "postfix", "prefix", "properties", "size", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIInputAadhaarComponent, selector: "kwikui-input-aadhaar", inputs: ["disabled", "focus", "formControl", "formControlName", "id", "invalid", "label", "mask", "placeholder", "properties", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIImageComponent, selector: "kwikui-image", inputs: ["altText", "class", "html", "id", "imageSrc", "imageType", "loadingType", "styles"], outputs: ["onClick"] }, { type: i3__namespace.KwikUIInputFilesComponent, selector: "kwikui-input-files", inputs: ["accept", "class", "disabled", "files", "formControl", "formControlName", "icon", "id", "label", "link", "maxFileSize", "multiple", "setFileTypesToForm", "showAddedFiles", "size", "styles", "validators", "variant", "showViewButton"], outputs: ["getKeyValue", "getRemovedFile", "getViewButtonClick"] }, { type: i4__namespace.KwikUIInputCameraComponent, selector: "kwikui-input-camera", inputs: ["buttonText", "disabled", "focus", "formControl", "formControlName", "icon", "id", "invalid", "mediaFiles", "properties", "showMediaFiles", "size", "type", "validators"], outputs: ["onClick", "getRemovedFile"] }, { type: i3__namespace.KwikUIStarRatingComponent, selector: "kwikui-star-rating", inputs: ["color", "disabled", "focus", "formControl", "formControlName", "icon", "iconMarked", "id", "invalid", "label", "max", "min", "placeholder", "properties", "size", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUILoaderComponent, selector: "kwikui-loader" }, { type: i6__namespace.TuiPushComponent, selector: "tui-push", inputs: ["heading", "type", "lines", "timestamp"], outputs: ["close"] }, { type: i5__namespace.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i7__namespace.TuiPreviewComponent, selector: "tui-preview", inputs: ["zoomable", "rotatable"] }, { type: i7__namespace.TuiPreviewTitleComponent, selector: "tui-preview-title" }, { type: i5__namespace.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { type: i4__namespace.KwikIDCameraComponent, selector: "kwikid-camera", inputs: ["type", "config", "data", "image", "video"], outputs: ["getImage", "onClickSave", "getVideo"] }], directives: [{ type: i3__namespace$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3__namespace$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3__namespace$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3__namespace$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3__namespace$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3__namespace$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3__namespace$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3__namespace$1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3__namespace$1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i6__namespace.TuiPushAlertDirective, selector: "[tuiPush]", inputs: ["tuiPush"] }, { type: i6__namespace.TuiPushDirective, selector: "tui-push" }, { type: i7__namespace.TuiPreviewActionDirective, selector: "[tuiPreviewAction]" }], pipes: { "styleSanitizer": StyleSanitizerPipe, "kwikuiSafeHtml": i3__namespace.KwikUISafeHtmlPipe, "kwikuiSafeUrl": i3__namespace.KwikUISafeUrlPipe, "formatTimer": TimerPipe } });
8983
+ /** @nocollapse */ KwikIDFormViewComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDFormViewComponent, selector: "kwikid-form-view", inputs: { allFormsData: "allFormsData", extraData: "extraData", apiCallResponse: "apiCallResponse", buttonClickResponse: "buttonClickResponse", formConfig: "formConfig", formData: "formData", isMobileView: "isMobileView", popupFormCallback: "popupFormCallback", userConfig: "userConfig", stepConfig: "stepConfig" }, outputs: { getLogs: "getLogs", getUnsavedDataState: "getUnsavedDataState", onActionShowPopupForm: "onActionShowPopupForm", onClickApiCall: "onClickApiCall", onClickViewFile: "onClickViewFile", onClickFormFieldButton: "onClickFormFieldButton", onClickGoBack: "onClickGoBack", onClickSaveForm: "onClickSaveForm", onClickViewForms: "onClickViewForms" }, providers: [KwikIDFormViewService, KwikIDFormViewApiService], viewQueries: [{ propertyName: "formFieldContainerRef", first: true, predicate: ["formFieldContainerRef"], descendants: true }, { propertyName: "dialog", first: true, predicate: ["dialog"], descendants: true }, { propertyName: "preview", first: true, predicate: ["preview"], descendants: true }, { propertyName: "formFieldsRef", predicate: ["formFieldsRef"], descendants: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<div\n class=\"kwikid-form-container\"\n *ngIf=\"!loading\"\n>\n <div\n id=\"uf-form-fields-header-container\"\n *ngIf=\"\n !formConfig.properties?.header?.title?.hidden ||\n !formConfig.properties?.header?.logo?.hidden ||\n !formConfig.properties?.header?.steps?.hidden ||\n !formConfig.properties?.header?.backButton?.hidden\n \"\n >\n <img\n id=\"uf-header-logo\"\n *ngIf=\"!formConfig.properties?.header?.logo?.hidden && isMobileView\"\n [src]=\"formConfig.properties?.header?.logo?.src\"\n [alt]=\"formConfig.properties?.header?.logo?.alt\"\n [style]=\"\n formConfig.properties?.header?.logo?.styles ?? '' | styleSanitizer\n \"\n />\n <div id=\"uf-form-fields-header-main\">\n <div id=\"uf-form-fields-header-left\">\n <kwikui-button\n *ngIf=\"\n !formConfig.properties?.header.backButton.hidden && isMobileView\n \"\n [disabled]=\"backButton.disabled\"\n [showLoader]=\"backButton.showLoader\"\n appearance=\"mono\"\n icon=\"tuiIconArrowLeft\"\n shape=\"rounded\"\n (onClick)=\"\n handleOnClickGoBack(\n $event,\n formConfig.properties?.header.backButton.mode\n )\n \"\n ></kwikui-button>\n </div>\n <div id=\"uf-form-fields-header-right\">\n <div\n id=\"uf-form-fields-title\"\n *ngIf=\"!formConfig.properties?.header.title.hidden\"\n >{{ formConfig.properties?.header.title.label }}</div\n >\n <div\n id=\"uf-form-fields-steps\"\n *ngIf=\"!formConfig.properties?.header.steps.hidden\"\n >\n Step {{ formConfig.sequenceNo }} of {{ formConfig.formsListLength }}\n </div>\n </div>\n </div>\n <hr\n *ngIf=\"\n !formConfig.properties?.header.title.hidden ||\n !formConfig.properties?.header.steps.hidden ||\n !formConfig.properties?.header.backButton.hidden\n \"\n />\n </div>\n <form\n #formFieldContainerRef\n class=\"kwikid-form show\"\n [style]=\"formConfig.properties?.main?.styles ?? '' | styleSanitizer\"\n [formGroup]=\"formGroup\"\n >\n <ng-container\n *ngFor=\"\n let field of formFields;\n let i = index;\n trackBy: getUniqueIdentifier\n \"\n >\n <ng-container [ngSwitch]=\"field.type\">\n <!-- HTML Content -->\n <ng-container *ngSwitchCase=\"'html'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <div [innerHtml]=\"field.html | kwikuiSafeHtml\"></div>\n </div>\n </ng-container>\n <!-- Form Title -->\n <ng-container *ngSwitchCase=\"'title'\">\n <div\n #formFieldsRef\n class=\"title\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n [class.hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <div>\n {{ field.label }}\n </div>\n <kwikui-button\n *ngIf=\"field?.reset\"\n appearance=\"whiteblock\"\n size=\"s\"\n [label]=\"field?.properties?.resetButtonLabel ?? 'Reset'\"\n (onClick)=\"handleOnClickResetFormFields($event, field)\"\n ></kwikui-button>\n </div>\n </ng-container>\n <!-- Button -->\n <ng-container *ngSwitchCase=\"'button'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-button\n [appearance]=\"field?.properties?.appearance ?? 'primary'\"\n [class]=\"field?.properties?.class\"\n [disabled]=\"field?.disabled\"\n [icon]=\"field?.properties?.icon\"\n [iconRight]=\"field?.properties?.iconRight\"\n [id]=\"field?.key\"\n [label]=\"field?.label\"\n [shape]=\"field?.properties?.shape\"\n [showLoader]=\"field?.properties?.loading ?? false\"\n [size]=\"field?.properties?.size\"\n [styles]=\"field?.properties?.styles\"\n [type]=\"'button'\"\n (onClick)=\"handleOnClickFormFieldButton(field)\"\n ></kwikui-button>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Text -->\n <ng-container *ngSwitchCase=\"'text'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input\n [case]=\"field?.properties?.case\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [placeholder]=\"field?.properties?.placeholder\"\n [postfix]=\"field?.properties?.postfix\"\n [prefix]=\"field?.properties?.prefix\"\n [properties]=\"field?.properties\"\n [type]=\"'text'\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Currency -->\n <ng-container *ngSwitchCase=\"'currency'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-currency\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [currencyType]=\"field?.properties?.currencyType\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [placeholder]=\"field?.properties?.placeholder\"\n [postfix]=\"field?.properties?.postfix\"\n [prefix]=\"field?.properties?.prefix\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n [value]=\"formGroup.controls[field.key].value\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-currency>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Email -->\n <ng-container *ngSwitchCase=\"'email'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-email\n [case]=\"field?.properties?.case\"\n [disabled]=\"field?.disabled\"\n [domains]=\"field?.properties?.domains\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [placeholder]=\"field?.properties?.placeholder\"\n [postfix]=\"field?.properties?.postfix\"\n [prefix]=\"field?.properties?.prefix\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-email>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Password -->\n <ng-container *ngSwitchCase=\"'password'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-password\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [hintContent]=\"field?.properties?.hintContent\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [placeholder]=\"field?.properties?.placeholder\"\n [postfix]=\"field?.properties?.postfix\"\n [prefix]=\"field?.properties?.prefix\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-password>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Textarea -->\n <ng-container *ngSwitchCase=\"'textarea'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-textarea\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-textarea>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Checkbox -->\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-checkbox\n [contentAlign]=\"field?.properties?.contentAlign ?? 'left'\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.properties?.placeholder\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [size]=\"field?.properties?.size ?? 'l'\"\n [validators]=\"field?.validators\"\n [variant]=\"field?.properties?.variant ?? 'block'\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-checkbox>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Number -->\n <ng-container *ngSwitchCase=\"'number'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-number\n [decimal]=\"field?.properties?.decimal\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [max]=\"field?.properties?.max\"\n [min]=\"field?.properties?.min\"\n [placeholder]=\"field?.properties?.placeholder\"\n [postfix]=\"field?.properties?.postfix ?? ''\"\n [precision]=\"field?.properties?.precision\"\n [prefix]=\"field?.properties?.prefix ?? ''\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-number>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Date -->\n <ng-container *ngSwitchCase=\"'date'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-date\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [max]=\"field?.properties?.max\"\n [maxCalculatedFromToday]=\"\n field?.properties?.maxCalculatedFromToday\n \"\n [min]=\"field?.properties?.min\"\n [minCalculatedFromToday]=\"\n field?.properties?.minCalculatedFromToday\n \"\n [placeholder]=\"field?.properties?.placeholder\"\n [postfix]=\"field?.properties?.postfix\"\n [prefix]=\"field?.properties?.prefix\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-date>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Time -->\n <ng-container *ngSwitchCase=\"'time'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-time\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [items]=\"field?.properties?.items\"\n [label]=\"field?.label\"\n [mode]=\"field?.properties?.mode\"\n [placeholder]=\"field?.properties?.placeholder\"\n [postfix]=\"field?.properties?.postfix\"\n [prefix]=\"field?.properties?.prefix\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-time>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Phone -->\n <ng-container *ngSwitchCase=\"'phone'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-phone\n [countryCode]=\"field?.properties?.countryCode\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [phoneMaskAfterCountryCode]=\"\n field?.properties?.phoneMaskAfterCountryCode\n \"\n [placeholder]=\"field?.properties?.placeholder\"\n [postfix]=\"field?.properties?.postfix\"\n [prefix]=\"field?.properties?.prefix\"\n [properties]=\"field?.properties\"\n [removeCountryCodeFromValue]=\"\n field?.properties?.removeCountryCodeFromValue\n \"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-phone>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Radio -->\n <ng-container *ngSwitchCase=\"'radio'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <label\n [tuiLabel]=\"labelTemplate\"\n style=\"min-height: auto; padding: 0px 0.5rem\"\n >\n <kwikui-input-radio\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [items]=\"field?.options\"\n [label]=\"field?.label\"\n [orientation]=\"field?.properties?.orientation\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [size]=\"field?.properties?.size\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-radio>\n </label>\n <ng-template #labelTemplate>\n <p\n class=\"tui-space_bottom-2\"\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <b>\n {{ field.label }}\n <span *ngIf=\"field.validators?.required\">*</span>\n </b>\n </p>\n </ng-template>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Dropdown -->\n <ng-container *ngSwitchCase=\"'select'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-select\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [options]=\"field.options\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [searchable]=\"field?.properties?.searchable\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-select>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Slider -->\n <ng-container *ngSwitchCase=\"'slider'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-slider\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [max]=\"field?.properties?.max\"\n [min]=\"field?.properties?.min\"\n [placeholder]=\"field?.properties?.placeholder\"\n [postfix]=\"field?.properties?.postfix\"\n [prefix]=\"field?.properties?.prefix\"\n [properties]=\"field?.properties\"\n [quantum]=\"field?.properties?.quantum\"\n [size]=\"field?.properties?.size\"\n [steps]=\"field?.properties?.steps\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-slider>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- API Call -->\n <ng-container *ngSwitchCase=\"'api'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-button-api-call\n [apiStatus]=\"field?.api?.status?.value\"\n [apiTimer]=\"field?.api?.timer\"\n [class]=\"field?.class\"\n [disabled]=\"field?.disabled\"\n [id]=\"field.key\"\n [label]=\"field?.api?.status?.labels[field?.api?.status?.value]\"\n [showLoader]=\"field?.disabled === 'loading'\"\n [size]=\"field?.properties?.size\"\n [styles]=\"\n field?.properties?.styles\n ? field?.properties?.styles\n : 'width: fit-content'\n \"\n (onClick)=\"handleOnClickApiCall($event)\"\n (onApiTimerStop)=\"handleOnApiTimerStop($event)\"\n ></kwikui-button-api-call>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Live Location -->\n <ng-container *ngSwitchCase=\"'live-location'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-button-live-location\n [class]=\"field?.class\"\n [disabled]=\"field?.disabled\"\n [id]=\"field.key\"\n [label]=\"field?.api?.status?.labels[field?.api?.status?.value]\"\n [liveLocationStatus]=\"field?.api?.status?.value\"\n [shape]=\"field?.properties?.shape\"\n [isShowLatLongCaptureTimestamp]=\"\n field?.properties?.isShowLatLongCaptureTimestamp\n \"\n [showLoader]=\"field?.disabled\"\n [size]=\"field?.properties?.size\"\n styles=\"width: fit-content\"\n (onClick)=\"handleOnClickLiveLocation($event)\"\n (onLocationPermission)=\"handleOnLocationPermission($event)\"\n ></kwikui-button-live-location>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Mobile OTP -->\n <ng-container *ngSwitchCase=\"'otp'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-otp\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [mask]=\"field?.properties?.mask\"\n [mode]=\"field?.properties?.mode\"\n [otpLength]=\"field?.properties?.otpLength\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [size]=\"field?.properties?.size\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-otp>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Aadhaar Number -->\n <ng-container *ngSwitchCase=\"'aadhaar-number'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-aadhaar\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [mask]=\"field?.properties?.mask\"\n [placeholder]=\"field?.placeholder\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-aadhaar>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Preview Image -->\n <ng-container *ngSwitchCase=\"'image'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-image\n [altText]=\"field?.properties?.altText\"\n [class]=\"field?.properties?.class\"\n [html]=\"field?.properties?.html\"\n [id]=\"field.key\"\n [imageSrc]=\"formGroup.controls[field.key].value ?? ''\"\n [imageType]=\"field?.properties?.imageType\"\n [loadingType]=\"field?.properties?.loadingType\"\n [styles]=\"field?.properties?.styles\"\n ></kwikui-image>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- File Upload -->\n <ng-container *ngSwitchCase=\"'file'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <label\n [tuiLabel]=\"labelTemplate\"\n style=\"min-height: auto\"\n >\n <kwikui-input-files\n [accept]=\"field?.properties?.accept\"\n [class]=\"field?.properties?.class\"\n [disabled]=\"field?.disabled\"\n [files]=\"files[field.key]\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field?.key\"\n [label]=\"field?.properties?.label\"\n [link]=\"field?.properties?.link\"\n [maxFileSize]=\"field?.properties?.maxFileSize\"\n [multiple]=\"field?.properties?.multiple\"\n [setFileTypesToForm]=\"['NORMAL']\"\n [styles]=\"field?.properties?.styles\"\n [validators]=\"field?.validators\"\n [showViewButton]=\"field?.properties?.showViewButton\"\n (getKeyValue)=\"handleGetKeyValueFile($event)\"\n (getRemovedFile)=\"handleRemovedFile($event)\"\n (getViewButtonClick)=\"handleViewButtonClick($event, field)\"\n ></kwikui-input-files>\n </label>\n <ng-template #labelTemplate>\n <p\n style=\"padding: 0px 0.25rem; margin-bottom: 0.25rem\"\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <b>\n {{ field.label }}\n <span *ngIf=\"field.validators?.required\">*</span>\n </b>\n </p>\n </ng-template>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Camera Capture -->\n <ng-container *ngSwitchCase=\"'capture'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <label\n *ngIf=\"\n field?.label !== '' &&\n field?.label !== undefined &&\n field?.label !== null\n \"\n style=\"min-height: auto\"\n >\n <p\n *ngIf=\"field?.label !== ''\"\n style=\"padding: 0px 0.25rem; margin-bottom: 0.5rem\"\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <b>\n {{ field.label }}\n <span *ngIf=\"field.validators?.required\">*</span>\n </b>\n </p>\n </label>\n <kwikui-input-camera\n [buttonText]=\"field?.properties?.buttonText\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [icon]=\"field?.properties?.icon\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [mediaFiles]=\"\n mediaFiles[field.key] | filterImageUrlOrBase64FromObject\n \"\n [properties]=\"field?.properties\"\n [showMediaFiles]=\"field?.properties?.showMediaFiles\"\n [type]=\"'capture'\"\n [validators]=\"field?.validators\"\n (onClick)=\"handleOnClickInputCamera($event, field)\"\n (getRemovedFile)=\"handleOnClickGetRemovedMediaFile($event)\"\n ></kwikui-input-camera>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Camera Record -->\n <ng-container *ngSwitchCase=\"'record'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <label\n *ngIf=\"\n field?.label !== '' &&\n field?.label !== undefined &&\n field?.label !== null\n \"\n style=\"min-height: auto\"\n >\n <p\n *ngIf=\"field?.label !== ''\"\n style=\"padding: 0px 0.25rem; margin-bottom: 0.5rem\"\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <b>\n {{ field.label }}\n <span *ngIf=\"field.validators?.required\">*</span>\n </b>\n </p>\n </label>\n <kwikui-input-camera\n [buttonText]=\"field?.properties?.buttonText\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [icon]=\"field?.properties?.icon\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [mediaFiles]=\"\n mediaFiles[field.key] | filterVideoUrlOrBase64FromObject\n \"\n [properties]=\"field?.properties\"\n [showMediaFiles]=\"field?.properties?.showMediaFiles\"\n [type]=\"'record'\"\n [validators]=\"field?.validators\"\n (onClick)=\"handleOnClickInputCamera($event, field)\"\n (getRemovedFile)=\"handleOnClickGetRemovedMediaFile($event)\"\n ></kwikui-input-camera>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Star Rating -->\n <ng-container *ngSwitchCase=\"'star-rating'\">\n <div\n #formFieldsRef\n [hidden]=\"field?.hidden\"\n [style]=\"field?.properties?.containerStyles ?? '' | styleSanitizer\"\n id=\"field_{{ field.key }}\"\n >\n <label\n [tuiLabel]=\"labelTemplate\"\n style=\"min-height: auto; padding: 0px 0.5rem\"\n >\n <kwikui-star-rating\n [color]=\"field?.properties?.color\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [icon]=\"field?.properties?.icon\"\n [iconMarked]=\"field?.properties?.iconMarked\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [max]=\"field?.properties?.max\"\n [min]=\"field?.properties?.min\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [size]=\"field?.properties?.size\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-star-rating>\n </label>\n <ng-template #labelTemplate>\n <p>\n <b\n >{{ field?.properties?.placeholder }}\n <span *ngIf=\"field.validators?.required\">*</span></b\n >\n </p>\n </ng-template>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </form>\n <div\n class=\"kwikid-form-buttons\"\n *ngIf=\"\n !formConfig.properties.footer.viewFormsButton.hidden ||\n !formConfig.properties.footer.saveButton.hidden\n \"\n >\n <kwikui-button\n *ngIf=\"\n !formConfig.properties.footer.viewFormsButton.hidden && isMobileView\n \"\n [appearance]=\"'secondary'\"\n [disabled]=\"viewFormsButton.disabled\"\n [label]=\"formConfig.properties.footer.viewFormsButton.label\"\n [showLoader]=\"viewFormsButton.showLoader\"\n [styles]=\"'width: 100%'\"\n (onClick)=\"handleOnClickViewForms($event)\"\n ></kwikui-button>\n <kwikui-button\n *ngIf=\"!formConfig.properties.footer.saveButton.hidden\"\n [disabled]=\"saveFormButton.disabled\"\n [label]=\"formConfig.properties.footer.saveButton.label\"\n [showLoader]=\"saveFormButton.showLoader\"\n [styles]=\"'width: 100%'\"\n (onClick)=\"handleOnClickSaveForm($event)\"\n ></kwikui-button>\n </div>\n</div>\n<div\n class=\"kwikid-form-container-loading\"\n *ngIf=\"loading\"\n>\n <div\n *ngFor=\"let item of [].constructor(7); let i = index\"\n class=\"large-wrapper tui-skeleton tui-skeleton_rounded\"\n >\n </div>\n</div>\n\n<kwikui-loader></kwikui-loader>\n\n<tui-push\n id=\"field-error-notification\"\n *tuiPush=\"showErrorNotification\"\n heading=\"Missing/Incorrect Fields!\"\n type=\"Error\"\n (close)=\"toggleErrorNotification(false)\"\n>\n <tui-svg\n src=\"tuiIconXCircle\"\n style=\"color: #fff !important\"\n >\n </tui-svg>\n</tui-push>\n\n<tui-push\n id=\"permission-error-notification\"\n *tuiPush=\"showPermissionErrorNotification\"\n heading=\"Please provide required permissions!\"\n type=\"Error\"\n (close)=\"togglePermissionErrorNotification(false)\"\n>\n <tui-svg\n src=\"tuiIconXCircle\"\n style=\"color: #fff !important\"\n >\n </tui-svg>\n</tui-push>\n\n<ng-template\n #preview\n let-preview\n>\n <tui-preview\n [rotatable]=\"false\"\n [zoomable]=\"false\"\n class=\"preview-container\"\n >\n <tui-preview-title *ngIf=\"previewProperties.title !== ''\">{{\n previewProperties.title\n }}</tui-preview-title>\n\n <ng-container *ngIf=\"!previewProperties.unavailable\">\n <div\n *ngIf=\"previewProperties?.html?.before !== ''\"\n class=\"preview-html preview-html-before\"\n [style]=\"previewProperties?.html?.beforeStyles ?? '' | styleSanitizer\"\n [innerHtml]=\"previewProperties.html.before | kwikuiSafeHtml\"\n ></div>\n\n <!-- Content within the iframe -->\n <div\n class=\"preview-iframe-content\"\n [style]=\"\n previewProperties?.iframe?.containerStyles ?? '' | styleSanitizer\n \"\n *ngIf=\"previewProperties.iframe.src !== ''\"\n >\n <!-- Your HTML content here -->\n <iframe\n [src]=\"previewProperties.iframe.src | kwikuiSafeUrl\"\n frameborder=\"0\"\n allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n allowfullscreen\n [title]=\"previewProperties.iframe.title\"\n class=\"preview-iframe\"\n scrolling=\"auto\"\n ></iframe>\n </div>\n\n <div\n *ngIf=\"previewProperties?.html?.after !== ''\"\n class=\"preview-html preview-html-after\"\n [style]=\"previewProperties?.html?.afterStyles ?? '' | styleSanitizer\"\n [innerHtml]=\"previewProperties.html.after | kwikuiSafeHtml\"\n ></div>\n </ng-container>\n\n <ng-container *ngIf=\"previewProperties.unavailable\">\n <div class=\"preview-unavailable\">\n <tui-svg\n src=\"tuiIconFileLarge\"\n class=\"t-icon\"\n ></tui-svg>\n <div>Preview unavailable</div>\n </div>\n </ng-container>\n\n <button\n tuiIconButton\n tuiPreviewAction\n icon=\"tuiIconCloseLarge\"\n title=\"Close\"\n type=\"button\"\n (click)=\"preview.complete()\"\n ></button>\n </tui-preview>\n</ng-template>\n\n<ng-template\n #dialog\n let-dialog\n>\n <div class=\"preview-container\">\n <ng-container *ngIf=\"!previewProperties.unavailable\">\n <div\n *ngIf=\"previewProperties?.html?.before !== ''\"\n class=\"preview-html preview-html-before\"\n [style]=\"previewProperties?.html?.beforeStyles ?? '' | styleSanitizer\"\n [innerHtml]=\"previewProperties.html.before | kwikuiSafeHtml\"\n ></div>\n\n <!-- Content within the iframe -->\n <div\n class=\"preview-iframe-content\"\n [style]=\"\n previewProperties?.iframe?.containerStyles ?? '' | styleSanitizer\n \"\n *ngIf=\"previewProperties.iframe.src !== ''\"\n >\n <!-- Your HTML content here -->\n <iframe\n [src]=\"previewProperties.iframe.src | kwikuiSafeUrl\"\n frameborder=\"0\"\n allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n allowfullscreen\n [title]=\"previewProperties.iframe.title\"\n class=\"preview-iframe\"\n scrolling=\"auto\"\n ></iframe>\n </div>\n\n <div\n *ngIf=\"previewProperties?.html?.after !== ''\"\n class=\"preview-html preview-html-after\"\n [style]=\"previewProperties?.html?.afterStyles ?? '' | styleSanitizer\"\n [innerHtml]=\"previewProperties.html.after | kwikuiSafeHtml\"\n ></div>\n </ng-container>\n\n <ng-container *ngIf=\"previewProperties.unavailable\">\n <div class=\"preview-unavailable\">\n <tui-svg\n src=\"tuiIconFileLarge\"\n class=\"t-icon\"\n ></tui-svg>\n <div>Preview unavailable</div>\n </div>\n </ng-container>\n </div>\n</ng-template>\n\n<div\n id=\"kwikid-camera-container\"\n *ngIf=\"isShowCamera\"\n>\n <div\n id=\"kwikid-camera-wrapper\"\n [class.fullscreen]=\"isShowCameraFullscreen\"\n >\n <kwikid-camera\n [type]=\"activeCameraType\"\n [data]=\"activeCameraData\"\n [image]=\"activeCameraImage\"\n [video]=\"activeCameraVideo\"\n [config]=\"activeCameraConfig\"\n (getImage)=\"handleGetCameraMedia($event, 'CAPTURE')\"\n (getVideo)=\"handleGetCameraMedia($event, 'RECORD')\"\n (onClickBack)=\"handleOnClickCameraBack($event)\"\n (onClickClose)=\"handleOnClickCameraClose($event)\"\n (onClickSave)=\"handleOnClickSaveCameraMedia($event, activeCameraType)\"\n >\n <ng-container\n *ngIf=\"activeCameraType === 'CAPTURE'\"\n slot=\"capture-header\"\n >\n <div class=\"capture-header-container\">\n <div class=\"capture-header-left\"> </div>\n <div class=\"capture-header-center\">\n <kwikui-button\n *ngIf=\"activeCameraConfig?.header?.title !== ''\"\n appearance=\"whiteblock\"\n [label]=\"activeCameraConfig?.header?.title\"\n shape=\"rounded\"\n size=\"s\"\n ></kwikui-button>\n </div>\n <div class=\"capture-header-right\">\n <kwikui-button\n *ngIf=\"activeCameraConfig?.header?.isExpand\"\n id=\"kwikid-camera-header-enlarge-button\"\n appearance=\"whiteblock\"\n [icon]=\"\n isShowCameraFullscreen ? 'tuiIconMinimize2' : 'tuiIconMaximize2'\n \"\n shape=\"rounded\"\n size=\"s\"\n (click)=\"isShowCameraFullscreen = !isShowCameraFullscreen\"\n ></kwikui-button>\n <kwikui-button\n *ngIf=\"activeCameraConfig?.header?.isClose\"\n id=\"kwikid-camera-header-close-button\"\n appearance=\"whiteblock\"\n icon=\"tuiIconCloseLarge\"\n shape=\"rounded\"\n size=\"s\"\n (click)=\"handleOnClickCameraClose($event)\"\n ></kwikui-button>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"activeCameraType === 'RECORD'\"\n slot=\"record-header\"\n >\n <div class=\"record-header-container\">\n <div class=\"record-header-row row-1\">\n <div class=\"record-header-left\">\n <kwikui-button\n *ngIf=\"\n activeCameraConfig?.header?.isBack &&\n activeCameraRecordingState == 'NONE'\n \"\n appearance=\"whiteblock\"\n icon=\"tuiIconArrowLeft\"\n shape=\"rounded\"\n size=\"s\"\n (click)=\"handleOnClickCameraClose($event)\"\n ></kwikui-button>\n </div>\n <div class=\"record-header-center\">\n <kwikui-button\n *ngIf=\"activeCameraConfig?.header?.title !== ''\"\n appearance=\"whiteblock\"\n [label]=\"activeCameraConfig?.header?.title\"\n shape=\"rounded\"\n size=\"s\"\n ></kwikui-button>\n </div>\n <div class=\"record-header-right\">\n <kwikui-button\n *ngIf=\"activeCameraConfig?.header?.isExpand\"\n id=\"kwikid-camera-header-enlarge-button\"\n appearance=\"whiteblock\"\n [icon]=\"\n isShowCameraFullscreen\n ? 'tuiIconMinimize2'\n : 'tuiIconMaximize2'\n \"\n shape=\"rounded\"\n size=\"s\"\n (click)=\"isShowCameraFullscreen = !isShowCameraFullscreen\"\n ></kwikui-button>\n </div>\n </div>\n <div class=\"record-header-row row-2\">\n <div\n id=\"blinking-dot-container\"\n [class.recording]=\"activeCameraRecordingState == 'RECORDING'\"\n [class.paused]=\"activeCameraRecordingState == 'PAUSED'\"\n [class.recorded]=\"\n activeCameraRecordingState == 'NONE' ||\n activeCameraRecordingState === 'RECORDED'\n \"\n >\n <div\n *ngIf=\"activeCameraRecordingState == 'RECORDING'\"\n class=\"dot recording blink\"\n >\n </div>\n <div\n *ngIf=\"activeCameraRecordingState === 'PAUSED'\"\n class=\"dot paused\"\n >\n </div>\n <div\n *ngIf=\"\n activeCameraRecordingState == 'NONE' ||\n activeCameraRecordingState === 'RECORDED'\n \"\n class=\"dot recorded\"\n >\n </div>\n <div>\n &nbsp;{{ activeCameraRecordingTime | formatTimer }}\n <ng-container\n *ngIf=\"activeCameraConfig?.others?.maxRecordingTimeInSeconds\"\n >\n /\n {{\n activeCameraConfig?.others?.maxRecordingTimeInSeconds\n | formatTimer\n }}\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </kwikid-camera>\n </div>\n</div>\n", styles: [".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;scroll-behavior:smooth}.kwikid-form.show>*:not(:last-child){margin-bottom:1rem}.kwikid-form-buttons{width:100%;bottom:0px;padding:1rem;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center}.kwikid-form-buttons>*:not(:last-child){margin-right:1rem}.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;padding:1rem 1rem 0}#uf-form-fields-header-container>*:not(:last-child){margin-bottom:.5rem}#uf-form-fields-header-container #uf-header-logo{width:-moz-fit-content;width:fit-content;height:50px}#uf-form-fields-header-container #uf-form-fields-header-main{display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center;width:100%}#uf-form-fields-header-container #uf-form-fields-header-main>*:not(:last-child){margin-right:.25rem}#uf-form-fields-header-container #uf-form-fields-header-main #uf-form-fields-header-right{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:flex-start}#uf-form-fields-header-container #uf-form-fields-header-main #uf-form-fields-header-right>*{margin-bottom:.5rem}#uf-form-fields-header-container hr{width:100%}#uf-form-fields-title{color:#000;font-size:1.75em;font-weight:bold}#uf-form-fields-steps{color:var(--color-on-secondary-container);font-size:1rem}.title{border-left:.25rem solid var(--tui-primary);padding:.75rem;font-size:1.4em;font-weight:bold;background-color:var(--tui-secondary);display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center}.title>*:not(:last-child){margin-right:.5rem}.title:not(:first-child){margin-top:.5rem}.title.hidden{display:none}.large-wrapper{width:100%;height:60px}.large-wrapper:first-child{margin-bottom:auto}.large-wrapper:last-child{margin-top:auto}.kwikid-form-container-loading{width:100%;height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center;padding:1rem}.kwikid-form-container-loading>* :not(:last-child){margin-bottom:1rem}#field-error-notification,#permission-error-notification{background-color:var(--tui-error-fill);color:#fff!important}#field-error-notification .t-top,#permission-error-notification .t-top{color:#fff!important}#field-error-notification .t-close,#permission-error-notification .t-close{color:#fff!important}.preview-container{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;align-content:center;height:calc(100vh - 3rem)}@media only screen and (min-width: 768px){.preview-container{height:calc(100vh - 10rem);width:calc(100vw - 10rem)}}.preview-container>*:not(:last-child){margin-bottom:1rem}.preview-container .preview-html{flex-grow:1}.preview-container .preview-iframe-content{height:100%;flex-grow:1}.preview-container .preview-iframe-content .preview-iframe{width:100%;height:100%}.preview-container .preview-unavailable{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:center;color:#fff;font-size:1.2rem;top:50%;left:50%;width:100%;height:100vh}.preview-container .preview-unavailable>*:not(:last-child){margin-bottom:1rem}#kwikid-camera-container{width:100%;height:100%;position:fixed;top:50%;left:50%;background-color:#0000008f;transform:translate(-50%,-50%);z-index:100}#kwikid-camera-container #kwikid-camera-wrapper{width:min(80%);height:max(85%);box-shadow:#0000008f 0 22px 70px 4px;overflow:hidden;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:1rem;background-color:#000;transition:5s linear ease}#kwikid-camera-container #kwikid-camera-wrapper .capture-header-container{display:flex;width:100%;max-width:100%;padding:0}#kwikid-camera-container #kwikid-camera-wrapper .capture-header-container .capture-header-left{flex:1;text-align:left}#kwikid-camera-container #kwikid-camera-wrapper .capture-header-container .capture-header-center{flex:1;width:100%;min-width:max-content;text-align:center;margin:auto}#kwikid-camera-container #kwikid-camera-wrapper .capture-header-container .capture-header-right{flex:1;text-align:right;display:flex;justify-content:flex-end;grid-gap:1rem;gap:1rem}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container{display:flex;width:100%;max-width:100%;padding:0;color:#fff;flex-direction:column;justify-content:flex-start;align-items:stretch}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-1{display:flex;flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:1rem}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-1 .record-header-left{flex:1;display:flex;justify-content:flex-start;grid-gap:1rem;gap:1rem;text-align:left}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-1 .record-header-center{flex:1;width:100%;min-width:max-content;text-align:center;margin:auto}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-1 .record-header-right{flex:1;text-align:right;display:flex;justify-content:flex-end;grid-gap:1rem;gap:1rem}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-2{display:flex;flex-direction:row;justify-content:center;align-items:center}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-2 #blinking-dot-container{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;grid-gap:.25rem;gap:.25rem;padding:.35rem .6rem;width:-moz-fit-content;width:fit-content;border-radius:2rem;background-color:#f5f5f5}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-2 #blinking-dot-container.recording{color:red;font-weight:bold}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-2 #blinking-dot-container.paused{color:#525252;font-weight:bold}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-2 #blinking-dot-container.recorded{color:#000;font-weight:bold}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-2 #blinking-dot-container .dot{display:inline-block;width:.75rem;height:.75rem;border-radius:100%}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-2 #blinking-dot-container .dot.recording{background-color:red;box-shadow:0 0 5px -1px red}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-2 #blinking-dot-container .dot.paused{background-color:#525252;box-shadow:0 0 5px -1px #000}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-2 #blinking-dot-container .dot.recorded{background-color:#000;box-shadow:0 0 5px -1px #000}#kwikid-camera-container #kwikid-camera-wrapper .record-header-container .record-header-row.row-2 #blinking-dot-container .dot.blink{animation:blinker 1s cubic-bezier(.5,0,1,1) infinite alternate}@keyframes blinker{0%{opacity:1}to{opacity:0}}#kwikid-camera-container #kwikid-camera-wrapper.fullscreen{width:100%;height:100%;border-radius:0;transition:5s linear ease}@media only screen and (max-width: 600px){#kwikid-camera-container #kwikid-camera-wrapper{width:100%;height:100%;border-radius:0;transition:5s linear ease}#kwikid-camera-container #kwikid-camera-wrapper #kwikid-camera-header-enlarge-button{display:none}}\n", "::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}\n"], components: [{ type: i3__namespace.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["appearance", "class", "disabled", "icon", "iconRight", "id", "label", "shape", "showLoader", "size", "styles", "type", "pseudoHover"], outputs: ["onClick"] }, { type: i3__namespace.KwikUIMessagesComponent, selector: "kwikui-messages", inputs: ["id", "messages"] }, { type: i3__namespace.KwikUIInputComponent, selector: "kwikui-input", inputs: ["case", "disabled", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "invalid", "label", "placeholder", "postfix", "prefix", "properties", "size", "type", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIInputCurrencyComponent, selector: "kwikui-input-currency", inputs: ["currencyType", "disabled", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "invalid", "label", "placeholder", "postfix", "prefix", "properties", "size", "validators", "value"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIInputEmailComponent, selector: "kwikui-input-email", inputs: ["case", "disabled", "domains", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "invalid", "label", "placeholder", "postfix", "prefix", "properties", "size", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIInputPasswordComponent, selector: "kwikui-input-password", inputs: ["disabled", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "invalid", "label", "placeholder", "postfix", "prefix", "properties", "size", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUITextareaComponent, selector: "kwikui-textarea", inputs: ["disabled", "focus", "formControl", "formControlName", "id", "invalid", "label", "placeholder", "properties", "size", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUICheckboxComponent, selector: "kwikui-checkbox", inputs: ["contentAlign", "disabled", "focus", "formControl", "formControlName", "id", "invalid", "label", "placeholder", "properties", "size", "validators", "variant"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIInputNumberComponent, selector: "kwikui-input-number", inputs: ["decimal", "disabled", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "invalid", "label", "max", "min", "placeholder", "postfix", "precision", "prefix", "properties", "size", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIInputDateComponent, selector: "kwikui-input-date", inputs: ["disabled", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "invalid", "label", "max", "maxCalculatedFromToday", "min", "minCalculatedFromToday", "placeholder", "postfix", "prefix", "properties", "size", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIInputTimeComponent, selector: "kwikui-input-time", inputs: ["disabled", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "items", "invalid", "label", "mode", "placeholder", "postfix", "prefix", "properties", "size", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIInputPhoneComponent, selector: "kwikui-input-phone", inputs: ["countryCode", "disabled", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "invalid", "label", "phoneMaskAfterCountryCode", "placeholder", "postfix", "prefix", "properties", "removeCountryCodeFromValue", "size", "validators"], outputs: ["getKeyValue"] }, { type: i5__namespace.TuiLabelComponent, selector: "label[tuiLabel]", inputs: ["tuiLabel", "context"] }, { type: i3__namespace.KwikUIInputRadioComponent, selector: "kwikui-input-radio", inputs: ["disabled", "focus", "formControl", "formControlName", "id", "invalid", "items", "label", "orientation", "placeholder", "properties", "size", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIInputSelectComponent, selector: "kwikui-input-select", inputs: ["disabled", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "invalid", "label", "options", "placeholder", "properties", "searchable", "size", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIInputSliderComponent, selector: "kwikui-input-slider", inputs: ["disabled", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "invalid", "label", "max", "min", "placeholder", "postfix", "prefix", "properties", "quantum", "size", "steps", "type", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIButtonApiCallComponent, selector: "kwikui-button-api-call", inputs: ["apiTimer", "apiStatus", "class", "disabled", "id", "label", "shape", "showLoader", "size", "styles"], outputs: ["onClick", "onApiTimerStop"] }, { type: i3__namespace.KwikUIButtonLiveLocationComponent, selector: "kwikui-button-live-location", inputs: ["liveLocationStatus", "class", "disabled", "id", "label", "shape", "showLoader", "size", "styles", "isShowLatLongCaptureTimestamp"], outputs: ["onClick", "onLocationPermission"] }, { type: i3__namespace.KwikUIInputOtpComponent, selector: "kwikui-input-otp", inputs: ["disabled", "focus", "formControl", "formControlName", "id", "invalid", "label", "mask", "mode", "otpLength", "placeholder", "postfix", "prefix", "properties", "size", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIInputAadhaarComponent, selector: "kwikui-input-aadhaar", inputs: ["disabled", "focus", "formControl", "formControlName", "id", "invalid", "label", "mask", "placeholder", "properties", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUIImageComponent, selector: "kwikui-image", inputs: ["altText", "class", "html", "id", "imageSrc", "imageType", "loadingType", "styles"], outputs: ["onClick"] }, { type: i3__namespace.KwikUIInputFilesComponent, selector: "kwikui-input-files", inputs: ["accept", "class", "disabled", "files", "formControl", "formControlName", "icon", "id", "label", "link", "maxFileSize", "multiple", "setFileTypesToForm", "showAddedFiles", "size", "styles", "validators", "variant", "showViewButton"], outputs: ["getKeyValue", "getRemovedFile", "getViewButtonClick"] }, { type: i4__namespace.KwikUIInputCameraComponent, selector: "kwikui-input-camera", inputs: ["buttonText", "disabled", "focus", "formControl", "formControlName", "icon", "id", "invalid", "mediaFiles", "properties", "showMediaFiles", "size", "type", "validators"], outputs: ["onClick", "getRemovedFile"] }, { type: i3__namespace.KwikUIStarRatingComponent, selector: "kwikui-star-rating", inputs: ["color", "disabled", "focus", "formControl", "formControlName", "icon", "iconMarked", "id", "invalid", "label", "max", "min", "placeholder", "properties", "size", "validators"], outputs: ["getKeyValue"] }, { type: i3__namespace.KwikUILoaderComponent, selector: "kwikui-loader" }, { type: i6__namespace.TuiPushComponent, selector: "tui-push", inputs: ["heading", "type", "lines", "timestamp"], outputs: ["close"] }, { type: i5__namespace.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i7__namespace.TuiPreviewComponent, selector: "tui-preview", inputs: ["zoomable", "rotatable"] }, { type: i7__namespace.TuiPreviewTitleComponent, selector: "tui-preview-title" }, { type: i5__namespace.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { type: i4__namespace.KwikIDCameraComponent, selector: "kwikid-camera", inputs: ["type", "config", "data", "image", "video"], outputs: ["getImage", "onClickSave", "getVideo"] }], directives: [{ type: i3__namespace$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3__namespace$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3__namespace$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3__namespace$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3__namespace$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3__namespace$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3__namespace$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3__namespace$1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3__namespace$1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i6__namespace.TuiPushAlertDirective, selector: "[tuiPush]", inputs: ["tuiPush"] }, { type: i6__namespace.TuiPushDirective, selector: "tui-push" }, { type: i7__namespace.TuiPreviewActionDirective, selector: "[tuiPreviewAction]" }], pipes: { "styleSanitizer": StyleSanitizerPipe, "kwikuiSafeHtml": i3__namespace.KwikUISafeHtmlPipe, "filterImageUrlOrBase64FromObject": FilterImageUrlOrBase64FromObjectPipe, "filterVideoUrlOrBase64FromObject": FilterVideoUrlOrBase64FromObjectPipe, "kwikuiSafeUrl": i3__namespace.KwikUISafeUrlPipe, "formatTimer": TimerPipe } });
8779
8984
  __decorate([
8780
8985
  kwikidToolkit.logMethod
8781
8986
  ], KwikIDFormViewComponent.prototype, "resetCamera", null);
@@ -8866,9 +9071,6 @@
8866
9071
  __decorate([
8867
9072
  kwikidToolkit.logMethod
8868
9073
  ], KwikIDFormViewComponent.prototype, "handleGetKeyValue", null);
8869
- __decorate([
8870
- kwikidToolkit.logMethod
8871
- ], KwikIDFormViewComponent.prototype, "handleOnClickResetFormFields2", null);
8872
9074
  __decorate([
8873
9075
  kwikidToolkit.logMethod
8874
9076
  ], KwikIDFormViewComponent.prototype, "handleOnClickResetFormFields", null);
@@ -9124,8 +9326,9 @@
9124
9326
  type: i0.Output
9125
9327
  }], onClickViewForms: [{
9126
9328
  type: i0.Output
9127
- }], resetCamera: [], ngOnInit: [], ngOnChanges: [], ngOnDestroy: [], triggerLogs: [], initFormConfig: [], setFormFieldsFromFormConfig: [], setFormFieldGroupsFromFormConfig: [], setFormDataFromAllFormsData: [], handleConnectedElementFieldGroupActions: [], handleConnectedElementFieldGroup: [], handleConnectedElementFieldActions: [], handleConnectedElementFields: [], handleConnectedElements: [], handleRemovedFile: [], handleViewButtonClick: [], handleGetKeyValueFile: [], handleOnClickGetRemovedMediaFile: [], handleOnClickInputCamera: [], setCameraMedia: [], handleGetCameraMedia: [], handleOnClickSaveCameraMedia: [], handleOnClickCameraBack: [], handleOnClickCameraClose: [], updateFiles: [], uploadFile: [], handleOnClickFormFieldButton: [], handleOnLocationPermission: [], handleOnClickLiveLocation: [], handleGetKeyValue: [], handleOnClickResetFormFields2: [], handleOnClickResetFormFields: [], handleFieldApiCall: [], handleApiCall: [], executeApiCall: [], isValidRequestHeadersAndBody: [], handleOnClickApiCall: [], handleOnClickGoBack: [], handleOnClickViewForms: [], handleOnClickSaveForm: [], handleOnApiTimerStop: [], handleOnScrollToField: [], toggleErrorNotification: [], togglePermissionErrorNotification: [], fieldHide: [], fieldGroupHide: [], fieldShow: [], fieldGroupShow: [], fieldDisable: [], fieldGroupDisable: [], fieldEnable: [], fieldGroupEnable: [], fieldReset: [], fieldGroupReset: [], fieldHideApiLoader: [], fieldShowApiLoader: [], setHtml: [], fieldErrorShow: [], fieldErrorHide: [], fieldMessageShow: [], fieldMessageHide: [], setValue: [], setFieldDefaultValue: [], setApiStatus: [], setApiHeaderValue: [], setApiHeaderValidity: [], setApiBodyValue: [], setApiBodyValidity: [], setFieldValidity: [], setDropdownOptions: [], apiCall: [], fieldApiCall: [], fieldMultipleApiCalls: [], fieldMultipleApiCallsEnd: [], taskApiCall: [], taskMultipleApiCalls: [], taskMultipleApiCallsEnd: [], dialogShow: [], dialogHide: [], redirectToUrl: [], patchFieldControlValue: [], setFieldControlValue: [], patchFormGroup: [], isFieldValid: [], isFieldEnabled: [], getFormGroupRawValues: [], showPreview: [], showErrorPreview: [], showPopupForm: [], alertShow: [], takeActionOnFieldGroup: [], takeAction: [] } });
9329
+ }], resetCamera: [], ngOnInit: [], ngOnChanges: [], ngOnDestroy: [], triggerLogs: [], initFormConfig: [], setFormFieldsFromFormConfig: [], setFormFieldGroupsFromFormConfig: [], setFormDataFromAllFormsData: [], handleConnectedElementFieldGroupActions: [], handleConnectedElementFieldGroup: [], handleConnectedElementFieldActions: [], handleConnectedElementFields: [], handleConnectedElements: [], handleRemovedFile: [], handleViewButtonClick: [], handleGetKeyValueFile: [], handleOnClickGetRemovedMediaFile: [], handleOnClickInputCamera: [], setCameraMedia: [], handleGetCameraMedia: [], handleOnClickSaveCameraMedia: [], handleOnClickCameraBack: [], handleOnClickCameraClose: [], updateFiles: [], uploadFile: [], handleOnClickFormFieldButton: [], handleOnLocationPermission: [], handleOnClickLiveLocation: [], handleGetKeyValue: [], handleOnClickResetFormFields: [], handleFieldApiCall: [], handleApiCall: [], executeApiCall: [], isValidRequestHeadersAndBody: [], handleOnClickApiCall: [], handleOnClickGoBack: [], handleOnClickViewForms: [], handleOnClickSaveForm: [], handleOnApiTimerStop: [], handleOnScrollToField: [], toggleErrorNotification: [], togglePermissionErrorNotification: [], fieldHide: [], fieldGroupHide: [], fieldShow: [], fieldGroupShow: [], fieldDisable: [], fieldGroupDisable: [], fieldEnable: [], fieldGroupEnable: [], fieldReset: [], fieldGroupReset: [], fieldHideApiLoader: [], fieldShowApiLoader: [], setHtml: [], fieldErrorShow: [], fieldErrorHide: [], fieldMessageShow: [], fieldMessageHide: [], setValue: [], setFieldDefaultValue: [], setApiStatus: [], setApiHeaderValue: [], setApiHeaderValidity: [], setApiBodyValue: [], setApiBodyValidity: [], setFieldValidity: [], setDropdownOptions: [], apiCall: [], fieldApiCall: [], fieldMultipleApiCalls: [], fieldMultipleApiCallsEnd: [], taskApiCall: [], taskMultipleApiCalls: [], taskMultipleApiCallsEnd: [], dialogShow: [], dialogHide: [], redirectToUrl: [], patchFieldControlValue: [], setFieldControlValue: [], patchFormGroup: [], isFieldValid: [], isFieldEnabled: [], getFormGroupRawValues: [], showPreview: [], showErrorPreview: [], showPopupForm: [], alertShow: [], takeActionOnFieldGroup: [], takeAction: [] } });
9128
9330
 
9331
+ /* eslint-disable no-unused-vars */
9129
9332
  var EFormType;
9130
9333
  (function (EFormType) {
9131
9334
  EFormType["FORM"] = "FORM";
@@ -9178,8 +9381,8 @@
9178
9381
  this.isAllFormsCompleted = true;
9179
9382
  this.loading = false;
9180
9383
  }
9181
- KwikIDFormsListComponent.prototype.setSelectedForm = function (selected_form) {
9182
- this.selectedForm = selected_form;
9384
+ KwikIDFormsListComponent.prototype.setSelectedForm = function (selectedForm) {
9385
+ this.selectedForm = selectedForm;
9183
9386
  };
9184
9387
  KwikIDFormsListComponent.prototype.ngOnInit = function () {
9185
9388
  var _a, _b;
@@ -9242,14 +9445,12 @@
9242
9445
  if (kwikidToolkit.isNull(stepConfig) || kwikidToolkit.isUndefined(stepConfig)) {
9243
9446
  stepConfig = kwikidToolkit.setValueToObjectPath({}, "props", stepConfigProperties);
9244
9447
  }
9448
+ else if (kwikidToolkit.checkObjectKeyExists(stepConfig, "props")) {
9449
+ stepConfigProperties = kwikidToolkit.mergeObjects(stepConfigProperties, stepConfig.props);
9450
+ stepConfig = kwikidToolkit.setValueToObjectPath(stepConfig, "props", stepConfigProperties);
9451
+ }
9245
9452
  else {
9246
- if (kwikidToolkit.checkObjectKeyExists(stepConfig, "props")) {
9247
- stepConfigProperties = kwikidToolkit.mergeObjects(stepConfigProperties, stepConfig.props);
9248
- stepConfig = kwikidToolkit.setValueToObjectPath(stepConfig, "props", stepConfigProperties);
9249
- }
9250
- else {
9251
- stepConfig = kwikidToolkit.setValueToObjectPath(stepConfig, "props", stepConfigProperties);
9252
- }
9453
+ stepConfig = kwikidToolkit.setValueToObjectPath(stepConfig, "props", stepConfigProperties);
9253
9454
  }
9254
9455
  stepConfig.props.formListProperties.footer.submitFormButton.label =
9255
9456
  updateLanguage(stepConfig.props.formListProperties.footer.submitFormButton.label, getLanguage());
@@ -9258,43 +9459,34 @@
9258
9459
  KwikIDFormsListComponent.prototype.filterHiddenForms = function (formsList) {
9259
9460
  return formsList.filter(function (form) {
9260
9461
  if (kwikidToolkit.checkObjectKeyExists(form, "hidden")) {
9261
- if (!form.hidden) {
9262
- return form;
9263
- }
9462
+ return !form.hidden;
9264
9463
  }
9464
+ return false;
9265
9465
  });
9266
9466
  };
9267
9467
  KwikIDFormsListComponent.prototype.setFormTitles = function (formsList) {
9268
- return formsList.filter(function (form) {
9468
+ return formsList
9469
+ .map(function (form) {
9269
9470
  if (form.type === EFormType.HTML) {
9270
- return form;
9471
+ return form; // No modification, just return
9271
9472
  }
9272
- else {
9273
- if (kwikidToolkit.checkObjectPathExists(form, "props.title")) {
9274
- form.props.title = updateLanguage(form.props.title, getLanguage());
9275
- return form;
9276
- }
9473
+ if (kwikidToolkit.checkObjectPathExists(form, "props.title")) {
9474
+ form.props.title = updateLanguage(form.props.title, getLanguage());
9277
9475
  }
9278
- });
9476
+ return form; // Return the form regardless of modification
9477
+ })
9478
+ .filter(function (form) { return form.type === EFormType.HTML ||
9479
+ kwikidToolkit.checkObjectPathExists(form, "props.title"); });
9279
9480
  };
9280
9481
  KwikIDFormsListComponent.prototype.findFormsListLength = function (formsList) {
9281
- var _formsList = formsList.filter(function (form) {
9482
+ return formsList.filter(function (form) {
9282
9483
  if (kwikidToolkit.checkObjectKeyExists(form, "type")) {
9283
- if (form.type !== EFormType.HTML) {
9284
- if (kwikidToolkit.checkObjectKeyExists(form, "hidden")) {
9285
- if (!form.hidden) {
9286
- return form;
9287
- }
9288
- }
9289
- }
9290
- }
9291
- else if (kwikidToolkit.checkObjectKeyExists(form, "hidden")) {
9292
- if (!form.hidden) {
9293
- return form;
9294
- }
9484
+ return (form.type !== EFormType.HTML &&
9485
+ kwikidToolkit.checkObjectKeyExists(form, "hidden") &&
9486
+ !form.hidden);
9295
9487
  }
9296
- });
9297
- return _formsList.length;
9488
+ return kwikidToolkit.checkObjectKeyExists(form, "hidden") && !form.hidden;
9489
+ }).length;
9298
9490
  };
9299
9491
  KwikIDFormsListComponent.prototype.checkIsAllFormsCompleted = function (formsList) {
9300
9492
  var e_1, _g;
@@ -9364,6 +9556,9 @@
9364
9556
  __decorate([
9365
9557
  kwikidToolkit.logMethod
9366
9558
  ], KwikIDFormsListComponent.prototype, "filterHiddenForms", null);
9559
+ __decorate([
9560
+ kwikidToolkit.logMethod
9561
+ ], KwikIDFormsListComponent.prototype, "setFormTitles", null);
9367
9562
  __decorate([
9368
9563
  kwikidToolkit.logMethod
9369
9564
  ], KwikIDFormsListComponent.prototype, "findFormsListLength", null);
@@ -9383,7 +9578,7 @@
9383
9578
  templateUrl: "./forms-list.component.html",
9384
9579
  styleUrls: ["./forms-list.component.scss", "../shared.scss"]
9385
9580
  }]
9386
- }], ctorParameters: function () { return []; }, propDecorators: { showFormFields: [{
9581
+ }], propDecorators: { showFormFields: [{
9387
9582
  type: i0.Input
9388
9583
  }], userConfig: [{
9389
9584
  type: i0.Input
@@ -9407,7 +9602,7 @@
9407
9602
  type: i0.Output
9408
9603
  }], onClickSubmitForms: [{
9409
9604
  type: i0.Output
9410
- }], ngOnChanges: [], triggerLogs: [], formatStepConfig: [], filterHiddenForms: [], findFormsListLength: [], checkIsAllFormsCompleted: [], handleOnClickSetActiveForm: [], handleOnSubmitForms: [] } });
9605
+ }], ngOnChanges: [], triggerLogs: [], formatStepConfig: [], filterHiddenForms: [], setFormTitles: [], findFormsListLength: [], checkIsAllFormsCompleted: [], handleOnClickSetActiveForm: [], handleOnSubmitForms: [] } });
9411
9606
 
9412
9607
  var ERendererActionKey;
9413
9608
  (function (ERendererActionKey) {
@@ -9420,9 +9615,7 @@
9420
9615
 
9421
9616
  var getFormConfigByKey = function (forms, key) {
9422
9617
  var form = forms.find(function (form) {
9423
- if (form.key === key) {
9424
- return form;
9425
- }
9618
+ return form.key === key;
9426
9619
  });
9427
9620
  return form;
9428
9621
  };
@@ -9538,7 +9731,7 @@
9538
9731
  };
9539
9732
  KwikIDFormsRendererComponent.prototype.ngOnChanges = function (changes) {
9540
9733
  var verifyChange = function (prop) {
9541
- return changes.hasOwnProperty(prop) && !changes[prop].firstChange;
9734
+ return kwikidToolkit.checkObjectKeyExists(changes, prop) && !changes[prop].firstChange;
9542
9735
  };
9543
9736
  if (verifyChange("userConfig")) {
9544
9737
  this.userConfig = changes.userConfig.currentValue;
@@ -9641,19 +9834,19 @@
9641
9834
  if (kwikidToolkit.checkObjectKeyExists(form, "formContent")) {
9642
9835
  if (kwikidToolkit.checkObjectKeyExists(form.formContent, "url")) {
9643
9836
  form = kwikidToolkit.setValueToObjectPath(form, "props.url", form.formContent.url);
9644
- delete form["formContent"]["url"];
9837
+ delete form.formContent.url;
9645
9838
  }
9646
9839
  if (kwikidToolkit.checkObjectKeyExists(form.formContent, "path")) {
9647
9840
  form = kwikidToolkit.setValueToObjectPath(form, "props.path", form.formContent.path);
9648
- delete form["formContent"]["path"];
9841
+ delete form.formContent.path;
9649
9842
  }
9650
9843
  }
9651
9844
  if (kwikidToolkit.isEmptyValue(form.formContent)) {
9652
- delete form["formContent"];
9845
+ delete form.formContent;
9653
9846
  }
9654
9847
  if (kwikidToolkit.checkObjectKeyExists(form, "title")) {
9655
9848
  form = kwikidToolkit.setValueToObjectPath(form, "props.title", form.title);
9656
- delete form["title"];
9849
+ delete form.title;
9657
9850
  }
9658
9851
  if (!kwikidToolkit.checkObjectKeyExists(form, "hidden")) {
9659
9852
  form.hidden = false;
@@ -9679,18 +9872,16 @@
9679
9872
  htmlContent: form.htmlContent
9680
9873
  };
9681
9874
  }
9682
- delete form["htmlContent"];
9875
+ delete form.htmlContent;
9683
9876
  }
9684
- else {
9685
- if (!kwikidToolkit.checkObjectKeyExists(form, "props")) {
9686
- form.props = {
9687
- htmlContent: ""
9688
- };
9689
- }
9877
+ else if (!kwikidToolkit.checkObjectKeyExists(form, "props")) {
9878
+ form.props = {
9879
+ htmlContent: ""
9880
+ };
9690
9881
  }
9691
9882
  if (kwikidToolkit.checkObjectKeyExists(form, "title")) {
9692
9883
  form = kwikidToolkit.setValueToObjectPath(form, "props.title", form.title);
9693
- delete form["title"];
9884
+ delete form.title;
9694
9885
  }
9695
9886
  if (!kwikidToolkit.checkObjectKeyExists(form, "hidden")) {
9696
9887
  form.hidden = false;
@@ -9727,10 +9918,11 @@
9727
9918
  var form = formsList_1_1.value;
9728
9919
  if (kwikidToolkit.checkObjectKeyExists(form, "hidden")) {
9729
9920
  if (!form.hidden && form.type !== EFormType.HTML) {
9730
- form.sequenceNo = sequenceNo++;
9921
+ form.sequenceNo = sequenceNo;
9922
+ sequenceNo += 1;
9731
9923
  }
9732
9924
  else {
9733
- delete form["sequenceNo"];
9925
+ delete form.sequenceNo;
9734
9926
  }
9735
9927
  }
9736
9928
  }
@@ -9746,7 +9938,7 @@
9746
9938
  };
9747
9939
  KwikIDFormsRendererComponent.prototype.findCompletedFormsList = function (allFormsData) {
9748
9940
  var formsListCompleted = [];
9749
- Object.keys(allFormsData).map(function (formKey) {
9941
+ Object.keys(allFormsData).forEach(function (formKey) {
9750
9942
  formsListCompleted.push(formKey);
9751
9943
  });
9752
9944
  return formsListCompleted;
@@ -9875,47 +10067,44 @@
9875
10067
  return allFormsCompleted;
9876
10068
  };
9877
10069
  KwikIDFormsRendererComponent.prototype.findActiveFormConfig = function (formsList) {
9878
- var activeFormConfig = formsList.find(function (form) {
9879
- if (kwikidToolkit.checkObjectKeyExists(form, "hidden")) {
9880
- if (!form.hidden && form.type !== EFormType.HTML) {
9881
- return form.status === "editable" && !form.disabled;
9882
- }
9883
- }
10070
+ return formsList.find(function (form) {
10071
+ return (kwikidToolkit.checkObjectKeyExists(form, "hidden") &&
10072
+ !form.hidden &&
10073
+ form.type !== EFormType.HTML &&
10074
+ form.status === "editable" &&
10075
+ !form.disabled);
9884
10076
  });
9885
- return activeFormConfig;
9886
10077
  };
9887
10078
  KwikIDFormsRendererComponent.prototype.updateFormsList = function () {
9888
10079
  return __awaiter(this, void 0, void 0, function () {
9889
- var _o, _p, form, triggers, rules, actions, rulesMapping, actions_1, actions_1_1, action, conditionEvaluation, actions_2, e_6_1, e_7_1, currentUserFormAllFormsData;
9890
- var e_7, _q, e_6, _r;
9891
- return __generator(this, function (_s) {
9892
- switch (_s.label) {
10080
+ var _o, _p, form, _q, triggers, rules, actions, rulesMapping, actions_1, actions_1_1, action, conditionEvaluation, actions_2, e_6_1, e_7_1, currentUserFormAllFormsData;
10081
+ var e_7, _r, e_6, _s;
10082
+ return __generator(this, function (_t) {
10083
+ switch (_t.label) {
9893
10084
  case 0:
9894
10085
  this.formsList = this.convertFormListConfig(this.formsList);
9895
- _s.label = 1;
10086
+ _t.label = 1;
9896
10087
  case 1:
9897
- _s.trys.push([1, 14, 15, 16]);
10088
+ _t.trys.push([1, 14, 15, 16]);
9898
10089
  _o = __values(this.formsList), _p = _o.next();
9899
- _s.label = 2;
10090
+ _t.label = 2;
9900
10091
  case 2:
9901
10092
  if (!!_p.done) return [3 /*break*/, 13];
9902
10093
  form = _p.value;
9903
10094
  if (!(kwikidToolkit.checkObjectKeyExists(form, "default") &&
9904
10095
  kwikidToolkit.isNotEmptyValue(form.default))) return [3 /*break*/, 11];
9905
- triggers = form.default.triggers;
9906
- rules = form.default.rules;
9907
- actions = form.default.actions;
10096
+ _q = form.default, triggers = _q.triggers, rules = _q.rules, actions = _q.actions;
9908
10097
  rulesMapping = new kwikidToolkit.Rule(rules, {
9909
10098
  USER_CONFIG: this.userConfig,
9910
10099
  FORMS_LIST: this.formsList,
9911
10100
  ALL_FORMS_DATA: this.allFormsData,
9912
10101
  EXTRA_DATA: this.extraData
9913
10102
  }).mapping();
9914
- _s.label = 3;
10103
+ _t.label = 3;
9915
10104
  case 3:
9916
- _s.trys.push([3, 8, 9, 10]);
10105
+ _t.trys.push([3, 8, 9, 10]);
9917
10106
  actions_1 = (e_6 = void 0, __values(actions)), actions_1_1 = actions_1.next();
9918
- _s.label = 4;
10107
+ _t.label = 4;
9919
10108
  case 4:
9920
10109
  if (!!actions_1_1.done) return [3 /*break*/, 7];
9921
10110
  action = actions_1_1.value;
@@ -9928,19 +10117,19 @@
9928
10117
  }, this.takeAction.bind(this));
9929
10118
  return [4 /*yield*/, actions_2.execute()];
9930
10119
  case 5:
9931
- _s.sent();
9932
- _s.label = 6;
10120
+ _t.sent();
10121
+ _t.label = 6;
9933
10122
  case 6:
9934
10123
  actions_1_1 = actions_1.next();
9935
10124
  return [3 /*break*/, 4];
9936
10125
  case 7: return [3 /*break*/, 10];
9937
10126
  case 8:
9938
- e_6_1 = _s.sent();
10127
+ e_6_1 = _t.sent();
9939
10128
  e_6 = { error: e_6_1 };
9940
10129
  return [3 /*break*/, 10];
9941
10130
  case 9:
9942
10131
  try {
9943
- if (actions_1_1 && !actions_1_1.done && (_r = actions_1.return)) _r.call(actions_1);
10132
+ if (actions_1_1 && !actions_1_1.done && (_s = actions_1.return)) _s.call(actions_1);
9944
10133
  }
9945
10134
  finally { if (e_6) throw e_6.error; }
9946
10135
  return [7 /*endfinally*/];
@@ -9949,18 +10138,18 @@
9949
10138
  if (!kwikidToolkit.checkObjectKeyExists(form, "hidden")) {
9950
10139
  form.hidden = false;
9951
10140
  }
9952
- _s.label = 12;
10141
+ _t.label = 12;
9953
10142
  case 12:
9954
10143
  _p = _o.next();
9955
10144
  return [3 /*break*/, 2];
9956
10145
  case 13: return [3 /*break*/, 16];
9957
10146
  case 14:
9958
- e_7_1 = _s.sent();
10147
+ e_7_1 = _t.sent();
9959
10148
  e_7 = { error: e_7_1 };
9960
10149
  return [3 /*break*/, 16];
9961
10150
  case 15:
9962
10151
  try {
9963
- if (_p && !_p.done && (_q = _o.return)) _q.call(_o);
10152
+ if (_p && !_p.done && (_r = _o.return)) _r.call(_o);
9964
10153
  }
9965
10154
  finally { if (e_7) throw e_7.error; }
9966
10155
  return [7 /*endfinally*/];
@@ -10047,23 +10236,15 @@
10047
10236
  });
10048
10237
  };
10049
10238
  KwikIDFormsRendererComponent.prototype.findFormsListLength = function (formsList) {
10050
- var _formsList = formsList.filter(function (form) {
10239
+ var updatedFormsList = formsList.filter(function (form) {
10051
10240
  if (kwikidToolkit.checkObjectKeyExists(form, "type")) {
10052
- if (form.type !== EFormType.HTML) {
10053
- if (kwikidToolkit.checkObjectKeyExists(form, "hidden")) {
10054
- if (!form.hidden) {
10055
- return form;
10056
- }
10057
- }
10058
- }
10059
- }
10060
- else if (kwikidToolkit.checkObjectKeyExists(form, "hidden")) {
10061
- if (!form.hidden) {
10062
- return form;
10063
- }
10241
+ return (form.type !== EFormType.HTML &&
10242
+ kwikidToolkit.checkObjectKeyExists(form, "hidden") &&
10243
+ !form.hidden);
10064
10244
  }
10245
+ return kwikidToolkit.checkObjectKeyExists(form, "hidden") && !form.hidden;
10065
10246
  });
10066
- return _formsList.length;
10247
+ return updatedFormsList.length;
10067
10248
  };
10068
10249
  /**
10069
10250
  * Library Event Listeners
@@ -10083,12 +10264,9 @@
10083
10264
  this.toggleLoader(true);
10084
10265
  this.isUnsavedData = false;
10085
10266
  activeFormConfig = this.formsList.find(function (form) {
10086
- if (form.key === selectedForm) {
10087
- return form;
10088
- }
10267
+ return form.key === selectedForm;
10089
10268
  });
10090
10269
  activeFormConfig = new Converter().updateFormConfigProperties(activeFormConfig);
10091
- formConfig = undefined;
10092
10270
  if (!kwikidToolkit.checkObjectKeyExists(activeFormConfig, "props")) return [3 /*break*/, 6];
10093
10271
  if (!kwikidToolkit.checkObjectKeyExists(activeFormConfig.props, "url")) return [3 /*break*/, 2];
10094
10272
  return [4 /*yield*/, this.fetchFormConfig(activeFormConfig.props.url)];
@@ -10219,8 +10397,8 @@
10219
10397
  .subscribe({
10220
10398
  next: function (data) {
10221
10399
  _this.popupFormCallback = {
10222
- popupFormData: data["data"],
10223
- popupFormConfig: data["formConfig"],
10400
+ popupFormData: data.data,
10401
+ popupFormConfig: data.formConfig,
10224
10402
  activeFormConfig: _this.activeFormConfig
10225
10403
  };
10226
10404
  _this.activePopupFormData = {};
@@ -10249,8 +10427,8 @@
10249
10427
  .subscribe({
10250
10428
  next: function (data) {
10251
10429
  _this.popupFormCallback = {
10252
- popupFormData: data["data"],
10253
- popupFormConfig: data["formConfig"],
10430
+ popupFormData: data.data,
10431
+ popupFormConfig: data.formConfig,
10254
10432
  activeFormConfig: _this.activeFormConfig
10255
10433
  };
10256
10434
  _this.activePopupFormData = {};
@@ -10290,9 +10468,9 @@
10290
10468
  this.toggleLoader(true);
10291
10469
  this.getFormData.emit((_o = {},
10292
10470
  _o[this.activeFormConfig.key] = {
10293
- formConfig: e["formConfig"],
10294
- data: e["data"],
10295
- extendedData: e["extendedData"]
10471
+ formConfig: e.formConfig,
10472
+ data: e.data,
10473
+ extendedData: e.extendedData
10296
10474
  },
10297
10475
  _o));
10298
10476
  break;
@@ -10335,34 +10513,26 @@
10335
10513
  this.showFormSections = true;
10336
10514
  this.showForm = false;
10337
10515
  this.showFormFields = false;
10338
- return;
10516
+ }
10517
+ else if (this.checkIfFormsStatusCompleted(this.formsList, this.formsListCompleted)) {
10518
+ this.showFormSections = true;
10519
+ this.showForm = false;
10520
+ this.showFormFields = false;
10339
10521
  }
10340
10522
  else {
10341
- if (this.checkIfFormsStatusCompleted(this.formsList, this.formsListCompleted)) {
10342
- this.showFormSections = true;
10343
- this.showForm = false;
10344
- this.showFormFields = false;
10345
- return;
10346
- }
10347
- else {
10348
- var previousFormConfigDirect = this.formsList.find(function (form) {
10349
- if (form.sequenceNo === _this.activeFormConfig.sequenceNo - 1 &&
10350
- form.status !== EFormsListStatus.LOCKED) {
10351
- return form;
10352
- }
10353
- });
10354
- if (previousFormConfigDirect) {
10355
- this.handleOnClickSetActiveForm(previousFormConfigDirect.key, undefined);
10356
- }
10523
+ var previousFormConfigDirect = this.formsList.find(function (form) {
10524
+ return (form.sequenceNo === _this.activeFormConfig.sequenceNo - 1 &&
10525
+ form.status !== EFormsListStatus.LOCKED);
10526
+ });
10527
+ if (previousFormConfigDirect) {
10528
+ this.handleOnClickSetActiveForm(previousFormConfigDirect.key, undefined);
10357
10529
  }
10358
10530
  }
10359
10531
  break;
10360
- case EFormViewGoBackMode.TABBED:
10532
+ case EFormViewGoBackMode.TABBED: {
10361
10533
  var previousFormConfig = this.formsList.find(function (form) {
10362
- if (form.sequenceNo < _this.activeFormConfig.sequenceNo &&
10363
- form.status === EFormsListStatus.EDITABLE) {
10364
- return form;
10365
- }
10534
+ return (form.sequenceNo < _this.activeFormConfig.sequenceNo &&
10535
+ form.status === EFormsListStatus.EDITABLE);
10366
10536
  });
10367
10537
  if (previousFormConfig) {
10368
10538
  this.handleOnClickSetActiveForm(previousFormConfig.key, undefined);
@@ -10373,6 +10543,7 @@
10373
10543
  this.showFormFields = false;
10374
10544
  }
10375
10545
  break;
10546
+ }
10376
10547
  default:
10377
10548
  break;
10378
10549
  }
@@ -10736,7 +10907,11 @@
10736
10907
  return KwikIDFormViewModule;
10737
10908
  }());
10738
10909
  /** @nocollapse */ KwikIDFormViewModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: KwikIDFormViewModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
10739
- /** @nocollapse */ KwikIDFormViewModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: KwikIDFormViewModule, declarations: [KwikIDFormViewComponent, StyleSanitizerPipe, TimerPipe], imports: [i3$2.CommonModule,
10910
+ /** @nocollapse */ KwikIDFormViewModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: KwikIDFormViewModule, declarations: [KwikIDFormViewComponent,
10911
+ StyleSanitizerPipe,
10912
+ TimerPipe,
10913
+ FilterImageUrlOrBase64FromObjectPipe,
10914
+ FilterVideoUrlOrBase64FromObjectPipe], imports: [i3$2.CommonModule,
10740
10915
  i3.FormsModule,
10741
10916
  i3.ReactiveFormsModule,
10742
10917
  i5.TuiLabelModule,
@@ -10771,7 +10946,13 @@
10771
10946
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: KwikIDFormViewModule, decorators: [{
10772
10947
  type: i0.NgModule,
10773
10948
  args: [{
10774
- declarations: [KwikIDFormViewComponent, StyleSanitizerPipe, TimerPipe],
10949
+ declarations: [
10950
+ KwikIDFormViewComponent,
10951
+ StyleSanitizerPipe,
10952
+ TimerPipe,
10953
+ FilterImageUrlOrBase64FromObjectPipe,
10954
+ FilterVideoUrlOrBase64FromObjectPipe
10955
+ ],
10775
10956
  imports: [
10776
10957
  i3$2.CommonModule,
10777
10958
  i3.FormsModule,