@zap-wunschlachen/wl-shared-components 1.0.38 → 1.0.40
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 +33 -33
- 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 +234 -232
- package/src/assets/css/variables.css +112 -109
- 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 +118 -118
- package/src/components/Button/Button.vue +174 -174
- package/src/components/CheckBox/CheckBox.css +214 -214
- package/src/components/CheckBox/Checkbox.vue +138 -138
- 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 +38 -38
- package/src/components/EditField/EditField.css +19 -19
- package/src/components/EditField/EditField.vue +202 -202
- package/src/components/ErrorPage/ErrorPage.css +172 -172
- 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/{calendar.vue → Calendar.vue} +17 -17
- 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/RingNotification.vue +54 -54
- package/src/components/Icons/SolidArrowRight.vue +14 -14
- 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 +253 -253
- 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 +71 -71
- package/src/components/MaintenanceBanner/MaintenanceBanner.css +353 -353
- package/src/components/MaintenanceBanner/MaintenanceBanner.vue +127 -127
- package/src/components/MaintenanceBanner/MaintenanceIllustration.vue +54 -54
- 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 +151 -151
- 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 +316 -316
- 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/accessibility.css +218 -218
- package/src/components/index.ts +29 -29
- 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 +141 -141
- 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 +116 -109
- 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/accessibility/component-a11y.spec.ts +469 -469
- package/tests/unit/components/Accordion/AccordionGroup.spec.ts +228 -228
- package/tests/unit/components/Accordion/AccordionGroup.spec.ts.skip +342 -342
- package/tests/unit/components/Accordion/AccordionItem.spec.ts +292 -292
- package/tests/unit/components/Accordion/AccordionItem.spec.ts.skip +383 -383
- package/tests/unit/components/Appointment/AnamneseNotification.spec.ts +176 -176
- 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/Background/Background.spec.ts +177 -177
- 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/ErrorPage/ErrorPage.spec.ts +313 -313
- package/tests/unit/components/ErrorPage/ErrorPageLogo.spec.ts +153 -153
- 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/AdvanceAppointments.spec.ts +61 -61
- 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/Logo.spec.ts +228 -228
- package/tests/unit/components/Icons/MiniLogo.spec.ts +38 -38
- package/tests/unit/components/Icons/RingNotification.spec.ts +393 -393
- package/tests/unit/components/Icons/SolidArrowRight.spec.ts +49 -49
- 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/components/Loader/Loader.spec.ts +197 -197
- package/tests/unit/components/MaintenanceBanner/MaintenanceBanner.spec.ts +302 -302
- 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/tests/unit/utils/accessibility.spec.ts +318 -318
- package/tsconfig.json +26 -26
- package/vite.config.ts +29 -29
- package/vitest.config.ts +83 -83
|
@@ -1,403 +1,403 @@
|
|
|
1
|
-
import { Meta, Story } from '@storybook/vue3';
|
|
2
|
-
import Timeline from '@components/Laboratory/TimeLine/Timeline.vue';
|
|
3
|
-
import TimelineEvent from '@components/Laboratory/TimeLine/TimeLineEvent.vue';
|
|
4
|
-
import TagLabel from '@components/Laboratory/TagLabel/TagLabel.vue';
|
|
5
|
-
|
|
6
|
-
const meta: Meta<typeof Timeline> = {
|
|
7
|
-
title: 'WL/Laboratory/Timeline',
|
|
8
|
-
component: Timeline,
|
|
9
|
-
tags: ['autodocs'],
|
|
10
|
-
argTypes: {
|
|
11
|
-
events: {
|
|
12
|
-
control: 'object',
|
|
13
|
-
description: 'An array of event objects to display in the timeline.',
|
|
14
|
-
},
|
|
15
|
-
},
|
|
16
|
-
parameters: {
|
|
17
|
-
docs: {
|
|
18
|
-
description: {
|
|
19
|
-
component: `
|
|
20
|
-
The \`Timeline\` component displays a series of events in chronological order. Each event can include headers, durations, steps, and status indicators.
|
|
21
|
-
|
|
22
|
-
### Props
|
|
23
|
-
|
|
24
|
-
- **\`events\`**: An array of event objects. Each event object can have the following properties:
|
|
25
|
-
- **\`status\`**: The status of the event, e.g., 'Done', 'Ready', 'Dispatched'.
|
|
26
|
-
- **\`firstHeader\`**: The main header for the event.
|
|
27
|
-
- **\`secondHeader\`**: A secondary header for the event.
|
|
28
|
-
- **\`firstDuration\`**: Duration text associated with the first header.
|
|
29
|
-
- **\`secondDuration\`**: Duration text associated with the second header.
|
|
30
|
-
- **\`steps\`**: An array of step objects, each containing a date and description.
|
|
31
|
-
- **\`urgent\`**: A boolean indicating if the event is marked as urgent.
|
|
32
|
-
|
|
33
|
-
### Slots
|
|
34
|
-
|
|
35
|
-
- **\`content\`**: Slot to customize the rendering of each event. Receives \`event\` as a scoped slot prop.
|
|
36
|
-
|
|
37
|
-
### Example Usage
|
|
38
|
-
|
|
39
|
-
Below are examples of how to use the \`Timeline\` component with various event configurations.
|
|
40
|
-
`,
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
export default meta;
|
|
47
|
-
|
|
48
|
-
const Template: Story = (args) => ({
|
|
49
|
-
components: { Timeline, TimelineEvent, TagLabel },
|
|
50
|
-
setup() {
|
|
51
|
-
return { args };
|
|
52
|
-
},
|
|
53
|
-
template: `
|
|
54
|
-
<div style="padding: 16px;">
|
|
55
|
-
<Timeline v-bind="args">
|
|
56
|
-
<template #content="{ event }">
|
|
57
|
-
<TimelineEvent
|
|
58
|
-
:firstHeader="event.firstHeader"
|
|
59
|
-
:secondHeader="event.secondHeader"
|
|
60
|
-
:firstDuration="event.firstDuration"
|
|
61
|
-
:secondDuration="event.secondDuration"
|
|
62
|
-
:steps="event.steps"
|
|
63
|
-
:urgent="event.urgent"
|
|
64
|
-
>
|
|
65
|
-
<template #icon>
|
|
66
|
-
<TagLabel :status="event.status" />
|
|
67
|
-
</template>
|
|
68
|
-
</TimelineEvent>
|
|
69
|
-
</template>
|
|
70
|
-
</Timeline>
|
|
71
|
-
</div>
|
|
72
|
-
`,
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
export const DefaultTimeline = Template.bind({});
|
|
76
|
-
DefaultTimeline.args = {
|
|
77
|
-
events: [
|
|
78
|
-
{
|
|
79
|
-
status: 'Done',
|
|
80
|
-
firstHeader: 'Projekt A',
|
|
81
|
-
secondHeader: 'Projekt B',
|
|
82
|
-
firstDuration: '10 Tage 5 Stunden',
|
|
83
|
-
secondDuration: '12 Tage 3 Stunden',
|
|
84
|
-
steps: [
|
|
85
|
-
{
|
|
86
|
-
date: '12. Sept. 2021',
|
|
87
|
-
description:
|
|
88
|
-
'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
date: '15. Sept. 2022',
|
|
92
|
-
description:
|
|
93
|
-
'Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
|
|
94
|
-
},
|
|
95
|
-
],
|
|
96
|
-
},
|
|
97
|
-
],
|
|
98
|
-
};
|
|
99
|
-
DefaultTimeline.parameters = {
|
|
100
|
-
docs: {
|
|
101
|
-
source: {
|
|
102
|
-
code: `
|
|
103
|
-
<script setup>
|
|
104
|
-
import Timeline from '@components/Laboratory/TimeLine/Timeline.vue';
|
|
105
|
-
import TimelineEvent from '@components/Laboratory/TimeLine/TimeLineEvent.vue';
|
|
106
|
-
import TagLabel from '@components/Laboratory/TagLabel/TagLabel.vue';
|
|
107
|
-
|
|
108
|
-
const events = [
|
|
109
|
-
{
|
|
110
|
-
status: 'Done',
|
|
111
|
-
firstHeader: 'Projekt A',
|
|
112
|
-
secondHeader: 'Projekt B',
|
|
113
|
-
firstDuration: '10 Tage 5 Stunden',
|
|
114
|
-
secondDuration: '12 Tage 3 Stunden',
|
|
115
|
-
steps: [
|
|
116
|
-
{
|
|
117
|
-
date: '12. Sept. 2021',
|
|
118
|
-
description:
|
|
119
|
-
'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
date: '15. Sept. 2022',
|
|
123
|
-
description:
|
|
124
|
-
'Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
|
|
125
|
-
},
|
|
126
|
-
],
|
|
127
|
-
},
|
|
128
|
-
];
|
|
129
|
-
</script>
|
|
130
|
-
|
|
131
|
-
<template>
|
|
132
|
-
<Timeline :events="events">
|
|
133
|
-
<template #content="{ event }">
|
|
134
|
-
<TimelineEvent
|
|
135
|
-
:firstHeader="event.firstHeader"
|
|
136
|
-
:secondHeader="event.secondHeader"
|
|
137
|
-
:firstDuration="event.firstDuration"
|
|
138
|
-
:secondDuration="event.secondDuration"
|
|
139
|
-
:steps="event.steps"
|
|
140
|
-
:urgent="event.urgent"
|
|
141
|
-
>
|
|
142
|
-
<template #icon>
|
|
143
|
-
<TagLabel :status="event.status" />
|
|
144
|
-
</template>
|
|
145
|
-
</TimelineEvent>
|
|
146
|
-
</template>
|
|
147
|
-
</Timeline>
|
|
148
|
-
</template>
|
|
149
|
-
`,
|
|
150
|
-
},
|
|
151
|
-
},
|
|
152
|
-
};
|
|
153
|
-
|
|
154
|
-
export const MultipleStepsTimeline = Template.bind({});
|
|
155
|
-
MultipleStepsTimeline.args = {
|
|
156
|
-
events: [
|
|
157
|
-
{
|
|
158
|
-
status: 'Done',
|
|
159
|
-
firstHeader: 'Projekt A',
|
|
160
|
-
secondHeader: 'Projekt B',
|
|
161
|
-
firstDuration: '10 Tage 5 Stunden',
|
|
162
|
-
secondDuration: '12 Tage 3 Stunden',
|
|
163
|
-
steps: [
|
|
164
|
-
{
|
|
165
|
-
date: '12. Sept. 2021',
|
|
166
|
-
description:
|
|
167
|
-
'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
|
|
168
|
-
},
|
|
169
|
-
{
|
|
170
|
-
date: '15. Sept. 2022',
|
|
171
|
-
description:
|
|
172
|
-
'Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
|
|
173
|
-
},
|
|
174
|
-
],
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
urgent: true,
|
|
178
|
-
status: 'Ready',
|
|
179
|
-
firstHeader: 'Projekt C',
|
|
180
|
-
secondHeader: 'Estimated',
|
|
181
|
-
firstDuration: '5 Tage 2 Stunden',
|
|
182
|
-
secondDuration: '1 d 5 h',
|
|
183
|
-
steps: [
|
|
184
|
-
{
|
|
185
|
-
date: '18. Sept. 2023',
|
|
186
|
-
description:
|
|
187
|
-
'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi.',
|
|
188
|
-
},
|
|
189
|
-
{
|
|
190
|
-
date: '20. Sept. 2024',
|
|
191
|
-
description:
|
|
192
|
-
'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.',
|
|
193
|
-
},
|
|
194
|
-
],
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
status: 'Dispatched',
|
|
198
|
-
firstHeader: 'Projekt E',
|
|
199
|
-
secondHeader: 'Projekt F',
|
|
200
|
-
firstDuration: '4 Tage 2 Stunden',
|
|
201
|
-
secondDuration: '6 Tage 3 Stunden',
|
|
202
|
-
steps: [], // No steps for this event
|
|
203
|
-
},
|
|
204
|
-
],
|
|
205
|
-
};
|
|
206
|
-
MultipleStepsTimeline.parameters = {
|
|
207
|
-
docs: {
|
|
208
|
-
source: {
|
|
209
|
-
code: `
|
|
210
|
-
<script setup>
|
|
211
|
-
import Timeline from '@components/Laboratory/TimeLine/Timeline.vue';
|
|
212
|
-
import TimelineEvent from '@components/Laboratory/TimeLine/TimeLineEvent.vue';
|
|
213
|
-
import TagLabel from '@components/Laboratory/TagLabel/TagLabel.vue';
|
|
214
|
-
|
|
215
|
-
const events = [
|
|
216
|
-
{
|
|
217
|
-
status: 'Done',
|
|
218
|
-
firstHeader: 'Projekt A',
|
|
219
|
-
secondHeader: 'Projekt B',
|
|
220
|
-
firstDuration: '10 Tage 5 Stunden',
|
|
221
|
-
secondDuration: '12 Tage 3 Stunden',
|
|
222
|
-
steps: [
|
|
223
|
-
{
|
|
224
|
-
date: '12. Sept. 2021',
|
|
225
|
-
description:
|
|
226
|
-
'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
date: '15. Sept. 2022',
|
|
230
|
-
description:
|
|
231
|
-
'Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
|
|
232
|
-
},
|
|
233
|
-
],
|
|
234
|
-
},
|
|
235
|
-
{
|
|
236
|
-
urgent: true,
|
|
237
|
-
status: 'Ready',
|
|
238
|
-
firstHeader: 'Projekt C',
|
|
239
|
-
secondHeader: 'Estimated',
|
|
240
|
-
firstDuration: '5 Tage 2 Stunden',
|
|
241
|
-
secondDuration: '1 d 5 h',
|
|
242
|
-
steps: [
|
|
243
|
-
{
|
|
244
|
-
date: '18. Sept. 2023',
|
|
245
|
-
description:
|
|
246
|
-
'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi.',
|
|
247
|
-
},
|
|
248
|
-
{
|
|
249
|
-
date: '20. Sept. 2024',
|
|
250
|
-
description:
|
|
251
|
-
'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.',
|
|
252
|
-
},
|
|
253
|
-
],
|
|
254
|
-
},
|
|
255
|
-
{
|
|
256
|
-
status: 'Dispatched',
|
|
257
|
-
firstHeader: 'Projekt E',
|
|
258
|
-
secondHeader: 'Projekt F',
|
|
259
|
-
firstDuration: '4 Tage 2 Stunden',
|
|
260
|
-
secondDuration: '6 Tage 3 Stunden',
|
|
261
|
-
steps: [],
|
|
262
|
-
},
|
|
263
|
-
];
|
|
264
|
-
</script>
|
|
265
|
-
|
|
266
|
-
<template>
|
|
267
|
-
<Timeline :events="events">
|
|
268
|
-
<template #content="{ event }">
|
|
269
|
-
<TimelineEvent
|
|
270
|
-
:firstHeader="event.firstHeader"
|
|
271
|
-
:secondHeader="event.secondHeader"
|
|
272
|
-
:firstDuration="event.firstDuration"
|
|
273
|
-
:secondDuration="event.secondDuration"
|
|
274
|
-
:steps="event.steps"
|
|
275
|
-
:urgent="event.urgent"
|
|
276
|
-
>
|
|
277
|
-
<template #icon>
|
|
278
|
-
<TagLabel :status="event.status" />
|
|
279
|
-
</template>
|
|
280
|
-
</TimelineEvent>
|
|
281
|
-
</template>
|
|
282
|
-
</Timeline>
|
|
283
|
-
</template>
|
|
284
|
-
`,
|
|
285
|
-
},
|
|
286
|
-
},
|
|
287
|
-
};
|
|
288
|
-
|
|
289
|
-
export const NoStepsTimeline = Template.bind({});
|
|
290
|
-
NoStepsTimeline.args = {
|
|
291
|
-
events: [
|
|
292
|
-
{
|
|
293
|
-
status: 'Dispatched',
|
|
294
|
-
firstHeader: 'Projekt E',
|
|
295
|
-
secondHeader: 'Projekt F',
|
|
296
|
-
firstDuration: '4 Tage 2 Stunden',
|
|
297
|
-
secondDuration: '6 Tage 3 Stunden',
|
|
298
|
-
steps: [], // No steps for this event
|
|
299
|
-
},
|
|
300
|
-
],
|
|
301
|
-
};
|
|
302
|
-
NoStepsTimeline.parameters = {
|
|
303
|
-
docs: {
|
|
304
|
-
source: {
|
|
305
|
-
code: `
|
|
306
|
-
<script setup>
|
|
307
|
-
import Timeline from '@components/Laboratory/TimeLine/Timeline.vue';
|
|
308
|
-
import TimelineEvent from '@components/Laboratory/TimeLine/TimeLineEvent.vue';
|
|
309
|
-
import TagLabel from '@components/Laboratory/TagLabel/TagLabel.vue';
|
|
310
|
-
|
|
311
|
-
const events = [
|
|
312
|
-
{
|
|
313
|
-
status: 'Dispatched',
|
|
314
|
-
firstHeader: 'Projekt E',
|
|
315
|
-
secondHeader: 'Projekt F',
|
|
316
|
-
firstDuration: '4 Tage 2 Stunden',
|
|
317
|
-
secondDuration: '6 Tage 3 Stunden',
|
|
318
|
-
steps: [],
|
|
319
|
-
},
|
|
320
|
-
];
|
|
321
|
-
</script>
|
|
322
|
-
|
|
323
|
-
<template>
|
|
324
|
-
<Timeline :events="events">
|
|
325
|
-
<template #content="{ event }">
|
|
326
|
-
<TimelineEvent
|
|
327
|
-
:firstHeader="event.firstHeader"
|
|
328
|
-
:secondHeader="event.secondHeader"
|
|
329
|
-
:firstDuration="event.firstDuration"
|
|
330
|
-
:secondDuration="event.secondDuration"
|
|
331
|
-
:steps="event.steps"
|
|
332
|
-
:urgent="event.urgent"
|
|
333
|
-
>
|
|
334
|
-
<template #icon>
|
|
335
|
-
<TagLabel :status="event.status" />
|
|
336
|
-
</template>
|
|
337
|
-
</TimelineEvent>
|
|
338
|
-
</template>
|
|
339
|
-
</Timeline>
|
|
340
|
-
</template>
|
|
341
|
-
`,
|
|
342
|
-
},
|
|
343
|
-
},
|
|
344
|
-
};
|
|
345
|
-
|
|
346
|
-
export const UrgentTimeline = Template.bind({});
|
|
347
|
-
UrgentTimeline.args = {
|
|
348
|
-
events: [
|
|
349
|
-
{
|
|
350
|
-
urgent: true,
|
|
351
|
-
status: 'Done',
|
|
352
|
-
firstHeader: 'Projekt B',
|
|
353
|
-
secondHeader: 'Estimated',
|
|
354
|
-
firstDuration: '4 Tage 2 Stunden',
|
|
355
|
-
secondDuration: '6 Tage 3 Stunden',
|
|
356
|
-
steps: [], // No steps for this event
|
|
357
|
-
},
|
|
358
|
-
],
|
|
359
|
-
};
|
|
360
|
-
UrgentTimeline.parameters = {
|
|
361
|
-
docs: {
|
|
362
|
-
source: {
|
|
363
|
-
code: `
|
|
364
|
-
<script setup>
|
|
365
|
-
import Timeline from '@components/Laboratory/TimeLine/Timeline.vue';
|
|
366
|
-
import TimelineEvent from '@components/Laboratory/TimeLine/TimeLineEvent.vue';
|
|
367
|
-
import TagLabel from '@components/Laboratory/TagLabel/TagLabel.vue';
|
|
368
|
-
|
|
369
|
-
const events = [
|
|
370
|
-
{
|
|
371
|
-
urgent: true,
|
|
372
|
-
status: 'Done',
|
|
373
|
-
firstHeader: 'Projekt B',
|
|
374
|
-
secondHeader: 'Estimated',
|
|
375
|
-
firstDuration: '4 Tage 2 Stunden',
|
|
376
|
-
secondDuration: '6 Tage 3 Stunden',
|
|
377
|
-
steps: [],
|
|
378
|
-
},
|
|
379
|
-
];
|
|
380
|
-
</script>
|
|
381
|
-
|
|
382
|
-
<template>
|
|
383
|
-
<Timeline :events="events">
|
|
384
|
-
<template #content="{ event }">
|
|
385
|
-
<TimelineEvent
|
|
386
|
-
:firstHeader="event.firstHeader"
|
|
387
|
-
:secondHeader="event.secondHeader"
|
|
388
|
-
:firstDuration="event.firstDuration"
|
|
389
|
-
:secondDuration="event.secondDuration"
|
|
390
|
-
:steps="event.steps"
|
|
391
|
-
:urgent="event.urgent"
|
|
392
|
-
>
|
|
393
|
-
<template #icon>
|
|
394
|
-
<TagLabel :status="event.status" />
|
|
395
|
-
</template>
|
|
396
|
-
</TimelineEvent>
|
|
397
|
-
</template>
|
|
398
|
-
</Timeline>
|
|
399
|
-
</template>
|
|
400
|
-
`,
|
|
401
|
-
},
|
|
402
|
-
},
|
|
403
|
-
};
|
|
1
|
+
import { Meta, Story } from '@storybook/vue3';
|
|
2
|
+
import Timeline from '@components/Laboratory/TimeLine/Timeline.vue';
|
|
3
|
+
import TimelineEvent from '@components/Laboratory/TimeLine/TimeLineEvent.vue';
|
|
4
|
+
import TagLabel from '@components/Laboratory/TagLabel/TagLabel.vue';
|
|
5
|
+
|
|
6
|
+
const meta: Meta<typeof Timeline> = {
|
|
7
|
+
title: 'WL/Laboratory/Timeline',
|
|
8
|
+
component: Timeline,
|
|
9
|
+
tags: ['autodocs'],
|
|
10
|
+
argTypes: {
|
|
11
|
+
events: {
|
|
12
|
+
control: 'object',
|
|
13
|
+
description: 'An array of event objects to display in the timeline.',
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
parameters: {
|
|
17
|
+
docs: {
|
|
18
|
+
description: {
|
|
19
|
+
component: `
|
|
20
|
+
The \`Timeline\` component displays a series of events in chronological order. Each event can include headers, durations, steps, and status indicators.
|
|
21
|
+
|
|
22
|
+
### Props
|
|
23
|
+
|
|
24
|
+
- **\`events\`**: An array of event objects. Each event object can have the following properties:
|
|
25
|
+
- **\`status\`**: The status of the event, e.g., 'Done', 'Ready', 'Dispatched'.
|
|
26
|
+
- **\`firstHeader\`**: The main header for the event.
|
|
27
|
+
- **\`secondHeader\`**: A secondary header for the event.
|
|
28
|
+
- **\`firstDuration\`**: Duration text associated with the first header.
|
|
29
|
+
- **\`secondDuration\`**: Duration text associated with the second header.
|
|
30
|
+
- **\`steps\`**: An array of step objects, each containing a date and description.
|
|
31
|
+
- **\`urgent\`**: A boolean indicating if the event is marked as urgent.
|
|
32
|
+
|
|
33
|
+
### Slots
|
|
34
|
+
|
|
35
|
+
- **\`content\`**: Slot to customize the rendering of each event. Receives \`event\` as a scoped slot prop.
|
|
36
|
+
|
|
37
|
+
### Example Usage
|
|
38
|
+
|
|
39
|
+
Below are examples of how to use the \`Timeline\` component with various event configurations.
|
|
40
|
+
`,
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export default meta;
|
|
47
|
+
|
|
48
|
+
const Template: Story = (args) => ({
|
|
49
|
+
components: { Timeline, TimelineEvent, TagLabel },
|
|
50
|
+
setup() {
|
|
51
|
+
return { args };
|
|
52
|
+
},
|
|
53
|
+
template: `
|
|
54
|
+
<div style="padding: 16px;">
|
|
55
|
+
<Timeline v-bind="args">
|
|
56
|
+
<template #content="{ event }">
|
|
57
|
+
<TimelineEvent
|
|
58
|
+
:firstHeader="event.firstHeader"
|
|
59
|
+
:secondHeader="event.secondHeader"
|
|
60
|
+
:firstDuration="event.firstDuration"
|
|
61
|
+
:secondDuration="event.secondDuration"
|
|
62
|
+
:steps="event.steps"
|
|
63
|
+
:urgent="event.urgent"
|
|
64
|
+
>
|
|
65
|
+
<template #icon>
|
|
66
|
+
<TagLabel :status="event.status" />
|
|
67
|
+
</template>
|
|
68
|
+
</TimelineEvent>
|
|
69
|
+
</template>
|
|
70
|
+
</Timeline>
|
|
71
|
+
</div>
|
|
72
|
+
`,
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
export const DefaultTimeline = Template.bind({});
|
|
76
|
+
DefaultTimeline.args = {
|
|
77
|
+
events: [
|
|
78
|
+
{
|
|
79
|
+
status: 'Done',
|
|
80
|
+
firstHeader: 'Projekt A',
|
|
81
|
+
secondHeader: 'Projekt B',
|
|
82
|
+
firstDuration: '10 Tage 5 Stunden',
|
|
83
|
+
secondDuration: '12 Tage 3 Stunden',
|
|
84
|
+
steps: [
|
|
85
|
+
{
|
|
86
|
+
date: '12. Sept. 2021',
|
|
87
|
+
description:
|
|
88
|
+
'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
date: '15. Sept. 2022',
|
|
92
|
+
description:
|
|
93
|
+
'Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
};
|
|
99
|
+
DefaultTimeline.parameters = {
|
|
100
|
+
docs: {
|
|
101
|
+
source: {
|
|
102
|
+
code: `
|
|
103
|
+
<script setup>
|
|
104
|
+
import Timeline from '@components/Laboratory/TimeLine/Timeline.vue';
|
|
105
|
+
import TimelineEvent from '@components/Laboratory/TimeLine/TimeLineEvent.vue';
|
|
106
|
+
import TagLabel from '@components/Laboratory/TagLabel/TagLabel.vue';
|
|
107
|
+
|
|
108
|
+
const events = [
|
|
109
|
+
{
|
|
110
|
+
status: 'Done',
|
|
111
|
+
firstHeader: 'Projekt A',
|
|
112
|
+
secondHeader: 'Projekt B',
|
|
113
|
+
firstDuration: '10 Tage 5 Stunden',
|
|
114
|
+
secondDuration: '12 Tage 3 Stunden',
|
|
115
|
+
steps: [
|
|
116
|
+
{
|
|
117
|
+
date: '12. Sept. 2021',
|
|
118
|
+
description:
|
|
119
|
+
'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
date: '15. Sept. 2022',
|
|
123
|
+
description:
|
|
124
|
+
'Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
},
|
|
128
|
+
];
|
|
129
|
+
</script>
|
|
130
|
+
|
|
131
|
+
<template>
|
|
132
|
+
<Timeline :events="events">
|
|
133
|
+
<template #content="{ event }">
|
|
134
|
+
<TimelineEvent
|
|
135
|
+
:firstHeader="event.firstHeader"
|
|
136
|
+
:secondHeader="event.secondHeader"
|
|
137
|
+
:firstDuration="event.firstDuration"
|
|
138
|
+
:secondDuration="event.secondDuration"
|
|
139
|
+
:steps="event.steps"
|
|
140
|
+
:urgent="event.urgent"
|
|
141
|
+
>
|
|
142
|
+
<template #icon>
|
|
143
|
+
<TagLabel :status="event.status" />
|
|
144
|
+
</template>
|
|
145
|
+
</TimelineEvent>
|
|
146
|
+
</template>
|
|
147
|
+
</Timeline>
|
|
148
|
+
</template>
|
|
149
|
+
`,
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
export const MultipleStepsTimeline = Template.bind({});
|
|
155
|
+
MultipleStepsTimeline.args = {
|
|
156
|
+
events: [
|
|
157
|
+
{
|
|
158
|
+
status: 'Done',
|
|
159
|
+
firstHeader: 'Projekt A',
|
|
160
|
+
secondHeader: 'Projekt B',
|
|
161
|
+
firstDuration: '10 Tage 5 Stunden',
|
|
162
|
+
secondDuration: '12 Tage 3 Stunden',
|
|
163
|
+
steps: [
|
|
164
|
+
{
|
|
165
|
+
date: '12. Sept. 2021',
|
|
166
|
+
description:
|
|
167
|
+
'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
date: '15. Sept. 2022',
|
|
171
|
+
description:
|
|
172
|
+
'Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
|
|
173
|
+
},
|
|
174
|
+
],
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
urgent: true,
|
|
178
|
+
status: 'Ready',
|
|
179
|
+
firstHeader: 'Projekt C',
|
|
180
|
+
secondHeader: 'Estimated',
|
|
181
|
+
firstDuration: '5 Tage 2 Stunden',
|
|
182
|
+
secondDuration: '1 d 5 h',
|
|
183
|
+
steps: [
|
|
184
|
+
{
|
|
185
|
+
date: '18. Sept. 2023',
|
|
186
|
+
description:
|
|
187
|
+
'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi.',
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
date: '20. Sept. 2024',
|
|
191
|
+
description:
|
|
192
|
+
'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.',
|
|
193
|
+
},
|
|
194
|
+
],
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
status: 'Dispatched',
|
|
198
|
+
firstHeader: 'Projekt E',
|
|
199
|
+
secondHeader: 'Projekt F',
|
|
200
|
+
firstDuration: '4 Tage 2 Stunden',
|
|
201
|
+
secondDuration: '6 Tage 3 Stunden',
|
|
202
|
+
steps: [], // No steps for this event
|
|
203
|
+
},
|
|
204
|
+
],
|
|
205
|
+
};
|
|
206
|
+
MultipleStepsTimeline.parameters = {
|
|
207
|
+
docs: {
|
|
208
|
+
source: {
|
|
209
|
+
code: `
|
|
210
|
+
<script setup>
|
|
211
|
+
import Timeline from '@components/Laboratory/TimeLine/Timeline.vue';
|
|
212
|
+
import TimelineEvent from '@components/Laboratory/TimeLine/TimeLineEvent.vue';
|
|
213
|
+
import TagLabel from '@components/Laboratory/TagLabel/TagLabel.vue';
|
|
214
|
+
|
|
215
|
+
const events = [
|
|
216
|
+
{
|
|
217
|
+
status: 'Done',
|
|
218
|
+
firstHeader: 'Projekt A',
|
|
219
|
+
secondHeader: 'Projekt B',
|
|
220
|
+
firstDuration: '10 Tage 5 Stunden',
|
|
221
|
+
secondDuration: '12 Tage 3 Stunden',
|
|
222
|
+
steps: [
|
|
223
|
+
{
|
|
224
|
+
date: '12. Sept. 2021',
|
|
225
|
+
description:
|
|
226
|
+
'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
date: '15. Sept. 2022',
|
|
230
|
+
description:
|
|
231
|
+
'Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
|
|
232
|
+
},
|
|
233
|
+
],
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
urgent: true,
|
|
237
|
+
status: 'Ready',
|
|
238
|
+
firstHeader: 'Projekt C',
|
|
239
|
+
secondHeader: 'Estimated',
|
|
240
|
+
firstDuration: '5 Tage 2 Stunden',
|
|
241
|
+
secondDuration: '1 d 5 h',
|
|
242
|
+
steps: [
|
|
243
|
+
{
|
|
244
|
+
date: '18. Sept. 2023',
|
|
245
|
+
description:
|
|
246
|
+
'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi.',
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
date: '20. Sept. 2024',
|
|
250
|
+
description:
|
|
251
|
+
'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.',
|
|
252
|
+
},
|
|
253
|
+
],
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
status: 'Dispatched',
|
|
257
|
+
firstHeader: 'Projekt E',
|
|
258
|
+
secondHeader: 'Projekt F',
|
|
259
|
+
firstDuration: '4 Tage 2 Stunden',
|
|
260
|
+
secondDuration: '6 Tage 3 Stunden',
|
|
261
|
+
steps: [],
|
|
262
|
+
},
|
|
263
|
+
];
|
|
264
|
+
</script>
|
|
265
|
+
|
|
266
|
+
<template>
|
|
267
|
+
<Timeline :events="events">
|
|
268
|
+
<template #content="{ event }">
|
|
269
|
+
<TimelineEvent
|
|
270
|
+
:firstHeader="event.firstHeader"
|
|
271
|
+
:secondHeader="event.secondHeader"
|
|
272
|
+
:firstDuration="event.firstDuration"
|
|
273
|
+
:secondDuration="event.secondDuration"
|
|
274
|
+
:steps="event.steps"
|
|
275
|
+
:urgent="event.urgent"
|
|
276
|
+
>
|
|
277
|
+
<template #icon>
|
|
278
|
+
<TagLabel :status="event.status" />
|
|
279
|
+
</template>
|
|
280
|
+
</TimelineEvent>
|
|
281
|
+
</template>
|
|
282
|
+
</Timeline>
|
|
283
|
+
</template>
|
|
284
|
+
`,
|
|
285
|
+
},
|
|
286
|
+
},
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
export const NoStepsTimeline = Template.bind({});
|
|
290
|
+
NoStepsTimeline.args = {
|
|
291
|
+
events: [
|
|
292
|
+
{
|
|
293
|
+
status: 'Dispatched',
|
|
294
|
+
firstHeader: 'Projekt E',
|
|
295
|
+
secondHeader: 'Projekt F',
|
|
296
|
+
firstDuration: '4 Tage 2 Stunden',
|
|
297
|
+
secondDuration: '6 Tage 3 Stunden',
|
|
298
|
+
steps: [], // No steps for this event
|
|
299
|
+
},
|
|
300
|
+
],
|
|
301
|
+
};
|
|
302
|
+
NoStepsTimeline.parameters = {
|
|
303
|
+
docs: {
|
|
304
|
+
source: {
|
|
305
|
+
code: `
|
|
306
|
+
<script setup>
|
|
307
|
+
import Timeline from '@components/Laboratory/TimeLine/Timeline.vue';
|
|
308
|
+
import TimelineEvent from '@components/Laboratory/TimeLine/TimeLineEvent.vue';
|
|
309
|
+
import TagLabel from '@components/Laboratory/TagLabel/TagLabel.vue';
|
|
310
|
+
|
|
311
|
+
const events = [
|
|
312
|
+
{
|
|
313
|
+
status: 'Dispatched',
|
|
314
|
+
firstHeader: 'Projekt E',
|
|
315
|
+
secondHeader: 'Projekt F',
|
|
316
|
+
firstDuration: '4 Tage 2 Stunden',
|
|
317
|
+
secondDuration: '6 Tage 3 Stunden',
|
|
318
|
+
steps: [],
|
|
319
|
+
},
|
|
320
|
+
];
|
|
321
|
+
</script>
|
|
322
|
+
|
|
323
|
+
<template>
|
|
324
|
+
<Timeline :events="events">
|
|
325
|
+
<template #content="{ event }">
|
|
326
|
+
<TimelineEvent
|
|
327
|
+
:firstHeader="event.firstHeader"
|
|
328
|
+
:secondHeader="event.secondHeader"
|
|
329
|
+
:firstDuration="event.firstDuration"
|
|
330
|
+
:secondDuration="event.secondDuration"
|
|
331
|
+
:steps="event.steps"
|
|
332
|
+
:urgent="event.urgent"
|
|
333
|
+
>
|
|
334
|
+
<template #icon>
|
|
335
|
+
<TagLabel :status="event.status" />
|
|
336
|
+
</template>
|
|
337
|
+
</TimelineEvent>
|
|
338
|
+
</template>
|
|
339
|
+
</Timeline>
|
|
340
|
+
</template>
|
|
341
|
+
`,
|
|
342
|
+
},
|
|
343
|
+
},
|
|
344
|
+
};
|
|
345
|
+
|
|
346
|
+
export const UrgentTimeline = Template.bind({});
|
|
347
|
+
UrgentTimeline.args = {
|
|
348
|
+
events: [
|
|
349
|
+
{
|
|
350
|
+
urgent: true,
|
|
351
|
+
status: 'Done',
|
|
352
|
+
firstHeader: 'Projekt B',
|
|
353
|
+
secondHeader: 'Estimated',
|
|
354
|
+
firstDuration: '4 Tage 2 Stunden',
|
|
355
|
+
secondDuration: '6 Tage 3 Stunden',
|
|
356
|
+
steps: [], // No steps for this event
|
|
357
|
+
},
|
|
358
|
+
],
|
|
359
|
+
};
|
|
360
|
+
UrgentTimeline.parameters = {
|
|
361
|
+
docs: {
|
|
362
|
+
source: {
|
|
363
|
+
code: `
|
|
364
|
+
<script setup>
|
|
365
|
+
import Timeline from '@components/Laboratory/TimeLine/Timeline.vue';
|
|
366
|
+
import TimelineEvent from '@components/Laboratory/TimeLine/TimeLineEvent.vue';
|
|
367
|
+
import TagLabel from '@components/Laboratory/TagLabel/TagLabel.vue';
|
|
368
|
+
|
|
369
|
+
const events = [
|
|
370
|
+
{
|
|
371
|
+
urgent: true,
|
|
372
|
+
status: 'Done',
|
|
373
|
+
firstHeader: 'Projekt B',
|
|
374
|
+
secondHeader: 'Estimated',
|
|
375
|
+
firstDuration: '4 Tage 2 Stunden',
|
|
376
|
+
secondDuration: '6 Tage 3 Stunden',
|
|
377
|
+
steps: [],
|
|
378
|
+
},
|
|
379
|
+
];
|
|
380
|
+
</script>
|
|
381
|
+
|
|
382
|
+
<template>
|
|
383
|
+
<Timeline :events="events">
|
|
384
|
+
<template #content="{ event }">
|
|
385
|
+
<TimelineEvent
|
|
386
|
+
:firstHeader="event.firstHeader"
|
|
387
|
+
:secondHeader="event.secondHeader"
|
|
388
|
+
:firstDuration="event.firstDuration"
|
|
389
|
+
:secondDuration="event.secondDuration"
|
|
390
|
+
:steps="event.steps"
|
|
391
|
+
:urgent="event.urgent"
|
|
392
|
+
>
|
|
393
|
+
<template #icon>
|
|
394
|
+
<TagLabel :status="event.status" />
|
|
395
|
+
</template>
|
|
396
|
+
</TimelineEvent>
|
|
397
|
+
</template>
|
|
398
|
+
</Timeline>
|
|
399
|
+
</template>
|
|
400
|
+
`,
|
|
401
|
+
},
|
|
402
|
+
},
|
|
403
|
+
};
|