@zap-wunschlachen/wl-shared-components 1.0.4 → 1.0.5
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 +190 -147
- 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 +96 -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 +28 -28
- package/src/components/Appointment/Card/Actions.vue +72 -72
- package/src/components/Appointment/Card/Card.css +81 -61
- package/src/components/Appointment/Card/Card.vue +88 -74
- 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/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/IconBullet/IconBullet.vue +86 -86
- package/src/components/IconBullet/IconBulletList.vue +41 -41
- package/src/components/Icons/AdvanceAppointments.vue +112 -0
- 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/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/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 +304 -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 +21 -21
- package/src/constants/iconEnums.ts +3 -3
- package/src/i18n/i18n.ts +15 -15
- package/src/i18n/locales/de.json +27 -27
- package/src/i18n/locales/en.json +27 -27
- package/src/index.ts +31 -31
- package/src/main.ts +11 -11
- package/src/plugins/vuetify.ts +131 -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/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,176 +1,176 @@
|
|
|
1
|
-
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
-
import DocumentCard from '@components/Laboratory/DocumentCard/DocumentCard.vue';
|
|
3
|
-
import DocumentCardItem from '@components/Laboratory/DocumentCard/DocumentCardItem.vue';
|
|
4
|
-
import { action } from '@storybook/addon-actions';
|
|
5
|
-
|
|
6
|
-
// Meta configuration for the DocumentCard component
|
|
7
|
-
const meta: Meta<typeof DocumentCard> = {
|
|
8
|
-
title: 'WL/Laboratory/Cards/DocumentCard/DocumentCard',
|
|
9
|
-
component: DocumentCard,
|
|
10
|
-
tags: ['autodocs'],
|
|
11
|
-
argTypes: {
|
|
12
|
-
title: { control: 'text', description: 'The title displayed on the card.' },
|
|
13
|
-
'download:all': {
|
|
14
|
-
action: 'download:all',
|
|
15
|
-
description:
|
|
16
|
-
'Action triggered when the "Download all" button is clicked.',
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
args: {
|
|
20
|
-
title: 'Attachments',
|
|
21
|
-
},
|
|
22
|
-
parameters: {
|
|
23
|
-
docs: {
|
|
24
|
-
description: {
|
|
25
|
-
component: `
|
|
26
|
-
The \`DocumentCard\` component provides a list of downloadable documents, with each item representing a document entry.
|
|
27
|
-
It includes a main title and individual items with headers and subheaders, each with an option to trigger a download.
|
|
28
|
-
|
|
29
|
-
### Props
|
|
30
|
-
- **\`title\`**: Sets the title displayed at the top of the card.
|
|
31
|
-
|
|
32
|
-
### Events
|
|
33
|
-
- **\`download:all\`**: Emitted when the "Download all" button is clicked, allowing for bulk download actions.
|
|
34
|
-
- **\`click:icon\`** (in each \`DocumentCardItem\`): Emitted when the download icon on each document item is clicked, triggering an individual download.
|
|
35
|
-
|
|
36
|
-
### Usage
|
|
37
|
-
Use this component to list documents with options for individual and bulk downloads.
|
|
38
|
-
`,
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
export default meta;
|
|
45
|
-
type Story = StoryObj<typeof meta>;
|
|
46
|
-
|
|
47
|
-
// Define a common render template
|
|
48
|
-
const Template: Story = {
|
|
49
|
-
render: (args) => ({
|
|
50
|
-
components: { DocumentCard, DocumentCardItem },
|
|
51
|
-
setup() {
|
|
52
|
-
function handleDownloadAll() {
|
|
53
|
-
console.log('All documents downloaded');
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
function handleDownload() {
|
|
57
|
-
console.log('Document downloaded');
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
return {
|
|
61
|
-
args,
|
|
62
|
-
handleDownloadAll,
|
|
63
|
-
handleDownload,
|
|
64
|
-
};
|
|
65
|
-
},
|
|
66
|
-
template: `
|
|
67
|
-
<DocumentCard v-bind="args" @download:all="handleDownloadAll">
|
|
68
|
-
<DocumentCardItem
|
|
69
|
-
header="06.09.2024 Rainer Zufall, Lzp. 45 Mandibular"
|
|
70
|
-
subheader="Uploaded 06.09.24 09:43"
|
|
71
|
-
@click:icon="handleDownload"
|
|
72
|
-
/>
|
|
73
|
-
<DocumentCardItem
|
|
74
|
-
header="07.09.2024 Anna Musterfrau, Lzp. 23 Maxillary"
|
|
75
|
-
subheader="Uploaded 07.09.24 10:15"
|
|
76
|
-
@click:icon="handleDownload"
|
|
77
|
-
/>
|
|
78
|
-
<DocumentCardItem
|
|
79
|
-
header="08.09.2024 John Doe, Lzp. 33 Mandibular"
|
|
80
|
-
subheader="Uploaded 08.09.24 11:30"
|
|
81
|
-
@click:icon="handleDownload"
|
|
82
|
-
/>
|
|
83
|
-
</DocumentCard>
|
|
84
|
-
`,
|
|
85
|
-
}),
|
|
86
|
-
parameters: {
|
|
87
|
-
docs: {
|
|
88
|
-
source: {
|
|
89
|
-
code: `
|
|
90
|
-
<template>
|
|
91
|
-
<DocumentCard v-bind="args" @download:all="handleDownloadAll">
|
|
92
|
-
<DocumentCardItem
|
|
93
|
-
header="06.09.2024 Rainer Zufall, Lzp. 45 Mandibular"
|
|
94
|
-
subheader="Uploaded 06.09.24 09:43"
|
|
95
|
-
@click:icon="handleDownload"
|
|
96
|
-
/>
|
|
97
|
-
<DocumentCardItem
|
|
98
|
-
header="07.09.2024 Anna Musterfrau, Lzp. 23 Maxillary"
|
|
99
|
-
subheader="Uploaded 07.09.24 10:15"
|
|
100
|
-
@click:icon="handleDownload"
|
|
101
|
-
/>
|
|
102
|
-
<DocumentCardItem
|
|
103
|
-
header="08.09.2024 John Doe, Lzp. 33 Mandibular"
|
|
104
|
-
subheader="Uploaded 08.09.24 11:30"
|
|
105
|
-
@click:icon="handleDownload"
|
|
106
|
-
/>
|
|
107
|
-
</DocumentCard>
|
|
108
|
-
</template>
|
|
109
|
-
|
|
110
|
-
<script setup>
|
|
111
|
-
import DocumentCard from '@components/Laboratory/DocumentCard/DocumentCard.vue';
|
|
112
|
-
import DocumentCardItem from '@components/Laboratory/DocumentCard/DocumentCardItem.vue';
|
|
113
|
-
|
|
114
|
-
function handleDownloadAll() {
|
|
115
|
-
console.log('All documents downloaded');
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
function handleDownload() {
|
|
119
|
-
console.log('Document downloaded');
|
|
120
|
-
}
|
|
121
|
-
</script>
|
|
122
|
-
`,
|
|
123
|
-
},
|
|
124
|
-
},
|
|
125
|
-
},
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
// Define different stories using the common template
|
|
129
|
-
export const Default: Story = { ...Template, args: {} };
|
|
130
|
-
|
|
131
|
-
export const CustomTitle: Story = {
|
|
132
|
-
...Template,
|
|
133
|
-
args: {
|
|
134
|
-
title: 'Custom Attachments',
|
|
135
|
-
},
|
|
136
|
-
parameters: {
|
|
137
|
-
docs: {
|
|
138
|
-
source: {
|
|
139
|
-
code: `
|
|
140
|
-
<template>
|
|
141
|
-
<DocumentCard title="Custom Attachments" @download:all="handleDownloadAll">
|
|
142
|
-
<DocumentCardItem
|
|
143
|
-
header="06.09.2024 Rainer Zufall, Lzp. 45 Mandibular"
|
|
144
|
-
subheader="Uploaded 06.09.24 09:43"
|
|
145
|
-
@click:icon="handleDownload"
|
|
146
|
-
/>
|
|
147
|
-
<DocumentCardItem
|
|
148
|
-
header="07.09.2024 Anna Musterfrau, Lzp. 23 Maxillary"
|
|
149
|
-
subheader="Uploaded 07.09.24 10:15"
|
|
150
|
-
@click:icon="handleDownload"
|
|
151
|
-
/>
|
|
152
|
-
<DocumentCardItem
|
|
153
|
-
header="08.09.2024 John Doe, Lzp. 33 Mandibular"
|
|
154
|
-
subheader="Uploaded 08.09.24 11:30"
|
|
155
|
-
@click:icon="handleDownload"
|
|
156
|
-
/>
|
|
157
|
-
</DocumentCard>
|
|
158
|
-
</template>
|
|
159
|
-
|
|
160
|
-
<script setup>
|
|
161
|
-
import DocumentCard from '@components/Laboratory/DocumentCard/DocumentCard.vue';
|
|
162
|
-
import DocumentCardItem from '@components/Laboratory/DocumentCard/DocumentCardItem.vue';
|
|
163
|
-
|
|
164
|
-
function handleDownloadAll() {
|
|
165
|
-
console.log('All documents downloaded');
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
function handleDownload() {
|
|
169
|
-
console.log('Document downloaded');
|
|
170
|
-
}
|
|
171
|
-
</script>
|
|
172
|
-
`,
|
|
173
|
-
},
|
|
174
|
-
},
|
|
175
|
-
},
|
|
176
|
-
};
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import DocumentCard from '@components/Laboratory/DocumentCard/DocumentCard.vue';
|
|
3
|
+
import DocumentCardItem from '@components/Laboratory/DocumentCard/DocumentCardItem.vue';
|
|
4
|
+
import { action } from '@storybook/addon-actions';
|
|
5
|
+
|
|
6
|
+
// Meta configuration for the DocumentCard component
|
|
7
|
+
const meta: Meta<typeof DocumentCard> = {
|
|
8
|
+
title: 'WL/Laboratory/Cards/DocumentCard/DocumentCard',
|
|
9
|
+
component: DocumentCard,
|
|
10
|
+
tags: ['autodocs'],
|
|
11
|
+
argTypes: {
|
|
12
|
+
title: { control: 'text', description: 'The title displayed on the card.' },
|
|
13
|
+
'download:all': {
|
|
14
|
+
action: 'download:all',
|
|
15
|
+
description:
|
|
16
|
+
'Action triggered when the "Download all" button is clicked.',
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
args: {
|
|
20
|
+
title: 'Attachments',
|
|
21
|
+
},
|
|
22
|
+
parameters: {
|
|
23
|
+
docs: {
|
|
24
|
+
description: {
|
|
25
|
+
component: `
|
|
26
|
+
The \`DocumentCard\` component provides a list of downloadable documents, with each item representing a document entry.
|
|
27
|
+
It includes a main title and individual items with headers and subheaders, each with an option to trigger a download.
|
|
28
|
+
|
|
29
|
+
### Props
|
|
30
|
+
- **\`title\`**: Sets the title displayed at the top of the card.
|
|
31
|
+
|
|
32
|
+
### Events
|
|
33
|
+
- **\`download:all\`**: Emitted when the "Download all" button is clicked, allowing for bulk download actions.
|
|
34
|
+
- **\`click:icon\`** (in each \`DocumentCardItem\`): Emitted when the download icon on each document item is clicked, triggering an individual download.
|
|
35
|
+
|
|
36
|
+
### Usage
|
|
37
|
+
Use this component to list documents with options for individual and bulk downloads.
|
|
38
|
+
`,
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export default meta;
|
|
45
|
+
type Story = StoryObj<typeof meta>;
|
|
46
|
+
|
|
47
|
+
// Define a common render template
|
|
48
|
+
const Template: Story = {
|
|
49
|
+
render: (args) => ({
|
|
50
|
+
components: { DocumentCard, DocumentCardItem },
|
|
51
|
+
setup() {
|
|
52
|
+
function handleDownloadAll() {
|
|
53
|
+
console.log('All documents downloaded');
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function handleDownload() {
|
|
57
|
+
console.log('Document downloaded');
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return {
|
|
61
|
+
args,
|
|
62
|
+
handleDownloadAll,
|
|
63
|
+
handleDownload,
|
|
64
|
+
};
|
|
65
|
+
},
|
|
66
|
+
template: `
|
|
67
|
+
<DocumentCard v-bind="args" @download:all="handleDownloadAll">
|
|
68
|
+
<DocumentCardItem
|
|
69
|
+
header="06.09.2024 Rainer Zufall, Lzp. 45 Mandibular"
|
|
70
|
+
subheader="Uploaded 06.09.24 09:43"
|
|
71
|
+
@click:icon="handleDownload"
|
|
72
|
+
/>
|
|
73
|
+
<DocumentCardItem
|
|
74
|
+
header="07.09.2024 Anna Musterfrau, Lzp. 23 Maxillary"
|
|
75
|
+
subheader="Uploaded 07.09.24 10:15"
|
|
76
|
+
@click:icon="handleDownload"
|
|
77
|
+
/>
|
|
78
|
+
<DocumentCardItem
|
|
79
|
+
header="08.09.2024 John Doe, Lzp. 33 Mandibular"
|
|
80
|
+
subheader="Uploaded 08.09.24 11:30"
|
|
81
|
+
@click:icon="handleDownload"
|
|
82
|
+
/>
|
|
83
|
+
</DocumentCard>
|
|
84
|
+
`,
|
|
85
|
+
}),
|
|
86
|
+
parameters: {
|
|
87
|
+
docs: {
|
|
88
|
+
source: {
|
|
89
|
+
code: `
|
|
90
|
+
<template>
|
|
91
|
+
<DocumentCard v-bind="args" @download:all="handleDownloadAll">
|
|
92
|
+
<DocumentCardItem
|
|
93
|
+
header="06.09.2024 Rainer Zufall, Lzp. 45 Mandibular"
|
|
94
|
+
subheader="Uploaded 06.09.24 09:43"
|
|
95
|
+
@click:icon="handleDownload"
|
|
96
|
+
/>
|
|
97
|
+
<DocumentCardItem
|
|
98
|
+
header="07.09.2024 Anna Musterfrau, Lzp. 23 Maxillary"
|
|
99
|
+
subheader="Uploaded 07.09.24 10:15"
|
|
100
|
+
@click:icon="handleDownload"
|
|
101
|
+
/>
|
|
102
|
+
<DocumentCardItem
|
|
103
|
+
header="08.09.2024 John Doe, Lzp. 33 Mandibular"
|
|
104
|
+
subheader="Uploaded 08.09.24 11:30"
|
|
105
|
+
@click:icon="handleDownload"
|
|
106
|
+
/>
|
|
107
|
+
</DocumentCard>
|
|
108
|
+
</template>
|
|
109
|
+
|
|
110
|
+
<script setup>
|
|
111
|
+
import DocumentCard from '@components/Laboratory/DocumentCard/DocumentCard.vue';
|
|
112
|
+
import DocumentCardItem from '@components/Laboratory/DocumentCard/DocumentCardItem.vue';
|
|
113
|
+
|
|
114
|
+
function handleDownloadAll() {
|
|
115
|
+
console.log('All documents downloaded');
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function handleDownload() {
|
|
119
|
+
console.log('Document downloaded');
|
|
120
|
+
}
|
|
121
|
+
</script>
|
|
122
|
+
`,
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
// Define different stories using the common template
|
|
129
|
+
export const Default: Story = { ...Template, args: {} };
|
|
130
|
+
|
|
131
|
+
export const CustomTitle: Story = {
|
|
132
|
+
...Template,
|
|
133
|
+
args: {
|
|
134
|
+
title: 'Custom Attachments',
|
|
135
|
+
},
|
|
136
|
+
parameters: {
|
|
137
|
+
docs: {
|
|
138
|
+
source: {
|
|
139
|
+
code: `
|
|
140
|
+
<template>
|
|
141
|
+
<DocumentCard title="Custom Attachments" @download:all="handleDownloadAll">
|
|
142
|
+
<DocumentCardItem
|
|
143
|
+
header="06.09.2024 Rainer Zufall, Lzp. 45 Mandibular"
|
|
144
|
+
subheader="Uploaded 06.09.24 09:43"
|
|
145
|
+
@click:icon="handleDownload"
|
|
146
|
+
/>
|
|
147
|
+
<DocumentCardItem
|
|
148
|
+
header="07.09.2024 Anna Musterfrau, Lzp. 23 Maxillary"
|
|
149
|
+
subheader="Uploaded 07.09.24 10:15"
|
|
150
|
+
@click:icon="handleDownload"
|
|
151
|
+
/>
|
|
152
|
+
<DocumentCardItem
|
|
153
|
+
header="08.09.2024 John Doe, Lzp. 33 Mandibular"
|
|
154
|
+
subheader="Uploaded 08.09.24 11:30"
|
|
155
|
+
@click:icon="handleDownload"
|
|
156
|
+
/>
|
|
157
|
+
</DocumentCard>
|
|
158
|
+
</template>
|
|
159
|
+
|
|
160
|
+
<script setup>
|
|
161
|
+
import DocumentCard from '@components/Laboratory/DocumentCard/DocumentCard.vue';
|
|
162
|
+
import DocumentCardItem from '@components/Laboratory/DocumentCard/DocumentCardItem.vue';
|
|
163
|
+
|
|
164
|
+
function handleDownloadAll() {
|
|
165
|
+
console.log('All documents downloaded');
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
function handleDownload() {
|
|
169
|
+
console.log('Document downloaded');
|
|
170
|
+
}
|
|
171
|
+
</script>
|
|
172
|
+
`,
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
};
|
|
@@ -1,119 +1,119 @@
|
|
|
1
|
-
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
-
import DocumentCardItem from '@components/Laboratory/DocumentCard/DocumentCardItem.vue';
|
|
3
|
-
import { action } from '@storybook/addon-actions';
|
|
4
|
-
|
|
5
|
-
// Meta configuration for the DocumentCardItem component
|
|
6
|
-
const meta: Meta<typeof DocumentCardItem> = {
|
|
7
|
-
title: 'WL/Laboratory/Cards/DocumentCard/DocumentCardItem',
|
|
8
|
-
component: DocumentCardItem,
|
|
9
|
-
tags: ['autodocs'],
|
|
10
|
-
argTypes: {
|
|
11
|
-
header: {
|
|
12
|
-
control: 'text',
|
|
13
|
-
description: 'The main header text displayed on the item.',
|
|
14
|
-
},
|
|
15
|
-
subheader: {
|
|
16
|
-
control: 'text',
|
|
17
|
-
description: 'Additional information displayed below the header.',
|
|
18
|
-
},
|
|
19
|
-
'click:icon': {
|
|
20
|
-
action: 'click:icon',
|
|
21
|
-
description: 'Triggered when the icon is clicked.',
|
|
22
|
-
},
|
|
23
|
-
},
|
|
24
|
-
args: {
|
|
25
|
-
header: '06.09.2024 Rainer Zufall, Lzp. 45 Mandibular',
|
|
26
|
-
subheader: 'Uploaded 06.09.24 09:43',
|
|
27
|
-
},
|
|
28
|
-
parameters: {
|
|
29
|
-
docs: {
|
|
30
|
-
description: {
|
|
31
|
-
component: `
|
|
32
|
-
The \`DocumentCardItem\` component displays an individual document entry with a header and subheader.
|
|
33
|
-
It includes a hardcoded download icon that triggers a click event when pressed.
|
|
34
|
-
|
|
35
|
-
### Props
|
|
36
|
-
- **\`header\`**: Main text for the document entry.
|
|
37
|
-
- **\`subheader\`**: Additional text displayed beneath the header.
|
|
38
|
-
|
|
39
|
-
### Events
|
|
40
|
-
- **\`click:icon\`**: Emitted when the download icon is clicked, allowing for custom actions to be triggered.
|
|
41
|
-
|
|
42
|
-
### Usage
|
|
43
|
-
Use this component to represent a document item in a list with a customizable header, subheader, and download icon actions.
|
|
44
|
-
`,
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
export default meta;
|
|
51
|
-
type Story = StoryObj<typeof meta>;
|
|
52
|
-
|
|
53
|
-
// Define a common render template
|
|
54
|
-
const Template: Story = {
|
|
55
|
-
render: (args) => ({
|
|
56
|
-
components: { DocumentCardItem },
|
|
57
|
-
setup() {
|
|
58
|
-
// Define the action for the click event
|
|
59
|
-
const iconClick = action('click:icon');
|
|
60
|
-
|
|
61
|
-
return {
|
|
62
|
-
args,
|
|
63
|
-
iconClick,
|
|
64
|
-
};
|
|
65
|
-
},
|
|
66
|
-
template: `
|
|
67
|
-
<div style="padding: 16px;">
|
|
68
|
-
<DocumentCardItem
|
|
69
|
-
v-bind="args"
|
|
70
|
-
@click:icon="iconClick"
|
|
71
|
-
/>
|
|
72
|
-
</div>
|
|
73
|
-
`,
|
|
74
|
-
}),
|
|
75
|
-
parameters: {
|
|
76
|
-
docs: {
|
|
77
|
-
source: {
|
|
78
|
-
code: `
|
|
79
|
-
<template>
|
|
80
|
-
<div style="padding: 16px;">
|
|
81
|
-
<DocumentCardItem
|
|
82
|
-
v-bind="args"
|
|
83
|
-
@click:icon="iconClick"
|
|
84
|
-
/>
|
|
85
|
-
</div>
|
|
86
|
-
</template>
|
|
87
|
-
`,
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
// Define different stories using the common template
|
|
94
|
-
export const Default: Story = { ...Template, args: {} };
|
|
95
|
-
|
|
96
|
-
export const CustomHeaderAndSubheader: Story = {
|
|
97
|
-
...Template,
|
|
98
|
-
args: {
|
|
99
|
-
header: '07.09.2024 Anna Musterfrau, Lzp. 23 Maxillary',
|
|
100
|
-
subheader: 'Uploaded 07.09.24 10:15',
|
|
101
|
-
},
|
|
102
|
-
parameters: {
|
|
103
|
-
docs: {
|
|
104
|
-
source: {
|
|
105
|
-
code: `
|
|
106
|
-
<template>
|
|
107
|
-
<div style="padding: 16px;">
|
|
108
|
-
<DocumentCardItem
|
|
109
|
-
header="07.09.2024 Anna Musterfrau, Lzp. 23 Maxillary"
|
|
110
|
-
subheader="Uploaded 07.09.24 10:15"
|
|
111
|
-
@click:icon="iconClick"
|
|
112
|
-
/>
|
|
113
|
-
</div>
|
|
114
|
-
</template>
|
|
115
|
-
`,
|
|
116
|
-
},
|
|
117
|
-
},
|
|
118
|
-
},
|
|
119
|
-
};
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import DocumentCardItem from '@components/Laboratory/DocumentCard/DocumentCardItem.vue';
|
|
3
|
+
import { action } from '@storybook/addon-actions';
|
|
4
|
+
|
|
5
|
+
// Meta configuration for the DocumentCardItem component
|
|
6
|
+
const meta: Meta<typeof DocumentCardItem> = {
|
|
7
|
+
title: 'WL/Laboratory/Cards/DocumentCard/DocumentCardItem',
|
|
8
|
+
component: DocumentCardItem,
|
|
9
|
+
tags: ['autodocs'],
|
|
10
|
+
argTypes: {
|
|
11
|
+
header: {
|
|
12
|
+
control: 'text',
|
|
13
|
+
description: 'The main header text displayed on the item.',
|
|
14
|
+
},
|
|
15
|
+
subheader: {
|
|
16
|
+
control: 'text',
|
|
17
|
+
description: 'Additional information displayed below the header.',
|
|
18
|
+
},
|
|
19
|
+
'click:icon': {
|
|
20
|
+
action: 'click:icon',
|
|
21
|
+
description: 'Triggered when the icon is clicked.',
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
args: {
|
|
25
|
+
header: '06.09.2024 Rainer Zufall, Lzp. 45 Mandibular',
|
|
26
|
+
subheader: 'Uploaded 06.09.24 09:43',
|
|
27
|
+
},
|
|
28
|
+
parameters: {
|
|
29
|
+
docs: {
|
|
30
|
+
description: {
|
|
31
|
+
component: `
|
|
32
|
+
The \`DocumentCardItem\` component displays an individual document entry with a header and subheader.
|
|
33
|
+
It includes a hardcoded download icon that triggers a click event when pressed.
|
|
34
|
+
|
|
35
|
+
### Props
|
|
36
|
+
- **\`header\`**: Main text for the document entry.
|
|
37
|
+
- **\`subheader\`**: Additional text displayed beneath the header.
|
|
38
|
+
|
|
39
|
+
### Events
|
|
40
|
+
- **\`click:icon\`**: Emitted when the download icon is clicked, allowing for custom actions to be triggered.
|
|
41
|
+
|
|
42
|
+
### Usage
|
|
43
|
+
Use this component to represent a document item in a list with a customizable header, subheader, and download icon actions.
|
|
44
|
+
`,
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export default meta;
|
|
51
|
+
type Story = StoryObj<typeof meta>;
|
|
52
|
+
|
|
53
|
+
// Define a common render template
|
|
54
|
+
const Template: Story = {
|
|
55
|
+
render: (args) => ({
|
|
56
|
+
components: { DocumentCardItem },
|
|
57
|
+
setup() {
|
|
58
|
+
// Define the action for the click event
|
|
59
|
+
const iconClick = action('click:icon');
|
|
60
|
+
|
|
61
|
+
return {
|
|
62
|
+
args,
|
|
63
|
+
iconClick,
|
|
64
|
+
};
|
|
65
|
+
},
|
|
66
|
+
template: `
|
|
67
|
+
<div style="padding: 16px;">
|
|
68
|
+
<DocumentCardItem
|
|
69
|
+
v-bind="args"
|
|
70
|
+
@click:icon="iconClick"
|
|
71
|
+
/>
|
|
72
|
+
</div>
|
|
73
|
+
`,
|
|
74
|
+
}),
|
|
75
|
+
parameters: {
|
|
76
|
+
docs: {
|
|
77
|
+
source: {
|
|
78
|
+
code: `
|
|
79
|
+
<template>
|
|
80
|
+
<div style="padding: 16px;">
|
|
81
|
+
<DocumentCardItem
|
|
82
|
+
v-bind="args"
|
|
83
|
+
@click:icon="iconClick"
|
|
84
|
+
/>
|
|
85
|
+
</div>
|
|
86
|
+
</template>
|
|
87
|
+
`,
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
// Define different stories using the common template
|
|
94
|
+
export const Default: Story = { ...Template, args: {} };
|
|
95
|
+
|
|
96
|
+
export const CustomHeaderAndSubheader: Story = {
|
|
97
|
+
...Template,
|
|
98
|
+
args: {
|
|
99
|
+
header: '07.09.2024 Anna Musterfrau, Lzp. 23 Maxillary',
|
|
100
|
+
subheader: 'Uploaded 07.09.24 10:15',
|
|
101
|
+
},
|
|
102
|
+
parameters: {
|
|
103
|
+
docs: {
|
|
104
|
+
source: {
|
|
105
|
+
code: `
|
|
106
|
+
<template>
|
|
107
|
+
<div style="padding: 16px;">
|
|
108
|
+
<DocumentCardItem
|
|
109
|
+
header="07.09.2024 Anna Musterfrau, Lzp. 23 Maxillary"
|
|
110
|
+
subheader="Uploaded 07.09.24 10:15"
|
|
111
|
+
@click:icon="iconClick"
|
|
112
|
+
/>
|
|
113
|
+
</div>
|
|
114
|
+
</template>
|
|
115
|
+
`,
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
};
|