@cnamts/synapse 0.0.7-alpha → 0.0.8-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/design-system-v3.d.ts +325 -368
- package/dist/design-system-v3.js +2791 -2637
- package/dist/design-system-v3.umd.cjs +1 -10
- package/dist/style.css +1 -1
- package/package.json +10 -2
- package/src/assets/settings.scss +2 -2
- package/src/assets/tokens.scss +107 -112
- package/src/components/BackBtn/BackBtn.vue +4 -4
- package/src/components/BackToTopBtn/BackToTopBtn.vue +1 -0
- package/src/components/CollapsibleList/CollapsibleList.mdx +1 -1
- package/src/components/CollapsibleList/CollapsibleList.vue +43 -44
- package/src/components/ContextualMenu/ContextualMenu.mdx +118 -0
- package/src/components/ContextualMenu/ContextualMenu.stories.ts +430 -0
- package/src/components/ContextualMenu/ContextualMenu.vue +101 -0
- package/src/components/ContextualMenu/tests/ContextualMenu.spec.ts +115 -0
- package/src/components/ContextualMenu/tests/__snapshots__/ContextualMenu.spec.ts.snap +10 -0
- package/src/components/ContextualMenu/types.ts +5 -0
- package/src/components/CookieBanner/CookieBanner.stories.ts +1 -2
- package/src/components/CookieBanner/CookieBanner.vue +13 -10
- package/src/components/CookieBanner/tests/__snapshots__/CookieBanner.spec.ts.snap +17 -15
- package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +6 -1
- package/src/components/CookiesSelection/CookiesInformation/locales.ts +1 -0
- package/src/components/CookiesSelection/CookiesTable/CookiesTable.vue +1 -0
- package/src/components/CookiesSelection/tests/__snapshots__/CookiesSelection.spec.ts.snap +17 -15
- package/src/components/CopyBtn/CopyBtn.vue +7 -7
- package/src/components/Customs/SyBtnSelect/SyBtnSelect.vue +26 -26
- package/src/components/Customs/SyInputSelect/SyInputSelect.vue +24 -24
- package/src/components/Customs/SySelect/SySelect.vue +27 -26
- package/src/components/DataList/DataList.stories.ts +3 -2
- package/src/components/DataList/DataList.vue +1 -1
- package/src/components/DataListGroup/DataListGroup.stories.ts +3 -2
- package/src/components/DataListItem/DataListItem.vue +12 -12
- package/src/components/DialogBox/DialogBox.mdx +28 -2
- package/src/components/DialogBox/DialogBox.stories.ts +1 -1
- package/src/components/DialogBox/DialogBox.vue +3 -2
- package/src/components/DownloadBtn/DownloadBtn.vue +2 -1
- package/src/components/ExternalLinks/ExternalLinks.mdx +86 -0
- package/src/components/ExternalLinks/ExternalLinks.stories.ts +553 -0
- package/src/components/ExternalLinks/ExternalLinks.vue +200 -0
- package/src/components/ExternalLinks/config.ts +34 -0
- package/src/components/ExternalLinks/locales.ts +4 -0
- package/src/components/ExternalLinks/tests/ExternalLinks.spec.ts +154 -0
- package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +159 -0
- package/src/components/FooterBar/FooterBar.vue +105 -80
- package/src/components/FranceConnectBtn/FranceConnectBtn.vue +14 -13
- package/src/components/HeaderBar/HeaderBar.vue +3 -3
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.vue +11 -7
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.vue +5 -5
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuSection/HeaderMenuSection.vue +2 -2
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.vue +10 -8
- package/src/components/HeaderBar/HeaderLogo/HeaderLogo.vue +2 -2
- package/src/components/HeaderBar/HeaderLogo/logos/Logo-mobile.vue +2 -1
- package/src/components/HeaderBar/HeaderLogo/logos/Logo.vue +2 -1
- package/src/components/HeaderBar/HeaderMenuBtn/HeaderMenuBtn.vue +10 -10
- package/src/components/HeaderBar/consts.scss +1 -1
- package/src/components/HeaderLoading/HeaderLoading.vue +12 -11
- package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +2 -1
- package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +9 -9
- package/src/components/HeaderToolbar/HeaderToolbar.vue +215 -202
- package/src/components/LangBtn/LangBtn.vue +8 -6
- package/src/components/LogoBrandSection/LogoBrandSection.stories.ts +2 -2
- package/src/components/NirField/NirField.stories.ts +7 -7
- package/src/components/NirField/NirField.vue +44 -47
- package/src/components/NotFoundPage/NotFoundPage.stories.ts +33 -2
- package/src/components/NotFoundPage/NotFoundPage.vue +17 -0
- package/src/components/NotificationBar/NotificationBar.mdx +5 -5
- package/src/components/NotificationBar/NotificationBar.stories.ts +410 -314
- package/src/components/NotificationBar/NotificationBar.vue +43 -41
- package/src/components/PageContainer/PageContainer.vue +4 -4
- package/src/components/PasswordField/PasswordField.mdx +70 -0
- package/src/components/PasswordField/PasswordField.stories.ts +213 -0
- package/src/components/PasswordField/PasswordField.vue +189 -0
- package/src/components/PasswordField/config.ts +11 -0
- package/src/components/PasswordField/locales.ts +4 -0
- package/src/components/PasswordField/tests/PasswordField.spec.ts +96 -0
- package/src/components/PhoneField/PhoneField.mdx +0 -2
- package/src/components/PhoneField/PhoneField.stories.ts +10 -50
- package/src/components/PhoneField/PhoneField.vue +34 -34
- package/src/components/SkipLink/SkipLink.vue +10 -10
- package/src/components/SocialMediaLinks/SocialMediaLinks.vue +28 -26
- package/src/components/SubHeader/SubHeader.vue +32 -31
- package/src/components/SyAlert/SyAlert.vue +12 -12
- package/src/components/UserMenuBtn/UserMenuBtn.vue +1 -1
- package/src/components/UserMenuBtn/config.ts +1 -1
- package/src/components/index.ts +10 -7
- package/src/designTokens/index.ts +6 -4
- package/src/designTokens/{bootstrapColors.md → paColors.md} +1 -1
- package/src/designTokens/tokens/cnam/cnamLightTheme.ts +2 -0
- package/src/designTokens/tokens/pa/paColors.ts +171 -0
- package/src/designTokens/tokens/pa/paContextual.ts +58 -0
- package/src/designTokens/tokens/pa/paDarkTheme.ts +5 -0
- package/src/designTokens/tokens/pa/paLightTheme.ts +123 -0
- package/src/designTokens/tokens/pa/paSemantic.ts +87 -0
- package/src/stories/GuideDuDev/CreerUneIssue.mdx +64 -0
- package/src/stories/GuideDuDev/{CommentUtiliserLesRules.mdx → UtiliserLesRules.mdx} +2 -2
- package/src/stories/GuideDuDev/components.stories.ts +9 -7
- package/src/stories/Guidelines/Vuetify/Vuetify.stories.ts +163 -88
- package/src/stories/Guidelines/Vuetify/VuetifyItems.ts +250 -23
- package/src/temp/TestDTComponent.vue +5 -6
- package/src/designTokens/tokens/bootstrap/bootstrapColors.ts +0 -158
- package/src/designTokens/tokens/bootstrap/bootstrapLightTheme.ts +0 -22
- package/src/stories/GuideDuDev/CommentContribuer.mdx +0 -22
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import {
|
|
3
|
+
mdiChevronRight as rightArrowIcon,
|
|
4
|
+
mdiChevronLeft as leftArrowIcon,
|
|
5
|
+
mdiOpenInNew as linkIcon,
|
|
6
|
+
} from '@mdi/js'
|
|
7
|
+
|
|
8
|
+
import { locales } from './locales'
|
|
9
|
+
import { computed, ref, type CSSProperties } from 'vue'
|
|
10
|
+
import { convertToUnit } from '@/utils/convertToUnit'
|
|
11
|
+
import useCustomizableOptions, { type CustomizableOptions } from '@/composables/useCustomizableOptions'
|
|
12
|
+
import { config } from './config'
|
|
13
|
+
|
|
14
|
+
const props = withDefaults(defineProps<CustomizableOptions & {
|
|
15
|
+
items: Array<{
|
|
16
|
+
text: string
|
|
17
|
+
href: string
|
|
18
|
+
}>
|
|
19
|
+
position?: 'top right' | 'top left' | 'bottom right' | 'bottom left'
|
|
20
|
+
btnText?: string
|
|
21
|
+
nudgeTop?: number | string
|
|
22
|
+
nudgeBottom?: number | string
|
|
23
|
+
fixed?: boolean
|
|
24
|
+
ariaLabel?: string
|
|
25
|
+
ariaOwns?: string
|
|
26
|
+
}>(), {
|
|
27
|
+
position: 'top left',
|
|
28
|
+
btnText: locales.btnText,
|
|
29
|
+
nudgeTop: 0,
|
|
30
|
+
nudgeBottom: 0,
|
|
31
|
+
fixed: false,
|
|
32
|
+
ariaLabel: 'external-link-btn',
|
|
33
|
+
ariaOwns: 'external-link-btn',
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
const options = useCustomizableOptions(config, props)
|
|
37
|
+
|
|
38
|
+
const menu = ref(false)
|
|
39
|
+
const hover = ref(false)
|
|
40
|
+
const open = computed(() => menu.value || hover.value)
|
|
41
|
+
|
|
42
|
+
const left = computed(() => props.position.includes('left'))
|
|
43
|
+
const top = computed(() => props.position.includes('top'))
|
|
44
|
+
|
|
45
|
+
const btnStyle = computed<CSSProperties>(() => {
|
|
46
|
+
const minBtnWidth = '48px'
|
|
47
|
+
const translate = left.value
|
|
48
|
+
? `translateX(calc(-100% + ${minBtnWidth}))`
|
|
49
|
+
: `translateX(calc(100% - ${minBtnWidth}))`
|
|
50
|
+
|
|
51
|
+
return {
|
|
52
|
+
transform: open.value ? 'translateX(0)' : translate,
|
|
53
|
+
position: props.fixed ? 'fixed' : 'absolute',
|
|
54
|
+
flexDirection: left.value ? 'row' : 'row-reverse',
|
|
55
|
+
top: top.value ? convertToUnit(props.nudgeTop) : 'auto',
|
|
56
|
+
bottom: !top.value ? convertToUnit(props.nudgeBottom) : 'auto',
|
|
57
|
+
left: left.value ? 0 : 'auto',
|
|
58
|
+
right: !left.value ? 0 : 'auto',
|
|
59
|
+
// Change z-index to avoid shadow bleeding (VMenu is set to 4)
|
|
60
|
+
zIndex: top.value ? '4' : '5',
|
|
61
|
+
}
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
const arrowIcon = computed(() => {
|
|
65
|
+
if (open.value) {
|
|
66
|
+
return left.value ? leftArrowIcon : rightArrowIcon
|
|
67
|
+
}
|
|
68
|
+
return left.value ? rightArrowIcon : leftArrowIcon
|
|
69
|
+
})
|
|
70
|
+
</script>
|
|
71
|
+
|
|
72
|
+
<template>
|
|
73
|
+
<div
|
|
74
|
+
:id="props.ariaOwns"
|
|
75
|
+
>
|
|
76
|
+
<VMenu
|
|
77
|
+
v-bind="options.menu"
|
|
78
|
+
:id="props.ariaOwns"
|
|
79
|
+
v-model="menu"
|
|
80
|
+
:location="top ? 'bottom' : 'top'"
|
|
81
|
+
attach
|
|
82
|
+
transition="fade-transition"
|
|
83
|
+
class="vd-external-links"
|
|
84
|
+
:class="{
|
|
85
|
+
'vd-external-links--left': left,
|
|
86
|
+
'vd-external-links--right': !left,
|
|
87
|
+
}"
|
|
88
|
+
>
|
|
89
|
+
<template #activator="{ props: vMenuProps }">
|
|
90
|
+
<VBtn
|
|
91
|
+
v-bind="{
|
|
92
|
+
...vMenuProps,
|
|
93
|
+
...options.btn,
|
|
94
|
+
}"
|
|
95
|
+
:aria-label="props.ariaLabel"
|
|
96
|
+
:aria-owns="props.ariaOwns"
|
|
97
|
+
:style="btnStyle"
|
|
98
|
+
class="vd-external-links-btn"
|
|
99
|
+
@mouseenter="hover = true"
|
|
100
|
+
@mouseleave="hover = false"
|
|
101
|
+
@focusin="hover = true"
|
|
102
|
+
@focusout="hover = false"
|
|
103
|
+
>
|
|
104
|
+
<span
|
|
105
|
+
:class="{
|
|
106
|
+
'ml-3': !left,
|
|
107
|
+
'mr-3': left,
|
|
108
|
+
}"
|
|
109
|
+
class="vd-external-links-btn-text white--text"
|
|
110
|
+
>
|
|
111
|
+
{{ btnText }}
|
|
112
|
+
</span>
|
|
113
|
+
|
|
114
|
+
<VIcon v-bind="options.btnIcon">
|
|
115
|
+
{{ arrowIcon }}
|
|
116
|
+
</VIcon>
|
|
117
|
+
</VBtn>
|
|
118
|
+
</template>
|
|
119
|
+
|
|
120
|
+
<VList
|
|
121
|
+
v-if="items.length"
|
|
122
|
+
v-bind="options.list"
|
|
123
|
+
class="vd-external-links-list"
|
|
124
|
+
>
|
|
125
|
+
<VListItem
|
|
126
|
+
v-for="(item, index) in items"
|
|
127
|
+
:key="index"
|
|
128
|
+
:href="item.href"
|
|
129
|
+
v-bind="options.listItem"
|
|
130
|
+
>
|
|
131
|
+
<div class="d-flex flex-row justify-space-between">
|
|
132
|
+
<VListItemTitle v-bind="options.listItemTitle">
|
|
133
|
+
{{ item.text }}
|
|
134
|
+
</VListItemTitle>
|
|
135
|
+
|
|
136
|
+
<slot name="link-icon">
|
|
137
|
+
<VIcon v-bind="options.linkIcon">
|
|
138
|
+
{{ linkIcon }}
|
|
139
|
+
</VIcon>
|
|
140
|
+
</slot>
|
|
141
|
+
</div>
|
|
142
|
+
</VListItem>
|
|
143
|
+
</VList>
|
|
144
|
+
|
|
145
|
+
<VSheet
|
|
146
|
+
v-else
|
|
147
|
+
v-bind="options.sheet"
|
|
148
|
+
>
|
|
149
|
+
<p class="mb-0">
|
|
150
|
+
{{ locales.noData }}
|
|
151
|
+
</p>
|
|
152
|
+
</VSheet>
|
|
153
|
+
</VMenu>
|
|
154
|
+
</div>
|
|
155
|
+
</template>
|
|
156
|
+
|
|
157
|
+
<style lang="scss" scoped>
|
|
158
|
+
$list-max-height: 248px;
|
|
159
|
+
|
|
160
|
+
.vd-external-links-btn {
|
|
161
|
+
// Allow overgrow on mobile
|
|
162
|
+
max-width: none;
|
|
163
|
+
|
|
164
|
+
:deep(.v-btn__content) {
|
|
165
|
+
flex-direction: inherit;
|
|
166
|
+
justify-content: space-between;
|
|
167
|
+
width: 100%;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.v-icon {
|
|
171
|
+
font-size: 1.5rem;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.vd-external-links--left :deep(.v-overlay__content) {
|
|
176
|
+
left: 0 !important;
|
|
177
|
+
right: auto !important;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.vd-external-links--right :deep(.v-overlay__content) {
|
|
181
|
+
right: 0 !important;
|
|
182
|
+
left: auto !important;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
.vd-external-links > :deep(.v-overlay__content) {
|
|
186
|
+
border-radius: 0;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.vd-external-links-list {
|
|
190
|
+
max-height: $list-max-height;
|
|
191
|
+
overflow-y: auto;
|
|
192
|
+
border-radius: 0;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
@media only screen and (height <= 340px) {
|
|
196
|
+
.vd-external-links-btn {
|
|
197
|
+
z-index: 4 !important;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
</style>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { cnamColorsTokens } from '@/designTokens/tokens/cnam/cnamColors'
|
|
2
|
+
|
|
3
|
+
export const config = {
|
|
4
|
+
menu: {
|
|
5
|
+
tile: true,
|
|
6
|
+
zIndex: 4,
|
|
7
|
+
offset: 0,
|
|
8
|
+
},
|
|
9
|
+
btn: {
|
|
10
|
+
tile: true,
|
|
11
|
+
minHeight: '48px',
|
|
12
|
+
minWidth: '328px',
|
|
13
|
+
color: cnamColorsTokens.blue.lighten20,
|
|
14
|
+
class: 'd-flex px-3',
|
|
15
|
+
},
|
|
16
|
+
btnIcon: {
|
|
17
|
+
color: 'white',
|
|
18
|
+
},
|
|
19
|
+
linkIcon: {
|
|
20
|
+
color: 'rgba(0, 0, 0, .54)',
|
|
21
|
+
},
|
|
22
|
+
list: {
|
|
23
|
+
border: false,
|
|
24
|
+
elevation: 3,
|
|
25
|
+
class: 'py-0',
|
|
26
|
+
},
|
|
27
|
+
listItem: {
|
|
28
|
+
target: '_blank',
|
|
29
|
+
rel: 'noopener noreferrer',
|
|
30
|
+
},
|
|
31
|
+
sheet: {
|
|
32
|
+
class: 'px-4 py-3',
|
|
33
|
+
},
|
|
34
|
+
}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest'
|
|
2
|
+
import { shallowMount, mount } from '@vue/test-utils'
|
|
3
|
+
import { vuetify } from '@tests/unit/setup'
|
|
4
|
+
import { locales } from '../locales'
|
|
5
|
+
|
|
6
|
+
import ExternalLinks from '../ExternalLinks.vue'
|
|
7
|
+
|
|
8
|
+
describe('ExternalLinks', () => {
|
|
9
|
+
it('renders correctly', () => {
|
|
10
|
+
const wrapper = shallowMount(ExternalLinks, {
|
|
11
|
+
props: {
|
|
12
|
+
position: 'top left',
|
|
13
|
+
items: [
|
|
14
|
+
{
|
|
15
|
+
text: 'ameli.fr',
|
|
16
|
+
href: 'https://www.ameli.fr',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
text: 'Github',
|
|
20
|
+
href: 'https://www.github.com',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
text: 'Twitter',
|
|
24
|
+
href: 'https://www.twitter.com',
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
btnText: 'External Links',
|
|
28
|
+
nudgeTop: '0px',
|
|
29
|
+
nudgeBottom: '0px',
|
|
30
|
+
fixed: true,
|
|
31
|
+
},
|
|
32
|
+
global: {
|
|
33
|
+
plugins: [vuetify],
|
|
34
|
+
},
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
expect(wrapper.html()).toMatchSnapshot()
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
it('opens the menu when the button is clicked', async () => {
|
|
41
|
+
const wrapper = mount(ExternalLinks, {
|
|
42
|
+
props: {
|
|
43
|
+
position: 'top left',
|
|
44
|
+
items: [
|
|
45
|
+
{
|
|
46
|
+
text: 'ameli.fr',
|
|
47
|
+
href: 'https://www.ameli.fr',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
text: 'Github',
|
|
51
|
+
href: 'https://www.github.com',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
text: 'Twitter',
|
|
55
|
+
href: 'https://www.twitter.com',
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
global: {
|
|
60
|
+
plugins: [vuetify],
|
|
61
|
+
},
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
const button = wrapper.find('button')
|
|
65
|
+
expect(wrapper.find('.vd-external-links-list').exists()).toBe(false)
|
|
66
|
+
await button.trigger('click')
|
|
67
|
+
expect(wrapper.find('.vd-external-links-list').exists()).toBe(true)
|
|
68
|
+
expect(wrapper.html()).toMatchSnapshot()
|
|
69
|
+
})
|
|
70
|
+
|
|
71
|
+
it('renders correctly without items', async () => {
|
|
72
|
+
const wrapper = mount(ExternalLinks, {
|
|
73
|
+
props: {
|
|
74
|
+
position: 'top left',
|
|
75
|
+
items: [],
|
|
76
|
+
},
|
|
77
|
+
global: {
|
|
78
|
+
plugins: [vuetify],
|
|
79
|
+
},
|
|
80
|
+
})
|
|
81
|
+
|
|
82
|
+
const button = wrapper.find('button')
|
|
83
|
+
await button.trigger('click')
|
|
84
|
+
|
|
85
|
+
expect(wrapper.text()).toContain(locales.noData)
|
|
86
|
+
})
|
|
87
|
+
|
|
88
|
+
it('renders correctly with fixed prop', async () => {
|
|
89
|
+
const wrapper = mount(ExternalLinks, {
|
|
90
|
+
props: {
|
|
91
|
+
position: 'bottom right',
|
|
92
|
+
items: [
|
|
93
|
+
{
|
|
94
|
+
text: 'ameli.fr',
|
|
95
|
+
href: 'https://www.ameli.fr',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
text: 'Github',
|
|
99
|
+
href: 'https://www.github.com',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
text: 'Twitter',
|
|
103
|
+
href: 'https://www.twitter.com',
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
fixed: true,
|
|
107
|
+
},
|
|
108
|
+
global: {
|
|
109
|
+
plugins: [vuetify],
|
|
110
|
+
},
|
|
111
|
+
})
|
|
112
|
+
|
|
113
|
+
const button = wrapper.find('button')
|
|
114
|
+
await button.trigger('click')
|
|
115
|
+
|
|
116
|
+
expect(wrapper.html()).toMatchSnapshot()
|
|
117
|
+
expect(wrapper.find('.vd-external-links-btn').attributes('style')).toContain('position: fixed;')
|
|
118
|
+
})
|
|
119
|
+
|
|
120
|
+
it('slides on hover or focus', async () => {
|
|
121
|
+
const wrapper = mount(ExternalLinks, {
|
|
122
|
+
props: {
|
|
123
|
+
position: 'bottom right',
|
|
124
|
+
items: [],
|
|
125
|
+
},
|
|
126
|
+
global: {
|
|
127
|
+
plugins: [vuetify],
|
|
128
|
+
},
|
|
129
|
+
})
|
|
130
|
+
const button = wrapper.find('button')
|
|
131
|
+
expect(button.attributes('style')).toContain('transform: translateX(calc(100% - 48px));')
|
|
132
|
+
expect(wrapper.html()).toMatchSnapshot()
|
|
133
|
+
|
|
134
|
+
// set hover in mouseenter
|
|
135
|
+
await button.trigger('mouseenter')
|
|
136
|
+
expect(button.attributes('style')).toContain('transform: translateX(0);')
|
|
137
|
+
expect(wrapper.html()).toMatchSnapshot()
|
|
138
|
+
|
|
139
|
+
// remove hover mouseleave
|
|
140
|
+
await button.trigger('mouseleave')
|
|
141
|
+
expect(button.attributes('style')).toContain('transform: translateX(calc(100% - 48px));')
|
|
142
|
+
expect(wrapper.html()).toMatchSnapshot()
|
|
143
|
+
|
|
144
|
+
// set hover in focusin
|
|
145
|
+
await button.trigger('focusin')
|
|
146
|
+
expect(button.attributes('style')).toContain('transform: translateX(0);')
|
|
147
|
+
expect(wrapper.html()).toMatchSnapshot()
|
|
148
|
+
|
|
149
|
+
// remove hover focusout
|
|
150
|
+
await button.trigger('focusout')
|
|
151
|
+
expect(button.attributes('style')).toContain('transform: translateX(calc(100% - 48px));')
|
|
152
|
+
expect(wrapper.html()).toMatchSnapshot()
|
|
153
|
+
})
|
|
154
|
+
})
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
|
+
|
|
3
|
+
exports[`ExternalLinks > opens the menu when the button is clicked 1`] = `
|
|
4
|
+
"<div data-v-353763df="" id="external-link-btn"><button data-v-353763df="" type="button" class="v-btn v-btn--elevated v-theme--light v-btn--density-default rounded-0 v-btn--size-default v-btn--variant-elevated d-flex px-3 vd-external-links-btn" style="background-color: #3d67ae; color: #fff; caret-color: #fff; min-height: 48px; min-width: 328px; transform: translateX(0); position: absolute; flex-direction: row; top: 0px; bottom: auto; left: 0px; right: auto; z-index: 4;" aria-haspopup="menu" aria-expanded="true" aria-owns="external-link-btn" aria-label="external-link-btn"><span class="v-btn__overlay"></span><span class="v-btn__underlay"></span>
|
|
5
|
+
<!----><span class="v-btn__content" data-no-activator=""><span data-v-353763df="" class="mr-3 vd-external-links-btn-text white--text">Consulter les données externes</span><i data-v-353763df="" class="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z mdi v-icon notranslate v-theme--light v-icon--size-default text-white" aria-hidden="true"></i></span>
|
|
6
|
+
<!---->
|
|
7
|
+
<!---->
|
|
8
|
+
</button>
|
|
9
|
+
<!--teleport start-->
|
|
10
|
+
<div class="v-overlay v-overlay--absolute v-overlay--active v-theme--light v-locale--is-ltr v-menu vd-external-links vd-external-links--left" style="z-index: 4;" id="external-link-btn" data-v-353763df="" tile="true">
|
|
11
|
+
<transition-stub name="fade-transition" appear="true" persisted="false" css="true">
|
|
12
|
+
<!---->
|
|
13
|
+
</transition-stub>
|
|
14
|
+
<transition-stub name="fade-transition" appear="true" persisted="true" css="true" target="<button data-v-353763df="" type="button" class="v-btn v-btn--elevated v-theme--light v-btn--density-default rounded-0 v-btn--size-default v-btn--variant-elevated d-flex px-3 vd-external-links-btn" style="background-color: #3d67ae; color: #fff; caret-color: #fff; min-height: 48px; min-width: 328px; transform: translateX(0); position: absolute; flex-direction: row; top: 0px; bottom: auto; left: 0px; right: auto; z-index: 4;" aria-haspopup="menu" aria-expanded="true" aria-owns="external-link-btn" aria-label="external-link-btn"><span class="v-btn__overlay"></span><span class="v-btn__underlay"></span><!----><span class="v-btn__content" data-no-activator=""><span data-v-353763df="" class="mr-3 vd-external-links-btn-text white--text">Consulter les données externes</span><i data-v-353763df="" class="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z mdi v-icon notranslate v-theme--light v-icon--size-default text-white" aria-hidden="true"></i></span><!----><!----></button>">
|
|
15
|
+
<div class="v-overlay__content" style="--v-overlay-anchor-origin: top right; transform-origin: bottom right; top: 12px; left: 12px; min-width: 0px; max-width: 0px; max-height: 0px;">
|
|
16
|
+
<div data-v-353763df="" class="v-list v-theme--light v-list--density-default elevation-3 v-list--one-line py-0 vd-external-links-list" tabindex="0" role="listbox"><a data-v-353763df="" class="v-list-item v-list-item--link v-theme--light v-list-item--density-default v-list-item--one-line rounded-0 v-list-item--variant-text" tabindex="-2" href="https://www.ameli.fr" target="_blank" rel="noopener noreferrer"><span class="v-list-item__overlay"></span><span class="v-list-item__underlay"></span>
|
|
17
|
+
<!---->
|
|
18
|
+
<div class="v-list-item__content" data-no-activator="">
|
|
19
|
+
<!---->
|
|
20
|
+
<!---->
|
|
21
|
+
<div data-v-353763df="" class="d-flex flex-row justify-space-between">
|
|
22
|
+
<div data-v-353763df="" class="v-list-item-title">ameli.fr</div><i data-v-353763df="" class="M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z mdi v-icon notranslate v-theme--light v-icon--size-default" style="color: rgba(0, 0, 0, .54); caret-color: rgba(0, 0, 0, .54);" aria-hidden="true"></i>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
<!---->
|
|
26
|
+
</a><a data-v-353763df="" class="v-list-item v-list-item--link v-theme--light v-list-item--density-default v-list-item--one-line rounded-0 v-list-item--variant-text" tabindex="-2" href="https://www.github.com" target="_blank" rel="noopener noreferrer"><span class="v-list-item__overlay"></span><span class="v-list-item__underlay"></span>
|
|
27
|
+
<!---->
|
|
28
|
+
<div class="v-list-item__content" data-no-activator="">
|
|
29
|
+
<!---->
|
|
30
|
+
<!---->
|
|
31
|
+
<div data-v-353763df="" class="d-flex flex-row justify-space-between">
|
|
32
|
+
<div data-v-353763df="" class="v-list-item-title">Github</div><i data-v-353763df="" class="M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z mdi v-icon notranslate v-theme--light v-icon--size-default" style="color: rgba(0, 0, 0, .54); caret-color: rgba(0, 0, 0, .54);" aria-hidden="true"></i>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
<!---->
|
|
36
|
+
</a><a data-v-353763df="" class="v-list-item v-list-item--link v-theme--light v-list-item--density-default v-list-item--one-line rounded-0 v-list-item--variant-text" tabindex="-2" href="https://www.twitter.com" target="_blank" rel="noopener noreferrer"><span class="v-list-item__overlay"></span><span class="v-list-item__underlay"></span>
|
|
37
|
+
<!---->
|
|
38
|
+
<div class="v-list-item__content" data-no-activator="">
|
|
39
|
+
<!---->
|
|
40
|
+
<!---->
|
|
41
|
+
<div data-v-353763df="" class="d-flex flex-row justify-space-between">
|
|
42
|
+
<div data-v-353763df="" class="v-list-item-title">Twitter</div><i data-v-353763df="" class="M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z mdi v-icon notranslate v-theme--light v-icon--size-default" style="color: rgba(0, 0, 0, .54); caret-color: rgba(0, 0, 0, .54);" aria-hidden="true"></i>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
<!---->
|
|
46
|
+
</a></div>
|
|
47
|
+
</div>
|
|
48
|
+
</transition-stub>
|
|
49
|
+
</div>
|
|
50
|
+
<!--teleport end-->
|
|
51
|
+
</div>"
|
|
52
|
+
`;
|
|
53
|
+
|
|
54
|
+
exports[`ExternalLinks > renders correctly 1`] = `
|
|
55
|
+
"<div data-v-353763df="" id="external-link-btn">
|
|
56
|
+
<v-menu-stub data-v-353763df="" offset="0" id="external-link-btn" class="vd-external-links vd-external-links--left" submenu="false" attach="true" closeonback="true" contained="false" disabled="false" noclickanimation="false" modelvalue="false" persistent="false" scrim="false" zindex="4" activatorprops="[object Object]" openonhover="false" closeoncontentclick="true" closedelay="250" opendelay="300" eager="false" locationstrategy="connected" location="bottom" origin="auto" scrollstrategy="reposition" transition="fade-transition" tile="true"></v-menu-stub>
|
|
57
|
+
</div>"
|
|
58
|
+
`;
|
|
59
|
+
|
|
60
|
+
exports[`ExternalLinks > renders correctly with fixed prop 1`] = `
|
|
61
|
+
"<div data-v-353763df="" id="external-link-btn"><button data-v-353763df="" type="button" class="v-btn v-btn--elevated v-theme--light v-btn--density-default rounded-0 v-btn--size-default v-btn--variant-elevated d-flex px-3 vd-external-links-btn" style="background-color: #3d67ae; color: #fff; caret-color: #fff; min-height: 48px; min-width: 328px; transform: translateX(0); position: fixed; flex-direction: row-reverse; top: auto; bottom: 0px; left: auto; right: 0px; z-index: 5;" aria-haspopup="menu" aria-expanded="true" aria-owns="external-link-btn" aria-label="external-link-btn"><span class="v-btn__overlay"></span><span class="v-btn__underlay"></span>
|
|
62
|
+
<!----><span class="v-btn__content" data-no-activator=""><span data-v-353763df="" class="ml-3 vd-external-links-btn-text white--text">Consulter les données externes</span><i data-v-353763df="" class="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z mdi v-icon notranslate v-theme--light v-icon--size-default text-white" aria-hidden="true"></i></span>
|
|
63
|
+
<!---->
|
|
64
|
+
<!---->
|
|
65
|
+
</button>
|
|
66
|
+
<!--teleport start-->
|
|
67
|
+
<div class="v-overlay v-overlay--absolute v-overlay--active v-theme--light v-locale--is-ltr v-menu vd-external-links vd-external-links--right" style="z-index: 24;" id="external-link-btn" data-v-353763df="" tile="true">
|
|
68
|
+
<transition-stub name="fade-transition" appear="true" persisted="false" css="true">
|
|
69
|
+
<!---->
|
|
70
|
+
</transition-stub>
|
|
71
|
+
<transition-stub name="fade-transition" appear="true" persisted="true" css="true" target="<button data-v-353763df="" type="button" class="v-btn v-btn--elevated v-theme--light v-btn--density-default rounded-0 v-btn--size-default v-btn--variant-elevated d-flex px-3 vd-external-links-btn" style="background-color: #3d67ae; color: #fff; caret-color: #fff; min-height: 48px; min-width: 328px; transform: translateX(0); position: fixed; flex-direction: row-reverse; top: auto; bottom: 0px; left: auto; right: 0px; z-index: 5;" aria-haspopup="menu" aria-expanded="true" aria-owns="external-link-btn" aria-label="external-link-btn"><span class="v-btn__overlay"></span><span class="v-btn__underlay"></span><!----><span class="v-btn__content" data-no-activator=""><span data-v-353763df="" class="ml-3 vd-external-links-btn-text white--text">Consulter les données externes</span><i data-v-353763df="" class="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z mdi v-icon notranslate v-theme--light v-icon--size-default text-white" aria-hidden="true"></i></span><!----><!----></button>">
|
|
72
|
+
<div class="v-overlay__content" style="--v-overlay-anchor-origin: bottom right; transform-origin: top right; top: 12px; left: 12px; min-width: 0px; max-width: 0px; max-height: 0px;">
|
|
73
|
+
<div data-v-353763df="" class="v-list v-theme--light v-list--density-default elevation-3 v-list--one-line py-0 vd-external-links-list" tabindex="0" role="listbox"><a data-v-353763df="" class="v-list-item v-list-item--link v-theme--light v-list-item--density-default v-list-item--one-line rounded-0 v-list-item--variant-text" tabindex="-2" href="https://www.ameli.fr" target="_blank" rel="noopener noreferrer"><span class="v-list-item__overlay"></span><span class="v-list-item__underlay"></span>
|
|
74
|
+
<!---->
|
|
75
|
+
<div class="v-list-item__content" data-no-activator="">
|
|
76
|
+
<!---->
|
|
77
|
+
<!---->
|
|
78
|
+
<div data-v-353763df="" class="d-flex flex-row justify-space-between">
|
|
79
|
+
<div data-v-353763df="" class="v-list-item-title">ameli.fr</div><i data-v-353763df="" class="M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z mdi v-icon notranslate v-theme--light v-icon--size-default" style="color: rgba(0, 0, 0, .54); caret-color: rgba(0, 0, 0, .54);" aria-hidden="true"></i>
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
<!---->
|
|
83
|
+
</a><a data-v-353763df="" class="v-list-item v-list-item--link v-theme--light v-list-item--density-default v-list-item--one-line rounded-0 v-list-item--variant-text" tabindex="-2" href="https://www.github.com" target="_blank" rel="noopener noreferrer"><span class="v-list-item__overlay"></span><span class="v-list-item__underlay"></span>
|
|
84
|
+
<!---->
|
|
85
|
+
<div class="v-list-item__content" data-no-activator="">
|
|
86
|
+
<!---->
|
|
87
|
+
<!---->
|
|
88
|
+
<div data-v-353763df="" class="d-flex flex-row justify-space-between">
|
|
89
|
+
<div data-v-353763df="" class="v-list-item-title">Github</div><i data-v-353763df="" class="M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z mdi v-icon notranslate v-theme--light v-icon--size-default" style="color: rgba(0, 0, 0, .54); caret-color: rgba(0, 0, 0, .54);" aria-hidden="true"></i>
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
<!---->
|
|
93
|
+
</a><a data-v-353763df="" class="v-list-item v-list-item--link v-theme--light v-list-item--density-default v-list-item--one-line rounded-0 v-list-item--variant-text" tabindex="-2" href="https://www.twitter.com" target="_blank" rel="noopener noreferrer"><span class="v-list-item__overlay"></span><span class="v-list-item__underlay"></span>
|
|
94
|
+
<!---->
|
|
95
|
+
<div class="v-list-item__content" data-no-activator="">
|
|
96
|
+
<!---->
|
|
97
|
+
<!---->
|
|
98
|
+
<div data-v-353763df="" class="d-flex flex-row justify-space-between">
|
|
99
|
+
<div data-v-353763df="" class="v-list-item-title">Twitter</div><i data-v-353763df="" class="M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z mdi v-icon notranslate v-theme--light v-icon--size-default" style="color: rgba(0, 0, 0, .54); caret-color: rgba(0, 0, 0, .54);" aria-hidden="true"></i>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
<!---->
|
|
103
|
+
</a></div>
|
|
104
|
+
</div>
|
|
105
|
+
</transition-stub>
|
|
106
|
+
</div>
|
|
107
|
+
<!--teleport end-->
|
|
108
|
+
</div>"
|
|
109
|
+
`;
|
|
110
|
+
|
|
111
|
+
exports[`ExternalLinks > slides on hover or focus 1`] = `
|
|
112
|
+
"<div data-v-353763df="" id="external-link-btn"><button data-v-353763df="" type="button" class="v-btn v-btn--elevated v-theme--light v-btn--density-default rounded-0 v-btn--size-default v-btn--variant-elevated d-flex px-3 vd-external-links-btn" style="background-color: #3d67ae; color: #fff; caret-color: #fff; min-height: 48px; min-width: 328px; transform: translateX(calc(100% - 48px)); position: absolute; flex-direction: row-reverse; top: auto; bottom: 0px; left: auto; right: 0px; z-index: 5;" aria-haspopup="menu" aria-expanded="false" aria-owns="external-link-btn" aria-label="external-link-btn"><span class="v-btn__overlay"></span><span class="v-btn__underlay"></span>
|
|
113
|
+
<!----><span class="v-btn__content" data-no-activator=""><span data-v-353763df="" class="ml-3 vd-external-links-btn-text white--text">Consulter les données externes</span><i data-v-353763df="" class="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z mdi v-icon notranslate v-theme--light v-icon--size-default text-white" aria-hidden="true"></i></span>
|
|
114
|
+
<!---->
|
|
115
|
+
<!---->
|
|
116
|
+
</button>
|
|
117
|
+
<!---->
|
|
118
|
+
</div>"
|
|
119
|
+
`;
|
|
120
|
+
|
|
121
|
+
exports[`ExternalLinks > slides on hover or focus 2`] = `
|
|
122
|
+
"<div data-v-353763df="" id="external-link-btn"><button data-v-353763df="" type="button" class="v-btn v-btn--elevated v-theme--light v-btn--density-default rounded-0 v-btn--size-default v-btn--variant-elevated d-flex px-3 vd-external-links-btn" style="background-color: #3d67ae; color: #fff; caret-color: #fff; min-height: 48px; min-width: 328px; transform: translateX(0); position: absolute; flex-direction: row-reverse; top: auto; bottom: 0px; left: auto; right: 0px; z-index: 5;" aria-haspopup="menu" aria-expanded="false" aria-owns="external-link-btn" aria-label="external-link-btn"><span class="v-btn__overlay"></span><span class="v-btn__underlay"></span>
|
|
123
|
+
<!----><span class="v-btn__content" data-no-activator=""><span data-v-353763df="" class="ml-3 vd-external-links-btn-text white--text">Consulter les données externes</span><i data-v-353763df="" class="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z mdi v-icon notranslate v-theme--light v-icon--size-default text-white" aria-hidden="true"></i></span>
|
|
124
|
+
<!---->
|
|
125
|
+
<!---->
|
|
126
|
+
</button>
|
|
127
|
+
<!---->
|
|
128
|
+
</div>"
|
|
129
|
+
`;
|
|
130
|
+
|
|
131
|
+
exports[`ExternalLinks > slides on hover or focus 3`] = `
|
|
132
|
+
"<div data-v-353763df="" id="external-link-btn"><button data-v-353763df="" type="button" class="v-btn v-btn--elevated v-theme--light v-btn--density-default rounded-0 v-btn--size-default v-btn--variant-elevated d-flex px-3 vd-external-links-btn" style="background-color: #3d67ae; color: #fff; caret-color: #fff; min-height: 48px; min-width: 328px; transform: translateX(calc(100% - 48px)); position: absolute; flex-direction: row-reverse; top: auto; bottom: 0px; left: auto; right: 0px; z-index: 5;" aria-haspopup="menu" aria-expanded="false" aria-owns="external-link-btn" aria-label="external-link-btn"><span class="v-btn__overlay"></span><span class="v-btn__underlay"></span>
|
|
133
|
+
<!----><span class="v-btn__content" data-no-activator=""><span data-v-353763df="" class="ml-3 vd-external-links-btn-text white--text">Consulter les données externes</span><i data-v-353763df="" class="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z mdi v-icon notranslate v-theme--light v-icon--size-default text-white" aria-hidden="true"></i></span>
|
|
134
|
+
<!---->
|
|
135
|
+
<!---->
|
|
136
|
+
</button>
|
|
137
|
+
<!---->
|
|
138
|
+
</div>"
|
|
139
|
+
`;
|
|
140
|
+
|
|
141
|
+
exports[`ExternalLinks > slides on hover or focus 4`] = `
|
|
142
|
+
"<div data-v-353763df="" id="external-link-btn"><button data-v-353763df="" type="button" class="v-btn v-btn--elevated v-theme--light v-btn--density-default rounded-0 v-btn--size-default v-btn--variant-elevated d-flex px-3 vd-external-links-btn" style="background-color: #3d67ae; color: #fff; caret-color: #fff; min-height: 48px; min-width: 328px; transform: translateX(0); position: absolute; flex-direction: row-reverse; top: auto; bottom: 0px; left: auto; right: 0px; z-index: 5;" aria-haspopup="menu" aria-expanded="false" aria-owns="external-link-btn" aria-label="external-link-btn"><span class="v-btn__overlay"></span><span class="v-btn__underlay"></span>
|
|
143
|
+
<!----><span class="v-btn__content" data-no-activator=""><span data-v-353763df="" class="ml-3 vd-external-links-btn-text white--text">Consulter les données externes</span><i data-v-353763df="" class="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z mdi v-icon notranslate v-theme--light v-icon--size-default text-white" aria-hidden="true"></i></span>
|
|
144
|
+
<!---->
|
|
145
|
+
<!---->
|
|
146
|
+
</button>
|
|
147
|
+
<!---->
|
|
148
|
+
</div>"
|
|
149
|
+
`;
|
|
150
|
+
|
|
151
|
+
exports[`ExternalLinks > slides on hover or focus 5`] = `
|
|
152
|
+
"<div data-v-353763df="" id="external-link-btn"><button data-v-353763df="" type="button" class="v-btn v-btn--elevated v-theme--light v-btn--density-default rounded-0 v-btn--size-default v-btn--variant-elevated d-flex px-3 vd-external-links-btn" style="background-color: #3d67ae; color: #fff; caret-color: #fff; min-height: 48px; min-width: 328px; transform: translateX(calc(100% - 48px)); position: absolute; flex-direction: row-reverse; top: auto; bottom: 0px; left: auto; right: 0px; z-index: 5;" aria-haspopup="menu" aria-expanded="false" aria-owns="external-link-btn" aria-label="external-link-btn"><span class="v-btn__overlay"></span><span class="v-btn__underlay"></span>
|
|
153
|
+
<!----><span class="v-btn__content" data-no-activator=""><span data-v-353763df="" class="ml-3 vd-external-links-btn-text white--text">Consulter les données externes</span><i data-v-353763df="" class="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z mdi v-icon notranslate v-theme--light v-icon--size-default text-white" aria-hidden="true"></i></span>
|
|
154
|
+
<!---->
|
|
155
|
+
<!---->
|
|
156
|
+
</button>
|
|
157
|
+
<!---->
|
|
158
|
+
</div>"
|
|
159
|
+
`;
|