@zap-wunschlachen/wl-shared-components 1.0.24 → 1.0.26
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/.github/workflows/playwright.yml +205 -205
- package/.github/workflows/static.yml +61 -61
- package/.github/workflows/update-snapshots.yml +37 -37
- package/.prettierrc +5 -5
- package/.storybook/main.ts +18 -18
- package/.storybook/preview.ts +37 -37
- package/.storybook/storyWrapper.vue +18 -18
- package/.storybook/withVuetifyTheme.decorator.ts +21 -21
- package/App.vue +34 -176
- package/README.md +56 -56
- package/heroicons.ts +75 -75
- package/index.html +19 -19
- package/package.json +67 -67
- package/playwright.config.ts +48 -48
- package/public/background.svg +60 -60
- package/public/style.css +187 -187
- package/public/technologies.svg +22 -22
- package/src/assets/css/base.css +235 -235
- package/src/assets/css/variables.css +107 -96
- package/src/components/Accordion/Accordion.css +59 -59
- package/src/components/Accordion/AccordionGroup.vue +51 -51
- package/src/components/Accordion/AccordionItem.vue +66 -66
- package/src/components/Appointment/Card/Actions.css +54 -54
- package/src/components/Appointment/Card/Actions.vue +99 -99
- package/src/components/Appointment/Card/AnamneseNotification.css +15 -15
- package/src/components/Appointment/Card/AnamneseNotification.vue +23 -23
- package/src/components/Appointment/Card/Card.css +80 -80
- package/src/components/Appointment/Card/Card.vue +93 -93
- package/src/components/Appointment/Card/Details.css +50 -50
- package/src/components/Appointment/Card/Details.vue +43 -43
- package/src/components/Audio/Audio.vue +187 -187
- package/src/components/Audio/Waveform.vue +117 -117
- package/src/components/Background/Background.css +39 -0
- package/src/components/Background/Background.vue +19 -0
- package/src/components/Background/WhiteCocoonBackground.vue +9 -0
- package/src/components/Background/WunschlachenBackground.vue +11 -0
- package/src/components/Button/Button.vue +119 -119
- package/src/components/CheckBox/CheckBox.css +185 -185
- package/src/components/CheckBox/Checkbox.vue +130 -130
- package/src/components/DateInput/DateInput.css +2 -2
- package/src/components/DateInput/DateInput.vue +262 -262
- package/src/components/Dialog/Dialog.css +6 -6
- package/src/components/Dialog/Dialog.vue +29 -29
- package/src/components/EditField/EditField.css +19 -19
- package/src/components/EditField/EditField.vue +202 -202
- package/src/components/ErrorPage/ErrorPage.css +124 -0
- package/src/components/ErrorPage/ErrorPage.vue +45 -0
- package/src/components/ErrorPage/ErrorPageLogo.vue +26 -0
- package/src/components/IconBullet/IconBullet.vue +86 -86
- package/src/components/IconBullet/IconBulletList.vue +41 -41
- package/src/components/Icons/AdvanceAppointments.vue +153 -153
- package/src/components/Icons/Audio/CloudFailed.vue +20 -20
- package/src/components/Icons/Audio/CloudSaved.vue +21 -21
- package/src/components/Icons/Audio/Delete.vue +15 -15
- package/src/components/Icons/Audio/Pause.vue +18 -18
- package/src/components/Icons/Audio/Play.vue +15 -15
- package/src/components/Icons/CalendarNotification.vue +126 -126
- package/src/components/Icons/Chair.vue +32 -32
- package/src/components/Icons/ChairNotification.vue +35 -35
- package/src/components/Icons/Circle.vue +66 -66
- package/src/components/Icons/FavIcon.vue +22 -22
- package/src/components/Icons/FilledCircle.vue +11 -11
- package/src/components/Icons/Group3.vue +46 -46
- package/src/components/Icons/Logo.vue +108 -0
- package/src/components/Icons/RingNotification.vue +54 -54
- package/src/components/Icons/SolidArrowRight.vue +14 -14
- package/src/components/Icons/calendar.vue +17 -17
- package/src/components/Icons/checkbox.vue +19 -19
- package/src/components/Icons/outlineChecked.vue +27 -27
- package/src/components/Icons/play.vue +5 -5
- package/src/components/Input/Input.css +187 -187
- package/src/components/Input/Input.vue +247 -247
- package/src/components/Laboratory/AppointmentCard/AppointmentCard.css +7 -7
- package/src/components/Laboratory/AppointmentCard/AppointmentCard.vue +116 -116
- package/src/components/Laboratory/ChatBoxImage/ChatBoxImage.vue +81 -81
- package/src/components/Laboratory/ChatMessage/ChatMessage.vue +113 -113
- package/src/components/Laboratory/ChatMessage/ChatMessageBadge.css +4 -4
- package/src/components/Laboratory/ChatMessage/ChatMessageBadge.vue +99 -99
- package/src/components/Laboratory/ChatNotification/ChatNotification.vue +130 -130
- package/src/components/Laboratory/DocumentCard/DocumentCard.css +3 -3
- package/src/components/Laboratory/DocumentCard/DocumentCard.vue +50 -50
- package/src/components/Laboratory/DocumentCard/DocumentCardItem.vue +53 -53
- package/src/components/Laboratory/InfoCard/InfoCard.vue +162 -162
- package/src/components/Laboratory/MainColumnsBar/MainColumnsBar.vue +102 -102
- package/src/components/Laboratory/ProgressCircle/ProgressCircle.vue +152 -152
- package/src/components/Laboratory/ProgressLinear/ProgressLinear.css +33 -33
- package/src/components/Laboratory/ProgressLinear/ProgressLinear.vue +75 -75
- package/src/components/Laboratory/SelectionColumnBar/SelectionColumnBar.vue +92 -92
- package/src/components/Laboratory/StatusNotification/StatusNotification.vue +49 -49
- package/src/components/Laboratory/TagLabel/TagLabel.vue +126 -126
- package/src/components/Laboratory/TagLabelGroup/TagLabelGroup.vue +97 -97
- package/src/components/Laboratory/TicketCard/TicketCard.css +3 -3
- package/src/components/Laboratory/TicketCard/TicketCard.vue +143 -143
- package/src/components/Laboratory/TimeLine/TimeLineEvent.css +18 -18
- package/src/components/Laboratory/TimeLine/TimeLineEvent.vue +119 -119
- package/src/components/Laboratory/TimeLine/Timeline.css +4 -4
- package/src/components/Laboratory/TimeLine/Timeline.vue +30 -30
- package/src/components/Loader/Loader.css +51 -51
- package/src/components/MaintenanceBanner/MaintenanceBanner.css +289 -0
- package/src/components/MaintenanceBanner/MaintenanceBanner.vue +127 -0
- package/src/components/MaintenanceBanner/MaintenanceIllustration.vue +54 -0
- package/src/components/Modal/Modal.css +5 -5
- package/src/components/Modal/Modal.vue +22 -22
- package/src/components/NotificationBubble/NotificationBubble.css +4 -4
- package/src/components/NotificationBubble/NotificationBubble.vue +90 -90
- package/src/components/OtpInput/OtpInput.css +39 -39
- package/src/components/OtpInput/OtpInput.vue +143 -143
- package/src/components/PhoneInput/PhoneInput.css +31 -31
- package/src/components/PhoneInput/PhoneInput.vue +113 -113
- package/src/components/Select/Select.css +150 -150
- package/src/components/Select/Select.vue +315 -304
- package/src/components/TextArea/TextArea.css +3 -3
- package/src/components/TextArea/TextArea.vue +126 -126
- package/src/components/TickBox/TickBox.css +49 -49
- package/src/components/TickBox/TickBox.vue +126 -126
- package/src/components/index.ts +26 -24
- package/src/constants/iconEnums.ts +3 -3
- package/src/i18n/i18n.ts +15 -15
- package/src/i18n/locales/de.json +30 -30
- package/src/i18n/locales/en.json +30 -30
- package/src/index.ts +34 -34
- package/src/main.ts +11 -11
- package/src/plugins/vuetify.ts +139 -131
- package/src/shims-vue.d.ts +10 -10
- package/src/stories/Accordion.stories.ts +650 -650
- package/src/stories/Audio.stories.ts +28 -28
- package/src/stories/Button.stories.ts +263 -263
- package/src/stories/CheckBox.stories.ts +348 -348
- package/src/stories/DateInput.stories.ts +53 -53
- package/src/stories/Dialog.stories.ts +147 -147
- package/src/stories/EditField.stories.ts +78 -78
- package/src/stories/IconBullet/IconBullet.stories.ts +201 -201
- package/src/stories/IconBullet/IconBulletList.stories.ts +275 -275
- package/src/stories/Input.stories.ts +351 -351
- package/src/stories/Laboratory/Cards/AppointmentCard/AppointmentCard.stories.ts +260 -260
- package/src/stories/Laboratory/Cards/DocumentCard/DocumentCard.stories.ts +176 -176
- package/src/stories/Laboratory/Cards/DocumentCard/DocumentCardItem.stories.ts +119 -119
- package/src/stories/Laboratory/Cards/InfoCard/InfoCard.stories.ts +320 -320
- package/src/stories/Laboratory/Cards/TicketCard/TicketCard.stories.ts +335 -335
- package/src/stories/Laboratory/Chat/ChatBoxImage.stories.ts +82 -82
- package/src/stories/Laboratory/Chat/ChatMessage.stories.ts +198 -198
- package/src/stories/Laboratory/Chat/ChatMessageBadge.stories.ts +204 -204
- package/src/stories/Laboratory/Chat/ChatNotification.stories.ts +144 -144
- package/src/stories/Laboratory/Chat/ProgressLinear.stories.ts +186 -186
- package/src/stories/Laboratory/Chat/StatusNotification.stories.ts +111 -111
- package/src/stories/Laboratory/MainColumnsBar.stories.ts +48 -48
- package/src/stories/Laboratory/ProgressCircle.stories.ts +261 -261
- package/src/stories/Laboratory/SelectionColumnBar.stories.ts +234 -234
- package/src/stories/Laboratory/TagLabel.stories.ts +418 -418
- package/src/stories/Laboratory/TagLabelGroup.stories.ts +234 -234
- package/src/stories/Laboratory/Timeline.stories.ts +403 -403
- package/src/stories/NotificationBubble.stories.ts +194 -194
- package/src/stories/OtpInput.stories.ts +100 -100
- package/src/stories/PhoneInput.stories.ts +52 -52
- package/src/stories/Select.stories.ts +419 -419
- package/src/stories/TextArea.stories.ts +112 -112
- package/src/stories/TickBox.stories.ts +294 -294
- package/src/stories/v-icon.stories.ts +91 -91
- package/src/utils/index.ts +106 -100
- package/src/vite-env.d.ts +1 -1
- package/tests/e2e/README.md +220 -220
- package/tests/e2e/accessibility.spec.ts +638 -638
- package/tests/e2e/accordion.spec.ts +42 -42
- package/tests/e2e/additional-components.spec.ts +437 -437
- package/tests/e2e/all-components.spec.ts +135 -135
- package/tests/e2e/appointment-card.spec.ts +816 -816
- package/tests/e2e/button-fixed.spec.ts +58 -58
- package/tests/e2e/button.spec.ts +76 -76
- package/tests/e2e/checkbox.spec.ts +50 -50
- package/tests/e2e/date-input.spec.ts +46 -46
- package/tests/e2e/debug.spec.ts +51 -51
- package/tests/e2e/dialog.spec.ts +58 -58
- package/tests/e2e/input.spec.ts +55 -55
- package/tests/e2e/laboratory-components.spec.ts +320 -320
- package/tests/e2e/otp-input.spec.ts +50 -50
- package/tests/e2e/select.spec.ts +52 -52
- package/tests/e2e/storybook-utils.ts +59 -59
- package/tests/e2e/test-basic.spec.ts +33 -33
- package/tests/e2e/visual-regression.spec.ts +350 -350
- package/tests/unit/components/Accordion/AccordionGroup.spec.ts.skip +342 -342
- package/tests/unit/components/Accordion/AccordionItem.spec.ts.skip +383 -383
- package/tests/unit/components/Appointment/Card/Actions.spec.ts +407 -407
- package/tests/unit/components/Appointment/Card/Card.spec.ts +485 -485
- package/tests/unit/components/Appointment/Card/Details.spec.ts +397 -397
- package/tests/unit/components/Audio/Audio.spec.ts +403 -403
- package/tests/unit/components/Audio/Waveform.spec.ts +483 -483
- package/tests/unit/components/Core/Button.spec.ts +336 -336
- package/tests/unit/components/Core/Checkbox.spec.ts +544 -544
- package/tests/unit/components/Core/DateInput.spec.ts +690 -690
- package/tests/unit/components/Core/Dialog.spec.ts +485 -485
- package/tests/unit/components/Core/EditField.spec.ts +782 -782
- package/tests/unit/components/Core/Input.spec.ts +512 -512
- package/tests/unit/components/Core/Modal.spec.ts +518 -518
- package/tests/unit/components/Core/NotificationBubble.spec.ts +606 -606
- package/tests/unit/components/Core/OtpInput.spec.ts +708 -708
- package/tests/unit/components/Core/PhoneInput.spec.ts +619 -619
- package/tests/unit/components/Core/Select.spec.ts +712 -712
- package/tests/unit/components/Core/TextArea.spec.ts +565 -565
- package/tests/unit/components/Core/TickBox.spec.ts +779 -779
- package/tests/unit/components/IconBullet/IconBullet.spec.ts +356 -356
- package/tests/unit/components/IconBullet/IconBulletList.spec.ts +371 -371
- package/tests/unit/components/Icons/Audio/CloudFailed.spec.ts +108 -108
- package/tests/unit/components/Icons/Audio/CloudSaved.spec.ts +149 -149
- package/tests/unit/components/Icons/Audio/Delete.spec.ts +158 -158
- package/tests/unit/components/Icons/Audio/Pause.spec.ts +208 -208
- package/tests/unit/components/Icons/Audio/Play.spec.ts +217 -217
- package/tests/unit/components/Icons/CalendarNotification.spec.ts +186 -186
- package/tests/unit/components/Icons/Chair.spec.ts +234 -234
- package/tests/unit/components/Icons/ChairNotification.spec.ts +311 -311
- package/tests/unit/components/Icons/Circle.spec.ts +255 -255
- package/tests/unit/components/Icons/FavIcon.spec.ts +251 -251
- package/tests/unit/components/Icons/FilledCircle.spec.ts +274 -274
- package/tests/unit/components/Icons/Group3.spec.ts +355 -355
- package/tests/unit/components/Icons/RingNotification.spec.ts +393 -393
- package/tests/unit/components/Icons/calendar.spec.ts +286 -286
- package/tests/unit/components/Icons/checkbox.spec.ts +315 -315
- package/tests/unit/components/Icons/outlineChecked.spec.ts +434 -434
- package/tests/unit/components/Icons/play.spec.ts +308 -308
- package/tests/unit/components/Laboratory/AppointmentCard.spec.ts +167 -167
- package/tests/unit/components/Laboratory/ChatBoxImage.spec.ts +179 -179
- package/tests/unit/components/Laboratory/ChatMessage.spec.ts +263 -263
- package/tests/unit/components/Laboratory/ChatMessageBadge.spec.ts +282 -282
- package/tests/unit/components/Laboratory/ChatNotification.spec.ts +256 -256
- package/tests/unit/components/Laboratory/DocumentCard.spec.ts +228 -228
- package/tests/unit/components/Laboratory/DocumentCardItem.spec.ts +236 -236
- package/tests/unit/components/Laboratory/InfoCard.spec.ts +308 -308
- package/tests/unit/components/Laboratory/MainColumnsBar.spec.ts +251 -251
- package/tests/unit/components/Laboratory/ProgressCircle.spec.ts +290 -290
- package/tests/unit/components/Laboratory/ProgressLinear.spec.ts +275 -275
- package/tests/unit/components/Laboratory/SelectionColumnBar.spec.ts +288 -288
- package/tests/unit/components/Laboratory/StatusNotification.spec.ts +296 -296
- package/tests/unit/components/Laboratory/TagLabel.spec.ts +353 -353
- package/tests/unit/components/Laboratory/TagLabelGroup.spec.ts +377 -377
- package/tests/unit/components/Laboratory/TicketCard.spec.ts +351 -351
- package/tests/unit/components/Laboratory/TimeLineEvent.spec.ts +381 -381
- package/tests/unit/components/Laboratory/Timeline.spec.ts +419 -419
- package/tests/unit/constants/iconEnums.spec.ts +39 -39
- package/tests/unit/i18n/i18n.spec.ts +88 -88
- package/tests/unit/plugins/vuetify.spec.ts +220 -220
- package/tests/unit/setup.ts +189 -189
- package/tests/unit/src/components/index.spec.ts.skip +192 -192
- package/tests/unit/src/index.spec.ts.skip +182 -182
- package/tests/unit/src/main.spec.ts +151 -151
- package/tsconfig.json +26 -26
- package/vite.config.ts +29 -29
- package/vitest.config.ts +83 -83
|
@@ -1,234 +1,234 @@
|
|
|
1
|
-
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
-
import SelectionColumnBar from '@components/Laboratory/SelectionColumnBar/SelectionColumnBar.vue';
|
|
3
|
-
import { action } from '@storybook/addon-actions';
|
|
4
|
-
|
|
5
|
-
// Meta configuration for the SelectionColumnBar component
|
|
6
|
-
const meta: Meta<typeof SelectionColumnBar> = {
|
|
7
|
-
title: 'WL/Laboratory/SelectionColumnBar',
|
|
8
|
-
component: SelectionColumnBar,
|
|
9
|
-
tags: ['autodocs'],
|
|
10
|
-
argTypes: {
|
|
11
|
-
title: {
|
|
12
|
-
control: 'text',
|
|
13
|
-
description: 'The title displayed in the center button.',
|
|
14
|
-
},
|
|
15
|
-
disableLast: {
|
|
16
|
-
control: 'boolean',
|
|
17
|
-
description: 'Disables the "Vorheriges Board" button if true.',
|
|
18
|
-
},
|
|
19
|
-
disableNext: {
|
|
20
|
-
control: 'boolean',
|
|
21
|
-
description: 'Disables the "Nächstes Board" button if true.',
|
|
22
|
-
},
|
|
23
|
-
'click:last': {
|
|
24
|
-
action: 'click:last',
|
|
25
|
-
description: 'Triggered when the "Vorheriges Board" button is clicked.',
|
|
26
|
-
},
|
|
27
|
-
'click:next': {
|
|
28
|
-
action: 'click:next',
|
|
29
|
-
description: 'Triggered when the "Nächstes Board" button is clicked.',
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
args: {
|
|
33
|
-
title: 'Draft Board', // Default title
|
|
34
|
-
},
|
|
35
|
-
parameters: {
|
|
36
|
-
docs: {
|
|
37
|
-
description: {
|
|
38
|
-
component: `
|
|
39
|
-
The \`SelectionColumnBar\` component provides navigation with options for "Vorheriges Board" (Previous Board) and "Nächstes Board" (Next Board) buttons, along with a dynamic title. You can disable either navigation button with the \`disableLast\` and \`disableNext\` props, and track clicks on these buttons with event actions.
|
|
40
|
-
|
|
41
|
-
### Props
|
|
42
|
-
- **\`title\`**: Sets the title text in the center button.
|
|
43
|
-
- **\`disableLast\`**: Disables the "Vorheriges Board" button if set to true.
|
|
44
|
-
- **\`disableNext\`**: Disables the "Nächstes Board" button if set to true.
|
|
45
|
-
|
|
46
|
-
### Events
|
|
47
|
-
- **\`click:last\`**: Emitted when the "Vorheriges Board" button is clicked.
|
|
48
|
-
- **\`click:next\`**: Emitted when the "Nächstes Board" button is clicked.
|
|
49
|
-
`,
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
export default meta;
|
|
56
|
-
type Story = StoryObj<typeof meta>;
|
|
57
|
-
|
|
58
|
-
// Common template
|
|
59
|
-
const Template: Story = {
|
|
60
|
-
render: (args) => ({
|
|
61
|
-
components: { SelectionColumnBar },
|
|
62
|
-
setup() {
|
|
63
|
-
return { args };
|
|
64
|
-
},
|
|
65
|
-
template: `
|
|
66
|
-
<SelectionColumnBar
|
|
67
|
-
v-bind="args"
|
|
68
|
-
@click:last="args['click:last']"
|
|
69
|
-
@click:next="args['click:next']"
|
|
70
|
-
/>
|
|
71
|
-
`,
|
|
72
|
-
}),
|
|
73
|
-
parameters: {
|
|
74
|
-
docs: {
|
|
75
|
-
source: {
|
|
76
|
-
code: `
|
|
77
|
-
<template>
|
|
78
|
-
<SelectionColumnBar
|
|
79
|
-
:title="title"
|
|
80
|
-
:disableLast="disableLast"
|
|
81
|
-
:disableNext="disableNext"
|
|
82
|
-
@click:last="clickLast"
|
|
83
|
-
@click:next="clickNext"
|
|
84
|
-
/>
|
|
85
|
-
</template>
|
|
86
|
-
|
|
87
|
-
<script setup>
|
|
88
|
-
import SelectionColumnBar from '@components/Laboratory/SelectionColumnBar/SelectionColumnBar.vue';
|
|
89
|
-
|
|
90
|
-
const clickLast = () => console.log('Previous button clicked');
|
|
91
|
-
const clickNext = () => console.log('Next button clicked');
|
|
92
|
-
</script>
|
|
93
|
-
`,
|
|
94
|
-
},
|
|
95
|
-
},
|
|
96
|
-
},
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
// Default story
|
|
100
|
-
export const Default: Story = { ...Template };
|
|
101
|
-
|
|
102
|
-
// Custom title story
|
|
103
|
-
export const CustomTitle: Story = {
|
|
104
|
-
...Template,
|
|
105
|
-
args: {
|
|
106
|
-
title: 'Custom Draft Title',
|
|
107
|
-
},
|
|
108
|
-
parameters: {
|
|
109
|
-
docs: {
|
|
110
|
-
source: {
|
|
111
|
-
code: `
|
|
112
|
-
<template>
|
|
113
|
-
<SelectionColumnBar
|
|
114
|
-
title="Custom Draft Title"
|
|
115
|
-
@click:last="clickLast"
|
|
116
|
-
@click:next="clickNext"
|
|
117
|
-
/>
|
|
118
|
-
</template>
|
|
119
|
-
`,
|
|
120
|
-
},
|
|
121
|
-
},
|
|
122
|
-
},
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
// With disabled previous button
|
|
126
|
-
export const DisabledPrevious: Story = {
|
|
127
|
-
...Template,
|
|
128
|
-
args: {
|
|
129
|
-
title: 'Board with Disabled Previous',
|
|
130
|
-
disableLast: true,
|
|
131
|
-
},
|
|
132
|
-
parameters: {
|
|
133
|
-
docs: {
|
|
134
|
-
source: {
|
|
135
|
-
code: `
|
|
136
|
-
<template>
|
|
137
|
-
<SelectionColumnBar
|
|
138
|
-
title="Board with Disabled Previous"
|
|
139
|
-
:disableLast="true"
|
|
140
|
-
@click:last="clickLast"
|
|
141
|
-
@click:next="clickNext"
|
|
142
|
-
/>
|
|
143
|
-
</template>
|
|
144
|
-
`,
|
|
145
|
-
},
|
|
146
|
-
},
|
|
147
|
-
},
|
|
148
|
-
};
|
|
149
|
-
|
|
150
|
-
// With disabled next button
|
|
151
|
-
export const DisabledNext: Story = {
|
|
152
|
-
...Template,
|
|
153
|
-
args: {
|
|
154
|
-
title: 'Board with Disabled Next',
|
|
155
|
-
disableNext: true,
|
|
156
|
-
},
|
|
157
|
-
parameters: {
|
|
158
|
-
docs: {
|
|
159
|
-
source: {
|
|
160
|
-
code: `
|
|
161
|
-
<template>
|
|
162
|
-
<SelectionColumnBar
|
|
163
|
-
title="Board with Disabled Next"
|
|
164
|
-
:disableNext="true"
|
|
165
|
-
@click:last="clickLast"
|
|
166
|
-
@click:next="clickNext"
|
|
167
|
-
/>
|
|
168
|
-
</template>
|
|
169
|
-
`,
|
|
170
|
-
},
|
|
171
|
-
},
|
|
172
|
-
},
|
|
173
|
-
};
|
|
174
|
-
|
|
175
|
-
// With both buttons disabled
|
|
176
|
-
export const BothDisabled: Story = {
|
|
177
|
-
...Template,
|
|
178
|
-
args: {
|
|
179
|
-
title: 'Board with Both Buttons Disabled',
|
|
180
|
-
disableLast: true,
|
|
181
|
-
disableNext: true,
|
|
182
|
-
},
|
|
183
|
-
parameters: {
|
|
184
|
-
docs: {
|
|
185
|
-
source: {
|
|
186
|
-
code: `
|
|
187
|
-
<template>
|
|
188
|
-
<SelectionColumnBar
|
|
189
|
-
title="Board with Both Buttons Disabled"
|
|
190
|
-
:disableLast="true"
|
|
191
|
-
:disableNext="true"
|
|
192
|
-
@click:last="clickLast"
|
|
193
|
-
@click:next="clickNext"
|
|
194
|
-
/>
|
|
195
|
-
</template>
|
|
196
|
-
`,
|
|
197
|
-
},
|
|
198
|
-
},
|
|
199
|
-
},
|
|
200
|
-
};
|
|
201
|
-
|
|
202
|
-
// Story with event actions for debugging
|
|
203
|
-
export const WithEventActions: Story = {
|
|
204
|
-
...Template,
|
|
205
|
-
args: {
|
|
206
|
-
title: 'Event Handling Board',
|
|
207
|
-
},
|
|
208
|
-
argTypes: {
|
|
209
|
-
'click:last': { action: 'click:last' },
|
|
210
|
-
'click:next': { action: 'click:next' },
|
|
211
|
-
},
|
|
212
|
-
parameters: {
|
|
213
|
-
docs: {
|
|
214
|
-
source: {
|
|
215
|
-
code: `
|
|
216
|
-
<template>
|
|
217
|
-
<SelectionColumnBar
|
|
218
|
-
title="Event Handling Board"
|
|
219
|
-
@click:last="clickLast"
|
|
220
|
-
@click:next="clickNext"
|
|
221
|
-
/>
|
|
222
|
-
</template>
|
|
223
|
-
|
|
224
|
-
<script setup>
|
|
225
|
-
import { action } from '@storybook/addon-actions';
|
|
226
|
-
|
|
227
|
-
const clickLast = action('click:last');
|
|
228
|
-
const clickNext = action('click:next');
|
|
229
|
-
</script>
|
|
230
|
-
`,
|
|
231
|
-
},
|
|
232
|
-
},
|
|
233
|
-
},
|
|
234
|
-
};
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import SelectionColumnBar from '@components/Laboratory/SelectionColumnBar/SelectionColumnBar.vue';
|
|
3
|
+
import { action } from '@storybook/addon-actions';
|
|
4
|
+
|
|
5
|
+
// Meta configuration for the SelectionColumnBar component
|
|
6
|
+
const meta: Meta<typeof SelectionColumnBar> = {
|
|
7
|
+
title: 'WL/Laboratory/SelectionColumnBar',
|
|
8
|
+
component: SelectionColumnBar,
|
|
9
|
+
tags: ['autodocs'],
|
|
10
|
+
argTypes: {
|
|
11
|
+
title: {
|
|
12
|
+
control: 'text',
|
|
13
|
+
description: 'The title displayed in the center button.',
|
|
14
|
+
},
|
|
15
|
+
disableLast: {
|
|
16
|
+
control: 'boolean',
|
|
17
|
+
description: 'Disables the "Vorheriges Board" button if true.',
|
|
18
|
+
},
|
|
19
|
+
disableNext: {
|
|
20
|
+
control: 'boolean',
|
|
21
|
+
description: 'Disables the "Nächstes Board" button if true.',
|
|
22
|
+
},
|
|
23
|
+
'click:last': {
|
|
24
|
+
action: 'click:last',
|
|
25
|
+
description: 'Triggered when the "Vorheriges Board" button is clicked.',
|
|
26
|
+
},
|
|
27
|
+
'click:next': {
|
|
28
|
+
action: 'click:next',
|
|
29
|
+
description: 'Triggered when the "Nächstes Board" button is clicked.',
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
args: {
|
|
33
|
+
title: 'Draft Board', // Default title
|
|
34
|
+
},
|
|
35
|
+
parameters: {
|
|
36
|
+
docs: {
|
|
37
|
+
description: {
|
|
38
|
+
component: `
|
|
39
|
+
The \`SelectionColumnBar\` component provides navigation with options for "Vorheriges Board" (Previous Board) and "Nächstes Board" (Next Board) buttons, along with a dynamic title. You can disable either navigation button with the \`disableLast\` and \`disableNext\` props, and track clicks on these buttons with event actions.
|
|
40
|
+
|
|
41
|
+
### Props
|
|
42
|
+
- **\`title\`**: Sets the title text in the center button.
|
|
43
|
+
- **\`disableLast\`**: Disables the "Vorheriges Board" button if set to true.
|
|
44
|
+
- **\`disableNext\`**: Disables the "Nächstes Board" button if set to true.
|
|
45
|
+
|
|
46
|
+
### Events
|
|
47
|
+
- **\`click:last\`**: Emitted when the "Vorheriges Board" button is clicked.
|
|
48
|
+
- **\`click:next\`**: Emitted when the "Nächstes Board" button is clicked.
|
|
49
|
+
`,
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export default meta;
|
|
56
|
+
type Story = StoryObj<typeof meta>;
|
|
57
|
+
|
|
58
|
+
// Common template
|
|
59
|
+
const Template: Story = {
|
|
60
|
+
render: (args) => ({
|
|
61
|
+
components: { SelectionColumnBar },
|
|
62
|
+
setup() {
|
|
63
|
+
return { args };
|
|
64
|
+
},
|
|
65
|
+
template: `
|
|
66
|
+
<SelectionColumnBar
|
|
67
|
+
v-bind="args"
|
|
68
|
+
@click:last="args['click:last']"
|
|
69
|
+
@click:next="args['click:next']"
|
|
70
|
+
/>
|
|
71
|
+
`,
|
|
72
|
+
}),
|
|
73
|
+
parameters: {
|
|
74
|
+
docs: {
|
|
75
|
+
source: {
|
|
76
|
+
code: `
|
|
77
|
+
<template>
|
|
78
|
+
<SelectionColumnBar
|
|
79
|
+
:title="title"
|
|
80
|
+
:disableLast="disableLast"
|
|
81
|
+
:disableNext="disableNext"
|
|
82
|
+
@click:last="clickLast"
|
|
83
|
+
@click:next="clickNext"
|
|
84
|
+
/>
|
|
85
|
+
</template>
|
|
86
|
+
|
|
87
|
+
<script setup>
|
|
88
|
+
import SelectionColumnBar from '@components/Laboratory/SelectionColumnBar/SelectionColumnBar.vue';
|
|
89
|
+
|
|
90
|
+
const clickLast = () => console.log('Previous button clicked');
|
|
91
|
+
const clickNext = () => console.log('Next button clicked');
|
|
92
|
+
</script>
|
|
93
|
+
`,
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
// Default story
|
|
100
|
+
export const Default: Story = { ...Template };
|
|
101
|
+
|
|
102
|
+
// Custom title story
|
|
103
|
+
export const CustomTitle: Story = {
|
|
104
|
+
...Template,
|
|
105
|
+
args: {
|
|
106
|
+
title: 'Custom Draft Title',
|
|
107
|
+
},
|
|
108
|
+
parameters: {
|
|
109
|
+
docs: {
|
|
110
|
+
source: {
|
|
111
|
+
code: `
|
|
112
|
+
<template>
|
|
113
|
+
<SelectionColumnBar
|
|
114
|
+
title="Custom Draft Title"
|
|
115
|
+
@click:last="clickLast"
|
|
116
|
+
@click:next="clickNext"
|
|
117
|
+
/>
|
|
118
|
+
</template>
|
|
119
|
+
`,
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
// With disabled previous button
|
|
126
|
+
export const DisabledPrevious: Story = {
|
|
127
|
+
...Template,
|
|
128
|
+
args: {
|
|
129
|
+
title: 'Board with Disabled Previous',
|
|
130
|
+
disableLast: true,
|
|
131
|
+
},
|
|
132
|
+
parameters: {
|
|
133
|
+
docs: {
|
|
134
|
+
source: {
|
|
135
|
+
code: `
|
|
136
|
+
<template>
|
|
137
|
+
<SelectionColumnBar
|
|
138
|
+
title="Board with Disabled Previous"
|
|
139
|
+
:disableLast="true"
|
|
140
|
+
@click:last="clickLast"
|
|
141
|
+
@click:next="clickNext"
|
|
142
|
+
/>
|
|
143
|
+
</template>
|
|
144
|
+
`,
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
// With disabled next button
|
|
151
|
+
export const DisabledNext: Story = {
|
|
152
|
+
...Template,
|
|
153
|
+
args: {
|
|
154
|
+
title: 'Board with Disabled Next',
|
|
155
|
+
disableNext: true,
|
|
156
|
+
},
|
|
157
|
+
parameters: {
|
|
158
|
+
docs: {
|
|
159
|
+
source: {
|
|
160
|
+
code: `
|
|
161
|
+
<template>
|
|
162
|
+
<SelectionColumnBar
|
|
163
|
+
title="Board with Disabled Next"
|
|
164
|
+
:disableNext="true"
|
|
165
|
+
@click:last="clickLast"
|
|
166
|
+
@click:next="clickNext"
|
|
167
|
+
/>
|
|
168
|
+
</template>
|
|
169
|
+
`,
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
},
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
// With both buttons disabled
|
|
176
|
+
export const BothDisabled: Story = {
|
|
177
|
+
...Template,
|
|
178
|
+
args: {
|
|
179
|
+
title: 'Board with Both Buttons Disabled',
|
|
180
|
+
disableLast: true,
|
|
181
|
+
disableNext: true,
|
|
182
|
+
},
|
|
183
|
+
parameters: {
|
|
184
|
+
docs: {
|
|
185
|
+
source: {
|
|
186
|
+
code: `
|
|
187
|
+
<template>
|
|
188
|
+
<SelectionColumnBar
|
|
189
|
+
title="Board with Both Buttons Disabled"
|
|
190
|
+
:disableLast="true"
|
|
191
|
+
:disableNext="true"
|
|
192
|
+
@click:last="clickLast"
|
|
193
|
+
@click:next="clickNext"
|
|
194
|
+
/>
|
|
195
|
+
</template>
|
|
196
|
+
`,
|
|
197
|
+
},
|
|
198
|
+
},
|
|
199
|
+
},
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
// Story with event actions for debugging
|
|
203
|
+
export const WithEventActions: Story = {
|
|
204
|
+
...Template,
|
|
205
|
+
args: {
|
|
206
|
+
title: 'Event Handling Board',
|
|
207
|
+
},
|
|
208
|
+
argTypes: {
|
|
209
|
+
'click:last': { action: 'click:last' },
|
|
210
|
+
'click:next': { action: 'click:next' },
|
|
211
|
+
},
|
|
212
|
+
parameters: {
|
|
213
|
+
docs: {
|
|
214
|
+
source: {
|
|
215
|
+
code: `
|
|
216
|
+
<template>
|
|
217
|
+
<SelectionColumnBar
|
|
218
|
+
title="Event Handling Board"
|
|
219
|
+
@click:last="clickLast"
|
|
220
|
+
@click:next="clickNext"
|
|
221
|
+
/>
|
|
222
|
+
</template>
|
|
223
|
+
|
|
224
|
+
<script setup>
|
|
225
|
+
import { action } from '@storybook/addon-actions';
|
|
226
|
+
|
|
227
|
+
const clickLast = action('click:last');
|
|
228
|
+
const clickNext = action('click:next');
|
|
229
|
+
</script>
|
|
230
|
+
`,
|
|
231
|
+
},
|
|
232
|
+
},
|
|
233
|
+
},
|
|
234
|
+
};
|