@cnamts/synapse 0.0.11-alpha → 0.0.12-alpha
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/design-system-v3.js +3878 -3189
- package/dist/design-system-v3.umd.cjs +1 -1
- package/dist/src/components/Amelipro/types/languages.d.ts +6 -0
- package/dist/src/components/Amelipro/types/types.d.ts +65 -0
- package/dist/src/components/CookieBanner/CookieBanner.d.ts +1 -1
- package/dist/src/components/Customs/SyInputSelect/SyInputSelect.d.ts +2 -0
- package/dist/src/components/Customs/SyTextField/SyTextField.d.ts +29 -23
- package/dist/src/components/Customs/SyTextField/types.d.ts +1 -0
- package/dist/src/components/DatePicker/DatePicker.d.ts +70 -59
- package/dist/src/components/DatePicker/DateTextInput.d.ts +67 -56
- package/dist/src/components/ErrorPage/ErrorPage.d.ts +1 -1
- package/dist/src/components/FileList/FileList.d.ts +1 -0
- package/dist/src/components/FileList/UploadItem/UploadItem.d.ts +1 -1
- package/dist/src/components/FilterSideBar/FilterSideBar.d.ts +31 -0
- package/dist/src/components/FilterSideBar/locales.d.ts +7 -0
- package/dist/src/components/FilterSideBar/tests/FilterSideBar.spec.d.ts +1 -0
- package/dist/src/components/LangBtn/LangBtn.d.ts +2 -2
- package/dist/src/components/NirField/NirField.d.ts +940 -0
- package/dist/src/components/NotificationBar/NotificationBar.d.ts +1 -1
- package/dist/src/components/PasswordField/PasswordField.d.ts +40 -8
- package/dist/src/components/PeriodField/PeriodField.d.ts +142 -120
- package/dist/src/components/PhoneField/PhoneField.d.ts +11 -2
- package/dist/src/components/RatingPicker/EmotionPicker/EmotionPicker.d.ts +1 -1
- package/dist/src/components/RatingPicker/NumberPicker/NumberPicker.d.ts +1 -1
- package/dist/src/components/RatingPicker/StarsPicker/StarsPicker.d.ts +1 -1
- package/dist/src/components/UploadWorkflow/config.d.ts +29 -0
- package/dist/src/components/UploadWorkflow/locales.d.ts +7 -0
- package/dist/src/components/UploadWorkflow/tests/UploadWorkflow.spec.d.ts +1 -0
- package/dist/src/components/UploadWorkflow/types.d.ts +19 -0
- package/dist/src/components/UploadWorkflow/useFileList.d.ts +10 -0
- package/dist/src/components/UploadWorkflow/useFileUploadJourney.d.ts +9 -0
- package/dist/src/components/index.d.ts +2 -0
- package/dist/src/composables/rules/useFieldValidation.d.ts +1 -0
- package/dist/src/composables/validation/tests/useValidation.spec.d.ts +1 -0
- package/dist/src/composables/validation/useValidation.d.ts +39 -0
- package/dist/src/designTokens/index.d.ts +3 -1
- package/dist/src/vuetifyConfig.d.ts +81 -0
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/assets/_elevations.scss +89 -0
- package/src/assets/_fonts.scss +6 -0
- package/src/assets/_radius.scss +86 -0
- package/src/assets/_spacers.scss +149 -0
- package/src/assets/settings.scss +7 -3
- package/src/assets/tokens.scss +32 -29
- package/src/components/Amelipro/types/languages.d.ts +6 -0
- package/src/components/Amelipro/types/types.d.ts +65 -0
- package/src/components/Customs/SyInputSelect/SyInputSelect.stories.ts +65 -0
- package/src/components/Customs/SyInputSelect/SyInputSelect.vue +13 -3
- package/src/components/Customs/SySelect/SySelect.stories.ts +88 -5
- package/src/components/Customs/SySelect/SySelect.vue +36 -10
- package/src/components/Customs/SySelect/tests/SySelect.spec.ts +135 -2
- package/src/components/Customs/SyTextField/SyTextField.stories.ts +576 -85
- package/src/components/Customs/SyTextField/SyTextField.vue +132 -104
- package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +190 -38
- package/src/components/Customs/SyTextField/types.d.ts +1 -0
- package/src/components/DatePicker/DatePicker.vue +405 -137
- package/src/components/DatePicker/DateTextInput.vue +15 -0
- package/src/components/DatePicker/tests/DatePicker.spec.ts +8 -15
- package/src/components/FileList/FileList.vue +2 -1
- package/src/components/FileList/UploadItem/UploadItem.vue +10 -0
- package/src/components/FileUpload/FileUpload.stories.ts +84 -0
- package/src/components/FileUpload/FileUpload.vue +1 -0
- package/src/components/FileUpload/tests/FileUpload.spec.ts +4 -4
- package/src/components/FilterInline/FilterInline.mdx +180 -34
- package/src/components/FilterInline/FilterInline.stories.ts +363 -6
- package/src/components/FilterSideBar/FilterSideBar.mdx +237 -0
- package/src/components/FilterSideBar/FilterSideBar.stories.ts +798 -0
- package/src/components/FilterSideBar/FilterSideBar.vue +193 -0
- package/src/components/FilterSideBar/locales.ts +8 -0
- package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +305 -0
- package/src/components/FilterSideBar/tests/__snapshots__/FilterSideBar.spec.ts.snap +39 -0
- package/src/components/HeaderBar/Usages.mdx +1 -1
- package/src/components/NirField/NirField.stories.ts +573 -29
- package/src/components/NirField/NirField.vue +397 -359
- package/src/components/NirField/tests/NirField.spec.ts +88 -52
- package/src/components/NirField/tests//342/200/257dataset/342/200/257.md +12 -0
- package/src/components/NotificationBar/Accessibilite.stories.ts +4 -0
- package/src/components/NotificationBar/NotificationBar.stories.ts +18 -13
- package/src/components/PasswordField/PasswordField.mdx +129 -47
- package/src/components/PasswordField/PasswordField.stories.ts +924 -120
- package/src/components/PasswordField/PasswordField.vue +209 -99
- package/src/components/PasswordField/tests/PasswordField.spec.ts +138 -9
- package/src/components/PeriodField/PeriodField.vue +55 -54
- package/src/components/PhoneField/PhoneField.stories.ts +69 -0
- package/src/components/PhoneField/PhoneField.vue +3 -0
- package/src/components/PhoneField/indicatifs.ts +1 -1
- package/src/components/UploadWorkflow/UploadWorkflow.mdx +75 -0
- package/src/components/UploadWorkflow/UploadWorkflow.stories.ts +943 -0
- package/src/components/UploadWorkflow/UploadWorkflow.vue +230 -0
- package/src/components/UploadWorkflow/config.ts +29 -0
- package/src/components/UploadWorkflow/locales.ts +8 -0
- package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +257 -0
- package/src/components/UploadWorkflow/tests/__snapshots__/UploadWorkflow.spec.ts.snap +54 -0
- package/src/components/UploadWorkflow/types.ts +21 -0
- package/src/components/UploadWorkflow/useFileList.ts +84 -0
- package/src/components/UploadWorkflow/useFileUploadJourney.ts +18 -0
- package/src/components/index.ts +2 -0
- package/src/composables/rules/useFieldValidation.ts +5 -2
- package/src/composables/validation/tests/useValidation.spec.ts +154 -0
- package/src/composables/validation/useValidation.ts +165 -0
- package/src/designTokens/index.ts +4 -0
- package/src/stories/Demarrer/Accueil.mdx +1 -1
- package/src/stories/DesignTokens/ThemePA.mdx +4 -30
- package/src/stories/GuideDuDev/UtiliserLesRules.mdx +319 -76
- package/src/stories/GuideDuDev/moduleDeNotification.mdx +1 -1
- package/src/vuetifyConfig.ts +61 -0
- package/src/composables/useFilterable/__snapshots__/useFilterable.spec.ts.snap +0 -3
|
@@ -276,65 +276,66 @@
|
|
|
276
276
|
|
|
277
277
|
<template>
|
|
278
278
|
<div class="period-field">
|
|
279
|
-
<
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
<
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
:success-message="hasToDateSuccesses"
|
|
328
|
-
@closed="handleToDateClosed"
|
|
329
|
-
/>
|
|
330
|
-
</v-col>
|
|
331
|
-
</v-row>
|
|
279
|
+
<div
|
|
280
|
+
class="period-field__col"
|
|
281
|
+
>
|
|
282
|
+
<DatePicker
|
|
283
|
+
ref="fromDateRef"
|
|
284
|
+
v-model="internalFromDate"
|
|
285
|
+
:custom-rules="fromDateRules"
|
|
286
|
+
:custom-warning-rules="props.customWarningRules"
|
|
287
|
+
:date-format-return="props.dateFormatReturn"
|
|
288
|
+
:display-append-icon="props.displayAppendIcon"
|
|
289
|
+
:display-icon="props.displayIcon"
|
|
290
|
+
:error-message="hasFromDateErrors"
|
|
291
|
+
:format="props.format"
|
|
292
|
+
:is-disabled="props.isDisabled"
|
|
293
|
+
:is-outlined="props.isOutlined"
|
|
294
|
+
:no-calendar="props.noCalendar"
|
|
295
|
+
:no-icon="props.noIcon"
|
|
296
|
+
:placeholder="props.placeholderFrom"
|
|
297
|
+
:required="props.required"
|
|
298
|
+
:show-week-number="props.showWeekNumber"
|
|
299
|
+
:success-message="hasFromDateSuccesses"
|
|
300
|
+
@closed="handleFromDateClosed"
|
|
301
|
+
/>
|
|
302
|
+
</div>
|
|
303
|
+
<div
|
|
304
|
+
class="period-field__col"
|
|
305
|
+
>
|
|
306
|
+
<DatePicker
|
|
307
|
+
ref="toDateRef"
|
|
308
|
+
v-model="internalToDate"
|
|
309
|
+
:custom-rules="toDateRules"
|
|
310
|
+
:custom-warning-rules="props.customWarningRules"
|
|
311
|
+
:date-format-return="props.dateFormatReturn"
|
|
312
|
+
:display-append-icon="props.displayAppendIcon"
|
|
313
|
+
:display-icon="props.displayIcon"
|
|
314
|
+
:error-message="hasToDateErrors"
|
|
315
|
+
:format="props.format"
|
|
316
|
+
:is-disabled="props.isDisabled"
|
|
317
|
+
:is-outlined="props.isOutlined"
|
|
318
|
+
:no-calendar="props.noCalendar"
|
|
319
|
+
:no-icon="props.noIcon"
|
|
320
|
+
:placeholder="props.placeholderTo"
|
|
321
|
+
:required="props.required"
|
|
322
|
+
:show-week-number="props.showWeekNumber"
|
|
323
|
+
:success-message="hasToDateSuccesses"
|
|
324
|
+
@closed="handleToDateClosed"
|
|
325
|
+
/>
|
|
326
|
+
</div>
|
|
332
327
|
</div>
|
|
333
328
|
</template>
|
|
334
329
|
|
|
335
330
|
<style scoped>
|
|
336
331
|
.period-field {
|
|
337
332
|
display: flex;
|
|
338
|
-
gap:
|
|
333
|
+
gap: 24px;
|
|
334
|
+
flex-wrap: wrap;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
.period-field__col {
|
|
338
|
+
flex: 1;
|
|
339
|
+
min-width: min(300px, 100%);
|
|
339
340
|
}
|
|
340
341
|
</style>
|
|
@@ -30,6 +30,7 @@ const meta = {
|
|
|
30
30
|
description: 'Permet d\'utiliser uniquement les indicatifs que vous renseignez dans la props customIndicatifs',
|
|
31
31
|
},
|
|
32
32
|
isValidatedOnBlur: { control: 'boolean' },
|
|
33
|
+
displayAsterisk: { control: 'boolean' },
|
|
33
34
|
},
|
|
34
35
|
} satisfies Meta<typeof PhoneField>
|
|
35
36
|
|
|
@@ -192,6 +193,74 @@ export const Required: Story = {
|
|
|
192
193
|
},
|
|
193
194
|
}
|
|
194
195
|
|
|
196
|
+
/**
|
|
197
|
+
* Story avec champ requis et astérisque.
|
|
198
|
+
*/
|
|
199
|
+
export const RequiredWithAsterisk: Story = {
|
|
200
|
+
args: {
|
|
201
|
+
...Default.args,
|
|
202
|
+
required: true,
|
|
203
|
+
displayAsterisk: true,
|
|
204
|
+
},
|
|
205
|
+
parameters: {
|
|
206
|
+
docs: {
|
|
207
|
+
description: {
|
|
208
|
+
story: 'Version du champ téléphone requis avec un astérisque visuel.',
|
|
209
|
+
},
|
|
210
|
+
},
|
|
211
|
+
sourceCode: [
|
|
212
|
+
{
|
|
213
|
+
name: 'Template',
|
|
214
|
+
code: `
|
|
215
|
+
<template>
|
|
216
|
+
<PhoneField
|
|
217
|
+
v-model="phoneNumber"
|
|
218
|
+
required
|
|
219
|
+
display-asterisk
|
|
220
|
+
/>
|
|
221
|
+
</template>
|
|
222
|
+
`,
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
name: 'Script',
|
|
226
|
+
code: `
|
|
227
|
+
<script setup lang="ts">
|
|
228
|
+
import { ref } from 'vue'
|
|
229
|
+
import PhoneField from '@cnamts/synapse'
|
|
230
|
+
|
|
231
|
+
const phoneNumber = ref('')
|
|
232
|
+
</script>
|
|
233
|
+
`,
|
|
234
|
+
},
|
|
235
|
+
],
|
|
236
|
+
},
|
|
237
|
+
render: (args) => {
|
|
238
|
+
return {
|
|
239
|
+
components: { PhoneField },
|
|
240
|
+
setup() {
|
|
241
|
+
return { args }
|
|
242
|
+
},
|
|
243
|
+
template: `
|
|
244
|
+
<div class="pa-4">
|
|
245
|
+
<PhoneField
|
|
246
|
+
v-model="args.modelValue"
|
|
247
|
+
:required="args.required"
|
|
248
|
+
:outlined="args.outlined"
|
|
249
|
+
:outlinedIndicatif="args.outlinedIndicatif"
|
|
250
|
+
:withCountryCode="args.withCountryCode"
|
|
251
|
+
:countryCodeRequired="args.countryCodeRequired"
|
|
252
|
+
:displayFormat="args.displayFormat"
|
|
253
|
+
:customIndicatifs="args.customIndicatifs"
|
|
254
|
+
:useCustomIndicatifsOnly="args.useCustomIndicatifsOnly"
|
|
255
|
+
:isValidatedOnBlur="args.isValidatedOnBlur"
|
|
256
|
+
:display-asterisk="args.displayAsterisk"
|
|
257
|
+
/>
|
|
258
|
+
</div>
|
|
259
|
+
`,
|
|
260
|
+
}
|
|
261
|
+
},
|
|
262
|
+
}
|
|
263
|
+
|
|
195
264
|
export const CustomIndicatifs: Story = {
|
|
196
265
|
parameters: {
|
|
197
266
|
sourceCode: [
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
customIndicatifs: { type: Array as PropType<Indicatif[]>, default: () => [] },
|
|
33
33
|
useCustomIndicatifsOnly: { type: Boolean, default: false },
|
|
34
34
|
isValidatedOnBlur: { type: Boolean, default: true },
|
|
35
|
+
displayAsterisk: { type: Boolean, default: false },
|
|
35
36
|
})
|
|
36
37
|
|
|
37
38
|
const emit = defineEmits(['update:modelValue', 'update:selectedDialCode', 'change'])
|
|
@@ -133,6 +134,7 @@
|
|
|
133
134
|
:label="locales.indicatifLabel"
|
|
134
135
|
:outlined="outlinedIndicatif"
|
|
135
136
|
:required="props.countryCodeRequired"
|
|
137
|
+
:display-asterisk="props.displayAsterisk"
|
|
136
138
|
class="custom-select"
|
|
137
139
|
text-key="displayText"
|
|
138
140
|
value-key="code"
|
|
@@ -146,6 +148,7 @@
|
|
|
146
148
|
:required="props.required"
|
|
147
149
|
:rules="validationRules"
|
|
148
150
|
:variant="outlined ? 'outlined' : 'underlined'"
|
|
151
|
+
:display-asterisk="props.displayAsterisk"
|
|
149
152
|
class="phone-field"
|
|
150
153
|
color="primary"
|
|
151
154
|
@blur="validateInputOnBlur"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export const indicatifs = [
|
|
2
|
-
{ code: '+1', country: 'USA/Canada', abbreviation: 'US/CA', phoneLength: 10, mask: '
|
|
2
|
+
{ code: '+1', country: 'USA/Canada', abbreviation: 'US/CA', phoneLength: 10, mask: '### ### ####' },
|
|
3
3
|
{ code: '+7', country: 'Russia/Kazakhstan', abbreviation: 'RU/KZ', phoneLength: 10, mask: '### ### ## ##' },
|
|
4
4
|
{ code: '+20', country: 'Egypt', abbreviation: 'EG', phoneLength: 9, mask: '### ### ####' },
|
|
5
5
|
{ code: '+27', country: 'South Africa', abbreviation: 'ZA', phoneLength: 9, mask: '### ### ####' },
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Controls, Canvas, Meta, Source } from '@storybook/blocks';
|
|
2
|
+
|
|
3
|
+
import * as UploadWorkflowStories from './UploadWorkflow.stories';
|
|
4
|
+
|
|
5
|
+
<Meta of={UploadWorkflowStories} />
|
|
6
|
+
|
|
7
|
+
# UploadWorkflow
|
|
8
|
+
|
|
9
|
+
<Canvas of={UploadWorkflowStories.Default} />
|
|
10
|
+
|
|
11
|
+
# API
|
|
12
|
+
|
|
13
|
+
<Controls of={UploadWorkflowStories.Default} />
|
|
14
|
+
|
|
15
|
+
# Exemple
|
|
16
|
+
|
|
17
|
+
## Événements
|
|
18
|
+
|
|
19
|
+
Vous pouvez réagir lorsque la liste des fichiers est mise à jour en utilisant l’événement `update:modelValue`, et réagir aux erreurs de validation en utilisant l’événement `error`.
|
|
20
|
+
|
|
21
|
+
<Canvas of={UploadWorkflowStories.Events} />
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
## Un seul fichier
|
|
25
|
+
|
|
26
|
+
Lorsque que la liste ne contient qu’un seul fichier, la boîte de dialogue demandant à l’utilisateur de choisir quel fichier il a sélectionné ne sera pas affichée.
|
|
27
|
+
|
|
28
|
+
<Canvas of={UploadWorkflowStories.OneFile} />
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
## Fichiers optionnels
|
|
32
|
+
|
|
33
|
+
Vous pouvez spécifier des fichiers optionnels en utilisant la propriété `optional`.
|
|
34
|
+
|
|
35
|
+
<Canvas of={UploadWorkflowStories.OptionalDocument} />
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
## Prévisualisation des fichiers
|
|
39
|
+
|
|
40
|
+
Vous pouvez permettre à l’utilisateur de prévisualiser le fichier qu’il vient de sélectionner avant de valider en utilisant la prop `show-file-preview`.
|
|
41
|
+
|
|
42
|
+
<Canvas of={UploadWorkflowStories.WithPreviewStep} />
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
## Exemple d'utilisation
|
|
46
|
+
|
|
47
|
+
<Source
|
|
48
|
+
language="typescript"
|
|
49
|
+
dark code={`
|
|
50
|
+
<script setup lang="ts">
|
|
51
|
+
import { ref } from 'vue'
|
|
52
|
+
import { UploadWorkflow } from '@cnamts/synapse'
|
|
53
|
+
|
|
54
|
+
const files = ref([])
|
|
55
|
+
|
|
56
|
+
const uploadList = [
|
|
57
|
+
{
|
|
58
|
+
id: '1',
|
|
59
|
+
title: 'Carte d\\'identité',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
id: '2',
|
|
63
|
+
title: 'Facture de soin',
|
|
64
|
+
},
|
|
65
|
+
]
|
|
66
|
+
</script>
|
|
67
|
+
|
|
68
|
+
<template>
|
|
69
|
+
<UploadWorkflow
|
|
70
|
+
v-model="files"
|
|
71
|
+
:uploadList="uploadList"
|
|
72
|
+
/>
|
|
73
|
+
</template>
|
|
74
|
+
`}
|
|
75
|
+
/>
|