udp-schema 2.3.0 → 2.5.0
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/onboarding-config.d.ts.map +1 -1
- package/dist/onboarding-config.js +13 -27
- package/dist/onboarding-config.js.map +1 -1
- package/dist/onboarding-form.d.ts +4 -4
- package/dist/profile-fields/01-profile.d.ts.map +1 -1
- package/dist/profile-fields/01-profile.js +4 -23
- package/dist/profile-fields/01-profile.js.map +1 -1
- package/dist/profile-fields/types.d.ts +4 -1
- package/dist/profile-fields/types.d.ts.map +1 -1
- package/dist/profile-fields/types.js.map +1 -1
- package/dist/progress-fields.d.ts.map +1 -1
- package/dist/progress-fields.js +1 -0
- package/dist/progress-fields.js.map +1 -1
- package/dist/step-01.schema.d.ts +2 -2
- package/dist/step-01.schema.d.ts.map +1 -1
- package/dist/step-01.schema.js +2 -10
- package/dist/step-01.schema.js.map +1 -1
- package/dist/step-06.schema.d.ts +2 -2
- package/dist/step-06.schema.d.ts.map +1 -1
- package/dist/step-06.schema.js +4 -2
- package/dist/step-06.schema.js.map +1 -1
- package/dist/validation.d.ts +9 -7
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +10 -173
- package/dist/validation.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboarding-config.d.ts","sourceRoot":"","sources":["../src/onboarding-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,MAAM,WAAW,wBAAwB;IACvC,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,cAAc,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,gDAAgD;AAChD,MAAM,WAAW,sBAAsB;IACrC,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAID,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,
|
|
1
|
+
{"version":3,"file":"onboarding-config.d.ts","sourceRoot":"","sources":["../src/onboarding-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,MAAM,WAAW,wBAAwB;IACvC,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,cAAc,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,gDAAgD;AAChD,MAAM,WAAW,sBAAsB;IACrC,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAID,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CA0gB1E,CAAC;AAIF,eAAO,MAAM,0BAA0B,EAAE,sBAAsB,EAoJ9D,CAAC;AAIF,gDAAgD;AAChD,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,wBAAwB,GAAG,SAAS,CAGtC;AAED,kCAAkC;AAClC,eAAO,MAAM,oBAAoB,QAAoC,CAAC;AAEtE,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,QAG/B,CAAC"}
|
|
@@ -17,35 +17,23 @@
|
|
|
17
17
|
// ─── Per-field onboarding metadata ──────────────────────────────────────────
|
|
18
18
|
export const UDP_ONBOARDING_FIELDS = {
|
|
19
19
|
// ── Step 1: Profile ──
|
|
20
|
-
|
|
21
|
-
title: '
|
|
22
|
-
subtitle: '
|
|
23
|
-
successMessage: '
|
|
24
|
-
required: true,
|
|
25
|
-
},
|
|
26
|
-
middleName: {
|
|
27
|
-
title: 'middleName.title',
|
|
28
|
-
subtitle: 'middleName.subtitle',
|
|
29
|
-
successMessage: 'middleName.success',
|
|
20
|
+
fullName: {
|
|
21
|
+
title: 'fullName.title',
|
|
22
|
+
subtitle: 'fullName.subtitle',
|
|
23
|
+
successMessage: 'fullName.success',
|
|
30
24
|
required: false,
|
|
31
25
|
},
|
|
32
|
-
lastName: {
|
|
33
|
-
title: 'lastName.title',
|
|
34
|
-
subtitle: 'lastName.subtitle',
|
|
35
|
-
successMessage: 'lastName.success',
|
|
36
|
-
required: true,
|
|
37
|
-
},
|
|
38
26
|
gender: {
|
|
39
27
|
title: 'gender.title',
|
|
40
28
|
subtitle: 'gender.subtitle',
|
|
41
29
|
successMessage: 'gender.success',
|
|
42
|
-
required:
|
|
30
|
+
required: false,
|
|
43
31
|
},
|
|
44
32
|
dateOfBirth: {
|
|
45
33
|
title: 'dateOfBirth.title',
|
|
46
34
|
subtitle: 'dateOfBirth.subtitle',
|
|
47
35
|
successMessage: 'dateOfBirth.success',
|
|
48
|
-
required:
|
|
36
|
+
required: false,
|
|
49
37
|
},
|
|
50
38
|
whatsappNumber: {
|
|
51
39
|
title: 'whatsappNumber.title',
|
|
@@ -57,7 +45,7 @@ export const UDP_ONBOARDING_FIELDS = {
|
|
|
57
45
|
title: 'primaryLanguage.title',
|
|
58
46
|
subtitle: 'primaryLanguage.subtitle',
|
|
59
47
|
successMessage: 'primaryLanguage.success',
|
|
60
|
-
required:
|
|
48
|
+
required: false,
|
|
61
49
|
},
|
|
62
50
|
secondaryLanguages: {
|
|
63
51
|
title: 'secondaryLanguages.title',
|
|
@@ -69,7 +57,7 @@ export const UDP_ONBOARDING_FIELDS = {
|
|
|
69
57
|
title: 'familyReligion.title',
|
|
70
58
|
subtitle: 'familyReligion.subtitle',
|
|
71
59
|
successMessage: 'familyReligion.success',
|
|
72
|
-
required:
|
|
60
|
+
required: false,
|
|
73
61
|
},
|
|
74
62
|
personalReligion: {
|
|
75
63
|
title: 'personalReligion.title',
|
|
@@ -81,13 +69,13 @@ export const UDP_ONBOARDING_FIELDS = {
|
|
|
81
69
|
title: 'reservationStatus.title',
|
|
82
70
|
subtitle: 'reservationStatus.subtitle',
|
|
83
71
|
successMessage: 'reservationStatus.success',
|
|
84
|
-
required:
|
|
72
|
+
required: false,
|
|
85
73
|
},
|
|
86
74
|
minorityStatus: {
|
|
87
75
|
title: 'minorityStatus.title',
|
|
88
76
|
subtitle: 'minorityStatus.subtitle',
|
|
89
77
|
successMessage: 'minorityStatus.success',
|
|
90
|
-
required:
|
|
78
|
+
required: false,
|
|
91
79
|
},
|
|
92
80
|
// ── Step 2: Political Association & History ──
|
|
93
81
|
politicalSpectrum: {
|
|
@@ -218,7 +206,7 @@ export const UDP_ONBOARDING_FIELDS = {
|
|
|
218
206
|
title: 'highestQualification.title',
|
|
219
207
|
subtitle: 'highestQualification.subtitle',
|
|
220
208
|
successMessage: 'highestQualification.success',
|
|
221
|
-
required:
|
|
209
|
+
required: false,
|
|
222
210
|
},
|
|
223
211
|
education10th: {
|
|
224
212
|
title: 'education10th.title',
|
|
@@ -457,7 +445,7 @@ export const UDP_ONBOARDING_FIELDS = {
|
|
|
457
445
|
title: 'currentAddress.title',
|
|
458
446
|
subtitle: 'currentAddress.subtitle',
|
|
459
447
|
successMessage: 'currentAddress.success',
|
|
460
|
-
required:
|
|
448
|
+
required: false,
|
|
461
449
|
},
|
|
462
450
|
permanentAddress: {
|
|
463
451
|
title: 'permanentAddress.title',
|
|
@@ -545,9 +533,7 @@ export const UDP_ONBOARDING_STEP_GROUPS = [
|
|
|
545
533
|
label: 'steps.profile',
|
|
546
534
|
icon: '📝',
|
|
547
535
|
fields: [
|
|
548
|
-
'
|
|
549
|
-
'middleName',
|
|
550
|
-
'lastName',
|
|
536
|
+
'fullName',
|
|
551
537
|
'gender',
|
|
552
538
|
'dateOfBirth',
|
|
553
539
|
'whatsappNumber',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboarding-config.js","sourceRoot":"","sources":["../src/onboarding-config.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * UDP Onboarding Field Configuration\r\n * ====================================\r\n * Single source of truth for all per-field onboarding metadata.\r\n * Both frontend and backend import this.\r\n *\r\n * IMPORTANT: All string properties (title, subtitle, successMessage,\r\n * step group label) are i18n KEYS, not display text. The frontend resolves\r\n * them via useTranslations(\"udp\") → t(config.title).\r\n *\r\n * Translation files:\r\n * - messages/en/udp.json (English — under \"udp\" root key)\r\n * - messages/hi/udp.json (Hindi — under \"udp\" root key)\r\n *\r\n * @module udp-schema/onboarding-config\r\n */\r\n\r\n// ─── Types ───────────────────────────────────────────────────────────────────\r\n\r\nexport interface UdpOnboardingFieldConfig {\r\n /** i18n key for the question heading (resolved via t(title)) */\r\n title: string;\r\n /** i18n key for help text below the heading */\r\n subtitle?: string;\r\n /** i18n key for toast message on successful save */\r\n successMessage: string;\r\n /** Whether the field is required to proceed */\r\n required: boolean;\r\n}\r\n\r\n/** Step grouping for the UDP onboarding flow */\r\nexport interface UdpOnboardingStepGroup {\r\n /** i18n key for section label */\r\n label: string;\r\n /** Emoji character (e.g., '📝', '🏛️') rendered directly */\r\n icon: string;\r\n /** Ordered list of field keys in this section */\r\n fields: string[];\r\n}\r\n\r\n// ─── Per-field onboarding metadata ──────────────────────────────────────────\r\n\r\nexport const UDP_ONBOARDING_FIELDS: Record<string, UdpOnboardingFieldConfig> = {\r\n // ── Step 1: Profile ──\r\n firstName: {\r\n title: 'firstName.title',\r\n subtitle: 'firstName.subtitle',\r\n successMessage: 'firstName.success',\r\n required: true,\r\n },\r\n middleName: {\r\n title: 'middleName.title',\r\n subtitle: 'middleName.subtitle',\r\n successMessage: 'middleName.success',\r\n required: false,\r\n },\r\n lastName: {\r\n title: 'lastName.title',\r\n subtitle: 'lastName.subtitle',\r\n successMessage: 'lastName.success',\r\n required: true,\r\n },\r\n gender: {\r\n title: 'gender.title',\r\n subtitle: 'gender.subtitle',\r\n successMessage: 'gender.success',\r\n required: true,\r\n },\r\n dateOfBirth: {\r\n title: 'dateOfBirth.title',\r\n subtitle: 'dateOfBirth.subtitle',\r\n successMessage: 'dateOfBirth.success',\r\n required: true,\r\n },\r\n whatsappNumber: {\r\n title: 'whatsappNumber.title',\r\n subtitle: 'whatsappNumber.subtitle',\r\n successMessage: 'whatsappNumber.success',\r\n required: false,\r\n },\r\n primaryLanguage: {\r\n title: 'primaryLanguage.title',\r\n subtitle: 'primaryLanguage.subtitle',\r\n successMessage: 'primaryLanguage.success',\r\n required: true,\r\n },\r\n secondaryLanguages: {\r\n title: 'secondaryLanguages.title',\r\n subtitle: 'secondaryLanguages.subtitle',\r\n successMessage: 'secondaryLanguages.success',\r\n required: false,\r\n },\r\n familyReligion: {\r\n title: 'familyReligion.title',\r\n subtitle: 'familyReligion.subtitle',\r\n successMessage: 'familyReligion.success',\r\n required: true,\r\n },\r\n personalReligion: {\r\n title: 'personalReligion.title',\r\n subtitle: 'personalReligion.subtitle',\r\n successMessage: 'personalReligion.success',\r\n required: false,\r\n },\r\n reservationStatus: {\r\n title: 'reservationStatus.title',\r\n subtitle: 'reservationStatus.subtitle',\r\n successMessage: 'reservationStatus.success',\r\n required: true,\r\n },\r\n minorityStatus: {\r\n title: 'minorityStatus.title',\r\n subtitle: 'minorityStatus.subtitle',\r\n successMessage: 'minorityStatus.success',\r\n required: true,\r\n },\r\n\r\n // ── Step 2: Political Association & History ──\r\n politicalSpectrum: {\r\n title: 'politicalSpectrum.title',\r\n subtitle: 'politicalSpectrum.subtitle',\r\n successMessage: 'politicalSpectrum.success',\r\n required: false,\r\n },\r\n selfPartyAssociation: {\r\n title: 'selfPartyAssociation.title',\r\n subtitle: 'selfPartyAssociation.subtitle',\r\n successMessage: 'selfPartyAssociation.success',\r\n required: false,\r\n },\r\n familyPartyAssociation: {\r\n title: 'familyPartyAssociation.title',\r\n subtitle: 'familyPartyAssociation.subtitle',\r\n successMessage: 'familyPartyAssociation.success',\r\n required: false,\r\n },\r\n publicOfficeAndElections: {\r\n title: 'publicOfficeAndElections.title',\r\n subtitle: 'publicOfficeAndElections.subtitle',\r\n successMessage: 'publicOfficeAndElections.success',\r\n required: false,\r\n },\r\n networkAndCivicEngagement: {\r\n title: 'networkAndCivicEngagement.title',\r\n subtitle: 'networkAndCivicEngagement.subtitle',\r\n successMessage: 'networkAndCivicEngagement.success',\r\n required: false,\r\n },\r\n\r\n // ── Step 3: Electoral Behaviour ──\r\n epicNumber: {\r\n title: 'epicNumber.title',\r\n subtitle: 'epicNumber.subtitle',\r\n successMessage: 'epicNumber.success',\r\n required: false,\r\n },\r\n willVoteThisTime: {\r\n title: 'willVoteThisTime.title',\r\n subtitle: 'willVoteThisTime.subtitle',\r\n successMessage: 'willVoteThisTime.success',\r\n required: false,\r\n },\r\n didVoteLastTime: {\r\n title: 'didVoteLastTime.title',\r\n subtitle: 'didVoteLastTime.subtitle',\r\n successMessage: 'didVoteLastTime.success',\r\n required: false,\r\n },\r\n votingFrequency: {\r\n title: 'votingFrequency.title',\r\n subtitle: 'votingFrequency.subtitle',\r\n successMessage: 'votingFrequency.success',\r\n required: false,\r\n },\r\n primaryVotingIssues: {\r\n title: 'primaryVotingIssues.title',\r\n subtitle: 'primaryVotingIssues.subtitle',\r\n successMessage: 'primaryVotingIssues.success',\r\n required: false,\r\n },\r\n\r\n // ── Step 4: Leadership & Ambitions ──\r\n participateInRevolution: {\r\n title: 'participateInRevolution.title',\r\n subtitle: 'participateInRevolution.subtitle',\r\n successMessage: 'participateInRevolution.success',\r\n required: false,\r\n },\r\n desiredPoliticalPosition: {\r\n title: 'desiredPoliticalPosition.title',\r\n subtitle: 'desiredPoliticalPosition.subtitle',\r\n successMessage: 'desiredPoliticalPosition.success',\r\n required: false,\r\n },\r\n leadershipSkillset: {\r\n title: 'leadershipSkillset.title',\r\n subtitle: 'leadershipSkillset.subtitle',\r\n successMessage: 'leadershipSkillset.success',\r\n required: false,\r\n },\r\n politicalExposure: {\r\n title: 'politicalExposure.title',\r\n subtitle: 'politicalExposure.subtitle',\r\n successMessage: 'politicalExposure.success',\r\n required: false,\r\n },\r\n comfortWithVisibility: {\r\n title: 'comfortWithVisibility.title',\r\n subtitle: 'comfortWithVisibility.subtitle',\r\n successMessage: 'comfortWithVisibility.success',\r\n required: false,\r\n },\r\n socialInfluenceLevel: {\r\n title: 'socialInfluenceLevel.title',\r\n subtitle: 'socialInfluenceLevel.subtitle',\r\n successMessage: 'socialInfluenceLevel.success',\r\n required: false,\r\n },\r\n pastExperience: {\r\n title: 'pastExperience.title',\r\n subtitle: 'pastExperience.subtitle',\r\n successMessage: 'pastExperience.success',\r\n required: false,\r\n },\r\n changesYouWantToBring: {\r\n title: 'changesYouWantToBring.title',\r\n subtitle: 'changesYouWantToBring.subtitle',\r\n successMessage: 'changesYouWantToBring.success',\r\n required: false,\r\n },\r\n\r\n // ── Step 5: Psychological Assessment ──\r\n mbtiType: {\r\n title: 'mbtiType.title',\r\n subtitle: 'mbtiType.subtitle',\r\n successMessage: 'mbtiType.success',\r\n required: false,\r\n },\r\n oceanScores: {\r\n title: 'oceanScores.title',\r\n subtitle: 'oceanScores.subtitle',\r\n successMessage: 'oceanScores.success',\r\n required: false,\r\n },\r\n\r\n // ── Step 6: Education ──\r\n highestQualification: {\r\n title: 'highestQualification.title',\r\n subtitle: 'highestQualification.subtitle',\r\n successMessage: 'highestQualification.success',\r\n required: true,\r\n },\r\n education10th: {\r\n title: 'education10th.title',\r\n subtitle: 'education10th.subtitle',\r\n successMessage: 'education10th.success',\r\n required: false,\r\n },\r\n education12th: {\r\n title: 'education12th.title',\r\n subtitle: 'education12th.subtitle',\r\n successMessage: 'education12th.success',\r\n required: false,\r\n },\r\n diplomas: {\r\n title: 'diplomas.title',\r\n subtitle: 'diplomas.subtitle',\r\n successMessage: 'diplomas.success',\r\n required: false,\r\n },\r\n graduations: {\r\n title: 'graduations.title',\r\n subtitle: 'graduations.subtitle',\r\n successMessage: 'graduations.success',\r\n required: false,\r\n },\r\n postGraduations: {\r\n title: 'postGraduations.title',\r\n subtitle: 'postGraduations.subtitle',\r\n successMessage: 'postGraduations.success',\r\n required: false,\r\n },\r\n doctorates: {\r\n title: 'doctorates.title',\r\n subtitle: 'doctorates.subtitle',\r\n successMessage: 'doctorates.success',\r\n required: false,\r\n },\r\n postDoctorates: {\r\n title: 'postDoctorates.title',\r\n subtitle: 'postDoctorates.subtitle',\r\n successMessage: 'postDoctorates.success',\r\n required: false,\r\n },\r\n otherCertificates: {\r\n title: 'otherCertificates.title',\r\n subtitle: 'otherCertificates.subtitle',\r\n successMessage: 'otherCertificates.success',\r\n required: false,\r\n },\r\n educationNotes: {\r\n title: 'educationNotes.title',\r\n subtitle: 'educationNotes.subtitle',\r\n successMessage: 'educationNotes.success',\r\n required: false,\r\n },\r\n\r\n // ── Step 7: Employment & Occupation ──\r\n employmentStatus: {\r\n title: 'employmentStatus.title',\r\n subtitle: 'employmentStatus.subtitle',\r\n successMessage: 'employmentStatus.success',\r\n required: false,\r\n },\r\n occupation: {\r\n title: 'occupation.title',\r\n subtitle: 'occupation.subtitle',\r\n successMessage: 'occupation.success',\r\n required: false,\r\n },\r\n workShift: {\r\n title: 'workShift.title',\r\n subtitle: 'workShift.subtitle',\r\n successMessage: 'workShift.success',\r\n required: false,\r\n },\r\n comfortableWithShift: {\r\n title: 'comfortableWithShift.title',\r\n subtitle: 'comfortableWithShift.subtitle',\r\n successMessage: 'comfortableWithShift.success',\r\n required: false,\r\n },\r\n desiredShift: {\r\n title: 'desiredShift.title',\r\n subtitle: 'desiredShift.subtitle',\r\n successMessage: 'desiredShift.success',\r\n required: false,\r\n },\r\n incomeRange: {\r\n title: 'incomeRange.title',\r\n subtitle: 'incomeRange.subtitle',\r\n successMessage: 'incomeRange.success',\r\n required: false,\r\n },\r\n dreamOccupation: {\r\n title: 'dreamOccupation.title',\r\n subtitle: 'dreamOccupation.subtitle',\r\n successMessage: 'dreamOccupation.success',\r\n required: false,\r\n },\r\n\r\n // ── Step 8: Neurodiversity ──\r\n neurodiverseIdentity: {\r\n title: 'neurodiverseIdentity.title',\r\n subtitle: 'neurodiverseIdentity.subtitle',\r\n successMessage: 'neurodiverseIdentity.success',\r\n required: false,\r\n },\r\n conditions: {\r\n title: 'conditions.title',\r\n subtitle: 'conditions.subtitle',\r\n successMessage: 'conditions.success',\r\n required: false,\r\n },\r\n sensoryPreferences: {\r\n title: 'sensoryPreferences.title',\r\n subtitle: 'sensoryPreferences.subtitle',\r\n successMessage: 'sensoryPreferences.success',\r\n required: false,\r\n },\r\n learningStyle: {\r\n title: 'learningStyle.title',\r\n subtitle: 'learningStyle.subtitle',\r\n successMessage: 'learningStyle.success',\r\n required: false,\r\n },\r\n communicationPreference: {\r\n title: 'communicationPreference.title',\r\n subtitle: 'communicationPreference.subtitle',\r\n successMessage: 'communicationPreference.success',\r\n required: false,\r\n },\r\n supportNeeds: {\r\n title: 'supportNeeds.title',\r\n subtitle: 'supportNeeds.subtitle',\r\n successMessage: 'supportNeeds.success',\r\n required: false,\r\n },\r\n\r\n // ── Step 9: Health & Lifestyle ──\r\n disabilityStatus: {\r\n title: 'disabilityStatus.title',\r\n subtitle: 'disabilityStatus.subtitle',\r\n successMessage: 'disabilityStatus.success',\r\n required: false,\r\n },\r\n generalHealth: {\r\n title: 'generalHealth.title',\r\n subtitle: 'generalHealth.subtitle',\r\n successMessage: 'generalHealth.success',\r\n required: false,\r\n },\r\n healthInsurance: {\r\n title: 'healthInsurance.title',\r\n subtitle: 'healthInsurance.subtitle',\r\n successMessage: 'healthInsurance.success',\r\n required: false,\r\n },\r\n diet: {\r\n title: 'diet.title',\r\n subtitle: 'diet.subtitle',\r\n successMessage: 'diet.success',\r\n required: false,\r\n },\r\n physicalActivity: {\r\n title: 'physicalActivity.title',\r\n subtitle: 'physicalActivity.subtitle',\r\n successMessage: 'physicalActivity.success',\r\n required: false,\r\n },\r\n sleepQuality: {\r\n title: 'sleepQuality.title',\r\n subtitle: 'sleepQuality.subtitle',\r\n successMessage: 'sleepQuality.success',\r\n required: false,\r\n },\r\n substanceUse: {\r\n title: 'substanceUse.title',\r\n subtitle: 'substanceUse.subtitle',\r\n successMessage: 'substanceUse.success',\r\n required: false,\r\n },\r\n stressLevel: {\r\n title: 'stressLevel.title',\r\n subtitle: 'stressLevel.subtitle',\r\n successMessage: 'stressLevel.success',\r\n required: false,\r\n },\r\n\r\n // ── Step 10: World View & Experience ──\r\n viewOnAnimalCruelty: {\r\n title: 'viewOnAnimalCruelty.title',\r\n subtitle: 'viewOnAnimalCruelty.subtitle',\r\n successMessage: 'viewOnAnimalCruelty.success',\r\n required: false,\r\n },\r\n viewOnLgbtqStatements: {\r\n title: 'viewOnLgbtqStatements.title',\r\n subtitle: 'viewOnLgbtqStatements.subtitle',\r\n successMessage: 'viewOnLgbtqStatements.success',\r\n required: false,\r\n },\r\n viewOnLgbtqOpinion: {\r\n title: 'viewOnLgbtqOpinion.title',\r\n subtitle: 'viewOnLgbtqOpinion.subtitle',\r\n successMessage: 'viewOnLgbtqOpinion.success',\r\n required: false,\r\n },\r\n viewOnTransgenderInclusion: {\r\n title: 'viewOnTransgenderInclusion.title',\r\n subtitle: 'viewOnTransgenderInclusion.subtitle',\r\n successMessage: 'viewOnTransgenderInclusion.success',\r\n required: false,\r\n },\r\n viewOnTransgenderOpinion: {\r\n title: 'viewOnTransgenderOpinion.title',\r\n subtitle: 'viewOnTransgenderOpinion.subtitle',\r\n successMessage: 'viewOnTransgenderOpinion.success',\r\n required: false,\r\n },\r\n facingCasteDiscrimination: {\r\n title: 'facingCasteDiscrimination.title',\r\n subtitle: 'facingCasteDiscrimination.subtitle',\r\n successMessage: 'facingCasteDiscrimination.success',\r\n required: false,\r\n },\r\n casteDiscriminationPlaces: {\r\n title: 'casteDiscriminationPlaces.title',\r\n subtitle: 'casteDiscriminationPlaces.subtitle',\r\n successMessage: 'casteDiscriminationPlaces.success',\r\n required: false,\r\n },\r\n viewOnGenderEquality: {\r\n title: 'viewOnGenderEquality.title',\r\n subtitle: 'viewOnGenderEquality.subtitle',\r\n successMessage: 'viewOnGenderEquality.success',\r\n required: false,\r\n },\r\n\r\n // ── Step 11: Residence & Address ──\r\n currentAddress: {\r\n title: 'currentAddress.title',\r\n subtitle: 'currentAddress.subtitle',\r\n successMessage: 'currentAddress.success',\r\n required: true,\r\n },\r\n permanentAddress: {\r\n title: 'permanentAddress.title',\r\n subtitle: 'permanentAddress.subtitle',\r\n successMessage: 'permanentAddress.success',\r\n required: false,\r\n },\r\n homeNativePlace: {\r\n title: 'homeNativePlace.title',\r\n subtitle: 'homeNativePlace.subtitle',\r\n successMessage: 'homeNativePlace.success',\r\n required: false,\r\n },\r\n ancestralPlace: {\r\n title: 'ancestralPlace.title',\r\n subtitle: 'ancestralPlace.subtitle',\r\n successMessage: 'ancestralPlace.success',\r\n required: false,\r\n },\r\n\r\n // ── Step 12: Household & Economic Profile ──\r\n maritalStatus: {\r\n title: 'maritalStatus.title',\r\n subtitle: 'maritalStatus.subtitle',\r\n successMessage: 'maritalStatus.success',\r\n required: false,\r\n },\r\n familyMembers: {\r\n title: 'familyMembers.title',\r\n subtitle: 'familyMembers.subtitle',\r\n successMessage: 'familyMembers.success',\r\n required: false,\r\n },\r\n numberOfDependents: {\r\n title: 'numberOfDependents.title',\r\n subtitle: 'numberOfDependents.subtitle',\r\n successMessage: 'numberOfDependents.success',\r\n required: false,\r\n },\r\n housingType: {\r\n title: 'housingType.title',\r\n subtitle: 'housingType.subtitle',\r\n successMessage: 'housingType.success',\r\n required: false,\r\n },\r\n householdIncome: {\r\n title: 'householdIncome.title',\r\n subtitle: 'householdIncome.subtitle',\r\n successMessage: 'householdIncome.success',\r\n required: false,\r\n },\r\n bplCard: {\r\n title: 'bplCard.title',\r\n subtitle: 'bplCard.subtitle',\r\n successMessage: 'bplCard.success',\r\n required: false,\r\n },\r\n digitalAccess: {\r\n title: 'digitalAccess.title',\r\n subtitle: 'digitalAccess.subtitle',\r\n successMessage: 'digitalAccess.success',\r\n required: false,\r\n },\r\n migrationStatus: {\r\n title: 'migrationStatus.title',\r\n subtitle: 'migrationStatus.subtitle',\r\n successMessage: 'migrationStatus.success',\r\n required: false,\r\n },\r\n landOwnership: {\r\n title: 'landOwnership.title',\r\n subtitle: 'landOwnership.subtitle',\r\n successMessage: 'landOwnership.success',\r\n required: false,\r\n },\r\n primaryIncomeSource: {\r\n title: 'primaryIncomeSource.title',\r\n subtitle: 'primaryIncomeSource.subtitle',\r\n successMessage: 'primaryIncomeSource.success',\r\n required: false,\r\n },\r\n};\r\n\r\n// ─── Step grouping ──────────────────────────────────────────────────────────\r\n\r\nexport const UDP_ONBOARDING_STEP_GROUPS: UdpOnboardingStepGroup[] = [\r\n {\r\n label: 'steps.profile',\r\n icon: '📝',\r\n fields: [\r\n 'firstName',\r\n 'middleName',\r\n 'lastName',\r\n 'gender',\r\n 'dateOfBirth',\r\n 'whatsappNumber',\r\n 'primaryLanguage',\r\n 'secondaryLanguages',\r\n 'familyReligion',\r\n 'personalReligion',\r\n 'reservationStatus',\r\n 'minorityStatus',\r\n ],\r\n },\r\n {\r\n label: 'steps.politicalAssociation',\r\n icon: '🏛️',\r\n fields: [\r\n 'politicalSpectrum',\r\n 'selfPartyAssociation',\r\n 'familyPartyAssociation',\r\n 'publicOfficeAndElections',\r\n 'networkAndCivicEngagement',\r\n ],\r\n },\r\n {\r\n label: 'steps.electoralBehaviour',\r\n icon: '🗳️',\r\n fields: [\r\n 'epicNumber',\r\n 'willVoteThisTime',\r\n 'didVoteLastTime',\r\n 'votingFrequency',\r\n 'primaryVotingIssues',\r\n ],\r\n },\r\n {\r\n label: 'steps.leadershipAmbitions',\r\n icon: '👑',\r\n fields: [\r\n 'participateInRevolution',\r\n 'desiredPoliticalPosition',\r\n 'leadershipSkillset',\r\n 'politicalExposure',\r\n 'comfortWithVisibility',\r\n 'socialInfluenceLevel',\r\n 'pastExperience',\r\n 'changesYouWantToBring',\r\n ],\r\n },\r\n {\r\n label: 'steps.psychologicalAssessment',\r\n icon: '🧩',\r\n fields: ['mbtiType', 'oceanScores'],\r\n },\r\n {\r\n label: 'steps.education',\r\n icon: '🎓',\r\n fields: [\r\n 'highestQualification',\r\n 'education10th',\r\n 'education12th',\r\n 'diplomas',\r\n 'graduations',\r\n 'postGraduations',\r\n 'doctorates',\r\n 'postDoctorates',\r\n 'otherCertificates',\r\n 'educationNotes',\r\n ],\r\n },\r\n {\r\n label: 'steps.employment',\r\n icon: '💼',\r\n fields: [\r\n 'employmentStatus',\r\n 'occupation',\r\n 'workShift',\r\n 'comfortableWithShift',\r\n 'desiredShift',\r\n 'incomeRange',\r\n 'dreamOccupation',\r\n ],\r\n },\r\n {\r\n label: 'steps.neurodiversity',\r\n icon: '🧠',\r\n fields: [\r\n 'neurodiverseIdentity',\r\n 'conditions',\r\n 'sensoryPreferences',\r\n 'learningStyle',\r\n 'communicationPreference',\r\n 'supportNeeds',\r\n ],\r\n },\r\n {\r\n label: 'steps.healthLifestyle',\r\n icon: '🏥',\r\n fields: [\r\n 'disabilityStatus',\r\n 'generalHealth',\r\n 'healthInsurance',\r\n 'diet',\r\n 'physicalActivity',\r\n 'sleepQuality',\r\n 'substanceUse',\r\n 'stressLevel',\r\n ],\r\n },\r\n {\r\n label: 'steps.worldView',\r\n icon: '🌿',\r\n fields: [\r\n 'viewOnAnimalCruelty',\r\n 'viewOnLgbtqStatements',\r\n 'viewOnLgbtqOpinion',\r\n 'viewOnTransgenderInclusion',\r\n 'viewOnTransgenderOpinion',\r\n 'facingCasteDiscrimination',\r\n 'casteDiscriminationPlaces',\r\n 'viewOnGenderEquality',\r\n ],\r\n },\r\n {\r\n label: 'steps.residence',\r\n icon: '🏠',\r\n fields: ['currentAddress', 'permanentAddress', 'homeNativePlace', 'ancestralPlace'],\r\n },\r\n {\r\n label: 'steps.household',\r\n icon: '🏡',\r\n fields: [\r\n 'maritalStatus',\r\n 'familyMembers',\r\n 'numberOfDependents',\r\n 'housingType',\r\n 'householdIncome',\r\n 'bplCard',\r\n 'digitalAccess',\r\n 'migrationStatus',\r\n 'landOwnership',\r\n 'primaryIncomeSource',\r\n ],\r\n },\r\n];\r\n\r\n// ─── Helpers ─────────────────────────────────────────────────────────────────\r\n\r\n/** Get onboarding config for a single field. */\r\nexport function getUdpOnboardingFieldConfig(\r\n fieldKey: string | undefined,\r\n): UdpOnboardingFieldConfig | undefined {\r\n if (!fieldKey) return undefined;\r\n return UDP_ONBOARDING_FIELDS[fieldKey];\r\n}\r\n\r\n/** Total number of main steps. */\r\nexport const UDP_TOTAL_MAIN_STEPS = UDP_ONBOARDING_STEP_GROUPS.length;\r\n\r\n/** Total number of sub-steps across all main steps. */\r\nexport const UDP_TOTAL_SUB_STEPS = UDP_ONBOARDING_STEP_GROUPS.reduce(\r\n (sum, g) => sum + g.fields.length,\r\n 0,\r\n);\r\n"]}
|
|
1
|
+
{"version":3,"file":"onboarding-config.js","sourceRoot":"","sources":["../src/onboarding-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAyBH,+EAA+E;AAE/E,MAAM,CAAC,MAAM,qBAAqB,GAA6C;IAC7E,wBAAwB;IACxB,QAAQ,EAAE;QACR,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE,mBAAmB;QAC7B,cAAc,EAAE,kBAAkB;QAClC,QAAQ,EAAE,KAAK;KAChB;IACD,MAAM,EAAE;QACN,KAAK,EAAE,cAAc;QACrB,QAAQ,EAAE,iBAAiB;QAC3B,cAAc,EAAE,gBAAgB;QAChC,QAAQ,EAAE,KAAK;KAChB;IACD,WAAW,EAAE;QACX,KAAK,EAAE,mBAAmB;QAC1B,QAAQ,EAAE,sBAAsB;QAChC,cAAc,EAAE,qBAAqB;QACrC,QAAQ,EAAE,KAAK;KAChB;IACD,cAAc,EAAE;QACd,KAAK,EAAE,sBAAsB;QAC7B,QAAQ,EAAE,yBAAyB;QACnC,cAAc,EAAE,wBAAwB;QACxC,QAAQ,EAAE,KAAK;KAChB;IACD,eAAe,EAAE;QACf,KAAK,EAAE,uBAAuB;QAC9B,QAAQ,EAAE,0BAA0B;QACpC,cAAc,EAAE,yBAAyB;QACzC,QAAQ,EAAE,KAAK;KAChB;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,0BAA0B;QACjC,QAAQ,EAAE,6BAA6B;QACvC,cAAc,EAAE,4BAA4B;QAC5C,QAAQ,EAAE,KAAK;KAChB;IACD,cAAc,EAAE;QACd,KAAK,EAAE,sBAAsB;QAC7B,QAAQ,EAAE,yBAAyB;QACnC,cAAc,EAAE,wBAAwB;QACxC,QAAQ,EAAE,KAAK;KAChB;IACD,gBAAgB,EAAE;QAChB,KAAK,EAAE,wBAAwB;QAC/B,QAAQ,EAAE,2BAA2B;QACrC,cAAc,EAAE,0BAA0B;QAC1C,QAAQ,EAAE,KAAK;KAChB;IACD,iBAAiB,EAAE;QACjB,KAAK,EAAE,yBAAyB;QAChC,QAAQ,EAAE,4BAA4B;QACtC,cAAc,EAAE,2BAA2B;QAC3C,QAAQ,EAAE,KAAK;KAChB;IACD,cAAc,EAAE;QACd,KAAK,EAAE,sBAAsB;QAC7B,QAAQ,EAAE,yBAAyB;QACnC,cAAc,EAAE,wBAAwB;QACxC,QAAQ,EAAE,KAAK;KAChB;IAED,gDAAgD;IAChD,iBAAiB,EAAE;QACjB,KAAK,EAAE,yBAAyB;QAChC,QAAQ,EAAE,4BAA4B;QACtC,cAAc,EAAE,2BAA2B;QAC3C,QAAQ,EAAE,KAAK;KAChB;IACD,oBAAoB,EAAE;QACpB,KAAK,EAAE,4BAA4B;QACnC,QAAQ,EAAE,+BAA+B;QACzC,cAAc,EAAE,8BAA8B;QAC9C,QAAQ,EAAE,KAAK;KAChB;IACD,sBAAsB,EAAE;QACtB,KAAK,EAAE,8BAA8B;QACrC,QAAQ,EAAE,iCAAiC;QAC3C,cAAc,EAAE,gCAAgC;QAChD,QAAQ,EAAE,KAAK;KAChB;IACD,wBAAwB,EAAE;QACxB,KAAK,EAAE,gCAAgC;QACvC,QAAQ,EAAE,mCAAmC;QAC7C,cAAc,EAAE,kCAAkC;QAClD,QAAQ,EAAE,KAAK;KAChB;IACD,yBAAyB,EAAE;QACzB,KAAK,EAAE,iCAAiC;QACxC,QAAQ,EAAE,oCAAoC;QAC9C,cAAc,EAAE,mCAAmC;QACnD,QAAQ,EAAE,KAAK;KAChB;IAED,oCAAoC;IACpC,UAAU,EAAE;QACV,KAAK,EAAE,kBAAkB;QACzB,QAAQ,EAAE,qBAAqB;QAC/B,cAAc,EAAE,oBAAoB;QACpC,QAAQ,EAAE,KAAK;KAChB;IACD,gBAAgB,EAAE;QAChB,KAAK,EAAE,wBAAwB;QAC/B,QAAQ,EAAE,2BAA2B;QACrC,cAAc,EAAE,0BAA0B;QAC1C,QAAQ,EAAE,KAAK;KAChB;IACD,eAAe,EAAE;QACf,KAAK,EAAE,uBAAuB;QAC9B,QAAQ,EAAE,0BAA0B;QACpC,cAAc,EAAE,yBAAyB;QACzC,QAAQ,EAAE,KAAK;KAChB;IACD,eAAe,EAAE;QACf,KAAK,EAAE,uBAAuB;QAC9B,QAAQ,EAAE,0BAA0B;QACpC,cAAc,EAAE,yBAAyB;QACzC,QAAQ,EAAE,KAAK;KAChB;IACD,mBAAmB,EAAE;QACnB,KAAK,EAAE,2BAA2B;QAClC,QAAQ,EAAE,8BAA8B;QACxC,cAAc,EAAE,6BAA6B;QAC7C,QAAQ,EAAE,KAAK;KAChB;IAED,uCAAuC;IACvC,uBAAuB,EAAE;QACvB,KAAK,EAAE,+BAA+B;QACtC,QAAQ,EAAE,kCAAkC;QAC5C,cAAc,EAAE,iCAAiC;QACjD,QAAQ,EAAE,KAAK;KAChB;IACD,wBAAwB,EAAE;QACxB,KAAK,EAAE,gCAAgC;QACvC,QAAQ,EAAE,mCAAmC;QAC7C,cAAc,EAAE,kCAAkC;QAClD,QAAQ,EAAE,KAAK;KAChB;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,0BAA0B;QACjC,QAAQ,EAAE,6BAA6B;QACvC,cAAc,EAAE,4BAA4B;QAC5C,QAAQ,EAAE,KAAK;KAChB;IACD,iBAAiB,EAAE;QACjB,KAAK,EAAE,yBAAyB;QAChC,QAAQ,EAAE,4BAA4B;QACtC,cAAc,EAAE,2BAA2B;QAC3C,QAAQ,EAAE,KAAK;KAChB;IACD,qBAAqB,EAAE;QACrB,KAAK,EAAE,6BAA6B;QACpC,QAAQ,EAAE,gCAAgC;QAC1C,cAAc,EAAE,+BAA+B;QAC/C,QAAQ,EAAE,KAAK;KAChB;IACD,oBAAoB,EAAE;QACpB,KAAK,EAAE,4BAA4B;QACnC,QAAQ,EAAE,+BAA+B;QACzC,cAAc,EAAE,8BAA8B;QAC9C,QAAQ,EAAE,KAAK;KAChB;IACD,cAAc,EAAE;QACd,KAAK,EAAE,sBAAsB;QAC7B,QAAQ,EAAE,yBAAyB;QACnC,cAAc,EAAE,wBAAwB;QACxC,QAAQ,EAAE,KAAK;KAChB;IACD,qBAAqB,EAAE;QACrB,KAAK,EAAE,6BAA6B;QACpC,QAAQ,EAAE,gCAAgC;QAC1C,cAAc,EAAE,+BAA+B;QAC/C,QAAQ,EAAE,KAAK;KAChB;IAED,yCAAyC;IACzC,QAAQ,EAAE;QACR,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE,mBAAmB;QAC7B,cAAc,EAAE,kBAAkB;QAClC,QAAQ,EAAE,KAAK;KAChB;IACD,WAAW,EAAE;QACX,KAAK,EAAE,mBAAmB;QAC1B,QAAQ,EAAE,sBAAsB;QAChC,cAAc,EAAE,qBAAqB;QACrC,QAAQ,EAAE,KAAK;KAChB;IAED,0BAA0B;IAC1B,oBAAoB,EAAE;QACpB,KAAK,EAAE,4BAA4B;QACnC,QAAQ,EAAE,+BAA+B;QACzC,cAAc,EAAE,8BAA8B;QAC9C,QAAQ,EAAE,KAAK;KAChB;IACD,aAAa,EAAE;QACb,KAAK,EAAE,qBAAqB;QAC5B,QAAQ,EAAE,wBAAwB;QAClC,cAAc,EAAE,uBAAuB;QACvC,QAAQ,EAAE,KAAK;KAChB;IACD,aAAa,EAAE;QACb,KAAK,EAAE,qBAAqB;QAC5B,QAAQ,EAAE,wBAAwB;QAClC,cAAc,EAAE,uBAAuB;QACvC,QAAQ,EAAE,KAAK;KAChB;IACD,QAAQ,EAAE;QACR,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE,mBAAmB;QAC7B,cAAc,EAAE,kBAAkB;QAClC,QAAQ,EAAE,KAAK;KAChB;IACD,WAAW,EAAE;QACX,KAAK,EAAE,mBAAmB;QAC1B,QAAQ,EAAE,sBAAsB;QAChC,cAAc,EAAE,qBAAqB;QACrC,QAAQ,EAAE,KAAK;KAChB;IACD,eAAe,EAAE;QACf,KAAK,EAAE,uBAAuB;QAC9B,QAAQ,EAAE,0BAA0B;QACpC,cAAc,EAAE,yBAAyB;QACzC,QAAQ,EAAE,KAAK;KAChB;IACD,UAAU,EAAE;QACV,KAAK,EAAE,kBAAkB;QACzB,QAAQ,EAAE,qBAAqB;QAC/B,cAAc,EAAE,oBAAoB;QACpC,QAAQ,EAAE,KAAK;KAChB;IACD,cAAc,EAAE;QACd,KAAK,EAAE,sBAAsB;QAC7B,QAAQ,EAAE,yBAAyB;QACnC,cAAc,EAAE,wBAAwB;QACxC,QAAQ,EAAE,KAAK;KAChB;IACD,iBAAiB,EAAE;QACjB,KAAK,EAAE,yBAAyB;QAChC,QAAQ,EAAE,4BAA4B;QACtC,cAAc,EAAE,2BAA2B;QAC3C,QAAQ,EAAE,KAAK;KAChB;IACD,cAAc,EAAE;QACd,KAAK,EAAE,sBAAsB;QAC7B,QAAQ,EAAE,yBAAyB;QACnC,cAAc,EAAE,wBAAwB;QACxC,QAAQ,EAAE,KAAK;KAChB;IAED,wCAAwC;IACxC,gBAAgB,EAAE;QAChB,KAAK,EAAE,wBAAwB;QAC/B,QAAQ,EAAE,2BAA2B;QACrC,cAAc,EAAE,0BAA0B;QAC1C,QAAQ,EAAE,KAAK;KAChB;IACD,UAAU,EAAE;QACV,KAAK,EAAE,kBAAkB;QACzB,QAAQ,EAAE,qBAAqB;QAC/B,cAAc,EAAE,oBAAoB;QACpC,QAAQ,EAAE,KAAK;KAChB;IACD,SAAS,EAAE;QACT,KAAK,EAAE,iBAAiB;QACxB,QAAQ,EAAE,oBAAoB;QAC9B,cAAc,EAAE,mBAAmB;QACnC,QAAQ,EAAE,KAAK;KAChB;IACD,oBAAoB,EAAE;QACpB,KAAK,EAAE,4BAA4B;QACnC,QAAQ,EAAE,+BAA+B;QACzC,cAAc,EAAE,8BAA8B;QAC9C,QAAQ,EAAE,KAAK;KAChB;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,oBAAoB;QAC3B,QAAQ,EAAE,uBAAuB;QACjC,cAAc,EAAE,sBAAsB;QACtC,QAAQ,EAAE,KAAK;KAChB;IACD,WAAW,EAAE;QACX,KAAK,EAAE,mBAAmB;QAC1B,QAAQ,EAAE,sBAAsB;QAChC,cAAc,EAAE,qBAAqB;QACrC,QAAQ,EAAE,KAAK;KAChB;IACD,eAAe,EAAE;QACf,KAAK,EAAE,uBAAuB;QAC9B,QAAQ,EAAE,0BAA0B;QACpC,cAAc,EAAE,yBAAyB;QACzC,QAAQ,EAAE,KAAK;KAChB;IAED,+BAA+B;IAC/B,oBAAoB,EAAE;QACpB,KAAK,EAAE,4BAA4B;QACnC,QAAQ,EAAE,+BAA+B;QACzC,cAAc,EAAE,8BAA8B;QAC9C,QAAQ,EAAE,KAAK;KAChB;IACD,UAAU,EAAE;QACV,KAAK,EAAE,kBAAkB;QACzB,QAAQ,EAAE,qBAAqB;QAC/B,cAAc,EAAE,oBAAoB;QACpC,QAAQ,EAAE,KAAK;KAChB;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,0BAA0B;QACjC,QAAQ,EAAE,6BAA6B;QACvC,cAAc,EAAE,4BAA4B;QAC5C,QAAQ,EAAE,KAAK;KAChB;IACD,aAAa,EAAE;QACb,KAAK,EAAE,qBAAqB;QAC5B,QAAQ,EAAE,wBAAwB;QAClC,cAAc,EAAE,uBAAuB;QACvC,QAAQ,EAAE,KAAK;KAChB;IACD,uBAAuB,EAAE;QACvB,KAAK,EAAE,+BAA+B;QACtC,QAAQ,EAAE,kCAAkC;QAC5C,cAAc,EAAE,iCAAiC;QACjD,QAAQ,EAAE,KAAK;KAChB;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,oBAAoB;QAC3B,QAAQ,EAAE,uBAAuB;QACjC,cAAc,EAAE,sBAAsB;QACtC,QAAQ,EAAE,KAAK;KAChB;IAED,mCAAmC;IACnC,gBAAgB,EAAE;QAChB,KAAK,EAAE,wBAAwB;QAC/B,QAAQ,EAAE,2BAA2B;QACrC,cAAc,EAAE,0BAA0B;QAC1C,QAAQ,EAAE,KAAK;KAChB;IACD,aAAa,EAAE;QACb,KAAK,EAAE,qBAAqB;QAC5B,QAAQ,EAAE,wBAAwB;QAClC,cAAc,EAAE,uBAAuB;QACvC,QAAQ,EAAE,KAAK;KAChB;IACD,eAAe,EAAE;QACf,KAAK,EAAE,uBAAuB;QAC9B,QAAQ,EAAE,0BAA0B;QACpC,cAAc,EAAE,yBAAyB;QACzC,QAAQ,EAAE,KAAK;KAChB;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,YAAY;QACnB,QAAQ,EAAE,eAAe;QACzB,cAAc,EAAE,cAAc;QAC9B,QAAQ,EAAE,KAAK;KAChB;IACD,gBAAgB,EAAE;QAChB,KAAK,EAAE,wBAAwB;QAC/B,QAAQ,EAAE,2BAA2B;QACrC,cAAc,EAAE,0BAA0B;QAC1C,QAAQ,EAAE,KAAK;KAChB;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,oBAAoB;QAC3B,QAAQ,EAAE,uBAAuB;QACjC,cAAc,EAAE,sBAAsB;QACtC,QAAQ,EAAE,KAAK;KAChB;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,oBAAoB;QAC3B,QAAQ,EAAE,uBAAuB;QACjC,cAAc,EAAE,sBAAsB;QACtC,QAAQ,EAAE,KAAK;KAChB;IACD,WAAW,EAAE;QACX,KAAK,EAAE,mBAAmB;QAC1B,QAAQ,EAAE,sBAAsB;QAChC,cAAc,EAAE,qBAAqB;QACrC,QAAQ,EAAE,KAAK;KAChB;IAED,yCAAyC;IACzC,mBAAmB,EAAE;QACnB,KAAK,EAAE,2BAA2B;QAClC,QAAQ,EAAE,8BAA8B;QACxC,cAAc,EAAE,6BAA6B;QAC7C,QAAQ,EAAE,KAAK;KAChB;IACD,qBAAqB,EAAE;QACrB,KAAK,EAAE,6BAA6B;QACpC,QAAQ,EAAE,gCAAgC;QAC1C,cAAc,EAAE,+BAA+B;QAC/C,QAAQ,EAAE,KAAK;KAChB;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,0BAA0B;QACjC,QAAQ,EAAE,6BAA6B;QACvC,cAAc,EAAE,4BAA4B;QAC5C,QAAQ,EAAE,KAAK;KAChB;IACD,0BAA0B,EAAE;QAC1B,KAAK,EAAE,kCAAkC;QACzC,QAAQ,EAAE,qCAAqC;QAC/C,cAAc,EAAE,oCAAoC;QACpD,QAAQ,EAAE,KAAK;KAChB;IACD,wBAAwB,EAAE;QACxB,KAAK,EAAE,gCAAgC;QACvC,QAAQ,EAAE,mCAAmC;QAC7C,cAAc,EAAE,kCAAkC;QAClD,QAAQ,EAAE,KAAK;KAChB;IACD,yBAAyB,EAAE;QACzB,KAAK,EAAE,iCAAiC;QACxC,QAAQ,EAAE,oCAAoC;QAC9C,cAAc,EAAE,mCAAmC;QACnD,QAAQ,EAAE,KAAK;KAChB;IACD,yBAAyB,EAAE;QACzB,KAAK,EAAE,iCAAiC;QACxC,QAAQ,EAAE,oCAAoC;QAC9C,cAAc,EAAE,mCAAmC;QACnD,QAAQ,EAAE,KAAK;KAChB;IACD,oBAAoB,EAAE;QACpB,KAAK,EAAE,4BAA4B;QACnC,QAAQ,EAAE,+BAA+B;QACzC,cAAc,EAAE,8BAA8B;QAC9C,QAAQ,EAAE,KAAK;KAChB;IAED,qCAAqC;IACrC,cAAc,EAAE;QACd,KAAK,EAAE,sBAAsB;QAC7B,QAAQ,EAAE,yBAAyB;QACnC,cAAc,EAAE,wBAAwB;QACxC,QAAQ,EAAE,KAAK;KAChB;IACD,gBAAgB,EAAE;QAChB,KAAK,EAAE,wBAAwB;QAC/B,QAAQ,EAAE,2BAA2B;QACrC,cAAc,EAAE,0BAA0B;QAC1C,QAAQ,EAAE,KAAK;KAChB;IACD,eAAe,EAAE;QACf,KAAK,EAAE,uBAAuB;QAC9B,QAAQ,EAAE,0BAA0B;QACpC,cAAc,EAAE,yBAAyB;QACzC,QAAQ,EAAE,KAAK;KAChB;IACD,cAAc,EAAE;QACd,KAAK,EAAE,sBAAsB;QAC7B,QAAQ,EAAE,yBAAyB;QACnC,cAAc,EAAE,wBAAwB;QACxC,QAAQ,EAAE,KAAK;KAChB;IAED,8CAA8C;IAC9C,aAAa,EAAE;QACb,KAAK,EAAE,qBAAqB;QAC5B,QAAQ,EAAE,wBAAwB;QAClC,cAAc,EAAE,uBAAuB;QACvC,QAAQ,EAAE,KAAK;KAChB;IACD,aAAa,EAAE;QACb,KAAK,EAAE,qBAAqB;QAC5B,QAAQ,EAAE,wBAAwB;QAClC,cAAc,EAAE,uBAAuB;QACvC,QAAQ,EAAE,KAAK;KAChB;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,0BAA0B;QACjC,QAAQ,EAAE,6BAA6B;QACvC,cAAc,EAAE,4BAA4B;QAC5C,QAAQ,EAAE,KAAK;KAChB;IACD,WAAW,EAAE;QACX,KAAK,EAAE,mBAAmB;QAC1B,QAAQ,EAAE,sBAAsB;QAChC,cAAc,EAAE,qBAAqB;QACrC,QAAQ,EAAE,KAAK;KAChB;IACD,eAAe,EAAE;QACf,KAAK,EAAE,uBAAuB;QAC9B,QAAQ,EAAE,0BAA0B;QACpC,cAAc,EAAE,yBAAyB;QACzC,QAAQ,EAAE,KAAK;KAChB;IACD,OAAO,EAAE;QACP,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE,kBAAkB;QAC5B,cAAc,EAAE,iBAAiB;QACjC,QAAQ,EAAE,KAAK;KAChB;IACD,aAAa,EAAE;QACb,KAAK,EAAE,qBAAqB;QAC5B,QAAQ,EAAE,wBAAwB;QAClC,cAAc,EAAE,uBAAuB;QACvC,QAAQ,EAAE,KAAK;KAChB;IACD,eAAe,EAAE;QACf,KAAK,EAAE,uBAAuB;QAC9B,QAAQ,EAAE,0BAA0B;QACpC,cAAc,EAAE,yBAAyB;QACzC,QAAQ,EAAE,KAAK;KAChB;IACD,aAAa,EAAE;QACb,KAAK,EAAE,qBAAqB;QAC5B,QAAQ,EAAE,wBAAwB;QAClC,cAAc,EAAE,uBAAuB;QACvC,QAAQ,EAAE,KAAK;KAChB;IACD,mBAAmB,EAAE;QACnB,KAAK,EAAE,2BAA2B;QAClC,QAAQ,EAAE,8BAA8B;QACxC,cAAc,EAAE,6BAA6B;QAC7C,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC;AAEF,+EAA+E;AAE/E,MAAM,CAAC,MAAM,0BAA0B,GAA6B;IAClE;QACE,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,IAAI;QACV,MAAM,EAAE;YACN,UAAU;YACV,QAAQ;YACR,aAAa;YACb,gBAAgB;YAChB,iBAAiB;YACjB,oBAAoB;YACpB,gBAAgB;YAChB,kBAAkB;YAClB,mBAAmB;YACnB,gBAAgB;SACjB;KACF;IACD;QACE,KAAK,EAAE,4BAA4B;QACnC,IAAI,EAAE,KAAK;QACX,MAAM,EAAE;YACN,mBAAmB;YACnB,sBAAsB;YACtB,wBAAwB;YACxB,0BAA0B;YAC1B,2BAA2B;SAC5B;KACF;IACD;QACE,KAAK,EAAE,0BAA0B;QACjC,IAAI,EAAE,KAAK;QACX,MAAM,EAAE;YACN,YAAY;YACZ,kBAAkB;YAClB,iBAAiB;YACjB,iBAAiB;YACjB,qBAAqB;SACtB;KACF;IACD;QACE,KAAK,EAAE,2BAA2B;QAClC,IAAI,EAAE,IAAI;QACV,MAAM,EAAE;YACN,yBAAyB;YACzB,0BAA0B;YAC1B,oBAAoB;YACpB,mBAAmB;YACnB,uBAAuB;YACvB,sBAAsB;YACtB,gBAAgB;YAChB,uBAAuB;SACxB;KACF;IACD;QACE,KAAK,EAAE,+BAA+B;QACtC,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC;KACpC;IACD;QACE,KAAK,EAAE,iBAAiB;QACxB,IAAI,EAAE,IAAI;QACV,MAAM,EAAE;YACN,sBAAsB;YACtB,eAAe;YACf,eAAe;YACf,UAAU;YACV,aAAa;YACb,iBAAiB;YACjB,YAAY;YACZ,gBAAgB;YAChB,mBAAmB;YACnB,gBAAgB;SACjB;KACF;IACD;QACE,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,IAAI;QACV,MAAM,EAAE;YACN,kBAAkB;YAClB,YAAY;YACZ,WAAW;YACX,sBAAsB;YACtB,cAAc;YACd,aAAa;YACb,iBAAiB;SAClB;KACF;IACD;QACE,KAAK,EAAE,sBAAsB;QAC7B,IAAI,EAAE,IAAI;QACV,MAAM,EAAE;YACN,sBAAsB;YACtB,YAAY;YACZ,oBAAoB;YACpB,eAAe;YACf,yBAAyB;YACzB,cAAc;SACf;KACF;IACD;QACE,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,IAAI;QACV,MAAM,EAAE;YACN,kBAAkB;YAClB,eAAe;YACf,iBAAiB;YACjB,MAAM;YACN,kBAAkB;YAClB,cAAc;YACd,cAAc;YACd,aAAa;SACd;KACF;IACD;QACE,KAAK,EAAE,iBAAiB;QACxB,IAAI,EAAE,IAAI;QACV,MAAM,EAAE;YACN,qBAAqB;YACrB,uBAAuB;YACvB,oBAAoB;YACpB,4BAA4B;YAC5B,0BAA0B;YAC1B,2BAA2B;YAC3B,2BAA2B;YAC3B,sBAAsB;SACvB;KACF;IACD;QACE,KAAK,EAAE,iBAAiB;QACxB,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,CAAC;KACpF;IACD;QACE,KAAK,EAAE,iBAAiB;QACxB,IAAI,EAAE,IAAI;QACV,MAAM,EAAE;YACN,eAAe;YACf,eAAe;YACf,oBAAoB;YACpB,aAAa;YACb,iBAAiB;YACjB,SAAS;YACT,eAAe;YACf,iBAAiB;YACjB,eAAe;YACf,qBAAqB;SACtB;KACF;CACF,CAAC;AAEF,gFAAgF;AAEhF,gDAAgD;AAChD,MAAM,UAAU,2BAA2B,CACzC,QAA4B;IAE5B,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,OAAO,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,kCAAkC;AAClC,MAAM,CAAC,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,MAAM,CAAC;AAEtE,uDAAuD;AACvD,MAAM,CAAC,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,MAAM,CAClE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EACjC,CAAC,CACF,CAAC","sourcesContent":["/**\r\n * UDP Onboarding Field Configuration\r\n * ====================================\r\n * Single source of truth for all per-field onboarding metadata.\r\n * Both frontend and backend import this.\r\n *\r\n * IMPORTANT: All string properties (title, subtitle, successMessage,\r\n * step group label) are i18n KEYS, not display text. The frontend resolves\r\n * them via useTranslations(\"udp\") → t(config.title).\r\n *\r\n * Translation files:\r\n * - messages/en/udp.json (English — under \"udp\" root key)\r\n * - messages/hi/udp.json (Hindi — under \"udp\" root key)\r\n *\r\n * @module udp-schema/onboarding-config\r\n */\r\n\r\n// ─── Types ───────────────────────────────────────────────────────────────────\r\n\r\nexport interface UdpOnboardingFieldConfig {\r\n /** i18n key for the question heading (resolved via t(title)) */\r\n title: string;\r\n /** i18n key for help text below the heading */\r\n subtitle?: string;\r\n /** i18n key for toast message on successful save */\r\n successMessage: string;\r\n /** Whether the field is required to proceed */\r\n required: boolean;\r\n}\r\n\r\n/** Step grouping for the UDP onboarding flow */\r\nexport interface UdpOnboardingStepGroup {\r\n /** i18n key for section label */\r\n label: string;\r\n /** Emoji character (e.g., '📝', '🏛️') rendered directly */\r\n icon: string;\r\n /** Ordered list of field keys in this section */\r\n fields: string[];\r\n}\r\n\r\n// ─── Per-field onboarding metadata ──────────────────────────────────────────\r\n\r\nexport const UDP_ONBOARDING_FIELDS: Record<string, UdpOnboardingFieldConfig> = {\r\n // ── Step 1: Profile ──\r\n fullName: {\r\n title: 'fullName.title',\r\n subtitle: 'fullName.subtitle',\r\n successMessage: 'fullName.success',\r\n required: false,\r\n },\r\n gender: {\r\n title: 'gender.title',\r\n subtitle: 'gender.subtitle',\r\n successMessage: 'gender.success',\r\n required: false,\r\n },\r\n dateOfBirth: {\r\n title: 'dateOfBirth.title',\r\n subtitle: 'dateOfBirth.subtitle',\r\n successMessage: 'dateOfBirth.success',\r\n required: false,\r\n },\r\n whatsappNumber: {\r\n title: 'whatsappNumber.title',\r\n subtitle: 'whatsappNumber.subtitle',\r\n successMessage: 'whatsappNumber.success',\r\n required: false,\r\n },\r\n primaryLanguage: {\r\n title: 'primaryLanguage.title',\r\n subtitle: 'primaryLanguage.subtitle',\r\n successMessage: 'primaryLanguage.success',\r\n required: false,\r\n },\r\n secondaryLanguages: {\r\n title: 'secondaryLanguages.title',\r\n subtitle: 'secondaryLanguages.subtitle',\r\n successMessage: 'secondaryLanguages.success',\r\n required: false,\r\n },\r\n familyReligion: {\r\n title: 'familyReligion.title',\r\n subtitle: 'familyReligion.subtitle',\r\n successMessage: 'familyReligion.success',\r\n required: false,\r\n },\r\n personalReligion: {\r\n title: 'personalReligion.title',\r\n subtitle: 'personalReligion.subtitle',\r\n successMessage: 'personalReligion.success',\r\n required: false,\r\n },\r\n reservationStatus: {\r\n title: 'reservationStatus.title',\r\n subtitle: 'reservationStatus.subtitle',\r\n successMessage: 'reservationStatus.success',\r\n required: false,\r\n },\r\n minorityStatus: {\r\n title: 'minorityStatus.title',\r\n subtitle: 'minorityStatus.subtitle',\r\n successMessage: 'minorityStatus.success',\r\n required: false,\r\n },\r\n\r\n // ── Step 2: Political Association & History ──\r\n politicalSpectrum: {\r\n title: 'politicalSpectrum.title',\r\n subtitle: 'politicalSpectrum.subtitle',\r\n successMessage: 'politicalSpectrum.success',\r\n required: false,\r\n },\r\n selfPartyAssociation: {\r\n title: 'selfPartyAssociation.title',\r\n subtitle: 'selfPartyAssociation.subtitle',\r\n successMessage: 'selfPartyAssociation.success',\r\n required: false,\r\n },\r\n familyPartyAssociation: {\r\n title: 'familyPartyAssociation.title',\r\n subtitle: 'familyPartyAssociation.subtitle',\r\n successMessage: 'familyPartyAssociation.success',\r\n required: false,\r\n },\r\n publicOfficeAndElections: {\r\n title: 'publicOfficeAndElections.title',\r\n subtitle: 'publicOfficeAndElections.subtitle',\r\n successMessage: 'publicOfficeAndElections.success',\r\n required: false,\r\n },\r\n networkAndCivicEngagement: {\r\n title: 'networkAndCivicEngagement.title',\r\n subtitle: 'networkAndCivicEngagement.subtitle',\r\n successMessage: 'networkAndCivicEngagement.success',\r\n required: false,\r\n },\r\n\r\n // ── Step 3: Electoral Behaviour ──\r\n epicNumber: {\r\n title: 'epicNumber.title',\r\n subtitle: 'epicNumber.subtitle',\r\n successMessage: 'epicNumber.success',\r\n required: false,\r\n },\r\n willVoteThisTime: {\r\n title: 'willVoteThisTime.title',\r\n subtitle: 'willVoteThisTime.subtitle',\r\n successMessage: 'willVoteThisTime.success',\r\n required: false,\r\n },\r\n didVoteLastTime: {\r\n title: 'didVoteLastTime.title',\r\n subtitle: 'didVoteLastTime.subtitle',\r\n successMessage: 'didVoteLastTime.success',\r\n required: false,\r\n },\r\n votingFrequency: {\r\n title: 'votingFrequency.title',\r\n subtitle: 'votingFrequency.subtitle',\r\n successMessage: 'votingFrequency.success',\r\n required: false,\r\n },\r\n primaryVotingIssues: {\r\n title: 'primaryVotingIssues.title',\r\n subtitle: 'primaryVotingIssues.subtitle',\r\n successMessage: 'primaryVotingIssues.success',\r\n required: false,\r\n },\r\n\r\n // ── Step 4: Leadership & Ambitions ──\r\n participateInRevolution: {\r\n title: 'participateInRevolution.title',\r\n subtitle: 'participateInRevolution.subtitle',\r\n successMessage: 'participateInRevolution.success',\r\n required: false,\r\n },\r\n desiredPoliticalPosition: {\r\n title: 'desiredPoliticalPosition.title',\r\n subtitle: 'desiredPoliticalPosition.subtitle',\r\n successMessage: 'desiredPoliticalPosition.success',\r\n required: false,\r\n },\r\n leadershipSkillset: {\r\n title: 'leadershipSkillset.title',\r\n subtitle: 'leadershipSkillset.subtitle',\r\n successMessage: 'leadershipSkillset.success',\r\n required: false,\r\n },\r\n politicalExposure: {\r\n title: 'politicalExposure.title',\r\n subtitle: 'politicalExposure.subtitle',\r\n successMessage: 'politicalExposure.success',\r\n required: false,\r\n },\r\n comfortWithVisibility: {\r\n title: 'comfortWithVisibility.title',\r\n subtitle: 'comfortWithVisibility.subtitle',\r\n successMessage: 'comfortWithVisibility.success',\r\n required: false,\r\n },\r\n socialInfluenceLevel: {\r\n title: 'socialInfluenceLevel.title',\r\n subtitle: 'socialInfluenceLevel.subtitle',\r\n successMessage: 'socialInfluenceLevel.success',\r\n required: false,\r\n },\r\n pastExperience: {\r\n title: 'pastExperience.title',\r\n subtitle: 'pastExperience.subtitle',\r\n successMessage: 'pastExperience.success',\r\n required: false,\r\n },\r\n changesYouWantToBring: {\r\n title: 'changesYouWantToBring.title',\r\n subtitle: 'changesYouWantToBring.subtitle',\r\n successMessage: 'changesYouWantToBring.success',\r\n required: false,\r\n },\r\n\r\n // ── Step 5: Psychological Assessment ──\r\n mbtiType: {\r\n title: 'mbtiType.title',\r\n subtitle: 'mbtiType.subtitle',\r\n successMessage: 'mbtiType.success',\r\n required: false,\r\n },\r\n oceanScores: {\r\n title: 'oceanScores.title',\r\n subtitle: 'oceanScores.subtitle',\r\n successMessage: 'oceanScores.success',\r\n required: false,\r\n },\r\n\r\n // ── Step 6: Education ──\r\n highestQualification: {\r\n title: 'highestQualification.title',\r\n subtitle: 'highestQualification.subtitle',\r\n successMessage: 'highestQualification.success',\r\n required: false,\r\n },\r\n education10th: {\r\n title: 'education10th.title',\r\n subtitle: 'education10th.subtitle',\r\n successMessage: 'education10th.success',\r\n required: false,\r\n },\r\n education12th: {\r\n title: 'education12th.title',\r\n subtitle: 'education12th.subtitle',\r\n successMessage: 'education12th.success',\r\n required: false,\r\n },\r\n diplomas: {\r\n title: 'diplomas.title',\r\n subtitle: 'diplomas.subtitle',\r\n successMessage: 'diplomas.success',\r\n required: false,\r\n },\r\n graduations: {\r\n title: 'graduations.title',\r\n subtitle: 'graduations.subtitle',\r\n successMessage: 'graduations.success',\r\n required: false,\r\n },\r\n postGraduations: {\r\n title: 'postGraduations.title',\r\n subtitle: 'postGraduations.subtitle',\r\n successMessage: 'postGraduations.success',\r\n required: false,\r\n },\r\n doctorates: {\r\n title: 'doctorates.title',\r\n subtitle: 'doctorates.subtitle',\r\n successMessage: 'doctorates.success',\r\n required: false,\r\n },\r\n postDoctorates: {\r\n title: 'postDoctorates.title',\r\n subtitle: 'postDoctorates.subtitle',\r\n successMessage: 'postDoctorates.success',\r\n required: false,\r\n },\r\n otherCertificates: {\r\n title: 'otherCertificates.title',\r\n subtitle: 'otherCertificates.subtitle',\r\n successMessage: 'otherCertificates.success',\r\n required: false,\r\n },\r\n educationNotes: {\r\n title: 'educationNotes.title',\r\n subtitle: 'educationNotes.subtitle',\r\n successMessage: 'educationNotes.success',\r\n required: false,\r\n },\r\n\r\n // ── Step 7: Employment & Occupation ──\r\n employmentStatus: {\r\n title: 'employmentStatus.title',\r\n subtitle: 'employmentStatus.subtitle',\r\n successMessage: 'employmentStatus.success',\r\n required: false,\r\n },\r\n occupation: {\r\n title: 'occupation.title',\r\n subtitle: 'occupation.subtitle',\r\n successMessage: 'occupation.success',\r\n required: false,\r\n },\r\n workShift: {\r\n title: 'workShift.title',\r\n subtitle: 'workShift.subtitle',\r\n successMessage: 'workShift.success',\r\n required: false,\r\n },\r\n comfortableWithShift: {\r\n title: 'comfortableWithShift.title',\r\n subtitle: 'comfortableWithShift.subtitle',\r\n successMessage: 'comfortableWithShift.success',\r\n required: false,\r\n },\r\n desiredShift: {\r\n title: 'desiredShift.title',\r\n subtitle: 'desiredShift.subtitle',\r\n successMessage: 'desiredShift.success',\r\n required: false,\r\n },\r\n incomeRange: {\r\n title: 'incomeRange.title',\r\n subtitle: 'incomeRange.subtitle',\r\n successMessage: 'incomeRange.success',\r\n required: false,\r\n },\r\n dreamOccupation: {\r\n title: 'dreamOccupation.title',\r\n subtitle: 'dreamOccupation.subtitle',\r\n successMessage: 'dreamOccupation.success',\r\n required: false,\r\n },\r\n\r\n // ── Step 8: Neurodiversity ──\r\n neurodiverseIdentity: {\r\n title: 'neurodiverseIdentity.title',\r\n subtitle: 'neurodiverseIdentity.subtitle',\r\n successMessage: 'neurodiverseIdentity.success',\r\n required: false,\r\n },\r\n conditions: {\r\n title: 'conditions.title',\r\n subtitle: 'conditions.subtitle',\r\n successMessage: 'conditions.success',\r\n required: false,\r\n },\r\n sensoryPreferences: {\r\n title: 'sensoryPreferences.title',\r\n subtitle: 'sensoryPreferences.subtitle',\r\n successMessage: 'sensoryPreferences.success',\r\n required: false,\r\n },\r\n learningStyle: {\r\n title: 'learningStyle.title',\r\n subtitle: 'learningStyle.subtitle',\r\n successMessage: 'learningStyle.success',\r\n required: false,\r\n },\r\n communicationPreference: {\r\n title: 'communicationPreference.title',\r\n subtitle: 'communicationPreference.subtitle',\r\n successMessage: 'communicationPreference.success',\r\n required: false,\r\n },\r\n supportNeeds: {\r\n title: 'supportNeeds.title',\r\n subtitle: 'supportNeeds.subtitle',\r\n successMessage: 'supportNeeds.success',\r\n required: false,\r\n },\r\n\r\n // ── Step 9: Health & Lifestyle ──\r\n disabilityStatus: {\r\n title: 'disabilityStatus.title',\r\n subtitle: 'disabilityStatus.subtitle',\r\n successMessage: 'disabilityStatus.success',\r\n required: false,\r\n },\r\n generalHealth: {\r\n title: 'generalHealth.title',\r\n subtitle: 'generalHealth.subtitle',\r\n successMessage: 'generalHealth.success',\r\n required: false,\r\n },\r\n healthInsurance: {\r\n title: 'healthInsurance.title',\r\n subtitle: 'healthInsurance.subtitle',\r\n successMessage: 'healthInsurance.success',\r\n required: false,\r\n },\r\n diet: {\r\n title: 'diet.title',\r\n subtitle: 'diet.subtitle',\r\n successMessage: 'diet.success',\r\n required: false,\r\n },\r\n physicalActivity: {\r\n title: 'physicalActivity.title',\r\n subtitle: 'physicalActivity.subtitle',\r\n successMessage: 'physicalActivity.success',\r\n required: false,\r\n },\r\n sleepQuality: {\r\n title: 'sleepQuality.title',\r\n subtitle: 'sleepQuality.subtitle',\r\n successMessage: 'sleepQuality.success',\r\n required: false,\r\n },\r\n substanceUse: {\r\n title: 'substanceUse.title',\r\n subtitle: 'substanceUse.subtitle',\r\n successMessage: 'substanceUse.success',\r\n required: false,\r\n },\r\n stressLevel: {\r\n title: 'stressLevel.title',\r\n subtitle: 'stressLevel.subtitle',\r\n successMessage: 'stressLevel.success',\r\n required: false,\r\n },\r\n\r\n // ── Step 10: World View & Experience ──\r\n viewOnAnimalCruelty: {\r\n title: 'viewOnAnimalCruelty.title',\r\n subtitle: 'viewOnAnimalCruelty.subtitle',\r\n successMessage: 'viewOnAnimalCruelty.success',\r\n required: false,\r\n },\r\n viewOnLgbtqStatements: {\r\n title: 'viewOnLgbtqStatements.title',\r\n subtitle: 'viewOnLgbtqStatements.subtitle',\r\n successMessage: 'viewOnLgbtqStatements.success',\r\n required: false,\r\n },\r\n viewOnLgbtqOpinion: {\r\n title: 'viewOnLgbtqOpinion.title',\r\n subtitle: 'viewOnLgbtqOpinion.subtitle',\r\n successMessage: 'viewOnLgbtqOpinion.success',\r\n required: false,\r\n },\r\n viewOnTransgenderInclusion: {\r\n title: 'viewOnTransgenderInclusion.title',\r\n subtitle: 'viewOnTransgenderInclusion.subtitle',\r\n successMessage: 'viewOnTransgenderInclusion.success',\r\n required: false,\r\n },\r\n viewOnTransgenderOpinion: {\r\n title: 'viewOnTransgenderOpinion.title',\r\n subtitle: 'viewOnTransgenderOpinion.subtitle',\r\n successMessage: 'viewOnTransgenderOpinion.success',\r\n required: false,\r\n },\r\n facingCasteDiscrimination: {\r\n title: 'facingCasteDiscrimination.title',\r\n subtitle: 'facingCasteDiscrimination.subtitle',\r\n successMessage: 'facingCasteDiscrimination.success',\r\n required: false,\r\n },\r\n casteDiscriminationPlaces: {\r\n title: 'casteDiscriminationPlaces.title',\r\n subtitle: 'casteDiscriminationPlaces.subtitle',\r\n successMessage: 'casteDiscriminationPlaces.success',\r\n required: false,\r\n },\r\n viewOnGenderEquality: {\r\n title: 'viewOnGenderEquality.title',\r\n subtitle: 'viewOnGenderEquality.subtitle',\r\n successMessage: 'viewOnGenderEquality.success',\r\n required: false,\r\n },\r\n\r\n // ── Step 11: Residence & Address ──\r\n currentAddress: {\r\n title: 'currentAddress.title',\r\n subtitle: 'currentAddress.subtitle',\r\n successMessage: 'currentAddress.success',\r\n required: false,\r\n },\r\n permanentAddress: {\r\n title: 'permanentAddress.title',\r\n subtitle: 'permanentAddress.subtitle',\r\n successMessage: 'permanentAddress.success',\r\n required: false,\r\n },\r\n homeNativePlace: {\r\n title: 'homeNativePlace.title',\r\n subtitle: 'homeNativePlace.subtitle',\r\n successMessage: 'homeNativePlace.success',\r\n required: false,\r\n },\r\n ancestralPlace: {\r\n title: 'ancestralPlace.title',\r\n subtitle: 'ancestralPlace.subtitle',\r\n successMessage: 'ancestralPlace.success',\r\n required: false,\r\n },\r\n\r\n // ── Step 12: Household & Economic Profile ──\r\n maritalStatus: {\r\n title: 'maritalStatus.title',\r\n subtitle: 'maritalStatus.subtitle',\r\n successMessage: 'maritalStatus.success',\r\n required: false,\r\n },\r\n familyMembers: {\r\n title: 'familyMembers.title',\r\n subtitle: 'familyMembers.subtitle',\r\n successMessage: 'familyMembers.success',\r\n required: false,\r\n },\r\n numberOfDependents: {\r\n title: 'numberOfDependents.title',\r\n subtitle: 'numberOfDependents.subtitle',\r\n successMessage: 'numberOfDependents.success',\r\n required: false,\r\n },\r\n housingType: {\r\n title: 'housingType.title',\r\n subtitle: 'housingType.subtitle',\r\n successMessage: 'housingType.success',\r\n required: false,\r\n },\r\n householdIncome: {\r\n title: 'householdIncome.title',\r\n subtitle: 'householdIncome.subtitle',\r\n successMessage: 'householdIncome.success',\r\n required: false,\r\n },\r\n bplCard: {\r\n title: 'bplCard.title',\r\n subtitle: 'bplCard.subtitle',\r\n successMessage: 'bplCard.success',\r\n required: false,\r\n },\r\n digitalAccess: {\r\n title: 'digitalAccess.title',\r\n subtitle: 'digitalAccess.subtitle',\r\n successMessage: 'digitalAccess.success',\r\n required: false,\r\n },\r\n migrationStatus: {\r\n title: 'migrationStatus.title',\r\n subtitle: 'migrationStatus.subtitle',\r\n successMessage: 'migrationStatus.success',\r\n required: false,\r\n },\r\n landOwnership: {\r\n title: 'landOwnership.title',\r\n subtitle: 'landOwnership.subtitle',\r\n successMessage: 'landOwnership.success',\r\n required: false,\r\n },\r\n primaryIncomeSource: {\r\n title: 'primaryIncomeSource.title',\r\n subtitle: 'primaryIncomeSource.subtitle',\r\n successMessage: 'primaryIncomeSource.success',\r\n required: false,\r\n },\r\n};\r\n\r\n// ─── Step grouping ──────────────────────────────────────────────────────────\r\n\r\nexport const UDP_ONBOARDING_STEP_GROUPS: UdpOnboardingStepGroup[] = [\r\n {\r\n label: 'steps.profile',\r\n icon: '📝',\r\n fields: [\r\n 'fullName',\r\n 'gender',\r\n 'dateOfBirth',\r\n 'whatsappNumber',\r\n 'primaryLanguage',\r\n 'secondaryLanguages',\r\n 'familyReligion',\r\n 'personalReligion',\r\n 'reservationStatus',\r\n 'minorityStatus',\r\n ],\r\n },\r\n {\r\n label: 'steps.politicalAssociation',\r\n icon: '🏛️',\r\n fields: [\r\n 'politicalSpectrum',\r\n 'selfPartyAssociation',\r\n 'familyPartyAssociation',\r\n 'publicOfficeAndElections',\r\n 'networkAndCivicEngagement',\r\n ],\r\n },\r\n {\r\n label: 'steps.electoralBehaviour',\r\n icon: '🗳️',\r\n fields: [\r\n 'epicNumber',\r\n 'willVoteThisTime',\r\n 'didVoteLastTime',\r\n 'votingFrequency',\r\n 'primaryVotingIssues',\r\n ],\r\n },\r\n {\r\n label: 'steps.leadershipAmbitions',\r\n icon: '👑',\r\n fields: [\r\n 'participateInRevolution',\r\n 'desiredPoliticalPosition',\r\n 'leadershipSkillset',\r\n 'politicalExposure',\r\n 'comfortWithVisibility',\r\n 'socialInfluenceLevel',\r\n 'pastExperience',\r\n 'changesYouWantToBring',\r\n ],\r\n },\r\n {\r\n label: 'steps.psychologicalAssessment',\r\n icon: '🧩',\r\n fields: ['mbtiType', 'oceanScores'],\r\n },\r\n {\r\n label: 'steps.education',\r\n icon: '🎓',\r\n fields: [\r\n 'highestQualification',\r\n 'education10th',\r\n 'education12th',\r\n 'diplomas',\r\n 'graduations',\r\n 'postGraduations',\r\n 'doctorates',\r\n 'postDoctorates',\r\n 'otherCertificates',\r\n 'educationNotes',\r\n ],\r\n },\r\n {\r\n label: 'steps.employment',\r\n icon: '💼',\r\n fields: [\r\n 'employmentStatus',\r\n 'occupation',\r\n 'workShift',\r\n 'comfortableWithShift',\r\n 'desiredShift',\r\n 'incomeRange',\r\n 'dreamOccupation',\r\n ],\r\n },\r\n {\r\n label: 'steps.neurodiversity',\r\n icon: '🧠',\r\n fields: [\r\n 'neurodiverseIdentity',\r\n 'conditions',\r\n 'sensoryPreferences',\r\n 'learningStyle',\r\n 'communicationPreference',\r\n 'supportNeeds',\r\n ],\r\n },\r\n {\r\n label: 'steps.healthLifestyle',\r\n icon: '🏥',\r\n fields: [\r\n 'disabilityStatus',\r\n 'generalHealth',\r\n 'healthInsurance',\r\n 'diet',\r\n 'physicalActivity',\r\n 'sleepQuality',\r\n 'substanceUse',\r\n 'stressLevel',\r\n ],\r\n },\r\n {\r\n label: 'steps.worldView',\r\n icon: '🌿',\r\n fields: [\r\n 'viewOnAnimalCruelty',\r\n 'viewOnLgbtqStatements',\r\n 'viewOnLgbtqOpinion',\r\n 'viewOnTransgenderInclusion',\r\n 'viewOnTransgenderOpinion',\r\n 'facingCasteDiscrimination',\r\n 'casteDiscriminationPlaces',\r\n 'viewOnGenderEquality',\r\n ],\r\n },\r\n {\r\n label: 'steps.residence',\r\n icon: '🏠',\r\n fields: ['currentAddress', 'permanentAddress', 'homeNativePlace', 'ancestralPlace'],\r\n },\r\n {\r\n label: 'steps.household',\r\n icon: '🏡',\r\n fields: [\r\n 'maritalStatus',\r\n 'familyMembers',\r\n 'numberOfDependents',\r\n 'housingType',\r\n 'householdIncome',\r\n 'bplCard',\r\n 'digitalAccess',\r\n 'migrationStatus',\r\n 'landOwnership',\r\n 'primaryIncomeSource',\r\n ],\r\n },\r\n];\r\n\r\n// ─── Helpers ─────────────────────────────────────────────────────────────────\r\n\r\n/** Get onboarding config for a single field. */\r\nexport function getUdpOnboardingFieldConfig(\r\n fieldKey: string | undefined,\r\n): UdpOnboardingFieldConfig | undefined {\r\n if (!fieldKey) return undefined;\r\n return UDP_ONBOARDING_FIELDS[fieldKey];\r\n}\r\n\r\n/** Total number of main steps. */\r\nexport const UDP_TOTAL_MAIN_STEPS = UDP_ONBOARDING_STEP_GROUPS.length;\r\n\r\n/** Total number of sub-steps across all main steps. */\r\nexport const UDP_TOTAL_SUB_STEPS = UDP_ONBOARDING_STEP_GROUPS.reduce(\r\n (sum, g) => sum + g.fields.length,\r\n 0,\r\n);\r\n"]}
|
|
@@ -218,7 +218,7 @@ export declare const udpOnboardingFormSchema: z.ZodObject<{
|
|
|
218
218
|
}>>>;
|
|
219
219
|
incomeRange: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
220
220
|
dreamOccupation: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
221
|
-
highestQualification: z.ZodOptional<z.ZodEnum<{
|
|
221
|
+
highestQualification: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
|
|
222
222
|
CLASS_10: "CLASS_10";
|
|
223
223
|
CLASS_12: "CLASS_12";
|
|
224
224
|
DIPLOMA: "DIPLOMA";
|
|
@@ -227,7 +227,7 @@ export declare const udpOnboardingFormSchema: z.ZodObject<{
|
|
|
227
227
|
PHD: "PHD";
|
|
228
228
|
POST_DOCTORATE: "POST_DOCTORATE";
|
|
229
229
|
OTHER: "OTHER";
|
|
230
|
-
}
|
|
230
|
+
}>>>;
|
|
231
231
|
education10th: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
232
232
|
board: z.ZodOptional<z.ZodString>;
|
|
233
233
|
schoolName: z.ZodOptional<z.ZodString>;
|
|
@@ -395,9 +395,9 @@ export declare const udpOnboardingFormSchema: z.ZodObject<{
|
|
|
395
395
|
electionDetails: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
|
|
396
396
|
}, z.core.$strip>>>;
|
|
397
397
|
networkAndCivicEngagement: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
398
|
-
firstName: z.ZodOptional<z.ZodString
|
|
398
|
+
firstName: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
399
399
|
middleName: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
400
|
-
lastName: z.ZodOptional<z.ZodString
|
|
400
|
+
lastName: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
401
401
|
gender: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
|
|
402
402
|
man: "man";
|
|
403
403
|
woman: "woman";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"01-profile.d.ts","sourceRoot":"","sources":["../../src/profile-fields/01-profile.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BhB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmDlB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BlB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;EASrB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;;;;EAKlB,CAAC;AAIX,eAAO,MAAM,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"01-profile.d.ts","sourceRoot":"","sources":["../../src/profile-fields/01-profile.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BhB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmDlB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BlB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;EASrB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;;;;EAKlB,CAAC;AAIX,eAAO,MAAM,OAAO,EAAE,UAqGrB,CAAC"}
|
|
@@ -142,31 +142,12 @@ export const profile = {
|
|
|
142
142
|
fields: [
|
|
143
143
|
{
|
|
144
144
|
order: 1,
|
|
145
|
-
key: '
|
|
146
|
-
label: '
|
|
147
|
-
type: '
|
|
148
|
-
step: 1,
|
|
149
|
-
isOnboarding: true,
|
|
150
|
-
maxLength: 50,
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
order: 2,
|
|
154
|
-
key: 'middleName',
|
|
155
|
-
label: 'Middle Name',
|
|
156
|
-
type: 'text',
|
|
157
|
-
step: 1,
|
|
158
|
-
isOnboarding: true,
|
|
159
|
-
optional: true,
|
|
160
|
-
maxLength: 50,
|
|
161
|
-
},
|
|
162
|
-
{
|
|
163
|
-
order: 3,
|
|
164
|
-
key: 'lastName',
|
|
165
|
-
label: 'Last Name',
|
|
166
|
-
type: 'text',
|
|
145
|
+
key: 'fullName',
|
|
146
|
+
label: 'Full Name',
|
|
147
|
+
type: 'object',
|
|
167
148
|
step: 1,
|
|
168
149
|
isOnboarding: true,
|
|
169
|
-
|
|
150
|
+
description: 'First, middle, and last name as per Aadhaar or other govt ID',
|
|
170
151
|
},
|
|
171
152
|
{
|
|
172
153
|
order: 4,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"01-profile.js","sourceRoot":"","sources":["../../src/profile-fields/01-profile.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Step 01 — Profile fields.\n *\n * Rich field definitions with options and descriptions,\n * matching the dating-schema profile-fields pattern.\n */\n\nimport type { FieldGroup } from './types.js';\n\n// ─── Shared option arrays (exported for reuse) ─────────────────────────────\n\nexport const genderOptions = [\n { value: 'man', label: 'Man' },\n { value: 'woman', label: 'Woman' },\n { value: 'non_binary', label: 'Non-binary', description: 'Neither exclusively male nor female' },\n {\n value: 'transgender_man',\n label: 'Transgender Man',\n description: 'Assigned female at birth, identifies as male',\n },\n {\n value: 'transgender_woman',\n label: 'Transgender Woman',\n description: 'Assigned male at birth, identifies as female',\n },\n {\n value: 'genderqueer',\n label: 'Genderqueer',\n description: 'Outside the traditional gender binary',\n },\n { value: 'genderfluid', label: 'Genderfluid', description: 'Gender identity shifts over time' },\n { value: 'agender', label: 'Agender', description: 'No specific gender identity' },\n {\n value: 'two_spirit',\n label: 'Two-Spirit',\n description: 'Indigenous identity encompassing multiple genders',\n },\n { value: 'other', label: 'Other' },\n { value: 'prefer_not_to_say', label: 'Prefer not to say' },\n] as const;\n\nexport const religionOptions = [\n { value: 'hindu', label: 'Hindu', description: 'Sanatana Dharma traditions' },\n { value: 'muslim_sunni', label: 'Muslim (Sunni)', description: 'Largest branch of Islam' },\n { value: 'muslim_shia', label: 'Muslim (Shia)', description: 'Second-largest branch of Islam' },\n { value: 'muslim_sufi', label: 'Muslim (Sufi)', description: 'Mystical Islamic tradition' },\n { value: 'muslim_other', label: 'Muslim (Other)', description: 'Ahmadiyya or other traditions' },\n {\n value: 'christian_catholic',\n label: 'Christian (Catholic)',\n description: 'Roman Catholic tradition',\n },\n {\n value: 'christian_protestant',\n label: 'Christian (Protestant)',\n description: 'Baptist, Methodist, Pentecostal, etc.',\n },\n {\n value: 'christian_other',\n label: 'Christian (Other)',\n description: 'Orthodox, Syrian, or other traditions',\n },\n { value: 'sikh', label: 'Sikh', description: 'Founded by Guru Nanak' },\n { value: 'jain_digambar', label: 'Jain (Digambar)', description: 'Sky-clad Jain tradition' },\n {\n value: 'jain_shwetambar',\n label: 'Jain (Shwetambar)',\n description: 'White-clad Jain tradition',\n },\n { value: 'buddhist', label: 'Buddhist', description: \"Followers of the Buddha's teachings\" },\n {\n value: 'parsi_zoroastrian',\n label: 'Parsi / Zoroastrian',\n description: 'Ancient Persian faith',\n },\n { value: 'jewish', label: 'Jewish', description: 'Judaism — Abrahamic faith' },\n { value: 'bahai', label: \"Baha'i\", description: 'Unity of all religions and humanity' },\n {\n value: 'spiritual',\n label: 'Spiritual but not religious',\n description: 'Personal spiritual practice',\n },\n { value: 'atheist', label: 'Atheist', description: 'No belief in deities' },\n { value: 'agnostic', label: 'Agnostic', description: 'Uncertain about higher power' },\n { value: 'no_religion', label: 'No Religion', description: 'Simply non-religious' },\n {\n value: 'inter_religion',\n label: 'Inter-Religion / Multi-faith',\n description: 'Multi-faith background',\n },\n { value: 'other', label: 'Other', description: 'A faith not listed above' },\n { value: 'prefer_not_to_say', label: 'Prefer not to say' },\n] as const;\n\nexport const languageOptions = [\n { value: 'hindi', label: 'Hindi (हिन्दी)' },\n { value: 'english', label: 'English' },\n { value: 'bengali', label: 'Bengali (বাংলা)' },\n { value: 'telugu', label: 'Telugu (తెలుగు)' },\n { value: 'marathi', label: 'Marathi (मराठी)' },\n { value: 'tamil', label: 'Tamil (தமிழ்)' },\n { value: 'urdu', label: 'Urdu (اردو)' },\n { value: 'gujarati', label: 'Gujarati (ગુજરાતી)' },\n { value: 'kannada', label: 'Kannada (ಕನ್ನಡ)' },\n { value: 'odia', label: 'Odia (ଓଡ଼ିଆ)' },\n { value: 'malayalam', label: 'Malayalam (മലയാളം)' },\n { value: 'punjabi', label: 'Punjabi (ਪੰਜਾਬੀ)' },\n { value: 'assamese', label: 'Assamese (অসমীয়া)' },\n { value: 'maithili', label: 'Maithili (मैथिली)' },\n { value: 'bhojpuri', label: 'Bhojpuri (भोजपुरी)' },\n { value: 'rajasthani', label: 'Rajasthani (राजस्थानी)' },\n { value: 'chhattisgarhi', label: 'Chhattisgarhi (छत्तीसगढ़ी)' },\n { value: 'haryanvi', label: 'Haryanvi (हरियाणवी)' },\n { value: 'tulu', label: 'Tulu (ತುಳು)' },\n { value: 'sanskrit', label: 'Sanskrit (संस्कृतम्)' },\n { value: 'sindhi', label: 'Sindhi (سنڌي)' },\n { value: 'kashmiri', label: 'Kashmiri (कॉशुर)' },\n { value: 'nepali', label: 'Nepali (नेपाली)' },\n { value: 'konkani', label: 'Konkani (कोंकणी)' },\n { value: 'dogri', label: 'Dogri (डोगरी)' },\n { value: 'manipuri', label: 'Manipuri (মৈতৈলোন্)' },\n { value: 'bodo', label: 'Bodo (बड़ो)' },\n { value: 'santali', label: 'Santali (ᱥᱟᱱᱛᱟᱲᱤ)' },\n { value: 'other', label: 'Other' },\n] as const;\n\nexport const reservationOptions = [\n { value: 'SC', label: 'Scheduled Caste (SC)' },\n { value: 'ST', label: 'Scheduled Tribe (ST)' },\n { value: 'OBC_NC', label: 'OBC (Non-Creamy Layer)' },\n { value: 'OBC_C', label: 'OBC (Creamy Layer)' },\n { value: 'EWS', label: 'Economically Weaker Section (EWS)' },\n { value: 'GENERAL', label: 'General' },\n { value: 'DONT_KNOW', label: \"Don't know\" },\n { value: 'PREFER_NOT_SAY', label: 'Prefer not to say' },\n] as const;\n\nexport const minorityOptions = [\n { value: 'NO', label: 'No' },\n { value: 'RELIGIOUS', label: 'Yes — Religious minority' },\n { value: 'LINGUISTIC', label: 'Yes — Linguistic minority' },\n { value: 'NOT_SURE', label: 'Not sure' },\n] as const;\n\n// ─── Field Group ────────────────────────────────────────────────────────────\n\nexport const profile: FieldGroup = {\n key: 'profile',\n label: 'Profile',\n description: 'Basic personal information — name, gender, date of birth, language, and religion.',\n step: 1,\n fields: [\n {\n order: 1,\n key: 'firstName',\n label: 'First Name',\n type: 'text',\n step: 1,\n isOnboarding: true,\n maxLength: 50,\n },\n {\n order: 2,\n key: 'middleName',\n label: 'Middle Name',\n type: 'text',\n step: 1,\n isOnboarding: true,\n optional: true,\n maxLength: 50,\n },\n {\n order: 3,\n key: 'lastName',\n label: 'Last Name',\n type: 'text',\n step: 1,\n isOnboarding: true,\n maxLength: 50,\n },\n {\n order: 4,\n key: 'gender',\n label: 'Gender',\n type: 'single_select',\n step: 1,\n isOnboarding: true,\n options: [...genderOptions],\n },\n {\n order: 5,\n key: 'dateOfBirth',\n label: 'Date of Birth',\n type: 'date',\n step: 1,\n isOnboarding: true,\n },\n {\n order: 6,\n key: 'whatsappNumber',\n label: 'WhatsApp Number',\n type: 'text',\n step: 1,\n isOnboarding: true,\n optional: true,\n description: 'Include country code',\n },\n {\n order: 7,\n key: 'primaryLanguage',\n label: 'Primary Language',\n type: 'single_select',\n step: 1,\n isOnboarding: true,\n options: [...languageOptions],\n },\n {\n order: 8,\n key: 'secondaryLanguages',\n label: 'Secondary Languages',\n type: 'multi_select',\n step: 1,\n isOnboarding: true,\n optional: true,\n options: [...languageOptions],\n maxSelect: 10,\n },\n {\n order: 9,\n key: 'familyReligion',\n label: 'Family Religion',\n type: 'single_select',\n step: 1,\n isOnboarding: true,\n options: [...religionOptions],\n },\n {\n order: 10,\n key: 'personalReligion',\n label: 'Personal Religion',\n type: 'single_select',\n step: 1,\n isOnboarding: true,\n optional: true,\n options: [...religionOptions],\n },\n {\n order: 11,\n key: 'reservationStatus',\n label: 'Reservation Category',\n type: 'single_select',\n step: 1,\n isOnboarding: true,\n options: [...reservationOptions],\n sensitive: true,\n },\n {\n order: 12,\n key: 'minorityStatus',\n label: 'Minority Status',\n type: 'single_select',\n step: 1,\n isOnboarding: true,\n options: [...minorityOptions],\n },\n ],\n};\n"]}
|
|
1
|
+
{"version":3,"file":"01-profile.js","sourceRoot":"","sources":["../../src/profile-fields/01-profile.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Step 01 — Profile fields.\n *\n * Rich field definitions with options and descriptions,\n * matching the dating-schema profile-fields pattern.\n */\n\nimport type { FieldGroup } from './types.js';\n\n// ─── Shared option arrays (exported for reuse) ─────────────────────────────\n\nexport const genderOptions = [\n { value: 'man', label: 'Man' },\n { value: 'woman', label: 'Woman' },\n { value: 'non_binary', label: 'Non-binary', description: 'Neither exclusively male nor female' },\n {\n value: 'transgender_man',\n label: 'Transgender Man',\n description: 'Assigned female at birth, identifies as male',\n },\n {\n value: 'transgender_woman',\n label: 'Transgender Woman',\n description: 'Assigned male at birth, identifies as female',\n },\n {\n value: 'genderqueer',\n label: 'Genderqueer',\n description: 'Outside the traditional gender binary',\n },\n { value: 'genderfluid', label: 'Genderfluid', description: 'Gender identity shifts over time' },\n { value: 'agender', label: 'Agender', description: 'No specific gender identity' },\n {\n value: 'two_spirit',\n label: 'Two-Spirit',\n description: 'Indigenous identity encompassing multiple genders',\n },\n { value: 'other', label: 'Other' },\n { value: 'prefer_not_to_say', label: 'Prefer not to say' },\n] as const;\n\nexport const religionOptions = [\n { value: 'hindu', label: 'Hindu', description: 'Sanatana Dharma traditions' },\n { value: 'muslim_sunni', label: 'Muslim (Sunni)', description: 'Largest branch of Islam' },\n { value: 'muslim_shia', label: 'Muslim (Shia)', description: 'Second-largest branch of Islam' },\n { value: 'muslim_sufi', label: 'Muslim (Sufi)', description: 'Mystical Islamic tradition' },\n { value: 'muslim_other', label: 'Muslim (Other)', description: 'Ahmadiyya or other traditions' },\n {\n value: 'christian_catholic',\n label: 'Christian (Catholic)',\n description: 'Roman Catholic tradition',\n },\n {\n value: 'christian_protestant',\n label: 'Christian (Protestant)',\n description: 'Baptist, Methodist, Pentecostal, etc.',\n },\n {\n value: 'christian_other',\n label: 'Christian (Other)',\n description: 'Orthodox, Syrian, or other traditions',\n },\n { value: 'sikh', label: 'Sikh', description: 'Founded by Guru Nanak' },\n { value: 'jain_digambar', label: 'Jain (Digambar)', description: 'Sky-clad Jain tradition' },\n {\n value: 'jain_shwetambar',\n label: 'Jain (Shwetambar)',\n description: 'White-clad Jain tradition',\n },\n { value: 'buddhist', label: 'Buddhist', description: \"Followers of the Buddha's teachings\" },\n {\n value: 'parsi_zoroastrian',\n label: 'Parsi / Zoroastrian',\n description: 'Ancient Persian faith',\n },\n { value: 'jewish', label: 'Jewish', description: 'Judaism — Abrahamic faith' },\n { value: 'bahai', label: \"Baha'i\", description: 'Unity of all religions and humanity' },\n {\n value: 'spiritual',\n label: 'Spiritual but not religious',\n description: 'Personal spiritual practice',\n },\n { value: 'atheist', label: 'Atheist', description: 'No belief in deities' },\n { value: 'agnostic', label: 'Agnostic', description: 'Uncertain about higher power' },\n { value: 'no_religion', label: 'No Religion', description: 'Simply non-religious' },\n {\n value: 'inter_religion',\n label: 'Inter-Religion / Multi-faith',\n description: 'Multi-faith background',\n },\n { value: 'other', label: 'Other', description: 'A faith not listed above' },\n { value: 'prefer_not_to_say', label: 'Prefer not to say' },\n] as const;\n\nexport const languageOptions = [\n { value: 'hindi', label: 'Hindi (हिन्दी)' },\n { value: 'english', label: 'English' },\n { value: 'bengali', label: 'Bengali (বাংলা)' },\n { value: 'telugu', label: 'Telugu (తెలుగు)' },\n { value: 'marathi', label: 'Marathi (मराठी)' },\n { value: 'tamil', label: 'Tamil (தமிழ்)' },\n { value: 'urdu', label: 'Urdu (اردو)' },\n { value: 'gujarati', label: 'Gujarati (ગુજરાતી)' },\n { value: 'kannada', label: 'Kannada (ಕನ್ನಡ)' },\n { value: 'odia', label: 'Odia (ଓଡ଼ିଆ)' },\n { value: 'malayalam', label: 'Malayalam (മലയാളം)' },\n { value: 'punjabi', label: 'Punjabi (ਪੰਜਾਬੀ)' },\n { value: 'assamese', label: 'Assamese (অসমীয়া)' },\n { value: 'maithili', label: 'Maithili (मैथिली)' },\n { value: 'bhojpuri', label: 'Bhojpuri (भोजपुरी)' },\n { value: 'rajasthani', label: 'Rajasthani (राजस्थानी)' },\n { value: 'chhattisgarhi', label: 'Chhattisgarhi (छत्तीसगढ़ी)' },\n { value: 'haryanvi', label: 'Haryanvi (हरियाणवी)' },\n { value: 'tulu', label: 'Tulu (ತುಳು)' },\n { value: 'sanskrit', label: 'Sanskrit (संस्कृतम्)' },\n { value: 'sindhi', label: 'Sindhi (سنڌي)' },\n { value: 'kashmiri', label: 'Kashmiri (कॉशुर)' },\n { value: 'nepali', label: 'Nepali (नेपाली)' },\n { value: 'konkani', label: 'Konkani (कोंकणी)' },\n { value: 'dogri', label: 'Dogri (डोगरी)' },\n { value: 'manipuri', label: 'Manipuri (মৈতৈলোন্)' },\n { value: 'bodo', label: 'Bodo (बड़ो)' },\n { value: 'santali', label: 'Santali (ᱥᱟᱱᱛᱟᱲᱤ)' },\n { value: 'other', label: 'Other' },\n] as const;\n\nexport const reservationOptions = [\n { value: 'SC', label: 'Scheduled Caste (SC)' },\n { value: 'ST', label: 'Scheduled Tribe (ST)' },\n { value: 'OBC_NC', label: 'OBC (Non-Creamy Layer)' },\n { value: 'OBC_C', label: 'OBC (Creamy Layer)' },\n { value: 'EWS', label: 'Economically Weaker Section (EWS)' },\n { value: 'GENERAL', label: 'General' },\n { value: 'DONT_KNOW', label: \"Don't know\" },\n { value: 'PREFER_NOT_SAY', label: 'Prefer not to say' },\n] as const;\n\nexport const minorityOptions = [\n { value: 'NO', label: 'No' },\n { value: 'RELIGIOUS', label: 'Yes — Religious minority' },\n { value: 'LINGUISTIC', label: 'Yes — Linguistic minority' },\n { value: 'NOT_SURE', label: 'Not sure' },\n] as const;\n\n// ─── Field Group ────────────────────────────────────────────────────────────\n\nexport const profile: FieldGroup = {\n key: 'profile',\n label: 'Profile',\n description: 'Basic personal information — name, gender, date of birth, language, and religion.',\n step: 1,\n fields: [\n {\n order: 1,\n key: 'fullName',\n label: 'Full Name',\n type: 'object',\n step: 1,\n isOnboarding: true,\n description: 'First, middle, and last name as per Aadhaar or other govt ID',\n },\n {\n order: 4,\n key: 'gender',\n label: 'Gender',\n type: 'single_select',\n step: 1,\n isOnboarding: true,\n options: [...genderOptions],\n },\n {\n order: 5,\n key: 'dateOfBirth',\n label: 'Date of Birth',\n type: 'date',\n step: 1,\n isOnboarding: true,\n },\n {\n order: 6,\n key: 'whatsappNumber',\n label: 'WhatsApp Number',\n type: 'text',\n step: 1,\n isOnboarding: true,\n optional: true,\n description: 'Include country code',\n },\n {\n order: 7,\n key: 'primaryLanguage',\n label: 'Primary Language',\n type: 'single_select',\n step: 1,\n isOnboarding: true,\n options: [...languageOptions],\n },\n {\n order: 8,\n key: 'secondaryLanguages',\n label: 'Secondary Languages',\n type: 'multi_select',\n step: 1,\n isOnboarding: true,\n optional: true,\n options: [...languageOptions],\n maxSelect: 10,\n },\n {\n order: 9,\n key: 'familyReligion',\n label: 'Family Religion',\n type: 'single_select',\n step: 1,\n isOnboarding: true,\n options: [...religionOptions],\n },\n {\n order: 10,\n key: 'personalReligion',\n label: 'Personal Religion',\n type: 'single_select',\n step: 1,\n isOnboarding: true,\n optional: true,\n options: [...religionOptions],\n },\n {\n order: 11,\n key: 'reservationStatus',\n label: 'Reservation Category',\n type: 'single_select',\n step: 1,\n isOnboarding: true,\n options: [...reservationOptions],\n sensitive: true,\n },\n {\n order: 12,\n key: 'minorityStatus',\n label: 'Minority Status',\n type: 'single_select',\n step: 1,\n isOnboarding: true,\n options: [...minorityOptions],\n },\n ],\n};\n"]}
|
|
@@ -23,7 +23,10 @@ export interface BaseField {
|
|
|
23
23
|
step: number;
|
|
24
24
|
/** Whether this field is collected during onboarding */
|
|
25
25
|
isOnboarding: boolean;
|
|
26
|
-
/**
|
|
26
|
+
/**
|
|
27
|
+
* All UDP fields are optional — users can skip any question.
|
|
28
|
+
* This flag is kept for metadata/documentation but does not affect form flow.
|
|
29
|
+
*/
|
|
27
30
|
optional?: boolean;
|
|
28
31
|
/** Help text shown below the field */
|
|
29
32
|
description?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/profile-fields/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,IAAI,EACA,MAAM,GACN,UAAU,GACV,QAAQ,GACR,MAAM,GACN,eAAe,GACf,cAAc,GACd,QAAQ,GACR,cAAc,GACd,SAAS,CAAC;IACd,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,YAAY,EAAE,OAAO,CAAC;IACtB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/profile-fields/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,IAAI,EACA,MAAM,GACN,UAAU,GACV,QAAQ,GACR,MAAM,GACN,eAAe,GACf,cAAc,GACd,QAAQ,GACR,cAAc,GACd,SAAS,CAAC;IACd,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,YAAY,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uFAAuF;IACvF,aAAa,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACrD;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC1C,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,gBAAgB,GAChB,SAAS,GACT,WAAW,GACX,CAAC,SAAS,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,cAAc,GAAG,SAAS,CAAA;CAAE,CAAC,CAAC;AAE3E,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/profile-fields/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG","sourcesContent":["/**\n * Type definitions for UDP profile field configuration.\n *\n * Mirrors the dating-schema profile-fields/types.ts pattern.\n * These types describe field metadata — NOT the user's actual profile data.\n */\n\nexport interface FieldOption {\n value: string;\n label: string;\n /** Short description — shown on chips/cards */\n description?: string;\n}\n\nexport interface BaseField {\n /** Display order within the step */\n order: number;\n /** Unique key — maps to DB field name */\n key: string;\n /** Human-readable label */\n label: string;\n /** Field type for form rendering */\n type:\n | 'text'\n | 'textarea'\n | 'number'\n | 'date'\n | 'single_select'\n | 'multi_select'\n | 'object'\n | 'object_array'\n | 'address';\n /** Step number (1-12) this field belongs to */\n step: number;\n /** Whether this field is collected during onboarding */\n isOnboarding: boolean;\n
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/profile-fields/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG","sourcesContent":["/**\n * Type definitions for UDP profile field configuration.\n *\n * Mirrors the dating-schema profile-fields/types.ts pattern.\n * These types describe field metadata — NOT the user's actual profile data.\n */\n\nexport interface FieldOption {\n value: string;\n label: string;\n /** Short description — shown on chips/cards */\n description?: string;\n}\n\nexport interface BaseField {\n /** Display order within the step */\n order: number;\n /** Unique key — maps to DB field name */\n key: string;\n /** Human-readable label */\n label: string;\n /** Field type for form rendering */\n type:\n | 'text'\n | 'textarea'\n | 'number'\n | 'date'\n | 'single_select'\n | 'multi_select'\n | 'object'\n | 'object_array'\n | 'address';\n /** Step number (1-12) this field belongs to */\n step: number;\n /** Whether this field is collected during onboarding */\n isOnboarding: boolean;\n /**\n * All UDP fields are optional — users can skip any question.\n * This flag is kept for metadata/documentation but does not affect form flow.\n */\n optional?: boolean;\n /** Help text shown below the field */\n description?: string;\n /** Mark as sensitive (shown with privacy notice) */\n sensitive?: boolean;\n /** If set, field only applicable when referenced field has one of the listed values */\n conditionalOn?: { field: string; values: string[] };\n}\n\nexport interface SelectField extends BaseField {\n type: 'single_select';\n options: FieldOption[];\n}\n\nexport interface MultiSelectField extends BaseField {\n type: 'multi_select';\n options: FieldOption[];\n maxSelect?: number;\n}\n\nexport interface TextField extends BaseField {\n type: 'text' | 'textarea';\n maxLength?: number;\n}\n\nexport interface NumberField extends BaseField {\n type: 'number';\n min?: number;\n max?: number;\n}\n\nexport type ProfileField =\n | SelectField\n | MultiSelectField\n | TextField\n | NumberField\n | (BaseField & { type: 'date' | 'object' | 'object_array' | 'address' });\n\nexport interface FieldGroup {\n key: string;\n label: string;\n description?: string;\n step: number;\n fields: ProfileField[];\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress-fields.d.ts","sourceRoot":"","sources":["../src/progress-fields.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"progress-fields.d.ts","sourceRoot":"","sources":["../src/progress-fields.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAoHxD,CAAC;AAEX,gCAAgC;AAChC,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAYlF;AAED,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAcrD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,GACnD;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAenC;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,GACnE;IACD,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/D,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAeA"}
|
package/dist/progress-fields.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress-fields.js","sourceRoot":"","sources":["../src/progress-fields.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * UDP Progress Fields — Single source of truth for step progress counting.\n *\n * Used by both frontend (stepper UI) and backend (computeStepProgressCounts).\n * Each step lists the curated fields that determine filled/total progress.\n *\n * Dot-paths (e.g., \"currentAddress.state\") resolve nested subdocument fields.\n * Only these fields count toward progress — extra fields in the schema are ignored.\n */\n\nexport const UDP_PROGRESS_FIELDS: Record<number, readonly string[]> = {\n 1: [\n 'firstName',\n 'lastName',\n 'gender',\n 'dateOfBirth',\n 'whatsappNumber',\n 'primaryLanguage',\n 'secondaryLanguages',\n 'familyReligion',\n 'personalReligion',\n 'reservationStatus',\n 'minorityStatus',\n ],\n 2: [\n 'politicalSpectrum',\n 'selfPartyAssociation',\n 'familyPartyAssociation',\n 'publicOfficeAndElections',\n 'networkAndCivicEngagement',\n ],\n 3: [\n 'epicNumber',\n 'willVoteThisTime',\n 'didVoteLastTime',\n 'votingFrequency',\n 'primaryVotingIssues',\n ],\n 4: [\n 'participateInRevolution',\n 'desiredPoliticalPosition',\n 'leadershipSkillset',\n 'politicalExposure',\n 'comfortWithVisibility',\n 'socialInfluenceLevel',\n 'pastExperience',\n 'changesYouWantToBring',\n ],\n 5: ['mbtiType', 'oceanScores'],\n 6: [\n 'highestQualification',\n 'education10th.board',\n 'education10th.schoolName',\n 'education10th.yearOfPassing',\n 'education12th.institutionName',\n 'education12th.yearOfPassing',\n 'diplomas',\n 'graduations',\n 'postGraduations',\n 'doctorates',\n 'postDoctorates',\n 'otherCertificates',\n 'educationNotes',\n ],\n 7: [\n 'employmentStatus',\n 'occupation',\n 'workShift',\n 'comfortableWithShift',\n 'desiredShift',\n 'incomeRange',\n 'dreamOccupation',\n ],\n 8: [\n 'neurodiverseIdentity',\n 'conditions',\n 'sensoryPreferences',\n 'learningStyle',\n 'communicationPreference',\n 'supportNeeds',\n ],\n 9: [\n 'disabilityStatus',\n 'generalHealth',\n 'healthInsurance',\n 'diet',\n 'physicalActivity',\n 'sleepQuality',\n 'substanceUse',\n 'stressLevel',\n ],\n 10: [\n 'viewOnAnimalCruelty',\n 'viewOnLgbtqStatements',\n 'viewOnLgbtqOpinion',\n 'viewOnTransgenderInclusion',\n 'viewOnTransgenderOpinion',\n 'facingCasteDiscrimination',\n 'casteDiscriminationPlaces',\n 'viewOnGenderEquality',\n ],\n 11: [\n 'currentAddress.state',\n 'currentAddress.district',\n 'currentAddress.village',\n 'permanentAddress.state',\n 'permanentAddress.district',\n 'permanentAddress.village',\n 'homeNativePlace.state',\n 'homeNativePlace.district',\n 'ancestralPlace.state',\n 'ancestralPlace.district',\n ],\n 12: [\n 'maritalStatus',\n 'familyMembers',\n 'numberOfDependents',\n 'housingType',\n 'householdIncome',\n 'bplCard',\n 'digitalAccess',\n 'migrationStatus',\n 'landOwnership',\n 'primaryIncomeSource',\n ],\n} as const;\n\n/** Total number of UDP steps */\nexport const UDP_TOTAL_STEPS = 12;\n\n/**\n * Resolve a dot-path (e.g., \"currentAddress.state\") against a data object.\n * Works with both plain objects and Mongoose subdocuments.\n */\nexport function getNestedValue(obj: Record<string, unknown>, path: string): unknown {\n const parts = path.split('.');\n let current: unknown = obj;\n\n for (const part of parts) {\n if (current === null || current === undefined || typeof current !== 'object') {\n return undefined;\n }\n current = (current as Record<string, unknown>)[part];\n }\n\n return current;\n}\n\n/** Determine if a field value counts as \"filled\" for progress */\nexport function isFieldFilled(value: unknown): boolean {\n if (value === null || value === undefined) return false;\n if (typeof value === 'string') return value.trim().length > 0;\n if (typeof value === 'number') return true;\n if (typeof value === 'boolean') return true;\n if (Array.isArray(value)) return value.length > 0;\n if (typeof value === 'object') {\n // Area entity ref - check for name\n if ('name' in value && typeof (value as Record<string, unknown>).name === 'string') {\n return (value as Record<string, unknown>).name !== '';\n }\n return Object.keys(value).length > 0;\n }\n return false;\n}\n\n/**\n * Calculate progress for a single step.\n * Shared between frontend (stepper UI) and backend (API response).\n */\nexport function calculateStepProgress(\n stepNumber: number,\n formData: Record<string, unknown> | undefined | null,\n): { filled: number; total: number } {\n const fields = UDP_PROGRESS_FIELDS[stepNumber];\n if (!fields) return { filled: 0, total: 0 };\n\n const total = fields.length;\n if (!formData || total === 0) return { filled: 0, total };\n\n let filled = 0;\n for (const fieldPath of fields) {\n if (isFieldFilled(getNestedValue(formData, fieldPath))) {\n filled++;\n }\n }\n\n return { filled, total };\n}\n\n/**\n * Calculate overall progress across all steps.\n * Returns per-step breakdown + overall percentage.\n *\n * Mirrors dating-schema's calculateDatingOverallProgress().\n *\n * @param stepData - Map of step number → form data (e.g., { 1: {...}, 2: {...} })\n */\nexport function calculateOverallProgress(\n stepData: Record<number, Record<string, unknown> | undefined | null>,\n): {\n steps: { stepNumber: number; filled: number; total: number }[];\n totalFilled: number;\n totalFields: number;\n percent: number;\n} {\n const steps: { stepNumber: number; filled: number; total: number }[] = [];\n let totalFilled = 0;\n let totalFields = 0;\n\n for (let stepNumber = 1; stepNumber <= UDP_TOTAL_STEPS; stepNumber++) {\n const { filled, total } = calculateStepProgress(stepNumber, stepData[stepNumber]);\n steps.push({ stepNumber, filled, total });\n totalFilled += filled;\n totalFields += total;\n }\n\n const percent = totalFields > 0 ? Math.round((totalFilled / totalFields) * 100) : 0;\n\n return { steps, totalFilled, totalFields, percent };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"progress-fields.js","sourceRoot":"","sources":["../src/progress-fields.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * UDP Progress Fields — Single source of truth for step progress counting.\n *\n * Used by both frontend (stepper UI) and backend (computeStepProgressCounts).\n * Each step lists the curated fields that determine filled/total progress.\n *\n * Dot-paths (e.g., \"currentAddress.state\") resolve nested subdocument fields.\n * Only these fields count toward progress — extra fields in the schema are ignored.\n */\n\nexport const UDP_PROGRESS_FIELDS: Record<number, readonly string[]> = {\n 1: [\n 'firstName',\n 'middleName',\n 'lastName',\n 'gender',\n 'dateOfBirth',\n 'whatsappNumber',\n 'primaryLanguage',\n 'secondaryLanguages',\n 'familyReligion',\n 'personalReligion',\n 'reservationStatus',\n 'minorityStatus',\n ],\n 2: [\n 'politicalSpectrum',\n 'selfPartyAssociation',\n 'familyPartyAssociation',\n 'publicOfficeAndElections',\n 'networkAndCivicEngagement',\n ],\n 3: [\n 'epicNumber',\n 'willVoteThisTime',\n 'didVoteLastTime',\n 'votingFrequency',\n 'primaryVotingIssues',\n ],\n 4: [\n 'participateInRevolution',\n 'desiredPoliticalPosition',\n 'leadershipSkillset',\n 'politicalExposure',\n 'comfortWithVisibility',\n 'socialInfluenceLevel',\n 'pastExperience',\n 'changesYouWantToBring',\n ],\n 5: ['mbtiType', 'oceanScores'],\n 6: [\n 'highestQualification',\n 'education10th.board',\n 'education10th.schoolName',\n 'education10th.yearOfPassing',\n 'education12th.institutionName',\n 'education12th.yearOfPassing',\n 'diplomas',\n 'graduations',\n 'postGraduations',\n 'doctorates',\n 'postDoctorates',\n 'otherCertificates',\n 'educationNotes',\n ],\n 7: [\n 'employmentStatus',\n 'occupation',\n 'workShift',\n 'comfortableWithShift',\n 'desiredShift',\n 'incomeRange',\n 'dreamOccupation',\n ],\n 8: [\n 'neurodiverseIdentity',\n 'conditions',\n 'sensoryPreferences',\n 'learningStyle',\n 'communicationPreference',\n 'supportNeeds',\n ],\n 9: [\n 'disabilityStatus',\n 'generalHealth',\n 'healthInsurance',\n 'diet',\n 'physicalActivity',\n 'sleepQuality',\n 'substanceUse',\n 'stressLevel',\n ],\n 10: [\n 'viewOnAnimalCruelty',\n 'viewOnLgbtqStatements',\n 'viewOnLgbtqOpinion',\n 'viewOnTransgenderInclusion',\n 'viewOnTransgenderOpinion',\n 'facingCasteDiscrimination',\n 'casteDiscriminationPlaces',\n 'viewOnGenderEquality',\n ],\n 11: [\n 'currentAddress.state',\n 'currentAddress.district',\n 'currentAddress.village',\n 'permanentAddress.state',\n 'permanentAddress.district',\n 'permanentAddress.village',\n 'homeNativePlace.state',\n 'homeNativePlace.district',\n 'ancestralPlace.state',\n 'ancestralPlace.district',\n ],\n 12: [\n 'maritalStatus',\n 'familyMembers',\n 'numberOfDependents',\n 'housingType',\n 'householdIncome',\n 'bplCard',\n 'digitalAccess',\n 'migrationStatus',\n 'landOwnership',\n 'primaryIncomeSource',\n ],\n} as const;\n\n/** Total number of UDP steps */\nexport const UDP_TOTAL_STEPS = 12;\n\n/**\n * Resolve a dot-path (e.g., \"currentAddress.state\") against a data object.\n * Works with both plain objects and Mongoose subdocuments.\n */\nexport function getNestedValue(obj: Record<string, unknown>, path: string): unknown {\n const parts = path.split('.');\n let current: unknown = obj;\n\n for (const part of parts) {\n if (current === null || current === undefined || typeof current !== 'object') {\n return undefined;\n }\n current = (current as Record<string, unknown>)[part];\n }\n\n return current;\n}\n\n/** Determine if a field value counts as \"filled\" for progress */\nexport function isFieldFilled(value: unknown): boolean {\n if (value === null || value === undefined) return false;\n if (typeof value === 'string') return value.trim().length > 0;\n if (typeof value === 'number') return true;\n if (typeof value === 'boolean') return true;\n if (Array.isArray(value)) return value.length > 0;\n if (typeof value === 'object') {\n // Area entity ref - check for name\n if ('name' in value && typeof (value as Record<string, unknown>).name === 'string') {\n return (value as Record<string, unknown>).name !== '';\n }\n return Object.keys(value).length > 0;\n }\n return false;\n}\n\n/**\n * Calculate progress for a single step.\n * Shared between frontend (stepper UI) and backend (API response).\n */\nexport function calculateStepProgress(\n stepNumber: number,\n formData: Record<string, unknown> | undefined | null,\n): { filled: number; total: number } {\n const fields = UDP_PROGRESS_FIELDS[stepNumber];\n if (!fields) return { filled: 0, total: 0 };\n\n const total = fields.length;\n if (!formData || total === 0) return { filled: 0, total };\n\n let filled = 0;\n for (const fieldPath of fields) {\n if (isFieldFilled(getNestedValue(formData, fieldPath))) {\n filled++;\n }\n }\n\n return { filled, total };\n}\n\n/**\n * Calculate overall progress across all steps.\n * Returns per-step breakdown + overall percentage.\n *\n * Mirrors dating-schema's calculateDatingOverallProgress().\n *\n * @param stepData - Map of step number → form data (e.g., { 1: {...}, 2: {...} })\n */\nexport function calculateOverallProgress(\n stepData: Record<number, Record<string, unknown> | undefined | null>,\n): {\n steps: { stepNumber: number; filled: number; total: number }[];\n totalFilled: number;\n totalFields: number;\n percent: number;\n} {\n const steps: { stepNumber: number; filled: number; total: number }[] = [];\n let totalFilled = 0;\n let totalFields = 0;\n\n for (let stepNumber = 1; stepNumber <= UDP_TOTAL_STEPS; stepNumber++) {\n const { filled, total } = calculateStepProgress(stepNumber, stepData[stepNumber]);\n steps.push({ stepNumber, filled, total });\n totalFilled += filled;\n totalFields += total;\n }\n\n const percent = totalFields > 0 ? Math.round((totalFilled / totalFields) * 100) : 0;\n\n return { steps, totalFilled, totalFields, percent };\n}\n"]}
|
package/dist/step-01.schema.d.ts
CHANGED
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { z } from 'zod';
|
|
11
11
|
export declare const step01ProfileSchema: z.ZodObject<{
|
|
12
|
-
firstName: z.ZodString
|
|
12
|
+
firstName: z.ZodOptional<z.ZodString>;
|
|
13
13
|
middleName: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
|
|
14
|
-
lastName: z.ZodString
|
|
14
|
+
lastName: z.ZodOptional<z.ZodString>;
|
|
15
15
|
gender: z.ZodOptional<z.ZodEnum<{
|
|
16
16
|
man: "man";
|
|
17
17
|
woman: "woman";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-01.schema.d.ts","sourceRoot":"","sources":["../src/step-01.schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"step-01.schema.d.ts","sourceRoot":"","sources":["../src/step-01.schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiG9B,CAAC;AAIH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
package/dist/step-01.schema.js
CHANGED
|
@@ -11,17 +11,9 @@ import { z } from 'zod';
|
|
|
11
11
|
import { emptyStringToUndefined, optionalPhoneSchema, optionalTrimmedString, } from './zod-helpers.js';
|
|
12
12
|
// ─── Main Step 01 Schema ────────────────────────────────────────────────────
|
|
13
13
|
export const step01ProfileSchema = z.object({
|
|
14
|
-
firstName: z
|
|
15
|
-
.string()
|
|
16
|
-
.trim()
|
|
17
|
-
.min(1, 'First name is required')
|
|
18
|
-
.max(50, 'First name must be at most 50 characters'),
|
|
14
|
+
firstName: z.string().trim().max(50).optional(),
|
|
19
15
|
middleName: optionalTrimmedString,
|
|
20
|
-
lastName: z
|
|
21
|
-
.string()
|
|
22
|
-
.trim()
|
|
23
|
-
.min(1, 'Last name is required')
|
|
24
|
-
.max(50, 'Last name must be at most 50 characters'),
|
|
16
|
+
lastName: z.string().trim().max(50).optional(),
|
|
25
17
|
gender: z
|
|
26
18
|
.enum([
|
|
27
19
|
'man',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-01.schema.js","sourceRoot":"","sources":["../src/step-01.schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,+EAA+E;AAE/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,SAAS,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"step-01.schema.js","sourceRoot":"","sources":["../src/step-01.schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,+EAA+E;AAE/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC/C,UAAU,EAAE,qBAAqB;IACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAE9C,MAAM,EAAE,CAAC;SACN,IAAI,CAAC;QACJ,KAAK;QACL,OAAO;QACP,YAAY;QACZ,iBAAiB;QACjB,mBAAmB;QACnB,aAAa;QACb,aAAa;QACb,SAAS;QACT,YAAY;QACZ,OAAO;QACP,mBAAmB;KACpB,CAAC;SACD,QAAQ,EAAE;IAEb,WAAW,EAAE,CAAC,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;IAE7E,cAAc,EAAE,mBAAmB;IAEnC,mGAAmG;IACnG,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAE7C,qCAAqC;IACrC,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAEjE;;;OAGG;IACH,cAAc,EAAE,CAAC;SACd,IAAI,CAAC;QACJ,OAAO;QACP,cAAc;QACd,aAAa;QACb,aAAa;QACb,cAAc;QACd,oBAAoB;QACpB,sBAAsB;QACtB,iBAAiB;QACjB,MAAM;QACN,eAAe;QACf,iBAAiB;QACjB,UAAU;QACV,mBAAmB;QACnB,QAAQ;QACR,OAAO;QACP,WAAW;QACX,SAAS;QACT,UAAU;QACV,aAAa;QACb,gBAAgB;QAChB,OAAO;QACP,mBAAmB;KACpB,CAAC;SACD,QAAQ,EAAE;IAEb,yDAAyD;IACzD,gBAAgB,EAAE,CAAC;SAChB,IAAI,CAAC;QACJ,OAAO;QACP,cAAc;QACd,aAAa;QACb,aAAa;QACb,cAAc;QACd,oBAAoB;QACpB,sBAAsB;QACtB,iBAAiB;QACjB,MAAM;QACN,eAAe;QACf,iBAAiB;QACjB,UAAU;QACV,mBAAmB;QACnB,QAAQ;QACR,OAAO;QACP,WAAW;QACX,SAAS;QACT,UAAU;QACV,aAAa;QACb,gBAAgB;QAChB,OAAO;QACP,mBAAmB;KACpB,CAAC;SACD,QAAQ,EAAE;IAEb,mCAAmC;IACnC,iBAAiB,EAAE,CAAC;SACjB,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;SACtF,QAAQ,EAAE;IAEb,gCAAgC;IAChC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;CACjF,CAAC,CAAC","sourcesContent":["/**\n * Step 01 — Profile\n *\n * Fields: firstName, middleName, lastName, gender, dateOfBirth,\n * whatsappNumber, primaryLanguage, secondaryLanguages,\n * familyReligion, personalReligion, reservationStatus, minorityStatus\n *\n * @module udp-schema/step-01\n */\n\nimport { z } from 'zod';\nimport {\n emptyStringToUndefined,\n optionalPhoneSchema,\n optionalTrimmedString,\n} from './zod-helpers.js';\n\n// ─── Main Step 01 Schema ────────────────────────────────────────────────────\n\nexport const step01ProfileSchema = z.object({\n firstName: z.string().trim().max(50).optional(),\n middleName: optionalTrimmedString,\n lastName: z.string().trim().max(50).optional(),\n\n gender: z\n .enum([\n 'man',\n 'woman',\n 'non_binary',\n 'transgender_man',\n 'transgender_woman',\n 'genderqueer',\n 'genderfluid',\n 'agender',\n 'two_spirit',\n 'other',\n 'prefer_not_to_say',\n ])\n .optional(),\n\n dateOfBirth: z.preprocess(emptyStringToUndefined, z.coerce.date().optional()),\n\n whatsappNumber: optionalPhoneSchema,\n\n /** Single language code string (e.g., \"hindi\", \"english\") — matches dating motherTongue options */\n primaryLanguage: z.string().trim().optional(),\n\n /** Array of language code strings */\n secondaryLanguages: z.array(z.string().trim()).max(10).optional(),\n\n /**\n * Family religion — uses dating-schema religion option values.\n * e.g., \"hindu\", \"muslim_sunni\", \"christian_catholic\", etc.\n */\n familyReligion: z\n .enum([\n 'hindu',\n 'muslim_sunni',\n 'muslim_shia',\n 'muslim_sufi',\n 'muslim_other',\n 'christian_catholic',\n 'christian_protestant',\n 'christian_other',\n 'sikh',\n 'jain_digambar',\n 'jain_shwetambar',\n 'buddhist',\n 'parsi_zoroastrian',\n 'jewish',\n 'bahai',\n 'spiritual',\n 'atheist',\n 'agnostic',\n 'no_religion',\n 'inter_religion',\n 'other',\n 'prefer_not_to_say',\n ])\n .optional(),\n\n /** Personal religion — same options as familyReligion */\n personalReligion: z\n .enum([\n 'hindu',\n 'muslim_sunni',\n 'muslim_shia',\n 'muslim_sufi',\n 'muslim_other',\n 'christian_catholic',\n 'christian_protestant',\n 'christian_other',\n 'sikh',\n 'jain_digambar',\n 'jain_shwetambar',\n 'buddhist',\n 'parsi_zoroastrian',\n 'jewish',\n 'bahai',\n 'spiritual',\n 'atheist',\n 'agnostic',\n 'no_religion',\n 'inter_religion',\n 'other',\n 'prefer_not_to_say',\n ])\n .optional(),\n\n /** Reservation / caste category */\n reservationStatus: z\n .enum(['SC', 'ST', 'OBC_NC', 'OBC_C', 'EWS', 'GENERAL', 'DONT_KNOW', 'PREFER_NOT_SAY'])\n .optional(),\n\n /** Minority community status */\n minorityStatus: z.enum(['NO', 'RELIGIOUS', 'LINGUISTIC', 'NOT_SURE']).optional(),\n});\n\n// ─── Inferred types ─────────────────────────────────────────────────────────\n\nexport type Step01ProfileInput = z.infer<typeof step01ProfileSchema>;\n"]}
|
package/dist/step-06.schema.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export declare const certificateEntrySchema: z.ZodObject<{
|
|
|
23
23
|
fieldOrSubject: z.ZodOptional<z.ZodString>;
|
|
24
24
|
}, z.core.$strip>;
|
|
25
25
|
export declare const step06EducationSchema: z.ZodObject<{
|
|
26
|
-
highestQualification: z.ZodEnum<{
|
|
26
|
+
highestQualification: z.ZodOptional<z.ZodEnum<{
|
|
27
27
|
CLASS_10: "CLASS_10";
|
|
28
28
|
CLASS_12: "CLASS_12";
|
|
29
29
|
DIPLOMA: "DIPLOMA";
|
|
@@ -32,7 +32,7 @@ export declare const step06EducationSchema: z.ZodObject<{
|
|
|
32
32
|
PHD: "PHD";
|
|
33
33
|
POST_DOCTORATE: "POST_DOCTORATE";
|
|
34
34
|
OTHER: "OTHER";
|
|
35
|
-
}
|
|
35
|
+
}>>;
|
|
36
36
|
education10th: z.ZodOptional<z.ZodObject<{
|
|
37
37
|
board: z.ZodOptional<z.ZodString>;
|
|
38
38
|
schoolName: z.ZodOptional<z.ZodString>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-06.schema.d.ts","sourceRoot":"","sources":["../src/step-06.schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,iBAAiB;;;;;;;;iBAQ5B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;iBAKjC,CAAC;AAIH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"step-06.schema.d.ts","sourceRoot":"","sources":["../src/step-06.schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,iBAAiB;;;;;;;;iBAQ5B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;iBAKjC,CAAC;AAIH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyDhC,CAAC;AAIH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AACjE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC3E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
|
package/dist/step-06.schema.js
CHANGED
|
@@ -27,7 +27,8 @@ export const certificateEntrySchema = z.object({
|
|
|
27
27
|
// ─── Main Step 06 Schema ────────────────────────────────────────────────────
|
|
28
28
|
export const step06EducationSchema = z.object({
|
|
29
29
|
/** Highest level of formal education completed or in progress */
|
|
30
|
-
highestQualification: z
|
|
30
|
+
highestQualification: z
|
|
31
|
+
.enum([
|
|
31
32
|
'CLASS_10',
|
|
32
33
|
'CLASS_12',
|
|
33
34
|
'DIPLOMA',
|
|
@@ -36,7 +37,8 @@ export const step06EducationSchema = z.object({
|
|
|
36
37
|
'PHD',
|
|
37
38
|
'POST_DOCTORATE',
|
|
38
39
|
'OTHER',
|
|
39
|
-
]
|
|
40
|
+
])
|
|
41
|
+
.optional(),
|
|
40
42
|
/** Class 10 / Secondary school details */
|
|
41
43
|
education10th: z
|
|
42
44
|
.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-06.schema.js","sourceRoot":"","sources":["../src/step-06.schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,gFAAgF;AAEhF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACxC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC7C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACxC,aAAa,EAAE,kBAAkB;IACjC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC5C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC1C,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC7C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC7C,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC;AAEH,+EAA+E;AAE/E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,iEAAiE;IACjE,oBAAoB,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"step-06.schema.js","sourceRoot":"","sources":["../src/step-06.schema.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Step 06 — Education History\n *\n * KEPT from old step-07 schema. Same structure: highest qualification,\n * Class 10 & 12 details, degree repeaters, certificates, notes.\n *\n * @module udp-schema/step-06\n */\n\nimport { z } from 'zod';\nimport { optionalYearSchema } from './zod-helpers.js';\n\n// ─── Reusable sub-schemas ────────────────────────────────────────────────────\n\nexport const degreeEntrySchema = z.object({\n degreeName: z.string().trim().optional(),\n institutionName: z.string().trim().optional(),\n university: z.string().trim().optional(),\n yearOfPassing: optionalYearSchema,\n courseOrStream: z.string().trim().optional(),\n marksOrGrade: z.string().trim().optional(),\n isCurrentlyStudying: z.boolean().optional(),\n});\n\nexport const certificateEntrySchema = z.object({\n certificateName: z.string().trim().optional(),\n institutionName: z.string().trim().optional(),\n yearOfCompletion: optionalYearSchema,\n fieldOrSubject: z.string().trim().optional(),\n});\n\n// ─── Main Step 06 Schema ────────────────────────────────────────────────────\n\nexport const step06EducationSchema = z.object({\n /** Highest level of formal education completed or in progress */\n highestQualification: z\n .enum([\n 'CLASS_10',\n 'CLASS_12',\n 'DIPLOMA',\n 'GRADUATION',\n 'POST_GRAD',\n 'PHD',\n 'POST_DOCTORATE',\n 'OTHER',\n ])\n .optional(),\n\n /** Class 10 / Secondary school details */\n education10th: z\n .object({\n board: z.string().trim().optional(),\n schoolName: z.string().trim().optional(),\n yearOfPassing: optionalYearSchema,\n subjects: z.string().trim().optional(),\n marksObtained: z.string().trim().optional(),\n })\n .optional(),\n\n /** Class 12 / Higher Secondary details */\n education12th: z\n .object({\n institutionName: z.string().trim().optional(),\n boardOrUniversity: z.string().trim().optional(),\n yearOfPassing: optionalYearSchema,\n courseOrStream: z.string().trim().optional(),\n marksOrGrade: z.string().trim().optional(),\n })\n .optional(),\n\n /** List of Diploma qualifications (one or more) */\n diplomas: z.array(degreeEntrySchema).optional(),\n\n /** List of Graduation / Bachelor's degree qualifications */\n graduations: z.array(degreeEntrySchema).optional(),\n\n /** List of Post Graduation / Master's degree qualifications */\n postGraduations: z.array(degreeEntrySchema).optional(),\n\n /** List of Doctorate / PhD qualifications */\n doctorates: z.array(degreeEntrySchema).optional(),\n\n /** List of Post Doctoral research or fellowships */\n postDoctorates: z.array(degreeEntrySchema).optional(),\n\n /** Other certificates, short courses, or professional qualifications */\n otherCertificates: z.array(certificateEntrySchema).optional(),\n\n /** Any additional notes about education background */\n educationNotes: z.string().trim().optional(),\n});\n\n// ─── Inferred types ──────────────────────────────────────────────────────────\n\nexport type DegreeEntryInput = z.infer<typeof degreeEntrySchema>;\nexport type CertificateEntryInput = z.infer<typeof certificateEntrySchema>;\nexport type Step06EducationInput = z.infer<typeof step06EducationSchema>;\n"]}
|
package/dist/validation.d.ts
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* UDP Onboarding Validation — single source of truth.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* UDP is a fully optional profile — users can skip any question.
|
|
5
|
+
* canProceed() always returns true so the Continue button is never blocked.
|
|
6
|
+
*
|
|
7
|
+
* Backend Zod schemas still validate individual field FORMAT when submitted
|
|
8
|
+
* (e.g., dateOfBirth must be a valid Date, whatsappNumber must be 7-15 digits
|
|
9
|
+
* if provided). Those checks happen at submission time, not in the UI flow.
|
|
6
10
|
*
|
|
7
11
|
* @module udp-schema/validation
|
|
8
12
|
*/
|
|
9
13
|
/**
|
|
10
14
|
* Check if the user can proceed from the current sub-step.
|
|
11
15
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* @param form - Current form data (flat key-value object)
|
|
15
|
-
* @returns true if the user can proceed
|
|
16
|
+
* In UDP every field is optional, so this always returns true.
|
|
17
|
+
* The signature matches dating-schema's canProceed() for API consistency.
|
|
16
18
|
*/
|
|
17
|
-
export declare function canProceed(
|
|
19
|
+
export declare function canProceed(_fieldKey: string, _required: boolean, _form: Record<string, unknown>): boolean;
|
|
18
20
|
//# sourceMappingURL=validation.d.ts.map
|
package/dist/validation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAET"}
|
package/dist/validation.js
CHANGED
|
@@ -1,185 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* UDP Onboarding Validation — single source of truth.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* UDP is a fully optional profile — users can skip any question.
|
|
5
|
+
* canProceed() always returns true so the Continue button is never blocked.
|
|
6
|
+
*
|
|
7
|
+
* Backend Zod schemas still validate individual field FORMAT when submitted
|
|
8
|
+
* (e.g., dateOfBirth must be a valid Date, whatsappNumber must be 7-15 digits
|
|
9
|
+
* if provided). Those checks happen at submission time, not in the UI flow.
|
|
6
10
|
*
|
|
7
11
|
* @module udp-schema/validation
|
|
8
12
|
*/
|
|
9
|
-
import { calcAge } from './helpers.js';
|
|
10
13
|
/**
|
|
11
14
|
* Check if the user can proceed from the current sub-step.
|
|
12
15
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* @param form - Current form data (flat key-value object)
|
|
16
|
-
* @returns true if the user can proceed
|
|
16
|
+
* In UDP every field is optional, so this always returns true.
|
|
17
|
+
* The signature matches dating-schema's canProceed() for API consistency.
|
|
17
18
|
*/
|
|
18
|
-
export function canProceed(
|
|
19
|
-
|
|
20
|
-
return true;
|
|
21
|
-
const value = form[fieldKey];
|
|
22
|
-
switch (fieldKey) {
|
|
23
|
-
// ── Names: minimum 1 char trimmed ──
|
|
24
|
-
case 'firstName':
|
|
25
|
-
case 'lastName':
|
|
26
|
-
return typeof value === 'string' && value.trim().length >= 1;
|
|
27
|
-
// ── Date of birth: must exist AND user must be 18+ ──
|
|
28
|
-
case 'dateOfBirth': {
|
|
29
|
-
if (!value)
|
|
30
|
-
return false;
|
|
31
|
-
const age = calcAge(String(value));
|
|
32
|
-
return age !== null && age >= 18;
|
|
33
|
-
}
|
|
34
|
-
// ── Phone: digits only, 7-15 chars ──
|
|
35
|
-
case 'whatsappNumber': {
|
|
36
|
-
if (!value)
|
|
37
|
-
return false;
|
|
38
|
-
const digits = String(value).replace(/\D/g, '');
|
|
39
|
-
return digits.length >= 7 && digits.length <= 15;
|
|
40
|
-
}
|
|
41
|
-
// ── Single-select enums: must be non-empty string ──
|
|
42
|
-
case 'gender':
|
|
43
|
-
case 'familyReligion':
|
|
44
|
-
case 'personalReligion':
|
|
45
|
-
case 'reservationStatus':
|
|
46
|
-
case 'minorityStatus':
|
|
47
|
-
case 'primaryLanguage':
|
|
48
|
-
case 'highestQualification':
|
|
49
|
-
case 'politicalSpectrum':
|
|
50
|
-
case 'employmentStatus':
|
|
51
|
-
case 'maritalStatus':
|
|
52
|
-
case 'willVoteThisTime':
|
|
53
|
-
case 'didVoteLastTime':
|
|
54
|
-
case 'votingFrequency':
|
|
55
|
-
case 'participateInRevolution':
|
|
56
|
-
case 'desiredPoliticalPosition':
|
|
57
|
-
case 'politicalExposure':
|
|
58
|
-
case 'comfortWithVisibility':
|
|
59
|
-
case 'socialInfluenceLevel':
|
|
60
|
-
case 'pastExperience':
|
|
61
|
-
case 'neurodiverseIdentity':
|
|
62
|
-
case 'generalHealth':
|
|
63
|
-
case 'healthInsurance':
|
|
64
|
-
case 'physicalActivity':
|
|
65
|
-
case 'sleepQuality':
|
|
66
|
-
case 'stressLevel':
|
|
67
|
-
case 'workShift':
|
|
68
|
-
case 'comfortableWithShift':
|
|
69
|
-
case 'desiredShift':
|
|
70
|
-
case 'learningStyle':
|
|
71
|
-
case 'communicationPreference':
|
|
72
|
-
case 'viewOnAnimalCruelty':
|
|
73
|
-
case 'facingCasteDiscrimination':
|
|
74
|
-
case 'viewOnGenderEquality':
|
|
75
|
-
case 'housingType':
|
|
76
|
-
case 'bplCard':
|
|
77
|
-
case 'migrationStatus':
|
|
78
|
-
case 'landOwnership':
|
|
79
|
-
case 'primaryIncomeSource':
|
|
80
|
-
case 'diet':
|
|
81
|
-
return typeof value === 'string' && value.length > 0;
|
|
82
|
-
// ── Multi-select arrays: at least 1 selection ──
|
|
83
|
-
case 'secondaryLanguages':
|
|
84
|
-
case 'primaryVotingIssues':
|
|
85
|
-
case 'leadershipSkillset':
|
|
86
|
-
case 'networkAndCivicEngagement':
|
|
87
|
-
case 'conditions':
|
|
88
|
-
case 'sensoryPreferences':
|
|
89
|
-
case 'supportNeeds':
|
|
90
|
-
case 'disabilityStatus':
|
|
91
|
-
case 'substanceUse':
|
|
92
|
-
case 'viewOnLgbtqStatements':
|
|
93
|
-
case 'viewOnTransgenderInclusion':
|
|
94
|
-
case 'casteDiscriminationPlaces':
|
|
95
|
-
case 'familyMembers':
|
|
96
|
-
case 'digitalAccess':
|
|
97
|
-
return Array.isArray(value) && value.length > 0;
|
|
98
|
-
// ── Text inputs: non-empty trimmed string ──
|
|
99
|
-
case 'epicNumber':
|
|
100
|
-
case 'selfPartyAssociation':
|
|
101
|
-
case 'familyPartyAssociation':
|
|
102
|
-
case 'occupation':
|
|
103
|
-
case 'incomeRange':
|
|
104
|
-
case 'householdIncome':
|
|
105
|
-
return typeof value === 'string' && value.trim().length > 0;
|
|
106
|
-
// ── Free text: at least 5 chars ──
|
|
107
|
-
case 'changesYouWantToBring':
|
|
108
|
-
case 'dreamOccupation':
|
|
109
|
-
return typeof value === 'string' && value.trim().length >= 5;
|
|
110
|
-
// ── Number fields ──
|
|
111
|
-
case 'numberOfDependents':
|
|
112
|
-
return typeof value === 'number' && value >= 0;
|
|
113
|
-
// ── Address: at least state and district ──
|
|
114
|
-
case 'currentAddress':
|
|
115
|
-
case 'permanentAddress':
|
|
116
|
-
case 'homeNativePlace':
|
|
117
|
-
case 'ancestralPlace': {
|
|
118
|
-
if (!value || typeof value !== 'object')
|
|
119
|
-
return false;
|
|
120
|
-
const addr = value;
|
|
121
|
-
return !!addr.state && !!addr.district;
|
|
122
|
-
}
|
|
123
|
-
// ── MBTI type ──
|
|
124
|
-
case 'mbtiType':
|
|
125
|
-
return typeof value === 'string' && value.length > 0;
|
|
126
|
-
// ── OCEAN: at least one dimension set ──
|
|
127
|
-
case 'oceanScores': {
|
|
128
|
-
if (!value || typeof value !== 'object')
|
|
129
|
-
return false;
|
|
130
|
-
const scores = value;
|
|
131
|
-
return Object.values(scores).some((v) => typeof v === 'number' && v >= 1 && v <= 100);
|
|
132
|
-
}
|
|
133
|
-
// ── Compound: publicOfficeAndElections ──
|
|
134
|
-
case 'publicOfficeAndElections': {
|
|
135
|
-
if (!value || typeof value !== 'object')
|
|
136
|
-
return false;
|
|
137
|
-
const office = value;
|
|
138
|
-
return !!office.hasHeldOffice;
|
|
139
|
-
}
|
|
140
|
-
// ── Education multi-field: at least one field filled ──
|
|
141
|
-
case 'education10th':
|
|
142
|
-
case 'education12th': {
|
|
143
|
-
if (!value || typeof value !== 'object')
|
|
144
|
-
return false;
|
|
145
|
-
return Object.values(value).some((v) => typeof v === 'string' && v.trim().length > 0);
|
|
146
|
-
}
|
|
147
|
-
// ── Degree repeaters ──
|
|
148
|
-
case 'diplomas':
|
|
149
|
-
case 'graduations':
|
|
150
|
-
case 'postGraduations':
|
|
151
|
-
case 'doctorates':
|
|
152
|
-
case 'postDoctorates': {
|
|
153
|
-
if (!Array.isArray(value) || value.length === 0)
|
|
154
|
-
return false;
|
|
155
|
-
return value.some((entry) => typeof entry.degreeName === 'string' && entry.degreeName.trim().length > 0);
|
|
156
|
-
}
|
|
157
|
-
// ── Certificate repeater ──
|
|
158
|
-
case 'otherCertificates': {
|
|
159
|
-
if (!Array.isArray(value) || value.length === 0)
|
|
160
|
-
return false;
|
|
161
|
-
return value.some((entry) => typeof entry.certificateName === 'string' && entry.certificateName.trim().length > 0);
|
|
162
|
-
}
|
|
163
|
-
// ── Text opinions ──
|
|
164
|
-
case 'educationNotes':
|
|
165
|
-
case 'viewOnLgbtqOpinion':
|
|
166
|
-
case 'viewOnTransgenderOpinion':
|
|
167
|
-
return typeof value === 'string' && value.trim().length > 0;
|
|
168
|
-
// ── Default: strict (not permissive) ──
|
|
169
|
-
default:
|
|
170
|
-
if (value === null || value === undefined)
|
|
171
|
-
return false;
|
|
172
|
-
if (typeof value === 'string')
|
|
173
|
-
return value.trim().length > 0;
|
|
174
|
-
if (typeof value === 'number')
|
|
175
|
-
return true;
|
|
176
|
-
if (typeof value === 'boolean')
|
|
177
|
-
return true;
|
|
178
|
-
if (Array.isArray(value))
|
|
179
|
-
return value.length > 0;
|
|
180
|
-
if (typeof value === 'object')
|
|
181
|
-
return Object.keys(value).length > 0;
|
|
182
|
-
return false;
|
|
183
|
-
}
|
|
19
|
+
export function canProceed(_fieldKey, _required, _form) {
|
|
20
|
+
return true;
|
|
184
21
|
}
|
|
185
22
|
//# sourceMappingURL=validation.js.map
|
package/dist/validation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * UDP Onboarding Validation — single source of truth.\n *\n * Pure functions, no framework dependencies (no React hooks, no DOM).\n * Used by both frontend (canProceed check) and backend (submission validation).\n *\n * @module udp-schema/validation\n */\n\nimport { calcAge } from './helpers.js';\n\n/**\n * Check if the user can proceed from the current sub-step.\n *\n * @param fieldKey - Current field being filled\n * @param required - Whether the field is required\n * @param form - Current form data (flat key-value object)\n * @returns true if the user can proceed\n */\nexport function canProceed(\n fieldKey: string,\n required: boolean,\n form: Record<string, unknown>,\n): boolean {\n if (!required) return true;\n\n const value = form[fieldKey];\n\n switch (fieldKey) {\n // ── Names: minimum 1 char trimmed ──\n case 'firstName':\n case 'lastName':\n return typeof value === 'string' && value.trim().length >= 1;\n\n // ── Date of birth: must exist AND user must be 18+ ──\n case 'dateOfBirth': {\n if (!value) return false;\n const age = calcAge(String(value));\n return age !== null && age >= 18;\n }\n\n // ── Phone: digits only, 7-15 chars ──\n case 'whatsappNumber': {\n if (!value) return false;\n const digits = String(value).replace(/\\D/g, '');\n return digits.length >= 7 && digits.length <= 15;\n }\n\n // ── Single-select enums: must be non-empty string ──\n case 'gender':\n case 'familyReligion':\n case 'personalReligion':\n case 'reservationStatus':\n case 'minorityStatus':\n case 'primaryLanguage':\n case 'highestQualification':\n case 'politicalSpectrum':\n case 'employmentStatus':\n case 'maritalStatus':\n case 'willVoteThisTime':\n case 'didVoteLastTime':\n case 'votingFrequency':\n case 'participateInRevolution':\n case 'desiredPoliticalPosition':\n case 'politicalExposure':\n case 'comfortWithVisibility':\n case 'socialInfluenceLevel':\n case 'pastExperience':\n case 'neurodiverseIdentity':\n case 'generalHealth':\n case 'healthInsurance':\n case 'physicalActivity':\n case 'sleepQuality':\n case 'stressLevel':\n case 'workShift':\n case 'comfortableWithShift':\n case 'desiredShift':\n case 'learningStyle':\n case 'communicationPreference':\n case 'viewOnAnimalCruelty':\n case 'facingCasteDiscrimination':\n case 'viewOnGenderEquality':\n case 'housingType':\n case 'bplCard':\n case 'migrationStatus':\n case 'landOwnership':\n case 'primaryIncomeSource':\n case 'diet':\n return typeof value === 'string' && value.length > 0;\n\n // ── Multi-select arrays: at least 1 selection ──\n case 'secondaryLanguages':\n case 'primaryVotingIssues':\n case 'leadershipSkillset':\n case 'networkAndCivicEngagement':\n case 'conditions':\n case 'sensoryPreferences':\n case 'supportNeeds':\n case 'disabilityStatus':\n case 'substanceUse':\n case 'viewOnLgbtqStatements':\n case 'viewOnTransgenderInclusion':\n case 'casteDiscriminationPlaces':\n case 'familyMembers':\n case 'digitalAccess':\n return Array.isArray(value) && value.length > 0;\n\n // ── Text inputs: non-empty trimmed string ──\n case 'epicNumber':\n case 'selfPartyAssociation':\n case 'familyPartyAssociation':\n case 'occupation':\n case 'incomeRange':\n case 'householdIncome':\n return typeof value === 'string' && value.trim().length > 0;\n\n // ── Free text: at least 5 chars ──\n case 'changesYouWantToBring':\n case 'dreamOccupation':\n return typeof value === 'string' && value.trim().length >= 5;\n\n // ── Number fields ──\n case 'numberOfDependents':\n return typeof value === 'number' && value >= 0;\n\n // ── Address: at least state and district ──\n case 'currentAddress':\n case 'permanentAddress':\n case 'homeNativePlace':\n case 'ancestralPlace': {\n if (!value || typeof value !== 'object') return false;\n const addr = value as Record<string, unknown>;\n return !!addr.state && !!addr.district;\n }\n\n // ── MBTI type ──\n case 'mbtiType':\n return typeof value === 'string' && value.length > 0;\n\n // ── OCEAN: at least one dimension set ──\n case 'oceanScores': {\n if (!value || typeof value !== 'object') return false;\n const scores = value as Record<string, unknown>;\n return Object.values(scores).some((v) => typeof v === 'number' && v >= 1 && v <= 100);\n }\n\n // ── Compound: publicOfficeAndElections ──\n case 'publicOfficeAndElections': {\n if (!value || typeof value !== 'object') return false;\n const office = value as Record<string, unknown>;\n return !!office.hasHeldOffice;\n }\n\n // ── Education multi-field: at least one field filled ──\n case 'education10th':\n case 'education12th': {\n if (!value || typeof value !== 'object') return false;\n return Object.values(value as Record<string, unknown>).some(\n (v) => typeof v === 'string' && v.trim().length > 0,\n );\n }\n\n // ── Degree repeaters ──\n case 'diplomas':\n case 'graduations':\n case 'postGraduations':\n case 'doctorates':\n case 'postDoctorates': {\n if (!Array.isArray(value) || value.length === 0) return false;\n return value.some(\n (entry: Record<string, unknown>) =>\n typeof entry.degreeName === 'string' && entry.degreeName.trim().length > 0,\n );\n }\n\n // ── Certificate repeater ──\n case 'otherCertificates': {\n if (!Array.isArray(value) || value.length === 0) return false;\n return value.some(\n (entry: Record<string, unknown>) =>\n typeof entry.certificateName === 'string' && entry.certificateName.trim().length > 0,\n );\n }\n\n // ── Text opinions ──\n case 'educationNotes':\n case 'viewOnLgbtqOpinion':\n case 'viewOnTransgenderOpinion':\n return typeof value === 'string' && value.trim().length > 0;\n\n // ── Default: strict (not permissive) ──\n default:\n if (value === null || value === undefined) return false;\n if (typeof value === 'string') return value.trim().length > 0;\n if (typeof value === 'number') return true;\n if (typeof value === 'boolean') return true;\n if (Array.isArray(value)) return value.length > 0;\n if (typeof value === 'object') return Object.keys(value).length > 0;\n return false;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CACxB,SAAiB,EACjB,SAAkB,EAClB,KAA8B;IAE9B,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["/**\n * UDP Onboarding Validation — single source of truth.\n *\n * UDP is a fully optional profile — users can skip any question.\n * canProceed() always returns true so the Continue button is never blocked.\n *\n * Backend Zod schemas still validate individual field FORMAT when submitted\n * (e.g., dateOfBirth must be a valid Date, whatsappNumber must be 7-15 digits\n * if provided). Those checks happen at submission time, not in the UI flow.\n *\n * @module udp-schema/validation\n */\n\n/**\n * Check if the user can proceed from the current sub-step.\n *\n * In UDP every field is optional, so this always returns true.\n * The signature matches dating-schema's canProceed() for API consistency.\n */\nexport function canProceed(\n _fieldKey: string,\n _required: boolean,\n _form: Record<string, unknown>,\n): boolean {\n return true;\n}\n"]}
|