datakeen-session-react 1.1.140-dev.59 → 1.1.140-dev.60
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/session/UserInputForm/CustomFormFields.js +7 -19
- package/dist/cjs/components/session/UserInputForm/CustomFormFields.js.map +1 -1
- package/dist/cjs/components/session/UserInputForm/DatePickerField.js +172 -0
- package/dist/cjs/components/session/UserInputForm/DatePickerField.js.map +1 -0
- package/dist/cjs/components/start-flow/CGU.js +3 -0
- package/dist/cjs/components/start-flow/CGU.js.map +1 -1
- package/dist/cjs/components/start-flow/Start.js +3 -0
- package/dist/cjs/components/start-flow/Start.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/esm/components/session/UserInputForm/CustomFormFields.js +7 -19
- package/dist/esm/components/session/UserInputForm/CustomFormFields.js.map +1 -1
- package/dist/esm/components/session/UserInputForm/DatePickerField.js +150 -0
- package/dist/esm/components/session/UserInputForm/DatePickerField.js.map +1 -0
- package/dist/esm/components/start-flow/CGU.js +3 -0
- package/dist/esm/components/start-flow/CGU.js.map +1 -1
- package/dist/esm/components/start-flow/Start.js +3 -0
- package/dist/esm/components/start-flow/Start.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/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/package.json +4 -1
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var buildLocalizeFn = require('../../_lib/buildLocalizeFn.js');
|
|
4
|
+
|
|
5
|
+
const eraValues = {
|
|
6
|
+
narrow: ["av. J.-C", "ap. J.-C"],
|
|
7
|
+
abbreviated: ["av. J.-C", "ap. J.-C"],
|
|
8
|
+
wide: ["avant Jésus-Christ", "après Jésus-Christ"],
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const quarterValues = {
|
|
12
|
+
narrow: ["T1", "T2", "T3", "T4"],
|
|
13
|
+
abbreviated: ["1er trim.", "2ème trim.", "3ème trim.", "4ème trim."],
|
|
14
|
+
wide: ["1er trimestre", "2ème trimestre", "3ème trimestre", "4ème trimestre"],
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const monthValues = {
|
|
18
|
+
narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
|
|
19
|
+
abbreviated: [
|
|
20
|
+
"janv.",
|
|
21
|
+
"févr.",
|
|
22
|
+
"mars",
|
|
23
|
+
"avr.",
|
|
24
|
+
"mai",
|
|
25
|
+
"juin",
|
|
26
|
+
"juil.",
|
|
27
|
+
"août",
|
|
28
|
+
"sept.",
|
|
29
|
+
"oct.",
|
|
30
|
+
"nov.",
|
|
31
|
+
"déc.",
|
|
32
|
+
],
|
|
33
|
+
|
|
34
|
+
wide: [
|
|
35
|
+
"janvier",
|
|
36
|
+
"février",
|
|
37
|
+
"mars",
|
|
38
|
+
"avril",
|
|
39
|
+
"mai",
|
|
40
|
+
"juin",
|
|
41
|
+
"juillet",
|
|
42
|
+
"août",
|
|
43
|
+
"septembre",
|
|
44
|
+
"octobre",
|
|
45
|
+
"novembre",
|
|
46
|
+
"décembre",
|
|
47
|
+
],
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const dayValues = {
|
|
51
|
+
narrow: ["D", "L", "M", "M", "J", "V", "S"],
|
|
52
|
+
short: ["di", "lu", "ma", "me", "je", "ve", "sa"],
|
|
53
|
+
abbreviated: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
|
|
54
|
+
|
|
55
|
+
wide: [
|
|
56
|
+
"dimanche",
|
|
57
|
+
"lundi",
|
|
58
|
+
"mardi",
|
|
59
|
+
"mercredi",
|
|
60
|
+
"jeudi",
|
|
61
|
+
"vendredi",
|
|
62
|
+
"samedi",
|
|
63
|
+
],
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
const dayPeriodValues = {
|
|
67
|
+
narrow: {
|
|
68
|
+
am: "AM",
|
|
69
|
+
pm: "PM",
|
|
70
|
+
midnight: "minuit",
|
|
71
|
+
noon: "midi",
|
|
72
|
+
morning: "mat.",
|
|
73
|
+
afternoon: "ap.m.",
|
|
74
|
+
evening: "soir",
|
|
75
|
+
night: "mat.",
|
|
76
|
+
},
|
|
77
|
+
abbreviated: {
|
|
78
|
+
am: "AM",
|
|
79
|
+
pm: "PM",
|
|
80
|
+
midnight: "minuit",
|
|
81
|
+
noon: "midi",
|
|
82
|
+
morning: "matin",
|
|
83
|
+
afternoon: "après-midi",
|
|
84
|
+
evening: "soir",
|
|
85
|
+
night: "matin",
|
|
86
|
+
},
|
|
87
|
+
wide: {
|
|
88
|
+
am: "AM",
|
|
89
|
+
pm: "PM",
|
|
90
|
+
midnight: "minuit",
|
|
91
|
+
noon: "midi",
|
|
92
|
+
morning: "du matin",
|
|
93
|
+
afternoon: "de l’après-midi",
|
|
94
|
+
evening: "du soir",
|
|
95
|
+
night: "du matin",
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
const ordinalNumber = (dirtyNumber, options) => {
|
|
100
|
+
const number = Number(dirtyNumber);
|
|
101
|
+
const unit = options?.unit;
|
|
102
|
+
|
|
103
|
+
if (number === 0) return "0";
|
|
104
|
+
|
|
105
|
+
const feminineUnits = ["year", "week", "hour", "minute", "second"];
|
|
106
|
+
let suffix;
|
|
107
|
+
|
|
108
|
+
if (number === 1) {
|
|
109
|
+
suffix = unit && feminineUnits.includes(unit) ? "ère" : "er";
|
|
110
|
+
} else {
|
|
111
|
+
suffix = "ème";
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return number + suffix;
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
const LONG_MONTHS_TOKENS = ["MMM", "MMMM"];
|
|
118
|
+
|
|
119
|
+
const localize = {
|
|
120
|
+
preprocessor: (date, parts) => {
|
|
121
|
+
// Replaces the `do` tokens with `d` when used with long month tokens and the day of the month is greater than one.
|
|
122
|
+
// Use case "do MMMM" => 1er août, 29 août
|
|
123
|
+
// see https://github.com/date-fns/date-fns/issues/1391
|
|
124
|
+
|
|
125
|
+
if (date.getDate() === 1) return parts;
|
|
126
|
+
|
|
127
|
+
const hasLongMonthToken = parts.some(
|
|
128
|
+
(part) => part.isToken && LONG_MONTHS_TOKENS.includes(part.value),
|
|
129
|
+
);
|
|
130
|
+
|
|
131
|
+
if (!hasLongMonthToken) return parts;
|
|
132
|
+
|
|
133
|
+
return parts.map((part) =>
|
|
134
|
+
part.isToken && part.value === "do"
|
|
135
|
+
? { isToken: true, value: "d" }
|
|
136
|
+
: part,
|
|
137
|
+
);
|
|
138
|
+
},
|
|
139
|
+
|
|
140
|
+
ordinalNumber,
|
|
141
|
+
|
|
142
|
+
era: buildLocalizeFn.buildLocalizeFn({
|
|
143
|
+
values: eraValues,
|
|
144
|
+
defaultWidth: "wide",
|
|
145
|
+
}),
|
|
146
|
+
|
|
147
|
+
quarter: buildLocalizeFn.buildLocalizeFn({
|
|
148
|
+
values: quarterValues,
|
|
149
|
+
defaultWidth: "wide",
|
|
150
|
+
argumentCallback: (quarter) => quarter - 1,
|
|
151
|
+
}),
|
|
152
|
+
|
|
153
|
+
month: buildLocalizeFn.buildLocalizeFn({
|
|
154
|
+
values: monthValues,
|
|
155
|
+
defaultWidth: "wide",
|
|
156
|
+
}),
|
|
157
|
+
|
|
158
|
+
day: buildLocalizeFn.buildLocalizeFn({
|
|
159
|
+
values: dayValues,
|
|
160
|
+
defaultWidth: "wide",
|
|
161
|
+
}),
|
|
162
|
+
|
|
163
|
+
dayPeriod: buildLocalizeFn.buildLocalizeFn({
|
|
164
|
+
values: dayPeriodValues,
|
|
165
|
+
defaultWidth: "wide",
|
|
166
|
+
}),
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
exports.localize = localize;
|
|
170
|
+
//# 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":["buildLocalizeFn"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var buildMatchFn = require('../../_lib/buildMatchFn.js');
|
|
4
|
+
var buildMatchPatternFn = require('../../_lib/buildMatchPatternFn.js');
|
|
5
|
+
|
|
6
|
+
const matchOrdinalNumberPattern = /^(\d+)(ième|ère|ème|er|e)?/i;
|
|
7
|
+
const parseOrdinalNumberPattern = /\d+/i;
|
|
8
|
+
|
|
9
|
+
const matchEraPatterns = {
|
|
10
|
+
narrow: /^(av\.J\.C|ap\.J\.C|ap\.J\.-C)/i,
|
|
11
|
+
abbreviated: /^(av\.J\.-C|av\.J-C|apr\.J\.-C|apr\.J-C|ap\.J-C)/i,
|
|
12
|
+
wide: /^(avant Jésus-Christ|après Jésus-Christ)/i,
|
|
13
|
+
};
|
|
14
|
+
const parseEraPatterns = {
|
|
15
|
+
any: [/^av/i, /^ap/i],
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const matchQuarterPatterns = {
|
|
19
|
+
narrow: /^T?[1234]/i,
|
|
20
|
+
abbreviated: /^[1234](er|ème|e)? trim\.?/i,
|
|
21
|
+
wide: /^[1234](er|ème|e)? trimestre/i,
|
|
22
|
+
};
|
|
23
|
+
const parseQuarterPatterns = {
|
|
24
|
+
any: [/1/i, /2/i, /3/i, /4/i],
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const matchMonthPatterns = {
|
|
28
|
+
narrow: /^[jfmasond]/i,
|
|
29
|
+
abbreviated:
|
|
30
|
+
/^(janv|févr|mars|avr|mai|juin|juill|juil|août|sept|oct|nov|déc)\.?/i,
|
|
31
|
+
wide: /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,
|
|
32
|
+
};
|
|
33
|
+
const parseMonthPatterns = {
|
|
34
|
+
narrow: [
|
|
35
|
+
/^j/i,
|
|
36
|
+
/^f/i,
|
|
37
|
+
/^m/i,
|
|
38
|
+
/^a/i,
|
|
39
|
+
/^m/i,
|
|
40
|
+
/^j/i,
|
|
41
|
+
/^j/i,
|
|
42
|
+
/^a/i,
|
|
43
|
+
/^s/i,
|
|
44
|
+
/^o/i,
|
|
45
|
+
/^n/i,
|
|
46
|
+
/^d/i,
|
|
47
|
+
],
|
|
48
|
+
|
|
49
|
+
any: [
|
|
50
|
+
/^ja/i,
|
|
51
|
+
/^f/i,
|
|
52
|
+
/^mar/i,
|
|
53
|
+
/^av/i,
|
|
54
|
+
/^ma/i,
|
|
55
|
+
/^juin/i,
|
|
56
|
+
/^juil/i,
|
|
57
|
+
/^ao/i,
|
|
58
|
+
/^s/i,
|
|
59
|
+
/^o/i,
|
|
60
|
+
/^n/i,
|
|
61
|
+
/^d/i,
|
|
62
|
+
],
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
const matchDayPatterns = {
|
|
66
|
+
narrow: /^[lmjvsd]/i,
|
|
67
|
+
short: /^(di|lu|ma|me|je|ve|sa)/i,
|
|
68
|
+
abbreviated: /^(dim|lun|mar|mer|jeu|ven|sam)\.?/i,
|
|
69
|
+
wide: /^(dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)/i,
|
|
70
|
+
};
|
|
71
|
+
const parseDayPatterns = {
|
|
72
|
+
narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^j/i, /^v/i, /^s/i],
|
|
73
|
+
any: [/^di/i, /^lu/i, /^ma/i, /^me/i, /^je/i, /^ve/i, /^sa/i],
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
const matchDayPeriodPatterns = {
|
|
77
|
+
narrow: /^(a|p|minuit|midi|mat\.?|ap\.?m\.?|soir|nuit)/i,
|
|
78
|
+
any: /^([ap]\.?\s?m\.?|du matin|de l'après[-\s]midi|du soir|de la nuit)/i,
|
|
79
|
+
};
|
|
80
|
+
const parseDayPeriodPatterns = {
|
|
81
|
+
any: {
|
|
82
|
+
am: /^a/i,
|
|
83
|
+
pm: /^p/i,
|
|
84
|
+
midnight: /^min/i,
|
|
85
|
+
noon: /^mid/i,
|
|
86
|
+
morning: /mat/i,
|
|
87
|
+
afternoon: /ap/i,
|
|
88
|
+
evening: /soir/i,
|
|
89
|
+
night: /nuit/i,
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
const match = {
|
|
94
|
+
ordinalNumber: buildMatchPatternFn.buildMatchPatternFn({
|
|
95
|
+
matchPattern: matchOrdinalNumberPattern,
|
|
96
|
+
parsePattern: parseOrdinalNumberPattern,
|
|
97
|
+
valueCallback: (value) => parseInt(value),
|
|
98
|
+
}),
|
|
99
|
+
|
|
100
|
+
era: buildMatchFn.buildMatchFn({
|
|
101
|
+
matchPatterns: matchEraPatterns,
|
|
102
|
+
defaultMatchWidth: "wide",
|
|
103
|
+
parsePatterns: parseEraPatterns,
|
|
104
|
+
defaultParseWidth: "any",
|
|
105
|
+
}),
|
|
106
|
+
|
|
107
|
+
quarter: buildMatchFn.buildMatchFn({
|
|
108
|
+
matchPatterns: matchQuarterPatterns,
|
|
109
|
+
defaultMatchWidth: "wide",
|
|
110
|
+
parsePatterns: parseQuarterPatterns,
|
|
111
|
+
defaultParseWidth: "any",
|
|
112
|
+
valueCallback: (index) => index + 1,
|
|
113
|
+
}),
|
|
114
|
+
|
|
115
|
+
month: buildMatchFn.buildMatchFn({
|
|
116
|
+
matchPatterns: matchMonthPatterns,
|
|
117
|
+
defaultMatchWidth: "wide",
|
|
118
|
+
parsePatterns: parseMonthPatterns,
|
|
119
|
+
defaultParseWidth: "any",
|
|
120
|
+
}),
|
|
121
|
+
|
|
122
|
+
day: buildMatchFn.buildMatchFn({
|
|
123
|
+
matchPatterns: matchDayPatterns,
|
|
124
|
+
defaultMatchWidth: "wide",
|
|
125
|
+
parsePatterns: parseDayPatterns,
|
|
126
|
+
defaultParseWidth: "any",
|
|
127
|
+
}),
|
|
128
|
+
|
|
129
|
+
dayPeriod: buildMatchFn.buildMatchFn({
|
|
130
|
+
matchPatterns: matchDayPeriodPatterns,
|
|
131
|
+
defaultMatchWidth: "any",
|
|
132
|
+
parsePatterns: parseDayPeriodPatterns,
|
|
133
|
+
defaultParseWidth: "any",
|
|
134
|
+
}),
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
exports.match = match;
|
|
138
|
+
//# 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":["buildMatchPatternFn","buildMatchFn"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var formatDistance = require('./fr/_lib/formatDistance.js');
|
|
4
|
+
var formatLong = require('./fr/_lib/formatLong.js');
|
|
5
|
+
var formatRelative = require('./fr/_lib/formatRelative.js');
|
|
6
|
+
var localize = require('./fr/_lib/localize.js');
|
|
7
|
+
var match = require('./fr/_lib/match.js');
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @category Locales
|
|
11
|
+
* @summary French locale.
|
|
12
|
+
* @language French
|
|
13
|
+
* @iso-639-2 fra
|
|
14
|
+
* @author Jean Dupouy [@izeau](https://github.com/izeau)
|
|
15
|
+
* @author François B [@fbonzon](https://github.com/fbonzon)
|
|
16
|
+
*/
|
|
17
|
+
const fr = {
|
|
18
|
+
code: "fr",
|
|
19
|
+
formatDistance: formatDistance.formatDistance,
|
|
20
|
+
formatLong: formatLong.formatLong,
|
|
21
|
+
formatRelative: formatRelative.formatRelative,
|
|
22
|
+
localize: localize.localize,
|
|
23
|
+
match: match.match,
|
|
24
|
+
options: {
|
|
25
|
+
weekStartsOn: 1 /* Monday */,
|
|
26
|
+
firstWeekContainsDate: 4,
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
exports.fr = fr;
|
|
31
|
+
//# 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":["formatDistance","formatLong","formatRelative","localize","match"],"mappings":";;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,EAAE,GAAG;AAClB,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,cAAc,EAAEA,6BAAc;AAChC,EAAE,UAAU,EAAEC,qBAAU;AACxB,EAAE,cAAc,EAAEC,6BAAc;AAChC,EAAE,QAAQ,EAAEC,iBAAQ;AACpB,EAAE,KAAK,EAAEC,WAAK;AACd,EAAE,OAAO,EAAE;AACX,IAAI,YAAY,EAAE,CAAC;AACnB,IAAI,qBAAqB,EAAE,CAAC;AAC5B,GAAG;AACH;;;;","x_google_ignoreList":[0]}
|
|
@@ -8,25 +8,16 @@ import { useI18n } from '../../../hooks/useI18n.js';
|
|
|
8
8
|
import AddressFields from './AddressFields.js';
|
|
9
9
|
import { normalizeListColumns, getListFieldMinRows, ensureMinimumListRows, createEmptyListRow } from '../../../utils/listFieldUtils.js';
|
|
10
10
|
import { cellErrorKey } from '../../../utils/customFieldValidation.js';
|
|
11
|
+
import { DatePickerField } from './DatePickerField.js';
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* Sous-composant dédié au rendu d'une cellule du tableau dynamique.
|
|
14
15
|
* Nécessaire pour que les hooks internes à Select soient toujours appelés
|
|
15
16
|
* de façon stable (règle des hooks React).
|
|
16
17
|
*/
|
|
17
|
-
var dateFormatPlaceholder = function (format) {
|
|
18
|
-
switch (format) {
|
|
19
|
-
case "yyyy-mm-dd":
|
|
20
|
-
return "YYYY-MM-DD";
|
|
21
|
-
case "mm/dd/yyyy":
|
|
22
|
-
return "MM/DD/YYYY";
|
|
23
|
-
default:
|
|
24
|
-
return "DD/MM/YYYY";
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
18
|
var ListCell = function (_a) {
|
|
28
19
|
var _b, _c;
|
|
29
|
-
var col = _a.col, value = _a.value, hasError = _a.hasError, cellClasses = _a.cellClasses, onChange = _a.onChange;
|
|
20
|
+
var col = _a.col, value = _a.value, hasError = _a.hasError, cellClasses = _a.cellClasses, onChange = _a.onChange, language = _a.language;
|
|
30
21
|
if (col.type === "enum") {
|
|
31
22
|
return (jsx(Select, { options: ((_b = col.options) !== null && _b !== void 0 ? _b : []).map(function (opt) { return ({ value: opt, label: opt }); }), value: value, onValueChange: onChange, placeholder: col.placeholder || col.label, error: hasError, compact: true }));
|
|
32
23
|
}
|
|
@@ -34,14 +25,13 @@ var ListCell = function (_a) {
|
|
|
34
25
|
return (jsx("input", { type: "email", value: value, onChange: function (e) { return onChange(e.target.value); }, placeholder: col.placeholder || col.label, className: cellClasses, autoComplete: "off", inputMode: "email" }));
|
|
35
26
|
}
|
|
36
27
|
if (col.type === "date") {
|
|
37
|
-
return (jsx(
|
|
38
|
-
dateFormatPlaceholder((_c = col.dateFormat) !== null && _c !== void 0 ? _c : "dd/mm/yyyy"), className: cellClasses, autoComplete: "off", inputMode: "numeric" }));
|
|
28
|
+
return (jsx(DatePickerField, { value: value, dateFormat: (_c = col.dateFormat) !== null && _c !== void 0 ? _c : "dd/mm/yyyy", placeholder: col.placeholder, hasError: hasError, language: language, onChange: onChange, className: cellClasses }));
|
|
39
29
|
}
|
|
40
30
|
return (jsx("input", { type: "text", value: value, onChange: function (e) { return onChange(e.target.value); }, placeholder: col.placeholder || col.label, className: cellClasses, autoComplete: "off" }));
|
|
41
31
|
};
|
|
42
32
|
var CustomFormFields = function (_a) {
|
|
43
33
|
var customFields = _a.customFields, formData = _a.formData, errors = _a.errors, _b = _a.cellErrors, cellErrors = _b === void 0 ? {} : _b, onFieldChange = _a.onFieldChange, _c = _a.addressSuggestions, addressSuggestions = _c === void 0 ? [] : _c, _d = _a.showSuggestions, showSuggestions = _d === void 0 ? false : _d, onAddressChange = _a.onAddressChange, onAddressFocus = _a.onAddressFocus, onAddressBlur = _a.onAddressBlur, onApplySuggestion = _a.onApplySuggestion;
|
|
44
|
-
var
|
|
34
|
+
var _e = useI18n(), t = _e.t, currentLanguage = _e.currentLanguage;
|
|
45
35
|
console.log("🎨 [CustomFormFields] Rendering with:", {
|
|
46
36
|
fieldsCount: customFields.length,
|
|
47
37
|
fields: customFields.map(function (f) { return ({
|
|
@@ -65,10 +55,8 @@ var CustomFormFields = function (_a) {
|
|
|
65
55
|
return (jsx("input", { id: field.id, type: "text", value: value || "", onChange: function (e) { return onFieldChange(field.id, e.target.value); }, placeholder: field.placeholder, className: inputClasses, autoComplete: "off" }));
|
|
66
56
|
case "number":
|
|
67
57
|
return (jsx("input", { id: field.id, type: "number", inputMode: "numeric", value: value || "", onChange: function (e) { return onFieldChange(field.id, e.target.value); }, placeholder: field.placeholder, className: inputClasses }));
|
|
68
|
-
case "date":
|
|
69
|
-
|
|
70
|
-
return (jsx("input", { id: field.id, type: "text", value: value || "", onChange: function (e) { return onFieldChange(field.id, e.target.value); }, placeholder: field.placeholder || dateFormatPlaceholder(fmt), className: inputClasses, autoComplete: "off" }));
|
|
71
|
-
}
|
|
58
|
+
case "date":
|
|
59
|
+
return (jsx(DatePickerField, { id: field.id, value: value || "", dateFormat: (_a = field.dateFormat) !== null && _a !== void 0 ? _a : "dd/mm/yyyy", placeholder: field.placeholder, hasError: hasError, language: currentLanguage, onChange: function (v) { return onFieldChange(field.id, v); }, className: inputClasses }));
|
|
72
60
|
case "boolean":
|
|
73
61
|
return (jsxs("div", { className: "flex items-center gap-2", children: [jsx("input", { id: field.id, type: "checkbox", checked: value || false, onChange: function (e) { return onFieldChange(field.id, e.target.checked); }, className: "h-4 w-4 text-[#11E5C5] border-gray-300 rounded focus:ring-[#11E5C5]" }), field.description && (jsx("span", { className: "text-sm text-gray-600", children: field.description }))] }));
|
|
74
62
|
case "enum":
|
|
@@ -172,7 +160,7 @@ var CustomFormFields = function (_a) {
|
|
|
172
160
|
: "border-gray-300 hover:border-gray-400");
|
|
173
161
|
return (jsxs("div", { className: "flex flex-col gap-1 min-w-0", children: [jsx(ListCell, { col: col, value: row[col.label] || "", hasError: cellHasError || hasError, cellClasses: cellInputClasses, onChange: function (val) {
|
|
174
162
|
return handleRowChange_1(rowIndex, col.label, val);
|
|
175
|
-
} }), typeof cellErr === "string" && (jsx("span", { className: "text-xs text-red-600", children: cellErr }))] }, col.label));
|
|
163
|
+
}, language: currentLanguage }), typeof cellErr === "string" && (jsx("span", { className: "text-xs text-red-600", children: cellErr }))] }, col.label));
|
|
176
164
|
}), jsx("button", { type: "button", onClick: function () { return handleRemoveRow_1(rowIndex); }, className: clsx("flex items-center justify-center w-8 h-8 rounded-full transition-colors", rows_1.length <= minRows_1
|
|
177
165
|
? "text-gray-300 cursor-not-allowed"
|
|
178
166
|
: "text-gray-400 hover:text-red-500 hover:bg-red-50"), "aria-label": t("custom_form.remove_row", "Supprimer la ligne"), disabled: rows_1.length <= minRows_1, children: "\u2715" })] }, rowIndex)); }), jsxs("button", { type: "button", onClick: handleAddRow, className: "flex items-center gap-2 text-sm text-[#11E5C5] hover:underline font-medium", children: ["+ ", t("custom_form.add_row", "Ajouter une ligne")] })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomFormFields.js","sources":["../../../../../../src/components/session/UserInputForm/CustomFormFields.tsx"],"sourcesContent":["import { Fragment } from \"react\";\nimport * as Label from \"@radix-ui/react-label\";\nimport clsx from \"clsx\";\nimport { Select } from \"../../ui/SelectComponent\";\nimport type { CustomField, ListColumn } from \"../../../types/session\";\nimport { useI18n } from \"../../../hooks/useI18n\";\nimport AddressFields from \"./AddressFields\";\nimport type { AddressSuggestion } from \"../../../types/userInputForm\";\nimport {\n createEmptyListRow,\n ensureMinimumListRows,\n getListFieldMinRows,\n normalizeListColumns,\n} from \"../../../utils/listFieldUtils\";\nimport { cellErrorKey } from \"../../../utils/customFieldValidation\";\n\ntype CellErrorValue = string | boolean;\n\n/**\n * Sous-composant dédié au rendu d'une cellule du tableau dynamique.\n * Nécessaire pour que les hooks internes à Select soient toujours appelés\n * de façon stable (règle des hooks React).\n */\nconst dateFormatPlaceholder = (format: string): string => {\n switch (format) {\n case \"yyyy-mm-dd\":\n return \"YYYY-MM-DD\";\n case \"mm/dd/yyyy\":\n return \"MM/DD/YYYY\";\n default:\n return \"DD/MM/YYYY\";\n }\n};\n\nconst ListCell = ({\n col,\n value,\n hasError,\n cellClasses,\n onChange,\n}: {\n col: ListColumn;\n value: string;\n hasError: boolean;\n cellClasses: string;\n onChange: (val: string) => void;\n}) => {\n if (col.type === \"enum\") {\n return (\n <Select\n options={(col.options ?? []).map((opt) => ({ value: opt, label: opt }))}\n value={value}\n onValueChange={onChange}\n placeholder={col.placeholder || col.label}\n error={hasError}\n compact\n />\n );\n }\n if (col.type === \"email\") {\n return (\n <input\n type=\"email\"\n value={value}\n onChange={(e) => onChange(e.target.value)}\n placeholder={col.placeholder || col.label}\n className={cellClasses}\n autoComplete=\"off\"\n inputMode=\"email\"\n />\n );\n }\n if (col.type === \"date\") {\n return (\n <input\n type=\"text\"\n value={value}\n onChange={(e) => onChange(e.target.value)}\n placeholder={\n col.placeholder ||\n dateFormatPlaceholder(col.dateFormat ?? \"dd/mm/yyyy\")\n }\n className={cellClasses}\n autoComplete=\"off\"\n inputMode=\"numeric\"\n />\n );\n }\n return (\n <input\n type=\"text\"\n value={value}\n onChange={(e) => onChange(e.target.value)}\n placeholder={col.placeholder || col.label}\n className={cellClasses}\n autoComplete=\"off\"\n />\n );\n};\n\ninterface CustomFormFieldsProps {\n customFields: CustomField[];\n formData: Record<string, any>;\n errors: Record<string, CellErrorValue>;\n cellErrors?: Record<string, Record<string, CellErrorValue>>;\n onFieldChange: (fieldId: string, value: any) => void;\n // Address autocomplete props (for address field type)\n addressSuggestions?: AddressSuggestion[];\n showSuggestions?: boolean;\n onAddressChange?: (fieldId: string, value: string) => void;\n onAddressFocus?: (fieldId: string) => void;\n onAddressBlur?: (fieldId: string) => void;\n onApplySuggestion?: (fieldId: string, suggestion: AddressSuggestion) => void;\n}\n\nconst CustomFormFields = ({\n customFields,\n formData,\n errors,\n cellErrors = {},\n onFieldChange,\n addressSuggestions = [],\n showSuggestions = false,\n onAddressChange,\n onAddressFocus,\n onAddressBlur,\n onApplySuggestion,\n}: CustomFormFieldsProps) => {\n const { t } = useI18n();\n\n console.log(\"🎨 [CustomFormFields] Rendering with:\", {\n fieldsCount: customFields.length,\n fields: customFields.map((f) => ({\n id: f.id,\n label: f.label,\n type: f.valueType,\n })),\n formData,\n errors,\n });\n\n const renderField = (field: CustomField) => {\n const hasError = Boolean(errors[field.id]);\n const value = formData[field.id];\n\n // Classes communes (EXACTEMENT comme IdentityFields/ContactFields)\n const inputClasses = clsx(\n \"w-full px-3 py-3 md:py-4 border rounded-lg text-base transition-colors focus:outline-none focus:ring-2 focus:ring-[#11E5C5] focus:border-transparent\",\n hasError\n ? \"border-red-500 bg-red-50\"\n : \"border-gray-300 hover:border-gray-400\",\n );\n\n switch (field.valueType) {\n case \"text\":\n return (\n <input\n id={field.id}\n type=\"text\"\n value={value || \"\"}\n onChange={(e) => onFieldChange(field.id, e.target.value)}\n placeholder={field.placeholder}\n className={inputClasses}\n autoComplete=\"off\"\n />\n );\n\n case \"number\":\n return (\n <input\n id={field.id}\n type=\"number\"\n inputMode=\"numeric\"\n value={value || \"\"}\n onChange={(e) => onFieldChange(field.id, e.target.value)}\n placeholder={field.placeholder}\n className={inputClasses}\n />\n );\n\n case \"date\": {\n const fmt = field.dateFormat ?? \"dd/mm/yyyy\";\n return (\n <input\n id={field.id}\n type=\"text\"\n value={value || \"\"}\n onChange={(e) => onFieldChange(field.id, e.target.value)}\n placeholder={field.placeholder || dateFormatPlaceholder(fmt)}\n className={inputClasses}\n autoComplete=\"off\"\n />\n );\n }\n\n case \"boolean\":\n return (\n <div className=\"flex items-center gap-2\">\n <input\n id={field.id}\n type=\"checkbox\"\n checked={value || false}\n onChange={(e) => onFieldChange(field.id, e.target.checked)}\n className=\"h-4 w-4 text-[#11E5C5] border-gray-300 rounded focus:ring-[#11E5C5]\"\n />\n {field.description && (\n <span className=\"text-sm text-gray-600\">{field.description}</span>\n )}\n </div>\n );\n\n case \"enum\":\n return (\n <Select\n options={(field.enumOptions || []).map((opt) => ({\n value: opt,\n label: opt,\n }))}\n value={value || \"\"}\n onValueChange={(val) => onFieldChange(field.id, val)}\n placeholder={field.placeholder || t(\"custom_form.select_option\")}\n error={hasError}\n />\n );\n\n case \"email\":\n return (\n <input\n id={field.id}\n type=\"email\"\n value={value || \"\"}\n onChange={(e) => onFieldChange(field.id, e.target.value)}\n placeholder={field.placeholder}\n className={inputClasses}\n autoComplete=\"off\"\n inputMode=\"email\"\n />\n );\n\n case \"address\":\n // For address, use the existing AddressFields component\n const addressValue = value || {};\n const addressForm = {\n lastName: \"\",\n firstName: \"\",\n birthDate: \"\",\n day: \"\",\n month: \"\",\n year: \"\",\n email: \"\",\n phoneNumber: \"\",\n sms: \"\",\n addressLine1: addressValue.addressLine1 || \"\",\n addressLine2: addressValue.addressLine2 || \"\",\n postalCode: addressValue.postalCode || \"\",\n city: addressValue.city || \"\",\n countryCode: addressValue.countryCode || \"\",\n nationality: \"\",\n companyName: \"\",\n siret: \"\",\n tva: \"\",\n };\n\n return (\n <AddressFields\n form={addressForm}\n errors={{\n addressLine1: hasError,\n addressLine2: false,\n postalCode: hasError,\n city: hasError,\n country: hasError,\n }}\n requestedFields={new Set([\"adresse\"])}\n onFieldChange={(key, val) => {\n const updatedAddress = {\n ...addressValue,\n [key]: val,\n };\n onFieldChange(field.id, updatedAddress);\n }}\n addressSuggestions={addressSuggestions}\n showSuggestions={showSuggestions}\n onAddressChange={(val) => {\n const updatedAddress = {\n ...addressValue,\n addressLine1: val,\n };\n onFieldChange(field.id, updatedAddress);\n onAddressChange?.(field.id, val);\n }}\n onAddressFocus={() => onAddressFocus?.(field.id)}\n onAddressBlur={() => onAddressBlur?.(field.id)}\n onApplySuggestion={(suggestion) => {\n const updatedAddress = {\n addressLine1: suggestion.label || \"\",\n addressLine2: addressValue.addressLine2 || \"\",\n postalCode: suggestion.postalCode || \"\",\n city: suggestion.city || \"\",\n countryCode: suggestion.countryCode || \"\",\n };\n onFieldChange(field.id, updatedAddress);\n onApplySuggestion?.(field.id, suggestion);\n }}\n />\n );\n\n case \"list\": {\n const persistedRows: Record<string, string>[] = Array.isArray(value)\n ? value\n : [];\n const columns: ListColumn[] = normalizeListColumns(field.listColumns);\n const minRows = getListFieldMinRows(field);\n const rows = ensureMinimumListRows(persistedRows, columns, minRows);\n const gridTemplateColumns = `repeat(${columns.length}, minmax(180px, 1fr)) 32px`;\n const gridMinWidth = `${columns.length * 180 + (columns.length - 1) * 8 + 32}px`;\n const fieldCellErrors = cellErrors[field.id] ?? {};\n\n if (columns.length === 0) {\n return (\n <p className=\"text-sm text-red-600\">\n {t(\n \"custom_form.list_missing_columns\",\n \"Ce tableau n'a pas de colonnes configurées.\",\n )}\n </p>\n );\n }\n\n const handleRowChange = (\n rowIndex: number,\n colName: string,\n colValue: string,\n ) => {\n const updated = [...rows];\n updated[rowIndex] = { ...updated[rowIndex], [colName]: colValue };\n onFieldChange(field.id, updated);\n };\n\n const handleAddRow = () => {\n const emptyRow = createEmptyListRow(columns);\n onFieldChange(field.id, [...rows, emptyRow]);\n };\n\n const handleRemoveRow = (rowIndex: number) => {\n if (rows.length <= minRows) {\n return;\n }\n\n onFieldChange(\n field.id,\n rows.filter((_, i) => i !== rowIndex),\n );\n };\n\n const cellClasses = clsx(\n \"w-full px-2 py-2 border rounded-lg text-sm transition-colors focus:outline-none focus:ring-2 focus:ring-[#11E5C5] focus:border-transparent\",\n hasError\n ? \"border-red-500 bg-red-50\"\n : \"border-gray-300 hover:border-gray-400\",\n );\n\n return (\n <div className=\"space-y-3 overflow-x-auto\">\n {columns.length > 0 && (\n <div\n className=\"grid gap-2 items-center w-full\"\n style={{\n gridTemplateColumns,\n minWidth: gridMinWidth,\n }}\n >\n {columns.map((col) => (\n <span\n key={col.label}\n className=\"text-xs font-semibold text-gray-600 uppercase tracking-wide truncate\"\n >\n {col.label}\n </span>\n ))}\n <span />\n </div>\n )}\n\n {rows.map((row, rowIndex) => (\n <div\n key={rowIndex}\n className=\"grid gap-2 items-start w-full\"\n style={{\n gridTemplateColumns,\n minWidth: gridMinWidth,\n }}\n >\n {columns.map((col) => {\n const cellErr =\n fieldCellErrors[cellErrorKey(rowIndex, col.label)];\n const cellHasError = Boolean(cellErr);\n const cellInputClasses = clsx(\n \"w-full px-2 py-2 border rounded-lg text-sm transition-colors focus:outline-none focus:ring-2 focus:ring-[#11E5C5] focus:border-transparent\",\n cellHasError\n ? \"border-red-500 bg-red-50\"\n : \"border-gray-300 hover:border-gray-400\",\n );\n return (\n <div\n key={col.label}\n className=\"flex flex-col gap-1 min-w-0\"\n >\n <ListCell\n col={col}\n value={row[col.label] || \"\"}\n hasError={cellHasError || hasError}\n cellClasses={cellInputClasses}\n onChange={(val) =>\n handleRowChange(rowIndex, col.label, val)\n }\n />\n {typeof cellErr === \"string\" && (\n <span className=\"text-xs text-red-600\">\n {cellErr}\n </span>\n )}\n </div>\n );\n })}\n <button\n type=\"button\"\n onClick={() => handleRemoveRow(rowIndex)}\n className={clsx(\n \"flex items-center justify-center w-8 h-8 rounded-full transition-colors\",\n rows.length <= minRows\n ? \"text-gray-300 cursor-not-allowed\"\n : \"text-gray-400 hover:text-red-500 hover:bg-red-50\",\n )}\n aria-label={t(\"custom_form.remove_row\", \"Supprimer la ligne\")}\n disabled={rows.length <= minRows}\n >\n ✕\n </button>\n </div>\n ))}\n\n <button\n type=\"button\"\n onClick={handleAddRow}\n className=\"flex items-center gap-2 text-sm text-[#11E5C5] hover:underline font-medium\"\n >\n + {t(\"custom_form.add_row\", \"Ajouter une ligne\")}\n </button>\n </div>\n );\n }\n\n default:\n return null;\n }\n };\n\n return (\n <Fragment>\n {customFields.map((field) => (\n <div key={field.id} className=\"space-y-2\">\n <Label.Root\n htmlFor={field.id}\n className=\"block text-sm md:text-base font-semibold text-gray-900\"\n >\n {field.label}\n {field.required && <span className=\"text-red-500 ml-1\">*</span>}\n </Label.Root>\n\n {field.description && field.valueType !== \"boolean\" && (\n <p className=\"text-xs text-gray-500 -mt-1\">{field.description}</p>\n )}\n\n {renderField(field)}\n\n {(() => {\n const fieldErr = errors[field.id];\n if (!fieldErr) return null;\n const message =\n typeof fieldErr === \"string\"\n ? fieldErr\n : field.required && !formData[field.id]\n ? t(\"custom_form.required_field\")\n : t(\"custom_form.invalid_value\");\n return (\n <p className=\"text-red-600 text-sm flex items-center gap-1\">\n <span className=\"text-red-500\">⚠</span>\n {message}\n </p>\n );\n })()}\n </div>\n ))}\n </Fragment>\n );\n};\n\nexport default CustomFormFields;\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CustomFormFields.js","sources":["../../../../../../src/components/session/UserInputForm/CustomFormFields.tsx"],"sourcesContent":["import { Fragment } from \"react\";\nimport * as Label from \"@radix-ui/react-label\";\nimport clsx from \"clsx\";\nimport { Select } from \"../../ui/SelectComponent\";\nimport type { CustomField, ListColumn } from \"../../../types/session\";\nimport { useI18n } from \"../../../hooks/useI18n\";\nimport AddressFields from \"./AddressFields\";\nimport type { AddressSuggestion } from \"../../../types/userInputForm\";\nimport {\n createEmptyListRow,\n ensureMinimumListRows,\n getListFieldMinRows,\n normalizeListColumns,\n} from \"../../../utils/listFieldUtils\";\nimport { cellErrorKey } from \"../../../utils/customFieldValidation\";\nimport { DatePickerField } from \"./DatePickerField\";\n\ntype CellErrorValue = string | boolean;\n\n/**\n * Sous-composant dédié au rendu d'une cellule du tableau dynamique.\n * Nécessaire pour que les hooks internes à Select soient toujours appelés\n * de façon stable (règle des hooks React).\n */\nconst ListCell = ({\n col,\n value,\n hasError,\n cellClasses,\n onChange,\n language,\n}: {\n col: ListColumn;\n value: string;\n hasError: boolean;\n cellClasses: string;\n onChange: (val: string) => void;\n language: string;\n}) => {\n if (col.type === \"enum\") {\n return (\n <Select\n options={(col.options ?? []).map((opt) => ({ value: opt, label: opt }))}\n value={value}\n onValueChange={onChange}\n placeholder={col.placeholder || col.label}\n error={hasError}\n compact\n />\n );\n }\n if (col.type === \"email\") {\n return (\n <input\n type=\"email\"\n value={value}\n onChange={(e) => onChange(e.target.value)}\n placeholder={col.placeholder || col.label}\n className={cellClasses}\n autoComplete=\"off\"\n inputMode=\"email\"\n />\n );\n }\n if (col.type === \"date\") {\n return (\n <DatePickerField\n value={value}\n dateFormat={col.dateFormat ?? \"dd/mm/yyyy\"}\n placeholder={col.placeholder}\n hasError={hasError}\n language={language}\n onChange={onChange}\n className={cellClasses}\n />\n );\n }\n return (\n <input\n type=\"text\"\n value={value}\n onChange={(e) => onChange(e.target.value)}\n placeholder={col.placeholder || col.label}\n className={cellClasses}\n autoComplete=\"off\"\n />\n );\n};\n\ninterface CustomFormFieldsProps {\n customFields: CustomField[];\n formData: Record<string, any>;\n errors: Record<string, CellErrorValue>;\n cellErrors?: Record<string, Record<string, CellErrorValue>>;\n onFieldChange: (fieldId: string, value: any) => void;\n // Address autocomplete props (for address field type)\n addressSuggestions?: AddressSuggestion[];\n showSuggestions?: boolean;\n onAddressChange?: (fieldId: string, value: string) => void;\n onAddressFocus?: (fieldId: string) => void;\n onAddressBlur?: (fieldId: string) => void;\n onApplySuggestion?: (fieldId: string, suggestion: AddressSuggestion) => void;\n}\n\nconst CustomFormFields = ({\n customFields,\n formData,\n errors,\n cellErrors = {},\n onFieldChange,\n addressSuggestions = [],\n showSuggestions = false,\n onAddressChange,\n onAddressFocus,\n onAddressBlur,\n onApplySuggestion,\n}: CustomFormFieldsProps) => {\n const { t, currentLanguage } = useI18n();\n\n console.log(\"🎨 [CustomFormFields] Rendering with:\", {\n fieldsCount: customFields.length,\n fields: customFields.map((f) => ({\n id: f.id,\n label: f.label,\n type: f.valueType,\n })),\n formData,\n errors,\n });\n\n const renderField = (field: CustomField) => {\n const hasError = Boolean(errors[field.id]);\n const value = formData[field.id];\n\n // Classes communes (EXACTEMENT comme IdentityFields/ContactFields)\n const inputClasses = clsx(\n \"w-full px-3 py-3 md:py-4 border rounded-lg text-base transition-colors focus:outline-none focus:ring-2 focus:ring-[#11E5C5] focus:border-transparent\",\n hasError\n ? \"border-red-500 bg-red-50\"\n : \"border-gray-300 hover:border-gray-400\",\n );\n\n switch (field.valueType) {\n case \"text\":\n return (\n <input\n id={field.id}\n type=\"text\"\n value={value || \"\"}\n onChange={(e) => onFieldChange(field.id, e.target.value)}\n placeholder={field.placeholder}\n className={inputClasses}\n autoComplete=\"off\"\n />\n );\n\n case \"number\":\n return (\n <input\n id={field.id}\n type=\"number\"\n inputMode=\"numeric\"\n value={value || \"\"}\n onChange={(e) => onFieldChange(field.id, e.target.value)}\n placeholder={field.placeholder}\n className={inputClasses}\n />\n );\n\n case \"date\":\n return (\n <DatePickerField\n id={field.id}\n value={value || \"\"}\n dateFormat={field.dateFormat ?? \"dd/mm/yyyy\"}\n placeholder={field.placeholder}\n hasError={hasError}\n language={currentLanguage}\n onChange={(v) => onFieldChange(field.id, v)}\n className={inputClasses}\n />\n );\n\n case \"boolean\":\n return (\n <div className=\"flex items-center gap-2\">\n <input\n id={field.id}\n type=\"checkbox\"\n checked={value || false}\n onChange={(e) => onFieldChange(field.id, e.target.checked)}\n className=\"h-4 w-4 text-[#11E5C5] border-gray-300 rounded focus:ring-[#11E5C5]\"\n />\n {field.description && (\n <span className=\"text-sm text-gray-600\">{field.description}</span>\n )}\n </div>\n );\n\n case \"enum\":\n return (\n <Select\n options={(field.enumOptions || []).map((opt) => ({\n value: opt,\n label: opt,\n }))}\n value={value || \"\"}\n onValueChange={(val) => onFieldChange(field.id, val)}\n placeholder={field.placeholder || t(\"custom_form.select_option\")}\n error={hasError}\n />\n );\n\n case \"email\":\n return (\n <input\n id={field.id}\n type=\"email\"\n value={value || \"\"}\n onChange={(e) => onFieldChange(field.id, e.target.value)}\n placeholder={field.placeholder}\n className={inputClasses}\n autoComplete=\"off\"\n inputMode=\"email\"\n />\n );\n\n case \"address\":\n // For address, use the existing AddressFields component\n const addressValue = value || {};\n const addressForm = {\n lastName: \"\",\n firstName: \"\",\n birthDate: \"\",\n day: \"\",\n month: \"\",\n year: \"\",\n email: \"\",\n phoneNumber: \"\",\n sms: \"\",\n addressLine1: addressValue.addressLine1 || \"\",\n addressLine2: addressValue.addressLine2 || \"\",\n postalCode: addressValue.postalCode || \"\",\n city: addressValue.city || \"\",\n countryCode: addressValue.countryCode || \"\",\n nationality: \"\",\n companyName: \"\",\n siret: \"\",\n tva: \"\",\n };\n\n return (\n <AddressFields\n form={addressForm}\n errors={{\n addressLine1: hasError,\n addressLine2: false,\n postalCode: hasError,\n city: hasError,\n country: hasError,\n }}\n requestedFields={new Set([\"adresse\"])}\n onFieldChange={(key, val) => {\n const updatedAddress = {\n ...addressValue,\n [key]: val,\n };\n onFieldChange(field.id, updatedAddress);\n }}\n addressSuggestions={addressSuggestions}\n showSuggestions={showSuggestions}\n onAddressChange={(val) => {\n const updatedAddress = {\n ...addressValue,\n addressLine1: val,\n };\n onFieldChange(field.id, updatedAddress);\n onAddressChange?.(field.id, val);\n }}\n onAddressFocus={() => onAddressFocus?.(field.id)}\n onAddressBlur={() => onAddressBlur?.(field.id)}\n onApplySuggestion={(suggestion) => {\n const updatedAddress = {\n addressLine1: suggestion.label || \"\",\n addressLine2: addressValue.addressLine2 || \"\",\n postalCode: suggestion.postalCode || \"\",\n city: suggestion.city || \"\",\n countryCode: suggestion.countryCode || \"\",\n };\n onFieldChange(field.id, updatedAddress);\n onApplySuggestion?.(field.id, suggestion);\n }}\n />\n );\n\n case \"list\": {\n const persistedRows: Record<string, string>[] = Array.isArray(value)\n ? value\n : [];\n const columns: ListColumn[] = normalizeListColumns(field.listColumns);\n const minRows = getListFieldMinRows(field);\n const rows = ensureMinimumListRows(persistedRows, columns, minRows);\n const gridTemplateColumns = `repeat(${columns.length}, minmax(180px, 1fr)) 32px`;\n const gridMinWidth = `${columns.length * 180 + (columns.length - 1) * 8 + 32}px`;\n const fieldCellErrors = cellErrors[field.id] ?? {};\n\n if (columns.length === 0) {\n return (\n <p className=\"text-sm text-red-600\">\n {t(\n \"custom_form.list_missing_columns\",\n \"Ce tableau n'a pas de colonnes configurées.\",\n )}\n </p>\n );\n }\n\n const handleRowChange = (\n rowIndex: number,\n colName: string,\n colValue: string,\n ) => {\n const updated = [...rows];\n updated[rowIndex] = { ...updated[rowIndex], [colName]: colValue };\n onFieldChange(field.id, updated);\n };\n\n const handleAddRow = () => {\n const emptyRow = createEmptyListRow(columns);\n onFieldChange(field.id, [...rows, emptyRow]);\n };\n\n const handleRemoveRow = (rowIndex: number) => {\n if (rows.length <= minRows) {\n return;\n }\n\n onFieldChange(\n field.id,\n rows.filter((_, i) => i !== rowIndex),\n );\n };\n\n const cellClasses = clsx(\n \"w-full px-2 py-2 border rounded-lg text-sm transition-colors focus:outline-none focus:ring-2 focus:ring-[#11E5C5] focus:border-transparent\",\n hasError\n ? \"border-red-500 bg-red-50\"\n : \"border-gray-300 hover:border-gray-400\",\n );\n\n return (\n <div className=\"space-y-3 overflow-x-auto\">\n {columns.length > 0 && (\n <div\n className=\"grid gap-2 items-center w-full\"\n style={{\n gridTemplateColumns,\n minWidth: gridMinWidth,\n }}\n >\n {columns.map((col) => (\n <span\n key={col.label}\n className=\"text-xs font-semibold text-gray-600 uppercase tracking-wide truncate\"\n >\n {col.label}\n </span>\n ))}\n <span />\n </div>\n )}\n\n {rows.map((row, rowIndex) => (\n <div\n key={rowIndex}\n className=\"grid gap-2 items-start w-full\"\n style={{\n gridTemplateColumns,\n minWidth: gridMinWidth,\n }}\n >\n {columns.map((col) => {\n const cellErr =\n fieldCellErrors[cellErrorKey(rowIndex, col.label)];\n const cellHasError = Boolean(cellErr);\n const cellInputClasses = clsx(\n \"w-full px-2 py-2 border rounded-lg text-sm transition-colors focus:outline-none focus:ring-2 focus:ring-[#11E5C5] focus:border-transparent\",\n cellHasError\n ? \"border-red-500 bg-red-50\"\n : \"border-gray-300 hover:border-gray-400\",\n );\n return (\n <div\n key={col.label}\n className=\"flex flex-col gap-1 min-w-0\"\n >\n <ListCell\n col={col}\n value={row[col.label] || \"\"}\n hasError={cellHasError || hasError}\n cellClasses={cellInputClasses}\n onChange={(val) =>\n handleRowChange(rowIndex, col.label, val)\n }\n language={currentLanguage}\n />\n {typeof cellErr === \"string\" && (\n <span className=\"text-xs text-red-600\">\n {cellErr}\n </span>\n )}\n </div>\n );\n })}\n <button\n type=\"button\"\n onClick={() => handleRemoveRow(rowIndex)}\n className={clsx(\n \"flex items-center justify-center w-8 h-8 rounded-full transition-colors\",\n rows.length <= minRows\n ? \"text-gray-300 cursor-not-allowed\"\n : \"text-gray-400 hover:text-red-500 hover:bg-red-50\",\n )}\n aria-label={t(\"custom_form.remove_row\", \"Supprimer la ligne\")}\n disabled={rows.length <= minRows}\n >\n ✕\n </button>\n </div>\n ))}\n\n <button\n type=\"button\"\n onClick={handleAddRow}\n className=\"flex items-center gap-2 text-sm text-[#11E5C5] hover:underline font-medium\"\n >\n + {t(\"custom_form.add_row\", \"Ajouter une ligne\")}\n </button>\n </div>\n );\n }\n\n default:\n return null;\n }\n };\n\n return (\n <Fragment>\n {customFields.map((field) => (\n <div key={field.id} className=\"space-y-2\">\n <Label.Root\n htmlFor={field.id}\n className=\"block text-sm md:text-base font-semibold text-gray-900\"\n >\n {field.label}\n {field.required && <span className=\"text-red-500 ml-1\">*</span>}\n </Label.Root>\n\n {field.description && field.valueType !== \"boolean\" && (\n <p className=\"text-xs text-gray-500 -mt-1\">{field.description}</p>\n )}\n\n {renderField(field)}\n\n {(() => {\n const fieldErr = errors[field.id];\n if (!fieldErr) return null;\n const message =\n typeof fieldErr === \"string\"\n ? fieldErr\n : field.required && !formData[field.id]\n ? t(\"custom_form.required_field\")\n : t(\"custom_form.invalid_value\");\n return (\n <p className=\"text-red-600 text-sm flex items-center gap-1\">\n <span className=\"text-red-500\">⚠</span>\n {message}\n </p>\n );\n })()}\n </div>\n ))}\n </Fragment>\n );\n};\n\nexport default CustomFormFields;\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|