@evanschleret/formforgeclient 1.2.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/README.md +10 -0
  2. package/dist/module.cjs +1 -0
  3. package/dist/module.d.cts +1 -0
  4. package/dist/module.d.mts +1 -0
  5. package/dist/module.d.ts +1 -0
  6. package/dist/module.json +1 -1
  7. package/dist/module.mjs +1 -0
  8. package/dist/runtime/api/client.js +4 -2
  9. package/dist/runtime/api/request.d.ts +1 -0
  10. package/dist/runtime/api/schema.js +4 -4
  11. package/dist/runtime/assets/formforge.css +1 -0
  12. package/dist/runtime/composables/index.d.ts +1 -1
  13. package/dist/runtime/composables/useFormForgeBuilder.d.ts +24 -2
  14. package/dist/runtime/composables/useFormForgeBuilder.js +299 -43
  15. package/dist/runtime/composables/useFormForgeClient.js +3 -5
  16. package/dist/runtime/composables/useFormForgeForm.js +15 -5
  17. package/dist/runtime/composables/useFormForgeI18n.d.ts +245 -19
  18. package/dist/runtime/composables/useFormForgeI18n.js +245 -19
  19. package/dist/runtime/composables/useFormForgeSubmit.js +31 -9
  20. package/dist/runtime/index.d.ts +1 -0
  21. package/dist/runtime/renderers/default/FormForgeBuilder.d.vue.ts +21 -2
  22. package/dist/runtime/renderers/default/FormForgeBuilder.vue +689 -738
  23. package/dist/runtime/renderers/default/FormForgeBuilder.vue.d.ts +21 -2
  24. package/dist/runtime/renderers/default/FormForgeBuilderBlockSettingsModal.d.vue.ts +17 -0
  25. package/dist/runtime/renderers/default/FormForgeBuilderBlockSettingsModal.vue +32 -0
  26. package/dist/runtime/renderers/default/FormForgeBuilderBlockSettingsModal.vue.d.ts +17 -0
  27. package/dist/runtime/renderers/default/FormForgeRenderer.d.vue.ts +3 -4
  28. package/dist/runtime/renderers/default/FormForgeRenderer.vue +344 -294
  29. package/dist/runtime/renderers/default/FormForgeRenderer.vue.d.ts +3 -4
  30. package/dist/runtime/renderers/default/FormForgeRendererField.d.vue.ts +22 -0
  31. package/dist/runtime/renderers/default/FormForgeRendererField.vue +237 -0
  32. package/dist/runtime/renderers/default/FormForgeRendererField.vue.d.ts +22 -0
  33. package/dist/runtime/renderers/default/FormForgeRendererPage.d.vue.ts +18 -0
  34. package/dist/runtime/renderers/default/FormForgeRendererPage.vue +31 -0
  35. package/dist/runtime/renderers/default/FormForgeRendererPage.vue.d.ts +18 -0
  36. package/dist/runtime/renderers/default/FormForgeResponse.vue +4 -3
  37. package/dist/runtime/renderers/default/builder/FormForgeBuilderAddressFieldsCard.d.vue.ts +11 -0
  38. package/dist/runtime/renderers/default/builder/FormForgeBuilderAddressFieldsCard.vue +118 -0
  39. package/dist/runtime/renderers/default/builder/FormForgeBuilderAddressFieldsCard.vue.d.ts +11 -0
  40. package/dist/runtime/renderers/default/builder/FormForgeBuilderBlockCard.d.vue.ts +46 -0
  41. package/dist/runtime/renderers/default/builder/FormForgeBuilderBlockCard.vue +205 -0
  42. package/dist/runtime/renderers/default/builder/FormForgeBuilderBlockCard.vue.d.ts +46 -0
  43. package/dist/runtime/renderers/default/builder/FormForgeBuilderChoiceDisplayField.d.vue.ts +11 -0
  44. package/dist/runtime/renderers/default/builder/FormForgeBuilderChoiceDisplayField.vue +37 -0
  45. package/dist/runtime/renderers/default/builder/FormForgeBuilderChoiceDisplayField.vue.d.ts +11 -0
  46. package/dist/runtime/renderers/default/builder/FormForgeBuilderChoiceOptionsField.d.vue.ts +11 -0
  47. package/dist/runtime/renderers/default/builder/FormForgeBuilderChoiceOptionsField.vue +195 -0
  48. package/dist/runtime/renderers/default/builder/FormForgeBuilderChoiceOptionsField.vue.d.ts +11 -0
  49. package/dist/runtime/renderers/default/builder/FormForgeBuilderDescriptionField.d.vue.ts +14 -0
  50. package/dist/runtime/renderers/default/builder/FormForgeBuilderDescriptionField.vue +91 -0
  51. package/dist/runtime/renderers/default/builder/FormForgeBuilderDescriptionField.vue.d.ts +14 -0
  52. package/dist/runtime/renderers/default/builder/FormForgeBuilderLogicPanel.d.vue.ts +13 -0
  53. package/dist/runtime/renderers/default/builder/FormForgeBuilderLogicPanel.vue +387 -0
  54. package/dist/runtime/renderers/default/builder/FormForgeBuilderLogicPanel.vue.d.ts +13 -0
  55. package/dist/runtime/renderers/default/builder/FormForgeBuilderQuestionRow.d.vue.ts +44 -0
  56. package/dist/runtime/renderers/default/builder/FormForgeBuilderQuestionRow.vue +328 -0
  57. package/dist/runtime/renderers/default/builder/FormForgeBuilderQuestionRow.vue.d.ts +44 -0
  58. package/dist/runtime/renderers/default/builder/FormForgeBuilderTemporalModeField.d.vue.ts +11 -0
  59. package/dist/runtime/renderers/default/builder/FormForgeBuilderTemporalModeField.vue +47 -0
  60. package/dist/runtime/renderers/default/builder/FormForgeBuilderTemporalModeField.vue.d.ts +11 -0
  61. package/dist/runtime/renderers/default/builder/FormForgeBuilderValidationRulesSection.d.vue.ts +14 -0
  62. package/dist/runtime/renderers/default/builder/FormForgeBuilderValidationRulesSection.vue +595 -0
  63. package/dist/runtime/renderers/default/builder/FormForgeBuilderValidationRulesSection.vue.d.ts +14 -0
  64. package/dist/runtime/renderers/default/builder/builderFieldHelpers.d.ts +3 -0
  65. package/dist/runtime/renderers/default/builder/builderFieldHelpers.js +4 -0
  66. package/dist/runtime/types/index.d.ts +1 -1
  67. package/dist/runtime/types/management.d.ts +12 -0
  68. package/dist/runtime/types/schema.d.ts +72 -4
  69. package/dist/runtime/utils/defaults.d.ts +7 -0
  70. package/dist/runtime/utils/defaults.js +86 -0
  71. package/dist/runtime/utils/page-logic.d.ts +24 -0
  72. package/dist/runtime/utils/page-logic.js +351 -0
  73. package/dist/runtime/utils/rich-text.d.ts +3 -0
  74. package/dist/runtime/utils/rich-text.js +72 -0
  75. package/dist/runtime/utils/schema.d.ts +1 -1
  76. package/dist/runtime/utils/schema.js +70 -16
  77. package/dist/runtime/utils/temporal.d.ts +10 -0
  78. package/dist/runtime/utils/temporal.js +28 -0
  79. package/dist/runtime/utils/validation.d.ts +5 -0
  80. package/dist/runtime/utils/validation.js +36 -0
  81. package/dist/runtime/validation/zod.d.ts +5 -2
  82. package/dist/runtime/validation/zod.js +563 -54
  83. package/dist/types.d.mts +2 -0
  84. package/package.json +18 -14
