comand-component-library 3.1.25 → 3.1.29
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.umd.min.js +1 -1
- package/package.json +1 -1
- package/src/App.vue +5 -4
- package/src/assets/data/accordion.json +12 -3
- package/src/assets/data/top-header-navigation.json +15 -9
- package/src/components/CmdAccordion.vue +37 -22
- package/src/components/CmdFormElement.vue +72 -17
- package/src/components/CmdSlideButton.vue +16 -5
- package/src/components/CmdSlideshow.vue +13 -10
- package/src/components/CmdSwitchButton.vue +44 -1
- package/src/components/CmdSystemMessage.vue +32 -11
- package/src/components/CmdTable.vue +38 -20
- package/src/components/CmdTabs.vue +12 -3
- package/src/components/CmdThumbnailScroller.vue +39 -17
- package/src/components/CmdTooltip.vue +3 -0
- package/src/components/CmdTopHeaderNavigation.vue +10 -3
- package/src/components/CmdUploadForm.vue +26 -1
- package/src/components/CmdWidthLimitationWrapper.vue +26 -3
package/package.json
CHANGED
package/src/App.vue
CHANGED
@@ -41,7 +41,6 @@
|
|
41
41
|
<li><a href="#section-upload-form">Upload-Form</a></li>
|
42
42
|
</ul>
|
43
43
|
</div>
|
44
|
-
|
45
44
|
<hr/>
|
46
45
|
</CmdWidthLimitationWrapper>
|
47
46
|
|
@@ -65,13 +64,14 @@
|
|
65
64
|
closeIconClass="icon-single-arrow-down"
|
66
65
|
ref="accordionGroup2"
|
67
66
|
/>
|
68
|
-
<h3>Customized headline-level</h3>
|
67
|
+
<h3>Customized headline-level (without transition of content)</h3>
|
69
68
|
<CmdAccordion :accordionData="accordionData.accordionData2"
|
70
69
|
toggleMode="multiple"
|
71
70
|
tooltip="Click to toggle content"
|
72
71
|
openIconClass="icon-single-arrow-up"
|
73
72
|
closeIconClass="icon-single-arrow-down"
|
74
73
|
accordion-headline-level="h4"
|
74
|
+
:use-transition="false"
|
75
75
|
/>
|
76
76
|
<h3>Data given by slots</h3>
|
77
77
|
<CmdAccordion :accordionData="1">
|
@@ -137,6 +137,7 @@
|
|
137
137
|
<CmdFormElement labelText="Input for selectbox:"
|
138
138
|
element="select"
|
139
139
|
:status="formElementStatus"
|
140
|
+
v-model:value="selectedOption"
|
140
141
|
:selectOptions="selectOptions"
|
141
142
|
/>
|
142
143
|
<CmdFormElement labelText="Input for datalist:"
|
@@ -904,6 +905,7 @@ export default {
|
|
904
905
|
multipleSwitchCheckbox: ['b'],
|
905
906
|
multipleSwitchRadio: 'c',
|
906
907
|
fancyBoxCookieDisclaimer: false,
|
908
|
+
selectedOption: "2",
|
907
909
|
selectOptions: [
|
908
910
|
{
|
909
911
|
text: "Option 1",
|
@@ -911,8 +913,7 @@ export default {
|
|
911
913
|
},
|
912
914
|
{
|
913
915
|
text: "Option 2",
|
914
|
-
value: "2"
|
915
|
-
selected: true
|
916
|
+
value: "2"
|
916
917
|
},
|
917
918
|
{
|
918
919
|
text: "Option 3",
|
@@ -2,19 +2,28 @@
|
|
2
2
|
"accordionData1": [
|
3
3
|
{
|
4
4
|
"headline": "First",
|
5
|
-
"
|
5
|
+
"icon": {
|
6
|
+
"iconClass": "icon-globe",
|
7
|
+
"tooltip": "Globe"
|
8
|
+
},
|
6
9
|
"content": "Text 1",
|
7
10
|
"status": false
|
8
11
|
},
|
9
12
|
{
|
10
13
|
"headline": "Second",
|
11
|
-
"
|
14
|
+
"icon": {
|
15
|
+
"iconClass": "icon-user-profile",
|
16
|
+
"tooltip": "User profile"
|
17
|
+
},
|
12
18
|
"content": "Text 2",
|
13
19
|
"status": true
|
14
20
|
},
|
15
21
|
{
|
16
22
|
"headline": "Third",
|
17
|
-
"
|
23
|
+
"icon": {
|
24
|
+
"iconClass": "icon-home",
|
25
|
+
"tooltip": "Home"
|
26
|
+
},
|
18
27
|
"content": "Text 3",
|
19
28
|
"status": false
|
20
29
|
}
|
@@ -1,21 +1,27 @@
|
|
1
1
|
[
|
2
2
|
{
|
3
|
-
"
|
3
|
+
"linkType": "href",
|
4
4
|
"path": "http://www.comand-cms.com",
|
5
5
|
"target": "_blank",
|
6
|
-
"
|
7
|
-
|
6
|
+
"icon": {
|
7
|
+
"iconClass": "icon-globe",
|
8
|
+
"tooltip": "CoManD-CMS"
|
9
|
+
}
|
8
10
|
},
|
9
11
|
{
|
10
|
-
"
|
12
|
+
"linkType": "href",
|
11
13
|
"path": "#anchor-section4",
|
12
|
-
"
|
13
|
-
|
14
|
+
"icon": {
|
15
|
+
"iconClass": "icon-mail",
|
16
|
+
"tooltip": "Contact"
|
17
|
+
}
|
14
18
|
},
|
15
19
|
{
|
16
|
-
"
|
20
|
+
"linkType": "href",
|
17
21
|
"path": "#anchor-section3",
|
18
|
-
"
|
19
|
-
|
22
|
+
"icon": {
|
23
|
+
"iconClass": "icon-user-profile",
|
24
|
+
"tooltip": "Login"
|
25
|
+
}
|
20
26
|
}
|
21
27
|
]
|
@@ -1,20 +1,20 @@
|
|
1
1
|
<template>
|
2
2
|
<div :class="['cmd-accordion flex-container vertical', {'no-gap' : !gapBetween, 'active' : active}]">
|
3
3
|
<div v-for="(accordionContent, index) in accordion" :key="index">
|
4
|
-
<a v-if="!useCustomHeader" href="#" :title="tooltip" @click.prevent="toggleContentVisibility(accordionContent)">
|
4
|
+
<a v-if="!useCustomHeader" href="#" :title="accordionContent.status ? iconOpen.icon.tooltip : iconClosed.icon.tooltip" @click.prevent="toggleContentVisibility(accordionContent)">
|
5
5
|
<slot :name="'accordionHeadline' + index">
|
6
6
|
<component :is="accordionHeadlineLevel">
|
7
|
-
<span v-if="accordionContent.iconClass" :class="accordionContent.iconClass"></span>
|
7
|
+
<span v-if="accordionContent.icon && accordionContent.icon.iconClass" :class="accordionContent.icon.iconClass" :title="accordionContent.icon.tooltip"></span>
|
8
8
|
<span v-if="accordionContent.headline">{{ accordionContent.headline }}</span>
|
9
9
|
</component>
|
10
10
|
</slot>
|
11
|
-
<span class="toggle-icon" :class="[accordionContent.status ?
|
11
|
+
<span class="toggle-icon" :class="[accordionContent.status ? iconOpen.icon.iconClass : iconClosed.icon.iconClass]"></span>
|
12
12
|
</a>
|
13
13
|
<a v-else href="#" :title="tooltip" @click.prevent="toggleContentVisibility(accordionContent)">
|
14
14
|
<slot :name="'customHeadline' + index"><p>{{ accordionContent.headline }}</p></slot>
|
15
|
-
<span class="toggle-icon" :class="[accordionContent.status ?
|
15
|
+
<span class="toggle-icon" :class="[accordionContent.status ? iconOpen.icon.iconClass : iconClosed.icon.iconClass]"></span>
|
16
16
|
</a>
|
17
|
-
<transition name="
|
17
|
+
<transition :name="toggleTransition">
|
18
18
|
<div class="accordion-content" v-if="accordionContent.status" aria-expanded="true">
|
19
19
|
<slot :name="'accordionContent' + index">
|
20
20
|
<p>{{ accordionContent.content }}</p>
|
@@ -36,9 +36,12 @@ export default {
|
|
36
36
|
},
|
37
37
|
props: {
|
38
38
|
/**
|
39
|
-
*
|
39
|
+
* use transition to expand accordion-content
|
40
40
|
*/
|
41
|
-
|
41
|
+
useTransition: {
|
42
|
+
type: Boolean,
|
43
|
+
default: true
|
44
|
+
},
|
42
45
|
/**
|
43
46
|
* toggle if mode if only one accordion can be opened (or multiple ones)
|
44
47
|
*
|
@@ -87,25 +90,37 @@ export default {
|
|
87
90
|
required: true
|
88
91
|
},
|
89
92
|
/**
|
90
|
-
*
|
93
|
+
* icon to expand an accordion
|
91
94
|
*/
|
92
|
-
|
93
|
-
type:
|
94
|
-
default:
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
95
|
+
iconOpen: {
|
96
|
+
type: Object,
|
97
|
+
default: function() {
|
98
|
+
return {
|
99
|
+
icon: {
|
100
|
+
iconClass: "icon-single-arrow-up",
|
101
|
+
tooltip: "Close content"
|
102
|
+
}
|
103
|
+
}
|
104
|
+
},
|
102
105
|
},
|
103
106
|
/**
|
104
|
-
*
|
107
|
+
* icon to collapse an accordion
|
105
108
|
*/
|
106
|
-
|
107
|
-
type:
|
108
|
-
|
109
|
+
iconClosed: {
|
110
|
+
type: Object,
|
111
|
+
default: function() {
|
112
|
+
return {
|
113
|
+
icon: {
|
114
|
+
iconClass: "icon-single-arrow-down",
|
115
|
+
tooltip: "Show content"
|
116
|
+
}
|
117
|
+
}
|
118
|
+
}
|
119
|
+
}
|
120
|
+
},
|
121
|
+
computed: {
|
122
|
+
toggleTransition() {
|
123
|
+
return this.useTransition && 'fade'
|
109
124
|
}
|
110
125
|
},
|
111
126
|
methods: {
|
@@ -1,18 +1,19 @@
|
|
1
1
|
<template>
|
2
2
|
<label v-if="(element === 'input' || element === 'select' || element === 'textarea')"
|
3
3
|
:for="id"
|
4
|
-
:class="['cmd-form-element', status, {'inline' :
|
4
|
+
:class="['cmd-form-element', status, {'inline' : displayLabelInline, 'checked': isChecked}]"
|
5
5
|
ref="label">
|
6
6
|
<!-- begin label (+ required) -->
|
7
7
|
<span v-if="labelText && $attrs.type !== 'checkbox' && $attrs.type !== 'radio'"
|
8
|
-
:class="{'hidden':
|
9
|
-
|
10
|
-
|
8
|
+
:class="{'hidden': hideLabel}">
|
9
|
+
<span>{{ labelText }}</span>
|
10
|
+
<sup v-if="$attrs.required">*</sup>
|
11
|
+
</span>
|
11
12
|
<!-- end label (+ required) -->
|
12
13
|
|
13
14
|
<!-- begin icon -->
|
14
|
-
<span v-if="$attrs.type !== 'checkbox' && $attrs.type !== 'radio' &&
|
15
|
-
:class="[status,
|
15
|
+
<span v-if="$attrs.type !== 'checkbox' && $attrs.type !== 'radio' && innerIconClass" class="place-inside"
|
16
|
+
:class="[status, innerIconClass]"></span>
|
16
17
|
<!-- end icon -->
|
17
18
|
|
18
19
|
<!-- begin inputfield -->
|
@@ -69,7 +70,7 @@
|
|
69
70
|
@change="$emit('input', $event.target.value)"
|
70
71
|
>
|
71
72
|
<option v-for="(option, index) in selectOptions" :key="index" :value="option.value"
|
72
|
-
:selected="option.
|
73
|
+
:selected="option.value === value">{{ option.text }}
|
73
74
|
</option>
|
74
75
|
</select>
|
75
76
|
<!-- end selectbox -->
|
@@ -127,11 +128,18 @@ export default {
|
|
127
128
|
}
|
128
129
|
},
|
129
130
|
props: {
|
131
|
+
/**
|
132
|
+
* set value for v-model
|
133
|
+
*/
|
130
134
|
value: {
|
131
135
|
type: [String, Boolean, Array, Number],
|
132
|
-
required: false,
|
133
136
|
default: ""
|
134
137
|
},
|
138
|
+
/**
|
139
|
+
* set type of native form-element
|
140
|
+
*
|
141
|
+
* values: input, select, textarea, button
|
142
|
+
*/
|
135
143
|
element: {
|
136
144
|
type: String,
|
137
145
|
validator(value) {
|
@@ -142,67 +150,114 @@ export default {
|
|
142
150
|
},
|
143
151
|
required: true
|
144
152
|
},
|
153
|
+
/**
|
154
|
+
* hide label (and asterisk if mandatory)
|
155
|
+
*
|
156
|
+
* label may not be removed, because it is required for accessibility
|
157
|
+
*/
|
145
158
|
hideLabel: {
|
146
159
|
type: Boolean,
|
147
160
|
default: false
|
148
161
|
},
|
162
|
+
/**
|
163
|
+
* text for label
|
164
|
+
*/
|
149
165
|
labelText: {
|
150
166
|
type: String,
|
151
167
|
required: false
|
152
168
|
},
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
},
|
169
|
+
/**
|
170
|
+
* allow checkbox/radio-buttons to get value from outside
|
171
|
+
*/
|
157
172
|
inputValue: {
|
158
|
-
/* allow checkbox/radiobuttons to get value from outside */
|
159
173
|
type: String,
|
160
174
|
required: false
|
161
175
|
},
|
162
|
-
|
176
|
+
/**
|
177
|
+
* for replacing native checkboxes/radio-buttons by custom ones (based on frontend-framework)
|
178
|
+
*/
|
163
179
|
replaceInputType: {
|
164
180
|
type: Boolean,
|
165
181
|
default: false
|
166
182
|
},
|
183
|
+
/**
|
184
|
+
* set an optional class on native form-element (use native class="" on component ot set class on outer-component-element)
|
185
|
+
*
|
186
|
+
* may not be named as 'class' because it is a reserved keyword in JavaScript
|
187
|
+
*/
|
167
188
|
htmlClass: {
|
168
|
-
/* may not be named as 'class' because it is a reserved keyword in JavaScript */
|
169
189
|
type: String,
|
170
190
|
required: false
|
171
191
|
},
|
192
|
+
/**
|
193
|
+
* if for native form-element
|
194
|
+
*/
|
172
195
|
id: {
|
173
196
|
type: String,
|
174
197
|
required: false
|
175
198
|
},
|
199
|
+
/**
|
200
|
+
* set if a native datalist should be used
|
201
|
+
*/
|
176
202
|
datalist: {
|
177
203
|
type: Object,
|
178
204
|
required: false
|
179
205
|
},
|
206
|
+
/**
|
207
|
+
* list of options for selectbox
|
208
|
+
*
|
209
|
+
* element-property must be 'select'
|
210
|
+
*/
|
180
211
|
selectOptions: {
|
181
212
|
type: Array,
|
182
213
|
required: false
|
183
214
|
},
|
215
|
+
/**
|
216
|
+
* text for native button
|
217
|
+
*/
|
184
218
|
buttonText: {
|
185
219
|
type: String,
|
186
220
|
required: false
|
187
221
|
},
|
222
|
+
/**
|
223
|
+
* set icon for native button
|
224
|
+
*/
|
188
225
|
buttonIcon: {
|
189
226
|
type: Object,
|
190
227
|
default() {
|
191
228
|
return {}
|
192
229
|
}
|
193
230
|
},
|
231
|
+
/**
|
232
|
+
* set text for tooltip
|
233
|
+
*/
|
194
234
|
tooltipText: {
|
195
235
|
type: String,
|
196
236
|
required: false
|
197
237
|
},
|
198
|
-
|
238
|
+
/**
|
239
|
+
* set class for inner icon (icon placed 'inside' input/ left of input-text)
|
240
|
+
*
|
241
|
+
* element-property must be 'input' and type-property may not be checkbox or radio
|
242
|
+
*/
|
243
|
+
innerIconClass: {
|
199
244
|
type: String,
|
200
245
|
required: false
|
201
246
|
},
|
202
|
-
|
247
|
+
/**
|
248
|
+
* activate if label-text should be place inline/left of form-element (and not above)
|
249
|
+
*
|
250
|
+
* type-property may not be checkbox or radio
|
251
|
+
*/
|
252
|
+
displayLabelInline: {
|
203
253
|
type: Boolean,
|
204
254
|
required: false
|
205
255
|
},
|
256
|
+
/**
|
257
|
+
* set status for label and form-element
|
258
|
+
*
|
259
|
+
* values: error (red-styling), success (green-styling)
|
260
|
+
*/
|
206
261
|
status: {
|
207
262
|
type: String,
|
208
263
|
required: false
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<template>
|
2
2
|
<a href="#"
|
3
3
|
@click.prevent
|
4
|
-
:class="['cmd-slide-button', 'button',
|
5
|
-
:title="
|
4
|
+
:class="['cmd-slide-button', 'button', slideButtons.next ? 'next' : 'previous']"
|
5
|
+
:title="slideButtons.next ? slideButtons.next.tooltip : slideButtons.prev.tooltip">
|
6
6
|
<span
|
7
|
-
:class="
|
7
|
+
:class="slideButtons.next ? slideButtons.next.iconClass : slideButtons.prev.iconClass"></span>
|
8
8
|
</a>
|
9
9
|
</template>
|
10
10
|
|
@@ -15,9 +15,20 @@ export default {
|
|
15
15
|
/**
|
16
16
|
* set slide-button to "next" (= right), else it will be displayed as previous (=left) button
|
17
17
|
*/
|
18
|
-
|
18
|
+
slideButtons: {
|
19
19
|
type: Object,
|
20
|
-
|
20
|
+
default: function() {
|
21
|
+
return {
|
22
|
+
prev: {
|
23
|
+
iconClass: "icon-single-arrow-left",
|
24
|
+
tooltip: "Previous"
|
25
|
+
},
|
26
|
+
next: {
|
27
|
+
iconClass: "icon-single-arrow-right",
|
28
|
+
tooltip: "Next"
|
29
|
+
}
|
30
|
+
}
|
31
|
+
}
|
21
32
|
}
|
22
33
|
}
|
23
34
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<template>
|
2
2
|
<div class="cmd-slideshow" :class="{'full-width': fullWidth}">
|
3
3
|
<div class="inner-slideshow-wrapper" @mouseenter="pause = true" @mouseleave="pause = false">
|
4
|
-
<CmdSlideButton @click.prevent="showPrevItem" :
|
4
|
+
<CmdSlideButton @click.prevent="showPrevItem" :slideButtons="slideButtons.prev"/>
|
5
5
|
<transition name="fade">
|
6
6
|
<a v-if="currentItem.href" :href="currentItem.href" :key="index" :title="currentItem.title">
|
7
7
|
<figure v-if="currentItem && !useSlot" class="slideshow-item">
|
@@ -22,7 +22,7 @@
|
|
22
22
|
<slot :name="'item' + currentSlotItem"></slot>
|
23
23
|
</div>
|
24
24
|
</transition>
|
25
|
-
<CmdSlideButton @click.prevent="showNextItem" :
|
25
|
+
<CmdSlideButton @click.prevent="showNextItem" :slideButtons="slideButtons.next"/>
|
26
26
|
<ol v-if="showQuickLinkIcons">
|
27
27
|
<li v-for="(item, i) in slideshowItems" :key="i" :class="{active: i === index }">
|
28
28
|
<a href="#" @click.prevent="index = i" :aria-label="index"></a>
|
@@ -104,15 +104,18 @@ export default {
|
|
104
104
|
type: Object,
|
105
105
|
default() {
|
106
106
|
return {
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
107
|
+
next: {
|
108
|
+
next: {
|
109
|
+
"iconClass": "icon-single-arrow-right",
|
110
|
+
"tooltip": "Next"
|
111
|
+
}
|
111
112
|
},
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
113
|
+
prev: {
|
114
|
+
prev: {
|
115
|
+
"type": "prev",
|
116
|
+
"iconClass": "icon-single-arrow-left",
|
117
|
+
"tooltip": "Previous"
|
118
|
+
}
|
116
119
|
}
|
117
120
|
}
|
118
121
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<template>
|
2
|
-
<label :class="['toggle-switch',
|
2
|
+
<label :class="['cmd-switch-button', 'toggle-switch',
|
3
3
|
{'switch-label': onLabel && offLabel && !labelText,
|
4
4
|
'colored' : colored, 'on' : colored && isChecked,
|
5
5
|
'off' : colored && !isChecked, 'disabled': $attrs.disabled
|
@@ -19,38 +19,78 @@ export default {
|
|
19
19
|
name: "SwitchButton",
|
20
20
|
emits: ["update:value"],
|
21
21
|
props: {
|
22
|
+
/**
|
23
|
+
* set type for input
|
24
|
+
*
|
25
|
+
* values: checkbox, radio
|
26
|
+
*/
|
22
27
|
type: {
|
23
28
|
type: String,
|
24
29
|
required: true
|
25
30
|
},
|
31
|
+
/**
|
32
|
+
* set id for input
|
33
|
+
*
|
34
|
+
* required for accessibility
|
35
|
+
*
|
36
|
+
*/
|
26
37
|
id: {
|
27
38
|
type: String,
|
28
39
|
required: true
|
29
40
|
},
|
41
|
+
/**
|
42
|
+
* set name for input
|
43
|
+
*
|
44
|
+
* require for radio-buttons (and form-submit by browser)
|
45
|
+
*/
|
30
46
|
name: {
|
31
47
|
type: String,
|
32
48
|
required: false
|
33
49
|
},
|
50
|
+
/**
|
51
|
+
* value for v-model
|
52
|
+
*/
|
34
53
|
value: {
|
35
54
|
type: [String, Array, Boolean],
|
36
55
|
required: false
|
37
56
|
},
|
57
|
+
/**
|
58
|
+
* set value to pre-check toggle-switch
|
59
|
+
*/
|
38
60
|
inputValue: {
|
39
61
|
type: String,
|
40
62
|
required: false
|
41
63
|
},
|
64
|
+
/**
|
65
|
+
* text for label
|
66
|
+
*
|
67
|
+
* required if onLabel/offLabel are not set
|
68
|
+
*/
|
42
69
|
labelText: {
|
43
70
|
type: String,
|
44
71
|
required: false
|
45
72
|
},
|
73
|
+
/**
|
74
|
+
* text for on-label
|
75
|
+
*
|
76
|
+
* set to activate switch-label (=label is placed on toggle-switch (not behind))
|
77
|
+
*/
|
46
78
|
onLabel: {
|
47
79
|
type: String,
|
48
80
|
required: false
|
49
81
|
},
|
82
|
+
/**
|
83
|
+
* text for off-label
|
84
|
+
*
|
85
|
+
* set to activate switch-label (=label is placed on toggle-switch (not behind))
|
86
|
+
*/
|
50
87
|
offLabel: {
|
51
88
|
type: String,
|
52
89
|
required: false
|
53
90
|
},
|
91
|
+
/**
|
92
|
+
* set to true, if checkbox/radio-buttons should have green/checked and red/unchecked color-coding
|
93
|
+
*/
|
54
94
|
colored: {
|
55
95
|
type: Boolean,
|
56
96
|
required: false
|
@@ -88,6 +128,8 @@ export default {
|
|
88
128
|
</script>
|
89
129
|
|
90
130
|
<style lang="scss">
|
131
|
+
/* begin cmd-switch-button ------------------------------------------------------------------------------------------ */
|
132
|
+
/* no cmd-prefix-styling (class based on frontend-framework */
|
91
133
|
.toggle-switch {
|
92
134
|
&.switch-label {
|
93
135
|
&.colored {
|
@@ -123,4 +165,5 @@ export default {
|
|
123
165
|
}
|
124
166
|
}
|
125
167
|
}
|
168
|
+
/* end cmd-switch-button ------------------------------------------------------------------------------------------ */
|
126
169
|
</style>
|
@@ -1,20 +1,19 @@
|
|
1
1
|
<template>
|
2
2
|
<transition name="fade">
|
3
3
|
<div
|
4
|
-
class="cmd-system-message system-message"
|
5
|
-
:class="[{ 'full-width': fullWidth }, status]"
|
6
|
-
role="alert"
|
7
4
|
v-if="showSystemMessage"
|
5
|
+
:class="['cmd-system-message', 'system-message', { 'full-width': fullWidth }, status]"
|
6
|
+
role="alert"
|
8
7
|
>
|
9
8
|
<a
|
10
|
-
|
9
|
+
v-if="iconClose.iconClass"
|
10
|
+
:class="iconClose.iconClass"
|
11
11
|
href="#"
|
12
12
|
@click.prevent="showSystemMessage = false"
|
13
|
-
:title="
|
14
|
-
v-if="closeIcon.iconClass"
|
13
|
+
:title="iconClose.tooltip"
|
15
14
|
></a>
|
16
15
|
<h6>
|
17
|
-
<span
|
16
|
+
<span v-if="iconMessage && iconMessage.iconClass && iconMessage.show" :class="iconMessage.iconClass"></span>
|
18
17
|
<strong v-if="message">{{ message }}</strong>
|
19
18
|
</h6>
|
20
19
|
<slot></slot>
|
@@ -31,23 +30,45 @@ export default {
|
|
31
30
|
}
|
32
31
|
},
|
33
32
|
props: {
|
33
|
+
/**
|
34
|
+
* status of message
|
35
|
+
*
|
36
|
+
* values: error (red), warning (yellow), success (grenn), info (blue)
|
37
|
+
*/
|
34
38
|
status: {
|
35
39
|
type: String,
|
36
40
|
required: true
|
37
41
|
},
|
42
|
+
/**
|
43
|
+
* activate to stretch message-box as wide as parent container (else message-box is as wide as message)
|
44
|
+
*/
|
38
45
|
fullWidth: {
|
39
46
|
type: Boolean,
|
40
47
|
default: true
|
41
48
|
},
|
42
|
-
|
43
|
-
|
44
|
-
|
49
|
+
/**
|
50
|
+
* set icon-class for message (will be displayed left from
|
51
|
+
*/
|
52
|
+
iconMessage: {
|
53
|
+
type: Object,
|
54
|
+
default: function() {
|
55
|
+
return {
|
56
|
+
iconClass: "icon-warning",
|
57
|
+
show: true
|
58
|
+
}
|
59
|
+
}
|
45
60
|
},
|
61
|
+
/**
|
62
|
+
* the system-message-text
|
63
|
+
*/
|
46
64
|
message: {
|
47
65
|
type: String,
|
48
66
|
required: false
|
49
67
|
},
|
50
|
-
|
68
|
+
/**
|
69
|
+
* icon to close system-message
|
70
|
+
*/
|
71
|
+
iconClose: {
|
51
72
|
type: Object,
|
52
73
|
default: function () {
|
53
74
|
return {
|