@cnamts/synapse 1.0.14 → 1.0.16
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 +0 -0
- package/dist/{DateFilter-isr8mXVb.js → DateFilter-DSwJUvBu.js} +12 -12
- package/dist/{NumberFilter-BOe7DqWX.js → NumberFilter-CwsbYyz4.js} +1 -1
- package/dist/{PeriodFilter-WTprpO40.js → PeriodFilter-csnEZU30.js} +1 -1
- package/dist/{SelectFilter-CqlG5dmI.js → SelectFilter-Bd5fndzR.js} +1 -1
- package/dist/{TextFilter-fVW5bsRw.js → TextFilter-B6gxzq2a.js} +1 -1
- package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +2836 -2845
- package/dist/components/Amelipro/AmeliproCallback/AmeliproCallback.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarousel.d.ts +7 -7
- package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/AmeliproCarouselItem.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproFooter/AmeliproFooter.d.ts +18 -18
- package/dist/components/Amelipro/AmeliproHeader/AmeliproHeader.d.ts +9 -9
- package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproIcon/AmeliproIcon.d.ts +3 -1
- package/dist/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.d.ts +5 -3
- package/dist/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproMenu/AmeliproMenu.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproMultipleFoldingCard/AmeliproMultipleFoldingCard.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/AmeliproPaginationBtn.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproPatientBanner/AmeliproPatientBanner.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.d.ts +9 -0
- package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.d.ts +1288 -1284
- package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +1936 -1930
- package/dist/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +2838 -2865
- package/dist/components/Amelipro/AmeliproStateTile/AmeliproStateTile.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +2843 -2870
- package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +397 -397
- package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +642 -640
- package/dist/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.d.ts +233 -5
- package/dist/components/Amelipro/AmeliproTransmission/AmeliproTransmission.d.ts +9 -9
- package/dist/components/Captcha/CaptchaHelpdesk.d.ts +6 -0
- package/dist/components/CookieBanner/CookieBanner.d.ts +117 -119
- package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +484 -484
- package/dist/components/CookiesSelection/CookiesSelection.d.ts +104 -106
- package/dist/components/Customs/Selects/SelectBtnField/SelectBtnField.d.ts +14 -10
- package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +118 -129
- package/dist/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.d.ts +1 -3
- package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +1 -1
- package/dist/components/Customs/SyForm/SyForm.d.ts +60 -53
- package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +88 -0
- package/dist/components/Customs/SyRadioGroup/locales.d.ts +3 -0
- package/dist/components/Customs/SyTextField/SyTextField.d.ts +644 -642
- package/dist/components/DataList/DataList.d.ts +6 -1
- package/dist/components/DataListGroup/DataListGroup.d.ts +14 -2
- package/dist/components/DataListItem/DataListItem.d.ts +3 -0
- package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +2988 -3100
- package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +1458 -1558
- package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +655 -651
- package/dist/components/DatePicker/composables/index.d.ts +4 -0
- package/dist/components/DatePicker/composables/useAsteriskDisplay.d.ts +1 -1
- package/dist/components/DatePicker/composables/useCalendarKeyboardNavigation.d.ts +11 -0
- package/dist/components/DatePicker/composables/useDatePickerState.d.ts +25 -0
- package/dist/components/DatePicker/composables/useDateTextField.d.ts +61 -0
- package/dist/components/DatePicker/composables/useHolidayHighlighting.d.ts +15 -0
- package/dist/components/DatePicker/constants/messages.d.ts +0 -1
- package/dist/components/DialogBox/DialogBox.d.ts +175 -177
- package/dist/components/FilterSideBar/FilterSideBar.d.ts +161 -171
- package/dist/components/FooterBar/FooterBar.d.ts +5 -5
- package/dist/components/HeaderBar/HeaderBar.d.ts +2 -2
- package/dist/components/HeaderBar/HeaderLogo/HeaderLogo.d.ts +1 -1
- package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +1 -1
- package/dist/components/HeaderToolbar/HeaderToolbar.d.ts +234 -258
- package/dist/components/LangBtn/LangBtn.d.ts +173 -179
- package/dist/components/LogoBrandSection/LogoBrandSection.d.ts +1 -1
- package/dist/components/LunarCalendar/LunarCalendar.d.ts +29 -0
- package/dist/components/LunarCalendar/useLunarCalendarRules.d.ts +5 -0
- package/dist/components/LunarCalendar/useLunarCalendarValidation.d.ts +13 -0
- package/dist/components/NirField/NirField.d.ts +1296 -1292
- package/dist/components/PaginatedTable/PaginatedTable.d.ts +1 -1
- package/dist/components/PeriodField/PeriodField.d.ts +5844 -6068
- package/dist/components/PhoneField/PhoneField.d.ts +645 -643
- package/dist/components/SyAlert/SyAlert.d.ts +31 -31
- package/dist/components/SyTextArea/SyTextArea.d.ts +395 -395
- package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +193 -227
- package/dist/components/Tables/SyTable/SyTable.d.ts +192 -226
- package/dist/components/Tables/common/SyTableFilter.d.ts +1 -1
- package/dist/components/Tables/common/SyTablePagination.d.ts +118 -129
- package/dist/components/Tables/common/TableHeader.d.ts +52 -2
- package/dist/components/Tables/common/filters/DateFilter.d.ts +1 -1
- package/dist/components/Tables/common/filters/NumberFilter.d.ts +1 -1
- package/dist/components/Tables/common/filters/PeriodFilter.d.ts +1 -1
- package/dist/components/Tables/common/filters/SelectFilter.d.ts +1 -1
- package/dist/components/Tables/common/filters/TextFilter.d.ts +1 -1
- package/dist/components/Tables/common/locales.d.ts +1 -0
- package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +86 -90
- package/dist/components/Tables/common/tableFilterUtils.d.ts +2 -2
- package/dist/components/Tables/common/types.d.ts +3 -2
- package/dist/components/Tables/common/useTableCheckbox.d.ts +3 -2
- package/dist/components/Tables/common/useTableFilter.d.ts +1 -1
- package/dist/components/Tables/common/useTableItems.d.ts +6 -8
- package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +18 -18
- package/dist/components/index.d.ts +2 -0
- package/dist/design-system-v3.js +101 -98
- package/dist/design-system-v3.umd.cjs +25 -33
- package/dist/main-DkZZpa3S.js +35197 -0
- package/dist/style.css +1 -1
- package/dist/utils/formatNir/formatNir.d.ts +2 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/insertAt.d.ts +1 -0
- package/dist/utils/rules/validateDateValue.d.ts +14 -0
- package/dist/vuetifyConfig.d.ts +6 -6
- package/package.json +4 -4
- package/src/assets/tokens.scss +2 -0
- package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/__tests__/__snapshots__/AmeliproAccordionTemplate.spec.ts.snap +1 -18
- package/src/components/Amelipro/AmeliproAccordion/__tests__/AmeliproAccordion.spec.ts +178 -9
- package/src/components/Amelipro/AmeliproAccordion/__tests__/__snapshots__/AmeliproAccordion.spec.ts.snap +28 -121
- package/src/components/Amelipro/AmeliproAccordionFrieze/__tests__/__snapshots__/AmeliproAccordionFrieze.spec.ts.snap +15 -270
- package/src/components/Amelipro/AmeliproAccordionList/__tests__/__snapshots__/AmeliproAccordionList.spec.ts.snap +12 -194
- package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/__tests__/__snapshots__/AmeliproAccordionResultTemplate.spec.ts.snap +1 -18
- package/src/components/Amelipro/AmeliproAccordionResult/__tests__/__snapshots__/AmeliproAccordionResult.spec.ts.snap +1 -18
- package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/__snapshots__/AmeliproAccordionResultList.spec.ts.snap +12 -194
- package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.stories.ts +9 -9
- package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.vue +5 -4
- package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/AmeliproAutoCompleteField.spec.ts +6 -6
- package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/__snapshots__/AmeliproAutoCompleteField.spec.ts.snap +2 -0
- package/src/components/Amelipro/AmeliproBadge/__tests__/AmeliproBadge.spec.ts +135 -9
- package/src/components/Amelipro/AmeliproBadge/__tests__/__snapshots__/AmeliproBadge.spec.ts.snap +20 -5
- package/src/components/Amelipro/AmeliproBreadcrumb/__tests__/AmeliproBreadcrumb.spec.ts +195 -28
- package/src/components/Amelipro/AmeliproBreadcrumb/__tests__/__snapshots__/AmeliproBreadcrumb.spec.ts.snap +193 -124
- package/src/components/Amelipro/AmeliproCaptcha/AmeliproCaptcha.vue +1 -1
- package/src/components/Amelipro/AmeliproCaptcha/__tests__/AmeliproCaptcha.spec.ts +364 -12
- package/src/components/Amelipro/AmeliproCaptcha/__tests__/__snapshots__/AmeliproCaptcha.spec.ts.snap +30 -390
- package/src/components/Amelipro/AmeliproCarousel/__tests__/__snapshots__/AmeliproCarousel.spec.ts.snap +4 -36
- package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.stories.ts +10 -10
- package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.vue +7 -7
- package/src/components/Amelipro/AmeliproCheckbox/__tests__/AmeliproCheckbox.spec.ts +5 -5
- package/src/components/Amelipro/AmeliproCheckbox/__tests__/__snapshots__/AmeliproCheckbox.spec.ts.snap +1 -1
- package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.stories.ts +7 -6
- package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.vue +6 -6
- package/src/components/Amelipro/AmeliproCheckboxGroup/__tests__/AmeliproCheckboxGroup.spec.ts +6 -6
- package/src/components/Amelipro/AmeliproCheckboxGroup/__tests__/__snapshots__/AmeliproCheckboxGroup.spec.ts.snap +2 -2
- package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +2 -43
- package/src/components/Amelipro/AmeliproContentLayout/__tests__/AmeliproContentLayout.spec.ts +80 -9
- package/src/components/Amelipro/AmeliproContentLayout/__tests__/__snapshots__/AmeliproContentLayout.spec.ts.snap +25 -4
- package/src/components/Amelipro/AmeliproCopyBtn/__tests__/__snapshots__/AmeliproCopyBtn.spec.ts.snap +1 -13
- package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.stories.ts +7 -6
- package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.vue +5 -5
- package/src/components/Amelipro/AmeliproCustomSelector/__tests__/AmeliproCustomSelector.spec.ts +187 -39
- package/src/components/Amelipro/AmeliproCustomSelector/__tests__/__snapshots__/AmeliproCustomSelector.spec.ts.snap +147 -147
- package/src/components/Amelipro/AmeliproDentalChart/tests/__snapshots__/AmeliproDentalChart.spec.ts.snap +1 -1
- package/src/components/Amelipro/AmeliproDialog/__tests__/__snapshots__/AmeliproDialog.spec.ts.snap +0 -2
- package/src/components/Amelipro/AmeliproErrorTemplate/__tests__/AmeliproErrorTemplate.spec.ts +160 -20
- package/src/components/Amelipro/AmeliproErrorTemplate/__tests__/__snapshots__/AmeliproErrorTemplate.spec.ts.snap +34 -177
- package/src/components/Amelipro/AmeliproFilePreview/AmeliproFilePreview.vue +1 -0
- package/src/components/Amelipro/AmeliproFilePreview/__tests__/AmeliproFilePreview.spec.ts +248 -19
- package/src/components/Amelipro/AmeliproFilePreview/__tests__/__snapshots__/AmeliproFilePreview.spec.ts.snap +34 -203
- package/src/components/Amelipro/AmeliproFirstLogin/__tests__/__snapshots__/AmeliproFirstLogin.spec.ts.snap +6 -144
- package/src/components/Amelipro/AmeliproIcon/AmeliproIcon.vue +20 -2
- package/src/components/Amelipro/AmeliproIcon/__tests__/__snapshots__/AmeliproIcon.spec.ts.snap +1 -25
- package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.stories.ts +5 -5
- package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.vue +6 -6
- package/src/components/Amelipro/AmeliproIllustratedRadioGroup/__tests__/AmeliproIllustratedRadioGroup.spec.ts +22 -22
- package/src/components/Amelipro/AmeliproIllustratedRadioGroup/__tests__/__snapshots__/AmeliproIllustratedRadioGroup.spec.ts.snap +2 -2
- package/src/components/Amelipro/AmeliproMultipleFoldingCard/__tests__/AmeliproMultipleFoldingCard.spec.ts +304 -0
- package/src/components/Amelipro/AmeliproMultipleFoldingCard/__tests__/__snapshots__/AmeliproMultipleFoldingCard.spec.ts.snap +373 -0
- package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.stories.ts +2 -0
- package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.vue +28 -2
- package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +9 -173
- package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/AmeliproPatientLoginForm.vue +1 -1
- package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.vue +162 -72
- package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/AmeliproPostalAddressCityRow.spec.ts +2 -2
- package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/__snapshots__/AmeliproPostalAddressCityRow.spec.ts.snap +6 -39
- package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.stories.ts +3 -3
- package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.vue +8 -8
- package/src/components/Amelipro/AmeliproPostalAddressField/{tests → __tests__}/AmeliproPostalAddressField.spec.ts +2 -2
- package/src/components/Amelipro/AmeliproPostalAddressField/{tests → __tests__}/__snapshots__/AmeliproPostalAddressField.spec.ts.snap +11 -52
- package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.stories.ts +7 -7
- package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.vue +8 -8
- package/src/components/Amelipro/AmeliproRadioGroup/__tests__/AmeliproRadioGroup.spec.ts +6 -6
- package/src/components/Amelipro/AmeliproRadioGroup/__tests__/__snapshots__/AmeliproRadioGroup.spec.ts.snap +2 -2
- package/src/components/Amelipro/AmeliproResultList/__tests__/__snapshots__/AmeliproResultList.spec.ts.snap +2 -14
- package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.stories.ts +7 -7
- package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.vue +4 -4
- package/src/components/Amelipro/AmeliproSelect/__tests__/AmeliproSelect.spec.ts +12 -12
- package/src/components/Amelipro/AmeliproStepper/AmeliproStepper.vue +2 -2
- package/src/components/Amelipro/AmeliproStepper/__tests__/__snapshots__/AmeliproStepper.spec.ts.snap +2 -2
- package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +2 -2
- package/src/components/Amelipro/AmeliproTable/__tests__/AmeliproTable.spec.ts +463 -68
- package/src/components/Amelipro/AmeliproTable/__tests__/__snapshots__/AmeliproTable.spec.ts.snap +176 -511
- package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.stories.ts +6 -6
- package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.vue +4 -4
- package/src/components/Amelipro/AmeliproTextArea/__tests__/AmeliproTextArea.spec.ts +3 -3
- package/src/components/Amelipro/AmeliproTextArea/__tests__/__snapshots__/AmeliproTextArea.spec.ts.snap +1 -2
- package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.stories.ts +10 -10
- package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.vue +4 -4
- package/src/components/Amelipro/AmeliproTextField/__tests__/AmeliproTextField.spec.ts +5 -5
- package/src/components/Amelipro/AmeliproTextField/tests/__snapshots__/AmeliproTextField.spec.ts.snap +162 -0
- package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.stories.ts +44 -0
- package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.vue +79 -1
- package/src/components/Amelipro/AmeliproTooltips/__tests__/__snapshots__/AmeliproTooltips.spec.ts.snap +0 -2
- package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.stories.ts +2 -2
- package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.vue +21 -7
- package/src/components/Amelipro/AmeliproUpload/__tests__/AmeliproUpload.spec.ts +252 -44
- package/src/components/Amelipro/AmeliproUpload/__tests__/__snapshots__/AmeliproUpload.spec.ts.snap +166 -0
- package/src/components/Amelipro/ServiceMenu/ServiceBtn/__tests__/ServiceBtn.spec.ts +137 -0
- package/src/components/Amelipro/ServiceMenu/ServiceBtn/__tests__/__snapshots__/ServiceBtn.spec.ts.snap +56 -0
- package/src/components/Amelipro/ServiceMenu/ServiceList/__tests__/ServiceList.spec.ts +116 -0
- package/src/components/Amelipro/ServiceMenu/ServiceList/__tests__/__snapshots__/ServiceList.spec.ts.snap +58 -0
- package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/__tests__/ServiceMenuContent.spec.ts +118 -0
- package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/__tests__/__snapshots__/ServiceMenuContent.spec.ts.snap +151 -0
- package/src/components/Amelipro/ServiceMenu/__tests__/ServiceMenu.spec.ts +259 -0
- package/src/components/Amelipro/ServiceMenu/__tests__/__snapshots__/ServiceMenu.spec.ts.snap +102 -0
- package/src/components/Amelipro/StructureMenu/StructureBtn/__tests__/StructureBtn.spec.ts +90 -0
- package/src/components/Amelipro/StructureMenu/StructureBtn/__tests__/__snapshots__/StructureBtn.spec.ts.snap +63 -0
- package/src/components/Amelipro/StructureMenu/StructureItem/__tests__/StructureItem.spec.ts +133 -0
- package/src/components/Amelipro/StructureMenu/StructureItem/__tests__/__snapshots__/StructureItem.spec.ts.snap +143 -0
- package/src/components/Amelipro/StructureMenu/StructureList/__tests__/StructureList.spec.ts +190 -0
- package/src/components/Amelipro/StructureMenu/StructureList/__tests__/__snapshots__/StructureList.spec.ts.snap +109 -0
- package/src/components/Amelipro/StructureMenu/StructureTabs/__tests__/StructureTabs.spec.ts +159 -0
- package/src/components/Amelipro/StructureMenu/StructureTabs/__tests__/__snapshots__/StructureTabs.spec.ts.snap +103 -0
- package/src/components/Amelipro/StructureMenu/__tests__/StructureMenu.spec.ts +165 -0
- package/src/components/Amelipro/StructureMenu/__tests__/__snapshots__/StructureMenu.spec.ts.snap +39 -0
- package/src/components/Amelipro/UserInformationSummary/__tests__/UserInformationSummary.spec.ts +140 -0
- package/src/components/Amelipro/UserInformationSummary/{tests → __tests__}/__snapshots__/UserInformationSummary.spec.ts.snap +17 -24
- package/src/components/Amelipro/UserMenu/UserMenu.stories.ts +3 -3
- package/src/components/Amelipro/UserMenu/UserMenu.vue +2 -2
- package/src/components/Amelipro/UserMenu/UserMenuDetails/__tests__/UserMenuDetails.spec.ts +150 -0
- package/src/components/Amelipro/UserMenu/UserMenuDetails/__tests__/__snapshots__/UserMenuDetails.spec.ts.snap +117 -0
- package/src/components/Amelipro/UserMenu/__tests__/UserMenu.spec.ts +141 -0
- package/src/components/Amelipro/UserMenu/__tests__/__snapshots__/UserMenu.spec.ts.snap +103 -0
- package/src/components/Captcha/Captcha.vue +9 -24
- package/src/components/Captcha/CaptchaHelpdesk.vue +42 -0
- package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +256 -268
- package/src/components/CopyBtn/tests/__snapshots__/CopyBtn.spec.ts.snap +0 -1
- package/src/components/Customs/Selects/SelectBtnField/Accessibilite.stories.ts +4 -0
- package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.stories.ts +154 -82
- package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +229 -125
- package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +12 -12
- package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/SelectBtnField.spec.ts.snap +344 -826
- package/src/components/Customs/Selects/SySelect/SySelect.vue +215 -169
- package/src/components/Customs/Selects/SySelect/composables/tests/useSySelectKeyboard.spec.ts +4 -2
- package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +7 -9
- package/src/components/Customs/SyForm/SyForm.mdx +47 -7
- package/src/components/Customs/SyForm/SyForm.stories.ts +38 -34
- package/src/components/Customs/SyForm/SyForm.vue +27 -6
- package/src/components/Customs/SyRadioGroup/Accessibilite.mdx +263 -0
- package/src/components/Customs/SyRadioGroup/SyRadioGroup.mdx +37 -0
- package/src/components/Customs/SyRadioGroup/SyRadioGroup.stories.ts +665 -0
- package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +324 -0
- package/src/components/Customs/SyRadioGroup/locales.ts +3 -0
- package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.spec.ts +135 -0
- package/src/components/Customs/SyTabs/SyTabs.vue +1 -1
- package/src/components/Customs/SyTextField/SyTextField.vue +225 -194
- package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +32 -2
- package/src/components/DataList/DataList.mdx +3 -1
- package/src/components/DataList/DataList.stories.ts +67 -17
- package/src/components/DataList/DataList.vue +13 -1
- package/src/components/DataListGroup/DataListGroup.stories.ts +42 -12
- package/src/components/DataListGroup/DataListGroup.vue +14 -1
- package/src/components/DataListItem/DataListItem.vue +10 -2
- package/src/components/DataListItem/tests/DataListItem.spec.ts +1 -1
- package/src/components/DatePicker/CalendarMode/DatePicker.vue +157 -178
- package/src/components/DatePicker/CalendarMode/tests/DatePicker.events.spec.ts +5 -0
- package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +179 -179
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +261 -258
- package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +234 -827
- package/src/components/DatePicker/DateTextInput/DateTextInput.vue +46 -73
- package/src/components/DatePicker/DateTextInput/tests/DateTextInput.spec.ts +350 -0
- package/src/components/DatePicker/composables/index.ts +4 -0
- package/src/components/DatePicker/composables/tests/useCalendarKeyboardNavigation.spec.ts +270 -0
- package/src/components/DatePicker/composables/tests/useDatePickerViewMode.spec.ts +61 -3
- package/src/components/DatePicker/composables/tests/useDateRangeInput.spec.ts +198 -0
- package/src/components/DatePicker/composables/tests/useDisplayedDateString.spec.ts +36 -2
- package/src/components/DatePicker/composables/tests/useInputHandler.spec.ts +755 -0
- package/src/components/DatePicker/composables/tests/useKeyboardEvents.spec.ts +168 -0
- package/src/components/DatePicker/composables/tests/useMonthButtonCustomization.spec.ts +40 -34
- package/src/components/DatePicker/composables/useAsteriskDisplay.ts +1 -2
- package/src/components/DatePicker/composables/useCalendarKeyboardNavigation.ts +155 -0
- package/src/components/DatePicker/composables/useDatePickerState.ts +163 -0
- package/src/components/DatePicker/composables/useDateRangeInput.ts +4 -8
- package/src/components/DatePicker/composables/useDateTextField.ts +156 -0
- package/src/components/DatePicker/composables/useHolidayHighlighting.ts +64 -0
- package/src/components/DatePicker/composables/useInputHandler.ts +25 -19
- package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +52 -26
- package/src/components/DatePicker/constants/messages.ts +0 -1
- package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +2 -2
- package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +16 -8
- package/src/components/ErrorPage/ErrorPage.vue +1 -1
- package/src/components/ErrorPage/tests/ErrorPage.spec.ts +17 -0
- package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +0 -1
- package/src/components/LunarCalendar/LunarCalendar.mdx +33 -0
- package/src/components/LunarCalendar/LunarCalendar.stories.ts +232 -0
- package/src/components/LunarCalendar/LunarCalendar.vue +57 -0
- package/src/components/LunarCalendar/tests/LunarCalendar.spec.ts +79 -0
- package/src/components/LunarCalendar/useLunarCalendarRules.ts +96 -0
- package/src/components/LunarCalendar/useLunarCalendarValidation.ts +47 -0
- package/src/components/NotificationBar/NotificationBar.vue +2 -2
- package/src/components/PaginatedTable/PaginatedTable.stories.ts +15 -10
- package/src/components/PaginatedTable/PaginatedTable.vue +24 -35
- package/src/components/PhoneField/PhoneField.vue +102 -83
- package/src/components/SearchListField/tests/SearchListField.spec.ts +7 -53
- package/src/components/SyAlert/SyAlert.vue +5 -2
- package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +24 -72
- package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +521 -23
- package/src/components/Tables/SyServerTable/SyServerTable.vue +19 -13
- package/src/components/Tables/SyTable/SyTable.stories.ts +391 -18
- package/src/components/Tables/SyTable/SyTable.vue +16 -11
- package/src/components/Tables/common/TableHeader.vue +16 -7
- package/src/components/Tables/common/filters/DateFilter.vue +1 -1
- package/src/components/Tables/common/locales.ts +1 -0
- package/src/components/Tables/common/tableFilterUtils.ts +3 -3
- package/src/components/Tables/common/types.ts +4 -2
- package/src/components/Tables/common/useTableCheckbox.ts +4 -3
- package/src/components/Tables/common/useTableFilter.ts +2 -2
- package/src/components/Tables/common/useTableItems.ts +4 -19
- package/src/components/index.ts +2 -0
- package/src/composables/validation/tests/useFormValidation.spec.ts +251 -0
- package/src/composables/validation/tests/useValidatable.spec.ts +90 -0
- package/src/stories/Accessibilite/Audit/Exemptions-derogations.mdx +241 -0
- package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +17 -10
- package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +16 -0
- package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +160 -106
- package/src/stories/Accessibilite/Vuetify/VuetifyItems.ts +2 -1
- package/src/stories/GuideDuDev/ClassesUtilitaires/FormattingUtilities.mdx +20 -0
- package/src/stories/GuideDuDev/ClassesUtilitaires/index.mdx +10 -0
- package/src/utils/formatNir/formatNir.ts +15 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/insertAt.ts +11 -0
- package/src/utils/rules/isDateValid/IsDateValid.mdx +2 -2
- package/src/utils/rules/isDateValid/IsDateValid.stories.ts +6 -4
- package/src/utils/rules/isDateValid/index.ts +23 -8
- package/src/utils/rules/isDateValid/tests/isDateValid.spec.ts +9 -0
- package/src/utils/rules/isExactLength/IsExactLenght.mdx +1 -1
- package/src/utils/rules/isHolidayDay/IsHolidayDay.mdx +19 -7
- package/src/utils/rules/isHolidayDay/index.ts +6 -8
- package/src/utils/rules/isHolidayDay/tests/isHolidayDay.spec.ts +13 -1
- package/src/utils/rules/isNotAfterDate/IsNotAfterDate.mdx +2 -2
- package/src/utils/rules/isNotAfterDate/IsNotAfterDate.stories.ts +9 -2
- package/src/utils/rules/isNotAfterDate/index.ts +5 -12
- package/src/utils/rules/isNotAfterDate/tests/isNotAfterDate.spec.ts +20 -0
- package/src/utils/rules/isNotAfterToday/IsNotAfterToday.mdx +2 -2
- package/src/utils/rules/isNotAfterToday/IsNotAfterToday.stories.ts +8 -2
- package/src/utils/rules/isNotAfterToday/index.ts +6 -6
- package/src/utils/rules/isNotAfterToday/tests/isNotAfterToday.spec.ts +20 -0
- package/src/utils/rules/isNotBeforeDate/IsNotBeforeDate.mdx +2 -2
- package/src/utils/rules/isNotBeforeDate/index.ts +5 -12
- package/src/utils/rules/isNotBeforeDate/tests/IsNotBeforeDate.spec.ts +20 -0
- package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.mdx +2 -2
- package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.stories.ts +8 -2
- package/src/utils/rules/isNotBeforeToday/index.ts +6 -6
- package/src/utils/rules/isNotBeforeToday/tests/notBeforeToday.spec.ts +19 -0
- package/src/utils/rules/validateDateValue.ts +37 -0
- package/src/vuetifyConfig.ts +6 -2
- package/dist/components/Customs/Selects/SelectBtnField/config.d.ts +0 -11
- package/dist/components/DatePicker/tests/setup.d.ts +0 -75370
- package/dist/components/Tables/common/formatters.d.ts +0 -17
- package/dist/main-CbBVJ_le.js +0 -34377
- package/dist/stories/Accessibilite/Vuetify/VuetifyItems.d.ts +0 -70
- package/dist/stories/DesignTokens/StylesTypographiques.stories.new.d.ts +0 -8
- package/dist/stories/DesignTokens/TypographyDisplay.d.ts +0 -28
- package/dist/stories/DesignTokens/vue-shims.d.ts +0 -6
- package/src/components/Amelipro/AmeliproMultipleFoldingCard/tests/AmeliproMultipleFoldingCard.spec.ts +0 -40
- package/src/components/Amelipro/AmeliproMultipleFoldingCard/tests/__snapshots__/AmeliproMultipleFoldingCard.spec.ts.snap +0 -369
- package/src/components/Amelipro/ServiceMenu/ServiceBtn/tests/ServiceBtn.spec.ts +0 -21
- package/src/components/Amelipro/ServiceMenu/ServiceBtn/tests/__snapshots__/ServiceBtn.spec.ts.snap +0 -100
- package/src/components/Amelipro/ServiceMenu/ServiceList/tests/ServiceList.spec.ts +0 -25
- package/src/components/Amelipro/ServiceMenu/ServiceList/tests/__snapshots__/ServiceList.spec.ts.snap +0 -245
- package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/tests/ServiceMenuContent.spec.ts +0 -45
- package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/tests/__snapshots__/ServiceMenuContent.spec.ts.snap +0 -787
- package/src/components/Amelipro/ServiceMenu/tests/ServiceMenu.spec.ts +0 -46
- package/src/components/Amelipro/ServiceMenu/tests/__snapshots__/ServiceMenu.spec.ts.snap +0 -111
- package/src/components/Amelipro/StructureMenu/StructureBtn/tests/StructureBtn.spec.ts +0 -17
- package/src/components/Amelipro/StructureMenu/StructureBtn/tests/__snapshots__/StructureBtn.spec.ts.snap +0 -34
- package/src/components/Amelipro/StructureMenu/StructureItem/tests/StructureItem.spec.ts +0 -21
- package/src/components/Amelipro/StructureMenu/StructureItem/tests/__snapshots__/StructureItem.spec.ts.snap +0 -106
- package/src/components/Amelipro/StructureMenu/StructureList/tests/StructureList.spec.ts +0 -33
- package/src/components/Amelipro/StructureMenu/StructureList/tests/__snapshots__/StructureList.spec.ts.snap +0 -353
- package/src/components/Amelipro/StructureMenu/StructureTabs/tests/StructureTabs.spec.ts +0 -60
- package/src/components/Amelipro/StructureMenu/StructureTabs/tests/__snapshots__/StructureTabs.spec.ts.snap +0 -824
- package/src/components/Amelipro/StructureMenu/tests/StructureMenu.spec.ts +0 -69
- package/src/components/Amelipro/StructureMenu/tests/__snapshots__/StructureMenu.spec.ts.snap +0 -1383
- package/src/components/Amelipro/UserInformationSummary/tests/UserInformationSummary.spec.ts +0 -24
- package/src/components/Amelipro/UserMenu/UserMenuDetails/tests/UserMenuDetails.spec.ts +0 -33
- package/src/components/Amelipro/UserMenu/UserMenuDetails/tests/__snapshots__/UserMenuDetails.spec.ts.snap +0 -3
- package/src/components/Amelipro/UserMenu/tests/UserMenu.spec.ts +0 -34
- package/src/components/Amelipro/UserMenu/tests/__snapshots__/UserMenu.spec.ts.snap +0 -101
- package/src/components/Customs/Selects/SelectBtnField/config.ts +0 -11
- package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.events.spec.ts +0 -151
- package/src/components/DatePicker/DateTextInput/DateTextInput.events.spec.ts +0 -148
- package/src/components/DatePicker/DateTextInput/DateTextInput.range.spec.ts +0 -361
- package/src/components/DatePicker/DateTextInput/DateTextInput.spec.ts +0 -709
- package/src/components/DatePicker/tests/DatePicker.validation.spec.ts +0 -4111
- package/src/components/DatePicker/tests/archiTest.md +0 -33
- package/src/components/DatePicker/tests/navigation.regression.spec.ts +0 -74
- package/src/components/DatePicker/tests/navigation.simple.spec.ts +0 -137
- package/src/components/DatePicker/tests/setup.ts +0 -243
- package/src/components/Tables/common/formatters.ts +0 -72
|
@@ -33,14 +33,14 @@ const meta = {
|
|
|
33
33
|
layout: 'fullscreen',
|
|
34
34
|
},
|
|
35
35
|
argTypes: {
|
|
36
|
-
headers: {
|
|
36
|
+
'headers': {
|
|
37
37
|
description: 'Liste des colonnes du tableau (voir : https://vuetifyjs.com/en/api/v-data-table/#props-headers)',
|
|
38
38
|
control: { type: 'object' },
|
|
39
39
|
table: {
|
|
40
40
|
category: 'props',
|
|
41
41
|
},
|
|
42
42
|
},
|
|
43
|
-
items: {
|
|
43
|
+
'items': {
|
|
44
44
|
description: 'Liste des éléments à afficher dans le tableau',
|
|
45
45
|
control: { type: 'object' },
|
|
46
46
|
table: {
|
|
@@ -50,7 +50,7 @@ const meta = {
|
|
|
50
50
|
},
|
|
51
51
|
},
|
|
52
52
|
},
|
|
53
|
-
density: {
|
|
53
|
+
'density': {
|
|
54
54
|
description: 'Définit la densité du tableau',
|
|
55
55
|
control: { type: 'select' },
|
|
56
56
|
options: ['default', 'comfortable', 'compact'],
|
|
@@ -59,7 +59,7 @@ const meta = {
|
|
|
59
59
|
type: { summary: 'string', detail: `'default' | 'comfortable' | 'compact'` },
|
|
60
60
|
},
|
|
61
61
|
},
|
|
62
|
-
striped: {
|
|
62
|
+
'striped': {
|
|
63
63
|
description: 'Affiche les lignes du tableau avec un fond rayé',
|
|
64
64
|
control: { type: 'boolean' },
|
|
65
65
|
table: {
|
|
@@ -67,7 +67,7 @@ const meta = {
|
|
|
67
67
|
type: { summary: 'boolean' },
|
|
68
68
|
},
|
|
69
69
|
},
|
|
70
|
-
options: {
|
|
70
|
+
'options': {
|
|
71
71
|
description: 'Options de configuration du tableau',
|
|
72
72
|
name: 'v-model:options',
|
|
73
73
|
control: { type: 'object' },
|
|
@@ -76,7 +76,7 @@ const meta = {
|
|
|
76
76
|
type: { summary: 'DataOptions', detail: '{ page: number, itemsPerPage: number, sortBy: SortOptions[], groupBy?: SortOptions[], multiSort?: boolean, mustSort?: boolean, filters?: FilterOption[] }' },
|
|
77
77
|
},
|
|
78
78
|
},
|
|
79
|
-
itemsPerPageOptions: {
|
|
79
|
+
'itemsPerPageOptions': {
|
|
80
80
|
description: 'Limite les options disponibles dans le sélecteur "itemsPerPage"',
|
|
81
81
|
control: { type: 'object' },
|
|
82
82
|
table: {
|
|
@@ -85,15 +85,15 @@ const meta = {
|
|
|
85
85
|
defaultValue: { summary: 'undefined' },
|
|
86
86
|
},
|
|
87
87
|
},
|
|
88
|
-
serverItemsLength: {
|
|
88
|
+
'serverItemsLength': {
|
|
89
89
|
description: 'Nombre total d\'éléments à afficher',
|
|
90
90
|
control: { type: 'number' },
|
|
91
91
|
},
|
|
92
|
-
saveState: {
|
|
92
|
+
'saveState': {
|
|
93
93
|
description: 'Permet d\'activer ou non la sauvegarde des options (pagination, tris, ordre des colonnes) du tableau dans le localStorage. Par défaut, cette fonctionnalité est activée.',
|
|
94
94
|
control: { type: 'boolean' },
|
|
95
95
|
},
|
|
96
|
-
suffix: {
|
|
96
|
+
'suffix': {
|
|
97
97
|
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.',
|
|
98
98
|
control: { type: 'text' },
|
|
99
99
|
table: {
|
|
@@ -102,18 +102,18 @@ const meta = {
|
|
|
102
102
|
},
|
|
103
103
|
required: true,
|
|
104
104
|
},
|
|
105
|
-
caption: {
|
|
105
|
+
'caption': {
|
|
106
106
|
description: 'Texte de la légende du tableau',
|
|
107
107
|
control: { type: 'text' },
|
|
108
108
|
},
|
|
109
|
-
showExpand: {
|
|
109
|
+
'showExpand': {
|
|
110
110
|
description: 'Affiche une colonne permettant d\'étendre les lignes pour afficher du contenu supplémentaire',
|
|
111
111
|
control: { type: 'boolean' },
|
|
112
112
|
table: {
|
|
113
113
|
category: 'props',
|
|
114
114
|
},
|
|
115
115
|
},
|
|
116
|
-
resizableColumns: {
|
|
116
|
+
'resizableColumns': {
|
|
117
117
|
description: 'Permet de redimensionner les colonnes du tableau',
|
|
118
118
|
control: { type: 'boolean' },
|
|
119
119
|
table: {
|
|
@@ -121,7 +121,7 @@ const meta = {
|
|
|
121
121
|
type: { summary: 'boolean' },
|
|
122
122
|
},
|
|
123
123
|
},
|
|
124
|
-
multiSort: {
|
|
124
|
+
'multiSort': {
|
|
125
125
|
description: 'Permet de trier sur plusieurs colonnes simultanément. Lorsque activé, des indicateurs numériques apparaissent à côté des icônes de tri pour montrer l\'ordre de priorité.',
|
|
126
126
|
control: { type: 'boolean' },
|
|
127
127
|
table: {
|
|
@@ -132,7 +132,7 @@ const meta = {
|
|
|
132
132
|
},
|
|
133
133
|
},
|
|
134
134
|
},
|
|
135
|
-
mustSort: {
|
|
135
|
+
'mustSort': {
|
|
136
136
|
description: 'Force au moins une colonne à être toujours triée. Si désactivé, toutes les colonnes peuvent être non triées.',
|
|
137
137
|
control: { type: 'boolean' },
|
|
138
138
|
table: {
|
|
@@ -143,7 +143,7 @@ const meta = {
|
|
|
143
143
|
},
|
|
144
144
|
},
|
|
145
145
|
},
|
|
146
|
-
enableColumnControls: {
|
|
146
|
+
'enableColumnControls': {
|
|
147
147
|
description: 'Allow the users to re-organize the columns',
|
|
148
148
|
table: {
|
|
149
149
|
defaultValue: {
|
|
@@ -154,7 +154,7 @@ const meta = {
|
|
|
154
154
|
},
|
|
155
155
|
control: { type: 'boolean' },
|
|
156
156
|
},
|
|
157
|
-
showSelect: {
|
|
157
|
+
'showSelect': {
|
|
158
158
|
description: 'Affiche des cases à cocher pour sélectionner des lignes',
|
|
159
159
|
control: { type: 'boolean' },
|
|
160
160
|
table: {
|
|
@@ -162,7 +162,7 @@ const meta = {
|
|
|
162
162
|
type: { summary: 'boolean' },
|
|
163
163
|
},
|
|
164
164
|
},
|
|
165
|
-
showSelectSingle: {
|
|
165
|
+
'showSelectSingle': {
|
|
166
166
|
description: 'Affiche des cases à cocher pour sélectionner une seule ligne à la fois',
|
|
167
167
|
control: { type: 'boolean' },
|
|
168
168
|
table: {
|
|
@@ -170,7 +170,7 @@ const meta = {
|
|
|
170
170
|
type: { summary: 'boolean' },
|
|
171
171
|
},
|
|
172
172
|
},
|
|
173
|
-
selectionKey: {
|
|
173
|
+
'selectionKey': {
|
|
174
174
|
description: 'Clé utilisée pour identifier chaque ligne lors de la sélection. Par défaut, utilise "id" si présent, sinon l\'objet complet.',
|
|
175
175
|
control: { type: 'text' },
|
|
176
176
|
table: {
|
|
@@ -179,6 +179,27 @@ const meta = {
|
|
|
179
179
|
defaultValue: { summary: 'undefined (fallback: id | objet complet)' },
|
|
180
180
|
},
|
|
181
181
|
},
|
|
182
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
183
|
+
// @ts-ignore - 'cookie-description-${cookieName}' storybook can't infer dynamic slot name
|
|
184
|
+
'header.<columnKey>': {
|
|
185
|
+
description: 'Slot permettant de personnaliser le rendu de l\'en-tête d\'une colonne spécifique. Remplacer `<columnKey>` par la clé de la colonne souhaitée.',
|
|
186
|
+
control: undefined,
|
|
187
|
+
table: {
|
|
188
|
+
category: 'slots',
|
|
189
|
+
type: {
|
|
190
|
+
summary: 'slot',
|
|
191
|
+
detail: `{
|
|
192
|
+
column: HeaderColumn,
|
|
193
|
+
headers: HeaderColumn[][],
|
|
194
|
+
columns: HeaderColumn[],
|
|
195
|
+
locales: Record<string, string | ((...args: any[]) => string)>,
|
|
196
|
+
sortBy: DataOptions['sortBy'],
|
|
197
|
+
someSelected: boolean,
|
|
198
|
+
allSelected: boolean
|
|
199
|
+
}`,
|
|
200
|
+
},
|
|
201
|
+
},
|
|
202
|
+
},
|
|
182
203
|
},
|
|
183
204
|
} satisfies Meta<typeof SyServerTable & typeof VDataTable>
|
|
184
205
|
|
|
@@ -2720,7 +2741,7 @@ export const ServerFilterByPeriod: Story = {
|
|
|
2720
2741
|
if (!value) return true
|
|
2721
2742
|
|
|
2722
2743
|
else if (type === 'period') {
|
|
2723
|
-
|
|
2744
|
+
const formatDate = (date: string): Date | null => {
|
|
2724
2745
|
if (!date) return null
|
|
2725
2746
|
const parsedDate = dayjs(date, 'DD/MM/YYYY')
|
|
2726
2747
|
return parsedDate.isValid() ? parsedDate.toDate() : null
|
|
@@ -4163,8 +4184,7 @@ export const ResizableColumns: Story = {
|
|
|
4163
4184
|
}, { deep: true })
|
|
4164
4185
|
|
|
4165
4186
|
const fetchData = async (): Promise<void> => {
|
|
4166
|
-
|
|
4167
|
-
const { items, total } = await getDataFromApi(options.value)
|
|
4187
|
+
const { items, total } = await getDataFromApi(options.value as DataOptions)
|
|
4168
4188
|
users.value = items
|
|
4169
4189
|
totalUsers.value = total
|
|
4170
4190
|
}
|
|
@@ -4985,8 +5005,7 @@ export const ColumnControls: StoryObj<typeof SyServerTable> = {
|
|
|
4985
5005
|
}, { deep: true })
|
|
4986
5006
|
|
|
4987
5007
|
const fetchData = async (): Promise<void> => {
|
|
4988
|
-
|
|
4989
|
-
const { items, total } = await getDataFromApi(options.value)
|
|
5008
|
+
const { items, total } = await getDataFromApi(options.value as DataOptions)
|
|
4990
5009
|
users.value = items
|
|
4991
5010
|
totalUsers.value = total
|
|
4992
5011
|
}
|
|
@@ -5871,6 +5890,249 @@ export const SlotHeaders: Story = {
|
|
|
5871
5890
|
},
|
|
5872
5891
|
}
|
|
5873
5892
|
|
|
5893
|
+
export const SlotHeader: Story = {
|
|
5894
|
+
parameters: {
|
|
5895
|
+
sourceCode: [
|
|
5896
|
+
{
|
|
5897
|
+
name: 'Template',
|
|
5898
|
+
code: `
|
|
5899
|
+
<template>
|
|
5900
|
+
<SyServerTable
|
|
5901
|
+
v-model:options="options"
|
|
5902
|
+
:items="users"
|
|
5903
|
+
:headers="headers"
|
|
5904
|
+
:server-items-length="totalUsers"
|
|
5905
|
+
:loading="state === StateEnum.PENDING"
|
|
5906
|
+
suffix="server-default"
|
|
5907
|
+
@update:options="fetchData"
|
|
5908
|
+
>
|
|
5909
|
+
<template #header.lastname>
|
|
5910
|
+
<span class="text-primary font-weight-bold">
|
|
5911
|
+
Nom de famille
|
|
5912
|
+
</span>
|
|
5913
|
+
</template>
|
|
5914
|
+
</SyServerTable>
|
|
5915
|
+
</template>
|
|
5916
|
+
`,
|
|
5917
|
+
},
|
|
5918
|
+
{
|
|
5919
|
+
name: 'Script',
|
|
5920
|
+
code: `
|
|
5921
|
+
<script setup lang="ts">
|
|
5922
|
+
import { ref, watch } from 'vue'
|
|
5923
|
+
import { SyServerTable } from '@cnamts/synapse'
|
|
5924
|
+
import { StateEnum } from '@cnamts/synapse/src/components/Tables/common/constants/StateEnum'
|
|
5925
|
+
import type { DataOptions } from '@cnamts/synapse/src/components/Tables/common/types'
|
|
5926
|
+
|
|
5927
|
+
interface User {
|
|
5928
|
+
[key: string]: string
|
|
5929
|
+
firstname: string
|
|
5930
|
+
lastname: string
|
|
5931
|
+
email: string
|
|
5932
|
+
}
|
|
5933
|
+
|
|
5934
|
+
interface DataObj {
|
|
5935
|
+
items: User[]
|
|
5936
|
+
total: number
|
|
5937
|
+
}
|
|
5938
|
+
|
|
5939
|
+
const totalUsers = ref(0)
|
|
5940
|
+
const users = ref<User[]>([])
|
|
5941
|
+
const state = ref(StateEnum.IDLE)
|
|
5942
|
+
|
|
5943
|
+
const options = ref({
|
|
5944
|
+
itemsPerPage: 5,
|
|
5945
|
+
sortBy: [{ key: 'lastname', order: 'asc' }],
|
|
5946
|
+
page: 1,
|
|
5947
|
+
})
|
|
5948
|
+
|
|
5949
|
+
const headers = [
|
|
5950
|
+
{ title: 'Nom', key: 'lastname' },
|
|
5951
|
+
{ title: 'Prénom', key: 'firstname' },
|
|
5952
|
+
{ title: 'Email', key: 'email' },
|
|
5953
|
+
]
|
|
5954
|
+
|
|
5955
|
+
const fetchData = async (): Promise<void> => {
|
|
5956
|
+
const { items, total } = await getDataFromApi(options.value)
|
|
5957
|
+
users.value = items
|
|
5958
|
+
totalUsers.value = total
|
|
5959
|
+
}
|
|
5960
|
+
|
|
5961
|
+
const wait = async (ms: number) => {
|
|
5962
|
+
return new Promise(resolve => setTimeout(resolve, ms))
|
|
5963
|
+
}
|
|
5964
|
+
|
|
5965
|
+
const getDataFromApi = async ({ sortBy, page, itemsPerPage, filters }: DataOptions): Promise<DataObj> => {
|
|
5966
|
+
state.value = StateEnum.PENDING
|
|
5967
|
+
await wait(1000)
|
|
5968
|
+
|
|
5969
|
+
return new Promise((resolve) => {
|
|
5970
|
+
let items: User[] = getUsers()
|
|
5971
|
+
const total = items.length
|
|
5972
|
+
|
|
5973
|
+
if (sortBy && sortBy.length > 0) {
|
|
5974
|
+
items = items.sort((a, b) => {
|
|
5975
|
+
const key = sortBy[0].key
|
|
5976
|
+
const order = sortBy[0].order === 'asc' ? 1 : -1
|
|
5977
|
+
|
|
5978
|
+
return a[key] > b[key] ? order : -order
|
|
5979
|
+
})
|
|
5980
|
+
}
|
|
5981
|
+
|
|
5982
|
+
if (itemsPerPage > 0) {
|
|
5983
|
+
items = items.slice((page - 1) * itemsPerPage, page * itemsPerPage)
|
|
5984
|
+
}
|
|
5985
|
+
|
|
5986
|
+
resolve({ items, total })
|
|
5987
|
+
state.value = StateEnum.RESOLVED
|
|
5988
|
+
})
|
|
5989
|
+
}
|
|
5990
|
+
|
|
5991
|
+
const getUsers = (): User[] => {
|
|
5992
|
+
return [
|
|
5993
|
+
{ firstname: 'Virginie', lastname: 'Beauchesne', email: 'virginie.beauchesne@example.com' },
|
|
5994
|
+
{ firstname: 'Simone', lastname: 'Bellefeuille', email: 'simone.bellefeuille@example.com' },
|
|
5995
|
+
{ firstname: 'Étienne', lastname: 'Salois', email: 'etienne.salois@example.com' },
|
|
5996
|
+
{ firstname: 'Bernadette', lastname: 'Langelier', email: 'bernadette.langelier@example.com' },
|
|
5997
|
+
{ firstname: 'Agate', lastname: 'Roy', email: 'agate.roy@example.com' },
|
|
5998
|
+
{ firstname: 'Louis', lastname: 'Denis', email: 'louis.denis@example.com' },
|
|
5999
|
+
{ firstname: 'Édith', lastname: 'Cartier', email: 'edith.cartier@example.com' },
|
|
6000
|
+
{ firstname: 'Alphonse', lastname: 'Bouvier', email: 'alphonse.bouvier@example.com' },
|
|
6001
|
+
{ firstname: 'Eustache', lastname: 'Dubois', email: 'eustache.dubois@example.com' },
|
|
6002
|
+
{ firstname: 'Rosemarie', lastname: 'Quessy', email: 'rosemarie.quessy@example.com' },
|
|
6003
|
+
{ firstname: 'Serge', lastname: 'Rivard', email: 'serge.rivard@example.com' },
|
|
6004
|
+
{ firstname: 'Jacques', lastname: 'Demers', email: 'jacques.demers@example.com' },
|
|
6005
|
+
{ firstname: 'Aimée', lastname: 'Josseaume', email: 'aimee.josseaume@example.com' },
|
|
6006
|
+
{ firstname: 'Delphine', lastname: 'Robillard', email: 'delphine.robillard@example.com' },
|
|
6007
|
+
{ firstname: 'Alexandre', lastname: 'Lazure', email: 'alexandre.lazure@example.com' },
|
|
6008
|
+
]
|
|
6009
|
+
}
|
|
6010
|
+
|
|
6011
|
+
// Initialize data
|
|
6012
|
+
fetchData()
|
|
6013
|
+
</script>
|
|
6014
|
+
`,
|
|
6015
|
+
},
|
|
6016
|
+
],
|
|
6017
|
+
},
|
|
6018
|
+
args: {
|
|
6019
|
+
'options': {
|
|
6020
|
+
itemsPerPage: 5,
|
|
6021
|
+
sortBy: [{ key: 'lastname', order: 'asc' }],
|
|
6022
|
+
page: 1,
|
|
6023
|
+
},
|
|
6024
|
+
'headers': [
|
|
6025
|
+
{ title: 'Nom', key: 'lastname' },
|
|
6026
|
+
{ title: 'Prénom', key: 'firstname' },
|
|
6027
|
+
{ title: 'Email', key: 'email' },
|
|
6028
|
+
],
|
|
6029
|
+
'caption': '',
|
|
6030
|
+
'serverItemsLength': 15,
|
|
6031
|
+
'suffix': 'server-default',
|
|
6032
|
+
'density': 'default',
|
|
6033
|
+
'striped': false,
|
|
6034
|
+
'onUpdate:options': fn(),
|
|
6035
|
+
},
|
|
6036
|
+
render: (args) => {
|
|
6037
|
+
return {
|
|
6038
|
+
components: { SyServerTable },
|
|
6039
|
+
setup() {
|
|
6040
|
+
const totalUsers = ref(0)
|
|
6041
|
+
const users = ref<User[]>([])
|
|
6042
|
+
const state = ref(StateEnum.IDLE)
|
|
6043
|
+
|
|
6044
|
+
const options = ref({ ...args.options })
|
|
6045
|
+
|
|
6046
|
+
watch(options, (newVal) => {
|
|
6047
|
+
if (args.options) {
|
|
6048
|
+
Object.assign(args.options, JSON.parse(JSON.stringify(newVal)))
|
|
6049
|
+
}
|
|
6050
|
+
}, { deep: true })
|
|
6051
|
+
|
|
6052
|
+
const fetchData = async (): Promise<void> => {
|
|
6053
|
+
const { items, total } = await getDataFromApi(options.value as DataOptions)
|
|
6054
|
+
users.value = items
|
|
6055
|
+
totalUsers.value = total
|
|
6056
|
+
}
|
|
6057
|
+
|
|
6058
|
+
const wait = async (ms: number) => {
|
|
6059
|
+
return new Promise(resolve => setTimeout(resolve, ms))
|
|
6060
|
+
}
|
|
6061
|
+
|
|
6062
|
+
const getDataFromApi = async ({ sortBy, page, itemsPerPage }: DataOptions): Promise<DataObj> => {
|
|
6063
|
+
state.value = StateEnum.PENDING
|
|
6064
|
+
await wait(1000)
|
|
6065
|
+
|
|
6066
|
+
return new Promise((resolve) => {
|
|
6067
|
+
let items: User[] = getUsers()
|
|
6068
|
+
const total = items.length
|
|
6069
|
+
|
|
6070
|
+
if (sortBy && sortBy.length > 0) {
|
|
6071
|
+
items = items.sort((a, b) => {
|
|
6072
|
+
const key = sortBy[0].key
|
|
6073
|
+
const order = sortBy[0].order === 'asc' ? 1 : -1
|
|
6074
|
+
|
|
6075
|
+
return a[key] > b[key] ? order : -order
|
|
6076
|
+
})
|
|
6077
|
+
}
|
|
6078
|
+
|
|
6079
|
+
if (itemsPerPage > 0) {
|
|
6080
|
+
items = items.slice((page - 1) * itemsPerPage, page * itemsPerPage)
|
|
6081
|
+
}
|
|
6082
|
+
|
|
6083
|
+
resolve({ items, total })
|
|
6084
|
+
state.value = StateEnum.RESOLVED
|
|
6085
|
+
})
|
|
6086
|
+
}
|
|
6087
|
+
|
|
6088
|
+
const getUsers = (): User[] => {
|
|
6089
|
+
return [
|
|
6090
|
+
{ firstname: 'Virginie', lastname: 'Beauchesne', email: 'virginie.beauchesne@example.com' },
|
|
6091
|
+
{ firstname: 'Simone', lastname: 'Bellefeuille', email: 'simone.bellefeuille@example.com' },
|
|
6092
|
+
{ firstname: 'Étienne', lastname: 'Salois', email: 'etienne.salois@example.com' },
|
|
6093
|
+
{ firstname: 'Bernadette', lastname: 'Langelier', email: 'bernadette.langelier@example.com' },
|
|
6094
|
+
{ firstname: 'Agate', lastname: 'Roy', email: 'agate.roy@example.com' },
|
|
6095
|
+
{ firstname: 'Louis', lastname: 'Denis', email: 'louis.denis@example.com' },
|
|
6096
|
+
{ firstname: 'Édith', lastname: 'Cartier', email: 'edith.cartier@example.com' },
|
|
6097
|
+
{ firstname: 'Alphonse', lastname: 'Bouvier', email: 'alphonse.bouvier@example.com' },
|
|
6098
|
+
{ firstname: 'Eustache', lastname: 'Dubois', email: 'eustache.dubois@example.com' },
|
|
6099
|
+
{ firstname: 'Rosemarie', lastname: 'Quessy', email: 'rosemarie.quessy@example.com' },
|
|
6100
|
+
{ firstname: 'Serge', lastname: 'Rivard', email: 'serge.rivard@example.com' },
|
|
6101
|
+
{ firstname: 'Jacques', lastname: 'Demers', email: 'jacques.demers@example.com' },
|
|
6102
|
+
{ firstname: 'Aimée', lastname: 'Josseaume', email: 'aimee.josseaume@example.com' },
|
|
6103
|
+
{ firstname: 'Delphine', lastname: 'Robillard', email: 'delphine.robillard@example.com' },
|
|
6104
|
+
{ firstname: 'Alexandre', lastname: 'Lazure', email: 'alexandre.lazure@example.com' },
|
|
6105
|
+
]
|
|
6106
|
+
}
|
|
6107
|
+
|
|
6108
|
+
// Initialize data
|
|
6109
|
+
fetchData()
|
|
6110
|
+
|
|
6111
|
+
return { args, users, state, fetchData, options, totalUsers, StateEnum }
|
|
6112
|
+
},
|
|
6113
|
+
template: `
|
|
6114
|
+
<div>
|
|
6115
|
+
<SyServerTable
|
|
6116
|
+
v-model:options="options"
|
|
6117
|
+
:items="users"
|
|
6118
|
+
:server-items-length="totalUsers"
|
|
6119
|
+
:loading="state === StateEnum.PENDING"
|
|
6120
|
+
v-bind="args"
|
|
6121
|
+
suffix="server-slot-item"
|
|
6122
|
+
@update:options="fetchData"
|
|
6123
|
+
>
|
|
6124
|
+
<template #header.lastname>
|
|
6125
|
+
<span class="text-primary font-weight-bold">
|
|
6126
|
+
Nom de famille
|
|
6127
|
+
</span>
|
|
6128
|
+
</template>
|
|
6129
|
+
</SyServerTable>
|
|
6130
|
+
</div>
|
|
6131
|
+
`,
|
|
6132
|
+
}
|
|
6133
|
+
},
|
|
6134
|
+
}
|
|
6135
|
+
|
|
5874
6136
|
export const ItemsPerPageOptions: Story = {
|
|
5875
6137
|
parameters: {
|
|
5876
6138
|
sourceCode: [
|
|
@@ -6103,3 +6365,239 @@ export const ItemsPerPageOptions: Story = {
|
|
|
6103
6365
|
}
|
|
6104
6366
|
},
|
|
6105
6367
|
}
|
|
6368
|
+
|
|
6369
|
+
export const ComplexItemsDisplay: Story = {
|
|
6370
|
+
parameters: {
|
|
6371
|
+
sourceCode: [
|
|
6372
|
+
{
|
|
6373
|
+
name: 'Template',
|
|
6374
|
+
code: `
|
|
6375
|
+
<template>
|
|
6376
|
+
<SyServerTable
|
|
6377
|
+
v-model:options="options"
|
|
6378
|
+
:items="items"
|
|
6379
|
+
:headers="headers"
|
|
6380
|
+
:server-items-length="totalItems"
|
|
6381
|
+
:loading="state === StateEnum.PENDING"
|
|
6382
|
+
suffix="server-default"
|
|
6383
|
+
@update:options="fetchData"
|
|
6384
|
+
>
|
|
6385
|
+
<template #[\`item.period\`]="{ item }">
|
|
6386
|
+
<span>
|
|
6387
|
+
Depuis le {{ item.period.start }} jusqu'au {{ item.period.end }}
|
|
6388
|
+
</span>
|
|
6389
|
+
</template>
|
|
6390
|
+
</SyServerTable>
|
|
6391
|
+
</template>
|
|
6392
|
+
`,
|
|
6393
|
+
},
|
|
6394
|
+
{
|
|
6395
|
+
name: 'Script',
|
|
6396
|
+
code: `
|
|
6397
|
+
<script setup lang="ts">
|
|
6398
|
+
import { ref, watch } from 'vue'
|
|
6399
|
+
import { SyServerTable } from '@cnamts/synapse'
|
|
6400
|
+
import { StateEnum } from '@cnamts/synapse/src/components/Tables/common/constants/StateEnum'
|
|
6401
|
+
import type { DataOptions } from '@cnamts/synapse/src/components/Tables/common/types'
|
|
6402
|
+
|
|
6403
|
+
interface Item {
|
|
6404
|
+
title: string
|
|
6405
|
+
period: {
|
|
6406
|
+
start: string
|
|
6407
|
+
end: string
|
|
6408
|
+
}
|
|
6409
|
+
status: string
|
|
6410
|
+
}
|
|
6411
|
+
|
|
6412
|
+
interface DataObj {
|
|
6413
|
+
items: Item[]
|
|
6414
|
+
total: number
|
|
6415
|
+
}
|
|
6416
|
+
|
|
6417
|
+
const totalItems = ref(0)
|
|
6418
|
+
const items = ref<Item[]>([])
|
|
6419
|
+
const state = ref(StateEnum.IDLE)
|
|
6420
|
+
|
|
6421
|
+
const options = ref({
|
|
6422
|
+
itemsPerPage: 5,
|
|
6423
|
+
sortBy: [{ key: 'title', order: 'asc' }],
|
|
6424
|
+
page: 1,
|
|
6425
|
+
})
|
|
6426
|
+
|
|
6427
|
+
const headers = [
|
|
6428
|
+
{ title: 'Titre', key: 'title' },
|
|
6429
|
+
{ title: 'Période', key: 'period' },
|
|
6430
|
+
{ title: 'Statut', key: 'status' },
|
|
6431
|
+
]
|
|
6432
|
+
|
|
6433
|
+
const fetchData = async (): Promise<void> => {
|
|
6434
|
+
const { items: fetchedItems, total } = await getDataFromApi(options.value)
|
|
6435
|
+
items.value = fetchedItems
|
|
6436
|
+
totalItems.value = total
|
|
6437
|
+
}
|
|
6438
|
+
|
|
6439
|
+
const wait = async (ms: number) => {
|
|
6440
|
+
return new Promise(resolve => setTimeout(resolve, ms))
|
|
6441
|
+
}
|
|
6442
|
+
|
|
6443
|
+
const getDataFromApi = async ({ sortBy, page, itemsPerPage, filters }: DataOptions): Promise<DataObj> => {
|
|
6444
|
+
state.value = StateEnum.PENDING
|
|
6445
|
+
await wait(1000)
|
|
6446
|
+
|
|
6447
|
+
return new Promise((resolve) => {
|
|
6448
|
+
let items: Item[] = getItems()
|
|
6449
|
+
const total = items.length
|
|
6450
|
+
|
|
6451
|
+
if (sortBy && sortBy.length > 0) {
|
|
6452
|
+
items = items.sort((a, b) => {
|
|
6453
|
+
const key = sortBy[0].key
|
|
6454
|
+
const order = sortBy[0].order === 'asc' ? 1 : -1
|
|
6455
|
+
|
|
6456
|
+
return a[key] > b[key] ? order : -order
|
|
6457
|
+
})
|
|
6458
|
+
}
|
|
6459
|
+
|
|
6460
|
+
if (itemsPerPage > 0) {
|
|
6461
|
+
items = items.slice((page - 1) * itemsPerPage, page * itemsPerPage)
|
|
6462
|
+
}
|
|
6463
|
+
|
|
6464
|
+
resolve({ items, total })
|
|
6465
|
+
state.value = StateEnum.RESOLVED
|
|
6466
|
+
})
|
|
6467
|
+
}
|
|
6468
|
+
|
|
6469
|
+
const getItems = (): Item[] => {
|
|
6470
|
+
return [
|
|
6471
|
+
{ title: 'Projet Alpha', period: { start: '2023-01-01', end: '2023-06-30' }, status: 'En cours' },
|
|
6472
|
+
{ title: 'Projet Beta', period: { start: '2022-05-15', end: '2022-12-15' }, status: 'Terminé' },
|
|
6473
|
+
{ title: 'Projet Gamma', period: { start: '2023-03-01', end: '2023-09-30' }, status: 'En cours' },
|
|
6474
|
+
{ title: 'Projet Delta', period: { start: '2021-11-01', end: '2022-04-30' }, status: 'Terminé' },
|
|
6475
|
+
{ title: 'Projet Epsilon', period: { start: '2023-07-01', end: '2023-12-31' }, status: 'À venir' },
|
|
6476
|
+
{ title: 'Projet Zeta', period: { start: '2022-02-01', end: '2022-08-31' }, status: 'Terminé' },
|
|
6477
|
+
]
|
|
6478
|
+
}
|
|
6479
|
+
|
|
6480
|
+
// Initialize data
|
|
6481
|
+
fetchData()
|
|
6482
|
+
</script>
|
|
6483
|
+
`,
|
|
6484
|
+
},
|
|
6485
|
+
],
|
|
6486
|
+
},
|
|
6487
|
+
args: {
|
|
6488
|
+
'options': {
|
|
6489
|
+
itemsPerPage: 5,
|
|
6490
|
+
sortBy: [{ key: 'title', order: 'asc' }],
|
|
6491
|
+
page: 1,
|
|
6492
|
+
},
|
|
6493
|
+
'headers': [
|
|
6494
|
+
{ title: 'Titre', key: 'title' },
|
|
6495
|
+
{ title: 'Période', key: 'period' },
|
|
6496
|
+
{ title: 'Statut', key: 'status' },
|
|
6497
|
+
],
|
|
6498
|
+
'caption': '',
|
|
6499
|
+
'serverItemsLength': 6,
|
|
6500
|
+
'suffix': 'server-default',
|
|
6501
|
+
'density': 'default',
|
|
6502
|
+
'striped': false,
|
|
6503
|
+
'onUpdate:options': fn(),
|
|
6504
|
+
},
|
|
6505
|
+
render: (args) => {
|
|
6506
|
+
return {
|
|
6507
|
+
components: { SyServerTable },
|
|
6508
|
+
setup() {
|
|
6509
|
+
type Item = {
|
|
6510
|
+
title: string
|
|
6511
|
+
period: {
|
|
6512
|
+
start: string
|
|
6513
|
+
end: string
|
|
6514
|
+
}
|
|
6515
|
+
status: string
|
|
6516
|
+
}
|
|
6517
|
+
|
|
6518
|
+
const totalItems = ref(0)
|
|
6519
|
+
const items = ref<Item[]>([])
|
|
6520
|
+
const state = ref(StateEnum.IDLE)
|
|
6521
|
+
|
|
6522
|
+
const options = ref({ ...args.options })
|
|
6523
|
+
|
|
6524
|
+
watch(options, (newVal) => {
|
|
6525
|
+
if (args.options) {
|
|
6526
|
+
Object.assign(args.options, JSON.parse(JSON.stringify(newVal)))
|
|
6527
|
+
}
|
|
6528
|
+
}, { deep: true })
|
|
6529
|
+
|
|
6530
|
+
const fetchData = async (): Promise<void> => {
|
|
6531
|
+
const { items: fetchedItems, total } = await getDataFromApi(options.value as DataOptions)
|
|
6532
|
+
items.value = fetchedItems
|
|
6533
|
+
totalItems.value = total
|
|
6534
|
+
}
|
|
6535
|
+
|
|
6536
|
+
const wait = async (ms: number) => {
|
|
6537
|
+
return new Promise(resolve => setTimeout(resolve, ms))
|
|
6538
|
+
}
|
|
6539
|
+
|
|
6540
|
+
const getDataFromApi = async ({ sortBy, page, itemsPerPage }: DataOptions): Promise<{ items: Item[], total: number }> => {
|
|
6541
|
+
state.value = StateEnum.PENDING
|
|
6542
|
+
await wait(1000)
|
|
6543
|
+
|
|
6544
|
+
return new Promise((resolve) => {
|
|
6545
|
+
let items = getItems()
|
|
6546
|
+
const total = items.length
|
|
6547
|
+
|
|
6548
|
+
if (sortBy && sortBy.length > 0) {
|
|
6549
|
+
items = items.sort((a, b) => {
|
|
6550
|
+
const key = sortBy[0].key
|
|
6551
|
+
const order = sortBy[0].order === 'asc' ? 1 : -1
|
|
6552
|
+
|
|
6553
|
+
return a[key] > b[key] ? order : -order
|
|
6554
|
+
})
|
|
6555
|
+
}
|
|
6556
|
+
|
|
6557
|
+
if (itemsPerPage > 0) {
|
|
6558
|
+
items = items.slice((page - 1) * itemsPerPage, page * itemsPerPage)
|
|
6559
|
+
}
|
|
6560
|
+
|
|
6561
|
+
resolve({ items, total })
|
|
6562
|
+
state.value = StateEnum.RESOLVED
|
|
6563
|
+
})
|
|
6564
|
+
}
|
|
6565
|
+
|
|
6566
|
+
const getItems = () => {
|
|
6567
|
+
return [
|
|
6568
|
+
{ title: 'Projet Alpha', period: { start: '2023-01-01', end: '2023-06-30' }, status: 'En cours' },
|
|
6569
|
+
{ title: 'Projet Beta', period: { start: '2022-05-15', end: '2022-12-15' }, status: 'Terminé' },
|
|
6570
|
+
{ title: 'Projet Gamma', period: { start: '2023-03-01', end: '2023-09-30' }, status: 'En cours' },
|
|
6571
|
+
{ title: 'Projet Delta', period: { start: '2021-11-01', end: '2022-04-30' }, status: 'Terminé' },
|
|
6572
|
+
{ title: 'Projet Epsilon', period: { start: '2023-07-01', end: '2023-12-31' }, status: 'À venir' },
|
|
6573
|
+
{ title: 'Projet Zeta', period: { start: '2022-02-01', end: '2022-08-31' }, status: 'Terminé' },
|
|
6574
|
+
]
|
|
6575
|
+
}
|
|
6576
|
+
|
|
6577
|
+
// Initialize data
|
|
6578
|
+
fetchData()
|
|
6579
|
+
|
|
6580
|
+
return { args, items, state, fetchData, options, totalItems, StateEnum }
|
|
6581
|
+
},
|
|
6582
|
+
template: `
|
|
6583
|
+
<div>
|
|
6584
|
+
<SyServerTable
|
|
6585
|
+
v-model:options="options"
|
|
6586
|
+
:items="items"
|
|
6587
|
+
:server-items-length="totalItems"
|
|
6588
|
+
:loading="state === StateEnum.PENDING"
|
|
6589
|
+
v-bind="args"
|
|
6590
|
+
suffix="server-complex-item"
|
|
6591
|
+
@update:options="fetchData"
|
|
6592
|
+
>
|
|
6593
|
+
<template #[\`item.period\`]="{ item }">
|
|
6594
|
+
<span>
|
|
6595
|
+
Depuis le {{ item.period.start }} jusqu'au {{ item.period.end }}
|
|
6596
|
+
</span>
|
|
6597
|
+
</template>
|
|
6598
|
+
</SyServerTable>
|
|
6599
|
+
</div>
|
|
6600
|
+
`,
|
|
6601
|
+
}
|
|
6602
|
+
},
|
|
6603
|
+
}
|