@@ -5,54 +5,125 @@ export interface UseFormForgeI18nOptions {
5
5
  type FormForgeTranslationValues = Record<string, string | number>;
6
6
  declare const TRANSLATIONS: {
7
7
  readonly en: {
8
- readonly 'builder.fieldType.text': "Short text";
8
+ readonly 'builder.fieldType.text': "Free text";
9
9
  readonly 'builder.fieldType.textarea': "Long text";
10
10
  readonly 'builder.fieldType.email': "Email";
11
11
  readonly 'builder.fieldType.number': "Number";
12
- readonly 'builder.fieldType.select': "Select";
13
- readonly 'builder.fieldType.select_menu': "Select menu";
14
- readonly 'builder.fieldType.radio': "Multiple choice";
12
+ readonly 'builder.fieldType.select': "Dropdown";
13
+ readonly 'builder.fieldType.select_menu': "Dropdown menu";
14
+ readonly 'builder.fieldType.radio': "Single choice";
15
15
  readonly 'builder.fieldType.checkbox': "Checkbox";
16
- readonly 'builder.fieldType.checkbox_group': "Checkbox group";
16
+ readonly 'builder.fieldType.consent': "Consent";
17
+ readonly 'builder.fieldType.checkbox_group': "Multiple choice";
18
+ readonly 'builder.fieldType.address': "Address";
17
19
  readonly 'builder.fieldType.switch': "Switch";
20
+ readonly 'builder.fieldType.temporal': "Date / time";
18
21
  readonly 'builder.fieldType.date': "Date";
19
22
  readonly 'builder.fieldType.time': "Time";
20
- readonly 'builder.fieldType.datetime': "Date & time";
21
- readonly 'builder.fieldType.date_range': "Date range";
22
- readonly 'builder.fieldType.datetime_range': "Datetime range";
23
23
  readonly 'builder.fieldType.file': "File upload";
24
24
  readonly 'builder.targetType.page': "Page";
25
25
  readonly 'builder.targetType.field': "Field";
26
26
  readonly 'builder.formTitlePlaceholder': "Form title";
27
27
  readonly 'builder.categoryPlaceholder': "Category";
28
28
  readonly 'builder.categoryNone': "No category";
29
+ readonly 'builder.blockLabel': "Block";
30
+ readonly 'builder.blockCounter': "Block {current} / {total}";
31
+ readonly 'builder.block.addNewBlock': "Add new block";
32
+ readonly 'builder.block.addNewBlockDescription': "Start a new block with its first question";
33
+ readonly 'builder.questionLabel': "Question";
34
+ readonly 'builder.questionCount': "{count} questions";
29
35
  readonly 'builder.loadingForm': "Loading form...";
30
36
  readonly 'builder.lastSave': "Last save: {value}";
31
37
  readonly 'builder.save': "Save";
32
38
  readonly 'builder.publish': "Publish";
33
39
  readonly 'builder.unpublish': "Unpublish";
40
+ readonly 'builder.optional': "Optional";
34
41
  readonly 'builder.pageCounter': "Page {current} / {total}";
35
42
  readonly 'builder.pageTitlePlaceholder': "Page title";
36
43
  readonly 'builder.pageDescriptionPlaceholder': "Page description (optional)";
44
+ readonly 'builder.descriptionButton': "Add description";
45
+ readonly 'builder.descriptionPlaceholder': "Description (optional)";
46
+ readonly 'builder.removeDescription': "Remove description";
47
+ readonly 'builder.longResponse': "Long answer";
48
+ readonly 'builder.longResponseDescription': "Allow respondents to write longer responses over multiple lines.";
49
+ readonly 'builder.validationRules': "Validation rules";
50
+ readonly 'builder.validationRulesDescription': "Accept only responses that meet the following criteria.";
51
+ readonly 'builder.validation.match.all': "All are true";
52
+ readonly 'builder.validation.match.any': "At least one is true";
53
+ readonly 'builder.validation.operator.min': "Minimum";
54
+ readonly 'builder.validation.operator.max': "Maximum";
55
+ readonly 'builder.validation.operator.after': "Is after";
56
+ readonly 'builder.validation.operator.before': "Is before";
57
+ readonly 'builder.validation.operator.between': "Is between";
58
+ readonly 'builder.validation.operator.notBetween': "Is not between";
59
+ readonly 'builder.validation.operator.regex': "Matches regular expression";
60
+ readonly 'builder.validation.operator.eq': "Is";
61
+ readonly 'builder.validation.operator.neq': "Is not";
62
+ readonly 'builder.validation.operator.contains': "Contains";
63
+ readonly 'builder.validation.operator.notContains': "Does not contain";
64
+ readonly 'builder.validation.target.text': "Text";
65
+ readonly 'builder.validation.target.number': "Number";
66
+ readonly 'builder.validation.target.date': "Date";
67
+ readonly 'builder.validation.unit.characters': "Characters";
68
+ readonly 'builder.validation.valuePlaceholder': "Value";
69
+ readonly 'builder.validation.datePlaceholder': "YYYY-MM-DD";
70
+ readonly 'builder.validation.rangeStart': "Start date";
71
+ readonly 'builder.validation.rangeEnd': "End date";
72
+ readonly 'builder.validation.dateDescription': "Set the allowed date or time range.";
73
+ readonly 'builder.answerPlaceholder': "Enter your answer here ...";
74
+ readonly 'builder.choiceDisplay': "Display";
75
+ readonly 'builder.choiceDisplay.list': "List";
76
+ readonly 'builder.choiceDisplay.menu': "Dropdown";
77
+ readonly 'builder.consentLabel': "Checkbox label";
78
+ readonly 'builder.optionsLabel': "Options";
79
+ readonly 'builder.optionPlaceholder': "Option {index}";
80
+ readonly 'builder.optionOther': "Other";
81
+ readonly 'builder.optionNone': "None of the above";
82
+ readonly 'builder.addressFields': "Address fields";
83
+ readonly 'builder.address.show': "Show";
84
+ readonly 'builder.address.required': "Required";
85
+ readonly 'builder.address.label': "Label";
86
+ readonly 'builder.address.line1': "Address line 1";
87
+ readonly 'builder.address.line2': "Address line 2";
88
+ readonly 'builder.address.city': "City";
89
+ readonly 'builder.address.state': "State";
90
+ readonly 'builder.address.zip': "Zip";
91
+ readonly 'builder.address.country': "Country";
92
+ readonly 'builder.addOtherOption': "Add \"Other\"";
93
+ readonly 'builder.addNoneOption': "Add \"None of the above\"";
37
94
  readonly 'builder.tooltip.mergePage': "Merge with previous page";
38
95
  readonly 'builder.tooltip.deletePage': "Delete page";
39
96
  readonly 'builder.questionPlaceholder': "Question";
40
97
  readonly 'builder.tooltip.duplicateQuestion': "Duplicate question";
41
98
  readonly 'builder.tooltip.deleteQuestion': "Delete question";
42
99
  readonly 'builder.tooltip.addCategory': "Add category";
100
+ readonly 'builder.block.addQuestion': "Add question to block";
43
101
  readonly 'builder.required': "Required";
102
+ readonly 'builder.questionMenu.changeType': "Change question type";
103
+ readonly 'builder.questionMenu.addBelow': "Add question below";
104
+ readonly 'builder.questionMenu.moveToBlock': "Move question to block";
105
+ readonly 'builder.questionMenu.moveUp': "Move up";
106
+ readonly 'builder.questionMenu.moveDown': "Move down";
107
+ readonly 'builder.questionMenu.duplicate': "Duplicate";
108
+ readonly 'builder.questionMenu.delete': "Delete";
109
+ readonly 'builder.questionMenu.noBlockAfter': "No following block";
44
110
  readonly 'builder.optionLabelPlaceholder': "Option label";
45
111
  readonly 'builder.addOption': "Add option";
46
112
  readonly 'builder.advancedSettings': "Advanced settings";
47
113
  readonly 'builder.placeholderPlaceholder': "Placeholder";
48
114
  readonly 'builder.helpTextPlaceholder': "Help text";
115
+ readonly 'builder.temporalMode.label': "Date mode";
116
+ readonly 'builder.temporalMode.date': "Date";
117
+ readonly 'builder.temporalMode.time': "Time";
118
+ readonly 'builder.temporalHourCycle.label': "24-hour time format";
119
+ readonly 'builder.temporalHourCycle.description': "Use AM/PM only when this is disabled.";
49
120
  readonly 'builder.minPlaceholder': "Min";
50
121
  readonly 'builder.maxPlaceholder': "Max";
51
122
  readonly 'builder.stepPlaceholder': "Step";
52
123
  readonly 'builder.multiple': "Multiple";
53
124
  readonly 'builder.acceptedExtensionsPlaceholder': "Accepted extensions (.pdf,.png)";
54
- readonly 'builder.conditions': "Conditions";
55
- readonly 'builder.addCondition': "Add condition";
125
+ readonly 'builder.conditions': "Conditional logic";
126
+ readonly 'builder.addCondition': "Add logic rule";
56
127
  readonly 'builder.condition.action.show': "Show";
57
128
  readonly 'builder.condition.action.hide': "Hide";
58
129
  readonly 'builder.condition.action.skip': "Skip";
@@ -89,6 +160,44 @@ declare const TRANSLATIONS: {
89
160
  readonly 'builder.toast.unpublishSuccess': "Form unpublished";
90
161
  readonly 'builder.optionDefaultLabel': "Option";
91
162
  readonly 'builder.optionsCount': "{count} options";
163
+ readonly 'builder.logic.title': "Conditional logic";
164
+ readonly 'builder.logic.empty': "No logic rule yet";
165
+ readonly 'builder.logic.rulesCount': "{count} logic rules";
166
+ readonly 'builder.logic.addRule': "Add logic rule";
167
+ readonly 'builder.logic.rule': "When";
168
+ readonly 'builder.logic.addClause': "Add clause";
169
+ readonly 'builder.logic.then.addAction': "Add action";
170
+ readonly 'builder.logic.match.all': "All are true";
171
+ readonly 'builder.logic.match.any': "At least one is true";
172
+ readonly 'builder.logic.then': "Then";
173
+ readonly 'builder.logic.then.require': "Required answer";
174
+ readonly 'builder.logic.then.goto': "Go to block";
175
+ readonly 'builder.logic.fallback': "All other responses will continue to";
176
+ readonly 'builder.logic.fallback.next': "Next block";
177
+ readonly 'builder.logic.fallback.goto': "Destination block";
178
+ readonly 'builder.logic.requireQuestionPlaceholder': "Future question";
179
+ readonly 'builder.logic.gotoBlockPlaceholder': "Destination block";
180
+ readonly 'builder.logic.gotoBlockPlaceholderAfter': "Block {index}";
181
+ readonly 'builder.logic.destinationBlockLabel': "Block {index}";
182
+ readonly 'builder.logic.valuePlaceholder': "Value";
183
+ readonly 'builder.logic.operator.eq': "Equals";
184
+ readonly 'builder.logic.operator.neq': "Does not equal";
185
+ readonly 'builder.logic.operator.contains': "Contains";
186
+ readonly 'builder.logic.operator.not_contains': "Does not contain";
187
+ readonly 'builder.logic.operator.starts_with': "Starts with";
188
+ readonly 'builder.logic.operator.not_starts_with': "Does not start with";
189
+ readonly 'builder.logic.operator.ends_with': "Ends with";
190
+ readonly 'builder.logic.operator.not_ends_with': "Does not end with";
191
+ readonly 'builder.logic.operator.is_submitted': "Is submitted";
192
+ readonly 'builder.logic.operator.is_not_submitted': "Is not submitted";
193
+ readonly 'builder.logic.operator.accepted': "Is accepted";
194
+ readonly 'builder.logic.operator.ignored': "Is ignored";
195
+ readonly 'builder.block.showSettings': "Show block settings";
196
+ readonly 'builder.block.hideSettings': "Hide block settings";
197
+ readonly 'builder.block.collapse': "Collapse block";
198
+ readonly 'builder.block.expand': "Expand block";
199
+ readonly 'builder.logic.consent.accepted': "Is accepted";
200
+ readonly 'builder.logic.consent.ignored': "Is ignored";
92
201
  readonly 'builder.categoryModal.title': "Create category";
93
202
  readonly 'builder.categoryModal.description': "Add a category and assign it to this form.";
94
203
  readonly 'builder.categoryModal.nameLabel': "Name";
@@ -104,6 +213,10 @@ declare const TRANSLATIONS: {
104
213
  readonly 'renderer.error.loadForm': "Unable to load form";
105
214
  readonly 'renderer.error.submit': "Submission failed";
106
215
  readonly 'renderer.error.missingFormKey': "Missing form key";
216
+ readonly 'renderer.submissionCodeLabel': "Access code";
217
+ readonly 'renderer.submissionCodePlaceholder': "Enter the access code";
218
+ readonly 'renderer.formNotAvailableYet': "This form is not available yet";
219
+ readonly 'renderer.formPaused': "This form is paused";
107
220
  readonly 'renderer.alert.fixFields': "Please fix the following fields";
108
221
  readonly 'renderer.alert.submitted': "Form submitted";
109
222
  readonly 'renderer.pageTitle': "Page {index}";
@@ -126,54 +239,125 @@ declare const TRANSLATIONS: {
126
239
  readonly 'response.file.missingUrlHint': "File URL is unavailable. Enable FORMFORGE_HTTP_FILE_URLS_ENABLED in FormForge config.";
127
240
  };
128
241
  readonly fr: {
129
- readonly 'builder.fieldType.text': "Réponse courte";
242
+ readonly 'builder.fieldType.text': "Texte libre";
130
243
  readonly 'builder.fieldType.textarea': "Réponse longue";
131
244
  readonly 'builder.fieldType.email': "E-mail";
132
245
  readonly 'builder.fieldType.number': "Nombre";
133
246
  readonly 'builder.fieldType.select': "Sélection";
134
- readonly 'builder.fieldType.select_menu': "Menu de sélection";
135
- readonly 'builder.fieldType.radio': "Choix multiples";
247
+ readonly 'builder.fieldType.select_menu': "Menu déroulant";
248
+ readonly 'builder.fieldType.radio': "Choix unique";
136
249
  readonly 'builder.fieldType.checkbox': "Case à cocher";
137
- readonly 'builder.fieldType.checkbox_group': "Groupe de cases";
250
+ readonly 'builder.fieldType.consent': "Consentement";
251
+ readonly 'builder.fieldType.checkbox_group': "Choix multiples";
252
+ readonly 'builder.fieldType.address': "Adresse";
138
253
  readonly 'builder.fieldType.switch': "Interrupteur";
254
+ readonly 'builder.fieldType.temporal': "Date / heure";
139
255
  readonly 'builder.fieldType.date': "Date";
140
256
  readonly 'builder.fieldType.time': "Heure";
141
- readonly 'builder.fieldType.datetime': "Date et heure";
142
- readonly 'builder.fieldType.date_range': "Plage de dates";
143
- readonly 'builder.fieldType.datetime_range': "Plage date/heure";
144
257
  readonly 'builder.fieldType.file': "Téléversement de fichier";
145
258
  readonly 'builder.targetType.page': "Page";
146
259
  readonly 'builder.targetType.field': "Champ";
147
260
  readonly 'builder.formTitlePlaceholder': "Titre du formulaire";
148
261
  readonly 'builder.categoryPlaceholder': "Catégorie";
149
262
  readonly 'builder.categoryNone': "Aucune catégorie";
263
+ readonly 'builder.blockLabel': "Bloc";
264
+ readonly 'builder.blockCounter': "Bloc {current} / {total}";
265
+ readonly 'builder.block.addNewBlock': "Ajouter un nouveau bloc";
266
+ readonly 'builder.block.addNewBlockDescription': "Commencez un bloc avec sa première question";
267
+ readonly 'builder.questionLabel': "Question";
268
+ readonly 'builder.questionCount': "{count} questions";
150
269
  readonly 'builder.loadingForm': "Chargement du formulaire...";
151
270
  readonly 'builder.lastSave': "Dernière sauvegarde : {value}";
152
271
  readonly 'builder.save': "Sauvegarder";
153
272
  readonly 'builder.publish': "Publier";
154
273
  readonly 'builder.unpublish': "Dépublier";
274
+ readonly 'builder.optional': "Optionnel";
155
275
  readonly 'builder.pageCounter': "Page {current} / {total}";
156
276
  readonly 'builder.pageTitlePlaceholder': "Titre de la page";
157
277
  readonly 'builder.pageDescriptionPlaceholder': "Description de la page (optionnel)";
278
+ readonly 'builder.descriptionButton': "Ajouter une description";
279
+ readonly 'builder.descriptionPlaceholder': "Description (optionnelle)";
280
+ readonly 'builder.removeDescription': "Retirer la description";
281
+ readonly 'builder.longResponse': "Longue réponse";
282
+ readonly 'builder.longResponseDescription': "Permettre aux répondants d'écrire des réponses plus longues et sur plusieurs lignes.";
283
+ readonly 'builder.validationRules': "Règles de validation";
284
+ readonly 'builder.validationRulesDescription': "Accepter uniquement les réponses qui répondent aux critères suivants";
285
+ readonly 'builder.validation.match.all': "Toutes sont vraies";
286
+ readonly 'builder.validation.match.any': "Au moins une est vraie";
287
+ readonly 'builder.validation.operator.min': "Au minimum";
288
+ readonly 'builder.validation.operator.max': "Au maximum";
289
+ readonly 'builder.validation.operator.after': "Est postérieur à";
290
+ readonly 'builder.validation.operator.before': "Est antérieur à";
291
+ readonly 'builder.validation.operator.between': "Est entre";
292
+ readonly 'builder.validation.operator.notBetween': "N'est pas entre";
293
+ readonly 'builder.validation.operator.regex': "Correspond au modèle d'expression régulière";
294
+ readonly 'builder.validation.operator.eq': "Est";
295
+ readonly 'builder.validation.operator.neq': "N'est pas";
296
+ readonly 'builder.validation.operator.contains': "Contient";
297
+ readonly 'builder.validation.operator.notContains': "Ne contient pas";
298
+ readonly 'builder.validation.target.text': "Texte";
299
+ readonly 'builder.validation.target.number': "Nombre";
300
+ readonly 'builder.validation.target.date': "Date";
301
+ readonly 'builder.validation.unit.characters': "Caractères";
302
+ readonly 'builder.validation.valuePlaceholder': "Valeur";
303
+ readonly 'builder.validation.datePlaceholder': "AAAA-MM-JJ";
304
+ readonly 'builder.validation.rangeStart': "Date de début";
305
+ readonly 'builder.validation.rangeEnd': "Date de fin";
306
+ readonly 'builder.validation.dateDescription': "Définir l'intervalle de dates ou d'heures autorisé.";
307
+ readonly 'builder.answerPlaceholder': "Entrez votre réponse ici ...";
308
+ readonly 'builder.choiceDisplay': "Affichage";
309
+ readonly 'builder.choiceDisplay.list': "Liste";
310
+ readonly 'builder.choiceDisplay.menu': "Menu déroulant";
311
+ readonly 'builder.consentLabel': "Libellé de la case à cocher";
312
+ readonly 'builder.optionsLabel': "Options";
313
+ readonly 'builder.optionPlaceholder': "Option {index}";
314
+ readonly 'builder.optionOther': "Autre";
315
+ readonly 'builder.optionNone': "Aucun des éléments ci-dessus";
316
+ readonly 'builder.addressFields': "Champs d'adresse";
317
+ readonly 'builder.address.show': "Montrer";
318
+ readonly 'builder.address.required': "Requis";
319
+ readonly 'builder.address.label': "Étiquette";
320
+ readonly 'builder.address.line1': "Ligne d'adresse 1";
321
+ readonly 'builder.address.line2': "Ligne d'adresse 2";
322
+ readonly 'builder.address.city': "Ville";
323
+ readonly 'builder.address.state': "État";
324
+ readonly 'builder.address.zip': "Code postal";
325
+ readonly 'builder.address.country': "Pays";
326
+ readonly 'builder.addOtherOption': "Ajouter \"Autre\"";
327
+ readonly 'builder.addNoneOption': "Ajouter \"Aucun des éléments ci-dessus\"";
158
328
  readonly 'builder.tooltip.mergePage': "Fusionner avec la page précédente";
159
329
  readonly 'builder.tooltip.deletePage': "Supprimer la page";
160
330
  readonly 'builder.questionPlaceholder': "Question";
161
331
  readonly 'builder.tooltip.duplicateQuestion': "Dupliquer la question";
162
332
  readonly 'builder.tooltip.deleteQuestion': "Supprimer la question";
163
333
  readonly 'builder.tooltip.addCategory': "Ajouter une catégorie";
334
+ readonly 'builder.block.addQuestion': "Ajouter une question au bloc";
164
335
  readonly 'builder.required': "Obligatoire";
336
+ readonly 'builder.questionMenu.changeType': "Changer le type de question";
337
+ readonly 'builder.questionMenu.addBelow': "Ajouter une question ci-dessous";
338
+ readonly 'builder.questionMenu.moveToBlock': "Déplacer la question vers le bloc";
339
+ readonly 'builder.questionMenu.moveUp': "Déplacer vers le haut";
340
+ readonly 'builder.questionMenu.moveDown': "Déplacer vers le bas";
341
+ readonly 'builder.questionMenu.duplicate': "Dupliquer";
342
+ readonly 'builder.questionMenu.delete': "Supprimer";
343
+ readonly 'builder.questionMenu.noBlockAfter': "Aucun bloc suivant";
165
344
  readonly 'builder.optionLabelPlaceholder': "Libellé de l’option";
166
345
  readonly 'builder.addOption': "Ajouter une option";
167
346
  readonly 'builder.advancedSettings': "Paramètres avancés";
168
347
  readonly 'builder.placeholderPlaceholder': "Placeholder";
169
348
  readonly 'builder.helpTextPlaceholder': "Texte d’aide";
349
+ readonly 'builder.temporalMode.label': "Mode de date";
350
+ readonly 'builder.temporalMode.date': "Date";
351
+ readonly 'builder.temporalMode.time': "Heure";
352
+ readonly 'builder.temporalHourCycle.label': "Format horaire 24 h";
353
+ readonly 'builder.temporalHourCycle.description': "Afficher AM/PM uniquement lorsque ce réglage est désactivé.";
170
354
  readonly 'builder.minPlaceholder': "Min";
171
355
  readonly 'builder.maxPlaceholder': "Max";
172
356
  readonly 'builder.stepPlaceholder': "Pas";
173
357
  readonly 'builder.multiple': "Multiple";
174
358
  readonly 'builder.acceptedExtensionsPlaceholder': "Extensions acceptées (.pdf,.png)";
175
- readonly 'builder.conditions': "Conditions";
176
- readonly 'builder.addCondition': "Ajouter une condition";
359
+ readonly 'builder.conditions': "Logique conditionnelle";
360
+ readonly 'builder.addCondition': "Ajouter une règle de logique";
177
361
  readonly 'builder.condition.action.show': "Afficher";
178
362
  readonly 'builder.condition.action.hide': "Masquer";
179
363
  readonly 'builder.condition.action.skip': "Passer";
@@ -210,6 +394,44 @@ declare const TRANSLATIONS: {
210
394
  readonly 'builder.toast.unpublishSuccess': "Formulaire dépublié";
211
395
  readonly 'builder.optionDefaultLabel': "Option";
212
396
  readonly 'builder.optionsCount': "{count} options";
397
+ readonly 'builder.logic.title': "Logique conditionnelle";
398
+ readonly 'builder.logic.empty': "Aucune règle de logique";
399
+ readonly 'builder.logic.rulesCount': "{count} règles de logique";
400
+ readonly 'builder.logic.addRule': "Ajouter une règle de logique";
401
+ readonly 'builder.logic.rule': "Quand";
402
+ readonly 'builder.logic.addClause': "Ajouter une clause";
403
+ readonly 'builder.logic.then.addAction': "Ajouter une action";
404
+ readonly 'builder.logic.match.all': "Toutes sont vraies";
405
+ readonly 'builder.logic.match.any': "Au moins une est vraie";
406
+ readonly 'builder.logic.then': "Alors";
407
+ readonly 'builder.logic.then.require': "Réponse requise";
408
+ readonly 'builder.logic.then.goto': "Aller au bloc";
409
+ readonly 'builder.logic.fallback': "Toutes les autres réponses continueront à";
410
+ readonly 'builder.logic.fallback.next': "Bloc suivant";
411
+ readonly 'builder.logic.fallback.goto': "Bloc de destination";
412
+ readonly 'builder.logic.requireQuestionPlaceholder': "Question future";
413
+ readonly 'builder.logic.gotoBlockPlaceholder': "Bloc de destination";
414
+ readonly 'builder.logic.gotoBlockPlaceholderAfter': "Bloc {index}";
415
+ readonly 'builder.logic.destinationBlockLabel': "Bloc {index}";
416
+ readonly 'builder.logic.valuePlaceholder': "Valeur";
417
+ readonly 'builder.logic.operator.eq': "Égal à";
418
+ readonly 'builder.logic.operator.neq': "Différent de";
419
+ readonly 'builder.logic.operator.contains': "Contient";
420
+ readonly 'builder.logic.operator.not_contains': "Ne contient pas";
421
+ readonly 'builder.logic.operator.starts_with': "Commence par";
422
+ readonly 'builder.logic.operator.not_starts_with': "Ne commence pas par";
423
+ readonly 'builder.logic.operator.ends_with': "Se termine par";
424
+ readonly 'builder.logic.operator.not_ends_with': "Ne se termine pas par";
425
+ readonly 'builder.logic.operator.is_submitted': "Est soumis";
426
+ readonly 'builder.logic.operator.is_not_submitted': "N’est pas soumis";
427
+ readonly 'builder.logic.operator.accepted': "C’est accepté";
428
+ readonly 'builder.logic.operator.ignored': "Est ignoré";
429
+ readonly 'builder.logic.consent.accepted': "C’est accepté";
430
+ readonly 'builder.logic.consent.ignored': "Est ignoré";
431
+ readonly 'builder.block.showSettings': "Afficher les paramètres du bloc";
432
+ readonly 'builder.block.hideSettings': "Masquer les paramètres du bloc";
433
+ readonly 'builder.block.collapse': "Réduire le bloc";
434
+ readonly 'builder.block.expand': "Déplier le bloc";
213
435
  readonly 'builder.categoryModal.title': "Créer une catégorie";
214
436
  readonly 'builder.categoryModal.description': "Ajoutez une catégorie et assignez-la à ce formulaire.";
215
437
  readonly 'builder.categoryModal.nameLabel': "Nom";
@@ -225,6 +447,10 @@ declare const TRANSLATIONS: {
225
447
  readonly 'renderer.error.loadForm': "Impossible de charger le formulaire";
226
448
  readonly 'renderer.error.submit': "Échec de l’envoi";
227
449
  readonly 'renderer.error.missingFormKey': "Clé du formulaire manquante";
450
+ readonly 'renderer.submissionCodeLabel': "Code d’accès";
451
+ readonly 'renderer.submissionCodePlaceholder': "Entrez le code d’accès";
452
+ readonly 'renderer.formNotAvailableYet': "Ce formulaire n’est pas encore disponible";
453
+ readonly 'renderer.formPaused': "Ce formulaire est en pause";
228
454
  readonly 'renderer.alert.fixFields': "Veuillez corriger les champs suivants";
229
455
  readonly 'renderer.alert.submitted': "Formulaire envoyé";
230
456
  readonly 'renderer.pageTitle': "Page {index}";