@cnamts/synapse 0.0.7-alpha → 0.0.9-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 +785 -372
- package/dist/design-system-v3.js +4993 -3357
- 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/Accessibilite.mdx +14 -0
- package/src/components/ContextualMenu/Accessibilite.stories.ts +191 -0
- package/src/components/ContextualMenu/AccessibiliteItems.ts +89 -0
- 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/constants/ExpertiseLevelEnum.ts +4 -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.stories.ts +7 -7
- package/src/components/Customs/SySelect/SySelect.vue +36 -30
- package/src/components/Customs/SySelect/tests/SySelect.spec.ts +2 -2
- package/src/components/Customs/SyTextField/SyTextField.stories.ts +187 -2
- package/src/components/Customs/SyTextField/SyTextField.vue +185 -16
- package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +2 -4
- package/src/components/Customs/SyTextField/tests/__snapshots__/SyTextField.spec.ts.snap +18 -16
- package/src/components/Customs/SyTextField/types.d.ts +2 -2
- 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/DatePicker/DatePicker.mdx +191 -0
- package/src/components/DatePicker/DatePicker.stories.ts +787 -0
- package/src/components/DatePicker/DatePicker.vue +560 -0
- package/src/components/DatePicker/DateTextInput.vue +409 -0
- package/src/components/DatePicker/tests/DatePicker.spec.ts +266 -0
- package/src/components/DialogBox/DialogBox.mdx +28 -2
- package/src/components/DialogBox/DialogBox.stories.ts +2 -2
- package/src/components/DialogBox/DialogBox.vue +3 -2
- package/src/components/DownloadBtn/DownloadBtn.vue +2 -1
- package/src/components/ExternalLinks/Accessibilite.mdx +14 -0
- package/src/components/ExternalLinks/Accessibilite.stories.ts +191 -0
- package/src/components/ExternalLinks/AccessibiliteItems.ts +197 -0
- 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/constants/ExpertiseLevelEnum.ts +4 -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/FileUpload/FileUpload.mdx +165 -0
- package/src/components/FileUpload/FileUpload.stories.ts +429 -0
- package/src/components/FileUpload/FileUpload.vue +195 -0
- package/src/components/FileUpload/FileUploadContent.vue +109 -0
- package/src/components/FileUpload/locales.ts +10 -0
- package/src/components/FileUpload/tests/FileUpload.spec.ts +332 -0
- package/src/components/FileUpload/tests/__snapshots__/FileUpload.spec.ts.snap +7 -0
- package/src/components/FileUpload/useFileDrop.ts +23 -0
- package/src/components/FileUpload/validateFiles.ts +39 -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 +8 -8
- package/src/components/NirField/NirField.vue +46 -48
- 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/Accessibilite.mdx +14 -0
- package/src/components/PasswordField/Accessibilite.stories.ts +191 -0
- package/src/components/PasswordField/AccessibiliteItems.ts +184 -0
- 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/constants/ExpertiseLevelEnum.ts +4 -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 +77 -93
- package/src/components/PhoneField/tests/PhoneField.spec.ts +0 -15
- package/src/components/RangeField/RangeField.mdx +54 -0
- package/src/components/RangeField/RangeField.stories.ts +189 -0
- package/src/components/RangeField/RangeField.vue +157 -0
- package/src/components/RangeField/RangeSlider/RangeSlider.vue +387 -0
- package/src/components/RangeField/RangeSlider/Tooltip/Tooltip.vue +64 -0
- package/src/components/RangeField/RangeSlider/tests/__snapshots__/rangeSlider.spec.ts.snap +27 -0
- package/src/components/RangeField/RangeSlider/tests/rangeSlider.spec.ts +100 -0
- package/src/components/RangeField/RangeSlider/tests/useDoubleSlider.spec.ts +246 -0
- package/src/components/RangeField/RangeSlider/tests/useMouseSlide.spec.ts +204 -0
- package/src/components/RangeField/RangeSlider/tests/useThumb.spec.ts +22 -0
- package/src/components/RangeField/RangeSlider/tests/useThumbKeyboard.spec.ts +233 -0
- package/src/components/RangeField/RangeSlider/tests/useTooltipsNudge.spec.ts +150 -0
- package/src/components/RangeField/RangeSlider/tests/useTrack.spec.ts +314 -0
- package/src/components/RangeField/RangeSlider/tests/vAnimateClick.spec.ts +32 -0
- package/src/components/RangeField/RangeSlider/types.ts +15 -0
- package/src/components/RangeField/RangeSlider/useMouseSlide.ts +109 -0
- package/src/components/RangeField/RangeSlider/useRangeSlider.ts +126 -0
- package/src/components/RangeField/RangeSlider/useThumb.ts +18 -0
- package/src/components/RangeField/RangeSlider/useThumbKeyboard.ts +84 -0
- package/src/components/RangeField/RangeSlider/useTooltipsNudge.ts +92 -0
- package/src/components/RangeField/RangeSlider/useTrack.ts +116 -0
- package/src/components/RangeField/RangeSlider/vAnimateClick.ts +19 -0
- package/src/components/RangeField/config.ts +7 -0
- package/src/components/RangeField/locales.ts +4 -0
- package/src/components/RangeField/tests/RangeField.spec.ts +224 -0
- package/src/components/RangeField/tests/__snapshots__/RangeField.spec.ts.snap +379 -0
- package/src/components/RatingPicker/EmotionPicker/EmotionPicker.vue +205 -0
- package/src/components/RatingPicker/EmotionPicker/locales.ts +3 -0
- package/src/components/RatingPicker/EmotionPicker/tests/EmotionPicker.spec.ts +104 -0
- package/src/components/RatingPicker/EmotionPicker/tests/__snapshots__/EmotionPicker.spec.ts.snap +66 -0
- package/src/components/RatingPicker/NumberPicker/NumberPicker.vue +159 -0
- package/src/components/RatingPicker/NumberPicker/locales.ts +4 -0
- package/src/components/RatingPicker/NumberPicker/tests/NumberPicker.spec.ts +73 -0
- package/src/components/RatingPicker/NumberPicker/tests/__snapshots__/NumberPicker.spec.ts.snap +105 -0
- package/src/components/RatingPicker/Rating.ts +45 -0
- package/src/components/RatingPicker/RatingPicker.mdx +56 -0
- package/src/components/RatingPicker/RatingPicker.stories.ts +515 -0
- package/src/components/RatingPicker/RatingPicker.vue +122 -0
- package/src/components/RatingPicker/StarsPicker/StarsPicker.vue +116 -0
- package/src/components/RatingPicker/StarsPicker/tests/StarsPicker.spec.ts +95 -0
- package/src/components/RatingPicker/StarsPicker/tests/__snapshots__/StarsPicker.spec.ts.snap +36 -0
- package/src/components/RatingPicker/locales.ts +3 -0
- package/src/components/RatingPicker/tests/Rating.spec.ts +104 -0
- package/src/components/RatingPicker/tests/RatingPicker.spec.ts +187 -0
- package/src/components/RatingPicker/tests/__snapshots__/RatingPicker.spec.ts.snap +108 -0
- package/src/components/SearchListField/SearchListField.mdx +74 -0
- package/src/components/SearchListField/SearchListField.stories.ts +126 -0
- package/src/components/SearchListField/SearchListField.vue +194 -0
- package/src/components/SearchListField/locales.ts +5 -0
- package/src/components/SearchListField/tests/SearchListField.spec.ts +323 -0
- package/src/components/SearchListField/types.d.ts +4 -0
- package/src/components/SelectBtnField/SelectBtnField.mdx +50 -0
- package/src/components/SelectBtnField/SelectBtnField.stories.ts +763 -0
- package/src/components/SelectBtnField/SelectBtnField.vue +283 -0
- package/src/components/SelectBtnField/config.ts +11 -0
- package/src/components/SelectBtnField/tests/SelectBtnField.spec.ts +327 -0
- package/src/components/SelectBtnField/tests/__snapshots__/SelectBtnField.spec.ts.snap +125 -0
- package/src/components/SelectBtnField/types.d.ts +11 -0
- 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 +17 -7
- package/src/composables/rules/useFieldValidation.ts +172 -44
- 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/Fondamentaux/CustomisationEtThemes.mdx +52 -2
- 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/utils/calcHumanFileSize/index.ts +12 -0
- package/src/utils/calcHumanFileSize/tests/calcHumanFileSize.spec.ts +21 -0
- 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,224 @@
|
|
|
1
|
+
import { vuetify } from '@tests/unit/setup'
|
|
2
|
+
import { DOMWrapper, mount } from '@vue/test-utils'
|
|
3
|
+
import { describe, expect, it } from 'vitest'
|
|
4
|
+
import RangeField from '../RangeField.vue'
|
|
5
|
+
|
|
6
|
+
describe('RangeField', () => {
|
|
7
|
+
it('renders correctly', () => {
|
|
8
|
+
const wrapper = mount(RangeField, {
|
|
9
|
+
global: {
|
|
10
|
+
plugins: [vuetify],
|
|
11
|
+
},
|
|
12
|
+
props: {
|
|
13
|
+
modelValue: [50, 80],
|
|
14
|
+
min: 0,
|
|
15
|
+
max: 100,
|
|
16
|
+
},
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
expect(wrapper.html()).toMatchSnapshot()
|
|
20
|
+
const inputMin = wrapper.find('input')
|
|
21
|
+
const inputMax = wrapper.findAll('input').at(1) as DOMWrapper<HTMLInputElement>
|
|
22
|
+
|
|
23
|
+
expect(inputMin.exists()).toBe(true)
|
|
24
|
+
expect(inputMax.exists()).toBe(true)
|
|
25
|
+
|
|
26
|
+
expect(inputMin.element.value).toBe('50')
|
|
27
|
+
expect(inputMax.element.value).toBe('80')
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
it('render correctly when the modelValue is not defined', async () => {
|
|
31
|
+
const wrapper = mount(RangeField, {
|
|
32
|
+
global: {
|
|
33
|
+
plugins: [vuetify],
|
|
34
|
+
},
|
|
35
|
+
props: {
|
|
36
|
+
min: 0,
|
|
37
|
+
max: 100,
|
|
38
|
+
},
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
expect(wrapper.html()).toMatchSnapshot()
|
|
42
|
+
const inputMin = wrapper.find('input')
|
|
43
|
+
const inputMax = wrapper.findAll('input').at(1) as DOMWrapper<HTMLInputElement>
|
|
44
|
+
|
|
45
|
+
expect(inputMin.element.value).toBe('0')
|
|
46
|
+
expect(inputMax.element.value).toBe('100')
|
|
47
|
+
})
|
|
48
|
+
|
|
49
|
+
it('updates modelValue when input changes', async () => {
|
|
50
|
+
const wrapper = mount(RangeField, {
|
|
51
|
+
global: {
|
|
52
|
+
plugins: [vuetify],
|
|
53
|
+
},
|
|
54
|
+
props: {
|
|
55
|
+
modelValue: [50, 80],
|
|
56
|
+
min: 0,
|
|
57
|
+
max: 100,
|
|
58
|
+
},
|
|
59
|
+
})
|
|
60
|
+
|
|
61
|
+
const inputMin = wrapper.find('input')
|
|
62
|
+
const inputMax = wrapper.findAll('input').at(1) as DOMWrapper<HTMLInputElement>
|
|
63
|
+
|
|
64
|
+
await inputMin.setValue('40')
|
|
65
|
+
await inputMax.setValue('90')
|
|
66
|
+
|
|
67
|
+
expect(wrapper.emitted('update:modelValue')?.at(-1)).toEqual([[40, 90]])
|
|
68
|
+
})
|
|
69
|
+
|
|
70
|
+
it('updates modelValue when the slider is updated', async () => {
|
|
71
|
+
const wrapper = mount(RangeField, {
|
|
72
|
+
global: {
|
|
73
|
+
plugins: [vuetify],
|
|
74
|
+
},
|
|
75
|
+
props: {
|
|
76
|
+
modelValue: [50, 80],
|
|
77
|
+
min: 0,
|
|
78
|
+
max: 100,
|
|
79
|
+
step: 5,
|
|
80
|
+
},
|
|
81
|
+
})
|
|
82
|
+
|
|
83
|
+
const minThumb = wrapper.find('.thumb-min')
|
|
84
|
+
await minThumb.trigger('keydown', { key: 'ArrowRight' })
|
|
85
|
+
await wrapper.vm.$nextTick()
|
|
86
|
+
|
|
87
|
+
expect(wrapper.emitted('update:modelValue')?.[0]).toEqual([[55, 80]])
|
|
88
|
+
})
|
|
89
|
+
|
|
90
|
+
it('renders correctly with value NaN', async () => {
|
|
91
|
+
const wrapper = mount(RangeField, {
|
|
92
|
+
global: {
|
|
93
|
+
plugins: [vuetify],
|
|
94
|
+
},
|
|
95
|
+
props: {
|
|
96
|
+
modelValue: [NaN, NaN],
|
|
97
|
+
min: 0,
|
|
98
|
+
max: 100,
|
|
99
|
+
},
|
|
100
|
+
})
|
|
101
|
+
|
|
102
|
+
expect(wrapper.html()).toMatchSnapshot()
|
|
103
|
+
const inputMin = wrapper.find('input')
|
|
104
|
+
const inputMax = wrapper.findAll('input').at(1) as DOMWrapper<HTMLInputElement>
|
|
105
|
+
|
|
106
|
+
expect(inputMin.element.value).toBe('0')
|
|
107
|
+
expect(inputMax.element.value).toBe('0')
|
|
108
|
+
})
|
|
109
|
+
|
|
110
|
+
it('updates input value when modelValue changes', async () => {
|
|
111
|
+
const wrapper = mount(RangeField, {
|
|
112
|
+
global: {
|
|
113
|
+
plugins: [vuetify],
|
|
114
|
+
},
|
|
115
|
+
props: {
|
|
116
|
+
modelValue: [50, 80],
|
|
117
|
+
min: 0,
|
|
118
|
+
max: 100,
|
|
119
|
+
},
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
await wrapper.setProps({ modelValue: [40, 90] })
|
|
123
|
+
|
|
124
|
+
const inputMin = wrapper.find('input')
|
|
125
|
+
const inputMax = wrapper.findAll('input').at(1) as DOMWrapper<HTMLInputElement>
|
|
126
|
+
|
|
127
|
+
expect(inputMin.element.value).toBe('40')
|
|
128
|
+
expect(inputMax.element.value).toBe('90')
|
|
129
|
+
})
|
|
130
|
+
|
|
131
|
+
it('set the value into the range if it is out of bounds', async () => {
|
|
132
|
+
const wrapper = mount(RangeField, {
|
|
133
|
+
global: {
|
|
134
|
+
plugins: [vuetify],
|
|
135
|
+
},
|
|
136
|
+
props: {
|
|
137
|
+
modelValue: [50, 80],
|
|
138
|
+
min: 0,
|
|
139
|
+
max: 100,
|
|
140
|
+
},
|
|
141
|
+
})
|
|
142
|
+
|
|
143
|
+
await wrapper.setProps({ modelValue: [-10, 200] })
|
|
144
|
+
|
|
145
|
+
const inputMin = wrapper.find('input')
|
|
146
|
+
const inputMax = wrapper.findAll('input').at(1) as DOMWrapper<HTMLInputElement>
|
|
147
|
+
|
|
148
|
+
expect(inputMin.element.value).toBe('0')
|
|
149
|
+
expect(inputMax.element.value).toBe('100')
|
|
150
|
+
expect(wrapper.emitted('update:modelValue')?.[0]).toEqual([[0, 100]])
|
|
151
|
+
})
|
|
152
|
+
|
|
153
|
+
it('set the value into the range if it is out of bounds', async () => {
|
|
154
|
+
const wrapper = mount(RangeField, {
|
|
155
|
+
global: {
|
|
156
|
+
plugins: [vuetify],
|
|
157
|
+
},
|
|
158
|
+
props: {
|
|
159
|
+
modelValue: [50, 80],
|
|
160
|
+
min: 0,
|
|
161
|
+
max: 100,
|
|
162
|
+
},
|
|
163
|
+
})
|
|
164
|
+
|
|
165
|
+
await wrapper.setProps({ modelValue: [200, -10] })
|
|
166
|
+
|
|
167
|
+
const inputMin = wrapper.find('input')
|
|
168
|
+
const inputMax = wrapper.findAll('input').at(1) as DOMWrapper<HTMLInputElement>
|
|
169
|
+
|
|
170
|
+
expect(inputMin.element.value).toBe('100')
|
|
171
|
+
expect(inputMax.element.value).toBe('0')
|
|
172
|
+
expect(wrapper.emitted('update:modelValue')?.[0]).toEqual([[100, 0]])
|
|
173
|
+
})
|
|
174
|
+
|
|
175
|
+
it('set the text fields to the last valid value on blur', async () => {
|
|
176
|
+
const wrapper = mount(RangeField, {
|
|
177
|
+
global: {
|
|
178
|
+
plugins: [vuetify],
|
|
179
|
+
},
|
|
180
|
+
props: {
|
|
181
|
+
modelValue: [50, 80],
|
|
182
|
+
min: 0,
|
|
183
|
+
max: 100,
|
|
184
|
+
},
|
|
185
|
+
attachTo: document.body,
|
|
186
|
+
})
|
|
187
|
+
|
|
188
|
+
const inputMin = wrapper.find('input')
|
|
189
|
+
const inputMax = wrapper.findAll('input').at(1) as DOMWrapper<HTMLInputElement>
|
|
190
|
+
|
|
191
|
+
await inputMin.trigger('focus')
|
|
192
|
+
await inputMin.setValue('-')
|
|
193
|
+
await inputMin.trigger('blur')
|
|
194
|
+
expect(inputMin.element.value).toBe('50')
|
|
195
|
+
|
|
196
|
+
await inputMax.trigger('focus')
|
|
197
|
+
await inputMax.setValue('20')
|
|
198
|
+
await inputMax.trigger('blur')
|
|
199
|
+
expect(inputMax.element.value).toBe('80')
|
|
200
|
+
|
|
201
|
+
wrapper.unmount()
|
|
202
|
+
})
|
|
203
|
+
|
|
204
|
+
it('do not emit an event when the field is set empty', async () => {
|
|
205
|
+
const wrapper = mount(RangeField, {
|
|
206
|
+
global: {
|
|
207
|
+
plugins: [vuetify],
|
|
208
|
+
},
|
|
209
|
+
props: {
|
|
210
|
+
modelValue: [50, 80],
|
|
211
|
+
min: 0,
|
|
212
|
+
max: 100,
|
|
213
|
+
},
|
|
214
|
+
})
|
|
215
|
+
|
|
216
|
+
const inputMin = wrapper.find('input')
|
|
217
|
+
const inputMax = wrapper.findAll('input').at(1) as DOMWrapper<HTMLInputElement>
|
|
218
|
+
|
|
219
|
+
await inputMin.setValue('')
|
|
220
|
+
await inputMax.setValue('')
|
|
221
|
+
|
|
222
|
+
expect(wrapper.emitted('update:modelValue')).toBeUndefined()
|
|
223
|
+
})
|
|
224
|
+
})
|
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
|
+
|
|
3
|
+
exports[`RangeField > render correctly when the modelValue is not defined 1`] = `
|
|
4
|
+
"<div class="vd-range-field">
|
|
5
|
+
<div class="mt-10 mb-2 mx-3">
|
|
6
|
+
<div data-v-cfbfc2ef="" class="wrapper mt-8 mb-2">
|
|
7
|
+
<div data-v-cfbfc2ef="" class="track"><button data-v-cfbfc2ef="" class="thumb-min" style="left: 0%;" role="slider" aria-valuenow="0" tabindex="0" aria-valuemin="0" aria-valuemax="100" aria-orientation="horizontal" aria-label="Minimum" title="Minimum">
|
|
8
|
+
<div data-v-24e1b71f="" data-v-cfbfc2ef="" class="tooltip-wrapper">
|
|
9
|
+
<div data-v-24e1b71f="" class="tooltip" style="transform: translateX(calc(-50% + 0px)); transition: transform 0.1s;">0</div>
|
|
10
|
+
</div><span data-v-cfbfc2ef="" class="inner-thumb"></span>
|
|
11
|
+
</button><button data-v-cfbfc2ef="" role="slider" class="thumb-max" style="left: 100%;" aria-valuenow="100" tabindex="0" aria-valuemin="0" aria-valuemax="100" aria-orientation="horizontal" aria-label="Maximum" title="Maximum">
|
|
12
|
+
<div data-v-24e1b71f="" data-v-cfbfc2ef="" class="tooltip-wrapper">
|
|
13
|
+
<div data-v-24e1b71f="" class="tooltip" style="transform: translateX(calc(-50% + 0px)); transition: transform 0.1s;">100</div>
|
|
14
|
+
</div><span data-v-cfbfc2ef="" class="inner-thumb"></span>
|
|
15
|
+
</button>
|
|
16
|
+
<div data-v-cfbfc2ef="" class="fake-thumb thumb-min" aria-hidden="true" style="left: 0%;">
|
|
17
|
+
<div data-v-24e1b71f="" data-v-cfbfc2ef="" class="tooltip-wrapper">
|
|
18
|
+
<div data-v-24e1b71f="" class="tooltip" style="transform: translateX(calc(-50% + 0px));">0</div>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
<div data-v-cfbfc2ef="" class="fake-thumb thumb-max" aria-hidden="true" style="left: 100%;">
|
|
22
|
+
<div data-v-24e1b71f="" data-v-cfbfc2ef="" class="tooltip-wrapper">
|
|
23
|
+
<div data-v-24e1b71f="" class="tooltip" style="transform: translateX(calc(-50% + 0px));">100</div>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
<div data-v-cfbfc2ef="" class="filled-track" style="left: 0%; width: 100%;"></div>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
<div class="d-flex flex-wrap max-width-none">
|
|
31
|
+
<div class="v-input v-input--horizontal v-input--center-affix v-input--density-default v-theme--light v-locale--is-ltr v-input--dirty v-text-field ma-3">
|
|
32
|
+
<!---->
|
|
33
|
+
<div class="v-input__control">
|
|
34
|
+
<div class="v-field v-field--active v-field--center-affix v-field--dirty v-field--variant-outlined v-theme--light v-locale--is-ltr">
|
|
35
|
+
<div class="v-field__overlay"></div>
|
|
36
|
+
<div class="v-field__loader">
|
|
37
|
+
<div class="v-progress-linear v-theme--light v-locale--is-ltr" style="top: 0px; height: 0px; --v-progress-linear-height: 2px;" role="progressbar" aria-hidden="true" aria-valuemin="0" aria-valuemax="100">
|
|
38
|
+
<!---->
|
|
39
|
+
<div class="v-progress-linear__background bg-primary" style="opacity: NaN;"></div>
|
|
40
|
+
<div class="v-progress-linear__buffer bg-primary" style="opacity: NaN; width: 0%;"></div>
|
|
41
|
+
<transition-stub name="fade-transition" appear="false" persisted="false" css="true">
|
|
42
|
+
<div class="v-progress-linear__indeterminate">
|
|
43
|
+
<div class="v-progress-linear__indeterminate long bg-primary"></div>
|
|
44
|
+
<div class="v-progress-linear__indeterminate short bg-primary"></div>
|
|
45
|
+
</div>
|
|
46
|
+
</transition-stub>
|
|
47
|
+
<!---->
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
<!---->
|
|
51
|
+
<div class="v-field__field" data-no-activator="">
|
|
52
|
+
<!----><label class="v-label v-field-label" for="input-0">
|
|
53
|
+
<!---->Valeur min
|
|
54
|
+
</label>
|
|
55
|
+
<!----><input size="1" type="text" id="input-0" aria-describedby="input-0-messages" aria-label="Valeur min" inputmode="numeric" title="Valeur min" class="v-field__input" value="0">
|
|
56
|
+
<!---->
|
|
57
|
+
</div>
|
|
58
|
+
<!---->
|
|
59
|
+
<!---->
|
|
60
|
+
<div class="v-field__outline">
|
|
61
|
+
<div class="v-field__outline__start"></div>
|
|
62
|
+
<div class="v-field__outline__notch"><label class="v-label v-field-label v-field-label--floating" aria-hidden="true" for="input-0">
|
|
63
|
+
<!---->Valeur min
|
|
64
|
+
</label></div>
|
|
65
|
+
<div class="v-field__outline__end"></div>
|
|
66
|
+
<!---->
|
|
67
|
+
</div>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
<!---->
|
|
71
|
+
<div id="input-0-messages" class="v-input__details" role="alert" aria-live="polite">
|
|
72
|
+
<transition-group-stub name="slide-y-transition" tag="div" appear="false" persisted="false" css="true" class="v-messages">
|
|
73
|
+
<!---->
|
|
74
|
+
</transition-group-stub>
|
|
75
|
+
<!---->
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
<div class="v-input v-input--horizontal v-input--center-affix v-input--density-default v-theme--light v-locale--is-ltr v-input--dirty v-text-field ma-3">
|
|
79
|
+
<!---->
|
|
80
|
+
<div class="v-input__control">
|
|
81
|
+
<div class="v-field v-field--active v-field--center-affix v-field--dirty v-field--variant-outlined v-theme--light v-locale--is-ltr">
|
|
82
|
+
<div class="v-field__overlay"></div>
|
|
83
|
+
<div class="v-field__loader">
|
|
84
|
+
<div class="v-progress-linear v-theme--light v-locale--is-ltr" style="top: 0px; height: 0px; --v-progress-linear-height: 2px;" role="progressbar" aria-hidden="true" aria-valuemin="0" aria-valuemax="100">
|
|
85
|
+
<!---->
|
|
86
|
+
<div class="v-progress-linear__background bg-primary" style="opacity: NaN;"></div>
|
|
87
|
+
<div class="v-progress-linear__buffer bg-primary" style="opacity: NaN; width: 0%;"></div>
|
|
88
|
+
<transition-stub name="fade-transition" appear="false" persisted="false" css="true">
|
|
89
|
+
<div class="v-progress-linear__indeterminate">
|
|
90
|
+
<div class="v-progress-linear__indeterminate long bg-primary"></div>
|
|
91
|
+
<div class="v-progress-linear__indeterminate short bg-primary"></div>
|
|
92
|
+
</div>
|
|
93
|
+
</transition-stub>
|
|
94
|
+
<!---->
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
<!---->
|
|
98
|
+
<div class="v-field__field" data-no-activator="">
|
|
99
|
+
<!----><label class="v-label v-field-label" for="input-2">
|
|
100
|
+
<!---->Valeur max
|
|
101
|
+
</label>
|
|
102
|
+
<!----><input size="1" type="text" id="input-2" aria-describedby="input-2-messages" aria-label="Valeur max" inputmode="numeric" title="Valeur max" class="v-field__input" value="100">
|
|
103
|
+
<!---->
|
|
104
|
+
</div>
|
|
105
|
+
<!---->
|
|
106
|
+
<!---->
|
|
107
|
+
<div class="v-field__outline">
|
|
108
|
+
<div class="v-field__outline__start"></div>
|
|
109
|
+
<div class="v-field__outline__notch"><label class="v-label v-field-label v-field-label--floating" aria-hidden="true" for="input-2">
|
|
110
|
+
<!---->Valeur max
|
|
111
|
+
</label></div>
|
|
112
|
+
<div class="v-field__outline__end"></div>
|
|
113
|
+
<!---->
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
<!---->
|
|
118
|
+
<div id="input-2-messages" class="v-input__details" role="alert" aria-live="polite">
|
|
119
|
+
<transition-group-stub name="slide-y-transition" tag="div" appear="false" persisted="false" css="true" class="v-messages">
|
|
120
|
+
<!---->
|
|
121
|
+
</transition-group-stub>
|
|
122
|
+
<!---->
|
|
123
|
+
</div>
|
|
124
|
+
</div>
|
|
125
|
+
</div>
|
|
126
|
+
</div>"
|
|
127
|
+
`;
|
|
128
|
+
|
|
129
|
+
exports[`RangeField > renders correctly 1`] = `
|
|
130
|
+
"<div class="vd-range-field">
|
|
131
|
+
<div class="mt-10 mb-2 mx-3">
|
|
132
|
+
<div data-v-cfbfc2ef="" class="wrapper mt-8 mb-2">
|
|
133
|
+
<div data-v-cfbfc2ef="" class="track"><button data-v-cfbfc2ef="" class="thumb-min" style="left: 50%;" role="slider" aria-valuenow="50" tabindex="0" aria-valuemin="0" aria-valuemax="80" aria-orientation="horizontal" aria-label="Minimum" title="Minimum">
|
|
134
|
+
<div data-v-24e1b71f="" data-v-cfbfc2ef="" class="tooltip-wrapper">
|
|
135
|
+
<div data-v-24e1b71f="" class="tooltip" style="transform: translateX(calc(-50% + 0px)); transition: transform 0.1s;">50</div>
|
|
136
|
+
</div><span data-v-cfbfc2ef="" class="inner-thumb"></span>
|
|
137
|
+
</button><button data-v-cfbfc2ef="" role="slider" class="thumb-max" style="left: 80%;" aria-valuenow="80" tabindex="0" aria-valuemin="50" aria-valuemax="100" aria-orientation="horizontal" aria-label="Maximum" title="Maximum">
|
|
138
|
+
<div data-v-24e1b71f="" data-v-cfbfc2ef="" class="tooltip-wrapper">
|
|
139
|
+
<div data-v-24e1b71f="" class="tooltip" style="transform: translateX(calc(-50% + 0px)); transition: transform 0.1s;">80</div>
|
|
140
|
+
</div><span data-v-cfbfc2ef="" class="inner-thumb"></span>
|
|
141
|
+
</button>
|
|
142
|
+
<div data-v-cfbfc2ef="" class="fake-thumb thumb-min" aria-hidden="true" style="left: 50%;">
|
|
143
|
+
<div data-v-24e1b71f="" data-v-cfbfc2ef="" class="tooltip-wrapper">
|
|
144
|
+
<div data-v-24e1b71f="" class="tooltip" style="transform: translateX(calc(-50% + 0px));">50</div>
|
|
145
|
+
</div>
|
|
146
|
+
</div>
|
|
147
|
+
<div data-v-cfbfc2ef="" class="fake-thumb thumb-max" aria-hidden="true" style="left: 80%;">
|
|
148
|
+
<div data-v-24e1b71f="" data-v-cfbfc2ef="" class="tooltip-wrapper">
|
|
149
|
+
<div data-v-24e1b71f="" class="tooltip" style="transform: translateX(calc(-50% + 0px));">80</div>
|
|
150
|
+
</div>
|
|
151
|
+
</div>
|
|
152
|
+
<div data-v-cfbfc2ef="" class="filled-track" style="left: 50%; width: 30%;"></div>
|
|
153
|
+
</div>
|
|
154
|
+
</div>
|
|
155
|
+
</div>
|
|
156
|
+
<div class="d-flex flex-wrap max-width-none">
|
|
157
|
+
<div class="v-input v-input--horizontal v-input--center-affix v-input--density-default v-theme--light v-locale--is-ltr v-input--dirty v-text-field ma-3">
|
|
158
|
+
<!---->
|
|
159
|
+
<div class="v-input__control">
|
|
160
|
+
<div class="v-field v-field--active v-field--center-affix v-field--dirty v-field--variant-outlined v-theme--light v-locale--is-ltr">
|
|
161
|
+
<div class="v-field__overlay"></div>
|
|
162
|
+
<div class="v-field__loader">
|
|
163
|
+
<div class="v-progress-linear v-theme--light v-locale--is-ltr" style="top: 0px; height: 0px; --v-progress-linear-height: 2px;" role="progressbar" aria-hidden="true" aria-valuemin="0" aria-valuemax="100">
|
|
164
|
+
<!---->
|
|
165
|
+
<div class="v-progress-linear__background bg-primary" style="opacity: NaN;"></div>
|
|
166
|
+
<div class="v-progress-linear__buffer bg-primary" style="opacity: NaN; width: 0%;"></div>
|
|
167
|
+
<transition-stub name="fade-transition" appear="false" persisted="false" css="true">
|
|
168
|
+
<div class="v-progress-linear__indeterminate">
|
|
169
|
+
<div class="v-progress-linear__indeterminate long bg-primary"></div>
|
|
170
|
+
<div class="v-progress-linear__indeterminate short bg-primary"></div>
|
|
171
|
+
</div>
|
|
172
|
+
</transition-stub>
|
|
173
|
+
<!---->
|
|
174
|
+
</div>
|
|
175
|
+
</div>
|
|
176
|
+
<!---->
|
|
177
|
+
<div class="v-field__field" data-no-activator="">
|
|
178
|
+
<!----><label class="v-label v-field-label" for="input-0">
|
|
179
|
+
<!---->Valeur min
|
|
180
|
+
</label>
|
|
181
|
+
<!----><input size="1" type="text" id="input-0" aria-describedby="input-0-messages" aria-label="Valeur min" inputmode="numeric" title="Valeur min" class="v-field__input" value="50">
|
|
182
|
+
<!---->
|
|
183
|
+
</div>
|
|
184
|
+
<!---->
|
|
185
|
+
<!---->
|
|
186
|
+
<div class="v-field__outline">
|
|
187
|
+
<div class="v-field__outline__start"></div>
|
|
188
|
+
<div class="v-field__outline__notch"><label class="v-label v-field-label v-field-label--floating" aria-hidden="true" for="input-0">
|
|
189
|
+
<!---->Valeur min
|
|
190
|
+
</label></div>
|
|
191
|
+
<div class="v-field__outline__end"></div>
|
|
192
|
+
<!---->
|
|
193
|
+
</div>
|
|
194
|
+
</div>
|
|
195
|
+
</div>
|
|
196
|
+
<!---->
|
|
197
|
+
<div id="input-0-messages" class="v-input__details" role="alert" aria-live="polite">
|
|
198
|
+
<transition-group-stub name="slide-y-transition" tag="div" appear="false" persisted="false" css="true" class="v-messages">
|
|
199
|
+
<!---->
|
|
200
|
+
</transition-group-stub>
|
|
201
|
+
<!---->
|
|
202
|
+
</div>
|
|
203
|
+
</div>
|
|
204
|
+
<div class="v-input v-input--horizontal v-input--center-affix v-input--density-default v-theme--light v-locale--is-ltr v-input--dirty v-text-field ma-3">
|
|
205
|
+
<!---->
|
|
206
|
+
<div class="v-input__control">
|
|
207
|
+
<div class="v-field v-field--active v-field--center-affix v-field--dirty v-field--variant-outlined v-theme--light v-locale--is-ltr">
|
|
208
|
+
<div class="v-field__overlay"></div>
|
|
209
|
+
<div class="v-field__loader">
|
|
210
|
+
<div class="v-progress-linear v-theme--light v-locale--is-ltr" style="top: 0px; height: 0px; --v-progress-linear-height: 2px;" role="progressbar" aria-hidden="true" aria-valuemin="0" aria-valuemax="100">
|
|
211
|
+
<!---->
|
|
212
|
+
<div class="v-progress-linear__background bg-primary" style="opacity: NaN;"></div>
|
|
213
|
+
<div class="v-progress-linear__buffer bg-primary" style="opacity: NaN; width: 0%;"></div>
|
|
214
|
+
<transition-stub name="fade-transition" appear="false" persisted="false" css="true">
|
|
215
|
+
<div class="v-progress-linear__indeterminate">
|
|
216
|
+
<div class="v-progress-linear__indeterminate long bg-primary"></div>
|
|
217
|
+
<div class="v-progress-linear__indeterminate short bg-primary"></div>
|
|
218
|
+
</div>
|
|
219
|
+
</transition-stub>
|
|
220
|
+
<!---->
|
|
221
|
+
</div>
|
|
222
|
+
</div>
|
|
223
|
+
<!---->
|
|
224
|
+
<div class="v-field__field" data-no-activator="">
|
|
225
|
+
<!----><label class="v-label v-field-label" for="input-2">
|
|
226
|
+
<!---->Valeur max
|
|
227
|
+
</label>
|
|
228
|
+
<!----><input size="1" type="text" id="input-2" aria-describedby="input-2-messages" aria-label="Valeur max" inputmode="numeric" title="Valeur max" class="v-field__input" value="80">
|
|
229
|
+
<!---->
|
|
230
|
+
</div>
|
|
231
|
+
<!---->
|
|
232
|
+
<!---->
|
|
233
|
+
<div class="v-field__outline">
|
|
234
|
+
<div class="v-field__outline__start"></div>
|
|
235
|
+
<div class="v-field__outline__notch"><label class="v-label v-field-label v-field-label--floating" aria-hidden="true" for="input-2">
|
|
236
|
+
<!---->Valeur max
|
|
237
|
+
</label></div>
|
|
238
|
+
<div class="v-field__outline__end"></div>
|
|
239
|
+
<!---->
|
|
240
|
+
</div>
|
|
241
|
+
</div>
|
|
242
|
+
</div>
|
|
243
|
+
<!---->
|
|
244
|
+
<div id="input-2-messages" class="v-input__details" role="alert" aria-live="polite">
|
|
245
|
+
<transition-group-stub name="slide-y-transition" tag="div" appear="false" persisted="false" css="true" class="v-messages">
|
|
246
|
+
<!---->
|
|
247
|
+
</transition-group-stub>
|
|
248
|
+
<!---->
|
|
249
|
+
</div>
|
|
250
|
+
</div>
|
|
251
|
+
</div>
|
|
252
|
+
</div>"
|
|
253
|
+
`;
|
|
254
|
+
|
|
255
|
+
exports[`RangeField > renders correctly with value NaN 1`] = `
|
|
256
|
+
"<div class="vd-range-field">
|
|
257
|
+
<div class="mt-10 mb-2 mx-3">
|
|
258
|
+
<div data-v-cfbfc2ef="" class="wrapper mt-8 mb-2">
|
|
259
|
+
<div data-v-cfbfc2ef="" class="track"><button data-v-cfbfc2ef="" class="thumb-min" style="left: 0%;" role="slider" aria-valuenow="0" tabindex="0" aria-valuemin="0" aria-valuemax="0" aria-orientation="horizontal" aria-label="Minimum" title="Minimum">
|
|
260
|
+
<div data-v-24e1b71f="" data-v-cfbfc2ef="" class="tooltip-wrapper">
|
|
261
|
+
<div data-v-24e1b71f="" class="tooltip" style="transform: translateX(calc(-50% + 0px)); transition: transform 0.1s;">0</div>
|
|
262
|
+
</div><span data-v-cfbfc2ef="" class="inner-thumb"></span>
|
|
263
|
+
</button><button data-v-cfbfc2ef="" role="slider" class="thumb-max" style="left: 0%;" aria-valuenow="0" tabindex="0" aria-valuemin="0" aria-valuemax="100" aria-orientation="horizontal" aria-label="Maximum" title="Maximum">
|
|
264
|
+
<div data-v-24e1b71f="" data-v-cfbfc2ef="" class="tooltip-wrapper">
|
|
265
|
+
<div data-v-24e1b71f="" class="tooltip" style="transform: translateX(calc(-50% + 0px)); transition: transform 0.1s;">0</div>
|
|
266
|
+
</div><span data-v-cfbfc2ef="" class="inner-thumb"></span>
|
|
267
|
+
</button>
|
|
268
|
+
<div data-v-cfbfc2ef="" class="fake-thumb thumb-min" aria-hidden="true" style="left: 0%;">
|
|
269
|
+
<div data-v-24e1b71f="" data-v-cfbfc2ef="" class="tooltip-wrapper">
|
|
270
|
+
<div data-v-24e1b71f="" class="tooltip" style="transform: translateX(calc(-50% + 0px));">0</div>
|
|
271
|
+
</div>
|
|
272
|
+
</div>
|
|
273
|
+
<div data-v-cfbfc2ef="" class="fake-thumb thumb-max" aria-hidden="true" style="left: 0%;">
|
|
274
|
+
<div data-v-24e1b71f="" data-v-cfbfc2ef="" class="tooltip-wrapper">
|
|
275
|
+
<div data-v-24e1b71f="" class="tooltip" style="transform: translateX(calc(-50% + 0px));">0</div>
|
|
276
|
+
</div>
|
|
277
|
+
</div>
|
|
278
|
+
<div data-v-cfbfc2ef="" class="filled-track" style="left: 0%; width: 0%;"></div>
|
|
279
|
+
</div>
|
|
280
|
+
</div>
|
|
281
|
+
</div>
|
|
282
|
+
<div class="d-flex flex-wrap max-width-none">
|
|
283
|
+
<div class="v-input v-input--horizontal v-input--center-affix v-input--density-default v-theme--light v-locale--is-ltr v-input--dirty v-text-field ma-3">
|
|
284
|
+
<!---->
|
|
285
|
+
<div class="v-input__control">
|
|
286
|
+
<div class="v-field v-field--active v-field--center-affix v-field--dirty v-field--variant-outlined v-theme--light v-locale--is-ltr">
|
|
287
|
+
<div class="v-field__overlay"></div>
|
|
288
|
+
<div class="v-field__loader">
|
|
289
|
+
<div class="v-progress-linear v-theme--light v-locale--is-ltr" style="top: 0px; height: 0px; --v-progress-linear-height: 2px;" role="progressbar" aria-hidden="true" aria-valuemin="0" aria-valuemax="100">
|
|
290
|
+
<!---->
|
|
291
|
+
<div class="v-progress-linear__background bg-primary" style="opacity: NaN;"></div>
|
|
292
|
+
<div class="v-progress-linear__buffer bg-primary" style="opacity: NaN; width: 0%;"></div>
|
|
293
|
+
<transition-stub name="fade-transition" appear="false" persisted="false" css="true">
|
|
294
|
+
<div class="v-progress-linear__indeterminate">
|
|
295
|
+
<div class="v-progress-linear__indeterminate long bg-primary"></div>
|
|
296
|
+
<div class="v-progress-linear__indeterminate short bg-primary"></div>
|
|
297
|
+
</div>
|
|
298
|
+
</transition-stub>
|
|
299
|
+
<!---->
|
|
300
|
+
</div>
|
|
301
|
+
</div>
|
|
302
|
+
<!---->
|
|
303
|
+
<div class="v-field__field" data-no-activator="">
|
|
304
|
+
<!----><label class="v-label v-field-label" for="input-0">
|
|
305
|
+
<!---->Valeur min
|
|
306
|
+
</label>
|
|
307
|
+
<!----><input size="1" type="text" id="input-0" aria-describedby="input-0-messages" aria-label="Valeur min" inputmode="numeric" title="Valeur min" class="v-field__input" value="0">
|
|
308
|
+
<!---->
|
|
309
|
+
</div>
|
|
310
|
+
<!---->
|
|
311
|
+
<!---->
|
|
312
|
+
<div class="v-field__outline">
|
|
313
|
+
<div class="v-field__outline__start"></div>
|
|
314
|
+
<div class="v-field__outline__notch"><label class="v-label v-field-label v-field-label--floating" aria-hidden="true" for="input-0">
|
|
315
|
+
<!---->Valeur min
|
|
316
|
+
</label></div>
|
|
317
|
+
<div class="v-field__outline__end"></div>
|
|
318
|
+
<!---->
|
|
319
|
+
</div>
|
|
320
|
+
</div>
|
|
321
|
+
</div>
|
|
322
|
+
<!---->
|
|
323
|
+
<div id="input-0-messages" class="v-input__details" role="alert" aria-live="polite">
|
|
324
|
+
<transition-group-stub name="slide-y-transition" tag="div" appear="false" persisted="false" css="true" class="v-messages">
|
|
325
|
+
<!---->
|
|
326
|
+
</transition-group-stub>
|
|
327
|
+
<!---->
|
|
328
|
+
</div>
|
|
329
|
+
</div>
|
|
330
|
+
<div class="v-input v-input--horizontal v-input--center-affix v-input--density-default v-theme--light v-locale--is-ltr v-input--dirty v-text-field ma-3">
|
|
331
|
+
<!---->
|
|
332
|
+
<div class="v-input__control">
|
|
333
|
+
<div class="v-field v-field--active v-field--center-affix v-field--dirty v-field--variant-outlined v-theme--light v-locale--is-ltr">
|
|
334
|
+
<div class="v-field__overlay"></div>
|
|
335
|
+
<div class="v-field__loader">
|
|
336
|
+
<div class="v-progress-linear v-theme--light v-locale--is-ltr" style="top: 0px; height: 0px; --v-progress-linear-height: 2px;" role="progressbar" aria-hidden="true" aria-valuemin="0" aria-valuemax="100">
|
|
337
|
+
<!---->
|
|
338
|
+
<div class="v-progress-linear__background bg-primary" style="opacity: NaN;"></div>
|
|
339
|
+
<div class="v-progress-linear__buffer bg-primary" style="opacity: NaN; width: 0%;"></div>
|
|
340
|
+
<transition-stub name="fade-transition" appear="false" persisted="false" css="true">
|
|
341
|
+
<div class="v-progress-linear__indeterminate">
|
|
342
|
+
<div class="v-progress-linear__indeterminate long bg-primary"></div>
|
|
343
|
+
<div class="v-progress-linear__indeterminate short bg-primary"></div>
|
|
344
|
+
</div>
|
|
345
|
+
</transition-stub>
|
|
346
|
+
<!---->
|
|
347
|
+
</div>
|
|
348
|
+
</div>
|
|
349
|
+
<!---->
|
|
350
|
+
<div class="v-field__field" data-no-activator="">
|
|
351
|
+
<!----><label class="v-label v-field-label" for="input-2">
|
|
352
|
+
<!---->Valeur max
|
|
353
|
+
</label>
|
|
354
|
+
<!----><input size="1" type="text" id="input-2" aria-describedby="input-2-messages" aria-label="Valeur max" inputmode="numeric" title="Valeur max" class="v-field__input" value="0">
|
|
355
|
+
<!---->
|
|
356
|
+
</div>
|
|
357
|
+
<!---->
|
|
358
|
+
<!---->
|
|
359
|
+
<div class="v-field__outline">
|
|
360
|
+
<div class="v-field__outline__start"></div>
|
|
361
|
+
<div class="v-field__outline__notch"><label class="v-label v-field-label v-field-label--floating" aria-hidden="true" for="input-2">
|
|
362
|
+
<!---->Valeur max
|
|
363
|
+
</label></div>
|
|
364
|
+
<div class="v-field__outline__end"></div>
|
|
365
|
+
<!---->
|
|
366
|
+
</div>
|
|
367
|
+
</div>
|
|
368
|
+
</div>
|
|
369
|
+
<!---->
|
|
370
|
+
<div id="input-2-messages" class="v-input__details" role="alert" aria-live="polite">
|
|
371
|
+
<transition-group-stub name="slide-y-transition" tag="div" appear="false" persisted="false" css="true" class="v-messages">
|
|
372
|
+
<!---->
|
|
373
|
+
</transition-group-stub>
|
|
374
|
+
<!---->
|
|
375
|
+
</div>
|
|
376
|
+
</div>
|
|
377
|
+
</div>
|
|
378
|
+
</div>"
|
|
379
|
+
`;
|