comand-component-library 3.3.48 → 3.3.49
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 +985 -1043
- package/dist/comand-component-library.umd.cjs +4 -4
- package/dist/style.css +1 -1
- package/package.json +40 -40
- package/src/App.vue +22 -16
- package/src/assets/data/address-data.json +2 -3
- package/src/assets/data/list-of-links.json +1 -2
- package/src/assets/data/main-navigation.json +1 -1
- package/src/assets/data/tabs.json +1 -1
- package/src/assets/styles/logos-iconfont.css +0 -1
- package/src/components/CmdAddressData.vue +63 -74
- package/src/components/CmdBackToTopButton.vue +11 -36
- package/src/components/CmdBankAccountData.vue +4 -10
- package/src/components/CmdBox.vue +19 -30
- package/src/components/CmdCompanyLogo.vue +7 -14
- package/src/components/CmdFancyBox.vue +1 -3
- package/src/components/CmdFormElement.vue +1 -8
- package/src/components/CmdImageZoom.vue +4 -8
- package/src/components/CmdListOfLinks.vue +2 -17
- package/src/components/CmdPager.vue +4 -0
- package/src/components/CmdSiteHeader.vue +16 -42
- package/src/components/CmdTabs.vue +1 -9
- package/src/components/CmdTextBlock.vue +1 -1
- package/src/components/CmdThumbnailScroller.vue +0 -6
- package/src/components/CmdToggleDarkMode.vue +9 -14
- package/src/mixins/CmdAddressData/DefaultMessageProperties.js +4 -4
@@ -32,7 +32,7 @@
|
|
32
32
|
v-telephone="entry.href">
|
33
33
|
{{ entry.href }}
|
34
34
|
</a>
|
35
|
-
<
|
35
|
+
<template v-else>{{ entry.data }}</template>
|
36
36
|
</dd>
|
37
37
|
<!-- end data (except for address) -->
|
38
38
|
|
@@ -40,7 +40,7 @@
|
|
40
40
|
<dd v-else>
|
41
41
|
<!-- begin linked address -->
|
42
42
|
<a v-if="linkGoogleMaps"
|
43
|
-
:href="locateAddress
|
43
|
+
:href="locateAddress"
|
44
44
|
target="google-maps"
|
45
45
|
:title="getMessage('cmdaddressdata.title.open_address_on_google_maps')">
|
46
46
|
<!-- begin street/number -->
|
@@ -103,10 +103,11 @@
|
|
103
103
|
|
104
104
|
<!-- begin list without labels -->
|
105
105
|
<ul v-else :class="['flex-container', {'vertical': !showIconsOnly}]">
|
106
|
+
|
106
107
|
<template v-for="(entry, index) in addressData" :key="index">
|
107
|
-
|
108
|
-
|
109
|
-
|
108
|
+
<!-- begin all entries except address -->
|
109
|
+
<template v-if="entry.name !== 'address'">
|
110
|
+
<li v-if="entry.href || !showIconsOnly" :class="{'no-flex' : showIconsOnly}">
|
110
111
|
<a v-if="entry.href" :href="getHref(entry)"
|
111
112
|
:target="{'_blank' : entry.name === 'website'}"
|
112
113
|
:title="entry.tooltip">
|
@@ -121,80 +122,68 @@
|
|
121
122
|
</template>
|
122
123
|
<template v-else>{{ entry.href }}</template>
|
123
124
|
</a>
|
124
|
-
<
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
<template v-if="entry.name === 'address'">
|
129
|
-
<!-- begin linked address -->
|
130
|
-
<a v-if="linkGoogleMaps" :href="locateAddress(entry)" target="google-maps" :title="entry.tooltip">
|
131
|
-
<template v-if="showIconsOnly">
|
132
|
-
<!-- begin CmdIcon -->
|
133
|
-
<CmdIcon
|
134
|
-
v-if="entry.iconClass"
|
135
|
-
:iconClass="entry.iconClass"
|
136
|
-
:type="entry.iconType"
|
137
|
-
/>
|
138
|
-
<!-- end CmdIcon -->
|
139
|
-
</template>
|
140
|
-
<template v-else>
|
141
|
-
<!-- begin street/number -->
|
142
|
-
<template v-if="entry.streetNo">
|
143
|
-
<span class="street-address">{{ entry.streetNo }}</span><br/>
|
144
|
-
</template>
|
145
|
-
<!-- end street/number -->
|
125
|
+
<template v-else-if="!showIconsOnly">{{ entry.data }}</template>
|
126
|
+
</li>
|
127
|
+
</template>
|
128
|
+
<!-- end all entries except address -->
|
146
129
|
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
130
|
+
<!-- begin address -->
|
131
|
+
<li v-else-if="entry.name === 'address' && !showIconsOnly">
|
132
|
+
<!-- begin linked address -->
|
133
|
+
<a v-if="linkGoogleMaps" :href="locateAddress" target="google-maps" :title="getMessage('cmdaddressdata.title.open_address_on_google_maps')">
|
134
|
+
<!-- begin street/number -->
|
135
|
+
<template v-if="entry.streetNo">
|
136
|
+
<span class="street-address">{{ entry.streetNo }}</span><br/>
|
137
|
+
</template>
|
138
|
+
<!-- end street/number -->
|
153
139
|
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
140
|
+
<!-- begin zip/city -->
|
141
|
+
<template v-if="entry.zip || entry.city">
|
142
|
+
<span class="postal-code">{{ entry.zip }} </span>
|
143
|
+
<span class="locality">{{ entry.city }}</span><br/>
|
144
|
+
</template>
|
145
|
+
<!-- end zip/city -->
|
159
146
|
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
<!-- end linked address -->
|
147
|
+
<!-- begin miscInfo -->
|
148
|
+
<template v-if="entry.miscInfo">
|
149
|
+
<span>{{ entry.miscInfo }}</span><br/>
|
150
|
+
</template>
|
151
|
+
<!-- end miscInfo -->
|
166
152
|
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
</template>
|
173
|
-
<!-- end street/number -->
|
153
|
+
<!-- begin country -->
|
154
|
+
<span v-if="entry.country" class="country-name">{{ entry.country }}</span>
|
155
|
+
<!-- end country -->
|
156
|
+
</a>
|
157
|
+
<!-- end linked address -->
|
174
158
|
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
159
|
+
<!-- begin unlinked address -->
|
160
|
+
<template v-else>
|
161
|
+
<!-- begin street/number -->
|
162
|
+
<template v-if="entry.streetNo">
|
163
|
+
<span class="street-address">{{ entry.streetNo }}</span><br/>
|
164
|
+
</template>
|
165
|
+
<!-- end street/number -->
|
181
166
|
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
167
|
+
<!-- begin zip/city -->
|
168
|
+
<template v-if="entry.zip || entry.city">
|
169
|
+
<span class="postal-code">{{ entry.zip }} </span>
|
170
|
+
<span class="locality">{{ entry.city }}</span><br/>
|
171
|
+
</template>
|
172
|
+
<!-- end zip/city -->
|
187
173
|
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
</template>
|
192
|
-
<!-- end unlinked address -->
|
174
|
+
<!-- begin miscInfo -->
|
175
|
+
<template v-if="entry.miscInfo">
|
176
|
+
<span>{{ entry.miscInfo }}</span><br/>
|
193
177
|
</template>
|
194
|
-
<!-- end
|
195
|
-
|
196
|
-
|
197
|
-
|
178
|
+
<!-- end miscInfo -->
|
179
|
+
|
180
|
+
<!-- begin country -->
|
181
|
+
<span v-if="entry.country" class="country-name">{{ entry.country }}</span>
|
182
|
+
<!-- end country -->
|
183
|
+
</template>
|
184
|
+
<!-- end unlinked address -->
|
185
|
+
</li>
|
186
|
+
<!-- end address -->
|
198
187
|
</template>
|
199
188
|
<!-- end v-for -->
|
200
189
|
</ul>
|
@@ -264,14 +253,14 @@ export default {
|
|
264
253
|
}
|
265
254
|
},
|
266
255
|
computed: {
|
256
|
+
locateAddress() {
|
257
|
+
return "https://www.google.com/maps/place/" + this.addressData.address.streetNo + ", " + this.addressData.address.zip + " " + this.addressData.address.city
|
258
|
+
},
|
267
259
|
websiteUrlText() {
|
268
260
|
return this.addressData.website?.text.replace("https://", "")
|
269
261
|
}
|
270
262
|
},
|
271
263
|
methods: {
|
272
|
-
locateAddress(entry) {
|
273
|
-
return "https://www.google.com/maps/place/" + entry.streetNo + ", " + entry.zip + " " + entry.city
|
274
|
-
},
|
275
264
|
vCardClass(entry) {
|
276
265
|
if (entry.name === 'company') {
|
277
266
|
return "org"
|
@@ -17,18 +17,11 @@ export default {
|
|
17
17
|
data() {
|
18
18
|
return {
|
19
19
|
windowInnerHeight: window.innerHeight,
|
20
|
-
windowScrollY:
|
21
|
-
|
20
|
+
windowScrollY: window.scrollY,
|
21
|
+
bodyScrollHeight: document.body.scrollHeight
|
22
22
|
}
|
23
23
|
},
|
24
24
|
props: {
|
25
|
-
/**
|
26
|
-
* define which container's scroll-behavior should be observed (can be any selector)
|
27
|
-
*/
|
28
|
-
scrollContainer: {
|
29
|
-
type: String,
|
30
|
-
default: "body"
|
31
|
-
},
|
32
25
|
/**
|
33
26
|
* icon-class (and shown tooltip on hover) for back to top button
|
34
27
|
*
|
@@ -45,46 +38,28 @@ export default {
|
|
45
38
|
}
|
46
39
|
}
|
47
40
|
},
|
48
|
-
|
49
|
-
window.addEventListener('resize', this.onViewportChange)
|
50
|
-
|
51
|
-
window.addEventListener('scroll', this.onViewportChange);
|
52
|
-
} else {
|
53
|
-
document.querySelector(this.scrollContainer)?.addEventListener('scroll', this.onViewportChange);
|
54
|
-
}
|
41
|
+
created() {
|
42
|
+
window.addEventListener('resize', this.onViewportChange);
|
43
|
+
window.addEventListener('scroll', this.onViewportChange);
|
55
44
|
},
|
56
45
|
unmounted() {
|
57
|
-
window.removeEventListener('resize', this.onViewportChange)
|
58
|
-
|
59
|
-
window.addEventListener('scroll', this.onViewportChange);
|
60
|
-
} else {
|
61
|
-
document.querySelector(this.scrollContainer)?.removeEventListener('scroll', this.onViewportChange)
|
62
|
-
}
|
46
|
+
window.removeEventListener('resize', this.onViewportChange);
|
47
|
+
window.removeEventListener('scroll', this.onViewportChange);
|
63
48
|
},
|
64
49
|
/* watch for changes */
|
65
50
|
computed: {
|
66
51
|
show() {
|
67
|
-
return this.windowScrollY > 0 && this.windowInnerHeight < this.
|
52
|
+
return this.windowScrollY > 0 && this.windowInnerHeight < this.bodyScrollHeight;
|
68
53
|
}
|
69
54
|
},
|
70
55
|
methods: {
|
71
|
-
getScrollY() {
|
72
|
-
if (this.scrollContainer === "body") {
|
73
|
-
return window.scrollY
|
74
|
-
}
|
75
|
-
return document.querySelector(this.scrollContainer)?.scrollTop || 0
|
76
|
-
},
|
77
56
|
onViewportChange() {
|
78
57
|
this.windowInnerHeight = window.innerHeight;
|
79
|
-
this.windowScrollY =
|
80
|
-
this.
|
58
|
+
this.windowScrollY = window.scrollY;
|
59
|
+
this.bodyScrollHeight = document.body.scrollHeight;
|
81
60
|
},
|
82
61
|
onBackToTop() {
|
83
|
-
|
84
|
-
window.scrollTo({top: 0, left: 0, behavior: 'smooth'})
|
85
|
-
} else {
|
86
|
-
document.querySelector(this.scrollContainer)?.scrollTo({top: 0, left: 0, behavior: 'smooth'})
|
87
|
-
}
|
62
|
+
window.scrollTo({top: 0, left: 0, behavior: 'smooth'});
|
88
63
|
}
|
89
64
|
}
|
90
65
|
}
|
@@ -79,16 +79,10 @@ export default {
|
|
79
79
|
},
|
80
80
|
methods: {
|
81
81
|
copyToClipboard(entry) {
|
82
|
-
//get data, remove spaces and copy to clipboard
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
const output = entry.replace(/\s/g, "")
|
87
|
-
navigator.clipboard.writeText(output)
|
88
|
-
alert(output + " was copied to clipboard")
|
89
|
-
}
|
90
|
-
})
|
91
|
-
.catch(error => console.error(error))
|
82
|
+
// get data, remove spaces and copy to clipboard
|
83
|
+
const output = entry.replace(/\s/g, "")
|
84
|
+
navigator.clipboard.writeText(output)
|
85
|
+
alert(output + " was copied to clipboard")
|
92
86
|
}
|
93
87
|
}
|
94
88
|
}
|
@@ -57,38 +57,27 @@
|
|
57
57
|
|
58
58
|
<!-- begin box-body -->
|
59
59
|
<div v-if="open" :class="['box-body', {'default-padding': useDefaultPadding}]" aria-expanded="true" role="article">
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
</
|
74
|
-
|
75
|
-
|
76
|
-
<!-- begin slot 'body' -->
|
77
|
-
<slot v-if="useSlots?.includes('body')" name="body">
|
78
|
-
<p>{{ textBody }}</p>
|
79
|
-
</slot>
|
80
|
-
<!-- end slot 'body' -->
|
81
|
-
</template>
|
82
|
-
<!-- end no cut-off-text-lines -->
|
83
|
-
</transition-group>
|
84
|
-
<a v-if="cutoffTextLines > 0" href="#" @click.prevent="toggleCutOffText">
|
85
|
-
{{ showCutOffText ? getMessage("cmdbox.contentbox.collapse_text") : getMessage("cmdbox.contentbox.expand_text") }}
|
86
|
-
</a>
|
60
|
+
<!-- begin slot 'body' -->
|
61
|
+
<slot v-if="useSlots?.includes('body')" name="body">
|
62
|
+
<transition-group :name="toggleTransition">
|
63
|
+
<p :class="{
|
64
|
+
'cutoff-text': cutoffTextLines > 0,
|
65
|
+
'fade-last-line': fadeLastLine && !showCutOffText,
|
66
|
+
'show-text' : showCutOffText
|
67
|
+
}">
|
68
|
+
{{ textBody }}
|
69
|
+
</p>
|
70
|
+
<a v-if="cutoffTextLines > 0" href="#" @click.prevent="toggleCutOffText">
|
71
|
+
{{ showCutOffText ? getMessage("cmdbox.contentbox.collapse_text") : getMessage("cmdbox.contentbox.expand_text") }}
|
72
|
+
</a>
|
73
|
+
</transition-group>
|
74
|
+
</slot>
|
75
|
+
<!-- end slot 'body' -->
|
87
76
|
|
88
77
|
<template v-else>
|
89
78
|
<img v-if="image" :src="image.src" :alt="image.altText"/>
|
90
79
|
|
91
|
-
<div
|
80
|
+
<div class="text-wrapper">
|
92
81
|
<!-- begin CmdHeadline -->
|
93
82
|
<CmdHeadline
|
94
83
|
v-if="cmdHeadline?.headlineText && repeatHeadlineInBoxBody"
|
@@ -265,7 +254,7 @@ export default {
|
|
265
254
|
*/
|
266
255
|
fadeLastLine: {
|
267
256
|
type: Boolean,
|
268
|
-
default:
|
257
|
+
default: true
|
269
258
|
},
|
270
259
|
/**
|
271
260
|
* use transition to expand and collapse box-body
|
@@ -513,7 +502,7 @@ export default {
|
|
513
502
|
padding: var(--default-padding);
|
514
503
|
}
|
515
504
|
|
516
|
-
.cutoff-text {
|
505
|
+
p.cutoff-text {
|
517
506
|
padding: var(--default-padding);
|
518
507
|
margin: 0;
|
519
508
|
overflow: hidden;
|
@@ -124,24 +124,17 @@ export default {
|
|
124
124
|
.cmd-company-logo {
|
125
125
|
> a {
|
126
126
|
display: block;
|
127
|
-
}
|
128
|
-
|
129
|
-
img {
|
130
|
-
border: 0;
|
131
|
-
max-height: 15rem;
|
132
|
-
}
|
133
127
|
|
134
|
-
@media only screen and (max-width: $medium-max-width) {
|
135
128
|
img {
|
136
|
-
|
137
|
-
max-height:
|
129
|
+
border: 0;
|
130
|
+
max-height: 15rem;
|
138
131
|
}
|
139
|
-
}
|
140
132
|
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
133
|
+
@media only screen and (max-width: $medium-max-width) {
|
134
|
+
img {
|
135
|
+
max-width: 100%;
|
136
|
+
max-height: none;
|
137
|
+
}
|
145
138
|
}
|
146
139
|
}
|
147
140
|
}
|
@@ -484,8 +484,6 @@ export default FancyBox
|
|
484
484
|
padding: var(--default-padding);
|
485
485
|
min-width: 30vw;
|
486
486
|
min-height: 30vh;
|
487
|
-
max-width: calc(var(--max-width) - calc(var(--default-padding) * 2));
|
488
|
-
max-height: 80vh;
|
489
487
|
background: var(--pure-white);
|
490
488
|
border-radius: var(--border-radius);
|
491
489
|
overflow: hidden;
|
@@ -550,7 +548,7 @@ export default FancyBox
|
|
550
548
|
> .button {
|
551
549
|
display: block;
|
552
550
|
border: var(--default-border);
|
553
|
-
padding: .
|
551
|
+
padding: .2rem;
|
554
552
|
min-width: 0;
|
555
553
|
min-height: 0;
|
556
554
|
|
@@ -44,7 +44,7 @@
|
|
44
44
|
/>
|
45
45
|
<!-- end CmdTooltipForInputElements -->
|
46
46
|
|
47
|
-
<a v-if="
|
47
|
+
<a v-if="$attrs.required || inputRequirements.length"
|
48
48
|
href="#"
|
49
49
|
@click.prevent
|
50
50
|
:title="validationTooltip"
|
@@ -407,13 +407,6 @@ export default {
|
|
407
407
|
}
|
408
408
|
}
|
409
409
|
},
|
410
|
-
/**
|
411
|
-
* toggle statusIcon (showing the requirements on hover)
|
412
|
-
*/
|
413
|
-
showStatusIcon: {
|
414
|
-
type: Boolean,
|
415
|
-
default: true
|
416
|
-
},
|
417
410
|
/**
|
418
411
|
* set text for tooltip
|
419
412
|
*/
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<div class="cmd-imagezoom flex-container">
|
3
3
|
|
4
4
|
<!-- begin small image -->
|
5
|
-
<a href="#" class="no-flex" :title="imageSmall.tooltip">
|
5
|
+
<a href="#" class="no-flex thumbnails-imagezoom" :title="imageSmall.tooltip">
|
6
6
|
<img :src="imageSmall.src"
|
7
7
|
:alt="imageSmall.alt"
|
8
8
|
@mouseover="onMouseOver"
|
@@ -66,9 +66,9 @@ export default {
|
|
66
66
|
}
|
67
67
|
|
68
68
|
function positionOverlay(vm, e) {
|
69
|
-
const largeImageContainer = vm.$el.querySelector(
|
70
|
-
const largeImage = largeImageContainer.querySelector(
|
71
|
-
const zoomOverlay = vm.$el.querySelector(
|
69
|
+
const largeImageContainer = vm.$el.querySelector('.zoom-container')
|
70
|
+
const largeImage = largeImageContainer.querySelector('img')
|
71
|
+
const zoomOverlay = vm.$el.querySelector('.zoom-overlay')
|
72
72
|
|
73
73
|
const smallImageWidth = e.target.getBoundingClientRect().width
|
74
74
|
const smallImageHeight = e.target.getBoundingClientRect().height
|
@@ -114,10 +114,6 @@ function clamp(value, min, max) {
|
|
114
114
|
.cmd-imagezoom {
|
115
115
|
overflow: hidden;
|
116
116
|
|
117
|
-
> a {
|
118
|
-
align-self: flex-start; /* required to avoid a-tag to stretch on small devices */
|
119
|
-
}
|
120
|
-
|
121
117
|
.zoom-container {
|
122
118
|
display: block !important;
|
123
119
|
overflow: hidden;
|
@@ -8,7 +8,7 @@
|
|
8
8
|
<!-- end CmdHeadline -->
|
9
9
|
|
10
10
|
<!-- begin list of links -->
|
11
|
-
<ul :class="['flex-container', {'no-gap': !useGap},'align-' + align
|
11
|
+
<ul :class="['flex-container', {'no-gap': !useGap},'align-' + align]">
|
12
12
|
<li v-for="(link, index) in links" :key="index" :class="{'active': sectionAnchors && activeSection === index}">
|
13
13
|
<!-- begin use href -->
|
14
14
|
<a v-if="link.type === 'href' || link.type === undefined"
|
@@ -46,7 +46,6 @@ import {openFancyBox} from "./CmdFancyBox.vue"
|
|
46
46
|
|
47
47
|
export default {
|
48
48
|
name: "CmdListOfLinks",
|
49
|
-
emits: ["click"],
|
50
49
|
props: {
|
51
50
|
/**
|
52
51
|
* activate if component should contain a list of anchors for the section within the page
|
@@ -124,14 +123,6 @@ export default {
|
|
124
123
|
default: false
|
125
124
|
}
|
126
125
|
},
|
127
|
-
computed: {
|
128
|
-
setStretchClass() {
|
129
|
-
if(this.largeIcons && this.orientation === "horizontal") {
|
130
|
-
return "stretch"
|
131
|
-
}
|
132
|
-
return null
|
133
|
-
}
|
134
|
-
},
|
135
126
|
methods: {
|
136
127
|
getRoute(link) {
|
137
128
|
return getRoute(link)
|
@@ -139,10 +130,8 @@ export default {
|
|
139
130
|
executeLink(link, event) {
|
140
131
|
if (link.fancybox) {
|
141
132
|
event.preventDefault()
|
142
|
-
openFancyBox({url: link.path
|
143
|
-
return
|
133
|
+
openFancyBox({url: link.path})
|
144
134
|
}
|
145
|
-
this.$emit("click", {link, originalEvent: event})
|
146
135
|
}
|
147
136
|
}
|
148
137
|
}
|
@@ -182,10 +171,6 @@ export default {
|
|
182
171
|
&.align-right {
|
183
172
|
justify-content: flex-end;
|
184
173
|
}
|
185
|
-
|
186
|
-
&.stretch {
|
187
|
-
justify-content: space-around;
|
188
|
-
}
|
189
174
|
}
|
190
175
|
|
191
176
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<template>
|
2
|
-
<div :class="['cmd-site-header', {sticky: sticky, 'navigation-inline': navigationInline}]" role="banner">
|
2
|
+
<div :class="['cmd-site-header', {sticky: sticky, 'navigation-inline': navigationInline, 'off-canvas-right': cmdMainNavigation?.offcanvasPosition === 'right'}]" role="banner">
|
3
3
|
<!-- begin slot for elements above header -->
|
4
4
|
<div v-if="$slots.topheader" class="top-header">
|
5
5
|
<slot name="topheader"></slot>
|
@@ -31,8 +31,9 @@
|
|
31
31
|
<!-- begin CmdMainNavigation -->
|
32
32
|
<CmdMainNavigation
|
33
33
|
v-if="cmdMainNavigation?.navigationEntries?.length && navigationInline"
|
34
|
+
:navigationEntries="cmdMainNavigation.navigationEntries"
|
35
|
+
:offcanvasPosition="cmdMainNavigation.offcanvasPosition"
|
34
36
|
:closeOffcanvas="closeOffcanvas"
|
35
|
-
v-bind="cmdMainNavigation"
|
36
37
|
/>
|
37
38
|
<!-- end CmdMainNavigation -->
|
38
39
|
</template>
|
@@ -43,6 +44,7 @@
|
|
43
44
|
<CmdMainNavigation
|
44
45
|
v-if="cmdMainNavigation?.navigationEntries?.length && !navigationInline"
|
45
46
|
:navigationEntries="cmdMainNavigation.navigationEntries"
|
47
|
+
:offcanvasPosition="cmdMainNavigation.offcanvasPosition"
|
46
48
|
:closeOffcanvas="closeOffcanvas"
|
47
49
|
/>
|
48
50
|
<!-- end CmdMainNavigation -->
|
@@ -185,7 +187,7 @@ export default {
|
|
185
187
|
header {
|
186
188
|
&.has-navigation {
|
187
189
|
grid-template-rows: 1fr;
|
188
|
-
grid-template-areas: "company-logo
|
190
|
+
grid-template-areas: "main-navigation company-logo";
|
189
191
|
padding-bottom: calc(var(--default-padding) * 2);
|
190
192
|
}
|
191
193
|
|
@@ -220,15 +222,21 @@ export default {
|
|
220
222
|
}
|
221
223
|
}
|
222
224
|
}
|
225
|
+
|
226
|
+
&.off-canvas-right {
|
227
|
+
header {
|
228
|
+
&.has-navigation {
|
229
|
+
grid-template-areas: "company-logo main-navigation";
|
230
|
+
}
|
231
|
+
}
|
232
|
+
}
|
223
233
|
}
|
224
234
|
}
|
225
235
|
|
226
236
|
@media only screen and (max-width: $medium-max-width) {
|
227
|
-
.cmd-site-header{
|
228
|
-
|
229
|
-
|
230
|
-
padding-bottom: calc(var(--default-padding) * 2);
|
231
|
-
}
|
237
|
+
.cmd-site-header {
|
238
|
+
padding-top: calc(var(--default-padding) * 2);
|
239
|
+
padding-bottom: calc(var(--default-padding) * 2);
|
232
240
|
|
233
241
|
header {
|
234
242
|
grid-auto-rows: auto; /* items should be as large as their content */
|
@@ -241,46 +249,12 @@ export default {
|
|
241
249
|
}
|
242
250
|
|
243
251
|
&.navigation-inline {
|
244
|
-
header {
|
245
|
-
&.has-navigation {
|
246
|
-
grid-template-areas: "main-navigation company-logo";
|
247
|
-
}
|
248
|
-
|
249
|
-
.cmd-company-logo {
|
250
|
-
grid-column: span var(--grid-small-span);
|
251
|
-
grid-column-end: -1
|
252
|
-
}
|
253
|
-
}
|
254
|
-
|
255
252
|
.cmd-main-navigation#main-navigation-wrapper {
|
256
|
-
grid-column: 1;
|
257
|
-
|
258
253
|
&:not(.persist-on-mobile) {
|
259
254
|
padding-left: var(--default-padding);
|
260
255
|
}
|
261
256
|
}
|
262
257
|
}
|
263
|
-
|
264
|
-
&.navigation-inline.off-canvas-right {
|
265
|
-
header {
|
266
|
-
&.has-navigation {
|
267
|
-
grid-template-areas: "company-logo main-navigation";
|
268
|
-
}
|
269
|
-
|
270
|
-
.cmd-company-logo {
|
271
|
-
grid-column: span var(--grid-large-span);
|
272
|
-
}
|
273
|
-
}
|
274
|
-
|
275
|
-
.cmd-main-navigation#main-navigation-wrapper {
|
276
|
-
grid-column: -1;
|
277
|
-
|
278
|
-
&:not(.persist-on-mobile) {
|
279
|
-
padding-right: var(--default-padding);
|
280
|
-
padding-left: 0;
|
281
|
-
}
|
282
|
-
}
|
283
|
-
}
|
284
258
|
}
|
285
259
|
}
|
286
260
|
|