@cnamts/synapse 0.0.15-alpha → 1.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.
- package/dist/components/Accordion/Accordion.d.ts +39 -0
- package/dist/components/Accordion/config.d.ts +9 -0
- package/dist/components/ChipList/ChipList.d.ts +1 -1
- package/dist/components/CookiesSelection/CookiesSelection.d.ts +26 -26
- package/dist/components/CopyBtn/CopyBtn.d.ts +2 -0
- package/dist/components/Customs/SyInputSelect/SyInputSelect.d.ts +12 -0
- package/dist/components/Customs/SySelect/SySelect.d.ts +43 -16
- package/dist/components/Customs/SyTextField/SyTextField.d.ts +1391 -1
- package/dist/components/DatePicker/DatePicker.d.ts +2810 -16
- package/dist/components/DatePicker/DateTextInput.d.ts +1401 -4
- package/dist/components/DiacriticPicker/DiacriticPicker.d.ts +27 -0
- package/dist/components/DiacriticPicker/config.d.ts +14 -0
- package/dist/components/DiacriticPicker/locales.d.ts +6 -0
- package/dist/components/DownloadBtn/DownloadBtn.d.ts +1 -1
- package/dist/components/FooterBar/FooterBar.d.ts +1 -1
- package/dist/components/LangBtn/LangBtn.d.ts +4 -4
- package/dist/components/NirField/NirField.d.ts +2796 -4
- package/dist/components/NotificationBar/NotificationBar.d.ts +1 -1
- package/dist/components/PasswordField/PasswordField.d.ts +1 -1
- package/dist/components/PeriodField/PeriodField.d.ts +5636 -48
- package/dist/components/PhoneField/PhoneField.d.ts +1 -0
- package/dist/components/PhoneField/tests/types.d.ts +18 -0
- package/dist/components/SyAlert/SyAlert.d.ts +72 -1
- package/dist/components/SyTextArea/SyTextArea.d.ts +900 -0
- package/dist/components/SyTextArea/locales.d.ts +3 -0
- package/dist/components/SyTextArea/trimStartOnUpdate.d.ts +1 -0
- package/dist/components/SyTextArea/useTextActions.d.ts +13 -0
- package/dist/components/SyTextArea/wrapText.d.ts +1 -0
- package/dist/components/TableToolbar/TableToolbar.d.ts +10 -4
- package/dist/components/TableToolbar/config.d.ts +3 -2
- package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +26 -26
- package/dist/components/index.d.ts +4 -0
- package/dist/composables/date/useDateFormat.d.ts +2 -2
- package/dist/composables/date/useDateFormatDayjs.d.ts +23 -0
- package/dist/composables/date/useDateInitializationDayjs.d.ts +18 -0
- package/dist/composables/date/useHolidayDay.d.ts +36 -0
- package/dist/design-system-v3.js +5106 -4208
- package/dist/design-system-v3.umd.cjs +4 -1
- package/dist/designTokens/tokens/pa/paLightTheme.d.ts +1 -32
- package/dist/style.css +1 -1
- package/dist/utils/rules/index.d.ts +1 -0
- package/dist/utils/rules/isHolidayDay/index.d.ts +11 -0
- package/dist/utils/rules/isHolidayDay/locales.d.ts +2 -0
- package/package.json +3 -2
- package/src/assets/settings.scss +12 -0
- package/src/components/Accordion/Accordion.mdx +69 -0
- package/src/components/Accordion/Accordion.stories.ts +262 -0
- package/src/components/Accordion/Accordion.vue +319 -0
- package/src/components/Accordion/config.ts +9 -0
- package/src/components/Accordion/tests/__snapshots__/accordion.spec.ts.snap +155 -0
- package/src/components/Accordion/tests/accordion.spec.ts +492 -0
- package/src/components/CopyBtn/CopyBtn.stories.ts +189 -0
- package/src/components/CopyBtn/CopyBtn.vue +29 -1
- package/src/components/CopyBtn/tests/CopyBtn.spec.ts +102 -0
- package/src/components/Customs/SyInputSelect/SyInputSelect.stories.ts +155 -1
- package/src/components/Customs/SyInputSelect/SyInputSelect.vue +97 -14
- package/src/components/Customs/SyInputSelect/tests/SyInputSelect.spec.ts +386 -106
- package/src/components/Customs/SySelect/SySelect.stories.ts +121 -2
- package/src/components/Customs/SySelect/SySelect.vue +33 -8
- package/src/components/Customs/SySelect/tests/SySelect.spec.ts +290 -1
- package/src/components/Customs/SyTextField/Accessibilite.stories.ts +7 -0
- package/src/components/Customs/SyTextField/SyTextField.stories.ts +13 -0
- package/src/components/Customs/SyTextField/SyTextField.vue +87 -20
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +795 -0
- package/src/components/DatePicker/DatePicker.stories.ts +432 -1
- package/src/components/DatePicker/DatePicker.vue +82 -27
- package/src/components/DatePicker/DatePickerValidation.stories.ts +9 -1
- package/src/components/DatePicker/DateTextInput.vue +101 -138
- package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +282 -0
- package/src/components/DatePicker/examples/DatePickerHolidayRule.vue +130 -0
- package/src/components/DatePicker/tests/DatePicker.spec.ts +33 -32
- package/src/components/DatePicker/tests/DateTextInput.spec.ts +81 -33
- package/src/components/DiacriticPicker/DiacriticPicker.mdx +104 -0
- package/src/components/DiacriticPicker/DiacriticPicker.stories.ts +447 -0
- package/src/components/DiacriticPicker/DiacriticPicker.vue +262 -0
- package/src/components/DiacriticPicker/config.ts +15 -0
- package/src/components/DiacriticPicker/locales.ts +6 -0
- package/src/components/DiacriticPicker/tests/DiatriticPicker.spec.ts +132 -0
- package/src/components/DialogBox/DialogBox.vue +1 -3
- package/src/components/NirField/NirField.stories.ts +172 -0
- package/src/components/NirField/NirField.vue +15 -7
- package/src/components/NotificationBar/Accessibilite.stories.ts +1 -1
- package/src/components/NotificationBar/NotificationBar.stories.ts +14 -0
- package/src/components/NotificationBar/NotificationBar.vue +26 -3
- package/src/components/NotificationBar/{options.ts → config.ts} +0 -1
- package/src/components/PaginatedTable/PaginatedTable.vue +0 -11
- package/src/components/PasswordField/PasswordField.stories.ts +4 -3
- package/src/components/PasswordField/PasswordField.vue +26 -18
- package/src/components/PasswordField/tests/PasswordField.spec.ts +1 -10
- package/src/components/PhoneField/PhoneField.stories.ts +143 -0
- package/src/components/PhoneField/PhoneField.vue +88 -30
- package/src/components/PhoneField/tests/PhoneField.additional.spec.ts +266 -0
- package/src/components/PhoneField/tests/PhoneField.spec.ts +248 -28
- package/src/components/PhoneField/tests/types.d.ts +19 -0
- package/src/components/SyAlert/Accessibilite.stories.ts +4 -0
- package/src/components/SyAlert/SyAlert.mdx +3 -7
- package/src/components/SyAlert/SyAlert.stories.ts +19 -12
- package/src/components/SyAlert/SyAlert.vue +88 -51
- package/src/components/SyAlert/tests/SyAlert.spec.ts +20 -2
- package/src/components/SyAlert/tests/__snapshots__/SyAlert.spec.ts.snap +83 -75
- package/src/components/SyTextArea/SyTextArea.mdx +17 -0
- package/src/components/SyTextArea/SyTextArea.stories.ts +322 -0
- package/src/components/SyTextArea/SyTextArea.vue +113 -0
- package/src/components/SyTextArea/locales.ts +3 -0
- package/src/components/SyTextArea/tests/SyTextArea.spec.ts +194 -0
- package/src/components/SyTextArea/trimStartOnUpdate.ts +12 -0
- package/src/components/SyTextArea/useTextActions.ts +52 -0
- package/src/components/SyTextArea/wrapText.ts +42 -0
- package/src/components/TableToolbar/TableToolbar.mdx +86 -1
- package/src/components/TableToolbar/TableToolbar.stories.ts +422 -74
- package/src/components/TableToolbar/TableToolbar.vue +25 -8
- package/src/components/TableToolbar/config.ts +3 -2
- package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +35 -12
- package/src/components/index.ts +4 -0
- package/src/composables/date/useDateFormat.ts +17 -1
- package/src/composables/date/useDateFormatDayjs.ts +84 -0
- package/src/composables/date/useDateInitializationDayjs.ts +133 -0
- package/src/composables/date/useHolidayDay.ts +98 -0
- package/src/composables/rules/useFieldValidation.ts +16 -3
- package/src/composables/validation/useValidation.ts +2 -1
- package/src/designTokens/tokens/pa/paLightTheme.ts +10 -41
- package/src/stories/Accessibilite/Avancement/Avancement.mdx +12 -0
- package/src/stories/Accessibilite/Avancement/Avancement.stories.ts +134 -0
- package/src/stories/Accessibilite/Introduction.mdx +5 -2
- package/src/stories/DesignTokens/colors.stories.ts +100 -41
- package/src/utils/rules/index.ts +1 -0
- package/src/utils/rules/isHolidayDay/IsHolidayDay.mdx +52 -0
- package/src/utils/rules/isHolidayDay/IsHolidayDay.stories.ts +129 -0
- package/src/utils/rules/isHolidayDay/index.ts +36 -0
- package/src/utils/rules/isHolidayDay/locales.ts +5 -0
- package/src/utils/rules/isHolidayDay/tests/isHolidayDay.spec.ts +35 -0
- /package/dist/components/NotificationBar/{options.d.ts → config.d.ts} +0 -0
- /package/src/components/DatePicker/{DatePickerValidationExamples.vue → docExamples/DatePickerValidationExamples.vue} +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/vue3'
|
|
2
2
|
import TableToolbar from './TableToolbar.vue'
|
|
3
|
+
import SySelect from '../Customs/SySelect/SySelect.vue'
|
|
3
4
|
import { VDataTable } from 'vuetify/components'
|
|
4
5
|
import { ref } from 'vue'
|
|
5
6
|
import { fn } from '@storybook/test'
|
|
@@ -118,11 +119,15 @@ const meta = {
|
|
|
118
119
|
},
|
|
119
120
|
},
|
|
120
121
|
},
|
|
121
|
-
'
|
|
122
|
+
'filters': {
|
|
123
|
+
control: 'text',
|
|
124
|
+
description: 'Slot pour ajouter des filtres',
|
|
125
|
+
},
|
|
126
|
+
'searchLeft': {
|
|
122
127
|
control: 'text',
|
|
123
128
|
description: 'Slot pour le contenu à gauche du champ de recherche',
|
|
124
129
|
},
|
|
125
|
-
'
|
|
130
|
+
'searchRight': {
|
|
126
131
|
control: 'text',
|
|
127
132
|
description: 'Slot pour le contenu à droite du champ de recherche',
|
|
128
133
|
},
|
|
@@ -152,22 +157,85 @@ type Story = StoryObj<typeof meta>
|
|
|
152
157
|
|
|
153
158
|
export const Default: Story = {
|
|
154
159
|
args: {
|
|
155
|
-
'
|
|
156
|
-
'nbTotal': 10,
|
|
160
|
+
'nbTotal': 2,
|
|
157
161
|
'onAdd': fn(),
|
|
158
162
|
'onUpdate:search': fn(),
|
|
159
163
|
},
|
|
164
|
+
|
|
165
|
+
render: (args) => {
|
|
166
|
+
return {
|
|
167
|
+
components: { TableToolbar, VDataTable },
|
|
168
|
+
setup() {
|
|
169
|
+
const headers = [
|
|
170
|
+
{
|
|
171
|
+
title: 'Nom',
|
|
172
|
+
value: 'lastname',
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
title: 'Prénom',
|
|
176
|
+
value: 'firstname',
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
title: 'Email',
|
|
180
|
+
value: 'email',
|
|
181
|
+
},
|
|
182
|
+
]
|
|
183
|
+
|
|
184
|
+
const items = [
|
|
185
|
+
{
|
|
186
|
+
firstname: 'Virginie',
|
|
187
|
+
lastname: 'Beauchesne',
|
|
188
|
+
email: 'virginie.beauchesne@example.com',
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
firstname: 'Étienne',
|
|
192
|
+
lastname: 'Salois',
|
|
193
|
+
email: 'etienne.salois@example.com',
|
|
194
|
+
},
|
|
195
|
+
]
|
|
196
|
+
|
|
197
|
+
const search = ref('')
|
|
198
|
+
|
|
199
|
+
return { args, headers, items, search }
|
|
200
|
+
},
|
|
201
|
+
template: `
|
|
202
|
+
<VDataTable
|
|
203
|
+
:headers="headers"
|
|
204
|
+
:items="items"
|
|
205
|
+
:items-per-page="args.nbFiltered"
|
|
206
|
+
:search="search"
|
|
207
|
+
hide-default-footer
|
|
208
|
+
>
|
|
209
|
+
<template #top>
|
|
210
|
+
<TableToolbar
|
|
211
|
+
v-bind="args"
|
|
212
|
+
v-model:search="search"
|
|
213
|
+
/>
|
|
214
|
+
</template>
|
|
215
|
+
</VDataTable>
|
|
216
|
+
`,
|
|
217
|
+
}
|
|
218
|
+
},
|
|
160
219
|
parameters: {
|
|
161
220
|
sourceCode: [
|
|
162
221
|
{
|
|
163
222
|
name: 'Template',
|
|
164
223
|
code: `
|
|
165
224
|
<template>
|
|
166
|
-
<
|
|
167
|
-
|
|
168
|
-
:
|
|
169
|
-
:
|
|
170
|
-
|
|
225
|
+
<VDataTable
|
|
226
|
+
:headers="headers"
|
|
227
|
+
:items="items"
|
|
228
|
+
:search="search"
|
|
229
|
+
hide-default-footer
|
|
230
|
+
>
|
|
231
|
+
<template #top>
|
|
232
|
+
<TableToolbar
|
|
233
|
+
v-model:search="search"
|
|
234
|
+
:nb-total="items.length"
|
|
235
|
+
show-add-button
|
|
236
|
+
/>
|
|
237
|
+
</template>
|
|
238
|
+
</VDataTable>
|
|
171
239
|
</template>
|
|
172
240
|
`,
|
|
173
241
|
},
|
|
@@ -176,8 +244,37 @@ export const Default: Story = {
|
|
|
176
244
|
code: `
|
|
177
245
|
<script setup lang="ts">
|
|
178
246
|
import { TableToolbar } from '@cnamts/synapse'
|
|
247
|
+
import { VDataTable } from 'vuetify/components'
|
|
179
248
|
import { ref } from 'vue'
|
|
180
249
|
|
|
250
|
+
const headers = [
|
|
251
|
+
{
|
|
252
|
+
title: 'Nom',
|
|
253
|
+
value: 'lastname',
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
title: 'Prénom',
|
|
257
|
+
value: 'firstname',
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
title: 'Email',
|
|
261
|
+
value: 'email',
|
|
262
|
+
},
|
|
263
|
+
]
|
|
264
|
+
|
|
265
|
+
const items = [
|
|
266
|
+
{
|
|
267
|
+
firstname: 'Virginie',
|
|
268
|
+
lastname: 'Beauchesne',
|
|
269
|
+
email: 'virginie.beauchesne@example.com',
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
firstname: 'Étienne',
|
|
273
|
+
lastname: 'Salois',
|
|
274
|
+
email: 'etienne.salois@example.com',
|
|
275
|
+
},
|
|
276
|
+
]
|
|
277
|
+
|
|
181
278
|
const search = ref('')
|
|
182
279
|
</script>
|
|
183
280
|
`,
|
|
@@ -232,13 +329,14 @@ export const AddButton: Story = {
|
|
|
232
329
|
<VDataTable
|
|
233
330
|
:headers="headers"
|
|
234
331
|
:items="items"
|
|
332
|
+
:items-per-page="args.nbFiltered"
|
|
333
|
+
:search="search"
|
|
235
334
|
hide-default-footer
|
|
236
335
|
>
|
|
237
336
|
<template #top>
|
|
238
337
|
<TableToolbar
|
|
239
338
|
v-bind="args"
|
|
240
|
-
v-model="search"
|
|
241
|
-
:nb-total="items.length"
|
|
339
|
+
v-model:search="search"
|
|
242
340
|
show-add-button
|
|
243
341
|
/>
|
|
244
342
|
</template>
|
|
@@ -255,11 +353,12 @@ export const AddButton: Story = {
|
|
|
255
353
|
<VDataTable
|
|
256
354
|
:headers="headers"
|
|
257
355
|
:items="items"
|
|
356
|
+
:search="search"
|
|
258
357
|
hide-default-footer
|
|
259
358
|
>
|
|
260
359
|
<template #top>
|
|
261
360
|
<TableToolbar
|
|
262
|
-
v-model="search"
|
|
361
|
+
v-model:search="search"
|
|
263
362
|
:nb-total="items.length"
|
|
264
363
|
show-add-button
|
|
265
364
|
/>
|
|
@@ -361,12 +460,14 @@ export const Labels: Story = {
|
|
|
361
460
|
<VDataTable
|
|
362
461
|
:headers="headers"
|
|
363
462
|
:items="items"
|
|
463
|
+
:items-per-page="args.nbFiltered"
|
|
464
|
+
:search="search"
|
|
364
465
|
hide-default-footer
|
|
365
466
|
>
|
|
366
467
|
<template #top>
|
|
367
468
|
<TableToolbar
|
|
368
469
|
v-bind="args"
|
|
369
|
-
v-model="search"
|
|
470
|
+
v-model:search="search"
|
|
370
471
|
/>
|
|
371
472
|
</template>
|
|
372
473
|
</VDataTable>
|
|
@@ -382,16 +483,16 @@ export const Labels: Story = {
|
|
|
382
483
|
<VDataTable
|
|
383
484
|
:headers="headers"
|
|
384
485
|
:items="items"
|
|
486
|
+
:search="search"
|
|
385
487
|
hide-default-footer
|
|
386
488
|
>
|
|
387
489
|
<template #top>
|
|
388
490
|
<TableToolbar
|
|
389
|
-
v-model="search"
|
|
491
|
+
v-model:search="search"
|
|
390
492
|
:nb-total="items.length"
|
|
391
493
|
show-add-button
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
searchLabel="Rechercher un patient"
|
|
494
|
+
add-button-label="Ajouter un patient"
|
|
495
|
+
search-label="Rechercher un patient"
|
|
395
496
|
/>
|
|
396
497
|
</template>
|
|
397
498
|
</VDataTable>
|
|
@@ -489,25 +590,92 @@ export const Loading: Story = {
|
|
|
489
590
|
<VDataTable
|
|
490
591
|
:headers="headers"
|
|
491
592
|
:items="items"
|
|
593
|
+
:items-per-page="args.nbFiltered"
|
|
594
|
+
:search="search"
|
|
492
595
|
loading
|
|
493
596
|
hide-default-footer
|
|
494
597
|
>
|
|
495
598
|
<template #top>
|
|
496
599
|
<TableToolbar
|
|
497
600
|
v-bind="args"
|
|
498
|
-
v-model="search"
|
|
601
|
+
v-model:search="search"
|
|
499
602
|
/>
|
|
500
603
|
</template>
|
|
501
604
|
</VDataTable>
|
|
502
605
|
`,
|
|
503
606
|
}
|
|
504
607
|
},
|
|
608
|
+
parameters: {
|
|
609
|
+
sourceCode: [
|
|
610
|
+
{
|
|
611
|
+
name: 'Template',
|
|
612
|
+
code: `
|
|
613
|
+
<template>
|
|
614
|
+
<VDataTable
|
|
615
|
+
:headers="headers"
|
|
616
|
+
:items="items"
|
|
617
|
+
:search="search"
|
|
618
|
+
loading
|
|
619
|
+
hide-default-footer
|
|
620
|
+
>
|
|
621
|
+
<template #top>
|
|
622
|
+
<TableToolbar
|
|
623
|
+
v-model:search="search"
|
|
624
|
+
:nb-total="items.length"
|
|
625
|
+
/>
|
|
626
|
+
</template>
|
|
627
|
+
</VDataTable>
|
|
628
|
+
</template>
|
|
629
|
+
`,
|
|
630
|
+
},
|
|
631
|
+
{
|
|
632
|
+
name: 'Script',
|
|
633
|
+
code: `
|
|
634
|
+
<script setup lang="ts">
|
|
635
|
+
import { TableToolbar } from '@cnamts/synapse'
|
|
636
|
+
import { VDataTable } from 'vuetify/components'
|
|
637
|
+
import { ref } from 'vue'
|
|
638
|
+
|
|
639
|
+
const headers = [
|
|
640
|
+
{
|
|
641
|
+
title: 'Nom',
|
|
642
|
+
value: 'lastname',
|
|
643
|
+
},
|
|
644
|
+
{
|
|
645
|
+
title: 'Prénom',
|
|
646
|
+
value: 'firstname',
|
|
647
|
+
},
|
|
648
|
+
{
|
|
649
|
+
title: 'Email',
|
|
650
|
+
value: 'email',
|
|
651
|
+
},
|
|
652
|
+
]
|
|
653
|
+
|
|
654
|
+
const items = [
|
|
655
|
+
{
|
|
656
|
+
firstname: 'Virginie',
|
|
657
|
+
lastname: 'Beauchesne',
|
|
658
|
+
email: 'virginie.beauchesne@example.com',
|
|
659
|
+
},
|
|
660
|
+
{
|
|
661
|
+
firstname: 'Étienne',
|
|
662
|
+
lastname: 'Salois',
|
|
663
|
+
email: 'etienne.salois@example.com',
|
|
664
|
+
},
|
|
665
|
+
]
|
|
666
|
+
|
|
667
|
+
const search = ref('')
|
|
668
|
+
</script>
|
|
669
|
+
`,
|
|
670
|
+
},
|
|
671
|
+
],
|
|
672
|
+
},
|
|
505
673
|
}
|
|
506
674
|
|
|
507
675
|
export const NbFiltered: Story = {
|
|
508
676
|
args: {
|
|
509
|
-
'nbTotal':
|
|
510
|
-
'nbFiltered':
|
|
677
|
+
'nbTotal': 2,
|
|
678
|
+
'nbFiltered': 1,
|
|
511
679
|
'onAdd': fn(),
|
|
512
680
|
'onUpdate:search': fn(),
|
|
513
681
|
},
|
|
@@ -551,12 +719,14 @@ export const NbFiltered: Story = {
|
|
|
551
719
|
<VDataTable
|
|
552
720
|
:headers="headers"
|
|
553
721
|
:items="items"
|
|
722
|
+
:items-per-page="args.nbFiltered"
|
|
723
|
+
:search="search"
|
|
554
724
|
hide-default-footer
|
|
555
725
|
>
|
|
556
726
|
<template #top>
|
|
557
727
|
<TableToolbar
|
|
558
728
|
v-bind="args"
|
|
559
|
-
v-model="search"
|
|
729
|
+
v-model:search="search"
|
|
560
730
|
/>
|
|
561
731
|
</template>
|
|
562
732
|
</VDataTable>
|
|
@@ -572,13 +742,15 @@ export const NbFiltered: Story = {
|
|
|
572
742
|
<VDataTable
|
|
573
743
|
:headers="headers"
|
|
574
744
|
:items="items"
|
|
745
|
+
:items-per-page="1"
|
|
746
|
+
:search="search"
|
|
575
747
|
hide-default-footer
|
|
576
748
|
>
|
|
577
749
|
<template #top>
|
|
578
750
|
<TableToolbar
|
|
579
|
-
v-model="search"
|
|
580
|
-
:
|
|
581
|
-
:
|
|
751
|
+
v-model:search="search"
|
|
752
|
+
:nb-filtered="1"
|
|
753
|
+
:nb-total="items.length"
|
|
582
754
|
/>
|
|
583
755
|
</template>
|
|
584
756
|
</VDataTable>
|
|
@@ -629,32 +801,15 @@ export const NbFiltered: Story = {
|
|
|
629
801
|
},
|
|
630
802
|
}
|
|
631
803
|
|
|
632
|
-
export const
|
|
804
|
+
export const SlotFilters: Story = {
|
|
633
805
|
args: {
|
|
634
|
-
'nbTotal':
|
|
806
|
+
'nbTotal': 2,
|
|
635
807
|
'onAdd': fn(),
|
|
636
808
|
'onUpdate:search': fn(),
|
|
637
|
-
'showAddButton': true,
|
|
638
|
-
'vuetifyOptions': {
|
|
639
|
-
toolbar: {
|
|
640
|
-
class: 'py-2',
|
|
641
|
-
},
|
|
642
|
-
textField: {
|
|
643
|
-
variant: 'outlined',
|
|
644
|
-
density: 'compact',
|
|
645
|
-
},
|
|
646
|
-
addBtn: {
|
|
647
|
-
height: '40px',
|
|
648
|
-
color: '#663399',
|
|
649
|
-
},
|
|
650
|
-
addIcon: {
|
|
651
|
-
class: 'd-none',
|
|
652
|
-
},
|
|
653
|
-
},
|
|
654
809
|
},
|
|
655
810
|
render: (args) => {
|
|
656
811
|
return {
|
|
657
|
-
components: { TableToolbar, VDataTable },
|
|
812
|
+
components: { TableToolbar, SySelect, VDataTable },
|
|
658
813
|
setup() {
|
|
659
814
|
const headers = [
|
|
660
815
|
{
|
|
@@ -686,19 +841,44 @@ export const Customization: Story = {
|
|
|
686
841
|
|
|
687
842
|
const search = ref('')
|
|
688
843
|
|
|
689
|
-
|
|
844
|
+
const filterItems = ref<{ text: string, value: string }[]>([])
|
|
845
|
+
|
|
846
|
+
items.forEach((item) => {
|
|
847
|
+
filterItems.value.push({
|
|
848
|
+
text: item.lastname,
|
|
849
|
+
value: item.lastname,
|
|
850
|
+
})
|
|
851
|
+
})
|
|
852
|
+
|
|
853
|
+
return { args, headers, items, filterItems, search }
|
|
690
854
|
},
|
|
691
855
|
template: `
|
|
692
856
|
<VDataTable
|
|
693
857
|
:headers="headers"
|
|
694
858
|
:items="items"
|
|
859
|
+
:items-per-page="args.nbFiltered"
|
|
860
|
+
:search="search"
|
|
695
861
|
hide-default-footer
|
|
696
862
|
>
|
|
697
863
|
<template #top>
|
|
698
864
|
<TableToolbar
|
|
699
865
|
v-bind="args"
|
|
700
|
-
v-model="search"
|
|
701
|
-
|
|
866
|
+
v-model:search="args.search"
|
|
867
|
+
>
|
|
868
|
+
<template #filters>
|
|
869
|
+
<div class="py-1">
|
|
870
|
+
<SySelect
|
|
871
|
+
v-model="search"
|
|
872
|
+
:items="filterItems"
|
|
873
|
+
label="Nom"
|
|
874
|
+
density="compact"
|
|
875
|
+
width="100"
|
|
876
|
+
hide-messages
|
|
877
|
+
clearable
|
|
878
|
+
/>
|
|
879
|
+
</div>
|
|
880
|
+
</template>
|
|
881
|
+
</TableToolbar>
|
|
702
882
|
</template>
|
|
703
883
|
</VDataTable>
|
|
704
884
|
`,
|
|
@@ -713,15 +893,28 @@ export const Customization: Story = {
|
|
|
713
893
|
<VDataTable
|
|
714
894
|
:headers="headers"
|
|
715
895
|
:items="items"
|
|
896
|
+
:search="search"
|
|
716
897
|
hide-default-footer
|
|
717
898
|
>
|
|
718
899
|
<template #top>
|
|
719
900
|
<TableToolbar
|
|
720
|
-
v-model="search"
|
|
721
|
-
:nb-total="
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
901
|
+
v-model:search="search"
|
|
902
|
+
:nb-total="items.length"
|
|
903
|
+
>
|
|
904
|
+
<template #filters>
|
|
905
|
+
<div class="py-4">
|
|
906
|
+
<SySelect
|
|
907
|
+
v-model="search"
|
|
908
|
+
:items="filterItems"
|
|
909
|
+
label="Nom"
|
|
910
|
+
density="compact"
|
|
911
|
+
width="100"
|
|
912
|
+
hide-messages
|
|
913
|
+
clearable
|
|
914
|
+
/>
|
|
915
|
+
</div>
|
|
916
|
+
</template>
|
|
917
|
+
</TableToolbar>
|
|
725
918
|
</template>
|
|
726
919
|
</VDataTable>
|
|
727
920
|
</template>
|
|
@@ -731,7 +924,7 @@ export const Customization: Story = {
|
|
|
731
924
|
name: 'Script',
|
|
732
925
|
code: `
|
|
733
926
|
<script setup lang="ts">
|
|
734
|
-
import { TableToolbar } from '@cnamts/synapse'
|
|
927
|
+
import { TableToolbar, SySelect } from '@cnamts/synapse'
|
|
735
928
|
import { VDataTable } from 'vuetify/components'
|
|
736
929
|
import { ref } from 'vue'
|
|
737
930
|
|
|
@@ -763,24 +956,16 @@ export const Customization: Story = {
|
|
|
763
956
|
},
|
|
764
957
|
]
|
|
765
958
|
|
|
766
|
-
const vuetifyOptions = {
|
|
767
|
-
toolbar: {
|
|
768
|
-
class: 'py-2',
|
|
769
|
-
},
|
|
770
|
-
textField: {
|
|
771
|
-
variant: 'outlined',
|
|
772
|
-
density: 'compact',
|
|
773
|
-
},
|
|
774
|
-
addBtn: {
|
|
775
|
-
height: '40px',
|
|
776
|
-
color: '#663399',
|
|
777
|
-
},
|
|
778
|
-
addIcon: {
|
|
779
|
-
class: 'd-none',
|
|
780
|
-
},
|
|
781
|
-
}
|
|
782
|
-
|
|
783
959
|
const search = ref('')
|
|
960
|
+
|
|
961
|
+
const filterItems = ref<{ text: string, value: string }[]>([])
|
|
962
|
+
|
|
963
|
+
items.forEach((item) => {
|
|
964
|
+
filterItems.value.push({
|
|
965
|
+
text: item.lastname,
|
|
966
|
+
value: item.lastname,
|
|
967
|
+
})
|
|
968
|
+
})
|
|
784
969
|
</script>
|
|
785
970
|
`,
|
|
786
971
|
},
|
|
@@ -788,7 +973,7 @@ export const Customization: Story = {
|
|
|
788
973
|
},
|
|
789
974
|
}
|
|
790
975
|
|
|
791
|
-
export const
|
|
976
|
+
export const OtherSlots: Story = {
|
|
792
977
|
args: {
|
|
793
978
|
'nbTotal': 2,
|
|
794
979
|
'onAdd': fn(),
|
|
@@ -834,12 +1019,14 @@ export const Slots: Story = {
|
|
|
834
1019
|
<VDataTable
|
|
835
1020
|
:headers="headers"
|
|
836
1021
|
:items="items"
|
|
1022
|
+
:items-per-page="args.nbFiltered"
|
|
1023
|
+
:search="search"
|
|
837
1024
|
hide-default-footer
|
|
838
1025
|
>
|
|
839
1026
|
<template #top>
|
|
840
1027
|
<TableToolbar
|
|
841
1028
|
v-bind="args"
|
|
842
|
-
v-model="search"
|
|
1029
|
+
v-model:search="search"
|
|
843
1030
|
>
|
|
844
1031
|
<template #search-left>
|
|
845
1032
|
<VBtn
|
|
@@ -866,12 +1053,13 @@ export const Slots: Story = {
|
|
|
866
1053
|
<VDataTable
|
|
867
1054
|
:headers="headers"
|
|
868
1055
|
:items="items"
|
|
1056
|
+
:search="search"
|
|
869
1057
|
hide-default-footer
|
|
870
1058
|
>
|
|
871
1059
|
<template #top>
|
|
872
1060
|
<TableToolbar
|
|
873
|
-
v-model="search"
|
|
874
|
-
:nb-total="
|
|
1061
|
+
v-model:search="search"
|
|
1062
|
+
:nb-total="items.length"
|
|
875
1063
|
show-add-button
|
|
876
1064
|
>
|
|
877
1065
|
<template #search-left>
|
|
@@ -933,3 +1121,163 @@ export const Slots: Story = {
|
|
|
933
1121
|
],
|
|
934
1122
|
},
|
|
935
1123
|
}
|
|
1124
|
+
|
|
1125
|
+
export const Customization: Story = {
|
|
1126
|
+
args: {
|
|
1127
|
+
'nbTotal': 2,
|
|
1128
|
+
'onAdd': fn(),
|
|
1129
|
+
'onUpdate:search': fn(),
|
|
1130
|
+
'showAddButton': true,
|
|
1131
|
+
'vuetifyOptions': {
|
|
1132
|
+
toolbar: {
|
|
1133
|
+
class: 'py-2',
|
|
1134
|
+
},
|
|
1135
|
+
textField: {
|
|
1136
|
+
density: 'compact',
|
|
1137
|
+
},
|
|
1138
|
+
addBtn: {
|
|
1139
|
+
color: 'secondary',
|
|
1140
|
+
},
|
|
1141
|
+
addIcon: {
|
|
1142
|
+
class: 'd-none',
|
|
1143
|
+
},
|
|
1144
|
+
},
|
|
1145
|
+
},
|
|
1146
|
+
render: (args) => {
|
|
1147
|
+
return {
|
|
1148
|
+
components: { TableToolbar, VDataTable },
|
|
1149
|
+
setup() {
|
|
1150
|
+
const headers = [
|
|
1151
|
+
{
|
|
1152
|
+
title: 'Nom',
|
|
1153
|
+
value: 'lastname',
|
|
1154
|
+
},
|
|
1155
|
+
{
|
|
1156
|
+
title: 'Prénom',
|
|
1157
|
+
value: 'firstname',
|
|
1158
|
+
},
|
|
1159
|
+
{
|
|
1160
|
+
title: 'Email',
|
|
1161
|
+
value: 'email',
|
|
1162
|
+
},
|
|
1163
|
+
]
|
|
1164
|
+
|
|
1165
|
+
const items = [
|
|
1166
|
+
{
|
|
1167
|
+
firstname: 'Virginie',
|
|
1168
|
+
lastname: 'Beauchesne',
|
|
1169
|
+
email: 'virginie.beauchesne@example.com',
|
|
1170
|
+
},
|
|
1171
|
+
{
|
|
1172
|
+
firstname: 'Étienne',
|
|
1173
|
+
lastname: 'Salois',
|
|
1174
|
+
email: 'etienne.salois@example.com',
|
|
1175
|
+
},
|
|
1176
|
+
]
|
|
1177
|
+
|
|
1178
|
+
const search = ref('')
|
|
1179
|
+
|
|
1180
|
+
return { args, headers, items, search }
|
|
1181
|
+
},
|
|
1182
|
+
template: `
|
|
1183
|
+
<VDataTable
|
|
1184
|
+
:headers="headers"
|
|
1185
|
+
:items="items"
|
|
1186
|
+
:items-per-page="args.nbFiltered"
|
|
1187
|
+
:search="search"
|
|
1188
|
+
hide-default-footer
|
|
1189
|
+
>
|
|
1190
|
+
<template #top>
|
|
1191
|
+
<TableToolbar
|
|
1192
|
+
v-bind="args"
|
|
1193
|
+
v-model:search="search"
|
|
1194
|
+
/>
|
|
1195
|
+
</template>
|
|
1196
|
+
</VDataTable>
|
|
1197
|
+
`,
|
|
1198
|
+
}
|
|
1199
|
+
},
|
|
1200
|
+
parameters: {
|
|
1201
|
+
sourceCode: [
|
|
1202
|
+
{
|
|
1203
|
+
name: 'Template',
|
|
1204
|
+
code: `
|
|
1205
|
+
<template>
|
|
1206
|
+
<VDataTable
|
|
1207
|
+
:headers="headers"
|
|
1208
|
+
:items="items"
|
|
1209
|
+
:search="search"
|
|
1210
|
+
hide-default-footer
|
|
1211
|
+
>
|
|
1212
|
+
<template #top>
|
|
1213
|
+
<TableToolbar
|
|
1214
|
+
v-model:search="search"
|
|
1215
|
+
show-add-button
|
|
1216
|
+
:nb-total="items.length"
|
|
1217
|
+
:vuetifyOptions
|
|
1218
|
+
/>
|
|
1219
|
+
</template>
|
|
1220
|
+
</VDataTable>
|
|
1221
|
+
</template>
|
|
1222
|
+
`,
|
|
1223
|
+
},
|
|
1224
|
+
{
|
|
1225
|
+
name: 'Script',
|
|
1226
|
+
code: `
|
|
1227
|
+
<script setup lang="ts">
|
|
1228
|
+
import { TableToolbar } from '@cnamts/synapse'
|
|
1229
|
+
import { VDataTable } from 'vuetify/components'
|
|
1230
|
+
import { ref } from 'vue'
|
|
1231
|
+
|
|
1232
|
+
const headers = [
|
|
1233
|
+
{
|
|
1234
|
+
title: 'Nom',
|
|
1235
|
+
value: 'lastname',
|
|
1236
|
+
},
|
|
1237
|
+
{
|
|
1238
|
+
title: 'Prénom',
|
|
1239
|
+
value: 'firstname',
|
|
1240
|
+
},
|
|
1241
|
+
{
|
|
1242
|
+
title: 'Email',
|
|
1243
|
+
value: 'email',
|
|
1244
|
+
},
|
|
1245
|
+
]
|
|
1246
|
+
|
|
1247
|
+
const items = [
|
|
1248
|
+
{
|
|
1249
|
+
firstname: 'Virginie',
|
|
1250
|
+
lastname: 'Beauchesne',
|
|
1251
|
+
email: 'virginie.beauchesne@example.com',
|
|
1252
|
+
},
|
|
1253
|
+
{
|
|
1254
|
+
firstname: 'Étienne',
|
|
1255
|
+
lastname: 'Salois',
|
|
1256
|
+
email: 'etienne.salois@example.com',
|
|
1257
|
+
},
|
|
1258
|
+
]
|
|
1259
|
+
|
|
1260
|
+
const vuetifyOptions = {
|
|
1261
|
+
toolbar: {
|
|
1262
|
+
class: 'py-2',
|
|
1263
|
+
},
|
|
1264
|
+
textField: {
|
|
1265
|
+
variant: 'outlined',
|
|
1266
|
+
density: 'compact',
|
|
1267
|
+
},
|
|
1268
|
+
addBtn: {
|
|
1269
|
+
height: '40px',
|
|
1270
|
+
color: '#663399',
|
|
1271
|
+
},
|
|
1272
|
+
addIcon: {
|
|
1273
|
+
class: 'd-none',
|
|
1274
|
+
},
|
|
1275
|
+
}
|
|
1276
|
+
|
|
1277
|
+
const search = ref('')
|
|
1278
|
+
</script>
|
|
1279
|
+
`,
|
|
1280
|
+
},
|
|
1281
|
+
],
|
|
1282
|
+
},
|
|
1283
|
+
}
|