@cnamts/synapse 1.0.1 → 1.0.2
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/README.md +1 -1
- package/dist/{DateFilter-BmRuzQ9Z.js → DateFilter-YWOTbfeL.js} +1 -1
- package/dist/{NumberFilter-CnIPDHqx.js → NumberFilter-DMmMgALM.js} +1 -1
- package/dist/{PeriodFilter-CZwZ8CnQ.js → PeriodFilter-Bok5BHcn.js} +1 -1
- package/dist/SelectFilter-BKud2WhN.js +136 -0
- package/dist/{TextFilter-DTxZHJwX.js → TextFilter-DvMf2thH.js} +1 -1
- package/dist/components/Accordion/Accordion.d.ts +2 -1
- package/dist/components/Accordion/composables/useAccordionGroupCommunication.d.ts +5 -0
- package/dist/components/Accordion/composables/useAccordionKeyboardNavigation.d.ts +12 -0
- package/dist/components/Accordion/composables/useAccordionState.d.ts +13 -0
- package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +85 -0
- package/dist/components/Customs/SyInputSelect/SyInputSelect.d.ts +2 -0
- package/dist/components/Customs/SySelect/SySelect.d.ts +33 -13
- package/dist/components/Customs/SyTextField/SyTextField.d.ts +2 -2
- package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +1585 -1452
- package/dist/components/DatePicker/DatePicker/DatePicker.d.ts +16 -2
- package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +3 -1
- package/dist/components/DatePicker/composables/index.d.ts +2 -0
- package/dist/components/DatePicker/composables/useAsteriskDisplay.d.ts +14 -0
- package/dist/components/DatePicker/composables/useDateAutoClamp.d.ts +16 -0
- package/dist/components/DatePicker/composables/useDateRangeInput.d.ts +1 -1
- package/dist/components/DatePicker/composables/useDisplayedDateString.d.ts +3 -0
- package/dist/components/DatePicker/composables/useInputBlurHandler.d.ts +1 -0
- package/dist/components/DatePicker/composables/useMonthButtonCustomization.d.ts +5 -2
- package/dist/components/NirField/NirField.d.ts +7 -3
- package/dist/components/NirField/nirValidation.d.ts +1 -1
- package/dist/components/PasswordField/PasswordField.d.ts +2 -0
- package/dist/components/PeriodField/PeriodField.d.ts +52 -8
- package/dist/components/PhoneField/PhoneField.d.ts +2 -2
- package/dist/components/RangeField/RangeField.d.ts +2 -0
- package/dist/components/SearchListField/SearchListField.d.ts +9 -0
- package/dist/components/SyTextArea/SyTextArea.d.ts +2 -0
- package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +14 -9
- package/dist/components/Tables/SyTable/SyTable.d.ts +12 -7
- package/dist/components/Tables/common/SyTablePagination.d.ts +1636 -0
- package/dist/components/Tables/common/TableHeader.d.ts +2 -20
- package/dist/components/Tables/common/filters/SelectFilter.d.ts +5 -5
- package/dist/components/Tables/common/filters/getFilterComponent.d.ts +1 -0
- package/dist/components/Tables/common/filters/locales.d.ts +4 -0
- package/dist/components/Tables/common/filters/logics/date.d.ts +1 -0
- package/dist/components/Tables/common/filters/logics/number.d.ts +1 -0
- package/dist/components/Tables/common/filters/logics/period.d.ts +1 -0
- package/dist/components/Tables/common/filters/logics/select.d.ts +1 -0
- package/dist/components/Tables/common/filters/logics/text.d.ts +1 -0
- package/dist/components/Tables/common/locales.d.ts +21 -0
- package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +267 -0
- package/dist/components/Tables/common/organizeColumns/sortHeaders.d.ts +2 -0
- package/dist/components/Tables/common/tableFilterUtils.d.ts +1 -0
- package/dist/components/Tables/common/tableStorageUtils.d.ts +41 -1
- package/dist/components/Tables/common/tableUtils.d.ts +42 -5
- package/dist/components/Tables/common/types.d.ts +19 -8
- package/dist/components/Tables/common/usePagination.d.ts +22 -0
- package/dist/components/Tables/common/useTableCheckbox.d.ts +20 -0
- package/dist/components/Tables/common/useTableHeaders.d.ts +76 -0
- package/dist/components/Tables/common/useTableItems.d.ts +24 -0
- package/dist/components/Tables/common/useTableOptions.d.ts +18 -0
- package/dist/components/ToolbarContainer/ToolbarContainer.d.ts +11 -0
- package/dist/components/UserMenuBtn/UserMenuBtn.d.ts +9 -2
- package/dist/components/index.d.ts +8 -6
- package/dist/design-system-v3.js +58 -56
- package/dist/design-system-v3.umd.cjs +22 -22
- package/dist/main-Cx8qG7YR.js +16344 -0
- package/dist/stories/Accessibilite/Vuetify/VuetifyItems.d.ts +14 -2
- package/dist/stories/DesignTokens/StylesTypographiques.stories.new.d.ts +8 -0
- package/dist/stories/DesignTokens/TypographyDisplay.d.ts +28 -0
- package/dist/stories/DesignTokens/vue-shims.d.ts +6 -0
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/common/imgs/accessibility-svgrepo-com.svg +4 -0
- package/src/components/Accordion/Accessibilite/AccessibilityGuide.mdx +249 -0
- package/src/components/Accordion/Accordion.vue +48 -76
- package/src/components/Accordion/composables/__tests__/useAccordionGroupCommunication.spec.ts +146 -0
- package/src/components/Accordion/composables/__tests__/useAccordionKeyboardNavigation.spec.ts +209 -0
- package/src/components/Accordion/composables/__tests__/useAccordionState.spec.ts +144 -0
- package/src/components/Accordion/composables/useAccordionGroupCommunication.ts +52 -0
- package/src/components/Accordion/composables/useAccordionKeyboardNavigation.ts +111 -0
- package/src/components/Accordion/composables/useAccordionState.ts +59 -0
- package/src/components/Accordion/tests/__snapshots__/accordion.spec.ts.snap +3 -0
- package/src/components/Customs/SyCheckbox/Accessibilite.mdx +303 -0
- package/src/components/Customs/SyCheckbox/SyCheckbox.mdx +50 -0
- package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +630 -0
- package/src/components/Customs/SyCheckbox/SyCheckbox.vue +326 -0
- package/src/components/Customs/SyCheckbox/tests/SyCheckbox.spec.ts +201 -0
- package/src/components/Customs/SyInputSelect/SyInputSelect.stories.ts +1 -0
- package/src/components/Customs/SyInputSelect/SyInputSelect.vue +8 -1
- package/src/components/Customs/SySelect/SySelect.stories.ts +160 -0
- package/src/components/Customs/SySelect/SySelect.vue +291 -32
- package/src/components/Customs/SySelect/tests/SySelect.spec.ts +230 -0
- package/src/components/Customs/SyTextField/SyTextField.stories.ts +3 -2
- package/src/components/Customs/SyTextField/SyTextField.vue +19 -8
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +241 -31
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +305 -57
- package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.events.spec.ts +161 -0
- package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +4 -2
- package/src/components/DatePicker/DatePicker/DatePicker.stories.ts +259 -137
- package/src/components/DatePicker/DatePicker/DatePicker.vue +153 -25
- package/src/components/DatePicker/DatePicker/tests/DatePicker.events.spec.ts +189 -0
- package/src/components/DatePicker/DatePicker/{DatePicker.spec.ts → tests/DatePicker.spec.ts} +1 -15
- package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +24 -14
- package/src/components/DatePicker/DateTextInput/DateTextInput.events.spec.ts +148 -0
- package/src/components/DatePicker/DateTextInput/DateTextInput.spec.ts +3 -1
- package/src/components/DatePicker/DateTextInput/DateTextInput.vue +200 -5
- package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +241 -31
- package/src/components/DatePicker/composables/index.ts +2 -0
- package/src/components/DatePicker/composables/tests/useDateAutoClamp.spec.ts +190 -0
- package/src/components/DatePicker/composables/tests/useInputBlurHandler.spec.ts +182 -4
- package/src/components/DatePicker/composables/tests/useMonthButtonCustomization.spec.ts +105 -80
- package/src/components/DatePicker/composables/useAsteriskDisplay.ts +31 -0
- package/src/components/DatePicker/composables/useDateAutoClamp.ts +136 -0
- package/src/components/DatePicker/composables/useDateRangeInput.ts +21 -18
- package/src/components/DatePicker/composables/useDisplayedDateString.ts +13 -1
- package/src/components/DatePicker/composables/useInputBlurHandler.ts +84 -20
- package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +149 -51
- package/src/components/DiacriticPicker/DiacriticPicker.stories.ts +10 -0
- package/src/components/ErrorPage/Accessibilite.stories.ts +8 -0
- package/src/components/ErrorPage/ErrorPage.vue +12 -6
- package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +4 -4
- package/src/components/NirField/NirField.mdx +22 -9
- package/src/components/NirField/NirField.stories.ts +26 -2
- package/src/components/NirField/NirField.vue +209 -22
- package/src/components/NirField/nirValidation.ts +17 -3
- package/src/components/NirField/tests/NirField.spec.ts +2 -2
- package/src/components/NotFoundPage/Accessibilite.stories.ts +8 -0
- package/src/components/NotFoundPage/NotFoundPage.vue +2 -1
- package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +8 -6
- package/src/components/PaginatedTable/PaginatedTable.mdx +2 -0
- package/src/components/PasswordField/PasswordField.stories.ts +4 -0
- package/src/components/PasswordField/PasswordField.vue +3 -0
- package/src/components/PeriodField/PeriodField.vue +2 -0
- package/src/components/PhoneField/PhoneField.stories.ts +15 -15
- package/src/components/PhoneField/PhoneField.vue +1 -1
- package/src/components/RangeField/RangeField.stories.ts +9 -0
- package/src/components/RangeField/RangeField.vue +4 -0
- package/src/components/RangeField/tests/__snapshots__/RangeField.spec.ts.snap +12 -0
- package/src/components/SearchListField/SearchListField.vue +5 -0
- package/src/components/SyTextArea/SyTextArea.vue +3 -0
- package/src/components/SyTextArea/tests/SyTextArea.spec.ts +0 -1
- package/src/components/Tables/SyServerTable/FilterRules.stories.ts +632 -15
- package/src/components/Tables/SyServerTable/SyServerTable.mdx +15 -5
- package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +2844 -1377
- package/src/components/Tables/SyServerTable/SyServerTable.vue +155 -66
- package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +256 -4
- package/src/components/Tables/SyTable/FilterRules.stories.ts +183 -0
- package/src/components/Tables/SyTable/SyTable.mdx +14 -4
- package/src/components/Tables/SyTable/SyTable.stories.ts +1265 -477
- package/src/components/Tables/SyTable/SyTable.vue +152 -72
- package/src/components/Tables/SyTable/tests/SyTable.spec.ts +366 -4
- package/src/components/Tables/common/SyTableFilter.vue +3 -56
- package/src/components/Tables/common/SyTablePagination.vue +375 -0
- package/src/components/Tables/common/TableHeader.vue +10 -26
- package/src/components/Tables/common/filters/SelectFilter.vue +131 -22
- package/src/components/Tables/common/filters/getFilterComponent.ts +54 -0
- package/src/components/Tables/common/filters/locales.ts +4 -0
- package/src/components/Tables/common/filters/logics/date.ts +12 -0
- package/src/components/Tables/common/filters/logics/number.ts +48 -0
- package/src/components/Tables/common/filters/logics/period.ts +25 -0
- package/src/components/Tables/common/filters/logics/select.ts +27 -0
- package/src/components/Tables/common/filters/logics/tests/TextFilterLogic.spec.ts +177 -0
- package/src/components/Tables/common/filters/logics/text.ts +62 -0
- package/src/components/Tables/common/filters/tests/TextFilter.spec.ts +11 -11
- package/src/components/Tables/common/locales.ts +24 -0
- package/src/components/Tables/common/organizeColumns/OrganizeColumns.vue +269 -0
- package/src/components/Tables/common/organizeColumns/sortHeaders.ts +9 -0
- package/src/components/Tables/common/tableFilterUtils.ts +43 -295
- package/src/components/Tables/common/tableStorageUtils.ts +27 -2
- package/src/components/Tables/common/tableStyles.scss +26 -0
- package/src/components/Tables/common/tableUtils.ts +3 -16
- package/src/components/Tables/common/tests/SyTablePagination.spec.ts +170 -0
- package/src/components/Tables/common/tests/filterByRange.spec.ts +215 -0
- package/src/components/Tables/common/tests/tableFilterUtils.spec.ts +0 -14
- package/src/components/Tables/common/tests/tableUtils.spec.ts +7 -51
- package/src/components/Tables/common/types.ts +17 -6
- package/src/components/Tables/common/usePagination.ts +83 -0
- package/src/components/Tables/common/useTableCheckbox.ts +58 -0
- package/src/components/Tables/common/useTableHeaders.ts +88 -0
- package/src/components/Tables/common/useTableItems.ts +87 -0
- package/src/components/Tables/common/useTableOptions.ts +93 -0
- package/src/components/ToolbarContainer/ToolbarContainer.mdx +16 -0
- package/src/components/ToolbarContainer/ToolbarContainer.stories.ts +675 -0
- package/src/components/ToolbarContainer/ToolbarContainer.vue +128 -0
- package/src/components/ToolbarContainer/tests/ToolbarContainer.spec.ts +156 -0
- package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +74 -0
- package/src/components/UserMenuBtn/UserMenuBtn.vue +19 -17
- package/src/components/index.ts +8 -6
- package/src/stories/Accessibilite/Aculturation/AuditDesignSystem.mdx +293 -20
- package/src/stories/Accessibilite/Aculturation/SensibilisationAccessibilite.mdx +448 -54
- package/src/stories/Accessibilite/Audit/RGAA.mdx +231 -23
- package/src/stories/Accessibilite/Avancement/Avancement.mdx +591 -7
- package/src/stories/Accessibilite/Avancement/Avancement.stories.ts +139 -38
- package/src/stories/Accessibilite/Introduction.mdx +258 -18
- package/src/stories/Accessibilite/KitDePreAudit/Echantillonnage.mdx +221 -31
- package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +204 -22
- package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +537 -24
- package/src/stories/Accessibilite/KitDePreAudit/Outils/LecteursDEcran.mdx +577 -70
- package/src/stories/Accessibilite/KitDePreAudit/Outils/Tanaguru.mdx +382 -31
- package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +419 -81
- package/src/stories/Accessibilite/Vuetify/Vuetify.mdx +132 -6
- package/src/stories/Accessibilite/Vuetify/Vuetify.stories.ts +370 -146
- package/src/stories/Accessibilite/Vuetify/VuetifyItems.ts +35 -57
- package/src/stories/Demarrer/Accueil.stories.ts +20 -5
- package/src/stories/DesignTokens/StylesTypographiques.mdx +10 -9
- package/src/stories/DesignTokens/StylesTypographiques.stories.new.ts +397 -0
- package/src/stories/DesignTokens/StylesTypographiques.stories.ts +397 -0
- package/src/stories/DesignTokens/TypographyDisplay.vue +155 -0
- package/src/stories/DesignTokens/vue-shims.d.ts +6 -0
- package/src/stories/GuideDuDev/LesBreackingChanges.mdx +0 -2
- package/src/stories/GuideDuDev/MigrationDepuisBridge.mdx +1 -1
- package/src/stories/GuideDuDev/MigrationDepuisVue2.mdx +1 -1
- package/src/stories/GuideDuDev/PortailAgent.mdx +10 -0
- package/src/stories/GuideDuDev/PortailAgent.stories.ts +506 -0
- package/src/stories/GuideDuDev/Theme.mdx +41 -0
- package/dist/SelectFilter-Cj-GW2Cc.js +0 -97
- package/dist/main-WDqeoGM-.js +0 -14788
- package/src/components/PaginatedTable/tests/__snapshots__/PaginatedTable.spec.ts.snap +0 -886
- package/src/components/Tables/SyServerTable/tests/__snapshots__/SyServerTable.spec.ts.snap +0 -521
- package/src/components/Tables/SyTable/tests/__snapshots__/SyTable.spec.ts.snap +0 -521
- package/src/stories/DesignTokens/ThemePA.mdx +0 -35
|
@@ -2,6 +2,7 @@ import type { Meta, StoryObj } from '@storybook/vue3'
|
|
|
2
2
|
import SyTable from './SyTable.vue'
|
|
3
3
|
import { ref } from 'vue'
|
|
4
4
|
import type { VDataTable } from 'vuetify/components'
|
|
5
|
+
import dayjs from 'dayjs'
|
|
5
6
|
|
|
6
7
|
const meta = {
|
|
7
8
|
title: 'Composants/Tableaux/SyTable/Rules',
|
|
@@ -233,3 +234,185 @@ export const NumberFilterRules: Story = {
|
|
|
233
234
|
`,
|
|
234
235
|
}),
|
|
235
236
|
}
|
|
237
|
+
|
|
238
|
+
export const SelectFilterRules: Story = {
|
|
239
|
+
args: {
|
|
240
|
+
suffix: 'select-filter-rules',
|
|
241
|
+
showFilters: true,
|
|
242
|
+
},
|
|
243
|
+
parameters: {
|
|
244
|
+
docs: {
|
|
245
|
+
description: {
|
|
246
|
+
story: 'Documentation des règles de filtrage par sélection pour le composant SyTable.',
|
|
247
|
+
},
|
|
248
|
+
},
|
|
249
|
+
},
|
|
250
|
+
render: () => ({
|
|
251
|
+
components: { SyTable },
|
|
252
|
+
setup() {
|
|
253
|
+
const headers = ref([
|
|
254
|
+
{
|
|
255
|
+
title: 'Catégorie',
|
|
256
|
+
key: 'category',
|
|
257
|
+
filterable: true,
|
|
258
|
+
filterType: 'select',
|
|
259
|
+
filterOptions: [
|
|
260
|
+
{ text: 'Fruits', value: 'Fruits' },
|
|
261
|
+
{ text: 'Légumes', value: 'Légumes' },
|
|
262
|
+
{ text: 'Boissons', value: 'Boissons' },
|
|
263
|
+
{ text: '(vide)', value: '' },
|
|
264
|
+
],
|
|
265
|
+
},
|
|
266
|
+
{ title: 'Description', key: 'description', filterable: false },
|
|
267
|
+
])
|
|
268
|
+
|
|
269
|
+
const items = ref([
|
|
270
|
+
{ category: 'Fruits', description: 'Catégorie standard avec valeur non vide' },
|
|
271
|
+
{ category: 'Légumes', description: 'Catégorie standard avec valeur non vide' },
|
|
272
|
+
{ category: '', description: 'Catégorie avec valeur vide, affichée comme "(vide)" dans la liste' },
|
|
273
|
+
{ category: 'Fruits', description: 'Valeur dupliquée, apparaît une seule fois dans la liste' },
|
|
274
|
+
{ category: 'Boissons', description: 'Catégorie standard avec valeur non vide' },
|
|
275
|
+
])
|
|
276
|
+
|
|
277
|
+
const options = ref({
|
|
278
|
+
itemsPerPage: 10,
|
|
279
|
+
})
|
|
280
|
+
|
|
281
|
+
return {
|
|
282
|
+
headers,
|
|
283
|
+
items,
|
|
284
|
+
options,
|
|
285
|
+
}
|
|
286
|
+
},
|
|
287
|
+
template: `
|
|
288
|
+
<div>
|
|
289
|
+
<h2>Règles de filtrage par sélection</h2>
|
|
290
|
+
<p class="mb-4">Les filtres de sélection permettent de choisir parmi les valeurs uniques présentes dans la colonne.</p>
|
|
291
|
+
|
|
292
|
+
<div class="mb-4">
|
|
293
|
+
<p>Les filtres de choix sont des listes reprenant les éléments uniques présents dans l'ensemble des colonnes non filtrés. Pour faciliter l'accessibilité de la liste, le premier élément contient la valeur « - choisir - » pour indiquer qu'aucune ligne n'est filtré. Si l'une des cellules de la colonne est vide, l'élément de liste correspondant doit afficher la valeur « (vide) ».</p>
|
|
294
|
+
<p>L'action de filtrage est effectuée à la sélection d'une option de la liste de choix.</p>
|
|
295
|
+
</div>
|
|
296
|
+
|
|
297
|
+
<SyTable
|
|
298
|
+
v-model:options="options"
|
|
299
|
+
:headers="headers"
|
|
300
|
+
:items="items"
|
|
301
|
+
suffix="select-filter-rules"
|
|
302
|
+
show-filters
|
|
303
|
+
/>
|
|
304
|
+
</div>
|
|
305
|
+
`,
|
|
306
|
+
}),
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
export const DateFilterRules: Story = {
|
|
310
|
+
args: {
|
|
311
|
+
suffix: 'date-filter-rules',
|
|
312
|
+
showFilters: true,
|
|
313
|
+
},
|
|
314
|
+
parameters: {
|
|
315
|
+
docs: {
|
|
316
|
+
description: {
|
|
317
|
+
story: 'Documentation des règles de filtrage par date pour le composant SyTable.',
|
|
318
|
+
},
|
|
319
|
+
},
|
|
320
|
+
},
|
|
321
|
+
render: () => ({
|
|
322
|
+
components: { SyTable },
|
|
323
|
+
setup() {
|
|
324
|
+
// Exemple 1: Filtrage par date seule
|
|
325
|
+
const headersSingleDate = ref([
|
|
326
|
+
{
|
|
327
|
+
title: 'Date',
|
|
328
|
+
key: 'date',
|
|
329
|
+
filterable: true,
|
|
330
|
+
filterType: 'date',
|
|
331
|
+
},
|
|
332
|
+
{ title: 'Description', key: 'description', filterable: false },
|
|
333
|
+
])
|
|
334
|
+
|
|
335
|
+
const itemsSingleDate = ref([
|
|
336
|
+
{ date: dayjs('2025-01-15').format('DD/MM/YYYY'), description: 'Date simple' },
|
|
337
|
+
{ date: dayjs('2025-02-20').format('DD/MM/YYYY'), description: 'Date simple' },
|
|
338
|
+
{ date: dayjs('2024-12-10').format('DD/MM/YYYY'), description: 'Date simple' },
|
|
339
|
+
{ date: dayjs('2025-05-05').format('DD/MM/YYYY'), description: 'Date simple' },
|
|
340
|
+
])
|
|
341
|
+
|
|
342
|
+
const optionsSingleDate = ref({
|
|
343
|
+
itemsPerPage: 10,
|
|
344
|
+
})
|
|
345
|
+
|
|
346
|
+
// Exemple 2: Filtrage par période
|
|
347
|
+
const headersPeriod = ref([
|
|
348
|
+
{
|
|
349
|
+
title: 'Date',
|
|
350
|
+
key: 'date',
|
|
351
|
+
filterable: true,
|
|
352
|
+
filterType: 'period',
|
|
353
|
+
dateFormat: 'DD/MM/YYYY',
|
|
354
|
+
},
|
|
355
|
+
{ title: 'Description', key: 'description', filterable: false },
|
|
356
|
+
])
|
|
357
|
+
|
|
358
|
+
// Définir une période du 01/01/2025 au 31/03/2025 pour l'exemple
|
|
359
|
+
const periodStart = dayjs('2025-01-01').format('DD/MM/YYYY')
|
|
360
|
+
const periodEnd = dayjs('2025-03-31').format('DD/MM/YYYY')
|
|
361
|
+
|
|
362
|
+
const itemsPeriod = ref([
|
|
363
|
+
{ date: dayjs('2025-01-15').format('DD/MM/YYYY'), description: `Date incluse dans la période ${periodStart} - ${periodEnd}` },
|
|
364
|
+
{ date: dayjs('2025-02-20').format('DD/MM/YYYY'), description: `Date incluse dans la période ${periodStart} - ${periodEnd}` },
|
|
365
|
+
{ date: dayjs('2024-12-10').format('DD/MM/YYYY'), description: `Date avant la période ${periodStart} - ${periodEnd}` },
|
|
366
|
+
{ date: dayjs('2025-05-05').format('DD/MM/YYYY'), description: `Date après la période ${periodStart} - ${periodEnd}` },
|
|
367
|
+
{ date: dayjs('2025-01-01').format('DD/MM/YYYY'), description: `Date limite inférieure de la période (${periodStart})` },
|
|
368
|
+
{ date: dayjs('2025-03-31').format('DD/MM/YYYY'), description: `Date limite supérieure de la période (${periodEnd})` },
|
|
369
|
+
])
|
|
370
|
+
|
|
371
|
+
const optionsPeriod = ref({
|
|
372
|
+
itemsPerPage: 10,
|
|
373
|
+
})
|
|
374
|
+
|
|
375
|
+
return {
|
|
376
|
+
headersSingleDate,
|
|
377
|
+
itemsSingleDate,
|
|
378
|
+
optionsSingleDate,
|
|
379
|
+
headersPeriod,
|
|
380
|
+
itemsPeriod,
|
|
381
|
+
optionsPeriod,
|
|
382
|
+
}
|
|
383
|
+
},
|
|
384
|
+
template: `
|
|
385
|
+
<div>
|
|
386
|
+
<h2>Règles de filtrage par date</h2>
|
|
387
|
+
<p class="mb-4">Le filtre de date s'applique à une colonne de dates.</p>
|
|
388
|
+
|
|
389
|
+
<div class="mb-4">
|
|
390
|
+
<p>Le filtre de période comporte deux champs de saisies permettant de saisir une période du … au …</p>
|
|
391
|
+
<ul class="mb-4 pl-4">
|
|
392
|
+
<li>Le premier champ de saisie représente la date minimale recherchée (inclue). S'il n'est pas renseigné, il n'y a pas de limite minimale.</li>
|
|
393
|
+
<li>Le deuxième champ de saisie représente la date maximale recherchée (inclue). S'il n'est pas renseigné, il n'y a pas de limite maximale.</li>
|
|
394
|
+
</ul>
|
|
395
|
+
<p>L'action de filtrage s'effectue quand 10 caractères sont présents dans le champ de saisie en cours.</p>
|
|
396
|
+
</div>
|
|
397
|
+
|
|
398
|
+
<h3 class="mb-3">Exemple 1: Filtrage par date seule</h3>
|
|
399
|
+
<SyTable
|
|
400
|
+
v-model:options="optionsSingleDate"
|
|
401
|
+
:headers="headersSingleDate"
|
|
402
|
+
:items="itemsSingleDate"
|
|
403
|
+
suffix="date-filter-single"
|
|
404
|
+
show-filters
|
|
405
|
+
/>
|
|
406
|
+
|
|
407
|
+
<h3 class="mt-6 mb-3">Exemple 2: Filtrage par période</h3>
|
|
408
|
+
<SyTable
|
|
409
|
+
v-model:options="optionsPeriod"
|
|
410
|
+
:headers="headersPeriod"
|
|
411
|
+
:items="itemsPeriod"
|
|
412
|
+
suffix="date-filter-period"
|
|
413
|
+
show-filters
|
|
414
|
+
/>
|
|
415
|
+
</div>
|
|
416
|
+
`,
|
|
417
|
+
}),
|
|
418
|
+
}
|
|
@@ -7,7 +7,7 @@ import * as SyTable from './SyTable.stories';
|
|
|
7
7
|
|
|
8
8
|
Le composant `SyTable` est utilisé pour afficher des données tabulaires côté client. Il s'appuie sur le composant `VDataTable` de Vuetify et offre des fonctionnalités supplémentaires comme le stockage local des options de tableau et des améliorations d'accessibilité.
|
|
9
9
|
|
|
10
|
-
<Canvas of={SyTable.Default} />
|
|
10
|
+
<Canvas story={{height: '550px'}} of={SyTable.Default} />
|
|
11
11
|
|
|
12
12
|
## API
|
|
13
13
|
|
|
@@ -25,17 +25,27 @@ Pour gérer individuellement le stockage des options pour différents tableaux,
|
|
|
25
25
|
|
|
26
26
|
Le composant permet de trier les données par colonne en cliquant sur l'en-tête de la colonne.
|
|
27
27
|
|
|
28
|
-
<Canvas of={SyTable.SortBy} />
|
|
28
|
+
<Canvas story={{height: '550px'}} of={SyTable.SortBy} />
|
|
29
29
|
|
|
30
30
|
### Filtres des colonnes
|
|
31
31
|
|
|
32
32
|
Le composant permet d'appliquer des filtres sur les colonnes. Vous pouvez définir des filtres personnalisés pour chaque colonne en utilisant la prop `show-filters`. Voir d'autres exemples de filtres dans les stories.
|
|
33
|
-
<Canvas of={SyTable.FilterByText} />
|
|
33
|
+
<Canvas story={{height: '550px'}} of={SyTable.FilterByText} />
|
|
34
34
|
|
|
35
35
|
### Resize des colonnes
|
|
36
36
|
|
|
37
37
|
Le composant peut permettre de redimensionner les colonnes en utilisant la prop `resizable-columns`. Vous pouvez activer ou désactiver cette fonctionnalité selon vos besoins.
|
|
38
|
-
<Canvas of={SyTable.ResizableColumns} />
|
|
38
|
+
<Canvas story={{height: '550px'}} of={SyTable.ResizableColumns} />
|
|
39
|
+
|
|
40
|
+
### Réorganisation des colonnes
|
|
41
|
+
|
|
42
|
+
Le composant permet de cacher ou réorganiser l'ordre des colonnes en utilisant la prop `enable-column-controls`. Vous pouvez activer ou désactiver cette fonctionnalité selon vos besoins.
|
|
43
|
+
<Canvas story={{height: '550px'}} of={SyTable.ColumnControls} />
|
|
44
|
+
|
|
45
|
+
### Selection des lignes
|
|
46
|
+
|
|
47
|
+
Le composant permet de sélectionner des lignes individuellement ou en masse. Vous pouvez activer la sélection en utilisant la prop `show-select`.
|
|
48
|
+
<Canvas story={{height: '550px'}} of={SyTable.RowSelection} />
|
|
39
49
|
|
|
40
50
|
### Accessibilité
|
|
41
51
|
|