datakeen-session-react 1.1.160 → 1.1.162
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/cjs/components/document-collection/DocumentError.js +2 -0
- package/dist/cjs/components/document-collection/DocumentError.js.map +1 -1
- package/dist/cjs/components/selfie/SelfieConfirmation.js +1 -1
- package/dist/cjs/components/selfie/SelfieConfirmation.js.map +1 -1
- package/dist/cjs/components/selfie/Video.js +2 -2
- package/dist/cjs/components/selfie/Video.js.map +1 -1
- package/dist/cjs/components/selfie/hooks/useVideoRecorderStyles.js +2 -2
- package/dist/cjs/components/selfie/hooks/useVideoRecorderStyles.js.map +1 -1
- package/dist/cjs/components/selfie/selfie-flow/SelfieFlow.js +7 -3
- package/dist/cjs/components/selfie/selfie-flow/SelfieFlow.js.map +1 -1
- package/dist/cjs/components/selfie/selfie-flow/SelfieProcessing.js +2 -7
- package/dist/cjs/components/selfie/selfie-flow/SelfieProcessing.js.map +1 -1
- package/dist/cjs/components/selfie/selfie-flow/SelfieRecorder.js +2 -2
- package/dist/cjs/components/selfie/selfie-flow/SelfieRecorder.js.map +1 -1
- package/dist/cjs/components/session/DocumentCheck.js +2 -2
- package/dist/cjs/components/session/DocumentCheck.js.map +1 -1
- package/dist/cjs/components/session/Selfie.js +7 -5
- package/dist/cjs/components/session/Selfie.js.map +1 -1
- package/dist/cjs/components/session/UserInputForm/CustomFormFields.js +42 -45
- package/dist/cjs/components/session/UserInputForm/CustomFormFields.js.map +1 -1
- package/dist/cjs/components/session/UserInputForm/DatePickerField.js +154 -0
- package/dist/cjs/components/session/UserInputForm/DatePickerField.js.map +1 -0
- package/dist/cjs/components/session/UserInputForm.js +2 -2
- package/dist/cjs/components/session/UserInputForm.js.map +1 -1
- package/dist/cjs/components/signature-electronic/DocusealSignature.js +2 -1
- package/dist/cjs/components/signature-electronic/DocusealSignature.js.map +1 -1
- package/dist/cjs/components/signature-electronic/SignatureElectronic.js +2 -1
- package/dist/cjs/components/signature-electronic/SignatureElectronic.js.map +1 -1
- package/dist/cjs/components/signature-electronic/SignatureElectronicIntroduction.js +2 -1
- package/dist/cjs/components/signature-electronic/SignatureElectronicIntroduction.js.map +1 -1
- package/dist/cjs/components/start-flow/CGU.js +5 -2
- package/dist/cjs/components/start-flow/CGU.js.map +1 -1
- package/dist/cjs/components/start-flow/Start.js +5 -2
- package/dist/cjs/components/start-flow/Start.js.map +1 -1
- package/dist/cjs/components/template/ExternalVerificationNodeHandler.js +2 -1
- package/dist/cjs/components/template/ExternalVerificationNodeHandler.js.map +1 -1
- package/dist/cjs/components/ui/Button.js +5 -3
- package/dist/cjs/components/ui/Button.js.map +1 -1
- package/dist/cjs/hooks/useUserInputForm.js +90 -29
- package/dist/cjs/hooks/useUserInputForm.js.map +1 -1
- package/dist/cjs/i18n/en.json.js +19 -5
- package/dist/cjs/i18n/en.json.js.map +1 -1
- package/dist/cjs/i18n/fr.json.js +19 -5
- package/dist/cjs/i18n/fr.json.js.map +1 -1
- package/dist/cjs/index.css.js +1 -1
- package/dist/cjs/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +13 -0
- package/dist/cjs/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +1 -0
- package/dist/cjs/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +67 -0
- package/dist/cjs/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +1 -0
- package/dist/cjs/node_modules/date-fns/locale/_lib/buildMatchFn.js +62 -0
- package/dist/cjs/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +1 -0
- package/dist/cjs/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +25 -0
- package/dist/cjs/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +1 -0
- package/dist/cjs/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +106 -0
- package/dist/cjs/node_modules/date-fns/locale/en-US/_lib/formatDistance.js.map +1 -0
- package/dist/cjs/node_modules/date-fns/locale/en-US/_lib/formatLong.js +44 -0
- package/dist/cjs/node_modules/date-fns/locale/en-US/_lib/formatLong.js.map +1 -0
- package/dist/cjs/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +16 -0
- package/dist/cjs/node_modules/date-fns/locale/en-US/_lib/formatRelative.js.map +1 -0
- package/dist/cjs/node_modules/date-fns/locale/en-US/_lib/localize.js +192 -0
- package/dist/cjs/node_modules/date-fns/locale/en-US/_lib/localize.js.map +1 -0
- package/dist/cjs/node_modules/date-fns/locale/en-US/_lib/match.js +137 -0
- package/dist/cjs/node_modules/date-fns/locale/en-US/_lib/match.js.map +1 -0
- package/dist/cjs/node_modules/date-fns/locale/en-US.js +31 -0
- package/dist/cjs/node_modules/date-fns/locale/en-US.js.map +1 -0
- package/dist/cjs/node_modules/date-fns/locale/fr/_lib/formatDistance.js +105 -0
- package/dist/cjs/node_modules/date-fns/locale/fr/_lib/formatDistance.js.map +1 -0
- package/dist/cjs/node_modules/date-fns/locale/fr/_lib/formatLong.js +44 -0
- package/dist/cjs/node_modules/date-fns/locale/fr/_lib/formatLong.js.map +1 -0
- package/dist/cjs/node_modules/date-fns/locale/fr/_lib/formatRelative.js +16 -0
- package/dist/cjs/node_modules/date-fns/locale/fr/_lib/formatRelative.js.map +1 -0
- package/dist/cjs/node_modules/date-fns/locale/fr/_lib/localize.js +170 -0
- package/dist/cjs/node_modules/date-fns/locale/fr/_lib/localize.js.map +1 -0
- package/dist/cjs/node_modules/date-fns/locale/fr/_lib/match.js +138 -0
- package/dist/cjs/node_modules/date-fns/locale/fr/_lib/match.js.map +1 -0
- package/dist/cjs/node_modules/date-fns/locale/fr.js +31 -0
- package/dist/cjs/node_modules/date-fns/locale/fr.js.map +1 -0
- package/dist/cjs/services/documentTemplate.js +1 -1
- package/dist/cjs/services/documentTemplate.js.map +1 -1
- package/dist/cjs/types/session.js +6 -0
- package/dist/cjs/types/session.js.map +1 -0
- package/dist/cjs/utils/customFieldValidation.js +62 -0
- package/dist/cjs/utils/customFieldValidation.js.map +1 -0
- package/dist/esm/components/document-collection/DocumentError.js +2 -0
- package/dist/esm/components/document-collection/DocumentError.js.map +1 -1
- package/dist/esm/components/selfie/SelfieConfirmation.js +1 -1
- package/dist/esm/components/selfie/SelfieConfirmation.js.map +1 -1
- package/dist/esm/components/selfie/Video.js +2 -2
- package/dist/esm/components/selfie/Video.js.map +1 -1
- package/dist/esm/components/selfie/hooks/useVideoRecorderStyles.js +2 -2
- package/dist/esm/components/selfie/hooks/useVideoRecorderStyles.js.map +1 -1
- package/dist/esm/components/selfie/selfie-flow/SelfieFlow.js +7 -3
- package/dist/esm/components/selfie/selfie-flow/SelfieFlow.js.map +1 -1
- package/dist/esm/components/selfie/selfie-flow/SelfieProcessing.js +2 -7
- package/dist/esm/components/selfie/selfie-flow/SelfieProcessing.js.map +1 -1
- package/dist/esm/components/selfie/selfie-flow/SelfieRecorder.js +2 -2
- package/dist/esm/components/selfie/selfie-flow/SelfieRecorder.js.map +1 -1
- package/dist/esm/components/session/DocumentCheck.js +2 -2
- package/dist/esm/components/session/DocumentCheck.js.map +1 -1
- package/dist/esm/components/session/Selfie.js +7 -5
- package/dist/esm/components/session/Selfie.js.map +1 -1
- package/dist/esm/components/session/UserInputForm/CustomFormFields.js +42 -45
- package/dist/esm/components/session/UserInputForm/CustomFormFields.js.map +1 -1
- package/dist/esm/components/session/UserInputForm/DatePickerField.js +132 -0
- package/dist/esm/components/session/UserInputForm/DatePickerField.js.map +1 -0
- package/dist/esm/components/session/UserInputForm.js +2 -2
- package/dist/esm/components/session/UserInputForm.js.map +1 -1
- package/dist/esm/components/signature-electronic/DocusealSignature.js +2 -1
- package/dist/esm/components/signature-electronic/DocusealSignature.js.map +1 -1
- package/dist/esm/components/signature-electronic/SignatureElectronic.js +2 -1
- package/dist/esm/components/signature-electronic/SignatureElectronic.js.map +1 -1
- package/dist/esm/components/signature-electronic/SignatureElectronicIntroduction.js +2 -1
- package/dist/esm/components/signature-electronic/SignatureElectronicIntroduction.js.map +1 -1
- package/dist/esm/components/start-flow/CGU.js +5 -2
- package/dist/esm/components/start-flow/CGU.js.map +1 -1
- package/dist/esm/components/start-flow/Start.js +5 -2
- package/dist/esm/components/start-flow/Start.js.map +1 -1
- package/dist/esm/components/template/ExternalVerificationNodeHandler.js +2 -1
- package/dist/esm/components/template/ExternalVerificationNodeHandler.js.map +1 -1
- package/dist/esm/components/ui/Button.js +5 -3
- package/dist/esm/components/ui/Button.js.map +1 -1
- package/dist/esm/components/ui/SelectComponent.js +3 -3
- package/dist/esm/components/ui/SelectComponent.js.map +1 -1
- package/dist/esm/hooks/useUserInputForm.js +92 -31
- package/dist/esm/hooks/useUserInputForm.js.map +1 -1
- package/dist/esm/i18n/en.json.js +19 -5
- package/dist/esm/i18n/en.json.js.map +1 -1
- package/dist/esm/i18n/fr.json.js +19 -5
- package/dist/esm/i18n/fr.json.js.map +1 -1
- package/dist/esm/index.css.js +1 -1
- package/dist/esm/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +11 -0
- package/dist/esm/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +1 -0
- package/dist/esm/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +65 -0
- package/dist/esm/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +1 -0
- package/dist/esm/node_modules/date-fns/locale/_lib/buildMatchFn.js +60 -0
- package/dist/esm/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +1 -0
- package/dist/esm/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +23 -0
- package/dist/esm/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +1 -0
- package/dist/esm/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +104 -0
- package/dist/esm/node_modules/date-fns/locale/en-US/_lib/formatDistance.js.map +1 -0
- package/dist/esm/node_modules/date-fns/locale/en-US/_lib/formatLong.js +42 -0
- package/dist/esm/node_modules/date-fns/locale/en-US/_lib/formatLong.js.map +1 -0
- package/dist/esm/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +14 -0
- package/dist/esm/node_modules/date-fns/locale/en-US/_lib/formatRelative.js.map +1 -0
- package/dist/esm/node_modules/date-fns/locale/en-US/_lib/localize.js +190 -0
- package/dist/esm/node_modules/date-fns/locale/en-US/_lib/localize.js.map +1 -0
- package/dist/esm/node_modules/date-fns/locale/en-US/_lib/match.js +135 -0
- package/dist/esm/node_modules/date-fns/locale/en-US/_lib/match.js.map +1 -0
- package/dist/esm/node_modules/date-fns/locale/en-US.js +29 -0
- package/dist/esm/node_modules/date-fns/locale/en-US.js.map +1 -0
- package/dist/esm/node_modules/date-fns/locale/fr/_lib/formatDistance.js +103 -0
- package/dist/esm/node_modules/date-fns/locale/fr/_lib/formatDistance.js.map +1 -0
- package/dist/esm/node_modules/date-fns/locale/fr/_lib/formatLong.js +42 -0
- package/dist/esm/node_modules/date-fns/locale/fr/_lib/formatLong.js.map +1 -0
- package/dist/esm/node_modules/date-fns/locale/fr/_lib/formatRelative.js +14 -0
- package/dist/esm/node_modules/date-fns/locale/fr/_lib/formatRelative.js.map +1 -0
- package/dist/esm/node_modules/date-fns/locale/fr/_lib/localize.js +168 -0
- package/dist/esm/node_modules/date-fns/locale/fr/_lib/localize.js.map +1 -0
- package/dist/esm/node_modules/date-fns/locale/fr/_lib/match.js +136 -0
- package/dist/esm/node_modules/date-fns/locale/fr/_lib/match.js.map +1 -0
- package/dist/esm/node_modules/date-fns/locale/fr.js +29 -0
- package/dist/esm/node_modules/date-fns/locale/fr.js.map +1 -0
- package/dist/esm/providers/I18nProvider.js +2 -2
- package/dist/esm/providers/I18nProvider.js.map +1 -1
- package/dist/esm/services/documentTemplate.js +1 -1
- package/dist/esm/services/documentTemplate.js.map +1 -1
- package/dist/esm/types/session.js +4 -0
- package/dist/esm/types/session.js.map +1 -0
- package/dist/esm/utils/customFieldValidation.js +56 -0
- package/dist/esm/utils/customFieldValidation.js.map +1 -0
- package/jest.config.js +1 -0
- package/package.json +4 -1
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { buildLocalizeFn } from '../../_lib/buildLocalizeFn.js';
|
|
2
|
+
|
|
3
|
+
const eraValues = {
|
|
4
|
+
narrow: ["av. J.-C", "ap. J.-C"],
|
|
5
|
+
abbreviated: ["av. J.-C", "ap. J.-C"],
|
|
6
|
+
wide: ["avant Jésus-Christ", "après Jésus-Christ"],
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
const quarterValues = {
|
|
10
|
+
narrow: ["T1", "T2", "T3", "T4"],
|
|
11
|
+
abbreviated: ["1er trim.", "2ème trim.", "3ème trim.", "4ème trim."],
|
|
12
|
+
wide: ["1er trimestre", "2ème trimestre", "3ème trimestre", "4ème trimestre"],
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const monthValues = {
|
|
16
|
+
narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
|
|
17
|
+
abbreviated: [
|
|
18
|
+
"janv.",
|
|
19
|
+
"févr.",
|
|
20
|
+
"mars",
|
|
21
|
+
"avr.",
|
|
22
|
+
"mai",
|
|
23
|
+
"juin",
|
|
24
|
+
"juil.",
|
|
25
|
+
"août",
|
|
26
|
+
"sept.",
|
|
27
|
+
"oct.",
|
|
28
|
+
"nov.",
|
|
29
|
+
"déc.",
|
|
30
|
+
],
|
|
31
|
+
|
|
32
|
+
wide: [
|
|
33
|
+
"janvier",
|
|
34
|
+
"février",
|
|
35
|
+
"mars",
|
|
36
|
+
"avril",
|
|
37
|
+
"mai",
|
|
38
|
+
"juin",
|
|
39
|
+
"juillet",
|
|
40
|
+
"août",
|
|
41
|
+
"septembre",
|
|
42
|
+
"octobre",
|
|
43
|
+
"novembre",
|
|
44
|
+
"décembre",
|
|
45
|
+
],
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const dayValues = {
|
|
49
|
+
narrow: ["D", "L", "M", "M", "J", "V", "S"],
|
|
50
|
+
short: ["di", "lu", "ma", "me", "je", "ve", "sa"],
|
|
51
|
+
abbreviated: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
|
|
52
|
+
|
|
53
|
+
wide: [
|
|
54
|
+
"dimanche",
|
|
55
|
+
"lundi",
|
|
56
|
+
"mardi",
|
|
57
|
+
"mercredi",
|
|
58
|
+
"jeudi",
|
|
59
|
+
"vendredi",
|
|
60
|
+
"samedi",
|
|
61
|
+
],
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const dayPeriodValues = {
|
|
65
|
+
narrow: {
|
|
66
|
+
am: "AM",
|
|
67
|
+
pm: "PM",
|
|
68
|
+
midnight: "minuit",
|
|
69
|
+
noon: "midi",
|
|
70
|
+
morning: "mat.",
|
|
71
|
+
afternoon: "ap.m.",
|
|
72
|
+
evening: "soir",
|
|
73
|
+
night: "mat.",
|
|
74
|
+
},
|
|
75
|
+
abbreviated: {
|
|
76
|
+
am: "AM",
|
|
77
|
+
pm: "PM",
|
|
78
|
+
midnight: "minuit",
|
|
79
|
+
noon: "midi",
|
|
80
|
+
morning: "matin",
|
|
81
|
+
afternoon: "après-midi",
|
|
82
|
+
evening: "soir",
|
|
83
|
+
night: "matin",
|
|
84
|
+
},
|
|
85
|
+
wide: {
|
|
86
|
+
am: "AM",
|
|
87
|
+
pm: "PM",
|
|
88
|
+
midnight: "minuit",
|
|
89
|
+
noon: "midi",
|
|
90
|
+
morning: "du matin",
|
|
91
|
+
afternoon: "de l’après-midi",
|
|
92
|
+
evening: "du soir",
|
|
93
|
+
night: "du matin",
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
const ordinalNumber = (dirtyNumber, options) => {
|
|
98
|
+
const number = Number(dirtyNumber);
|
|
99
|
+
const unit = options?.unit;
|
|
100
|
+
|
|
101
|
+
if (number === 0) return "0";
|
|
102
|
+
|
|
103
|
+
const feminineUnits = ["year", "week", "hour", "minute", "second"];
|
|
104
|
+
let suffix;
|
|
105
|
+
|
|
106
|
+
if (number === 1) {
|
|
107
|
+
suffix = unit && feminineUnits.includes(unit) ? "ère" : "er";
|
|
108
|
+
} else {
|
|
109
|
+
suffix = "ème";
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return number + suffix;
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
const LONG_MONTHS_TOKENS = ["MMM", "MMMM"];
|
|
116
|
+
|
|
117
|
+
const localize = {
|
|
118
|
+
preprocessor: (date, parts) => {
|
|
119
|
+
// Replaces the `do` tokens with `d` when used with long month tokens and the day of the month is greater than one.
|
|
120
|
+
// Use case "do MMMM" => 1er août, 29 août
|
|
121
|
+
// see https://github.com/date-fns/date-fns/issues/1391
|
|
122
|
+
|
|
123
|
+
if (date.getDate() === 1) return parts;
|
|
124
|
+
|
|
125
|
+
const hasLongMonthToken = parts.some(
|
|
126
|
+
(part) => part.isToken && LONG_MONTHS_TOKENS.includes(part.value),
|
|
127
|
+
);
|
|
128
|
+
|
|
129
|
+
if (!hasLongMonthToken) return parts;
|
|
130
|
+
|
|
131
|
+
return parts.map((part) =>
|
|
132
|
+
part.isToken && part.value === "do"
|
|
133
|
+
? { isToken: true, value: "d" }
|
|
134
|
+
: part,
|
|
135
|
+
);
|
|
136
|
+
},
|
|
137
|
+
|
|
138
|
+
ordinalNumber,
|
|
139
|
+
|
|
140
|
+
era: buildLocalizeFn({
|
|
141
|
+
values: eraValues,
|
|
142
|
+
defaultWidth: "wide",
|
|
143
|
+
}),
|
|
144
|
+
|
|
145
|
+
quarter: buildLocalizeFn({
|
|
146
|
+
values: quarterValues,
|
|
147
|
+
defaultWidth: "wide",
|
|
148
|
+
argumentCallback: (quarter) => quarter - 1,
|
|
149
|
+
}),
|
|
150
|
+
|
|
151
|
+
month: buildLocalizeFn({
|
|
152
|
+
values: monthValues,
|
|
153
|
+
defaultWidth: "wide",
|
|
154
|
+
}),
|
|
155
|
+
|
|
156
|
+
day: buildLocalizeFn({
|
|
157
|
+
values: dayValues,
|
|
158
|
+
defaultWidth: "wide",
|
|
159
|
+
}),
|
|
160
|
+
|
|
161
|
+
dayPeriod: buildLocalizeFn({
|
|
162
|
+
values: dayPeriodValues,
|
|
163
|
+
defaultWidth: "wide",
|
|
164
|
+
}),
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
export { localize };
|
|
168
|
+
//# sourceMappingURL=localize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localize.js","sources":["../../../../../../../node_modules/date-fns/locale/fr/_lib/localize.js"],"sourcesContent":["import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"av. J.-C\", \"ap. J.-C\"],\n abbreviated: [\"av. J.-C\", \"ap. J.-C\"],\n wide: [\"avant Jésus-Christ\", \"après Jésus-Christ\"],\n};\n\nconst quarterValues = {\n narrow: [\"T1\", \"T2\", \"T3\", \"T4\"],\n abbreviated: [\"1er trim.\", \"2ème trim.\", \"3ème trim.\", \"4ème trim.\"],\n wide: [\"1er trimestre\", \"2ème trimestre\", \"3ème trimestre\", \"4ème trimestre\"],\n};\n\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"janv.\",\n \"févr.\",\n \"mars\",\n \"avr.\",\n \"mai\",\n \"juin\",\n \"juil.\",\n \"août\",\n \"sept.\",\n \"oct.\",\n \"nov.\",\n \"déc.\",\n ],\n\n wide: [\n \"janvier\",\n \"février\",\n \"mars\",\n \"avril\",\n \"mai\",\n \"juin\",\n \"juillet\",\n \"août\",\n \"septembre\",\n \"octobre\",\n \"novembre\",\n \"décembre\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"D\", \"L\", \"M\", \"M\", \"J\", \"V\", \"S\"],\n short: [\"di\", \"lu\", \"ma\", \"me\", \"je\", \"ve\", \"sa\"],\n abbreviated: [\"dim.\", \"lun.\", \"mar.\", \"mer.\", \"jeu.\", \"ven.\", \"sam.\"],\n\n wide: [\n \"dimanche\",\n \"lundi\",\n \"mardi\",\n \"mercredi\",\n \"jeudi\",\n \"vendredi\",\n \"samedi\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"minuit\",\n noon: \"midi\",\n morning: \"mat.\",\n afternoon: \"ap.m.\",\n evening: \"soir\",\n night: \"mat.\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"minuit\",\n noon: \"midi\",\n morning: \"matin\",\n afternoon: \"après-midi\",\n evening: \"soir\",\n night: \"matin\",\n },\n wide: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"minuit\",\n noon: \"midi\",\n morning: \"du matin\",\n afternoon: \"de l’après-midi\",\n evening: \"du soir\",\n night: \"du matin\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n const number = Number(dirtyNumber);\n const unit = options?.unit;\n\n if (number === 0) return \"0\";\n\n const feminineUnits = [\"year\", \"week\", \"hour\", \"minute\", \"second\"];\n let suffix;\n\n if (number === 1) {\n suffix = unit && feminineUnits.includes(unit) ? \"ère\" : \"er\";\n } else {\n suffix = \"ème\";\n }\n\n return number + suffix;\n};\n\nconst LONG_MONTHS_TOKENS = [\"MMM\", \"MMMM\"];\n\nexport const localize = {\n preprocessor: (date, parts) => {\n // Replaces the `do` tokens with `d` when used with long month tokens and the day of the month is greater than one.\n // Use case \"do MMMM\" => 1er août, 29 août\n // see https://github.com/date-fns/date-fns/issues/1391\n\n if (date.getDate() === 1) return parts;\n\n const hasLongMonthToken = parts.some(\n (part) => part.isToken && LONG_MONTHS_TOKENS.includes(part.value),\n );\n\n if (!hasLongMonthToken) return parts;\n\n return parts.map((part) =>\n part.isToken && part.value === \"do\"\n ? { isToken: true, value: \"d\" }\n : part,\n );\n },\n\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n }),\n};\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { buildMatchFn } from '../../_lib/buildMatchFn.js';
|
|
2
|
+
import { buildMatchPatternFn } from '../../_lib/buildMatchPatternFn.js';
|
|
3
|
+
|
|
4
|
+
const matchOrdinalNumberPattern = /^(\d+)(ième|ère|ème|er|e)?/i;
|
|
5
|
+
const parseOrdinalNumberPattern = /\d+/i;
|
|
6
|
+
|
|
7
|
+
const matchEraPatterns = {
|
|
8
|
+
narrow: /^(av\.J\.C|ap\.J\.C|ap\.J\.-C)/i,
|
|
9
|
+
abbreviated: /^(av\.J\.-C|av\.J-C|apr\.J\.-C|apr\.J-C|ap\.J-C)/i,
|
|
10
|
+
wide: /^(avant Jésus-Christ|après Jésus-Christ)/i,
|
|
11
|
+
};
|
|
12
|
+
const parseEraPatterns = {
|
|
13
|
+
any: [/^av/i, /^ap/i],
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const matchQuarterPatterns = {
|
|
17
|
+
narrow: /^T?[1234]/i,
|
|
18
|
+
abbreviated: /^[1234](er|ème|e)? trim\.?/i,
|
|
19
|
+
wide: /^[1234](er|ème|e)? trimestre/i,
|
|
20
|
+
};
|
|
21
|
+
const parseQuarterPatterns = {
|
|
22
|
+
any: [/1/i, /2/i, /3/i, /4/i],
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const matchMonthPatterns = {
|
|
26
|
+
narrow: /^[jfmasond]/i,
|
|
27
|
+
abbreviated:
|
|
28
|
+
/^(janv|févr|mars|avr|mai|juin|juill|juil|août|sept|oct|nov|déc)\.?/i,
|
|
29
|
+
wide: /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,
|
|
30
|
+
};
|
|
31
|
+
const parseMonthPatterns = {
|
|
32
|
+
narrow: [
|
|
33
|
+
/^j/i,
|
|
34
|
+
/^f/i,
|
|
35
|
+
/^m/i,
|
|
36
|
+
/^a/i,
|
|
37
|
+
/^m/i,
|
|
38
|
+
/^j/i,
|
|
39
|
+
/^j/i,
|
|
40
|
+
/^a/i,
|
|
41
|
+
/^s/i,
|
|
42
|
+
/^o/i,
|
|
43
|
+
/^n/i,
|
|
44
|
+
/^d/i,
|
|
45
|
+
],
|
|
46
|
+
|
|
47
|
+
any: [
|
|
48
|
+
/^ja/i,
|
|
49
|
+
/^f/i,
|
|
50
|
+
/^mar/i,
|
|
51
|
+
/^av/i,
|
|
52
|
+
/^ma/i,
|
|
53
|
+
/^juin/i,
|
|
54
|
+
/^juil/i,
|
|
55
|
+
/^ao/i,
|
|
56
|
+
/^s/i,
|
|
57
|
+
/^o/i,
|
|
58
|
+
/^n/i,
|
|
59
|
+
/^d/i,
|
|
60
|
+
],
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const matchDayPatterns = {
|
|
64
|
+
narrow: /^[lmjvsd]/i,
|
|
65
|
+
short: /^(di|lu|ma|me|je|ve|sa)/i,
|
|
66
|
+
abbreviated: /^(dim|lun|mar|mer|jeu|ven|sam)\.?/i,
|
|
67
|
+
wide: /^(dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)/i,
|
|
68
|
+
};
|
|
69
|
+
const parseDayPatterns = {
|
|
70
|
+
narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^j/i, /^v/i, /^s/i],
|
|
71
|
+
any: [/^di/i, /^lu/i, /^ma/i, /^me/i, /^je/i, /^ve/i, /^sa/i],
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
const matchDayPeriodPatterns = {
|
|
75
|
+
narrow: /^(a|p|minuit|midi|mat\.?|ap\.?m\.?|soir|nuit)/i,
|
|
76
|
+
any: /^([ap]\.?\s?m\.?|du matin|de l'après[-\s]midi|du soir|de la nuit)/i,
|
|
77
|
+
};
|
|
78
|
+
const parseDayPeriodPatterns = {
|
|
79
|
+
any: {
|
|
80
|
+
am: /^a/i,
|
|
81
|
+
pm: /^p/i,
|
|
82
|
+
midnight: /^min/i,
|
|
83
|
+
noon: /^mid/i,
|
|
84
|
+
morning: /mat/i,
|
|
85
|
+
afternoon: /ap/i,
|
|
86
|
+
evening: /soir/i,
|
|
87
|
+
night: /nuit/i,
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
const match = {
|
|
92
|
+
ordinalNumber: buildMatchPatternFn({
|
|
93
|
+
matchPattern: matchOrdinalNumberPattern,
|
|
94
|
+
parsePattern: parseOrdinalNumberPattern,
|
|
95
|
+
valueCallback: (value) => parseInt(value),
|
|
96
|
+
}),
|
|
97
|
+
|
|
98
|
+
era: buildMatchFn({
|
|
99
|
+
matchPatterns: matchEraPatterns,
|
|
100
|
+
defaultMatchWidth: "wide",
|
|
101
|
+
parsePatterns: parseEraPatterns,
|
|
102
|
+
defaultParseWidth: "any",
|
|
103
|
+
}),
|
|
104
|
+
|
|
105
|
+
quarter: buildMatchFn({
|
|
106
|
+
matchPatterns: matchQuarterPatterns,
|
|
107
|
+
defaultMatchWidth: "wide",
|
|
108
|
+
parsePatterns: parseQuarterPatterns,
|
|
109
|
+
defaultParseWidth: "any",
|
|
110
|
+
valueCallback: (index) => index + 1,
|
|
111
|
+
}),
|
|
112
|
+
|
|
113
|
+
month: buildMatchFn({
|
|
114
|
+
matchPatterns: matchMonthPatterns,
|
|
115
|
+
defaultMatchWidth: "wide",
|
|
116
|
+
parsePatterns: parseMonthPatterns,
|
|
117
|
+
defaultParseWidth: "any",
|
|
118
|
+
}),
|
|
119
|
+
|
|
120
|
+
day: buildMatchFn({
|
|
121
|
+
matchPatterns: matchDayPatterns,
|
|
122
|
+
defaultMatchWidth: "wide",
|
|
123
|
+
parsePatterns: parseDayPatterns,
|
|
124
|
+
defaultParseWidth: "any",
|
|
125
|
+
}),
|
|
126
|
+
|
|
127
|
+
dayPeriod: buildMatchFn({
|
|
128
|
+
matchPatterns: matchDayPeriodPatterns,
|
|
129
|
+
defaultMatchWidth: "any",
|
|
130
|
+
parsePatterns: parseDayPeriodPatterns,
|
|
131
|
+
defaultParseWidth: "any",
|
|
132
|
+
}),
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
export { match };
|
|
136
|
+
//# sourceMappingURL=match.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"match.js","sources":["../../../../../../../node_modules/date-fns/locale/fr/_lib/match.js"],"sourcesContent":["import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(ième|ère|ème|er|e)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(av\\.J\\.C|ap\\.J\\.C|ap\\.J\\.-C)/i,\n abbreviated: /^(av\\.J\\.-C|av\\.J-C|apr\\.J\\.-C|apr\\.J-C|ap\\.J-C)/i,\n wide: /^(avant Jésus-Christ|après Jésus-Christ)/i,\n};\nconst parseEraPatterns = {\n any: [/^av/i, /^ap/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^T?[1234]/i,\n abbreviated: /^[1234](er|ème|e)? trim\\.?/i,\n wide: /^[1234](er|ème|e)? trimestre/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated:\n /^(janv|févr|mars|avr|mai|juin|juill|juil|août|sept|oct|nov|déc)\\.?/i,\n wide: /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^av/i,\n /^ma/i,\n /^juin/i,\n /^juil/i,\n /^ao/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[lmjvsd]/i,\n short: /^(di|lu|ma|me|je|ve|sa)/i,\n abbreviated: /^(dim|lun|mar|mer|jeu|ven|sam)\\.?/i,\n wide: /^(dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^j/i, /^v/i, /^s/i],\n any: [/^di/i, /^lu/i, /^ma/i, /^me/i, /^je/i, /^ve/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|minuit|midi|mat\\.?|ap\\.?m\\.?|soir|nuit)/i,\n any: /^([ap]\\.?\\s?m\\.?|du matin|de l'après[-\\s]midi|du soir|de la nuit)/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^min/i,\n noon: /^mid/i,\n morning: /mat/i,\n afternoon: /ap/i,\n evening: /soir/i,\n night: /nuit/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { formatDistance } from './fr/_lib/formatDistance.js';
|
|
2
|
+
import { formatLong } from './fr/_lib/formatLong.js';
|
|
3
|
+
import { formatRelative } from './fr/_lib/formatRelative.js';
|
|
4
|
+
import { localize } from './fr/_lib/localize.js';
|
|
5
|
+
import { match } from './fr/_lib/match.js';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @category Locales
|
|
9
|
+
* @summary French locale.
|
|
10
|
+
* @language French
|
|
11
|
+
* @iso-639-2 fra
|
|
12
|
+
* @author Jean Dupouy [@izeau](https://github.com/izeau)
|
|
13
|
+
* @author François B [@fbonzon](https://github.com/fbonzon)
|
|
14
|
+
*/
|
|
15
|
+
const fr = {
|
|
16
|
+
code: "fr",
|
|
17
|
+
formatDistance: formatDistance,
|
|
18
|
+
formatLong: formatLong,
|
|
19
|
+
formatRelative: formatRelative,
|
|
20
|
+
localize: localize,
|
|
21
|
+
match: match,
|
|
22
|
+
options: {
|
|
23
|
+
weekStartsOn: 1 /* Monday */,
|
|
24
|
+
firstWeekContainsDate: 4,
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export { fr };
|
|
29
|
+
//# sourceMappingURL=fr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fr.js","sources":["../../../../../node_modules/date-fns/locale/fr.js"],"sourcesContent":["import { formatDistance } from \"./fr/_lib/formatDistance.js\";\nimport { formatLong } from \"./fr/_lib/formatLong.js\";\nimport { formatRelative } from \"./fr/_lib/formatRelative.js\";\nimport { localize } from \"./fr/_lib/localize.js\";\nimport { match } from \"./fr/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary French locale.\n * @language French\n * @iso-639-2 fra\n * @author Jean Dupouy [@izeau](https://github.com/izeau)\n * @author François B [@fbonzon](https://github.com/fbonzon)\n */\nexport const fr = {\n code: \"fr\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4,\n },\n};\n\n// Fallback for modularized imports:\nexport default fr;\n"],"names":[],"mappings":";;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,EAAE,GAAG;AAClB,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,UAAU,EAAE,UAAU;AACxB,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,QAAQ,EAAE,QAAQ;AACpB,EAAE,KAAK,EAAE,KAAK;AACd,EAAE,OAAO,EAAE;AACX,IAAI,YAAY,EAAE,CAAC;AACnB,IAAI,qBAAqB,EAAE,CAAC;AAC5B,GAAG;AACH;;;;","x_google_ignoreList":[0]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import
|
|
2
|
+
import React__default, { createContext, useEffect, useContext } from 'react';
|
|
3
3
|
import { I18nextProvider } from 'react-i18next';
|
|
4
4
|
import sdkI18n from '../i18n/index.js';
|
|
5
5
|
|
|
6
6
|
var I18nContext = createContext(undefined);
|
|
7
7
|
var I18nProvider = function (_a) {
|
|
8
8
|
var children = _a.children, _b = _a.defaultLanguage, defaultLanguage = _b === void 0 ? 'fr' : _b;
|
|
9
|
-
var _c =
|
|
9
|
+
var _c = React__default.useState(defaultLanguage), language = _c[0], setLanguageState = _c[1];
|
|
10
10
|
useEffect(function () {
|
|
11
11
|
// Utiliser l'instance SDK pour changer la langue
|
|
12
12
|
sdkI18n.changeLanguage(language);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"I18nProvider.js","sources":["../../../../src/providers/I18nProvider.tsx"],"sourcesContent":["import React, { createContext, useContext, useEffect } from 'react';\nimport { I18nextProvider } from 'react-i18next';\nimport sdkI18n from '../i18n';\n// L'instance i18n du SDK est complètement séparée de celle de l'app\n\ninterface I18nContextType {\n language: string;\n setLanguage: (lang: string) => void;\n}\n\nconst I18nContext = createContext<I18nContextType | undefined>(undefined);\n\ninterface I18nProviderProps {\n children: React.ReactNode;\n defaultLanguage?: string;\n}\n\nexport const I18nProvider: React.FC<I18nProviderProps> = ({ \n children, \n defaultLanguage = 'fr' \n}) => {\n const [language, setLanguageState] = React.useState(defaultLanguage);\n\n useEffect(() => {\n // Utiliser l'instance SDK pour changer la langue\n sdkI18n.changeLanguage(language);\n }, [language]);\n\n const setLanguage = (lang: string) => {\n setLanguageState(lang);\n sdkI18n.changeLanguage(lang);\n };\n\n return (\n <I18nextProvider i18n={sdkI18n}>\n <I18nContext.Provider value={{ language, setLanguage }}>\n {children}\n </I18nContext.Provider>\n </I18nextProvider>\n );\n};\n\nexport const useI18nContext = () => {\n const context = useContext(I18nContext);\n if (context === undefined) {\n throw new Error('useI18nContext must be used within an I18nProvider');\n }\n return context;\n};\n"],"names":["_jsx"],"mappings":";;;;;AAUA,IAAM,WAAW,GAAG,aAAa,CAA8B,SAAS,CAAC;AAOlE,IAAM,YAAY,GAAgC,UAAC,EAGzD,EAAA;AAFC,IAAA,IAAA,QAAQ,cAAA,EACR,EAAA,GAAA,EAAA,CAAA,eAAsB,EAAtB,eAAe,GAAA,EAAA,KAAA,MAAA,GAAG,IAAI,GAAA,EAAA;AAEhB,IAAA,IAAA,EAAA,GAA+
|
|
1
|
+
{"version":3,"file":"I18nProvider.js","sources":["../../../../src/providers/I18nProvider.tsx"],"sourcesContent":["import React, { createContext, useContext, useEffect } from 'react';\nimport { I18nextProvider } from 'react-i18next';\nimport sdkI18n from '../i18n';\n// L'instance i18n du SDK est complètement séparée de celle de l'app\n\ninterface I18nContextType {\n language: string;\n setLanguage: (lang: string) => void;\n}\n\nconst I18nContext = createContext<I18nContextType | undefined>(undefined);\n\ninterface I18nProviderProps {\n children: React.ReactNode;\n defaultLanguage?: string;\n}\n\nexport const I18nProvider: React.FC<I18nProviderProps> = ({ \n children, \n defaultLanguage = 'fr' \n}) => {\n const [language, setLanguageState] = React.useState(defaultLanguage);\n\n useEffect(() => {\n // Utiliser l'instance SDK pour changer la langue\n sdkI18n.changeLanguage(language);\n }, [language]);\n\n const setLanguage = (lang: string) => {\n setLanguageState(lang);\n sdkI18n.changeLanguage(lang);\n };\n\n return (\n <I18nextProvider i18n={sdkI18n}>\n <I18nContext.Provider value={{ language, setLanguage }}>\n {children}\n </I18nContext.Provider>\n </I18nextProvider>\n );\n};\n\nexport const useI18nContext = () => {\n const context = useContext(I18nContext);\n if (context === undefined) {\n throw new Error('useI18nContext must be used within an I18nProvider');\n }\n return context;\n};\n"],"names":["React","_jsx"],"mappings":";;;;;AAUA,IAAM,WAAW,GAAG,aAAa,CAA8B,SAAS,CAAC;AAOlE,IAAM,YAAY,GAAgC,UAAC,EAGzD,EAAA;AAFC,IAAA,IAAA,QAAQ,cAAA,EACR,EAAA,GAAA,EAAA,CAAA,eAAsB,EAAtB,eAAe,GAAA,EAAA,KAAA,MAAA,GAAG,IAAI,GAAA,EAAA;AAEhB,IAAA,IAAA,EAAA,GAA+BA,cAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,EAA7D,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,gBAAgB,QAAmC;AAEpE,IAAA,SAAS,CAAC,YAAA;;AAER,QAAA,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC;AAClC,IAAA,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAEd,IAAM,WAAW,GAAG,UAAC,IAAY,EAAA;QAC/B,gBAAgB,CAAC,IAAI,CAAC;AACtB,QAAA,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC;AAC9B,IAAA,CAAC;IAED,QACEC,GAAA,CAAC,eAAe,EAAA,EAAC,IAAI,EAAE,OAAO,EAAA,QAAA,EAC5BA,GAAA,CAAC,WAAW,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAA,QAAA,EAAE,WAAW,EAAA,WAAA,EAAE,EAAA,QAAA,EACnD,QAAQ,EAAA,CACY,EAAA,CACP;AAEtB;AAEO,IAAM,cAAc,GAAG,YAAA;AAC5B,IAAA,IAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC;AACvC,IAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AACzB,QAAA,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC;IACvE;AACA,IAAA,OAAO,OAAO;AAChB;;;;"}
|
|
@@ -86,7 +86,7 @@ var getDocumentTemplateId = function (params) {
|
|
|
86
86
|
var normalizedCountry = countryCode === null || countryCode === void 0 ? void 0 : countryCode.toUpperCase();
|
|
87
87
|
var resolvedType = resolveDocumentType(documentId);
|
|
88
88
|
var documents = (_a = acceptedCountries === null || acceptedCountries === void 0 ? void 0 : acceptedCountries.find(function (country) { var _a; return ((_a = country.code) === null || _a === void 0 ? void 0 : _a.toUpperCase()) === normalizedCountry; })) === null || _a === void 0 ? void 0 : _a.documents;
|
|
89
|
-
if (resolvedType && ((_b = documents === null || documents === void 0 ? void 0 : documents[resolvedType]) === null || _b === void 0 ? void 0 : _b.length) && (documents === null || documents === void 0 ? void 0 : documents[resolvedType][0]) != "INT") {
|
|
89
|
+
if (resolvedType && ((_b = documents === null || documents === void 0 ? void 0 : documents[resolvedType]) === null || _b === void 0 ? void 0 : _b.length) && (documents === null || documents === void 0 ? void 0 : documents[resolvedType][0]) != "INT" && (documents === null || documents === void 0 ? void 0 : documents[resolvedType][0]) != "EU") {
|
|
90
90
|
// Special case for France pink driving license (1989 format)
|
|
91
91
|
var docName = (_d = (_c = documentTemplates === null || documentTemplates === void 0 ? void 0 : documentTemplates.data) === null || _c === void 0 ? void 0 : _c.find(function (tpl) { return tpl.id === documents[resolvedType][0]; })) === null || _d === void 0 ? void 0 : _d.name;
|
|
92
92
|
if (normalizedCountry === "FR" && resolvedType === "driverLicense" && docName === "france_driving_license_1989" && documents[resolvedType][1]) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documentTemplate.js","sources":["../../../../src/services/documentTemplate.ts"],"sourcesContent":["import { apiService } from \"./api\";\nimport type { AcceptedCountry } from \"../types/session\";\n\nexport interface DocumentTemplate {\n id: string;\n name: string;\n countryCode: string;\n acceptedFormats: string[];\n maxFiles: number;\n minFiles: number;\n maxPages: number;\n maxSize: number;\n sides: string;\n}\n\nexport interface FetchedDocumentTemplates {\n status: number;\n message: string;\n data: DocumentTemplate[];\n}\n\nconst DOCUMENT_ID_TO_TYPE: Record<string, keyof AcceptedCountry[\"documents\"]> = {\n passport: \"passport\",\n \"jdi-3\": \"passport\",\n idcard: \"idCard\",\n idCard: \"idCard\",\n \"jdi-2\": \"idCard\",\n driverlicense: \"driverLicense\",\n driverLicense: \"driverLicense\",\n \"jdi-4\": \"driverLicense\",\n residencepermit: \"residencePermit\",\n residencePermit: \"residencePermit\",\n \"jdi-5\": \"residencePermit\",\n pinkdriverlicense: \"pinkDriverLicense\",\n pinkDriverLicense: \"pinkDriverLicense\",\n};\n\n\n/**\n * Retrieves the document type key for API requests based on the document type.\n * \n * @param docType - The document type from the AcceptedCountry documents\n * @returns The corresponding document type key string used in API requests\n * \n * @example\n * ```typescript\n * getDocTypeKey('passport') // returns 'passport'\n * getDocTypeKey('idCard') // returns 'id_card'\n * getDocTypeKey('driverLicense') // returns 'driving_license'\n * ```\n */\nexport const getDocTypeKey = (docType: keyof AcceptedCountry[\"documents\"]): string => {\n switch (docType) {\n case \"passport\":\n return \"passport\";\n case \"idCard\":\n return \"id_card\";\n case \"residencePermit\":\n return \"residency_permit\";\n case \"driverLicense\":\n return \"driving_license\";\n case \"pinkDriverLicense\":\n return \"driving_license_1989\";\n default:\n return String(docType).toLowerCase();\n }\n};\n\n\n\n/**\n * Resolves a document ID string to its corresponding document type.\n * Performs case-insensitive matching against the DOCUMENT_ID_TO_TYPE mapping.\n * \n * @param documentId - The document identifier to resolve\n * @returns The resolved document type or undefined if no match is found\n * \n * @internal\n */\nconst resolveDocumentType = (documentId: string): keyof AcceptedCountry[\"documents\"] | undefined => {\n return DOCUMENT_ID_TO_TYPE[documentId] ?? DOCUMENT_ID_TO_TYPE[documentId.toLowerCase()];\n};\n\n\n/**\n * Retrieves the document template ID for a specific country and document type.\n * First attempts to find the template ID from acceptedCountries data.\n * If not found, falls back to searching through documentTemplates by matching country code and template name.\n * \n * @param params - Configuration object\n * @param params.countryCode - The ISO country code (case-insensitive)\n * @param params.documentId - The document type identifier\n * @param params.acceptedCountries - Optional array of accepted countries with their document configurations\n * @param params.documentTemplates - Optional fetched document templates to search through\n * @returns The document template ID if found, otherwise undefined\n * \n * @example\n * ```typescript\n * const templateId = getDocumentTemplateId({\n * countryCode: 'FR',\n * documentId: 'passport',\n * acceptedCountries: countries,\n * documentTemplates: templates\n * });\n * ```\n */\nexport const getDocumentTemplateId = (params: {\n countryCode: string;\n documentId: string;\n acceptedCountries?: AcceptedCountry[];\n documentTemplates?: FetchedDocumentTemplates;\n}): string | undefined => {\n const { countryCode, documentId, acceptedCountries, documentTemplates } = params;\n const normalizedCountry = countryCode?.toUpperCase();\n const resolvedType = resolveDocumentType(documentId);\n\n const documents = acceptedCountries?.find(\n (country) => country.code?.toUpperCase() === normalizedCountry\n )?.documents;\n\n if (resolvedType && documents?.[resolvedType]?.length && documents?.[resolvedType][0] != \"INT\") {\n // Special case for France pink driving license (1989 format)\n const docName = documentTemplates?.data?.find(tpl => tpl.id === documents[resolvedType][0])?.name;\n if (normalizedCountry === \"FR\" && resolvedType === \"driverLicense\" && docName === \"france_driving_license_1989\" && documents[resolvedType][1]) {\n return documents[resolvedType][1];\n }\n return documents[resolvedType][0];\n }\n\n if (!resolvedType) {\n return undefined;\n }\n\n const templateKey = getDocTypeKey(resolvedType).toLowerCase();\n const matchedTemplate = documentTemplates?.data?.findLast((tpl) => {\n return (\n tpl.countryCode === normalizedCountry &&\n (tpl.name?.toLowerCase() || \"\").includes(templateKey)\n );\n });\n\n return matchedTemplate?.id;\n};\n\n\n/**\n * Fetches all document templates from the API with optional filtering.\n * \n * @param params - Optional configuration object for filtering results\n * @param params.type - Filter templates by document type\n * @param params.tags - Filter templates by tags array\n * @returns Promise resolving to fetched document templates data\n * @throws {Error} Throws an error if the API request fails\n * \n * @example\n * ```typescript\n * // Fetch all templates\n * const allTemplates = await getAllDocumentTemplates();\n * \n * // Fetch templates with filters\n * const filteredTemplates = await getAllDocumentTemplates({\n * type: 'proof_of_identity',\n * tags: ['biometric', 'eu']\n * });\n * ```\n */\nexport const getAllDocumentTemplates = async (params?: {\n type?: string;\n tags?: string[];\n}): Promise<FetchedDocumentTemplates> => {\n const query = new URLSearchParams();\n if (params?.type) query.append(\"type\", params.type);\n if (params?.tags && params.tags.length > 0) {\n params.tags.forEach((tag) => query.append(\"tags\", tag));\n }\n\n const url = \"document/get-all-document-templates\";\n const response = await apiService.get<FetchedDocumentTemplates>(\n `${url}?${query.toString()}`\n );\n if (!response.success) {\n throw new Error(\"Failed to fetch document templates\");\n }\n return response.data;\n};\n"],"names":[],"mappings":";;;AAqBA,IAAM,mBAAmB,GAAuD;AAC9E,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,OAAO,EAAE,eAAe;AACxB,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,iBAAiB,EAAE,mBAAmB;AACtC,IAAA,iBAAiB,EAAE,mBAAmB;CACvC;AAGD;;;;;;;;;;;;AAYG;AACI,IAAM,aAAa,GAAG,UAAC,OAA2C,EAAA;IACvE,QAAQ,OAAO;AACb,QAAA,KAAK,UAAU;AACb,YAAA,OAAO,UAAU;AACnB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,SAAS;AAClB,QAAA,KAAK,iBAAiB;AACpB,YAAA,OAAO,kBAAkB;AAC3B,QAAA,KAAK,eAAe;AAClB,YAAA,OAAO,iBAAiB;AAC1B,QAAA,KAAK,mBAAmB;AACtB,YAAA,OAAO,sBAAsB;AAC/B,QAAA;AACE,YAAA,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE;;AAE1C;AAIA;;;;;;;;AAQG;AACH,IAAM,mBAAmB,GAAG,UAAC,UAAkB,EAAA;;AAC7C,IAAA,OAAO,CAAA,EAAA,GAAA,mBAAmB,CAAC,UAAU,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,mBAAmB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;AACzF,CAAC;AAGD;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,IAAM,qBAAqB,GAAG,UAAC,MAKrC,EAAA;;AACS,IAAA,IAAA,WAAW,GAAuD,MAAM,YAA7D,EAAE,UAAU,GAA2C,MAAM,CAAA,UAAjD,EAAE,iBAAiB,GAAwB,MAAM,CAAA,iBAA9B,EAAE,iBAAiB,GAAK,MAAM,kBAAX;IACrE,IAAM,iBAAiB,GAAG,WAAW,KAAA,IAAA,IAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,EAAE;AACpD,IAAA,IAAM,YAAY,GAAG,mBAAmB,CAAC,UAAU,CAAC;AAEpD,IAAA,IAAM,SAAS,GAAG,CAAA,EAAA,GAAA,iBAAiB,KAAA,IAAA,IAAjB,iBAAiB,KAAA,MAAA,GAAA,MAAA,GAAjB,iBAAiB,CAAE,IAAI,CACvC,UAAC,OAAO,EAAA,EAAA,IAAA,EAAA,CAAA,CAAK,OAAA,CAAA,CAAA,EAAA,GAAA,OAAO,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,WAAW,EAAE,MAAK,iBAAiB,CAAA,CAAA,CAAA,CAC/D,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,SAAS;AAEZ,IAAA,IAAI,YAAY,KAAI,CAAA,EAAA,GAAA,SAAS,KAAA,IAAA,IAAT,SAAS,
|
|
1
|
+
{"version":3,"file":"documentTemplate.js","sources":["../../../../src/services/documentTemplate.ts"],"sourcesContent":["import { apiService } from \"./api\";\nimport type { AcceptedCountry } from \"../types/session\";\n\nexport interface DocumentTemplate {\n id: string;\n name: string;\n countryCode: string;\n acceptedFormats: string[];\n maxFiles: number;\n minFiles: number;\n maxPages: number;\n maxSize: number;\n sides: string;\n}\n\nexport interface FetchedDocumentTemplates {\n status: number;\n message: string;\n data: DocumentTemplate[];\n}\n\nconst DOCUMENT_ID_TO_TYPE: Record<string, keyof AcceptedCountry[\"documents\"]> = {\n passport: \"passport\",\n \"jdi-3\": \"passport\",\n idcard: \"idCard\",\n idCard: \"idCard\",\n \"jdi-2\": \"idCard\",\n driverlicense: \"driverLicense\",\n driverLicense: \"driverLicense\",\n \"jdi-4\": \"driverLicense\",\n residencepermit: \"residencePermit\",\n residencePermit: \"residencePermit\",\n \"jdi-5\": \"residencePermit\",\n pinkdriverlicense: \"pinkDriverLicense\",\n pinkDriverLicense: \"pinkDriverLicense\",\n};\n\n\n/**\n * Retrieves the document type key for API requests based on the document type.\n * \n * @param docType - The document type from the AcceptedCountry documents\n * @returns The corresponding document type key string used in API requests\n * \n * @example\n * ```typescript\n * getDocTypeKey('passport') // returns 'passport'\n * getDocTypeKey('idCard') // returns 'id_card'\n * getDocTypeKey('driverLicense') // returns 'driving_license'\n * ```\n */\nexport const getDocTypeKey = (docType: keyof AcceptedCountry[\"documents\"]): string => {\n switch (docType) {\n case \"passport\":\n return \"passport\";\n case \"idCard\":\n return \"id_card\";\n case \"residencePermit\":\n return \"residency_permit\";\n case \"driverLicense\":\n return \"driving_license\";\n case \"pinkDriverLicense\":\n return \"driving_license_1989\";\n default:\n return String(docType).toLowerCase();\n }\n};\n\n\n\n/**\n * Resolves a document ID string to its corresponding document type.\n * Performs case-insensitive matching against the DOCUMENT_ID_TO_TYPE mapping.\n * \n * @param documentId - The document identifier to resolve\n * @returns The resolved document type or undefined if no match is found\n * \n * @internal\n */\nconst resolveDocumentType = (documentId: string): keyof AcceptedCountry[\"documents\"] | undefined => {\n return DOCUMENT_ID_TO_TYPE[documentId] ?? DOCUMENT_ID_TO_TYPE[documentId.toLowerCase()];\n};\n\n\n/**\n * Retrieves the document template ID for a specific country and document type.\n * First attempts to find the template ID from acceptedCountries data.\n * If not found, falls back to searching through documentTemplates by matching country code and template name.\n * \n * @param params - Configuration object\n * @param params.countryCode - The ISO country code (case-insensitive)\n * @param params.documentId - The document type identifier\n * @param params.acceptedCountries - Optional array of accepted countries with their document configurations\n * @param params.documentTemplates - Optional fetched document templates to search through\n * @returns The document template ID if found, otherwise undefined\n * \n * @example\n * ```typescript\n * const templateId = getDocumentTemplateId({\n * countryCode: 'FR',\n * documentId: 'passport',\n * acceptedCountries: countries,\n * documentTemplates: templates\n * });\n * ```\n */\nexport const getDocumentTemplateId = (params: {\n countryCode: string;\n documentId: string;\n acceptedCountries?: AcceptedCountry[];\n documentTemplates?: FetchedDocumentTemplates;\n}): string | undefined => {\n const { countryCode, documentId, acceptedCountries, documentTemplates } = params;\n const normalizedCountry = countryCode?.toUpperCase();\n const resolvedType = resolveDocumentType(documentId);\n\n const documents = acceptedCountries?.find(\n (country) => country.code?.toUpperCase() === normalizedCountry\n )?.documents;\n\n if (resolvedType && documents?.[resolvedType]?.length && documents?.[resolvedType][0] != \"INT\" && documents?.[resolvedType][0] != \"EU\") {\n // Special case for France pink driving license (1989 format)\n const docName = documentTemplates?.data?.find(tpl => tpl.id === documents[resolvedType][0])?.name;\n if (normalizedCountry === \"FR\" && resolvedType === \"driverLicense\" && docName === \"france_driving_license_1989\" && documents[resolvedType][1]) {\n return documents[resolvedType][1];\n }\n return documents[resolvedType][0];\n }\n\n if (!resolvedType) {\n return undefined;\n }\n\n const templateKey = getDocTypeKey(resolvedType).toLowerCase();\n const matchedTemplate = documentTemplates?.data?.findLast((tpl) => {\n return (\n tpl.countryCode === normalizedCountry &&\n (tpl.name?.toLowerCase() || \"\").includes(templateKey)\n );\n });\n\n return matchedTemplate?.id;\n};\n\n\n/**\n * Fetches all document templates from the API with optional filtering.\n * \n * @param params - Optional configuration object for filtering results\n * @param params.type - Filter templates by document type\n * @param params.tags - Filter templates by tags array\n * @returns Promise resolving to fetched document templates data\n * @throws {Error} Throws an error if the API request fails\n * \n * @example\n * ```typescript\n * // Fetch all templates\n * const allTemplates = await getAllDocumentTemplates();\n * \n * // Fetch templates with filters\n * const filteredTemplates = await getAllDocumentTemplates({\n * type: 'proof_of_identity',\n * tags: ['biometric', 'eu']\n * });\n * ```\n */\nexport const getAllDocumentTemplates = async (params?: {\n type?: string;\n tags?: string[];\n}): Promise<FetchedDocumentTemplates> => {\n const query = new URLSearchParams();\n if (params?.type) query.append(\"type\", params.type);\n if (params?.tags && params.tags.length > 0) {\n params.tags.forEach((tag) => query.append(\"tags\", tag));\n }\n\n const url = \"document/get-all-document-templates\";\n const response = await apiService.get<FetchedDocumentTemplates>(\n `${url}?${query.toString()}`\n );\n if (!response.success) {\n throw new Error(\"Failed to fetch document templates\");\n }\n return response.data;\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sources":["../../../../src/types/session.ts"],"sourcesContent":["import type React from \"react\";\n\nexport interface SessionConfig {\n selfie?: boolean;\n requireMobile?: boolean;\n}\n\nexport interface DatakeenSessionProps {\n sessionId: string;\n sessionConfig?: SessionConfig;\n apiBaseUrl?: string; // Optional API base URL for dynamic environment configuration\n}\n\nexport interface UseSessionReturn {\n SessionComponent: React.ReactElement;\n}\n\nexport type stepObject = {\n setStep: (step: number) => void;\n goBack: () => void;\n goToNextStep: (\n currentNodeId: string,\n template: SessionTemplate,\n handle?: string,\n ) => void;\n step: number;\n canGoBack: boolean;\n};\n\nexport interface ProcessingStep {\n title: string;\n subtitle: string;\n hasError?: boolean;\n}\n\nexport type ConditionTokenType = \"variable\" | \"control\" | \"operator\" | \"input\";\n\nexport interface ConditionToken {\n type: ConditionTokenType;\n value: string;\n label?: string;\n sourceNodeId?: string;\n}\n\n/**\n * Type for custom field value types\n */\nexport type CustomFieldValueType =\n | \"text\"\n | \"enum\"\n | \"number\"\n | \"boolean\"\n | \"date\"\n | \"email\"\n | \"address\"\n | \"list\";\n\n/**\n * Display formats supported for date fields (top-level and list columns).\n */\nexport type DateDisplayFormat = \"dd/mm/yyyy\" | \"mm/dd/yyyy\" | \"yyyy-mm-dd\";\n\nexport const DEFAULT_DATE_DISPLAY_FORMAT: DateDisplayFormat = \"dd/mm/yyyy\";\n\n/**\n * Column definition for a list-type custom field\n */\nexport interface ListColumn {\n label: string;\n type: \"text\" | \"enum\" | \"date\" | \"email\";\n options?: string[]; // required when type === 'enum'\n placeholder?: string; // text/email/date — shown to the end user\n regex?: string; // text — JS regex source (without slashes)\n regexErrorMessage?: string; // text — message displayed when regex fails\n dateFormat?: DateDisplayFormat; // date — display format expected\n}\n\n/**\n * Interface for custom field definition\n */\nexport interface CustomField {\n id: string;\n label: string;\n placeholder?: string;\n description?: string;\n valueType: CustomFieldValueType;\n enumOptions?: string[];\n listColumns?: ListColumn[]; // for list type: column definitions\n minRows?: number; // for list type: minimum rows expected\n required?: boolean;\n regex?: string; // text — JS regex source (without slashes)\n regexErrorMessage?: string; // text — message displayed when regex fails\n dateFormat?: DateDisplayFormat; // date — display format expected\n}\n\n/**\n * Interface for session template node\n */\nexport interface SessionTemplateNode {\n id: string;\n type: string;\n title: string;\n description: string;\n informationType?:\n | \"identity\"\n | \"identity-legal\"\n | \"contact\"\n | \"address\"\n | \"nationality\"\n | \"custom\";\n position: {\n x: number;\n y: number;\n };\n options: unknown[];\n selectedOptions: string[];\n requiredDocumentType?: string;\n isRequired: boolean;\n order: number;\n optionalFields?: string[];\n requiredFields?: string[];\n pageTitle?: string;\n pageDescription?: string;\n // Properties for document-collection node type\n allowedDocumentTypes?: Array<{\n id: string;\n name: string;\n /**\n * Optional side information coming from the template.\n * When provided and equals to two (\"two\", 2, \"double\", \"recto-verso\"),\n * consumers should allow uploading two sides (front/back).\n */\n side?: string | number;\n }>;\n allowedAddingMethods?: string[];\n introductionPage?: {\n title?: string;\n description?: string;\n };\n documentSelection?: {\n title?: string;\n description?: string;\n };\n // Start node specific properties\n welcomeTitle?: string;\n welcomeSubtitle?: string;\n welcomeDescription?: string;\n welcomeImage?: string;\n qrCodeTitle?: string;\n qrCodeDescription?: string;\n showLegacyCGU?: boolean; // default: true — rétrocompatibilité\n\n // Legal consent node specific properties\n consentDescription?: string;\n consentDescription2?: string;\n cguUrl?: string;\n privacyPolicyUrl?: string;\n checkboxText?: string;\n // Identity control specific properties\n automaticPhotoCapture?: boolean;\n acceptedCountries?: AcceptedCountry[];\n // End node specific properties\n callbackURL?: string | null;\n // Condition node specific properties\n conditionExpression?: string;\n conditionTokens?: ConditionToken[];\n conditionFalseErrorMessage?: string;\n conditionMaxRetries?: number;\n conditionMaxRetryAction?: \"end-journey\" | \"force-true\";\n conditionFalseMode?: \"retry\" | \"loop\";\n\n // External verification specific properties\n targetApi?: \"INSEE\";\n referenceNodeId?: string;\n referenceNodeType?:\n | \"information-input\"\n | \"document-collection\"\n | \"identity-control\";\n referenceField?: \"siren\" | \"siret\";\n referenceVariable?: string;\n // Custom form fields (for information-input with type 'custom')\n customFields?: CustomField[];\n\n // Electronic signature specific properties\n templateId?: string;\n external_id?: string;\n fieldMappings?: Array<{\n sourceFieldId: string;\n label: string;\n docusealType: string;\n readonly: boolean;\n role?: string;\n sourceNodeId?: string;\n }>;\n /** If set, the generated PDF from this upstream pdf-generation node will be used as the document to sign */\n sourcePdfNodeId?: string;\n\n // PDF generation node specific properties\n // Note: htmlTemplate is intentionally NOT included — it is server-side only and never sent to the client\n pdfMode?: \"upload\" | \"html-template\";\n sourceNodeIds?: string[];\n\n // retry properties\n allowResubmission: boolean;\n maxResubmissionAttempts?: number;\n}\n\n/**\n * Interface for accepted countries\n */\nexport interface AcceptedCountry {\n code: string;\n documents: {\n passport: string[];\n idCard: string[];\n driverLicense: string[];\n residencePermit: string[];\n pinkDriverLicense: string[];\n };\n}\n\n/**\n * Interface for session template edge\n */\nexport interface SessionTemplateEdge {\n id: string;\n source: string;\n target: string;\n sourceHandle?: string;\n targetHandle?: string;\n conditionValue?: string;\n}\n\n/**\n * Interface for platform information\n */\nexport interface PlatformInfo {\n mobile: boolean;\n desktop: boolean;\n backoffice: boolean;\n}\n\n/**\n * Interface for session template\n */\nexport interface SessionTemplate {\n id: string;\n name: string;\n description: string;\n version: string;\n languages: string[];\n nodes: SessionTemplateNode[];\n edges: SessionTemplateEdge[];\n groupId: string;\n userId: string | null;\n created_at: string;\n updated_at: string;\n platforms?: PlatformInfo;\n logo?: string;\n showQRCode?: boolean;\n buttonBgColor?: string;\n buttonTextColor?: string;\n}\n\n/**\n * Interface for session data\n */\nexport interface SessionData {\n id: string;\n userId: string | null;\n token: string;\n templateId: string;\n templateKey: string;\n expireTime: number;\n status: string;\n result: Record<string, unknown>;\n landingPage: unknown;\n withSelfie: boolean | null;\n groupId: string | null;\n userInput: Record<string, unknown>;\n contactInfo?: {\n email: string;\n phoneNumber: string;\n };\n callbackURL?: string | null;\n webhookURL: string;\n analysisTemplateId: string | null;\n userAgent: unknown[];\n mobile: boolean;\n analysisId: string | null;\n currentStep?: number;\n createdAt: string;\n updatedAt: string;\n auditTrail: unknown[];\n user: unknown | null;\n analysis: unknown[];\n documents: unknown[];\n template: SessionTemplate;\n retryCounts?: Record<string, number>; // nodeId -> retry count\n}\n\nexport interface ClientInfo {\n ip?: string;\n location?: string;\n device: string;\n browser: string;\n os: string;\n}\n"],"names":[],"mappings":"AA8DO,IAAM,2BAA2B,GAAsB;;;;"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { DEFAULT_DATE_DISPLAY_FORMAT } from '../types/session.js';
|
|
2
|
+
|
|
3
|
+
var EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
4
|
+
var isEmailValid = function (value) {
|
|
5
|
+
return EMAIL_REGEX.test(String(value).trim());
|
|
6
|
+
};
|
|
7
|
+
var SLASH_DATE_RE = /^(\d{2})\/(\d{2})\/(\d{4})$/;
|
|
8
|
+
var ISO_DATE_RE = /^(\d{4})-(\d{2})-(\d{2})$/;
|
|
9
|
+
var DATE_FORMAT_SPECS = {
|
|
10
|
+
"dd/mm/yyyy": { re: SLASH_DATE_RE, order: ["day", "month", "year"] },
|
|
11
|
+
"mm/dd/yyyy": { re: SLASH_DATE_RE, order: ["month", "day", "year"] },
|
|
12
|
+
"yyyy-mm-dd": { re: ISO_DATE_RE, order: ["year", "month", "day"] },
|
|
13
|
+
};
|
|
14
|
+
var isValidDateParts = function (year, month, day) {
|
|
15
|
+
if (!Number.isInteger(year) || !Number.isInteger(month) || !Number.isInteger(day)) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
if (year < 1 || month < 1 || month > 12 || day < 1 || day > 31)
|
|
19
|
+
return false;
|
|
20
|
+
var d = new Date(Date.UTC(year, month - 1, day));
|
|
21
|
+
return (d.getUTCFullYear() === year &&
|
|
22
|
+
d.getUTCMonth() === month - 1 &&
|
|
23
|
+
d.getUTCDate() === day);
|
|
24
|
+
};
|
|
25
|
+
var isDateValid = function (value, format) {
|
|
26
|
+
var _a;
|
|
27
|
+
if (format === void 0) { format = DEFAULT_DATE_DISPLAY_FORMAT; }
|
|
28
|
+
var v = String(value || "").trim();
|
|
29
|
+
if (!v)
|
|
30
|
+
return false;
|
|
31
|
+
var spec = (_a = DATE_FORMAT_SPECS[format]) !== null && _a !== void 0 ? _a : DATE_FORMAT_SPECS[DEFAULT_DATE_DISPLAY_FORMAT];
|
|
32
|
+
var m = v.match(spec.re);
|
|
33
|
+
if (!m)
|
|
34
|
+
return false;
|
|
35
|
+
var parts = { day: 0, month: 0, year: 0 };
|
|
36
|
+
spec.order.forEach(function (part, i) {
|
|
37
|
+
parts[part] = Number(m[i + 1]);
|
|
38
|
+
});
|
|
39
|
+
return isValidDateParts(parts.year, parts.month, parts.day);
|
|
40
|
+
};
|
|
41
|
+
var isRegexMatch = function (value, source) {
|
|
42
|
+
if (!source)
|
|
43
|
+
return true;
|
|
44
|
+
try {
|
|
45
|
+
return new RegExp(source).test(String(value));
|
|
46
|
+
}
|
|
47
|
+
catch (_a) {
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
var cellErrorKey = function (rowIndex, columnLabel) {
|
|
52
|
+
return "".concat(rowIndex, "::").concat(columnLabel);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export { EMAIL_REGEX, cellErrorKey, isDateValid, isEmailValid, isRegexMatch };
|
|
56
|
+
//# sourceMappingURL=customFieldValidation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customFieldValidation.js","sources":["../../../../src/utils/customFieldValidation.ts"],"sourcesContent":["import type { DateDisplayFormat } from \"../types/session\";\nimport { DEFAULT_DATE_DISPLAY_FORMAT } from \"../types/session\";\n\nexport const EMAIL_REGEX = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\nexport const isEmailValid = (value: string): boolean =>\n EMAIL_REGEX.test(String(value).trim());\n\nconst SLASH_DATE_RE = /^(\\d{2})\\/(\\d{2})\\/(\\d{4})$/;\nconst ISO_DATE_RE = /^(\\d{4})-(\\d{2})-(\\d{2})$/;\n\ntype DatePart = \"day\" | \"month\" | \"year\";\n\nconst DATE_FORMAT_SPECS: Record<\n DateDisplayFormat,\n { re: RegExp; order: [DatePart, DatePart, DatePart] }\n> = {\n \"dd/mm/yyyy\": { re: SLASH_DATE_RE, order: [\"day\", \"month\", \"year\"] },\n \"mm/dd/yyyy\": { re: SLASH_DATE_RE, order: [\"month\", \"day\", \"year\"] },\n \"yyyy-mm-dd\": { re: ISO_DATE_RE, order: [\"year\", \"month\", \"day\"] },\n};\n\nconst isValidDateParts = (year: number, month: number, day: number): boolean => {\n if (!Number.isInteger(year) || !Number.isInteger(month) || !Number.isInteger(day)) {\n return false;\n }\n if (year < 1 || month < 1 || month > 12 || day < 1 || day > 31) return false;\n const d = new Date(Date.UTC(year, month - 1, day));\n return (\n d.getUTCFullYear() === year &&\n d.getUTCMonth() === month - 1 &&\n d.getUTCDate() === day\n );\n};\n\nexport const isDateValid = (\n value: string,\n format: DateDisplayFormat = DEFAULT_DATE_DISPLAY_FORMAT,\n): boolean => {\n const v = String(value || \"\").trim();\n if (!v) return false;\n const spec = DATE_FORMAT_SPECS[format] ?? DATE_FORMAT_SPECS[DEFAULT_DATE_DISPLAY_FORMAT];\n const m = v.match(spec.re);\n if (!m) return false;\n const parts: Record<DatePart, number> = { day: 0, month: 0, year: 0 };\n spec.order.forEach((part, i) => {\n parts[part] = Number(m[i + 1]);\n });\n return isValidDateParts(parts.year, parts.month, parts.day);\n};\n\nexport const isRegexMatch = (value: string, source: string): boolean => {\n if (!source) return true;\n try {\n return new RegExp(source).test(String(value));\n } catch {\n return true;\n }\n};\n\nexport const cellErrorKey = (rowIndex: number, columnLabel: string): string =>\n `${rowIndex}::${columnLabel}`;\n"],"names":[],"mappings":"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"}
|
package/jest.config.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "datakeen-session-react",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.162",
|
|
4
4
|
"description": "React SDK component to manage and render Datakeen session experiences easily.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public",
|
|
@@ -98,6 +98,7 @@
|
|
|
98
98
|
"@radix-ui/react-checkbox": "^1.3.2",
|
|
99
99
|
"@radix-ui/react-icons": "^1.3.2",
|
|
100
100
|
"@radix-ui/react-label": "^2.1.6",
|
|
101
|
+
"@radix-ui/react-popover": "^1.1.15",
|
|
101
102
|
"@radix-ui/react-select": "^2.2.5",
|
|
102
103
|
"@tensorflow-models/coco-ssd": "^2.2.3",
|
|
103
104
|
"@tensorflow/tfjs": "^4.22.0",
|
|
@@ -105,12 +106,14 @@
|
|
|
105
106
|
"@testing-library/dom": "^8.20.0",
|
|
106
107
|
"@unissey-web/sdk-react": "^4.4.0",
|
|
107
108
|
"clsx": "^2.1.1",
|
|
109
|
+
"date-fns": "^4.1.0",
|
|
108
110
|
"heic2any": "^0.0.4",
|
|
109
111
|
"i18next": "^25.4.2",
|
|
110
112
|
"lucide-react": "^0.511.0",
|
|
111
113
|
"pdfjs-dist": "5.4.149",
|
|
112
114
|
"qrcode": "^1.5.4",
|
|
113
115
|
"react-circle-flags": "^0.0.23",
|
|
116
|
+
"react-day-picker": "^9.14.0",
|
|
114
117
|
"react-i18next": "^15.7.3",
|
|
115
118
|
"tailwind-merge": "^3.3.1",
|
|
116
119
|
"ua-parser-js": "^2.0.5"
|