comand-component-library 3.1.64 → 3.1.67
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/dist/comand-component-library.css +1 -1
- package/dist/comand-component-library.umd.min.js +1 -1
- package/package.json +2 -2
- package/src/App.vue +77 -42
- package/src/assets/data/box-user.json +0 -8
- package/src/assets/data/cookie-disclaimer.json +3 -3
- package/src/assets/data/list-of-links.json +0 -17
- package/src/assets/data/tabs.json +6 -3
- package/src/components/CmdBox.vue +18 -5
- package/src/components/CmdBoxSiteSearch.vue +1 -1
- package/src/components/CmdCompanyLogo.vue +4 -4
- package/src/components/CmdCookieDisclaimer.vue +121 -91
- package/src/components/CmdCustomHeadline.vue +3 -3
- package/src/components/CmdFakeSelect.vue +12 -2
- package/src/components/CmdFormElement.vue +78 -21
- package/src/components/CmdFormFilters.vue +1 -1
- package/src/components/CmdInputGroup.vue +38 -0
- package/src/components/CmdLoginForm.vue +3 -3
- package/src/components/CmdMultipleSwitch.vue +1 -1
- package/src/components/CmdProgressBar.vue +1 -0
- package/src/components/CmdSiteHeader.vue +3 -1
- package/src/components/CmdTabs.vue +1 -1
- package/src/components/CmdUploadForm.vue +200 -111
- package/src/mixins/CmdUploadForm/DefaultMessageProperties.js +1 -1
- package/src/mixins/FieldValidation.js +8 -8
- package/src/utils/common.js +10 -1
@@ -3,80 +3,84 @@
|
|
3
3
|
<div class="cmd-cookie-disclaimer flex-container vertical">
|
4
4
|
<!-- begin CmdCustomHeadline -->
|
5
5
|
<CmdCustomHeadline
|
6
|
-
v-if="
|
7
|
-
v-bind="
|
6
|
+
v-if="cmdCustomHeadlineCookieDisclaimer?.show && cmdCustomHeadlineCookieDisclaimer?.headlineText && cmdCustomHeadlineCookieDisclaimer?.headlineLevel"
|
7
|
+
v-bind="cmdCustomHeadlineCookieDisclaimer"
|
8
|
+
:headlineText="cmdCustomHeadlineCookieDisclaimer.headlineText"
|
9
|
+
:headlineLevel="cmdCustomHeadlineCookieDisclaimer.headlineLevel"
|
8
10
|
/>
|
9
11
|
<!-- end CmdCustomHeadline -->
|
10
12
|
|
11
13
|
<!-- begin slot for cookie-options -->
|
12
14
|
<slot name="cookie-options">
|
13
|
-
<div v-if="cookieOptions.required">
|
14
|
-
<
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
<!--
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
<!--
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
<!--
|
47
|
-
<!-- <!– end CmdAccordion –>-->
|
15
|
+
<div v-if="cookieOptions.required" class="flex-container vertical">
|
16
|
+
<CmdCustomHeadline v-if="cmdBoxRequiredCookies?.showHeadline" :headline-text="cmdBoxRequiredCookies?.headlineText" :headline-level="cmdBoxRequiredCookies?.headlineLevel "/>
|
17
|
+
<!-- begin CmdBox -->
|
18
|
+
<CmdBox v-for="(cookie, index) in cookieOptions.required.cookies"
|
19
|
+
:useSlots="['header', 'body']"
|
20
|
+
v-bind="cmdBoxRequiredCookies"
|
21
|
+
:key="index"
|
22
|
+
>
|
23
|
+
<template v-slot:header>
|
24
|
+
<!-- begin CmdSwitchButton -->
|
25
|
+
<CmdSwitchButton
|
26
|
+
type="checkbox"
|
27
|
+
:id="cookie.id"
|
28
|
+
:labelText="cookie.labelText"
|
29
|
+
v-model="cookie.checked"
|
30
|
+
:status="cookie.status"
|
31
|
+
disabled="disabled"
|
32
|
+
/>
|
33
|
+
<!-- end CmdSwitchButton -->
|
34
|
+
</template>
|
35
|
+
<template v-slot:body>
|
36
|
+
<p v-if="cookie.description">{{ cookie.description }}</p>
|
37
|
+
<p v-if="cookie.linkDataPrivacy">
|
38
|
+
{{ cookie.linkDataPrivacy.label }}
|
39
|
+
<a @click="openDataPrivacy"
|
40
|
+
:href="cookie.linkDataPrivacy.link"
|
41
|
+
:target="cookie.linkDataPrivacy.target">
|
42
|
+
{{ cookie.linkDataPrivacy.linkText }}
|
43
|
+
</a>
|
44
|
+
</p>
|
45
|
+
<div v-if="dataPrivacyContent" v-html="dataPrivacyContent"></div>
|
46
|
+
</template>
|
47
|
+
</CmdBox>
|
48
|
+
<!-- end CmdBox -->
|
48
49
|
</div>
|
49
|
-
<hr
|
50
|
-
<div v-if="cookieOptions.optional">
|
51
|
-
<
|
52
|
-
<!--
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
<!--
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
<!--
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
50
|
+
<hr/>
|
51
|
+
<div v-if="cookieOptions.optional" class="flex-container vertical">
|
52
|
+
<CmdCustomHeadline v-if="cmdBoxOptionalCookies?.showHeadline" :headline-text="cmdBoxOptionalCookies?.headlineText" :headline-level="cmdBoxOptionalCookies?.headlineLevel "/>
|
53
|
+
<!-- begin CmdBox -->
|
54
|
+
<CmdBox v-for="(cookie, index) in cookieOptions.optional.cookies"
|
55
|
+
:useSlots="['header', 'body']"
|
56
|
+
v-bind="cmdBoxOptionalCookies"
|
57
|
+
:key="index"
|
58
|
+
>
|
59
|
+
<template v-slot:header>
|
60
|
+
<!-- begin CmdSwitchButton -->
|
61
|
+
<CmdSwitchButton
|
62
|
+
type="checkbox"
|
63
|
+
:id="cookie.id"
|
64
|
+
:labelText="cookie.labelText"
|
65
|
+
v-model="cookie.checked"
|
66
|
+
:status="cookie.status"
|
67
|
+
/>
|
68
|
+
<!-- end CmdSwitchButton -->
|
69
|
+
</template>
|
70
|
+
<template v-slot:body>
|
71
|
+
<p v-if="cookie.description">{{ cookie.description }}</p>
|
72
|
+
<p v-if="cookie.linkDataPrivacy">
|
73
|
+
{{ cookie.linkDataPrivacy.label }}
|
74
|
+
<a @click="openDataPrivacy"
|
75
|
+
:href="cookie.linkDataPrivacy.link"
|
76
|
+
:target="cookie.linkDataPrivacy.target">
|
77
|
+
{{ cookie.linkDataPrivacy.linkText }}
|
78
|
+
</a>
|
79
|
+
</p>
|
80
|
+
<div v-if="dataPrivacyContent" v-html="dataPrivacyContent"></div>
|
81
|
+
</template>
|
82
|
+
</CmdBox>
|
83
|
+
<!-- end CmdBox -->
|
80
84
|
</div>
|
81
85
|
</slot>
|
82
86
|
<!-- end slot for cookie-options -->
|
@@ -87,7 +91,7 @@
|
|
87
91
|
|
88
92
|
<!-- begin button-wrapper for 'accept'-buttons -->
|
89
93
|
<div class="button-wrapper align-center">
|
90
|
-
<button
|
94
|
+
<button v-if="buttonLabelAcceptCurrentSettings" type="button" @click="acceptCookies('currentSettings')">
|
91
95
|
<span>{{ buttonLabelAcceptCurrentSettings }}</span>
|
92
96
|
</button>
|
93
97
|
<button v-if="buttonLabelAcceptAllCookies" type="button" class="primary" @click="acceptCookies('allCookies')">
|
@@ -101,14 +105,16 @@
|
|
101
105
|
|
102
106
|
<script>
|
103
107
|
// import components
|
108
|
+
import CmdBox from "./CmdBox"
|
104
109
|
import CmdCustomHeadline from "./CmdCustomHeadline"
|
105
|
-
|
110
|
+
import CmdSwitchButton from "./CmdSwitchButton"
|
106
111
|
|
107
112
|
export default {
|
108
113
|
name: "CmdCookieDisclaimer",
|
109
114
|
components: {
|
110
|
-
|
111
|
-
|
115
|
+
CmdBox,
|
116
|
+
CmdCustomHeadline,
|
117
|
+
CmdSwitchButton
|
112
118
|
},
|
113
119
|
data() {
|
114
120
|
return {
|
@@ -118,11 +124,45 @@ export default {
|
|
118
124
|
},
|
119
125
|
props: {
|
120
126
|
/**
|
121
|
-
* properties for CmdCustomHeadline-component
|
127
|
+
* properties for CmdCustomHeadline-component at top of cookie disclaimer
|
122
128
|
*/
|
123
|
-
|
129
|
+
cmdCustomHeadlineCookieDisclaimer: {
|
124
130
|
type: Object,
|
125
|
-
|
131
|
+
default() {
|
132
|
+
return {
|
133
|
+
show: true,
|
134
|
+
headlineText: "Cookie disclaimer",
|
135
|
+
headlineLevel: 2
|
136
|
+
}
|
137
|
+
}
|
138
|
+
},
|
139
|
+
/**
|
140
|
+
* property for CmdBox-component surrounding the required cookies
|
141
|
+
*/
|
142
|
+
cmdBoxRequiredCookies: {
|
143
|
+
type: Object,
|
144
|
+
default() {
|
145
|
+
return {
|
146
|
+
collapsible: true,
|
147
|
+
showHeadline: true,
|
148
|
+
headlineText: "Required cookies",
|
149
|
+
headlineLevel: 3
|
150
|
+
}
|
151
|
+
}
|
152
|
+
},
|
153
|
+
/**
|
154
|
+
* property for CmdBox-component surrounding the optional cookies
|
155
|
+
*/
|
156
|
+
cmdBoxOptionalCookies: {
|
157
|
+
type: Object,
|
158
|
+
default() {
|
159
|
+
return {
|
160
|
+
collapsible: true,
|
161
|
+
showHeadline: true,
|
162
|
+
headlineText: "Optional cookies",
|
163
|
+
headlineLevel: 3
|
164
|
+
}
|
165
|
+
}
|
126
166
|
},
|
127
167
|
/**
|
128
168
|
* list of cookie-options
|
@@ -175,6 +215,12 @@ export default {
|
|
175
215
|
bottom: 0;
|
176
216
|
top: auto;
|
177
217
|
|
218
|
+
.cmd-box {
|
219
|
+
.box-body {
|
220
|
+
padding: var(--default-padding);
|
221
|
+
}
|
222
|
+
}
|
223
|
+
|
178
224
|
h1 {
|
179
225
|
text-align: center;
|
180
226
|
}
|
@@ -191,22 +237,6 @@ export default {
|
|
191
237
|
margin-bottom: var(--default-margin);
|
192
238
|
}
|
193
239
|
|
194
|
-
.cmd-accordion {
|
195
|
-
.accordion-headline {
|
196
|
-
&:hover, &:active, &:focus {
|
197
|
-
label, .label {
|
198
|
-
span {
|
199
|
-
color: var(--pure-white) !important;
|
200
|
-
}
|
201
|
-
}
|
202
|
-
}
|
203
|
-
}
|
204
|
-
|
205
|
-
.toggle-switch {
|
206
|
-
display: flex;
|
207
|
-
}
|
208
|
-
}
|
209
|
-
|
210
240
|
p {
|
211
241
|
a {
|
212
242
|
text-decoration: underline;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<template>
|
2
|
-
<
|
2
|
+
<div :class="['cmd-custom-headline', { 'has-pre-headline-text': preHeadlineText}]">
|
3
3
|
<span v-if="iconClass" :class="iconClass"></span>
|
4
4
|
<div v-if="preHeadlineText">
|
5
5
|
<span class="pre-headline-text">{{ preHeadlineText }}</span>
|
@@ -10,7 +10,7 @@
|
|
10
10
|
<component v-else :is="getHeadlineTag">
|
11
11
|
<slot>{{ headlineText }}</slot>
|
12
12
|
</component>
|
13
|
-
</
|
13
|
+
</div>
|
14
14
|
</template>
|
15
15
|
|
16
16
|
<script>
|
@@ -22,7 +22,7 @@ export default {
|
|
22
22
|
*/
|
23
23
|
headlineText: {
|
24
24
|
type: String,
|
25
|
-
required:
|
25
|
+
required: false
|
26
26
|
},
|
27
27
|
/**
|
28
28
|
* level for headline
|
@@ -8,13 +8,13 @@
|
|
8
8
|
'has-state': validationStatus && validationStatus !== 'none'
|
9
9
|
}
|
10
10
|
]"
|
11
|
-
:aria-labelledby="
|
11
|
+
:aria-labelledby="labelId"
|
12
12
|
:aria-required="$attrs.required !== undefined"
|
13
13
|
ref="fakeselect"
|
14
14
|
>
|
15
15
|
<span v-if="showLabel">
|
16
16
|
<!-- begin label -->
|
17
|
-
<span>
|
17
|
+
<span :id="labelId">
|
18
18
|
{{ labelText }}<sup v-if="$attrs.required !== undefined">*</sup>
|
19
19
|
</span>
|
20
20
|
<!-- end label -->
|
@@ -149,6 +149,9 @@
|
|
149
149
|
</template>
|
150
150
|
|
151
151
|
<script>
|
152
|
+
// import utils
|
153
|
+
import {createUuid} from "../utils/common.js"
|
154
|
+
|
152
155
|
// import mixins
|
153
156
|
import I18n from "../mixins/I18n"
|
154
157
|
import DefaultMessageProperties from "../mixins/CmdBox/DefaultMessageProperties"
|
@@ -327,6 +330,13 @@ export default {
|
|
327
330
|
},
|
328
331
|
selectAllOptionsIcon() {
|
329
332
|
return "icon-check"
|
333
|
+
},
|
334
|
+
// get ID for accessibility
|
335
|
+
labelId() {
|
336
|
+
if(this.$attrs.id !== undefined) {
|
337
|
+
return this.$attrs.id
|
338
|
+
}
|
339
|
+
return "label-" + createUuid()
|
330
340
|
}
|
331
341
|
},
|
332
342
|
mounted() {
|
@@ -13,7 +13,7 @@
|
|
13
13
|
off: colored && !isChecked,
|
14
14
|
'has-state': validationStatus
|
15
15
|
}]"
|
16
|
-
:for="
|
16
|
+
:for="labelId"
|
17
17
|
ref="label">
|
18
18
|
|
19
19
|
<!-- begin label-text (+ required asterisk) -->
|
@@ -50,17 +50,17 @@
|
|
50
50
|
<template
|
51
51
|
v-if="element === 'input' && $attrs.type !== 'checkbox' && $attrs.type !== 'radio' && $attrs.type !== 'search'">
|
52
52
|
<input v-bind="$attrs"
|
53
|
-
:id="
|
53
|
+
:id="labelId"
|
54
54
|
:class="htmlClass"
|
55
55
|
@focus="tooltip = true"
|
56
56
|
@blur="onBlur"
|
57
57
|
@input="onInput"
|
58
58
|
@mouseover="datalistFocus"
|
59
59
|
@keyup="checkForCapsLock"
|
60
|
-
:autocomplete="
|
61
|
-
:list="datalist ? datalist.id :
|
60
|
+
:autocomplete="autocomplete"
|
61
|
+
:list="datalist ? datalist.id : null"
|
62
62
|
:value="modelValue"
|
63
|
-
:maxlength="
|
63
|
+
:maxlength="getMaxLength()"
|
64
64
|
ref="input"
|
65
65
|
/>
|
66
66
|
</template>
|
@@ -92,27 +92,24 @@
|
|
92
92
|
@change="onChange"
|
93
93
|
@blur="onBlur"
|
94
94
|
:checked="isChecked"
|
95
|
-
:role="$attrs.type"
|
96
|
-
:aria-checked="isChecked"
|
97
95
|
:value="inputValue"
|
98
96
|
:class="[htmlClass, validationStatus, { 'replace-input-type': replaceInputType, 'toggle-switch': toggleSwitch }]"
|
99
|
-
:id="
|
97
|
+
:id="labelId"
|
100
98
|
:aria-invalid="validationStatus === 'error'"
|
101
|
-
:aria-describedby="`status-message-${id}`"
|
102
99
|
/>
|
103
|
-
|
104
|
-
<!-- begin labels for toggle-switch -->
|
105
100
|
<span v-if="!(onLabel && offLabel)" :class="{ hidden: !showLabel }">
|
106
101
|
<span v-if="labelText">{{ labelText }}<sup v-if="$attrs.required">*</sup></span>
|
107
102
|
</span>
|
103
|
+
|
104
|
+
<!-- begin labels for toggle-switch -->
|
108
105
|
<template v-else-if="onLabel && offLabel">
|
109
106
|
<span v-if="labelText">
|
110
107
|
<span>{{ labelText }}<sup v-if="$attrs.required">*</sup></span>
|
111
108
|
</span>
|
112
|
-
<
|
109
|
+
<span class="toggle-switch switch-label">
|
113
110
|
<span class="label">{{ onLabel }}</span>
|
114
111
|
<span class="label">{{ offLabel }}</span>
|
115
|
-
</
|
112
|
+
</span>
|
116
113
|
</template>
|
117
114
|
<slot v-else></slot>
|
118
115
|
<!-- end labels for toggle-switch -->
|
@@ -122,7 +119,7 @@
|
|
122
119
|
<!-- begin selectbox -->
|
123
120
|
<select v-if="element === 'select'"
|
124
121
|
v-bind="$attrs"
|
125
|
-
:id="
|
122
|
+
:id="labelId"
|
126
123
|
@blur="onBlur"
|
127
124
|
@change="$emit('update:modelValue', $event.target.value)">
|
128
125
|
<option v-for="(option, index) in selectOptions" :key="index" :value="option.value"
|
@@ -134,9 +131,9 @@
|
|
134
131
|
<!-- begin textarea -->
|
135
132
|
<textarea v-if="element === 'textarea'"
|
136
133
|
v-bind="$attrs"
|
137
|
-
:id="
|
134
|
+
:id="labelId"
|
138
135
|
:value="modelValue"
|
139
|
-
:maxlength="getMaxLength"
|
136
|
+
:maxlength="getMaxLength()"
|
140
137
|
@input="onInput"
|
141
138
|
@focus="tooltip = true"
|
142
139
|
@blur="onBlur">
|
@@ -150,15 +147,15 @@
|
|
150
147
|
<a v-if="iconDelete.show" href="#" @click.prevent="$emit('update:modelValue', '')" :class="iconDelete.iconClass" :title="iconDelete.tooltip"/>
|
151
148
|
<input
|
152
149
|
v-bind="$attrs"
|
153
|
-
:id="
|
150
|
+
:id="labelId"
|
154
151
|
@input="onInput"
|
155
152
|
:maxlength="$attrs.maxlength > 0 ? $attrs.maxlength : 255"
|
156
153
|
:value="modelValue"
|
157
154
|
/>
|
158
155
|
</div>
|
159
|
-
<
|
156
|
+
<a v-if="showSearchButton" href="#" class="button no-flex" :title="iconSearch.tooltip" @click.prevent="executeSearch">
|
160
157
|
<span :class="iconSearch.iconClass"></span>
|
161
|
-
</
|
158
|
+
</a>
|
162
159
|
</template>
|
163
160
|
</label>
|
164
161
|
<!-- end searchfield -->
|
@@ -215,6 +212,9 @@
|
|
215
212
|
</template>
|
216
213
|
|
217
214
|
<script>
|
215
|
+
// import utils
|
216
|
+
import {createUuid} from "../utils/common.js"
|
217
|
+
|
218
218
|
// import mixins
|
219
219
|
import I18n from "../mixins/I18n"
|
220
220
|
import DefaultMessageProperties from "../mixins/CmdBox/DefaultMessageProperties"
|
@@ -546,7 +546,40 @@ export default {
|
|
546
546
|
tooltip: "Info"
|
547
547
|
}
|
548
548
|
}
|
549
|
-
}
|
549
|
+
},
|
550
|
+
/**
|
551
|
+
* icon to toggle password-visibility
|
552
|
+
*
|
553
|
+
* element-property must me set to 'input'
|
554
|
+
* type-property must be set to 'password'
|
555
|
+
*
|
556
|
+
*/
|
557
|
+
iconPasswordVisible: {
|
558
|
+
type: Object,
|
559
|
+
default() {
|
560
|
+
return {
|
561
|
+
show: true,
|
562
|
+
iconClass: "icon-visible",
|
563
|
+
tooltip: "Show password"
|
564
|
+
}
|
565
|
+
}
|
566
|
+
},
|
567
|
+
/**
|
568
|
+
* icon to toggle password-visibility
|
569
|
+
*
|
570
|
+
* element-property must me set to 'input'
|
571
|
+
* type-property must be set to 'password'
|
572
|
+
*
|
573
|
+
*/
|
574
|
+
iconPasswordInvisible: {
|
575
|
+
type: Object,
|
576
|
+
default() {
|
577
|
+
return {
|
578
|
+
show: true,
|
579
|
+
iconClass: "icon-not-visible",
|
580
|
+
}
|
581
|
+
}
|
582
|
+
},
|
550
583
|
},
|
551
584
|
computed: {
|
552
585
|
buttonAttrs() {
|
@@ -598,6 +631,19 @@ export default {
|
|
598
631
|
return this.getMessage("cmdformelement.validationTooltip.caps_lock_is_activated")
|
599
632
|
}
|
600
633
|
return this.getMessage("cmdformelement.validationTooltip.open_field_requirements")
|
634
|
+
},
|
635
|
+
autocomplete() {
|
636
|
+
if(this.$attrs.type !== 'file') {
|
637
|
+
return this.datalist ? 'off' : 'on'
|
638
|
+
}
|
639
|
+
return null
|
640
|
+
},
|
641
|
+
// get ID for accessibility
|
642
|
+
labelId() {
|
643
|
+
if(this.$attrs.id !== undefined) {
|
644
|
+
return this.$attrs.id
|
645
|
+
}
|
646
|
+
return "label-" + createUuid()
|
601
647
|
}
|
602
648
|
},
|
603
649
|
methods: {
|
@@ -605,7 +651,15 @@ export default {
|
|
605
651
|
return this.$refs.label
|
606
652
|
},
|
607
653
|
getMaxLength() {
|
608
|
-
|
654
|
+
if (this.$attrs.element === 'textarea') {
|
655
|
+
return this.$attrs.maxlength > 0 ? this.$attrs.maxlength : 5000
|
656
|
+
}
|
657
|
+
|
658
|
+
if (this.$attrs.type !== 'file') {
|
659
|
+
return this.$attrs.maxlength > 0 ? this.$attrs.maxlength : 255
|
660
|
+
}
|
661
|
+
|
662
|
+
return null
|
609
663
|
},
|
610
664
|
onBlur(event) {
|
611
665
|
// check if surrounding form with data-use-validation exists
|
@@ -678,6 +732,9 @@ export default {
|
|
678
732
|
hidePassword() {
|
679
733
|
this.$refs.input.nextElementSibling.classList.replace(this.iconPasswordInvisible.iconClass, this.iconPasswordVisible.iconClass)
|
680
734
|
this.$refs.input.setAttribute("type", "password")
|
735
|
+
},
|
736
|
+
executeSearch() {
|
737
|
+
this.$emit("search", this.value)
|
681
738
|
}
|
682
739
|
},
|
683
740
|
watch: {
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<template>
|
2
|
+
<div class="cmd-input-group">
|
3
|
+
<span :class="['label', { hidden: !showLabel, inline: labelInline }]">{{ labelText }}</span>
|
4
|
+
<div class="flex-container no-flex">
|
5
|
+
<slot></slot>
|
6
|
+
</div>
|
7
|
+
</div>
|
8
|
+
</template>
|
9
|
+
|
10
|
+
<script>
|
11
|
+
export default {
|
12
|
+
props: {
|
13
|
+
/**
|
14
|
+
* toggle label-text visibility
|
15
|
+
*/
|
16
|
+
showLabel: {
|
17
|
+
type: Boolean,
|
18
|
+
default: true
|
19
|
+
},
|
20
|
+
/**
|
21
|
+
* label-text for input-group
|
22
|
+
*
|
23
|
+
* @requiredForAccessibility: true
|
24
|
+
*/
|
25
|
+
labelText: {
|
26
|
+
type: String,
|
27
|
+
required: true
|
28
|
+
},
|
29
|
+
/**
|
30
|
+
* toggle label-position (inline/left of input-elements or above input-elements)
|
31
|
+
*/
|
32
|
+
labelInline: {
|
33
|
+
type: Boolean,
|
34
|
+
default: false
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}
|
38
|
+
</script>
|
@@ -16,7 +16,7 @@
|
|
16
16
|
:name="cmdFormElementUsername.name"
|
17
17
|
:id="cmdFormElementUsername.id"
|
18
18
|
v-model="username"
|
19
|
-
:
|
19
|
+
:fieldIconClass="cmdFormElementUsername.innerIconClass"
|
20
20
|
:labelText="cmdFormElementUsername.labelText"
|
21
21
|
:placeholder="cmdFormElementUsername.placeholder"
|
22
22
|
/>
|
@@ -28,7 +28,7 @@
|
|
28
28
|
type="password"
|
29
29
|
:name="cmdFormElementPassword.name"
|
30
30
|
:id="cmdFormElementPassword.id"
|
31
|
-
:
|
31
|
+
:fieldIconClass="cmdFormElementPassword.innerIconClass"
|
32
32
|
v-model="password"
|
33
33
|
:labelText="cmdFormElementPassword.labelText"
|
34
34
|
:placeholder="cmdFormElementPassword.placeholder"
|
@@ -133,7 +133,7 @@
|
|
133
133
|
<CmdFormElement
|
134
134
|
element="input"
|
135
135
|
type="email"
|
136
|
-
:
|
136
|
+
:fieldIconClass="cmdFormElementSendLogin.innerIconClass"
|
137
137
|
:labelText="cmdFormElementSendLogin.labelText"
|
138
138
|
:placeholder="cmdFormElementSendLogin.placeholder"
|
139
139
|
:name="cmdFormElementSendLogin.name"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<template>
|
2
2
|
<div :class="['label', 'multiple-switch', {disabled: status === 'disabled', error: status === 'error'}]">
|
3
|
-
<span :class="{hidden: !
|
3
|
+
<span :class="{hidden: !showLabel}">{{ labelText }}</span>
|
4
4
|
<span class="flex-container no-gap no-flex">
|
5
5
|
<label :class="{disabled: status === 'disabled'}" :for="multipleswitch.id"
|
6
6
|
v-for="(multipleswitch, index) in multipleSwitches" :key="index">
|
@@ -81,7 +81,7 @@ export default {
|
|
81
81
|
z-index: 300;
|
82
82
|
}
|
83
83
|
|
84
|
-
header, .cmd-main-navigation nav, .cmd-
|
84
|
+
header, .cmd-main-navigation nav, .cmd-list-of-links > ul {
|
85
85
|
max-width: var(--max-width);
|
86
86
|
margin: 0 auto;
|
87
87
|
padding: 0 var(--default-padding);
|
@@ -92,6 +92,8 @@ export default {
|
|
92
92
|
}
|
93
93
|
|
94
94
|
header {
|
95
|
+
padding: calc(var(--default-padding) * 2) 0;
|
96
|
+
|
95
97
|
&.flex-container {
|
96
98
|
width: 100%;
|
97
99
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<template>
|
2
2
|
<div class="cmd-tabs">
|
3
|
-
<ul :class="{'stretch-tabs' : stretchTabs}">
|
3
|
+
<ul :class="{'stretch-tabs' : stretchTabs}" role="tablist">
|
4
4
|
<li :class="{active : showTab === index}" v-for="(tab, index) in tabs" :key="index" role="tab">
|
5
5
|
<a @click.prevent="setActiveTab(index)" :title="!tab.name ? tab.tooltip : false">
|
6
6
|
<span v-if="tab.iconClass">{{ tab.iconClass }}</span>
|