comand-component-library 3.3.10 → 3.3.11
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/comand-component-library.css +1 -1
- package/dist/comand-component-library.umd.min.js +1 -1
- package/package.json +1 -1
- package/src/App.vue +2 -11
- package/src/assets/data/box-user.json +20 -4
- package/src/assets/data/image-gallery.json +8 -8
- package/src/components/CmdBox.vue +26 -2
- package/src/components/CmdFakeSelect.vue +1 -1
- package/src/components/CmdFancyBox.vue +102 -18
- package/src/components/CmdImageZoom.vue +4 -2
- package/src/components/CmdSiteHeader.vue +4 -18
- package/src/documentation/generated/CmdBoxPropertyDescriptions.json +14 -0
- package/src/documentation/generated/CmdFakeSelectPropertyDescriptions.json +7 -4
- package/src/documentation/generated/CmdFancyBoxPropertyDescriptions.json +10 -0
package/package.json
CHANGED
package/src/App.vue
CHANGED
@@ -998,16 +998,8 @@
|
|
998
998
|
<CmdWidthLimitationWrapper>
|
999
999
|
<h2 class="headline-demopage">Image-Zoom</h2>
|
1000
1000
|
<CmdImageZoom
|
1001
|
-
:imageSmall="
|
1002
|
-
|
1003
|
-
alt: 'Alternative text',
|
1004
|
-
tooltip: 'Tooltip'
|
1005
|
-
}"
|
1006
|
-
:imageLarge="{
|
1007
|
-
src: 'media/images/content-images/logo-business-edition-landscape.jpg',
|
1008
|
-
alt: 'Alternative text',
|
1009
|
-
tooltip: 'Tooltip'
|
1010
|
-
}"
|
1001
|
+
:imageSmall="imageData[0]"
|
1002
|
+
:imageLarge="imageData[0]"
|
1011
1003
|
/>
|
1012
1004
|
</CmdWidthLimitationWrapper>
|
1013
1005
|
<!-- end image-zoom ------------------------------------------------------------------------------------------------------------------------------------------------------->
|
@@ -1516,7 +1508,6 @@ export default {
|
|
1516
1508
|
CmdUploadForm,
|
1517
1509
|
CmdWidthLimitationWrapper
|
1518
1510
|
},
|
1519
|
-
|
1520
1511
|
data() {
|
1521
1512
|
return {
|
1522
1513
|
acceptedCookies: ["google-maps"],
|
@@ -1,13 +1,17 @@
|
|
1
1
|
[
|
2
2
|
{
|
3
3
|
"name": "User name 1",
|
4
|
-
"
|
5
|
-
|
6
|
-
|
7
|
-
},
|
4
|
+
"age": 35,
|
5
|
+
"gender": "m",
|
6
|
+
"imageSrc": "/media/images/user-images/fake-user-1.jpg",
|
8
7
|
"profession": "User profession",
|
9
8
|
"position": "User position",
|
10
9
|
"description": "User profile with image",
|
10
|
+
"tag": [
|
11
|
+
"Tagname",
|
12
|
+
"Long tag",
|
13
|
+
"One more tag"
|
14
|
+
],
|
11
15
|
"links": [
|
12
16
|
{
|
13
17
|
"path": "mailto:",
|
@@ -18,6 +22,9 @@
|
|
18
22
|
},
|
19
23
|
{
|
20
24
|
"name": "User name 2",
|
25
|
+
"age": 35,
|
26
|
+
"gender": "m",
|
27
|
+
"imageSrc": "/media/images/user-images/fake-user-2.jpg",
|
21
28
|
"profession": "User profession",
|
22
29
|
"position": "User position",
|
23
30
|
"description": "User description",
|
@@ -37,6 +44,9 @@
|
|
37
44
|
},
|
38
45
|
{
|
39
46
|
"name": "User name 3",
|
47
|
+
"age": 35,
|
48
|
+
"gender": "m",
|
49
|
+
"imageSrc": "/media/images/user-images/fake-user-3.jpg",
|
40
50
|
"profession": "User profession",
|
41
51
|
"position": "User position",
|
42
52
|
"description": "User with a long text as description that wraps over multiple lines",
|
@@ -61,6 +71,9 @@
|
|
61
71
|
},
|
62
72
|
{
|
63
73
|
"name": "User name 4",
|
74
|
+
"age": 35,
|
75
|
+
"gender": "m",
|
76
|
+
"imageSrc": "/media/images/user-images/fake-user-4.jpg",
|
64
77
|
"profession": "User profession",
|
65
78
|
"position": "User position",
|
66
79
|
"description": "User description",
|
@@ -85,6 +98,9 @@
|
|
85
98
|
},
|
86
99
|
{
|
87
100
|
"name": "User name 5",
|
101
|
+
"age": 35,
|
102
|
+
"gender": "m",
|
103
|
+
"imageSrc": "/media/images/user-images/fake-user-5.jpg",
|
88
104
|
"profession": "User profession",
|
89
105
|
"position": "User position",
|
90
106
|
"description": "User description",
|
@@ -1,8 +1,8 @@
|
|
1
1
|
[
|
2
2
|
{
|
3
3
|
"image": {
|
4
|
-
"src": "media/images/
|
5
|
-
"srcImageLarge": "media/images/
|
4
|
+
"src": "media/images/gallery-images/large/landscape-01.jpg",
|
5
|
+
"srcImageLarge": "media/images/gallery-images/large/landscape-01.jpg",
|
6
6
|
"alt": "Alternative text 1"
|
7
7
|
},
|
8
8
|
"figcaption": {
|
@@ -14,8 +14,8 @@
|
|
14
14
|
},
|
15
15
|
{
|
16
16
|
"image": {
|
17
|
-
"src": "media/images/
|
18
|
-
"srcImageLarge": "media/images/
|
17
|
+
"src": "media/images/gallery-images/large/landscape-02.jpg",
|
18
|
+
"srcImageLarge": "media/images/gallery-images/large/landscape-02.jpg",
|
19
19
|
"alt": "Alternative text 2"
|
20
20
|
},
|
21
21
|
"figcaption": {
|
@@ -27,8 +27,8 @@
|
|
27
27
|
},
|
28
28
|
{
|
29
29
|
"image": {
|
30
|
-
"src": "media/images/
|
31
|
-
"srcImageLarge": "media/images/
|
30
|
+
"src": "media/images/gallery-images/large/landscape-03.jpg",
|
31
|
+
"srcImageLarge": "media/images/gallery-images/large/landscape-03.jpg",
|
32
32
|
"alt": "Alternative text 3"
|
33
33
|
},
|
34
34
|
"figcaption": {
|
@@ -40,8 +40,8 @@
|
|
40
40
|
},
|
41
41
|
{
|
42
42
|
"image": {
|
43
|
-
"src": "media/images/
|
44
|
-
"srcImageLarge": "media/images/
|
43
|
+
"src": "media/images/gallery-images/large/landscape-04.jpg",
|
44
|
+
"srcImageLarge": "media/images/gallery-images/large/landscape-04.jpg",
|
45
45
|
"alt": "Alternative text 4"
|
46
46
|
},
|
47
47
|
"figcaption": {
|
@@ -123,11 +123,19 @@
|
|
123
123
|
<!-- end boxType 'product' -->
|
124
124
|
|
125
125
|
<!-- begin boxType 'user' -->
|
126
|
-
<div v-else-if="boxType === 'user' && user"
|
126
|
+
<div v-else-if="boxType === 'user' && user"
|
127
|
+
:class="[
|
128
|
+
'cmd-box box user',
|
129
|
+
profileType,
|
130
|
+
{
|
131
|
+
'stretch-vertically': stretchVertically,
|
132
|
+
'stretch-horizontally': stretchHorizontally
|
133
|
+
}
|
134
|
+
]">
|
127
135
|
<div class="box-header flex-container vertical">
|
128
136
|
<figure v-if="user.image">
|
129
137
|
<img :src="user.image.src" :alt="user.image.alt"/>
|
130
|
-
<figcaption>{{ user.name }}</figcaption>
|
138
|
+
<figcaption>{{ user.name }} <span v-if="user.age">, {{user.age}}</span></figcaption>
|
131
139
|
</figure>
|
132
140
|
<div v-else>
|
133
141
|
<span :class="defaultProfileIconClass" :title="user.name"></span>
|
@@ -139,6 +147,11 @@
|
|
139
147
|
<p v-if="user.position">{{ user.position }}</p>
|
140
148
|
<p v-if="user.description" class="description">{{ user.description }}</p>
|
141
149
|
</div>
|
150
|
+
<ul class="tags">
|
151
|
+
<li v-for="(tag, index) in user.tags" :key="index">
|
152
|
+
{{tag}}
|
153
|
+
</li>
|
154
|
+
</ul>
|
142
155
|
<div v-if="user.links" class="box-footer">
|
143
156
|
<CmdListOfLinks :links="user.links" orientation="horizontal" :useGap="false"/>
|
144
157
|
</div>
|
@@ -249,6 +262,17 @@ export default {
|
|
249
262
|
type: Object,
|
250
263
|
required: false
|
251
264
|
},
|
265
|
+
/**
|
266
|
+
* profile types for user-boxes
|
267
|
+
*
|
268
|
+
* @required: only available for boxtype===user
|
269
|
+
*
|
270
|
+
* @allowedValues: 'business', 'influencer', 'dating'
|
271
|
+
*/
|
272
|
+
profileType: {
|
273
|
+
type: String,
|
274
|
+
default: 'business'
|
275
|
+
},
|
252
276
|
/**
|
253
277
|
* activated if all content (incl. headline) is given by slot
|
254
278
|
*
|
@@ -17,25 +17,31 @@
|
|
17
17
|
|
18
18
|
<!-- begin button-wrapper -->
|
19
19
|
<div
|
20
|
-
v-if="(fancyboxOptions.printButtons
|
20
|
+
v-if="(fancyboxOptions.printButtons?.color || fancyboxOptions.printButtons?.grayscale) || fancyboxOptions.closeIcon"
|
21
21
|
class="button-wrapper no-flex"
|
22
22
|
> <!-- begin print buttons -->
|
23
|
-
<a v-if="
|
23
|
+
<a v-if="showPrintButtons && fancyboxOptions.printButtons?.color"
|
24
24
|
href="#"
|
25
25
|
class="button print-color"
|
26
|
-
:title="fancyboxOptions.printButtons.color
|
26
|
+
:title="fancyboxOptions.printButtons.color?.tooltip"
|
27
27
|
@click.prevent="printInGrayscale = false">
|
28
28
|
<!-- begin CmdIcon -->
|
29
|
-
<CmdIcon
|
29
|
+
<CmdIcon
|
30
|
+
:iconClass="fancyboxOptions.printButtons.color?.iconClass"
|
31
|
+
:type="fancyboxOptions.printButtons.color?.iconType"
|
32
|
+
/>
|
30
33
|
<!-- end CmdIcon -->
|
31
34
|
</a>
|
32
|
-
<a v-if="
|
35
|
+
<a v-if="showPrintButtons && fancyboxOptions.printButtons?.grayscale"
|
33
36
|
href="#"
|
34
37
|
class="button print-grayscale"
|
35
|
-
:title="fancyboxOptions.printButtons.grayscale
|
38
|
+
:title="fancyboxOptions.printButtons.grayscale?.tooltip"
|
36
39
|
@click.prevent="printInGrayscale = true">
|
37
40
|
<!-- begin CmdIcon -->
|
38
|
-
<CmdIcon
|
41
|
+
<CmdIcon
|
42
|
+
:iconClass="fancyboxOptions.printButtons.grayscale?.iconClass"
|
43
|
+
:type="fancyboxOptions.printButtons.grayscale?.iconType"
|
44
|
+
/>
|
39
45
|
<!-- end CmdIcon -->
|
40
46
|
</a>
|
41
47
|
<!-- end print buttons -->
|
@@ -49,7 +55,10 @@
|
|
49
55
|
ref="close-dialog"
|
50
56
|
@click.prevent="close">
|
51
57
|
<!-- begin CmdIcon -->
|
52
|
-
<CmdIcon
|
58
|
+
<CmdIcon
|
59
|
+
:iconClass="fancyboxOptions.closeIcon.iconClass"
|
60
|
+
:type="fancyboxOptions.closeIcon.iconType"
|
61
|
+
/>
|
53
62
|
<!-- end CmdIcon -->
|
54
63
|
</a>
|
55
64
|
<!-- end close-icon -->
|
@@ -86,6 +95,37 @@
|
|
86
95
|
<!-- end slot-content -->
|
87
96
|
</div>
|
88
97
|
</div>
|
98
|
+
|
99
|
+
<footer v-if="showSubmitButtons && fancyboxOptions.submitButtons" class="flex-container no-flex">
|
100
|
+
<!-- begin cancel-button -->
|
101
|
+
<button
|
102
|
+
v-if="fancyboxOptions.submitButtons?.cancel"
|
103
|
+
@click="cancel"
|
104
|
+
:title="fancyboxOptions.submitButtons.cancel?.tooltip">
|
105
|
+
<CmdIcon
|
106
|
+
v-if="fancyboxOptions.submitButtons.cancel?.iconClass"
|
107
|
+
:iconClass="fancyboxOptions.submitButtons.cancel?.iconClass"
|
108
|
+
:type="fancyboxOptions.submitButtons.cancel?.iconType"
|
109
|
+
/>
|
110
|
+
<span v-if="fancyboxOptions.submitButtons.cancel?.buttonText">{{fancyboxOptions.submitButtons.cancel?.buttonText}}</span>
|
111
|
+
</button>
|
112
|
+
<!-- end cancel-button -->
|
113
|
+
|
114
|
+
<!-- begin confirm-button -->
|
115
|
+
<button
|
116
|
+
v-if="fancyboxOptions.submitButtons?.confirm"
|
117
|
+
@click="confirm"
|
118
|
+
:title="fancyboxOptions.submitButtons.cancel?.tooltip">
|
119
|
+
<CmdIcon
|
120
|
+
v-if="fancyboxOptions.submitButtons.confirm?.iconClass"
|
121
|
+
:iconClass="fancyboxOptions.submitButtons.confirm?.iconClass"
|
122
|
+
:type="fancyboxOptions.submitButtons.confirm?.iconType"
|
123
|
+
/>
|
124
|
+
<span v-if="fancyboxOptions.submitButtons.confirm?.buttonText">{{fancyboxOptions.submitButtons.confirm?.buttonText}}</span>
|
125
|
+
</button>
|
126
|
+
<!-- end confirm-button -->
|
127
|
+
</footer>
|
128
|
+
|
89
129
|
<!-- begin CmdThumbnailScroller -->
|
90
130
|
<CmdThumbnailScroller
|
91
131
|
v-if="fancyBoxGallery"
|
@@ -134,6 +174,7 @@ const FancyBox = defineComponent({
|
|
134
174
|
mixins: [
|
135
175
|
Identifier
|
136
176
|
],
|
177
|
+
emits: ['cancel', 'confirm'],
|
137
178
|
data() {
|
138
179
|
return {
|
139
180
|
fancyBoxContent: null,
|
@@ -161,6 +202,20 @@ const FancyBox = defineComponent({
|
|
161
202
|
type: String,
|
162
203
|
required: false
|
163
204
|
},
|
205
|
+
/**
|
206
|
+
* toggle visibility of print-buttons
|
207
|
+
*/
|
208
|
+
showPrintButtons: {
|
209
|
+
type: Boolean,
|
210
|
+
default: false
|
211
|
+
},
|
212
|
+
/**
|
213
|
+
* toggle visibility of print-buttons
|
214
|
+
*/
|
215
|
+
showSubmitButtons: {
|
216
|
+
type: Boolean,
|
217
|
+
default: true
|
218
|
+
},
|
164
219
|
/**
|
165
220
|
* options to show at top (closeIcon, printButtons)
|
166
221
|
*/
|
@@ -169,19 +224,35 @@ const FancyBox = defineComponent({
|
|
169
224
|
default() {
|
170
225
|
return {
|
171
226
|
closeIcon: {
|
172
|
-
|
173
|
-
|
227
|
+
iconClass: "icon-cancel",
|
228
|
+
iconType: "auto",
|
229
|
+
tooltip: "Close"
|
174
230
|
},
|
175
231
|
printButtons: {
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
232
|
+
color: {
|
233
|
+
iconClass: "icon-print",
|
234
|
+
iconType: "auto",
|
235
|
+
tooltip: "print in color"
|
236
|
+
},
|
237
|
+
grayscale: {
|
238
|
+
iconClass: "icon-print",
|
239
|
+
iconType: "auto",
|
240
|
+
tooltip: "print in grayscale"
|
241
|
+
}
|
242
|
+
},
|
243
|
+
submitButtons: {
|
244
|
+
cancel: {
|
245
|
+
iconClass: "icon-cancel",
|
246
|
+
iconType: "auto",
|
247
|
+
tooltip: "Cancel",
|
248
|
+
buttonText: "Cancel"
|
180
249
|
},
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
250
|
+
confirm: {
|
251
|
+
iconClass: "icon-check",
|
252
|
+
iconType: "auto",
|
253
|
+
buttonText: "Confirm",
|
254
|
+
tooltip: "Confirm",
|
255
|
+
buttonType: "primary"
|
185
256
|
}
|
186
257
|
}
|
187
258
|
}
|
@@ -368,6 +439,14 @@ const FancyBox = defineComponent({
|
|
368
439
|
|
369
440
|
// remove class to re-enable scrolling
|
370
441
|
document.querySelector("body").classList.remove("avoid-scrolling")
|
442
|
+
},
|
443
|
+
cancel() {
|
444
|
+
this.$emit("cancel", true)
|
445
|
+
this.close()
|
446
|
+
},
|
447
|
+
confirm() {
|
448
|
+
this.$emit("confirm", true)
|
449
|
+
this.close()
|
371
450
|
}
|
372
451
|
},
|
373
452
|
watch: {
|
@@ -502,6 +581,11 @@ export default FancyBox
|
|
502
581
|
}
|
503
582
|
}
|
504
583
|
|
584
|
+
> footer {
|
585
|
+
margin-top: auto;
|
586
|
+
justify-content: flex-end;
|
587
|
+
}
|
588
|
+
|
505
589
|
.outer-content-wrapper {
|
506
590
|
max-height: 85vh;
|
507
591
|
overflow-x: hidden;
|
@@ -5,7 +5,8 @@
|
|
5
5
|
<a href="#" class="thumbnails-imagezoom">
|
6
6
|
<!-- begin CmdImage -->
|
7
7
|
<CmdImage
|
8
|
-
:image="imageSmall"
|
8
|
+
:image="imageSmall.image"
|
9
|
+
:figcaption="imageSmall.figcaption"
|
9
10
|
@mouseover="onMouseOver"
|
10
11
|
@mousemove="onMouseMove"
|
11
12
|
@mouseout="onMouseOut"
|
@@ -19,7 +20,8 @@
|
|
19
20
|
<div v-if="showLargeImage" class="zoom-container grid-large-item">
|
20
21
|
<!-- begin CmdImage -->
|
21
22
|
<CmdImage
|
22
|
-
:image="imageLarge"
|
23
|
+
:image="imageLarge.image"
|
24
|
+
:figcaption="imageLarge.figcaption"
|
23
25
|
@mouseover="onMouseOver"
|
24
26
|
@mousemove="onMouseMove"
|
25
27
|
@mouseout="onMouseOut"
|
@@ -6,10 +6,10 @@
|
|
6
6
|
</div>
|
7
7
|
<!-- end slot for elements above header -->
|
8
8
|
|
9
|
-
<header
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
<header
|
10
|
+
:class="[
|
11
|
+
useGrid ? 'grid-container-create-columns': 'flex-container',
|
12
|
+
{'has-navigation': (cmdMainNavigation?.navigationEntries?.length && navigationInline) || $slots.navigation}
|
13
13
|
]">
|
14
14
|
<!-- begin slots for logo and other header elements -->
|
15
15
|
<template v-if="$slots.logo || $slots.header || $slots.navigation">
|
@@ -107,12 +107,6 @@ export default {
|
|
107
107
|
type: Object,
|
108
108
|
required: false
|
109
109
|
}
|
110
|
-
},
|
111
|
-
computed: {
|
112
|
-
oneChildOnly() {
|
113
|
-
// check if sum of children equals "1" by turning objects into booleans, which will be converted to numbers by using "+".
|
114
|
-
return (!!this.cmdCompanyLogo + !!this.cmdMainNavigation + !!this.$slots.logo + !!this.$slots.header + !!this.$slots.navigation) === 1
|
115
|
-
}
|
116
110
|
}
|
117
111
|
}
|
118
112
|
</script>
|
@@ -171,10 +165,6 @@ export default {
|
|
171
165
|
padding-bottom: 0;
|
172
166
|
}
|
173
167
|
|
174
|
-
&.one-child-only {
|
175
|
-
gap: 0;
|
176
|
-
}
|
177
|
-
|
178
168
|
&.flex-container {
|
179
169
|
width: 100%;
|
180
170
|
|
@@ -197,10 +187,6 @@ export default {
|
|
197
187
|
.cmd-company-logo {
|
198
188
|
grid-column: span var(--grid-small-span);
|
199
189
|
}
|
200
|
-
|
201
|
-
> *:only-child {
|
202
|
-
gap: 0;
|
203
|
-
}
|
204
190
|
}
|
205
191
|
|
206
192
|
&.navigation-inline {
|
@@ -61,6 +61,20 @@
|
|
61
61
|
]
|
62
62
|
}
|
63
63
|
},
|
64
|
+
"profileType": {
|
65
|
+
"comments": [
|
66
|
+
"profile types for user-boxes"
|
67
|
+
],
|
68
|
+
"annotations": {
|
69
|
+
"required": [
|
70
|
+
"only available for boxtype===user",
|
71
|
+
""
|
72
|
+
],
|
73
|
+
"allowedValues": [
|
74
|
+
"'business', 'influencer', 'dating'"
|
75
|
+
]
|
76
|
+
}
|
77
|
+
},
|
64
78
|
"useSlots": {
|
65
79
|
"comments": [
|
66
80
|
"activated if all content (incl. headline) is given by slot",
|
@@ -66,10 +66,13 @@
|
|
66
66
|
},
|
67
67
|
"labelText": {
|
68
68
|
"comments": [
|
69
|
-
"label-text for fake-select"
|
70
|
-
|
71
|
-
|
72
|
-
|
69
|
+
"label-text for fake-select"
|
70
|
+
],
|
71
|
+
"annotations": {
|
72
|
+
"requiredForAccessibility": [
|
73
|
+
"true"
|
74
|
+
]
|
75
|
+
}
|
73
76
|
},
|
74
77
|
"showLabel": {
|
75
78
|
"comments": [
|
@@ -14,6 +14,16 @@
|
|
14
14
|
"set if content should be loaded by url"
|
15
15
|
]
|
16
16
|
},
|
17
|
+
"showPrintButtons": {
|
18
|
+
"comments": [
|
19
|
+
"toggle visibility of print-buttons"
|
20
|
+
]
|
21
|
+
},
|
22
|
+
"showSubmitButtons": {
|
23
|
+
"comments": [
|
24
|
+
"toggle visibility of print-buttons"
|
25
|
+
]
|
26
|
+
},
|
17
27
|
"fancyboxOptions": {
|
18
28
|
"comments": [
|
19
29
|
"options to show at top (closeIcon, printButtons)"
|