@cnamts/synapse 1.0.6 → 1.0.7
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/{DateFilter-BlOpwEVq.js → DateFilter-CHDLz2EO.js} +1 -1
- package/dist/{NumberFilter-BPUXE4wY.js → NumberFilter-DXNQ4Uls.js} +1 -1
- package/dist/{PeriodFilter-B2yx329_.js → PeriodFilter-C8Qf3Jcn.js} +1 -1
- package/dist/{SelectFilter-CedKn1oV.js → SelectFilter-B2Ejs4Cb.js} +1 -1
- package/dist/{TextFilter-DkhJjRtR.js → TextFilter-CfR5_A1S.js} +1 -1
- package/dist/components/Amelipro/AmeliproAccordionGroup/AmeliproAccordionGroup.d.ts +116 -0
- package/dist/components/Amelipro/AmeliproAccordionGroup/types.d.ts +4 -0
- package/dist/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.d.ts +220 -0
- package/dist/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResult.d.ts +68 -0
- package/dist/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/AmeliproAccordionResultTemplate.d.ts +70 -0
- package/dist/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.d.ts +204 -0
- package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +26 -26
- package/dist/components/Amelipro/AmeliproBadge/AmeliproBadge.d.ts +59 -0
- package/dist/components/Amelipro/AmeliproBtn/AmeliproBtn.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproCaptcha/AmeliproCaptcha.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarousel.d.ts +214 -0
- package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/AmeliproCarouselItem.d.ts +70 -0
- package/dist/components/Amelipro/AmeliproCarousel/types.d.ts +7 -0
- package/dist/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.d.ts +125 -0
- package/dist/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproIllustratedDataTile/AmeliproIllustratedDataTile.d.ts +2 -2
- package/dist/components/Amelipro/AmeliproResultList/AmeliproResultList.d.ts +164 -0
- package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +27 -27
- package/dist/components/Amelipro/AmeliproStateTile/AmeliproStateTile.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproTable/AmeliproTable.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +32 -32
- package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +6 -6
- package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +7 -7
- package/dist/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproTooltips/AmeliproTooltips.d.ts +2 -2
- package/dist/components/ChipList/ChipList.d.ts +4 -0
- package/dist/components/ChipList/locales.d.ts +4 -2
- package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +8 -8
- package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +445 -8
- package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +2 -0
- package/dist/components/Customs/SyTabs/SyTabs.d.ts +71 -0
- package/dist/components/Customs/SyTabs/config.d.ts +17 -0
- package/dist/components/Customs/SyTabs/types.d.ts +11 -0
- package/dist/components/Customs/SyTextField/SyTextField.d.ts +9 -9
- package/dist/components/DataList/DataList.d.ts +1 -1
- package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +4811 -240
- package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +52 -33
- package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +23 -10
- package/dist/components/DatePicker/composables/useDateInputEditing.d.ts +1 -0
- package/dist/components/DatePicker/composables/useTodayButton.d.ts +1 -0
- package/dist/components/DialogBox/DialogBox.d.ts +219 -0
- package/dist/components/HeaderLoading/HeaderLoading.d.ts +27 -0
- package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +110 -3
- package/dist/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.d.ts +19 -1
- package/dist/components/LangBtn/LangBtn.d.ts +2 -2
- package/dist/components/NirField/NirField.d.ts +18 -18
- package/dist/components/PeriodField/PeriodField.d.ts +10766 -1620
- package/dist/components/PhoneField/PhoneField.d.ts +1866 -2
- package/dist/components/PhoneField/indicatifs.d.ts +1 -0
- package/dist/components/PhoneField/locales.d.ts +1 -0
- package/dist/components/RangeField/RangeField.d.ts +1 -1
- package/dist/components/RangeField/RangeSlider/RangeSlider.d.ts +1 -1
- package/dist/components/SubHeader/SubHeader.d.ts +8 -0
- package/dist/components/SubHeader/locales.d.ts +1 -0
- package/dist/components/SyTextArea/SyTextArea.d.ts +6 -6
- package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +5 -4
- package/dist/components/Tables/SyTable/SyTable.d.ts +5 -4
- package/dist/components/Tables/common/SyTablePagination.d.ts +448 -7
- package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +2 -2
- package/dist/components/Tables/common/types.d.ts +2 -0
- package/dist/components/index.d.ts +9 -0
- package/dist/design-system-v3.js +173 -164
- package/dist/design-system-v3.umd.cjs +288 -261
- package/dist/{main-BXPFSAB4.js → main-C66C1BkG.js} +12984 -11291
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/assets/amelipro/icons.ts +38 -11
- package/src/components/Amelipro/AmeliproAccordionGroup/AmeliproAccordionGroup.mdx +20 -0
- package/src/components/Amelipro/AmeliproAccordionGroup/AmeliproAccordionGroup.stories.ts +135 -0
- package/src/components/Amelipro/AmeliproAccordionGroup/AmeliproAccordionGroup.vue +107 -0
- package/src/components/Amelipro/AmeliproAccordionGroup/__tests__/AmeliproAccordionGroup.spec.ts +37 -0
- package/src/components/Amelipro/AmeliproAccordionGroup/__tests__/__snapshots__/AmeliproAccordionGroup.spec.ts.snap +513 -0
- package/src/components/Amelipro/AmeliproAccordionGroup/types.d.ts +4 -0
- package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.mdx +16 -0
- package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.stories.ts +300 -0
- package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.vue +288 -0
- package/src/components/Amelipro/AmeliproAccordionList/__tests__/AmeliproAccordionList.spec.ts +38 -0
- package/src/components/Amelipro/AmeliproAccordionList/__tests__/__snapshots__/AmeliproAccordionList.spec.ts.snap +1712 -0
- package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResult.mdx +19 -0
- package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResult.stories.ts +68 -0
- package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResult.vue +66 -0
- package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/AmeliproAccordionResultTemplate.vue +145 -0
- package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/__tests__/AmeliproAccordionResultTemplate.spec.ts +24 -0
- package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/__tests__/__snapshots__/AmeliproAccordionResultTemplate.spec.ts.snap +127 -0
- package/src/components/Amelipro/AmeliproAccordionResult/__tests__/AmeliproAccordionResult.spec.ts +24 -0
- package/src/components/Amelipro/AmeliproAccordionResult/__tests__/__snapshots__/AmeliproAccordionResult.spec.ts.snap +123 -0
- package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.mdx +20 -0
- package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.stories.ts +273 -0
- package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.vue +275 -0
- package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/AmeliproAccordionResultList.spec.ts +38 -0
- package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/__snapshots__/AmeliproAccordionResultList.spec.ts.snap +1593 -0
- package/src/components/Amelipro/AmeliproBadge/AmeliproBadge.mdx +15 -0
- package/src/components/Amelipro/AmeliproBadge/AmeliproBadge.stories.ts +54 -0
- package/src/components/Amelipro/AmeliproBadge/AmeliproBadge.vue +76 -0
- package/src/components/Amelipro/AmeliproBadge/__tests__/AmeliproBadge.spec.ts +20 -0
- package/src/components/Amelipro/AmeliproBadge/__tests__/__snapshots__/AmeliproBadge.spec.ts.snap +19 -0
- package/src/components/Amelipro/AmeliproCarousel/AmeliproCarousel.mdx +15 -0
- package/src/components/Amelipro/AmeliproCarousel/AmeliproCarousel.stories.ts +191 -0
- package/src/components/Amelipro/AmeliproCarousel/AmeliproCarousel.vue +263 -0
- package/src/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/AmeliproCarouselItem.vue +93 -0
- package/src/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/__tests__/AmeliproCarouselItem.spec.ts +24 -0
- package/src/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/__tests__/__snapshots__/AmeliproCarouselItem.spec.ts.snap +43 -0
- package/src/components/Amelipro/AmeliproCarousel/__tests__/AmeliproCarousel.spec.ts +40 -0
- package/src/components/Amelipro/AmeliproCarousel/__tests__/__snapshots__/AmeliproCarousel.spec.ts.snap +342 -0
- package/src/components/Amelipro/AmeliproCarousel/types.d.ts +8 -0
- package/src/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.mdx +18 -0
- package/src/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.stories.ts +67 -0
- package/src/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.vue +233 -0
- package/src/components/Amelipro/AmeliproClickableTile/tests/AmeliproClickableTile.spec.ts +21 -0
- package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +140 -0
- package/src/components/Amelipro/AmeliproHeader/AmeliproHeader.vue +7 -1
- package/src/components/Amelipro/AmeliproHeader/tests/__snapshots__/AmeliproHeader.spec.ts.snap +5 -4
- package/src/components/Amelipro/AmeliproIcon/iconList.ts +6 -0
- package/src/components/Amelipro/AmeliproPageLayout/tests/__snapshots__/AmeliproPageLayout.spec.ts.snap +5 -4
- package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.mdx +15 -0
- package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.stories.ts +264 -0
- package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.vue +231 -0
- package/src/components/Amelipro/AmeliproResultList/__tests__/AmeliproResultList.spec.ts +37 -0
- package/src/components/Amelipro/AmeliproResultList/__tests__/__snapshots__/AmeliproResultList.spec.ts.snap +434 -0
- package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +6 -5
- package/src/components/Amelipro/AmeliproTable/__tests__/__snapshots__/AmeliproTable.spec.ts.snap +23 -26
- package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.stories.ts +2 -2
- package/src/components/ChipList/Accessibilite.stories.ts +4 -0
- package/src/components/ChipList/ChipList.vue +185 -42
- package/src/components/ChipList/locales.ts +4 -2
- package/src/components/ChipList/tests/chipList.spec.ts +7 -4
- package/src/components/Customs/Selects/SelectOverview.mdx +18 -15
- package/src/components/Customs/Selects/SyBtnSelect/SyBtnSelect.stories.ts +10 -10
- package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +13 -5
- package/src/components/Customs/Selects/SySelect/SySelect.vue +108 -37
- package/src/components/Customs/SyCheckbox/SyCheckbox.mdx +3 -1
- package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +165 -0
- package/src/components/Customs/SyCheckbox/SyCheckbox.vue +28 -9
- package/src/components/Customs/SyTabs/Accessibilite.mdx +309 -0
- package/src/components/Customs/SyTabs/SyTabs.mdx +117 -0
- package/src/components/Customs/SyTabs/SyTabs.stories.ts +354 -0
- package/src/components/Customs/SyTabs/SyTabs.vue +350 -0
- package/src/components/Customs/SyTabs/config.ts +17 -0
- package/src/components/Customs/SyTabs/tests/SyTabs.spec.ts +425 -0
- package/src/components/Customs/SyTabs/types.ts +12 -0
- package/src/components/Customs/SyTextField/SyTextField.mdx +3 -0
- package/src/components/Customs/SyTextField/SyTextField.stories.ts +142 -1
- package/src/components/Customs/SyTextField/SyTextField.vue +19 -16
- package/src/components/DataList/DataList.vue +47 -49
- package/src/components/DataListGroup/DataListGroup.vue +1 -1
- package/src/components/DataListItem/DataListItem.vue +67 -63
- package/src/components/DataListItem/tests/DataListItem.spec.ts +2 -2
- package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +3 -3
- package/src/components/DatePicker/CalendarMode/DatePicker.vue +49 -13
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +412 -649
- package/src/components/DatePicker/DatePickerValidationExample/CalendarMode.stories.ts +215 -0
- package/src/components/DatePicker/DatePickerValidationExample/ComplexDatePicker.stories.ts +218 -0
- package/src/components/DatePicker/DatePickerValidationExample/DatePickerValidation.mdx +2 -0
- package/src/components/DatePicker/DatePickerValidationExample/DatePickerValidation.stories.ts +1 -1
- package/src/components/DatePicker/DatePickerValidationExample/DateTextInput.stories.ts +218 -0
- package/src/components/DatePicker/DatePickerValidationExample/MultiMode.stories.ts +281 -0
- package/src/components/DatePicker/DateTextInput/DateTextInput.events.spec.ts +17 -4
- package/src/components/DatePicker/DateTextInput/DateTextInput.range.spec.ts +111 -18
- package/src/components/DatePicker/DateTextInput/DateTextInput.spec.ts +238 -6
- package/src/components/DatePicker/DateTextInput/DateTextInput.vue +716 -757
- package/src/components/DatePicker/composables/tests/useDateInputEditing.spec.ts +4 -4
- package/src/components/DatePicker/composables/tests/useDisplayedDateString.spec.ts +17 -10
- package/src/components/DatePicker/composables/useDateInputEditing.ts +52 -22
- package/src/components/DatePicker/composables/useDisplayedDateString.ts +18 -4
- package/src/components/DatePicker/composables/useTodayButton.ts +13 -1
- package/src/components/DatePicker/utils/dateFormattingUtils.ts +79 -14
- package/src/components/DialogBox/DialogBox.stories.ts +12 -0
- package/src/components/DialogBox/DialogBox.vue +16 -11
- package/src/components/DialogBox/tests/DialogBox.spec.ts +22 -0
- package/src/components/HeaderLoading/Accessibilite.mdx +429 -8
- package/src/components/HeaderLoading/Accessibilite.stories.ts +4 -0
- package/src/components/HeaderLoading/HeaderLoading.vue +59 -0
- package/src/components/HeaderNavigationBar/HeaderNavigationBar.mdx +17 -2
- package/src/components/HeaderNavigationBar/HeaderNavigationBar.stories.ts +91 -2
- package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +37 -1
- package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +276 -21
- package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.spec.ts +2 -2
- package/src/components/NirField/NirField.mdx +3 -0
- package/src/components/NirField/NirField.vue +10 -1
- package/src/components/NirField/tests/NirField.spec.ts +81 -0
- package/src/components/PasswordField/PasswordField.mdx +3 -0
- package/src/components/PeriodField/PeriodField.mdx +2 -0
- package/src/components/PeriodField/PeriodField.stories.ts +195 -0
- package/src/components/PhoneField/Accessibilite.stories.ts +4 -0
- package/src/components/PhoneField/PhoneField.mdx +3 -1
- package/src/components/PhoneField/PhoneField.stories.ts +285 -1
- package/src/components/PhoneField/PhoneField.vue +228 -95
- package/src/components/PhoneField/indicatifs.ts +102 -102
- package/src/components/PhoneField/locales.ts +1 -0
- package/src/components/PhoneField/tests/PhoneField.spec.ts +429 -2
- package/src/components/SkipLink/SkipLink.vue +3 -31
- package/src/components/SkipLink/tests/skipLink.spec.ts +0 -21
- package/src/components/SubHeader/Accessibilite.stories.ts +8 -0
- package/src/components/SubHeader/SubHeader.mdx +1 -0
- package/src/components/SubHeader/SubHeader.stories.ts +179 -60
- package/src/components/SubHeader/SubHeader.vue +45 -15
- package/src/components/SubHeader/locales.ts +1 -0
- package/src/components/SyAlert/SyAlert.vue +6 -0
- package/src/components/Tables/SyServerTable/SyServerTable.mdx +3 -10
- package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +242 -0
- package/src/components/Tables/SyServerTable/SyServerTable.vue +29 -10
- package/src/components/Tables/SyTable/SyTable.mdx +3 -10
- package/src/components/Tables/SyTable/SyTable.stories.ts +242 -0
- package/src/components/Tables/SyTable/SyTable.vue +2 -0
- package/src/components/Tables/common/SyTablePagination.vue +13 -6
- package/src/components/Tables/common/tests/SyTablePagination.spec.ts +157 -0
- package/src/components/Tables/common/types.ts +2 -0
- package/src/components/index.ts +9 -0
- package/src/composables/useFilterable/useFilterable.ts +10 -0
- package/src/designTokens/tokens/amelipro/apColors.ts +1 -1
- package/src/designTokens/tokens/cnam/cnamSemantic.ts +3 -3
- package/src/stories/Components/Components.stories.ts +1 -1
- package/src/stories/GuideDuDev/FormValidationGuide.mdx +342 -0
- package/src/stories/Templates/Templates.stories.ts +1 -1
- package/src/utils/functions/ameliproColors/ameliproColors.ts +1 -1
- package/dist/components/DataList/locales.d.ts +0 -3
- package/src/components/DataList/locales.ts +0 -3
- package/src/components/PhoneField/tests/PhoneField.additional.spec.ts +0 -266
|
@@ -61,6 +61,15 @@ const meta = {
|
|
|
61
61
|
type: { summary: 'DataOptions', detail: '{ page: number, itemsPerPage: number, sortBy: SortOptions[], groupBy?: SortOptions[], multiSort?: boolean, mustSort?: boolean, filters?: FilterOption[] }' },
|
|
62
62
|
},
|
|
63
63
|
},
|
|
64
|
+
itemsPerPageOptions: {
|
|
65
|
+
description: 'Limite les options disponibles dans le sélecteur "itemsPerPage"',
|
|
66
|
+
control: { type: 'object' },
|
|
67
|
+
table: {
|
|
68
|
+
category: 'props',
|
|
69
|
+
type: { summary: 'number[]' },
|
|
70
|
+
defaultValue: { summary: 'undefined' },
|
|
71
|
+
},
|
|
72
|
+
},
|
|
64
73
|
suffix: {
|
|
65
74
|
description: 'Suffixe permettant de gérer individuellement le stockage des options d\'un tableau d\'une page à l\'autre. Ce prop est obligatoire pour garantir un stockage unique pour chaque tableau.',
|
|
66
75
|
control: { type: 'text' },
|
|
@@ -3359,3 +3368,236 @@ export const SlotHeaders: Story = {
|
|
|
3359
3368
|
}
|
|
3360
3369
|
},
|
|
3361
3370
|
}
|
|
3371
|
+
|
|
3372
|
+
export const ItemsPerPageOptions: Story = {
|
|
3373
|
+
parameters: {
|
|
3374
|
+
sourceCode: [
|
|
3375
|
+
{
|
|
3376
|
+
name: 'Template',
|
|
3377
|
+
code: `
|
|
3378
|
+
<template>
|
|
3379
|
+
<SyTable
|
|
3380
|
+
v-model:options="options"
|
|
3381
|
+
:headers="headers"
|
|
3382
|
+
:items="items"
|
|
3383
|
+
:items-per-page-options="[5, 10, 15]"
|
|
3384
|
+
suffix="items-per-page-options-table"
|
|
3385
|
+
/>
|
|
3386
|
+
</template>
|
|
3387
|
+
`,
|
|
3388
|
+
},
|
|
3389
|
+
{
|
|
3390
|
+
name: 'Script',
|
|
3391
|
+
code: `
|
|
3392
|
+
<script setup lang="ts">
|
|
3393
|
+
import { ref } from 'vue'
|
|
3394
|
+
import { SyTable } from '@cnamts/synapse'
|
|
3395
|
+
|
|
3396
|
+
const options = ref({
|
|
3397
|
+
itemsPerPage: 5,
|
|
3398
|
+
})
|
|
3399
|
+
|
|
3400
|
+
const headers = ref([
|
|
3401
|
+
{
|
|
3402
|
+
title: 'Nom',
|
|
3403
|
+
key: 'lastname',
|
|
3404
|
+
},
|
|
3405
|
+
{
|
|
3406
|
+
title: 'Prénom',
|
|
3407
|
+
key: 'firstname',
|
|
3408
|
+
},
|
|
3409
|
+
{
|
|
3410
|
+
title: 'Email',
|
|
3411
|
+
value: 'email',
|
|
3412
|
+
},
|
|
3413
|
+
])
|
|
3414
|
+
|
|
3415
|
+
const items = ref([
|
|
3416
|
+
{
|
|
3417
|
+
firstname: 'Virginie',
|
|
3418
|
+
lastname: 'Beauchesne',
|
|
3419
|
+
email: 'virginie.beauchesne@example.com',
|
|
3420
|
+
},
|
|
3421
|
+
{
|
|
3422
|
+
firstname: 'Simone',
|
|
3423
|
+
lastname: 'Bellefeuille',
|
|
3424
|
+
email: 'simone.bellefeuille@example.com',
|
|
3425
|
+
},
|
|
3426
|
+
{
|
|
3427
|
+
firstname: 'Étienne',
|
|
3428
|
+
lastname: 'Salois',
|
|
3429
|
+
email: 'etienne.salois@example.com',
|
|
3430
|
+
},
|
|
3431
|
+
{
|
|
3432
|
+
firstname: 'Thierry',
|
|
3433
|
+
lastname: 'Bobu',
|
|
3434
|
+
email: 'thierry.bobu@example.com',
|
|
3435
|
+
},
|
|
3436
|
+
{
|
|
3437
|
+
firstname: 'Bernadette',
|
|
3438
|
+
lastname: 'Langelier',
|
|
3439
|
+
email: 'bernadette.langelier@exemple.com',
|
|
3440
|
+
},
|
|
3441
|
+
{
|
|
3442
|
+
firstname: 'Agate',
|
|
3443
|
+
lastname: 'Roy',
|
|
3444
|
+
email: 'agate.roy@exemple.com',
|
|
3445
|
+
},
|
|
3446
|
+
{
|
|
3447
|
+
firstname: 'Théo',
|
|
3448
|
+
lastname: 'Garnier',
|
|
3449
|
+
email: 'theo.garnier@exemple.com',
|
|
3450
|
+
},
|
|
3451
|
+
{
|
|
3452
|
+
firstname: 'Clara',
|
|
3453
|
+
lastname: 'Moreau',
|
|
3454
|
+
email: 'clara.moreau@exemple.com',
|
|
3455
|
+
},
|
|
3456
|
+
{
|
|
3457
|
+
firstname: 'Lucas',
|
|
3458
|
+
lastname: 'Lefebvre',
|
|
3459
|
+
email: 'lucas.lefebre@exemple.com',
|
|
3460
|
+
},
|
|
3461
|
+
{
|
|
3462
|
+
firstname: 'Emma',
|
|
3463
|
+
lastname: 'Dubois',
|
|
3464
|
+
email: 'emma.dubois@exemple.com',
|
|
3465
|
+
},
|
|
3466
|
+
{
|
|
3467
|
+
firstname: 'Julien',
|
|
3468
|
+
lastname: 'Martin',
|
|
3469
|
+
email: 'julien.martin@exemple.com',
|
|
3470
|
+
},
|
|
3471
|
+
{
|
|
3472
|
+
firstname: 'Sophie',
|
|
3473
|
+
lastname: 'Bernard',
|
|
3474
|
+
email: 'sophie.bernard@exemple.com',
|
|
3475
|
+
},
|
|
3476
|
+
{
|
|
3477
|
+
firstname: 'Antoine',
|
|
3478
|
+
lastname: 'Lemoine',
|
|
3479
|
+
email: 'antoine.lemoine@exemple.com',
|
|
3480
|
+
},
|
|
3481
|
+
{
|
|
3482
|
+
firstname: 'Camille',
|
|
3483
|
+
lastname: 'Rousseau',
|
|
3484
|
+
email: 'camille.rousseau@exemple.com',
|
|
3485
|
+
},
|
|
3486
|
+
])
|
|
3487
|
+
</script>
|
|
3488
|
+
`,
|
|
3489
|
+
},
|
|
3490
|
+
],
|
|
3491
|
+
},
|
|
3492
|
+
args: {
|
|
3493
|
+
'headers': [
|
|
3494
|
+
{
|
|
3495
|
+
title: 'Nom',
|
|
3496
|
+
key: 'lastname',
|
|
3497
|
+
},
|
|
3498
|
+
{
|
|
3499
|
+
title: 'Prénom',
|
|
3500
|
+
key: 'firstname',
|
|
3501
|
+
},
|
|
3502
|
+
{
|
|
3503
|
+
title: 'Email',
|
|
3504
|
+
value: 'email',
|
|
3505
|
+
},
|
|
3506
|
+
],
|
|
3507
|
+
'items': [
|
|
3508
|
+
{
|
|
3509
|
+
firstname: 'Virginie',
|
|
3510
|
+
lastname: 'Beauchesne',
|
|
3511
|
+
email: 'virginie.beauchesne@example.com',
|
|
3512
|
+
},
|
|
3513
|
+
{
|
|
3514
|
+
firstname: 'Simone',
|
|
3515
|
+
lastname: 'Bellefeuille',
|
|
3516
|
+
email: 'simone.bellefeuille@example.com',
|
|
3517
|
+
},
|
|
3518
|
+
{
|
|
3519
|
+
firstname: 'Étienne',
|
|
3520
|
+
lastname: 'Salois',
|
|
3521
|
+
email: 'etienne.salois@example.com',
|
|
3522
|
+
},
|
|
3523
|
+
{
|
|
3524
|
+
firstname: 'Thierry',
|
|
3525
|
+
lastname: 'Bobu',
|
|
3526
|
+
email: 'thierry.bobu@example.com',
|
|
3527
|
+
},
|
|
3528
|
+
{
|
|
3529
|
+
firstname: 'Bernadette',
|
|
3530
|
+
lastname: 'Langelier',
|
|
3531
|
+
email: 'bernadette.langelier@exemple.com',
|
|
3532
|
+
},
|
|
3533
|
+
{
|
|
3534
|
+
firstname: 'Agate',
|
|
3535
|
+
lastname: 'Roy',
|
|
3536
|
+
email: 'agate.roy@exemple.com',
|
|
3537
|
+
},
|
|
3538
|
+
{
|
|
3539
|
+
firstname: 'Théo',
|
|
3540
|
+
lastname: 'Garnier',
|
|
3541
|
+
email: 'theo.garnier@exemple.com',
|
|
3542
|
+
},
|
|
3543
|
+
{
|
|
3544
|
+
firstname: 'Clara',
|
|
3545
|
+
lastname: 'Moreau',
|
|
3546
|
+
email: 'clara.moreau@exemple.com',
|
|
3547
|
+
},
|
|
3548
|
+
{
|
|
3549
|
+
firstname: 'Lucas',
|
|
3550
|
+
lastname: 'Lefebvre',
|
|
3551
|
+
email: 'lucas.lefebre@exemple.com',
|
|
3552
|
+
},
|
|
3553
|
+
{
|
|
3554
|
+
firstname: 'Emma',
|
|
3555
|
+
lastname: 'Dubois',
|
|
3556
|
+
email: 'emma.dubois@exemple.com',
|
|
3557
|
+
},
|
|
3558
|
+
{
|
|
3559
|
+
firstname: 'Julien',
|
|
3560
|
+
lastname: 'Martin',
|
|
3561
|
+
email: 'julien.martin@exemple.com',
|
|
3562
|
+
},
|
|
3563
|
+
{
|
|
3564
|
+
firstname: 'Sophie',
|
|
3565
|
+
lastname: 'Bernard',
|
|
3566
|
+
email: 'sophie.bernard@exemple.com',
|
|
3567
|
+
},
|
|
3568
|
+
{
|
|
3569
|
+
firstname: 'Antoine',
|
|
3570
|
+
lastname: 'Lemoine',
|
|
3571
|
+
email: 'antoine.lemoine@exemple.com',
|
|
3572
|
+
},
|
|
3573
|
+
{
|
|
3574
|
+
firstname: 'Camille',
|
|
3575
|
+
lastname: 'Rousseau',
|
|
3576
|
+
email: 'camille.rousseau@exemple.com',
|
|
3577
|
+
},
|
|
3578
|
+
],
|
|
3579
|
+
'options': {
|
|
3580
|
+
itemsPerPage: 5,
|
|
3581
|
+
},
|
|
3582
|
+
'itemsPerPageOptions': [5, 10, 15],
|
|
3583
|
+
'caption': '',
|
|
3584
|
+
'suffix': 'default-table',
|
|
3585
|
+
'density': 'default',
|
|
3586
|
+
'striped': false,
|
|
3587
|
+
'onUpdate:options': fn(),
|
|
3588
|
+
},
|
|
3589
|
+
render: (args) => {
|
|
3590
|
+
return {
|
|
3591
|
+
components: { SyTable },
|
|
3592
|
+
setup() {
|
|
3593
|
+
return { args }
|
|
3594
|
+
},
|
|
3595
|
+
template: `
|
|
3596
|
+
<SyTable
|
|
3597
|
+
v-model:options="args.options"
|
|
3598
|
+
v-bind="args"
|
|
3599
|
+
/>
|
|
3600
|
+
`,
|
|
3601
|
+
}
|
|
3602
|
+
},
|
|
3603
|
+
}
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
showSelect: false,
|
|
30
30
|
multiSort: false,
|
|
31
31
|
mustSort: false,
|
|
32
|
+
itemsPerPageOptions: undefined,
|
|
32
33
|
})
|
|
33
34
|
|
|
34
35
|
const emit = defineEmits<{
|
|
@@ -421,6 +422,7 @@
|
|
|
421
422
|
:items-per-page="itemsPerPageValue"
|
|
422
423
|
:page-count="pageCount"
|
|
423
424
|
:items-length="filteredItems.length"
|
|
425
|
+
:items-per-page-options="props.itemsPerPageOptions"
|
|
424
426
|
@update:page="page = $event"
|
|
425
427
|
@update:items-per-page="updateItemsPerPage"
|
|
426
428
|
/>
|
|
@@ -9,7 +9,10 @@
|
|
|
9
9
|
|
|
10
10
|
// Items per page options - standard options and current value
|
|
11
11
|
const itemsPerPageOptions = computed(() => {
|
|
12
|
-
|
|
12
|
+
// Use provided itemsPerPageOptions or default standard options
|
|
13
|
+
const baseOptions = props.itemsPerPageOptions || [5, 10, 25, 50, 100]
|
|
14
|
+
// Filter out -1 from base options since we'll handle it separately
|
|
15
|
+
const standardOptions = [...baseOptions.filter(option => option !== -1)]
|
|
13
16
|
|
|
14
17
|
// Add the current itemsPerPage if it's not already in the standard options
|
|
15
18
|
// and it's not -1 (which represents "Tous")
|
|
@@ -25,11 +28,14 @@
|
|
|
25
28
|
value,
|
|
26
29
|
}))
|
|
27
30
|
|
|
28
|
-
// Add "Tous" option
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
// Add "Tous" option only if not limited by itemsPerPageOptions
|
|
32
|
+
// or if explicitly allowed (by including -1 in itemsPerPageOptions)
|
|
33
|
+
if (!props.itemsPerPageOptions || props.itemsPerPageOptions.includes(-1)) {
|
|
34
|
+
options.push({
|
|
35
|
+
text: locales.pagination.all,
|
|
36
|
+
value: -1,
|
|
37
|
+
})
|
|
38
|
+
}
|
|
33
39
|
|
|
34
40
|
return options
|
|
35
41
|
})
|
|
@@ -39,6 +45,7 @@
|
|
|
39
45
|
pageCount: number
|
|
40
46
|
itemsPerPage: number
|
|
41
47
|
itemsLength: number
|
|
48
|
+
itemsPerPageOptions?: number[]
|
|
42
49
|
}>()
|
|
43
50
|
|
|
44
51
|
const emit = defineEmits<{
|
|
@@ -170,4 +170,161 @@ describe('SyTablePagination.vue', () => {
|
|
|
170
170
|
const labelText = wrapper.find('.rows-per-page-label').text()
|
|
171
171
|
expect(labelText).toContain('Lignes par page')
|
|
172
172
|
})
|
|
173
|
+
|
|
174
|
+
// Tests for itemsPerPageOptions functionality
|
|
175
|
+
describe('itemsPerPageOptions', () => {
|
|
176
|
+
it('should use default options when itemsPerPageOptions is not provided', () => {
|
|
177
|
+
const wrapper = mount(SyTablePagination, {
|
|
178
|
+
props: {
|
|
179
|
+
page: 1,
|
|
180
|
+
pageCount: 5,
|
|
181
|
+
itemsPerPage: 10,
|
|
182
|
+
itemsLength: 50,
|
|
183
|
+
},
|
|
184
|
+
global: {
|
|
185
|
+
plugins: [vuetify],
|
|
186
|
+
},
|
|
187
|
+
})
|
|
188
|
+
|
|
189
|
+
// Should have default options: 5, 10, 25, 50, 100, and "Tous" (-1)
|
|
190
|
+
const vm = wrapper.vm as unknown as { itemsPerPageOptions: Array<{ text: string, value: number }> }
|
|
191
|
+
const selectOptions = vm.itemsPerPageOptions
|
|
192
|
+
expect(selectOptions).toHaveLength(6)
|
|
193
|
+
expect(selectOptions.map(opt => opt.value)).toEqual([5, 10, 25, 50, 100, -1])
|
|
194
|
+
})
|
|
195
|
+
|
|
196
|
+
it('should limit options when itemsPerPageOptions is provided', () => {
|
|
197
|
+
const wrapper = mount(SyTablePagination, {
|
|
198
|
+
props: {
|
|
199
|
+
page: 1,
|
|
200
|
+
pageCount: 5,
|
|
201
|
+
itemsPerPage: 10,
|
|
202
|
+
itemsLength: 50,
|
|
203
|
+
itemsPerPageOptions: [5, 10, 25],
|
|
204
|
+
},
|
|
205
|
+
global: {
|
|
206
|
+
plugins: [vuetify],
|
|
207
|
+
},
|
|
208
|
+
})
|
|
209
|
+
|
|
210
|
+
// Should only have the limited options, no "Tous" option
|
|
211
|
+
const vm = wrapper.vm as unknown as { itemsPerPageOptions: Array<{ text: string, value: number }> }
|
|
212
|
+
const selectOptions = vm.itemsPerPageOptions
|
|
213
|
+
expect(selectOptions).toHaveLength(3)
|
|
214
|
+
expect(selectOptions.map(opt => opt.value)).toEqual([5, 10, 25])
|
|
215
|
+
expect(selectOptions.map(opt => opt.text)).toEqual(['5', '10', '25'])
|
|
216
|
+
})
|
|
217
|
+
|
|
218
|
+
it('should include "Tous" option when explicitly allowed in itemsPerPageOptions', () => {
|
|
219
|
+
const wrapper = mount(SyTablePagination, {
|
|
220
|
+
props: {
|
|
221
|
+
page: 1,
|
|
222
|
+
pageCount: 5,
|
|
223
|
+
itemsPerPage: 10,
|
|
224
|
+
itemsLength: 50,
|
|
225
|
+
itemsPerPageOptions: [5, 10, 25, -1],
|
|
226
|
+
},
|
|
227
|
+
global: {
|
|
228
|
+
plugins: [vuetify],
|
|
229
|
+
},
|
|
230
|
+
})
|
|
231
|
+
|
|
232
|
+
// Should have the limited options plus "Tous"
|
|
233
|
+
const vm = wrapper.vm as unknown as { itemsPerPageOptions: Array<{ text: string, value: number }> }
|
|
234
|
+
const selectOptions = vm.itemsPerPageOptions
|
|
235
|
+
expect(selectOptions).toHaveLength(4)
|
|
236
|
+
expect(selectOptions.map(opt => opt.value)).toEqual([5, 10, 25, -1])
|
|
237
|
+
|
|
238
|
+
// Check that the last option is "Tous"
|
|
239
|
+
const lastOption = selectOptions[selectOptions.length - 1]
|
|
240
|
+
expect(lastOption.value).toBe(-1)
|
|
241
|
+
expect(lastOption.text).toBe('Tous')
|
|
242
|
+
})
|
|
243
|
+
|
|
244
|
+
it('should add current itemsPerPage to options if not already included', () => {
|
|
245
|
+
const wrapper = mount(SyTablePagination, {
|
|
246
|
+
props: {
|
|
247
|
+
page: 1,
|
|
248
|
+
pageCount: 5,
|
|
249
|
+
itemsPerPage: 15, // Not in the itemsPerPageOptions
|
|
250
|
+
itemsLength: 50,
|
|
251
|
+
itemsPerPageOptions: [5, 10, 25],
|
|
252
|
+
},
|
|
253
|
+
global: {
|
|
254
|
+
plugins: [vuetify],
|
|
255
|
+
},
|
|
256
|
+
})
|
|
257
|
+
|
|
258
|
+
// Should include the current itemsPerPage value and sort numerically
|
|
259
|
+
const vm = wrapper.vm as unknown as { itemsPerPageOptions: Array<{ text: string, value: number }> }
|
|
260
|
+
const selectOptions = vm.itemsPerPageOptions
|
|
261
|
+
expect(selectOptions).toHaveLength(4)
|
|
262
|
+
expect(selectOptions.map(opt => opt.value)).toEqual([5, 10, 15, 25])
|
|
263
|
+
})
|
|
264
|
+
|
|
265
|
+
it('should not add current itemsPerPage if it is -1 (Tous)', () => {
|
|
266
|
+
const wrapper = mount(SyTablePagination, {
|
|
267
|
+
props: {
|
|
268
|
+
page: 1,
|
|
269
|
+
pageCount: 5,
|
|
270
|
+
itemsPerPage: -1, // "Tous" option
|
|
271
|
+
itemsLength: 50,
|
|
272
|
+
itemsPerPageOptions: [5, 10, 25],
|
|
273
|
+
},
|
|
274
|
+
global: {
|
|
275
|
+
plugins: [vuetify],
|
|
276
|
+
},
|
|
277
|
+
})
|
|
278
|
+
|
|
279
|
+
// Should not add -1 to the options since itemsPerPageOptions doesn't include it
|
|
280
|
+
const vm = wrapper.vm as unknown as { itemsPerPageOptions: Array<{ text: string, value: number }> }
|
|
281
|
+
const selectOptions = vm.itemsPerPageOptions
|
|
282
|
+
expect(selectOptions).toHaveLength(3)
|
|
283
|
+
expect(selectOptions.map(opt => opt.value)).toEqual([5, 10, 25])
|
|
284
|
+
expect(selectOptions.find(opt => opt.value === -1)).toBeUndefined()
|
|
285
|
+
})
|
|
286
|
+
|
|
287
|
+
it('should work with very restrictive options', () => {
|
|
288
|
+
const wrapper = mount(SyTablePagination, {
|
|
289
|
+
props: {
|
|
290
|
+
page: 1,
|
|
291
|
+
pageCount: 5,
|
|
292
|
+
itemsPerPage: 5,
|
|
293
|
+
itemsLength: 50,
|
|
294
|
+
itemsPerPageOptions: [5], // Only one option
|
|
295
|
+
},
|
|
296
|
+
global: {
|
|
297
|
+
plugins: [vuetify],
|
|
298
|
+
},
|
|
299
|
+
})
|
|
300
|
+
|
|
301
|
+
// Should only have one option
|
|
302
|
+
const vm = wrapper.vm as unknown as { itemsPerPageOptions: Array<{ text: string, value: number }> }
|
|
303
|
+
const selectOptions = vm.itemsPerPageOptions
|
|
304
|
+
expect(selectOptions).toHaveLength(1)
|
|
305
|
+
expect(selectOptions.map(opt => opt.value)).toEqual([5])
|
|
306
|
+
expect(selectOptions.map(opt => opt.text)).toEqual(['5'])
|
|
307
|
+
})
|
|
308
|
+
|
|
309
|
+
it('should handle empty itemsPerPageOptions array', () => {
|
|
310
|
+
const wrapper = mount(SyTablePagination, {
|
|
311
|
+
props: {
|
|
312
|
+
page: 1,
|
|
313
|
+
pageCount: 5,
|
|
314
|
+
itemsPerPage: 10,
|
|
315
|
+
itemsLength: 50,
|
|
316
|
+
itemsPerPageOptions: [], // Empty array
|
|
317
|
+
},
|
|
318
|
+
global: {
|
|
319
|
+
plugins: [vuetify],
|
|
320
|
+
},
|
|
321
|
+
})
|
|
322
|
+
|
|
323
|
+
// Should only include the current itemsPerPage since base options are empty
|
|
324
|
+
const vm = wrapper.vm as unknown as { itemsPerPageOptions: Array<{ text: string, value: number }> }
|
|
325
|
+
const selectOptions = vm.itemsPerPageOptions
|
|
326
|
+
expect(selectOptions).toHaveLength(1)
|
|
327
|
+
expect(selectOptions.map(opt => opt.value)).toEqual([10])
|
|
328
|
+
})
|
|
329
|
+
})
|
|
173
330
|
})
|
|
@@ -76,6 +76,7 @@ export type SyTableProps = {
|
|
|
76
76
|
showSelect?: boolean
|
|
77
77
|
multiSort?: boolean
|
|
78
78
|
mustSort?: boolean
|
|
79
|
+
itemsPerPageOptions?: number[]
|
|
79
80
|
}
|
|
80
81
|
|
|
81
82
|
export type SyServerTableProps = {
|
|
@@ -93,4 +94,5 @@ export type SyServerTableProps = {
|
|
|
93
94
|
showSelect?: boolean
|
|
94
95
|
multiSort?: boolean
|
|
95
96
|
mustSort?: boolean
|
|
97
|
+
itemsPerPageOptions?: number[]
|
|
96
98
|
}
|
package/src/components/index.ts
CHANGED
|
@@ -28,6 +28,7 @@ export { default as HeaderNavigationBar } from './HeaderNavigationBar/HeaderNavi
|
|
|
28
28
|
export { default as SkipLink } from './SkipLink/SkipLink.vue'
|
|
29
29
|
export { default as SocialMediaLinks } from './SocialMediaLinks/SocialMediaLinks.vue'
|
|
30
30
|
export { default as SyPagination } from './Customs/SyPagination/SyPagination.vue'
|
|
31
|
+
export { default as SyTabs } from './Customs/SyTabs/SyTabs.vue'
|
|
31
32
|
|
|
32
33
|
// ===========================
|
|
33
34
|
// Boutons
|
|
@@ -117,15 +118,22 @@ export { default as NotFoundPage } from './NotFoundPage/NotFoundPage.vue'
|
|
|
117
118
|
// Amelipro
|
|
118
119
|
// ===========================
|
|
119
120
|
export { default as AmeliproAccordion } from './Amelipro/AmeliproAccordion/AmeliproAccordion.vue'
|
|
121
|
+
export { default as AmeliproAccordionGroup } from './Amelipro/AmeliproAccordionGroup/AmeliproAccordionGroup.vue'
|
|
122
|
+
export { default as AmeliproAccordionList } from './Amelipro/AmeliproAccordionList/AmeliproAccordionList.vue'
|
|
123
|
+
export { default as AmeliproAccordionResult } from './Amelipro/AmeliproAccordionResult/AmeliproAccordionResult.vue'
|
|
124
|
+
export { default as AmeliproAccordionResultList } from './Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.vue'
|
|
120
125
|
export { default as AmeliproAutoCompleteField } from './Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.vue'
|
|
126
|
+
export { default as AmeliproBadge } from './Amelipro/AmeliproBadge/AmeliproBadge.vue'
|
|
121
127
|
export { default as AmeliproBreadcrumb } from './Amelipro/AmeliproBreadcrumb/AmeliproBreadcrumb.vue'
|
|
122
128
|
export { default as AmeliproBtn } from './Amelipro/AmeliproBtn/AmeliproBtn.vue'
|
|
123
129
|
export { default as AmeliproCard } from './Amelipro/AmeliproCard/AmeliproCard.vue'
|
|
124
130
|
export { default as AmeliproCallback } from './Amelipro/AmeliproCallback/AmeliproCallback.vue'
|
|
131
|
+
export { default as AmeliproCarousel } from './Amelipro/AmeliproCarousel/AmeliproCarousel.vue'
|
|
125
132
|
export { default as AmeliproCaptcha } from './Amelipro/AmeliproCaptcha/AmeliproCaptcha.vue'
|
|
126
133
|
export { default as AmeliproCheckbox } from './Amelipro/AmeliproCheckbox/AmeliproCheckbox.vue'
|
|
127
134
|
export { default as AmeliproCheckboxGroup } from './Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.vue'
|
|
128
135
|
export { default as AmeliproChips } from './Amelipro/AmeliproChips/AmeliproChips.vue'
|
|
136
|
+
export { default as AmeliproClickableTile } from './Amelipro/AmeliproClickableTile/AmeliproClickableTile.vue'
|
|
129
137
|
export { default as AmeliproCustomSelector } from './Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.vue'
|
|
130
138
|
export { default as AmeliproDialog } from './Amelipro/AmeliproDialog/AmeliproDialog.vue'
|
|
131
139
|
export { default as AmeliproDisclosure } from './Amelipro/AmeliproDisclosure/AmeliproDisclosure.vue'
|
|
@@ -145,6 +153,7 @@ export { default as AmeliproPageLayout } from './Amelipro/AmeliproPageLayout/Ame
|
|
|
145
153
|
export { default as AmeliproPagination } from './Amelipro/AmeliproPagination/AmeliproPagination.vue'
|
|
146
154
|
export { default as AmeliproPatientBanner } from './Amelipro/AmeliproPatientBanner/AmeliproPatientBanner.vue'
|
|
147
155
|
export { default as AmeliproRadioGroup } from './Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.vue'
|
|
156
|
+
export { default as AmeliproResultList } from './Amelipro/AmeliproResultList/AmeliproResultList.vue'
|
|
148
157
|
export { default as AmeliproSelect } from './Amelipro/AmeliproSelect/AmeliproSelect.vue'
|
|
149
158
|
export { default as AmeliproStateTile } from './Amelipro/AmeliproStateTile/AmeliproStateTile.vue'
|
|
150
159
|
export { default as AmeliproStatus } from './Amelipro/AmeliproStatus/AmeliproStatus.vue'
|
|
@@ -173,6 +173,16 @@ export default function useFilterable(model: Ref<FilterProp>, emits) {
|
|
|
173
173
|
return
|
|
174
174
|
}
|
|
175
175
|
|
|
176
|
+
// Handle single select objects (VSelect with return-object but without multiple)
|
|
177
|
+
const hasSelectStructure = (typedValue.title !== undefined || typedValue.text !== undefined) && typedValue.value !== undefined
|
|
178
|
+
if (hasSelectStructure) {
|
|
179
|
+
// For single select objects, clear the entire value
|
|
180
|
+
filter.value = undefined
|
|
181
|
+
updateValue()
|
|
182
|
+
return
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// For other object types, delete the specific property
|
|
176
186
|
delete typedValue[chipValue]
|
|
177
187
|
filter.value = typedValue
|
|
178
188
|
}
|
|
@@ -36,7 +36,7 @@ export const cnamSemanticTokens = {
|
|
|
36
36
|
accentOnDark: '#ffffff',
|
|
37
37
|
info: '#0c419a',
|
|
38
38
|
success: '#224e2d',
|
|
39
|
-
warning: '#
|
|
39
|
+
warning: '#906b15',
|
|
40
40
|
error: '#b33f2e',
|
|
41
41
|
onDark: 'rgba(255, 255, 255, 0.7)',
|
|
42
42
|
disabled: '#dddede',
|
|
@@ -49,7 +49,7 @@ export const cnamSemanticTokens = {
|
|
|
49
49
|
subdued: '#545859',
|
|
50
50
|
info: '#0c419a',
|
|
51
51
|
success: '#224e2d',
|
|
52
|
-
warning: '#
|
|
52
|
+
warning: '#906b15',
|
|
53
53
|
error: '#b33f2e',
|
|
54
54
|
disabled: '#989b9b',
|
|
55
55
|
onDark: '#ffffff',
|
|
@@ -64,7 +64,7 @@ export const cnamSemanticTokens = {
|
|
|
64
64
|
accentContrasted: '#07275c',
|
|
65
65
|
info: '#0c419a',
|
|
66
66
|
success: '#224e2d',
|
|
67
|
-
warning: '#
|
|
67
|
+
warning: '#906b15',
|
|
68
68
|
error: '#b33f2e',
|
|
69
69
|
onDark: '#ffffff',
|
|
70
70
|
disabled: '#989b9b',
|
|
@@ -10,7 +10,7 @@ export const Header: StoryObj = {
|
|
|
10
10
|
return {
|
|
11
11
|
template: `
|
|
12
12
|
<div class="mb-8">
|
|
13
|
-
<h1 class="
|
|
13
|
+
<h1 class="mb-4">Composants</h1>
|
|
14
14
|
<p class="text-body-1">Découvrez notre collection de composants réutilisables conçus pour créer des interfaces utilisateur cohérentes et accessibles.</p>
|
|
15
15
|
</div>
|
|
16
16
|
`,
|