@smvtech/x-flux 1.1.13 → 1.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +13 -19
- package/dist/index.mjs +13 -19
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -5499,16 +5499,16 @@ declare function getSignedUrlFromAsset(docId: string): Promise<string | null>;
|
|
|
5499
5499
|
declare function getDisplayableQuestions(questions: TEDCApplicant["questions"], questionAnswerSources: ANSWER_SOURCE[]): TEDCApplicant["questions"];
|
|
5500
5500
|
declare function getDisplayableDocuments(questions: TEDCApplicant["questions"], documentAnswerSources: ANSWER_SOURCE[]): TEDCApplicant["questions"];
|
|
5501
5501
|
declare function getValidationErrors(validations?: TAnswer["validations"] | null): ValidationResult;
|
|
5502
|
-
declare function getValidationResult(question: TEDCApplicant["questions"][0]
|
|
5503
|
-
declare function validateApplicantQuestions(applicant: TEDCApplicant, questionAnswerSources: ANSWER_SOURCE[]
|
|
5502
|
+
declare function getValidationResult(question: TEDCApplicant["questions"][0]): ValidationResult;
|
|
5503
|
+
declare function validateApplicantQuestions(applicant: TEDCApplicant, questionAnswerSources: ANSWER_SOURCE[]): Array<{
|
|
5504
5504
|
name: string;
|
|
5505
5505
|
validationResult: ValidationResult;
|
|
5506
5506
|
}>;
|
|
5507
|
-
declare function validateApplicantDocuments(applicant: TEDCApplicant, documentAnswerSources: ANSWER_SOURCE[]
|
|
5507
|
+
declare function validateApplicantDocuments(applicant: TEDCApplicant, documentAnswerSources: ANSWER_SOURCE[]): Array<{
|
|
5508
5508
|
name: string;
|
|
5509
5509
|
validationResult: ValidationResult;
|
|
5510
5510
|
}>;
|
|
5511
|
-
declare function validateApplicant(applicant: TEDCApplicant, questionAnswerSources: ANSWER_SOURCE[], documentAnswerSources: ANSWER_SOURCE[]
|
|
5511
|
+
declare function validateApplicant(applicant: TEDCApplicant, questionAnswerSources: ANSWER_SOURCE[], documentAnswerSources: ANSWER_SOURCE[]): {
|
|
5512
5512
|
isComplete: boolean;
|
|
5513
5513
|
questionValidations: Array<{
|
|
5514
5514
|
name: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -5499,16 +5499,16 @@ declare function getSignedUrlFromAsset(docId: string): Promise<string | null>;
|
|
|
5499
5499
|
declare function getDisplayableQuestions(questions: TEDCApplicant["questions"], questionAnswerSources: ANSWER_SOURCE[]): TEDCApplicant["questions"];
|
|
5500
5500
|
declare function getDisplayableDocuments(questions: TEDCApplicant["questions"], documentAnswerSources: ANSWER_SOURCE[]): TEDCApplicant["questions"];
|
|
5501
5501
|
declare function getValidationErrors(validations?: TAnswer["validations"] | null): ValidationResult;
|
|
5502
|
-
declare function getValidationResult(question: TEDCApplicant["questions"][0]
|
|
5503
|
-
declare function validateApplicantQuestions(applicant: TEDCApplicant, questionAnswerSources: ANSWER_SOURCE[]
|
|
5502
|
+
declare function getValidationResult(question: TEDCApplicant["questions"][0]): ValidationResult;
|
|
5503
|
+
declare function validateApplicantQuestions(applicant: TEDCApplicant, questionAnswerSources: ANSWER_SOURCE[]): Array<{
|
|
5504
5504
|
name: string;
|
|
5505
5505
|
validationResult: ValidationResult;
|
|
5506
5506
|
}>;
|
|
5507
|
-
declare function validateApplicantDocuments(applicant: TEDCApplicant, documentAnswerSources: ANSWER_SOURCE[]
|
|
5507
|
+
declare function validateApplicantDocuments(applicant: TEDCApplicant, documentAnswerSources: ANSWER_SOURCE[]): Array<{
|
|
5508
5508
|
name: string;
|
|
5509
5509
|
validationResult: ValidationResult;
|
|
5510
5510
|
}>;
|
|
5511
|
-
declare function validateApplicant(applicant: TEDCApplicant, questionAnswerSources: ANSWER_SOURCE[], documentAnswerSources: ANSWER_SOURCE[]
|
|
5511
|
+
declare function validateApplicant(applicant: TEDCApplicant, questionAnswerSources: ANSWER_SOURCE[], documentAnswerSources: ANSWER_SOURCE[]): {
|
|
5512
5512
|
isComplete: boolean;
|
|
5513
5513
|
questionValidations: Array<{
|
|
5514
5514
|
name: string;
|
package/dist/index.js
CHANGED
|
@@ -558,11 +558,6 @@ var extractDefaultAnswer = (value) => {
|
|
|
558
558
|
const match = value.match(/^\{\{.*\}\}$/);
|
|
559
559
|
return match ? match[0] : null;
|
|
560
560
|
};
|
|
561
|
-
var isDynamicApplicantAnswerEmpty = (answer, applicants) => {
|
|
562
|
-
const match = answer.match(/^app_id_(.+)$/);
|
|
563
|
-
if (!match) return false;
|
|
564
|
-
return !(match[1] in applicants);
|
|
565
|
-
};
|
|
566
561
|
function getDisplayableQuestions(questions, questionAnswerSources) {
|
|
567
562
|
return questions.filter((q) => {
|
|
568
563
|
if (q.question.type === "DOCUMENT" /* DOCUMENT */) return false;
|
|
@@ -626,7 +621,7 @@ function getValidationErrors(validations) {
|
|
|
626
621
|
totalTimeSaved
|
|
627
622
|
};
|
|
628
623
|
}
|
|
629
|
-
function getValidationResult(question
|
|
624
|
+
function getValidationResult(question) {
|
|
630
625
|
const backendResult = getValidationErrors(question.answer_data?.validations);
|
|
631
626
|
if (backendResult && backendResult.status !== "PERFECT" /* PERFECT */) {
|
|
632
627
|
return backendResult;
|
|
@@ -635,7 +630,7 @@ function getValidationResult(question, applicants = {}) {
|
|
|
635
630
|
const isDocument = question.question.type === "DOCUMENT" /* DOCUMENT */;
|
|
636
631
|
const hasApproved = question.answer_data?.assets_id?.find((asset) => asset.status === "APPROVED");
|
|
637
632
|
const answer = question.answer_data?.answer?.[0];
|
|
638
|
-
const isAnswerEmpty = !answer || answer === "" || extractDefaultAnswer(answer) !== null
|
|
633
|
+
const isAnswerEmpty = !answer || answer === "" || extractDefaultAnswer(answer) !== null;
|
|
639
634
|
if (isDocument && !hasApproved || !isDocument && isAnswerEmpty) {
|
|
640
635
|
const answerRequiredItem = {
|
|
641
636
|
error_text: isDocument ? "Please upload the required document" : "Answer cannot be empty",
|
|
@@ -660,11 +655,11 @@ function getValidationResult(question, applicants = {}) {
|
|
|
660
655
|
totalTimeSaved: 0
|
|
661
656
|
};
|
|
662
657
|
}
|
|
663
|
-
function validateApplicantQuestions(applicant, questionAnswerSources
|
|
658
|
+
function validateApplicantQuestions(applicant, questionAnswerSources) {
|
|
664
659
|
const displayableQuestions = getDisplayableQuestions(applicant.questions, questionAnswerSources);
|
|
665
660
|
const questionValidations = [];
|
|
666
661
|
displayableQuestions.forEach((question) => {
|
|
667
|
-
const validationResult = getValidationResult(question
|
|
662
|
+
const validationResult = getValidationResult(question);
|
|
668
663
|
if (validationResult && (validationResult.status === "MISSING" /* MISSING */ || validationResult.status === "UNFIXABLE" /* UNFIXABLE */)) {
|
|
669
664
|
questionValidations.push({
|
|
670
665
|
name: question.question.question,
|
|
@@ -674,11 +669,11 @@ function validateApplicantQuestions(applicant, questionAnswerSources, applicants
|
|
|
674
669
|
});
|
|
675
670
|
return questionValidations;
|
|
676
671
|
}
|
|
677
|
-
function validateApplicantDocuments(applicant, documentAnswerSources
|
|
672
|
+
function validateApplicantDocuments(applicant, documentAnswerSources) {
|
|
678
673
|
const displayableDocuments = getDisplayableDocuments(applicant.questions, documentAnswerSources);
|
|
679
674
|
const documentValidations = [];
|
|
680
675
|
displayableDocuments.forEach((document) => {
|
|
681
|
-
const validationResult = getValidationResult(document
|
|
676
|
+
const validationResult = getValidationResult(document);
|
|
682
677
|
if (validationResult && (validationResult.status === "MISSING" /* MISSING */ || validationResult.status === "UNFIXABLE" /* UNFIXABLE */)) {
|
|
683
678
|
documentValidations.push({
|
|
684
679
|
name: document.question.question,
|
|
@@ -688,9 +683,9 @@ function validateApplicantDocuments(applicant, documentAnswerSources, applicants
|
|
|
688
683
|
});
|
|
689
684
|
return documentValidations;
|
|
690
685
|
}
|
|
691
|
-
function validateApplicant(applicant, questionAnswerSources, documentAnswerSources
|
|
692
|
-
const questionValidations = validateApplicantQuestions(applicant, questionAnswerSources
|
|
693
|
-
const documentValidations = validateApplicantDocuments(applicant, documentAnswerSources
|
|
686
|
+
function validateApplicant(applicant, questionAnswerSources, documentAnswerSources) {
|
|
687
|
+
const questionValidations = validateApplicantQuestions(applicant, questionAnswerSources);
|
|
688
|
+
const documentValidations = validateApplicantDocuments(applicant, documentAnswerSources);
|
|
694
689
|
const applicantValidations = getValidationErrors(applicant.application?.validations);
|
|
695
690
|
const hasBlockingIssues = questionValidations.some((q) => q.validationResult?.status === "MISSING" /* MISSING */ || q.validationResult?.status === "UNFIXABLE" /* UNFIXABLE */) || documentValidations.some((d) => d.validationResult?.status === "MISSING" /* MISSING */ || d.validationResult?.status === "UNFIXABLE" /* UNFIXABLE */) || applicantValidations?.status === "UNFIXABLE" /* UNFIXABLE */;
|
|
696
691
|
return {
|
|
@@ -702,10 +697,9 @@ function validateApplicant(applicant, questionAnswerSources, documentAnswerSourc
|
|
|
702
697
|
}
|
|
703
698
|
function validateAllApplicants(applicants, questionAnswerSources, documentAnswerSources) {
|
|
704
699
|
const applicantsArray = Array.isArray(applicants) ? applicants : Object.values(applicants);
|
|
705
|
-
const applicantsRecord = Array.isArray(applicants) ? Object.fromEntries(applicants.map((a) => [a.application_id, a])) : applicants;
|
|
706
700
|
const applicantValidations = [];
|
|
707
701
|
applicantsArray.forEach((applicant) => {
|
|
708
|
-
const validation = validateApplicant(applicant, questionAnswerSources, documentAnswerSources
|
|
702
|
+
const validation = validateApplicant(applicant, questionAnswerSources, documentAnswerSources);
|
|
709
703
|
if (!validation.isComplete) {
|
|
710
704
|
const applicantName = getFullName(
|
|
711
705
|
applicant.traveller.first_name,
|
|
@@ -1209,9 +1203,9 @@ var EDCFlowProvider = ({ children, orderId }) => {
|
|
|
1209
1203
|
const { updatedQuestionnaire, updatedApplicants } = runApplicantSideEffects(applicants2, questionnaireData, dynamicMap);
|
|
1210
1204
|
setQuestionnaire(updatedQuestionnaire);
|
|
1211
1205
|
setApplicants(updatedApplicants);
|
|
1212
|
-
const
|
|
1213
|
-
if (
|
|
1214
|
-
setActiveApplicant(
|
|
1206
|
+
const ids = Object.keys(updatedApplicants);
|
|
1207
|
+
if (ids.length > 0) {
|
|
1208
|
+
setActiveApplicant(ids[0]);
|
|
1215
1209
|
}
|
|
1216
1210
|
}
|
|
1217
1211
|
} catch (err) {
|
package/dist/index.mjs
CHANGED
|
@@ -532,11 +532,6 @@ var extractDefaultAnswer = (value) => {
|
|
|
532
532
|
const match = value.match(/^\{\{.*\}\}$/);
|
|
533
533
|
return match ? match[0] : null;
|
|
534
534
|
};
|
|
535
|
-
var isDynamicApplicantAnswerEmpty = (answer, applicants) => {
|
|
536
|
-
const match = answer.match(/^app_id_(.+)$/);
|
|
537
|
-
if (!match) return false;
|
|
538
|
-
return !(match[1] in applicants);
|
|
539
|
-
};
|
|
540
535
|
function getDisplayableQuestions(questions, questionAnswerSources) {
|
|
541
536
|
return questions.filter((q) => {
|
|
542
537
|
if (q.question.type === "DOCUMENT" /* DOCUMENT */) return false;
|
|
@@ -600,7 +595,7 @@ function getValidationErrors(validations) {
|
|
|
600
595
|
totalTimeSaved
|
|
601
596
|
};
|
|
602
597
|
}
|
|
603
|
-
function getValidationResult(question
|
|
598
|
+
function getValidationResult(question) {
|
|
604
599
|
const backendResult = getValidationErrors(question.answer_data?.validations);
|
|
605
600
|
if (backendResult && backendResult.status !== "PERFECT" /* PERFECT */) {
|
|
606
601
|
return backendResult;
|
|
@@ -609,7 +604,7 @@ function getValidationResult(question, applicants = {}) {
|
|
|
609
604
|
const isDocument = question.question.type === "DOCUMENT" /* DOCUMENT */;
|
|
610
605
|
const hasApproved = question.answer_data?.assets_id?.find((asset) => asset.status === "APPROVED");
|
|
611
606
|
const answer = question.answer_data?.answer?.[0];
|
|
612
|
-
const isAnswerEmpty = !answer || answer === "" || extractDefaultAnswer(answer) !== null
|
|
607
|
+
const isAnswerEmpty = !answer || answer === "" || extractDefaultAnswer(answer) !== null;
|
|
613
608
|
if (isDocument && !hasApproved || !isDocument && isAnswerEmpty) {
|
|
614
609
|
const answerRequiredItem = {
|
|
615
610
|
error_text: isDocument ? "Please upload the required document" : "Answer cannot be empty",
|
|
@@ -634,11 +629,11 @@ function getValidationResult(question, applicants = {}) {
|
|
|
634
629
|
totalTimeSaved: 0
|
|
635
630
|
};
|
|
636
631
|
}
|
|
637
|
-
function validateApplicantQuestions(applicant, questionAnswerSources
|
|
632
|
+
function validateApplicantQuestions(applicant, questionAnswerSources) {
|
|
638
633
|
const displayableQuestions = getDisplayableQuestions(applicant.questions, questionAnswerSources);
|
|
639
634
|
const questionValidations = [];
|
|
640
635
|
displayableQuestions.forEach((question) => {
|
|
641
|
-
const validationResult = getValidationResult(question
|
|
636
|
+
const validationResult = getValidationResult(question);
|
|
642
637
|
if (validationResult && (validationResult.status === "MISSING" /* MISSING */ || validationResult.status === "UNFIXABLE" /* UNFIXABLE */)) {
|
|
643
638
|
questionValidations.push({
|
|
644
639
|
name: question.question.question,
|
|
@@ -648,11 +643,11 @@ function validateApplicantQuestions(applicant, questionAnswerSources, applicants
|
|
|
648
643
|
});
|
|
649
644
|
return questionValidations;
|
|
650
645
|
}
|
|
651
|
-
function validateApplicantDocuments(applicant, documentAnswerSources
|
|
646
|
+
function validateApplicantDocuments(applicant, documentAnswerSources) {
|
|
652
647
|
const displayableDocuments = getDisplayableDocuments(applicant.questions, documentAnswerSources);
|
|
653
648
|
const documentValidations = [];
|
|
654
649
|
displayableDocuments.forEach((document) => {
|
|
655
|
-
const validationResult = getValidationResult(document
|
|
650
|
+
const validationResult = getValidationResult(document);
|
|
656
651
|
if (validationResult && (validationResult.status === "MISSING" /* MISSING */ || validationResult.status === "UNFIXABLE" /* UNFIXABLE */)) {
|
|
657
652
|
documentValidations.push({
|
|
658
653
|
name: document.question.question,
|
|
@@ -662,9 +657,9 @@ function validateApplicantDocuments(applicant, documentAnswerSources, applicants
|
|
|
662
657
|
});
|
|
663
658
|
return documentValidations;
|
|
664
659
|
}
|
|
665
|
-
function validateApplicant(applicant, questionAnswerSources, documentAnswerSources
|
|
666
|
-
const questionValidations = validateApplicantQuestions(applicant, questionAnswerSources
|
|
667
|
-
const documentValidations = validateApplicantDocuments(applicant, documentAnswerSources
|
|
660
|
+
function validateApplicant(applicant, questionAnswerSources, documentAnswerSources) {
|
|
661
|
+
const questionValidations = validateApplicantQuestions(applicant, questionAnswerSources);
|
|
662
|
+
const documentValidations = validateApplicantDocuments(applicant, documentAnswerSources);
|
|
668
663
|
const applicantValidations = getValidationErrors(applicant.application?.validations);
|
|
669
664
|
const hasBlockingIssues = questionValidations.some((q) => q.validationResult?.status === "MISSING" /* MISSING */ || q.validationResult?.status === "UNFIXABLE" /* UNFIXABLE */) || documentValidations.some((d) => d.validationResult?.status === "MISSING" /* MISSING */ || d.validationResult?.status === "UNFIXABLE" /* UNFIXABLE */) || applicantValidations?.status === "UNFIXABLE" /* UNFIXABLE */;
|
|
670
665
|
return {
|
|
@@ -676,10 +671,9 @@ function validateApplicant(applicant, questionAnswerSources, documentAnswerSourc
|
|
|
676
671
|
}
|
|
677
672
|
function validateAllApplicants(applicants, questionAnswerSources, documentAnswerSources) {
|
|
678
673
|
const applicantsArray = Array.isArray(applicants) ? applicants : Object.values(applicants);
|
|
679
|
-
const applicantsRecord = Array.isArray(applicants) ? Object.fromEntries(applicants.map((a) => [a.application_id, a])) : applicants;
|
|
680
674
|
const applicantValidations = [];
|
|
681
675
|
applicantsArray.forEach((applicant) => {
|
|
682
|
-
const validation = validateApplicant(applicant, questionAnswerSources, documentAnswerSources
|
|
676
|
+
const validation = validateApplicant(applicant, questionAnswerSources, documentAnswerSources);
|
|
683
677
|
if (!validation.isComplete) {
|
|
684
678
|
const applicantName = getFullName(
|
|
685
679
|
applicant.traveller.first_name,
|
|
@@ -1183,9 +1177,9 @@ var EDCFlowProvider = ({ children, orderId }) => {
|
|
|
1183
1177
|
const { updatedQuestionnaire, updatedApplicants } = runApplicantSideEffects(applicants2, questionnaireData, dynamicMap);
|
|
1184
1178
|
setQuestionnaire(updatedQuestionnaire);
|
|
1185
1179
|
setApplicants(updatedApplicants);
|
|
1186
|
-
const
|
|
1187
|
-
if (
|
|
1188
|
-
setActiveApplicant(
|
|
1180
|
+
const ids = Object.keys(updatedApplicants);
|
|
1181
|
+
if (ids.length > 0) {
|
|
1182
|
+
setActiveApplicant(ids[0]);
|
|
1189
1183
|
}
|
|
1190
1184
|
}
|
|
1191
1185
|
} catch (err) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smvtech/x-flux",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.15",
|
|
4
4
|
"description": "x-flux - A powerful React package for managing effective document collection flows, visa questionnaires, travellers, and applications",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|