comand-component-library 4.0.7 → 4.0.9
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.js +2682 -2376
- package/dist/comand-component-library.umd.cjs +3 -3
- package/dist/style.css +1 -1
- package/package.json +2 -2
- package/src/ComponentLibrary.vue +95 -17
- package/src/assets/data/list-of-links.json +13 -1
- package/src/assets/data/pages/list-of-downloads.json +56 -0
- package/src/assets/data/pages/list-of-site-links.json +78 -0
- package/src/assets/data/social-networks-page-by-json.json +2 -2
- package/src/assets/styles/component-library-global-styles.scss +19 -7
- package/src/componentSettingsDataAndControls.vue +27 -2
- package/src/components/CmdFakeSelect.vue +10 -21
- package/src/components/CmdFormElement.vue +5 -2
- package/src/components/CmdInputGroup.vue +1 -1
- package/src/components/CmdListOfLinks.vue +72 -12
- package/src/components/CmdListOfLinksItem.vue +14 -3
- package/src/components/CmdPageFooter.vue +83 -0
- package/src/components/CmdPagination.vue +4 -4
- package/src/components/CmdSidebar.vue +2 -0
- package/src/components/CmdSocialNetworks.vue +39 -27
- package/src/components/CmdSwitchLanguage.vue +3 -1
- package/src/components/CmdTextImageBlock.vue +44 -15
- package/src/components/CmdWidthLimitationWrapper.vue +27 -6
- package/src/components/EditComponentWrapper.vue +4 -0
- package/src/index.js +3 -1
- package/src/main.js +1 -1
- package/src/mixins/CmdFakeSelect/DefaultMessageProperties.js +0 -1
- package/src/mixins/pages/BasicForm/DefaultMessageProperties.js +28 -0
- package/src/pages/BasicForm.vue +341 -0
- package/src/pages/PageOverview.vue +53 -0
- package/src/pages/PageWrapper.vue +260 -0
- package/src/pages/SegmentedListsOfLinks.vue +34 -0
- /package/src/assets/styles/{transitions.scss → transitions.css} +0 -0
- /package/src/mixins/{CmdPager → CmdPagination}/DefaultMessageProperties.js +0 -0
@@ -21,17 +21,22 @@
|
|
21
21
|
|
22
22
|
<!-- begin list of networks -->
|
23
23
|
<ul v-if="validNetworks.length > 0" :class="['button-wrapper', {'no-gap': !useGap}]">
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
24
|
+
<template v-if="!editModeContext">
|
25
|
+
<!-- begin cmd-social-networks (default view) -->
|
26
|
+
<CmdSocialNetworksItem
|
27
|
+
v-for="(entry, index) in validNetworks"
|
28
|
+
:key="index"
|
29
|
+
:network="entry"
|
30
|
+
:userMustAcceptDataPrivacy="userMustAcceptDataPrivacy"
|
31
|
+
:buttonTextAlign="buttonTextAlign"
|
32
|
+
:dataPrivacyAccepted="dataPrivacyAccepted"
|
33
|
+
/>
|
34
|
+
<!-- end cmd-social-networks (default view) -->
|
35
|
+
|
36
|
+
<!-- begin slot-content -->
|
37
|
+
<slot></slot>
|
38
|
+
<!-- end slot-content -->
|
39
|
+
</template>
|
35
40
|
|
36
41
|
<!-- begin edit-mode -->
|
37
42
|
<EditComponentWrapper
|
@@ -62,9 +67,12 @@
|
|
62
67
|
</template>
|
63
68
|
|
64
69
|
<script>
|
65
|
-
import
|
70
|
+
// import mixins (EditMode only)
|
66
71
|
import EditMode from "../mixins/EditMode.vue"
|
67
72
|
|
73
|
+
// import utils (EditMode only)
|
74
|
+
import {buildComponentPath} from "../utils/editmode.js"
|
75
|
+
|
68
76
|
export default {
|
69
77
|
name: "CmdSocialNetworks",
|
70
78
|
mixins: [EditMode],
|
@@ -110,7 +118,7 @@ export default {
|
|
110
118
|
default: false
|
111
119
|
},
|
112
120
|
/**
|
113
|
-
* list of networks (i.e. facebook,
|
121
|
+
* list of networks (i.e. facebook, linkedin etc.)
|
114
122
|
*/
|
115
123
|
networks: {
|
116
124
|
type: Array,
|
@@ -162,7 +170,7 @@ export default {
|
|
162
170
|
}
|
163
171
|
},
|
164
172
|
/**
|
165
|
-
* properties for
|
173
|
+
* properties for CmdFormElement-component
|
166
174
|
*
|
167
175
|
* userMustAcceptDataPrivacy-property must be activated
|
168
176
|
*/
|
@@ -217,7 +225,7 @@ export default {
|
|
217
225
|
this.itemProvider)
|
218
226
|
},
|
219
227
|
itemProvider() {
|
220
|
-
return
|
228
|
+
return {
|
221
229
|
"id": "social-network-facebook",
|
222
230
|
"path": "https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fdevelopment.comand-cms.com%2Fmodule%2Fteam.html",
|
223
231
|
"tooltip": "Share this page on facebook",
|
@@ -369,9 +377,9 @@ export default {
|
|
369
377
|
li {
|
370
378
|
flex: 1;
|
371
379
|
|
372
|
-
|
373
|
-
|
374
|
-
|
380
|
+
.button {
|
381
|
+
display: flex;
|
382
|
+
}
|
375
383
|
}
|
376
384
|
}
|
377
385
|
}
|
@@ -401,8 +409,8 @@ export default {
|
|
401
409
|
--social-network-color: #3c5a99;
|
402
410
|
}
|
403
411
|
|
404
|
-
#social-network-
|
405
|
-
--social-network-color: #
|
412
|
+
#social-network-x {
|
413
|
+
--social-network-color: #14171a;
|
406
414
|
}
|
407
415
|
|
408
416
|
#social-network-xing {
|
@@ -419,14 +427,18 @@ export default {
|
|
419
427
|
@import "../assets/styles/variables";
|
420
428
|
|
421
429
|
@container (max-width: #{$small-max-width}) {
|
422
|
-
.
|
423
|
-
|
424
|
-
flex: none;
|
425
|
-
width: auto !important;
|
430
|
+
.cmd-social-networks {
|
431
|
+
container-type: normal; /* do not set to 'inline-size' to avoid to be stretched vertically on small devices */
|
426
432
|
|
427
|
-
|
428
|
-
|
429
|
-
|
433
|
+
.button-wrapper {
|
434
|
+
.button {
|
435
|
+
flex: none;
|
436
|
+
width: auto !important;
|
437
|
+
|
438
|
+
[class*="icon-"] {
|
439
|
+
& + span {
|
440
|
+
display: none;
|
441
|
+
}
|
430
442
|
}
|
431
443
|
}
|
432
444
|
}
|
@@ -95,8 +95,10 @@ export default {
|
|
95
95
|
a:not([class*="active"]) {
|
96
96
|
filter: contrast(.5);
|
97
97
|
|
98
|
-
&:hover, &:focus, &:active {
|
98
|
+
&:hover, &:focus-visible, &:active, &.active {
|
99
99
|
filter: none;
|
100
|
+
padding: 0; /* overwrite default settings from frontend-framework for .active */
|
101
|
+
background: none; /* overwrite default settings from frontend-framework for .active */
|
100
102
|
}
|
101
103
|
}
|
102
104
|
}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<template>
|
2
|
-
<div class="cmd-text-image-block flex-container
|
2
|
+
<div :class="['cmd-text-image-block flex-container', orientation]">
|
3
3
|
<!-- begin cmdHeadline -->
|
4
4
|
<CmdHeadline
|
5
|
-
v-if="(cmdHeadline?.headlineText || editModeContext) && headlinePosition === 'aboveImage'"
|
5
|
+
v-if="(cmdHeadline?.headlineText || editModeContext) && (headlinePosition === 'aboveImage' && orientation === 'vertical')"
|
6
6
|
v-bind="cmdHeadline"
|
7
7
|
/>
|
8
8
|
<!-- end cmdHeadline -->
|
@@ -16,14 +16,19 @@
|
|
16
16
|
/>
|
17
17
|
<!-- end cmdImage -->
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
19
|
+
<div class="flex-container vertical">
|
20
|
+
<!-- begin cmdHeadline -->
|
21
|
+
<CmdHeadline
|
22
|
+
v-if="(cmdHeadline?.headlineText || editModeContext) && (headlinePosition === 'belowImage' || orientation === 'horizontal')"
|
23
|
+
v-bind="cmdHeadline"
|
24
|
+
/>
|
25
|
+
<!-- end cmdHeadline -->
|
26
|
+
|
27
|
+
<!-- begin continuous text -->
|
28
|
+
<div v-if="htmlContent" v-html="htmlContent" :class="textAlign"></div>
|
29
|
+
<!-- end continuous text -->
|
30
|
+
</div>
|
25
31
|
|
26
|
-
<!-- begin continuous text -->
|
27
32
|
<!-- begin edit-mode -->
|
28
33
|
<EditComponentWrapper
|
29
34
|
v-if="editModeContext"
|
@@ -47,14 +52,14 @@
|
|
47
52
|
</template>
|
48
53
|
</EditComponentWrapper>
|
49
54
|
<!-- end edit-mode -->
|
50
|
-
|
51
|
-
<div v-else-if="htmlContent" v-html="htmlContent" :class="textAlign"></div>
|
52
|
-
<!-- end continuous text -->
|
53
55
|
</div>
|
54
56
|
</template>
|
55
57
|
|
56
58
|
<script>
|
59
|
+
// import mixins (editMode only)
|
57
60
|
import EditMode from "../mixins/EditMode.vue"
|
61
|
+
|
62
|
+
// import utils (editMode only)
|
58
63
|
import {updateHandlerProvider} from "../utils/editmode.js"
|
59
64
|
|
60
65
|
export default {
|
@@ -66,8 +71,18 @@ export default {
|
|
66
71
|
}
|
67
72
|
},
|
68
73
|
props: {
|
69
|
-
|
70
|
-
|
74
|
+
/**
|
75
|
+
* orientation for entire component
|
76
|
+
*
|
77
|
+
* @allowedValues: "vertical", "horizontal"
|
78
|
+
*/
|
79
|
+
orientation: {
|
80
|
+
type: String,
|
81
|
+
default: "vertical",
|
82
|
+
validator(value) {
|
83
|
+
return value === "vertical" ||
|
84
|
+
value === "horizontal"
|
85
|
+
}
|
71
86
|
},
|
72
87
|
/**
|
73
88
|
* content for continuous text (can contain html-tags)
|
@@ -104,7 +119,7 @@ export default {
|
|
104
119
|
}
|
105
120
|
},
|
106
121
|
/**
|
107
|
-
*
|
122
|
+
* property for CmdHeadline-component
|
108
123
|
*/
|
109
124
|
cmdHeadline: {
|
110
125
|
type: Object,
|
@@ -116,6 +131,12 @@ export default {
|
|
116
131
|
cmdImage: {
|
117
132
|
type: Object,
|
118
133
|
required: false
|
134
|
+
},
|
135
|
+
/**
|
136
|
+
* editMode only
|
137
|
+
*/
|
138
|
+
editModeContextData: {
|
139
|
+
type: Object
|
119
140
|
}
|
120
141
|
},
|
121
142
|
computed: {
|
@@ -163,7 +184,15 @@ export default {
|
|
163
184
|
</script>
|
164
185
|
|
165
186
|
<style>
|
187
|
+
/* begin cmd-text-image-block ---------------------------------------------------------------------------------------- */
|
188
|
+
.cmd-text-image-block {
|
189
|
+
> .flex-container {
|
190
|
+
gap: calc(var(--default-gap) / 2);
|
191
|
+
}
|
192
|
+
}
|
193
|
+
|
166
194
|
.edit-mode .cmd-text-image-block textarea {
|
167
195
|
width: 100%;
|
168
196
|
}
|
197
|
+
/* end cmd-text-image-block ---------------------------------------------------------------------------------------- */
|
169
198
|
</style>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<template>
|
2
2
|
<div class="cmd-width-limitation-wrapper" :class="{'sticky': sticky}">
|
3
3
|
<!-- begin slot-content in section -->
|
4
|
-
<section v-if="
|
4
|
+
<section v-if="useInnerSection" :class="setInnerClass" :id="anchorId">
|
5
5
|
<!-- begin cmd-headline -->
|
6
6
|
<CmdHeadline
|
7
7
|
v-if="cmdHeadline"
|
@@ -11,9 +11,19 @@
|
|
11
11
|
/>
|
12
12
|
<!-- end cmd-headline -->
|
13
13
|
|
14
|
-
<!-- begin slot-content -->
|
15
|
-
<slot></slot>
|
16
|
-
<!-- end slot-content -->
|
14
|
+
<!-- begin slot-content (one column only) -->
|
15
|
+
<slot v-if="numberOfColumns === 1" ></slot>
|
16
|
+
<!-- end slot-content (one column only) -->
|
17
|
+
|
18
|
+
<!-- begin grid-/flex-container to wrap multiple columns/items -->
|
19
|
+
<div v-else :class="useGrid ? 'grid-container-create-columns' : 'flex-container'">
|
20
|
+
<div v-for="index in numberOfColumns" :key="`i${index}`" :class="useGrid ? 'grid-item' : 'flex-item'">
|
21
|
+
<!-- begin slot-content (multiple columns only) -->
|
22
|
+
<slot></slot>
|
23
|
+
<!-- end slot-content (multiple columns only) -->
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
<!-- end grid-/flex-container to wrap multiple columns/items -->
|
17
27
|
</section>
|
18
28
|
<!-- end slot-content in section -->
|
19
29
|
|
@@ -32,6 +42,17 @@
|
|
32
42
|
export default {
|
33
43
|
name: "CmdWidthLimitationWrapper",
|
34
44
|
props: {
|
45
|
+
numberOfColumns: {
|
46
|
+
type: Number,
|
47
|
+
default: 1,
|
48
|
+
validator(value) {
|
49
|
+
return value >= 0
|
50
|
+
}
|
51
|
+
},
|
52
|
+
useGrid: {
|
53
|
+
type: Boolean,
|
54
|
+
default: false
|
55
|
+
},
|
35
56
|
/**
|
36
57
|
* set a html-tag as inner tag
|
37
58
|
*
|
@@ -41,7 +62,7 @@ export default {
|
|
41
62
|
type: String,
|
42
63
|
default: "section",
|
43
64
|
validator(value) {
|
44
|
-
return value
|
65
|
+
return value
|
45
66
|
}
|
46
67
|
},
|
47
68
|
/**
|
@@ -50,7 +71,7 @@ export default {
|
|
50
71
|
* (if deactivated, content will be directly placed inside cmd-width-limitation-wrapper)
|
51
72
|
*
|
52
73
|
*/
|
53
|
-
|
74
|
+
useInnerSection: {
|
54
75
|
type: Boolean,
|
55
76
|
default: true
|
56
77
|
},
|
package/src/index.js
CHANGED
@@ -25,8 +25,10 @@ export { default as CmdListOfLinks } from '@/components/CmdListOfLinks.vue'
|
|
25
25
|
export { default as CmdLoginForm } from '@/components/CmdLoginForm.vue'
|
26
26
|
export { default as CmdMainNavigation } from '@/components/CmdMainNavigation.vue'
|
27
27
|
export { default as CmdMultistepFormProgressBar } from '@/components/CmdMultistepFormProgressBar.vue'
|
28
|
+
export { default as CmdNewsletterSubscription } from '@/components/CmdNewsletterSubscription.vue'
|
28
29
|
export { default as CmdOpeningHours } from '@/components/CmdOpeningHours.vue'
|
29
|
-
export { default as
|
30
|
+
export { default as CmdPagination } from '@/components/CmdPagination.vue'
|
31
|
+
export { default as CmdPageFooter } from '@/components/CmdPageFooter.vue'
|
30
32
|
export { default as CmdProgressBar } from '@/components/CmdProgressBar.vue'
|
31
33
|
export { default as CmdSidebar } from '@/components/CmdSidebar.vue'
|
32
34
|
export { default as CmdSiteFooter } from '@/components/CmdSiteFooter.vue'
|
package/src/main.js
CHANGED
@@ -27,7 +27,7 @@ import '@/assets/styles/editmode-iconfont.css'
|
|
27
27
|
import '@/assets/styles/component-library-global-styles.scss'
|
28
28
|
|
29
29
|
/* import css for global transitions */
|
30
|
-
import '@/assets/styles/transitions.
|
30
|
+
import '@/assets/styles/transitions.css'
|
31
31
|
|
32
32
|
/* import css-example for your custom styles */
|
33
33
|
import '@/assets/styles/template.css'
|
@@ -0,0 +1,28 @@
|
|
1
|
+
export default {
|
2
|
+
data() {
|
3
|
+
return {
|
4
|
+
defaultMessageProperties: {
|
5
|
+
"basic_form.legend": "Basic Form",
|
6
|
+
"basic_form.labeltext.salutation_male": "Mr.",
|
7
|
+
"basic_form.labeltext.salutation_female": "Mrs.",
|
8
|
+
"basic_form.labeltext.last_name": "Last name:",
|
9
|
+
"basic_form.placeholder.last_name": "Last name:",
|
10
|
+
"basic_form.labeltext.first_name": "First name:",
|
11
|
+
"basic_form.placeholder.first_name": "First name:",
|
12
|
+
"basic_form.labeltext.email": "Email:",
|
13
|
+
"basic_form.placeholder.email": "Email:",
|
14
|
+
"basic_form.labeltext.phone": "Phone:",
|
15
|
+
"basic_form.placeholder.phone": "Phone:",
|
16
|
+
"basic_form.labeltext.street_no": "Street/No.:",
|
17
|
+
"basic_form.placeholder.street_no": "Street/No.:",
|
18
|
+
"basic_form.labeltext.zip": "Zip:",
|
19
|
+
"basic_form.placeholder.zip": "Zip:",
|
20
|
+
"basic_form.labeltext.city": "City:",
|
21
|
+
"basic_form.placeholder.city": "City:",
|
22
|
+
"basic_form.labeltext.additional_address_info": "Additional address information",
|
23
|
+
"basic_form.placeholder.additional_address_info": "Additional address information",
|
24
|
+
"basic_form.labeltext.data_privacy": "I accept handling and saving of my personal data a mentioned in the <a href='/content/data-privacy-en.html' class='fancybox'>private policy</a>."
|
25
|
+
}
|
26
|
+
}
|
27
|
+
}
|
28
|
+
}
|