@zap-wunschlachen/wl-shared-components 1.0.25 → 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 -315
- 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,320 +1,320 @@
|
|
|
1
|
-
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
-
import InfoCard from '@components/Laboratory/InfoCard/InfoCard.vue';
|
|
3
|
-
import TagLabelGroup from '@components/Laboratory/TagLabelGroup/TagLabelGroup.vue';
|
|
4
|
-
import ProgressCircle from '@components/Laboratory/ProgressCircle/ProgressCircle.vue';
|
|
5
|
-
import { action } from '@storybook/addon-actions';
|
|
6
|
-
|
|
7
|
-
// Meta configuration for the InfoCard component
|
|
8
|
-
const meta: Meta<typeof InfoCard> = {
|
|
9
|
-
title: 'WL/Laboratory/Cards/InfoCard',
|
|
10
|
-
component: InfoCard,
|
|
11
|
-
tags: ['autodocs'],
|
|
12
|
-
argTypes: {
|
|
13
|
-
dentist: { control: 'text', description: 'The dentist name to display.' },
|
|
14
|
-
material: {
|
|
15
|
-
control: 'text',
|
|
16
|
-
description: 'The material type, e.g., metal.',
|
|
17
|
-
},
|
|
18
|
-
color: {
|
|
19
|
-
control: 'text',
|
|
20
|
-
description: 'Color associated with the material.',
|
|
21
|
-
},
|
|
22
|
-
patientName: { control: 'text', description: 'Name of the patient.' },
|
|
23
|
-
patientNumber: {
|
|
24
|
-
control: 'text',
|
|
25
|
-
description: 'Unique identifier for the patient.',
|
|
26
|
-
},
|
|
27
|
-
header: { control: 'text', description: 'Main heading for the card.' },
|
|
28
|
-
subHeader: {
|
|
29
|
-
control: 'text',
|
|
30
|
-
description: 'Subheading for additional details.',
|
|
31
|
-
},
|
|
32
|
-
'click:printer': {
|
|
33
|
-
action: 'click:printer',
|
|
34
|
-
description: 'Triggered when printer icon is clicked.',
|
|
35
|
-
},
|
|
36
|
-
'click:pencil': {
|
|
37
|
-
action: 'click:pencil',
|
|
38
|
-
description: 'Triggered when pencil icon is clicked.',
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
args: {
|
|
42
|
-
dentist: 'Martin Paetz',
|
|
43
|
-
material: 'metal',
|
|
44
|
-
color: 'white',
|
|
45
|
-
patientName: 'Rainer Zufall',
|
|
46
|
-
patientNumber: '12345',
|
|
47
|
-
header: 'Implant Details',
|
|
48
|
-
subHeader: 'Full Dental Implant Procedure',
|
|
49
|
-
},
|
|
50
|
-
parameters: {
|
|
51
|
-
docs: {
|
|
52
|
-
description: {
|
|
53
|
-
component: `
|
|
54
|
-
The \`InfoCard\` component provides detailed information about a dental implant case, displaying dentist, patient, material, and status. This component includes custom slots for tags and progress indicators.
|
|
55
|
-
|
|
56
|
-
### Props
|
|
57
|
-
- **\`dentist\`**: Name of the dentist handling the case.
|
|
58
|
-
- **\`material\`**: Type of material used.
|
|
59
|
-
- **\`color\`**: Color associated with the material.
|
|
60
|
-
- **\`patientName\`**: Name of the patient.
|
|
61
|
-
- **\`patientNumber\`**: Patient identifier.
|
|
62
|
-
- **\`header\`**: Main title for the card.
|
|
63
|
-
- **\`subHeader\`**: Secondary title for details.
|
|
64
|
-
|
|
65
|
-
### Slots
|
|
66
|
-
- **\`tagLabel\`**: Slot to insert custom tag labels, typically using the \`TagLabelGroup\` component for displaying multiple tag icons and colors.
|
|
67
|
-
- **\`progress\`**: Slot for adding a progress indicator, such as the \`ProgressCircle\` component, to visually represent completion status.
|
|
68
|
-
|
|
69
|
-
### Example Usage
|
|
70
|
-
Use this component to display a card with dynamic content, tracking actions on printer and pencil icons, with visual elements for tags and progress.
|
|
71
|
-
`,
|
|
72
|
-
},
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
export default meta;
|
|
78
|
-
type Story = StoryObj<typeof meta>;
|
|
79
|
-
|
|
80
|
-
// Common render template with action handlers for the click events
|
|
81
|
-
const Template: Story = {
|
|
82
|
-
render: (args) => ({
|
|
83
|
-
components: { InfoCard, TagLabelGroup, ProgressCircle },
|
|
84
|
-
setup() {
|
|
85
|
-
const handlePrinterClick = action('click:printer');
|
|
86
|
-
const handlePencilClick = action('click:pencil');
|
|
87
|
-
|
|
88
|
-
return { args, handlePrinterClick, handlePencilClick };
|
|
89
|
-
},
|
|
90
|
-
template: `
|
|
91
|
-
<div class="d-flex flex-column w-full ma-6 ga-2">
|
|
92
|
-
<InfoCard
|
|
93
|
-
v-bind="args"
|
|
94
|
-
@click:printer="handlePrinterClick"
|
|
95
|
-
@click:pencil="handlePencilClick"
|
|
96
|
-
>
|
|
97
|
-
<!-- Slot for tagLabel -->
|
|
98
|
-
<template #tagLabel>
|
|
99
|
-
<TagLabelGroup
|
|
100
|
-
:iconsAfter="[{
|
|
101
|
-
backgroundColor: '#FEFDBD',
|
|
102
|
-
borderColor: '#4F4700'
|
|
103
|
-
}, {
|
|
104
|
-
backgroundColor: '#CCE8FD',
|
|
105
|
-
borderColor: '#172774'
|
|
106
|
-
}, {
|
|
107
|
-
backgroundColor: '#D8FDE4',
|
|
108
|
-
borderColor: '#01D449'
|
|
109
|
-
}]"
|
|
110
|
-
/>
|
|
111
|
-
</template>
|
|
112
|
-
|
|
113
|
-
<!-- Slot for progress -->
|
|
114
|
-
<template #progress>
|
|
115
|
-
<ProgressCircle
|
|
116
|
-
size="30"
|
|
117
|
-
:bgColors="['#01D449', 'var(--Soft-Concrete-1)', 'var(--Soft-Concrete-1)', 'var(--Soft-Concrete-1)', 'var(--Soft-Concrete-1)']"
|
|
118
|
-
/>
|
|
119
|
-
</template>
|
|
120
|
-
</InfoCard>
|
|
121
|
-
</div>
|
|
122
|
-
`,
|
|
123
|
-
}),
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
// Story with different TagLabelGroup icons
|
|
127
|
-
// Story with different TagLabelGroup icons
|
|
128
|
-
export const DraftDone: Story = {
|
|
129
|
-
...Template,
|
|
130
|
-
render: (args) => ({
|
|
131
|
-
components: { InfoCard, TagLabelGroup, ProgressCircle },
|
|
132
|
-
setup() {
|
|
133
|
-
const handlePrinterClick = action('click:printer');
|
|
134
|
-
const handlePencilClick = action('click:pencil');
|
|
135
|
-
|
|
136
|
-
return { args, handlePrinterClick, handlePencilClick };
|
|
137
|
-
},
|
|
138
|
-
template: `
|
|
139
|
-
<div class="d-flex flex-column w-full ma-6 ga-2">
|
|
140
|
-
<InfoCard
|
|
141
|
-
v-bind="args"
|
|
142
|
-
@click:printer="handlePrinterClick"
|
|
143
|
-
@click:pencil="handlePencilClick"
|
|
144
|
-
>
|
|
145
|
-
<!-- Slot for tagLabel -->
|
|
146
|
-
<template #tagLabel>
|
|
147
|
-
<TagLabelGroup
|
|
148
|
-
status="Done"
|
|
149
|
-
:iconsBefore="[{
|
|
150
|
-
backgroundColor: '#E5E6EE',
|
|
151
|
-
borderColor: '#172774'
|
|
152
|
-
}]"
|
|
153
|
-
/>
|
|
154
|
-
</template>
|
|
155
|
-
|
|
156
|
-
<!-- Slot for progress -->
|
|
157
|
-
<template #progress>
|
|
158
|
-
<ProgressCircle
|
|
159
|
-
size="50"
|
|
160
|
-
:bgColors="['#01D449', 'var(--Soft-Concrete-1)', 'var(--Soft-Concrete-1)', 'var(--Soft-Concrete-1)', 'var(--Soft-Concrete-1)']"
|
|
161
|
-
:borderColors="['transparent', 'transparent', 'transparent', 'transparent', 'transparent']"
|
|
162
|
-
/>
|
|
163
|
-
</template>
|
|
164
|
-
</InfoCard>
|
|
165
|
-
</div>
|
|
166
|
-
`,
|
|
167
|
-
}),
|
|
168
|
-
parameters: {
|
|
169
|
-
docs: {
|
|
170
|
-
source: {
|
|
171
|
-
code: `
|
|
172
|
-
<template>
|
|
173
|
-
<div class="d-flex flex-column w-full ma-6 ga-2">
|
|
174
|
-
<InfoCard
|
|
175
|
-
v-bind="args"
|
|
176
|
-
@click:printer="handlePrinterClick"
|
|
177
|
-
@click:pencil="handlePencilClick"
|
|
178
|
-
>
|
|
179
|
-
<!-- Slot for tagLabel -->
|
|
180
|
-
<template #tagLabel>
|
|
181
|
-
<TagLabelGroup
|
|
182
|
-
status="Done"
|
|
183
|
-
:iconsBefore="[
|
|
184
|
-
{ backgroundColor: '#E5E6EE', borderColor: '#172774' }
|
|
185
|
-
]"
|
|
186
|
-
/>
|
|
187
|
-
</template>
|
|
188
|
-
|
|
189
|
-
<!-- Slot for progress -->
|
|
190
|
-
<template #progress>
|
|
191
|
-
<ProgressCircle
|
|
192
|
-
size="50"
|
|
193
|
-
:bgColors="[
|
|
194
|
-
'#01D449',
|
|
195
|
-
'var(--Soft-Concrete-1)',
|
|
196
|
-
'var(--Soft-Concrete-1)',
|
|
197
|
-
'var(--Soft-Concrete-1)',
|
|
198
|
-
'var(--Soft-Concrete-1)'
|
|
199
|
-
]"
|
|
200
|
-
:borderColors="[
|
|
201
|
-
'transparent', 'transparent', 'transparent', 'transparent', 'transparent'
|
|
202
|
-
]"
|
|
203
|
-
/>
|
|
204
|
-
</template>
|
|
205
|
-
</InfoCard>
|
|
206
|
-
</div>
|
|
207
|
-
</template>
|
|
208
|
-
|
|
209
|
-
<script setup>
|
|
210
|
-
import { action } from '@storybook/addon-actions';
|
|
211
|
-
import InfoCard from '@components/Laboratory/InfoCard/InfoCard.vue';
|
|
212
|
-
import TagLabelGroup from '@components/Laboratory/TagLabelGroup/TagLabelGroup.vue';
|
|
213
|
-
import ProgressCircle from '@components/Laboratory/ProgressCircle/ProgressCircle.vue';
|
|
214
|
-
|
|
215
|
-
const handlePrinterClick = action('click:printer');
|
|
216
|
-
const handlePencilClick = action('click:pencil');
|
|
217
|
-
</script>
|
|
218
|
-
`,
|
|
219
|
-
},
|
|
220
|
-
},
|
|
221
|
-
},
|
|
222
|
-
};
|
|
223
|
-
|
|
224
|
-
// Story with different ProgressCircle colors and size
|
|
225
|
-
// Story with different ProgressCircle colors and size
|
|
226
|
-
export const Draft: Story = {
|
|
227
|
-
...Template,
|
|
228
|
-
render: (args) => ({
|
|
229
|
-
components: { InfoCard, TagLabelGroup, ProgressCircle },
|
|
230
|
-
setup() {
|
|
231
|
-
const handlePrinterClick = action('click:printer');
|
|
232
|
-
const handlePencilClick = action('click:pencil');
|
|
233
|
-
|
|
234
|
-
return { args, handlePrinterClick, handlePencilClick };
|
|
235
|
-
},
|
|
236
|
-
template: `
|
|
237
|
-
<div class="d-flex flex-column w-full ma-6 ga-2">
|
|
238
|
-
<InfoCard
|
|
239
|
-
v-bind="args"
|
|
240
|
-
@click:printer="handlePrinterClick"
|
|
241
|
-
@click:pencil="handlePencilClick"
|
|
242
|
-
>
|
|
243
|
-
<!-- Slot for tagLabel -->
|
|
244
|
-
<template #tagLabel>
|
|
245
|
-
<TagLabelGroup
|
|
246
|
-
status="Draft"
|
|
247
|
-
:iconsAfter="[{
|
|
248
|
-
backgroundColor: '#D8FDE4',
|
|
249
|
-
borderColor: '#01D449'
|
|
250
|
-
}]"
|
|
251
|
-
/>
|
|
252
|
-
</template>
|
|
253
|
-
|
|
254
|
-
<!-- Slot for progress -->
|
|
255
|
-
<template #progress>
|
|
256
|
-
<ProgressCircle
|
|
257
|
-
size="50"
|
|
258
|
-
:bgColors="['#E5E6EE', 'var(--Soft-Concrete-1)', 'var(--Soft-Concrete-1)', 'var(--Soft-Concrete-1)', 'var(--Soft-Concrete-1)']"
|
|
259
|
-
:borderColors="['#172774', '#DDDDDF', '#DDDDDF', '#DDDDDF', '#DDDDDF']"
|
|
260
|
-
/>
|
|
261
|
-
</template>
|
|
262
|
-
</InfoCard>
|
|
263
|
-
</div>
|
|
264
|
-
`,
|
|
265
|
-
}),
|
|
266
|
-
parameters: {
|
|
267
|
-
docs: {
|
|
268
|
-
source: {
|
|
269
|
-
code: `
|
|
270
|
-
<template>
|
|
271
|
-
<div class="d-flex flex-column w-full ma-6 ga-2">
|
|
272
|
-
<InfoCard
|
|
273
|
-
v-bind="args"
|
|
274
|
-
@click:printer="handlePrinterClick"
|
|
275
|
-
@click:pencil="handlePencilClick"
|
|
276
|
-
>
|
|
277
|
-
<!-- Slot for tagLabel -->
|
|
278
|
-
<template #tagLabel>
|
|
279
|
-
<TagLabelGroup
|
|
280
|
-
status="Draft"
|
|
281
|
-
:iconsAfter="[
|
|
282
|
-
{ backgroundColor: '#D8FDE4', borderColor: '#01D449' }
|
|
283
|
-
]"
|
|
284
|
-
/>
|
|
285
|
-
</template>
|
|
286
|
-
|
|
287
|
-
<!-- Slot for progress -->
|
|
288
|
-
<template #progress>
|
|
289
|
-
<ProgressCircle
|
|
290
|
-
size="50"
|
|
291
|
-
:bgColors="[
|
|
292
|
-
'#E5E6EE',
|
|
293
|
-
'var(--Soft-Concrete-1)',
|
|
294
|
-
'var(--Soft-Concrete-1)',
|
|
295
|
-
'var(--Soft-Concrete-1)',
|
|
296
|
-
'var(--Soft-Concrete-1)'
|
|
297
|
-
]"
|
|
298
|
-
:borderColors="[
|
|
299
|
-
'#172774', '#DDDDDF', '#DDDDDF', '#DDDDDF', '#DDDDDF'
|
|
300
|
-
]"
|
|
301
|
-
/>
|
|
302
|
-
</template>
|
|
303
|
-
</InfoCard>
|
|
304
|
-
</div>
|
|
305
|
-
</template>
|
|
306
|
-
|
|
307
|
-
<script setup>
|
|
308
|
-
import { action } from '@storybook/addon-actions';
|
|
309
|
-
import InfoCard from '@components/Laboratory/InfoCard/InfoCard.vue';
|
|
310
|
-
import TagLabelGroup from '@components/Laboratory/TagLabelGroup/TagLabelGroup.vue';
|
|
311
|
-
import ProgressCircle from '@components/Laboratory/ProgressCircle/ProgressCircle.vue';
|
|
312
|
-
|
|
313
|
-
const handlePrinterClick = action('click:printer');
|
|
314
|
-
const handlePencilClick = action('click:pencil');
|
|
315
|
-
</script>
|
|
316
|
-
`,
|
|
317
|
-
},
|
|
318
|
-
},
|
|
319
|
-
},
|
|
320
|
-
};
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import InfoCard from '@components/Laboratory/InfoCard/InfoCard.vue';
|
|
3
|
+
import TagLabelGroup from '@components/Laboratory/TagLabelGroup/TagLabelGroup.vue';
|
|
4
|
+
import ProgressCircle from '@components/Laboratory/ProgressCircle/ProgressCircle.vue';
|
|
5
|
+
import { action } from '@storybook/addon-actions';
|
|
6
|
+
|
|
7
|
+
// Meta configuration for the InfoCard component
|
|
8
|
+
const meta: Meta<typeof InfoCard> = {
|
|
9
|
+
title: 'WL/Laboratory/Cards/InfoCard',
|
|
10
|
+
component: InfoCard,
|
|
11
|
+
tags: ['autodocs'],
|
|
12
|
+
argTypes: {
|
|
13
|
+
dentist: { control: 'text', description: 'The dentist name to display.' },
|
|
14
|
+
material: {
|
|
15
|
+
control: 'text',
|
|
16
|
+
description: 'The material type, e.g., metal.',
|
|
17
|
+
},
|
|
18
|
+
color: {
|
|
19
|
+
control: 'text',
|
|
20
|
+
description: 'Color associated with the material.',
|
|
21
|
+
},
|
|
22
|
+
patientName: { control: 'text', description: 'Name of the patient.' },
|
|
23
|
+
patientNumber: {
|
|
24
|
+
control: 'text',
|
|
25
|
+
description: 'Unique identifier for the patient.',
|
|
26
|
+
},
|
|
27
|
+
header: { control: 'text', description: 'Main heading for the card.' },
|
|
28
|
+
subHeader: {
|
|
29
|
+
control: 'text',
|
|
30
|
+
description: 'Subheading for additional details.',
|
|
31
|
+
},
|
|
32
|
+
'click:printer': {
|
|
33
|
+
action: 'click:printer',
|
|
34
|
+
description: 'Triggered when printer icon is clicked.',
|
|
35
|
+
},
|
|
36
|
+
'click:pencil': {
|
|
37
|
+
action: 'click:pencil',
|
|
38
|
+
description: 'Triggered when pencil icon is clicked.',
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
args: {
|
|
42
|
+
dentist: 'Martin Paetz',
|
|
43
|
+
material: 'metal',
|
|
44
|
+
color: 'white',
|
|
45
|
+
patientName: 'Rainer Zufall',
|
|
46
|
+
patientNumber: '12345',
|
|
47
|
+
header: 'Implant Details',
|
|
48
|
+
subHeader: 'Full Dental Implant Procedure',
|
|
49
|
+
},
|
|
50
|
+
parameters: {
|
|
51
|
+
docs: {
|
|
52
|
+
description: {
|
|
53
|
+
component: `
|
|
54
|
+
The \`InfoCard\` component provides detailed information about a dental implant case, displaying dentist, patient, material, and status. This component includes custom slots for tags and progress indicators.
|
|
55
|
+
|
|
56
|
+
### Props
|
|
57
|
+
- **\`dentist\`**: Name of the dentist handling the case.
|
|
58
|
+
- **\`material\`**: Type of material used.
|
|
59
|
+
- **\`color\`**: Color associated with the material.
|
|
60
|
+
- **\`patientName\`**: Name of the patient.
|
|
61
|
+
- **\`patientNumber\`**: Patient identifier.
|
|
62
|
+
- **\`header\`**: Main title for the card.
|
|
63
|
+
- **\`subHeader\`**: Secondary title for details.
|
|
64
|
+
|
|
65
|
+
### Slots
|
|
66
|
+
- **\`tagLabel\`**: Slot to insert custom tag labels, typically using the \`TagLabelGroup\` component for displaying multiple tag icons and colors.
|
|
67
|
+
- **\`progress\`**: Slot for adding a progress indicator, such as the \`ProgressCircle\` component, to visually represent completion status.
|
|
68
|
+
|
|
69
|
+
### Example Usage
|
|
70
|
+
Use this component to display a card with dynamic content, tracking actions on printer and pencil icons, with visual elements for tags and progress.
|
|
71
|
+
`,
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export default meta;
|
|
78
|
+
type Story = StoryObj<typeof meta>;
|
|
79
|
+
|
|
80
|
+
// Common render template with action handlers for the click events
|
|
81
|
+
const Template: Story = {
|
|
82
|
+
render: (args) => ({
|
|
83
|
+
components: { InfoCard, TagLabelGroup, ProgressCircle },
|
|
84
|
+
setup() {
|
|
85
|
+
const handlePrinterClick = action('click:printer');
|
|
86
|
+
const handlePencilClick = action('click:pencil');
|
|
87
|
+
|
|
88
|
+
return { args, handlePrinterClick, handlePencilClick };
|
|
89
|
+
},
|
|
90
|
+
template: `
|
|
91
|
+
<div class="d-flex flex-column w-full ma-6 ga-2">
|
|
92
|
+
<InfoCard
|
|
93
|
+
v-bind="args"
|
|
94
|
+
@click:printer="handlePrinterClick"
|
|
95
|
+
@click:pencil="handlePencilClick"
|
|
96
|
+
>
|
|
97
|
+
<!-- Slot for tagLabel -->
|
|
98
|
+
<template #tagLabel>
|
|
99
|
+
<TagLabelGroup
|
|
100
|
+
:iconsAfter="[{
|
|
101
|
+
backgroundColor: '#FEFDBD',
|
|
102
|
+
borderColor: '#4F4700'
|
|
103
|
+
}, {
|
|
104
|
+
backgroundColor: '#CCE8FD',
|
|
105
|
+
borderColor: '#172774'
|
|
106
|
+
}, {
|
|
107
|
+
backgroundColor: '#D8FDE4',
|
|
108
|
+
borderColor: '#01D449'
|
|
109
|
+
}]"
|
|
110
|
+
/>
|
|
111
|
+
</template>
|
|
112
|
+
|
|
113
|
+
<!-- Slot for progress -->
|
|
114
|
+
<template #progress>
|
|
115
|
+
<ProgressCircle
|
|
116
|
+
size="30"
|
|
117
|
+
:bgColors="['#01D449', 'var(--Soft-Concrete-1)', 'var(--Soft-Concrete-1)', 'var(--Soft-Concrete-1)', 'var(--Soft-Concrete-1)']"
|
|
118
|
+
/>
|
|
119
|
+
</template>
|
|
120
|
+
</InfoCard>
|
|
121
|
+
</div>
|
|
122
|
+
`,
|
|
123
|
+
}),
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
// Story with different TagLabelGroup icons
|
|
127
|
+
// Story with different TagLabelGroup icons
|
|
128
|
+
export const DraftDone: Story = {
|
|
129
|
+
...Template,
|
|
130
|
+
render: (args) => ({
|
|
131
|
+
components: { InfoCard, TagLabelGroup, ProgressCircle },
|
|
132
|
+
setup() {
|
|
133
|
+
const handlePrinterClick = action('click:printer');
|
|
134
|
+
const handlePencilClick = action('click:pencil');
|
|
135
|
+
|
|
136
|
+
return { args, handlePrinterClick, handlePencilClick };
|
|
137
|
+
},
|
|
138
|
+
template: `
|
|
139
|
+
<div class="d-flex flex-column w-full ma-6 ga-2">
|
|
140
|
+
<InfoCard
|
|
141
|
+
v-bind="args"
|
|
142
|
+
@click:printer="handlePrinterClick"
|
|
143
|
+
@click:pencil="handlePencilClick"
|
|
144
|
+
>
|
|
145
|
+
<!-- Slot for tagLabel -->
|
|
146
|
+
<template #tagLabel>
|
|
147
|
+
<TagLabelGroup
|
|
148
|
+
status="Done"
|
|
149
|
+
:iconsBefore="[{
|
|
150
|
+
backgroundColor: '#E5E6EE',
|
|
151
|
+
borderColor: '#172774'
|
|
152
|
+
}]"
|
|
153
|
+
/>
|
|
154
|
+
</template>
|
|
155
|
+
|
|
156
|
+
<!-- Slot for progress -->
|
|
157
|
+
<template #progress>
|
|
158
|
+
<ProgressCircle
|
|
159
|
+
size="50"
|
|
160
|
+
:bgColors="['#01D449', 'var(--Soft-Concrete-1)', 'var(--Soft-Concrete-1)', 'var(--Soft-Concrete-1)', 'var(--Soft-Concrete-1)']"
|
|
161
|
+
:borderColors="['transparent', 'transparent', 'transparent', 'transparent', 'transparent']"
|
|
162
|
+
/>
|
|
163
|
+
</template>
|
|
164
|
+
</InfoCard>
|
|
165
|
+
</div>
|
|
166
|
+
`,
|
|
167
|
+
}),
|
|
168
|
+
parameters: {
|
|
169
|
+
docs: {
|
|
170
|
+
source: {
|
|
171
|
+
code: `
|
|
172
|
+
<template>
|
|
173
|
+
<div class="d-flex flex-column w-full ma-6 ga-2">
|
|
174
|
+
<InfoCard
|
|
175
|
+
v-bind="args"
|
|
176
|
+
@click:printer="handlePrinterClick"
|
|
177
|
+
@click:pencil="handlePencilClick"
|
|
178
|
+
>
|
|
179
|
+
<!-- Slot for tagLabel -->
|
|
180
|
+
<template #tagLabel>
|
|
181
|
+
<TagLabelGroup
|
|
182
|
+
status="Done"
|
|
183
|
+
:iconsBefore="[
|
|
184
|
+
{ backgroundColor: '#E5E6EE', borderColor: '#172774' }
|
|
185
|
+
]"
|
|
186
|
+
/>
|
|
187
|
+
</template>
|
|
188
|
+
|
|
189
|
+
<!-- Slot for progress -->
|
|
190
|
+
<template #progress>
|
|
191
|
+
<ProgressCircle
|
|
192
|
+
size="50"
|
|
193
|
+
:bgColors="[
|
|
194
|
+
'#01D449',
|
|
195
|
+
'var(--Soft-Concrete-1)',
|
|
196
|
+
'var(--Soft-Concrete-1)',
|
|
197
|
+
'var(--Soft-Concrete-1)',
|
|
198
|
+
'var(--Soft-Concrete-1)'
|
|
199
|
+
]"
|
|
200
|
+
:borderColors="[
|
|
201
|
+
'transparent', 'transparent', 'transparent', 'transparent', 'transparent'
|
|
202
|
+
]"
|
|
203
|
+
/>
|
|
204
|
+
</template>
|
|
205
|
+
</InfoCard>
|
|
206
|
+
</div>
|
|
207
|
+
</template>
|
|
208
|
+
|
|
209
|
+
<script setup>
|
|
210
|
+
import { action } from '@storybook/addon-actions';
|
|
211
|
+
import InfoCard from '@components/Laboratory/InfoCard/InfoCard.vue';
|
|
212
|
+
import TagLabelGroup from '@components/Laboratory/TagLabelGroup/TagLabelGroup.vue';
|
|
213
|
+
import ProgressCircle from '@components/Laboratory/ProgressCircle/ProgressCircle.vue';
|
|
214
|
+
|
|
215
|
+
const handlePrinterClick = action('click:printer');
|
|
216
|
+
const handlePencilClick = action('click:pencil');
|
|
217
|
+
</script>
|
|
218
|
+
`,
|
|
219
|
+
},
|
|
220
|
+
},
|
|
221
|
+
},
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
// Story with different ProgressCircle colors and size
|
|
225
|
+
// Story with different ProgressCircle colors and size
|
|
226
|
+
export const Draft: Story = {
|
|
227
|
+
...Template,
|
|
228
|
+
render: (args) => ({
|
|
229
|
+
components: { InfoCard, TagLabelGroup, ProgressCircle },
|
|
230
|
+
setup() {
|
|
231
|
+
const handlePrinterClick = action('click:printer');
|
|
232
|
+
const handlePencilClick = action('click:pencil');
|
|
233
|
+
|
|
234
|
+
return { args, handlePrinterClick, handlePencilClick };
|
|
235
|
+
},
|
|
236
|
+
template: `
|
|
237
|
+
<div class="d-flex flex-column w-full ma-6 ga-2">
|
|
238
|
+
<InfoCard
|
|
239
|
+
v-bind="args"
|
|
240
|
+
@click:printer="handlePrinterClick"
|
|
241
|
+
@click:pencil="handlePencilClick"
|
|
242
|
+
>
|
|
243
|
+
<!-- Slot for tagLabel -->
|
|
244
|
+
<template #tagLabel>
|
|
245
|
+
<TagLabelGroup
|
|
246
|
+
status="Draft"
|
|
247
|
+
:iconsAfter="[{
|
|
248
|
+
backgroundColor: '#D8FDE4',
|
|
249
|
+
borderColor: '#01D449'
|
|
250
|
+
}]"
|
|
251
|
+
/>
|
|
252
|
+
</template>
|
|
253
|
+
|
|
254
|
+
<!-- Slot for progress -->
|
|
255
|
+
<template #progress>
|
|
256
|
+
<ProgressCircle
|
|
257
|
+
size="50"
|
|
258
|
+
:bgColors="['#E5E6EE', 'var(--Soft-Concrete-1)', 'var(--Soft-Concrete-1)', 'var(--Soft-Concrete-1)', 'var(--Soft-Concrete-1)']"
|
|
259
|
+
:borderColors="['#172774', '#DDDDDF', '#DDDDDF', '#DDDDDF', '#DDDDDF']"
|
|
260
|
+
/>
|
|
261
|
+
</template>
|
|
262
|
+
</InfoCard>
|
|
263
|
+
</div>
|
|
264
|
+
`,
|
|
265
|
+
}),
|
|
266
|
+
parameters: {
|
|
267
|
+
docs: {
|
|
268
|
+
source: {
|
|
269
|
+
code: `
|
|
270
|
+
<template>
|
|
271
|
+
<div class="d-flex flex-column w-full ma-6 ga-2">
|
|
272
|
+
<InfoCard
|
|
273
|
+
v-bind="args"
|
|
274
|
+
@click:printer="handlePrinterClick"
|
|
275
|
+
@click:pencil="handlePencilClick"
|
|
276
|
+
>
|
|
277
|
+
<!-- Slot for tagLabel -->
|
|
278
|
+
<template #tagLabel>
|
|
279
|
+
<TagLabelGroup
|
|
280
|
+
status="Draft"
|
|
281
|
+
:iconsAfter="[
|
|
282
|
+
{ backgroundColor: '#D8FDE4', borderColor: '#01D449' }
|
|
283
|
+
]"
|
|
284
|
+
/>
|
|
285
|
+
</template>
|
|
286
|
+
|
|
287
|
+
<!-- Slot for progress -->
|
|
288
|
+
<template #progress>
|
|
289
|
+
<ProgressCircle
|
|
290
|
+
size="50"
|
|
291
|
+
:bgColors="[
|
|
292
|
+
'#E5E6EE',
|
|
293
|
+
'var(--Soft-Concrete-1)',
|
|
294
|
+
'var(--Soft-Concrete-1)',
|
|
295
|
+
'var(--Soft-Concrete-1)',
|
|
296
|
+
'var(--Soft-Concrete-1)'
|
|
297
|
+
]"
|
|
298
|
+
:borderColors="[
|
|
299
|
+
'#172774', '#DDDDDF', '#DDDDDF', '#DDDDDF', '#DDDDDF'
|
|
300
|
+
]"
|
|
301
|
+
/>
|
|
302
|
+
</template>
|
|
303
|
+
</InfoCard>
|
|
304
|
+
</div>
|
|
305
|
+
</template>
|
|
306
|
+
|
|
307
|
+
<script setup>
|
|
308
|
+
import { action } from '@storybook/addon-actions';
|
|
309
|
+
import InfoCard from '@components/Laboratory/InfoCard/InfoCard.vue';
|
|
310
|
+
import TagLabelGroup from '@components/Laboratory/TagLabelGroup/TagLabelGroup.vue';
|
|
311
|
+
import ProgressCircle from '@components/Laboratory/ProgressCircle/ProgressCircle.vue';
|
|
312
|
+
|
|
313
|
+
const handlePrinterClick = action('click:printer');
|
|
314
|
+
const handlePencilClick = action('click:pencil');
|
|
315
|
+
</script>
|
|
316
|
+
`,
|
|
317
|
+
},
|
|
318
|
+
},
|
|
319
|
+
},
|
|
320
|
+
};
|