@muenchen/muc-patternlab-vue 1.13.0-beta.7 → 1.13.0-beta.8
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/components/Banner/MucBanner.stories.d.ts +70 -0
- package/components/Banner/MucBanner.vue.d.ts +37 -0
- package/components/BuisnessHours/BusinessHours.stories.d.ts +80 -0
- package/components/BuisnessHours/MucBusinessHours.vue.d.ts +56 -0
- package/components/Button/MucButton.stories.d.ts +114 -0
- package/{dist/components → components}/Button/MucButton.vue.d.ts +23 -43
- package/components/Callout/MucCallout.stories.d.ts +77 -0
- package/components/Callout/MucCallout.vue.d.ts +57 -0
- package/components/Card/MucCard.stories.d.ts +117 -0
- package/components/Card/MucCard.vue.d.ts +42 -0
- package/components/Card/MucCardContainer.stories.d.ts +124 -0
- package/components/Card/MucCardContainer.vue.d.ts +24 -0
- package/components/Comment/MucComment.stories.d.ts +82 -0
- package/components/Comment/MucComment.vue.d.ts +89 -0
- package/components/Comment/MucCommentText.stories.d.ts +51 -0
- package/components/Comment/MucCommentText.vue.d.ts +24 -0
- package/{dist/components → components}/Divider/MucDivider.stories.d.ts +1 -1
- package/{dist/components → components}/Divider/MucDivider.vue.d.ts +1 -1
- package/components/Form/MucCheckbox.stories.d.ts +33 -0
- package/components/Form/MucCheckbox.vue.d.ts +18 -0
- package/components/Form/MucCheckboxGroup.stories.d.ts +188 -0
- package/components/Form/MucCheckboxGroup.vue.d.ts +42 -0
- package/components/Form/MucCounter.stories.d.ts +63 -0
- package/components/Form/MucCounter.vue.d.ts +33 -0
- package/components/Form/MucErrorList.stories.d.ts +31 -0
- package/components/Form/MucErrorList.vue.d.ts +8 -0
- package/components/Form/MucInput.stories.d.ts +165 -0
- package/{dist/components → components}/Form/MucInput.vue.d.ts +23 -42
- package/components/Form/MucRadioButton.stories.d.ts +104 -0
- package/components/Form/MucRadioButton.vue.d.ts +38 -0
- package/components/Form/MucRadioButtonGroup.vue.d.ts +38 -0
- package/components/Form/MucSelect.stories.d.ts +82 -0
- package/{dist/components → components}/Form/MucSelect.vue.d.ts +5 -30
- package/components/Form/MucSelectItem.vue.d.ts +9 -0
- package/components/Form/MucTextArea.stories.d.ts +64 -0
- package/components/Form/MucTextArea.vue.d.ts +38 -0
- package/components/Icon/MucIcon.stories.d.ts +33 -0
- package/components/Icon/MucIcon.vue.d.ts +20 -0
- package/components/Intro/MucIntro.stories.d.ts +61 -0
- package/components/Intro/MucIntro.vue.d.ts +50 -0
- package/components/Link/MucLink.stories.d.ts +83 -0
- package/components/Link/MucLink.vue.d.ts +72 -0
- package/components/PercentageSpinner/MucPercentageSpinner.stories.d.ts +32 -0
- package/components/PercentageSpinner/MucPercentageSpinner.vue.d.ts +30 -0
- package/components/PercentageSpinner/index.d.ts +2 -0
- package/{dist/components → components}/index.d.ts +2 -1
- package/muc-patternlab-vue.es.js +1003 -0
- package/package.json +4 -7
- package/{dist/style.css → style.css} +1 -1
- package/LICENSE +0 -21
- package/README.md +0 -111
- package/dist/components/Banner/MucBanner.stories.d.ts +0 -82
- package/dist/components/Banner/MucBanner.vue.d.ts +0 -54
- package/dist/components/BuisnessHours/BusinessHours.stories.d.ts +0 -116
- package/dist/components/BuisnessHours/MucBusinessHours.vue.d.ts +0 -74
- package/dist/components/Button/MucButton.stories.d.ts +0 -158
- package/dist/components/Callout/MucCallout.stories.d.ts +0 -89
- package/dist/components/Callout/MucCallout.vue.d.ts +0 -73
- package/dist/components/Card/MucCard.stories.d.ts +0 -165
- package/dist/components/Card/MucCard.vue.d.ts +0 -46
- package/dist/components/Card/MucCardContainer.stories.d.ts +0 -148
- package/dist/components/Card/MucCardContainer.vue.d.ts +0 -19
- package/dist/components/Comment/MucComment.stories.d.ts +0 -106
- package/dist/components/Comment/MucComment.vue.d.ts +0 -105
- package/dist/components/Comment/MucCommentText.stories.d.ts +0 -93
- package/dist/components/Comment/MucCommentText.vue.d.ts +0 -47
- package/dist/components/Form/MucCheckbox.stories.d.ts +0 -40
- package/dist/components/Form/MucCheckbox.vue.d.ts +0 -26
- package/dist/components/Form/MucCheckboxGroup.stories.d.ts +0 -241
- package/dist/components/Form/MucCheckboxGroup.vue.d.ts +0 -46
- package/dist/components/Form/MucCounter.stories.d.ts +0 -89
- package/dist/components/Form/MucCounter.vue.d.ts +0 -54
- package/dist/components/Form/MucErrorList.stories.d.ts +0 -41
- package/dist/components/Form/MucErrorList.vue.d.ts +0 -17
- package/dist/components/Form/MucInput.stories.d.ts +0 -239
- package/dist/components/Form/MucRadioButton.stories.d.ts +0 -168
- package/dist/components/Form/MucRadioButton.vue.d.ts +0 -59
- package/dist/components/Form/MucRadioButtonGroup.vue.d.ts +0 -54
- package/dist/components/Form/MucSelect.stories.d.ts +0 -116
- package/dist/components/Form/MucSelectItem.vue.d.ts +0 -18
- package/dist/components/Form/MucTextArea.stories.d.ts +0 -94
- package/dist/components/Form/MucTextArea.vue.d.ts +0 -61
- package/dist/components/Icon/MucIcon.stories.d.ts +0 -43
- package/dist/components/Icon/MucIcon.vue.d.ts +0 -29
- package/dist/components/Intro/MucIntro.stories.d.ts +0 -97
- package/dist/components/Intro/MucIntro.vue.d.ts +0 -54
- package/dist/components/Link/MucLink.stories.d.ts +0 -139
- package/dist/components/Link/MucLink.vue.d.ts +0 -92
- package/dist/muc-patternlab-vue.es.js +0 -973
- package/src/components/Banner/MucBanner.stories.ts +0 -47
- package/src/components/Banner/MucBanner.vue +0 -109
- package/src/components/Banner/index.ts +0 -3
- package/src/components/BuisnessHours/BusinessHourType.ts +0 -28
- package/src/components/BuisnessHours/BusinessHours.stories.ts +0 -108
- package/src/components/BuisnessHours/MucBusinessHours.vue +0 -162
- package/src/components/Button/MucButton.stories.ts +0 -63
- package/src/components/Button/MucButton.vue +0 -89
- package/src/components/Button/index.ts +0 -3
- package/src/components/Callout/MucCallout.stories.ts +0 -49
- package/src/components/Callout/MucCallout.vue +0 -140
- package/src/components/Callout/index.ts +0 -3
- package/src/components/Card/MucCard.stories.ts +0 -55
- package/src/components/Card/MucCard.vue +0 -92
- package/src/components/Card/MucCardContainer.stories.ts +0 -43
- package/src/components/Card/MucCardContainer.vue +0 -37
- package/src/components/Card/index.ts +0 -4
- package/src/components/Comment/CommentType.ts +0 -3
- package/src/components/Comment/MucComment.stories.ts +0 -38
- package/src/components/Comment/MucComment.vue +0 -179
- package/src/components/Comment/MucCommentText.stories.ts +0 -38
- package/src/components/Comment/MucCommentText.vue +0 -61
- package/src/components/Comment/index.ts +0 -4
- package/src/components/Divider/MucDivider.stories.ts +0 -19
- package/src/components/Divider/MucDivider.vue +0 -9
- package/src/components/Divider/index.ts +0 -3
- package/src/components/Form/MucCheckbox.stories.ts +0 -25
- package/src/components/Form/MucCheckbox.vue +0 -47
- package/src/components/Form/MucCheckboxGroup.stories.ts +0 -43
- package/src/components/Form/MucCheckboxGroup.vue +0 -80
- package/src/components/Form/MucCounter.stories.ts +0 -47
- package/src/components/Form/MucCounter.vue +0 -128
- package/src/components/Form/MucErrorList.stories.ts +0 -31
- package/src/components/Form/MucErrorList.vue +0 -34
- package/src/components/Form/MucInput.stories.ts +0 -90
- package/src/components/Form/MucInput.vue +0 -198
- package/src/components/Form/MucRadioButton.stories.ts +0 -32
- package/src/components/Form/MucRadioButton.vue +0 -81
- package/src/components/Form/MucRadioButtonGroup.vue +0 -65
- package/src/components/Form/MucRadioButtonTypes.ts +0 -41
- package/src/components/Form/MucSelect.stories.ts +0 -69
- package/src/components/Form/MucSelect.vue +0 -352
- package/src/components/Form/MucSelectItem.vue +0 -25
- package/src/components/Form/MucSelectTypes.ts +0 -8
- package/src/components/Form/MucTextArea.stories.ts +0 -47
- package/src/components/Form/MucTextArea.vue +0 -80
- package/src/components/Form/index.ts +0 -23
- package/src/components/Icon/MucIcon.stories.ts +0 -35
- package/src/components/Icon/MucIcon.vue +0 -29
- package/src/components/Icon/index.ts +0 -3
- package/src/components/Intro/MucIntro.stories.ts +0 -37
- package/src/components/Intro/MucIntro.vue +0 -70
- package/src/components/Intro/index.ts +0 -3
- package/src/components/Link/MucLink.stories.ts +0 -36
- package/src/components/Link/MucLink.vue +0 -74
- package/src/components/Link/index.ts +0 -3
- package/src/components/index.ts +0 -43
- package/src/composables/useOnClickOutside.ts +0 -24
- package/src/index.ts +0 -14
- /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-700.eot +0 -0
- /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-700.svg +0 -0
- /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-700.ttf +0 -0
- /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-700.woff +0 -0
- /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-700.woff2 +0 -0
- /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-italic.eot +0 -0
- /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-italic.svg +0 -0
- /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-italic.ttf +0 -0
- /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-italic.woff +0 -0
- /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-italic.woff2 +0 -0
- /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-regular.eot +0 -0
- /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-regular.svg +0 -0
- /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-regular.ttf +0 -0
- /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-regular.woff +0 -0
- /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-regular.woff2 +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-300.eot +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-300.svg +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-300.ttf +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-300.woff +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-300.woff2 +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-300italic.eot +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-300italic.svg +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-300italic.ttf +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-300italic.woff +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-300italic.woff2 +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-700.eot +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-700.svg +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-700.ttf +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-700.woff +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-700.woff2 +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-700italic.eot +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-700italic.svg +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-700italic.ttf +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-700italic.woff +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-700italic.woff2 +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-italic.eot +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-italic.svg +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-italic.ttf +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-italic.woff +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-italic.woff2 +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-regular.eot +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-regular.svg +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-regular.ttf +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-regular.woff +0 -0
- /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-regular.woff2 +0 -0
- /package/{dist/assets → assets}/temporary/custom-icons.svg +0 -0
- /package/{dist/assets → assets}/temporary/custom-style.css +0 -0
- /package/{dist/assets → assets}/temporary/muc-icons.svg +0 -0
- /package/{dist/assets → assets}/temporary/muenchende-fontfaces.css +0 -0
- /package/{dist/assets → assets}/temporary/muenchende-style.css +0 -0
- /package/{dist/components → components}/Banner/index.d.ts +0 -0
- /package/{dist/components → components}/BuisnessHours/BusinessHourType.d.ts +0 -0
- /package/{dist/components → components}/Button/index.d.ts +0 -0
- /package/{dist/components → components}/Callout/index.d.ts +0 -0
- /package/{dist/components → components}/Card/index.d.ts +0 -0
- /package/{dist/components → components}/Comment/CommentType.d.ts +0 -0
- /package/{dist/components → components}/Comment/index.d.ts +0 -0
- /package/{dist/components → components}/Divider/index.d.ts +0 -0
- /package/{dist/components → components}/Form/MucRadioButtonTypes.d.ts +0 -0
- /package/{dist/components → components}/Form/MucSelectTypes.d.ts +0 -0
- /package/{dist/components → components}/Form/index.d.ts +0 -0
- /package/{dist/components → components}/Icon/index.d.ts +0 -0
- /package/{dist/components → components}/Intro/index.d.ts +0 -0
- /package/{dist/components → components}/Link/index.d.ts +0 -0
- /package/{dist/composables → composables}/useOnClickOutside.d.ts +0 -0
- /package/{dist/index.d.ts → index.d.ts} +0 -0
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div
|
|
3
|
-
class="m-form-group"
|
|
4
|
-
:class="isErrorClass"
|
|
5
|
-
>
|
|
6
|
-
<label
|
|
7
|
-
for="search-input"
|
|
8
|
-
class="m-label"
|
|
9
|
-
>
|
|
10
|
-
{{ label }}
|
|
11
|
-
<span
|
|
12
|
-
v-if="required"
|
|
13
|
-
aria-hidden="true"
|
|
14
|
-
class="mandatory"
|
|
15
|
-
>
|
|
16
|
-
*
|
|
17
|
-
<span class="visually-hidden">(erforderlich)</span>
|
|
18
|
-
</span>
|
|
19
|
-
</label>
|
|
20
|
-
<p
|
|
21
|
-
id="text-input-error"
|
|
22
|
-
class="m-error-message"
|
|
23
|
-
>
|
|
24
|
-
{{ errorMsg }}
|
|
25
|
-
</p>
|
|
26
|
-
<div class="m-input-wrapper m-autocomplete">
|
|
27
|
-
<div
|
|
28
|
-
v-if="!!slots.prefix"
|
|
29
|
-
class="m-input__prefix"
|
|
30
|
-
>
|
|
31
|
-
<span>
|
|
32
|
-
<slot name="prefix" />
|
|
33
|
-
</span>
|
|
34
|
-
</div>
|
|
35
|
-
<input
|
|
36
|
-
class="m-input autocomplete-input"
|
|
37
|
-
:type="type"
|
|
38
|
-
v-model="modelValue"
|
|
39
|
-
:aria-describedby="type + '-input'"
|
|
40
|
-
:placeholder="placeholder"
|
|
41
|
-
:required="required"
|
|
42
|
-
/>
|
|
43
|
-
<ul
|
|
44
|
-
v-if="isSearch && currentAvalOptions.length !== 0"
|
|
45
|
-
class="autocomplete-result-list autocomplete-result-list--location"
|
|
46
|
-
>
|
|
47
|
-
<li
|
|
48
|
-
class="autocomplete-result"
|
|
49
|
-
v-for="option in currentAvalOptions"
|
|
50
|
-
:key="option"
|
|
51
|
-
@click="handleOptionSelection(option)"
|
|
52
|
-
>
|
|
53
|
-
{{ option }}
|
|
54
|
-
</li>
|
|
55
|
-
</ul>
|
|
56
|
-
<button
|
|
57
|
-
v-if="suffixIcon"
|
|
58
|
-
class="m-input__suffix"
|
|
59
|
-
@click="handleSuffixClick"
|
|
60
|
-
>
|
|
61
|
-
<svg
|
|
62
|
-
aria-hidden="true"
|
|
63
|
-
class="icon"
|
|
64
|
-
>
|
|
65
|
-
<use :xlink:href="'#icon-' + suffixIcon"></use>
|
|
66
|
-
</svg>
|
|
67
|
-
<span class="visually-hidden">Suchen</span>
|
|
68
|
-
</button>
|
|
69
|
-
</div>
|
|
70
|
-
<p
|
|
71
|
-
class="m-hint"
|
|
72
|
-
id="text-input-hint"
|
|
73
|
-
>
|
|
74
|
-
{{ hint }}
|
|
75
|
-
</p>
|
|
76
|
-
</div>
|
|
77
|
-
</template>
|
|
78
|
-
<script setup lang="ts">
|
|
79
|
-
import { computed } from "vue";
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Type includes all possible input types possible.
|
|
83
|
-
*/
|
|
84
|
-
type inputType =
|
|
85
|
-
| "text"
|
|
86
|
-
| "password"
|
|
87
|
-
| "color"
|
|
88
|
-
| "search"
|
|
89
|
-
| "date"
|
|
90
|
-
| "datetime-local";
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Input value from the input component.
|
|
94
|
-
*/
|
|
95
|
-
const modelValue = defineModel<string>({ default: "" });
|
|
96
|
-
|
|
97
|
-
const props = withDefaults(
|
|
98
|
-
defineProps<{
|
|
99
|
-
/**
|
|
100
|
-
* Displays error message and highlights the input form with a red border.
|
|
101
|
-
*/
|
|
102
|
-
errorMsg?: string;
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Placeholder for empty input form.
|
|
106
|
-
*/
|
|
107
|
-
placeholder?: string;
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Sets this input form as required. Default is wrong.
|
|
111
|
-
*/
|
|
112
|
-
required?: boolean;
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Displays a label above the form component.
|
|
116
|
-
*/
|
|
117
|
-
label?: string;
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Displays a hint beneath the form component.
|
|
121
|
-
*/
|
|
122
|
-
hint?: string;
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Sets the type of this form component. This can be text, password, color, date or datetime-local.
|
|
126
|
-
*/
|
|
127
|
-
type?: inputType;
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* Options for the form component. Type must set to 'search'.
|
|
131
|
-
*/
|
|
132
|
-
datalist?: string[];
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Icon to be displayed as a suffix at the end of the input.
|
|
136
|
-
*/
|
|
137
|
-
suffixIcon?: string;
|
|
138
|
-
}>(),
|
|
139
|
-
{
|
|
140
|
-
required: false,
|
|
141
|
-
type: "text",
|
|
142
|
-
dataList: [],
|
|
143
|
-
}
|
|
144
|
-
);
|
|
145
|
-
|
|
146
|
-
const slots = defineSlots<{
|
|
147
|
-
/**
|
|
148
|
-
* Slot in front of the user input with divider.
|
|
149
|
-
*/
|
|
150
|
-
prefix(): any;
|
|
151
|
-
}>();
|
|
152
|
-
|
|
153
|
-
const emits = defineEmits<{
|
|
154
|
-
/**
|
|
155
|
-
* Triggered when suffix-button is clicked.
|
|
156
|
-
* @param e Click-Event
|
|
157
|
-
*/
|
|
158
|
-
(e: "suffixClick"): void;
|
|
159
|
-
}>();
|
|
160
|
-
|
|
161
|
-
/**
|
|
162
|
-
* Computes a CSS class based on the presence of an error message.
|
|
163
|
-
* @returns {string} Returns "has-error" if there is an error message, otherwise an empty string.
|
|
164
|
-
*/
|
|
165
|
-
const isErrorClass = computed(() => (!props.errorMsg ? "" : "has-error"));
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* Computes whether the current type is "search".
|
|
169
|
-
* @returns {boolean} Returns true if the type is "search", otherwise false.
|
|
170
|
-
*/
|
|
171
|
-
const isSearch = computed(() => props.type === "search");
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* Computes the list of available options based on the current search value.
|
|
175
|
-
* Filters the options from the datalist based on whether they start with the search value.
|
|
176
|
-
* @returns {string[]} Returns an array of matching options.
|
|
177
|
-
*/
|
|
178
|
-
const currentAvalOptions = computed(() => {
|
|
179
|
-
if (modelValue.value === "") return [];
|
|
180
|
-
|
|
181
|
-
const searchValue = modelValue.value.toLowerCase();
|
|
182
|
-
return props.datalist!.filter(
|
|
183
|
-
(option) =>
|
|
184
|
-
option.toLowerCase().startsWith(searchValue) &&
|
|
185
|
-
option.toLowerCase() !== searchValue
|
|
186
|
-
);
|
|
187
|
-
});
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Handles the selection of an option.
|
|
191
|
-
* Sets the model value to the selected option.
|
|
192
|
-
* @param {string} option - The selected option.
|
|
193
|
-
*/
|
|
194
|
-
const handleOptionSelection = (option: string) => (modelValue.value = option);
|
|
195
|
-
|
|
196
|
-
const handleSuffixClick = () => emits("suffixClick");
|
|
197
|
-
</script>
|
|
198
|
-
<style scoped></style>
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import MucRadioButton from "./MucRadioButton.vue";
|
|
2
|
-
import MucRadioButtonGroup from "./MucRadioButtonGroup.vue";
|
|
3
|
-
|
|
4
|
-
export default {
|
|
5
|
-
component: MucRadioButton,
|
|
6
|
-
title: "Forms/MucRadioButton",
|
|
7
|
-
tags: ["autodocs"],
|
|
8
|
-
parameters: {
|
|
9
|
-
docs: {
|
|
10
|
-
description: {
|
|
11
|
-
component: `
|
|
12
|
-
Offers simple functionality of a radio-button.
|
|
13
|
-
You need to use the radio-button within the radio-button-group - combined you can provide grouping functionality to allow users to select from a predefined set of options.
|
|
14
|
-
|
|
15
|
-
[🔗 Patternlab-Docs](https://patternlab.muenchen.space/?p=elements-radios)
|
|
16
|
-
`,
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
export const Default = () => ({
|
|
23
|
-
components: { MucRadioButton, MucRadioButtonGroup },
|
|
24
|
-
template: `
|
|
25
|
-
<MucRadioButtonGroup heading="Checkbox group" model-value="">
|
|
26
|
-
<template v-slot:default>
|
|
27
|
-
<MucRadioButton value="first" label="first option" hint="This is a hint for this radiobutton"/>
|
|
28
|
-
<MucRadioButton v-for="index in 3" :key="index" :label="'other option-' + index" :value="'val-' + index"/>
|
|
29
|
-
</template>
|
|
30
|
-
</MucRadioButtonGroup>
|
|
31
|
-
`,
|
|
32
|
-
});
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div
|
|
3
|
-
class="m-radios__item"
|
|
4
|
-
v-if="isInRadioButtonGroup"
|
|
5
|
-
>
|
|
6
|
-
<input
|
|
7
|
-
class="m-radios__input"
|
|
8
|
-
type="radio"
|
|
9
|
-
:checked="isChecked"
|
|
10
|
-
:disabled="isDisabled"
|
|
11
|
-
@click.stop="clicked"
|
|
12
|
-
/>
|
|
13
|
-
<label
|
|
14
|
-
class="m-label m-radios__label"
|
|
15
|
-
@click="clicked"
|
|
16
|
-
>
|
|
17
|
-
{{ label }}
|
|
18
|
-
<span class="m-hint">
|
|
19
|
-
{{ hint }}
|
|
20
|
-
</span>
|
|
21
|
-
</label>
|
|
22
|
-
</div>
|
|
23
|
-
</template>
|
|
24
|
-
|
|
25
|
-
<script setup lang="ts">
|
|
26
|
-
import { computed, inject } from "vue";
|
|
27
|
-
|
|
28
|
-
import { RadioButtonGroupKey } from "./MucRadioButtonTypes";
|
|
29
|
-
|
|
30
|
-
const props = withDefaults(
|
|
31
|
-
defineProps<{
|
|
32
|
-
/**
|
|
33
|
-
* value for this radiobutton
|
|
34
|
-
*/
|
|
35
|
-
value: string;
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Optional label shown behind the radiobutton
|
|
39
|
-
*/
|
|
40
|
-
label?: string;
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Optional hint shown beneath the radiobutton
|
|
44
|
-
*/
|
|
45
|
-
hint?: string;
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Optionally disable this specific radiobutton
|
|
49
|
-
*/
|
|
50
|
-
disabled?: boolean;
|
|
51
|
-
}>(),
|
|
52
|
-
{
|
|
53
|
-
disabled: false,
|
|
54
|
-
}
|
|
55
|
-
);
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Data provided by the radio-button-group
|
|
59
|
-
*/
|
|
60
|
-
const parentData = inject(RadioButtonGroupKey);
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Function called upon clicking this radiobutton
|
|
64
|
-
*/
|
|
65
|
-
const clicked = () => parentData?.set(props.value);
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Computed property if this radiobutton is checked or not
|
|
69
|
-
*/
|
|
70
|
-
const isChecked = computed(() => parentData?.modelValue.value === props.value);
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Computed property if this radiobutton should be disabled
|
|
74
|
-
*/
|
|
75
|
-
const isDisabled = computed(() => props.disabled || parentData?.disabled.value);
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Determines if this radiobutton is used inside a radiobutton-group
|
|
79
|
-
*/
|
|
80
|
-
const isInRadioButtonGroup = computed(() => !!parentData?.disabled ?? false);
|
|
81
|
-
</script>
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="m-form-group">
|
|
3
|
-
<fieldset class="m-radio-group">
|
|
4
|
-
<legend class="m-radio-group__legend">
|
|
5
|
-
<h3 class="m-radio-group__heading">
|
|
6
|
-
{{ heading }}
|
|
7
|
-
</h3>
|
|
8
|
-
</legend>
|
|
9
|
-
<div class="m-radios">
|
|
10
|
-
<slot name="default" />
|
|
11
|
-
</div>
|
|
12
|
-
</fieldset>
|
|
13
|
-
</div>
|
|
14
|
-
</template>
|
|
15
|
-
|
|
16
|
-
<script setup lang="ts">
|
|
17
|
-
import { provide, readonly, toRef } from "vue";
|
|
18
|
-
|
|
19
|
-
import {
|
|
20
|
-
RadioButtonGroupKey,
|
|
21
|
-
RadioButtonValueTypes,
|
|
22
|
-
} from "./MucRadioButtonTypes";
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* exposed two-way binding of the currently selected radiobuttons-value
|
|
26
|
-
*/
|
|
27
|
-
const selectedButton = defineModel<RadioButtonValueTypes>("modelValue");
|
|
28
|
-
|
|
29
|
-
const props = withDefaults(
|
|
30
|
-
defineProps<{
|
|
31
|
-
/**
|
|
32
|
-
* Optional heading above all radiobuttons as a group heading
|
|
33
|
-
*/
|
|
34
|
-
heading?: string;
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Optionally disable all child radiobuttons - defaults to 'false'
|
|
38
|
-
*/
|
|
39
|
-
disabled?: boolean;
|
|
40
|
-
}>(),
|
|
41
|
-
{
|
|
42
|
-
disabled: false,
|
|
43
|
-
}
|
|
44
|
-
);
|
|
45
|
-
|
|
46
|
-
const emit = defineEmits<{
|
|
47
|
-
/**
|
|
48
|
-
* Triggered when a different radiobutton is selected.
|
|
49
|
-
* @param value RadioButtonValueTypes the value of the newly selected radiobutton
|
|
50
|
-
*/
|
|
51
|
-
change: [value: RadioButtonValueTypes];
|
|
52
|
-
}>();
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Providing necessary data to all child radiobuttons.
|
|
56
|
-
*/
|
|
57
|
-
provide(RadioButtonGroupKey, {
|
|
58
|
-
set: (value: RadioButtonValueTypes) => {
|
|
59
|
-
emit("change", value);
|
|
60
|
-
selectedButton.value = value;
|
|
61
|
-
},
|
|
62
|
-
modelValue: selectedButton,
|
|
63
|
-
disabled: readonly(toRef(props.disabled)),
|
|
64
|
-
});
|
|
65
|
-
</script>
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { InjectionKey, Ref } from "vue";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Key for inject and provide
|
|
5
|
-
*
|
|
6
|
-
* @type {InjectionKey<RadioButtonGroupInjection>}
|
|
7
|
-
*/
|
|
8
|
-
export const RadioButtonGroupKey: InjectionKey<RadioButtonGroupInjection> =
|
|
9
|
-
Symbol("mucRadioGroup");
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Type getting injected / provided
|
|
13
|
-
*/
|
|
14
|
-
export type RadioButtonGroupInjection = {
|
|
15
|
-
/**
|
|
16
|
-
* Function for setting the value of the current selected radiobutton
|
|
17
|
-
* @param {RadioButtonValueTypes} value - Value being set as the new current selected radiobutton
|
|
18
|
-
*/
|
|
19
|
-
set: (value: RadioButtonValueTypes) => void;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Current value of the currently selected radiobutton
|
|
23
|
-
*/
|
|
24
|
-
modelValue: Readonly<Ref<RadioButtonValueTypes | undefined>>;
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Deactivate all child radiobuttons
|
|
28
|
-
*/
|
|
29
|
-
disabled: Readonly<Ref<boolean>>;
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Different possible types used as value for a radiobutton-values
|
|
34
|
-
*/
|
|
35
|
-
export type RadioButtonValueTypes =
|
|
36
|
-
| boolean
|
|
37
|
-
| string
|
|
38
|
-
| unknown[]
|
|
39
|
-
| Record<string, unknown>
|
|
40
|
-
| number
|
|
41
|
-
| null;
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import MucSelect from "./MucSelect.vue";
|
|
2
|
-
|
|
3
|
-
export default {
|
|
4
|
-
component: MucSelect,
|
|
5
|
-
title: "Forms/MucSelect",
|
|
6
|
-
tags: ["autodocs"],
|
|
7
|
-
parameters: {
|
|
8
|
-
docs: {
|
|
9
|
-
description: {
|
|
10
|
-
component: `Choose from an option from a given list of objects or strings - multiple can also be allowed. The design is similar to the text input with autocompletion.
|
|
11
|
-
|
|
12
|
-
[🔗 Patternlab-Docs](https://patternlab.muenchen.space/?p=elements-combobox)
|
|
13
|
-
`,
|
|
14
|
-
},
|
|
15
|
-
},
|
|
16
|
-
},
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export const Default = {
|
|
20
|
-
args: {
|
|
21
|
-
modelValue: {
|
|
22
|
-
id: "1",
|
|
23
|
-
name: "Object 1",
|
|
24
|
-
quantity: 1,
|
|
25
|
-
},
|
|
26
|
-
items: [
|
|
27
|
-
{
|
|
28
|
-
id: "1",
|
|
29
|
-
name: "Object 1",
|
|
30
|
-
quantity: 1,
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
id: "2",
|
|
34
|
-
name: "Object 2",
|
|
35
|
-
quantity: 2,
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
id: "3",
|
|
39
|
-
name: "Object 3",
|
|
40
|
-
quantity: 3,
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
id: "4",
|
|
44
|
-
name: "Object 4",
|
|
45
|
-
quantity: 4,
|
|
46
|
-
},
|
|
47
|
-
],
|
|
48
|
-
label: "This is a label",
|
|
49
|
-
hint: "This is a hint",
|
|
50
|
-
itemTitle: "name",
|
|
51
|
-
},
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
export const MultiSelect = {
|
|
55
|
-
args: {
|
|
56
|
-
...Default.args,
|
|
57
|
-
label: "Select multiple objects",
|
|
58
|
-
multiple: true,
|
|
59
|
-
},
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
export const StringSelect = {
|
|
63
|
-
args: {
|
|
64
|
-
modelValue: "String 1",
|
|
65
|
-
items: ["String 1", "String 2", "String 3", "String 4"],
|
|
66
|
-
label: "Select strings",
|
|
67
|
-
hint: "This is a hint",
|
|
68
|
-
},
|
|
69
|
-
};
|