comand-component-library 3.1.82 → 3.1.85
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 +1 -1
- package/src/App.vue +16 -6
- package/src/assets/data/address-data.json +2 -1
- package/src/components/CmdAddressData.vue +46 -39
- package/src/components/CmdCompanyLogo.vue +1 -1
- package/src/components/CmdFakeSelect.vue +5 -1
- package/src/components/CmdFormElement.vue +56 -26
- package/src/components/CmdListOfRequirements.vue +9 -2
- package/src/components/CmdMainNavigation.vue +4 -4
- package/src/components/CmdOpeningHours.vue +10 -8
- package/src/components/CmdShareButtons.vue +1 -1
- package/src/components/CmdSlideButton.vue +1 -1
- package/src/components/CmdSwitchLanguage.vue +18 -5
- package/src/components/CmdTable.vue +0 -7
- package/src/components/CmdThumbnailScroller.vue +24 -15
- package/src/components/CmdToggleDarkMode.vue +31 -6
- package/src/components/CmdTooltip.vue +1 -1
- package/src/components/CmdTooltipForInputElements.vue +20 -54
- package/src/documentation/generated/CmdAddressDataPropertyDescriptions.json +6 -6
- package/src/documentation/generated/CmdFormElementPropertyDescriptions.json +17 -4
- package/src/documentation/generated/CmdListOfRequirementsPropertyDescriptions.json +5 -0
- package/src/documentation/generated/CmdOpeningHoursPropertyDescriptions.json +5 -5
- package/src/documentation/generated/CmdShareButtonsPropertyDescriptions.json +1 -1
- package/src/documentation/generated/CmdThumbnailScrollerPropertyDescriptions.json +10 -0
- package/src/documentation/generated/CmdTooltipForInputElementsPropertyDescriptions.json +2 -27
- package/src/mixins/FieldValidation.js +2 -2
- package/src/mixins/GlobalDefaultMessageProperties.js +2 -1
- package/src/utilities.js +4 -0
package/package.json
CHANGED
package/src/App.vue
CHANGED
@@ -50,6 +50,7 @@
|
|
50
50
|
<li><a href="#section-tabs">Tabs</a></li>
|
51
51
|
<li><a href="#section-thumbnail-scroller">Thumbnail-Scroller</a></li>
|
52
52
|
<li><a href="#section-toggle-darkmode">ToggleDarkMode</a></li>
|
53
|
+
<li><a href="#section-tooltip">Tooltip</a></li>
|
53
54
|
<li><a href="#section-upload-form">Upload-Form</a></li>
|
54
55
|
</ul>
|
55
56
|
</div>
|
@@ -137,7 +138,6 @@
|
|
137
138
|
<h2>Inputfields in Columns</h2>
|
138
139
|
<div class="flex-container">
|
139
140
|
<CmdFormElement element="input"
|
140
|
-
labelText="Label for inputfield (with tooltip):"
|
141
141
|
type="text"
|
142
142
|
minlength="5"
|
143
143
|
id="inputfield1"
|
@@ -145,10 +145,13 @@
|
|
145
145
|
v-model="inputField1"
|
146
146
|
tooltipText="This is a tooltip!"
|
147
147
|
:status="validationStatus"
|
148
|
-
:disabled="disabledStatus"
|
149
|
-
|
148
|
+
:disabled="disabledStatus">
|
149
|
+
<template v-slot:labeltext>
|
150
|
+
<span v-html="'Label with <a href=\'#\'>Link</a> given by slot'"></span>
|
151
|
+
</template>
|
152
|
+
</CmdFormElement>
|
150
153
|
<CmdFormElement element="input"
|
151
|
-
labelText="Label for inputfield (required):"
|
154
|
+
labelText="Label for inputfield (required, with tooltip):"
|
152
155
|
type="text"
|
153
156
|
required="required"
|
154
157
|
minlength="5"
|
@@ -457,10 +460,14 @@
|
|
457
460
|
checkbox with boolean: {{ checkboxValue }}<br/>
|
458
461
|
checkboxes with values: {{ checkboxValues }}
|
459
462
|
</p>
|
463
|
+
|
460
464
|
<h3>Toggle Dark-Mode</h3>
|
461
465
|
<a id="section-toggle-darkmode"></a>
|
466
|
+
<h4>Toggle Dark-Mode (with label, not styled)</h4>
|
462
467
|
<CmdToggleDarkMode :showLabel="true"/>
|
468
|
+
<h4>Toggle Dark-Mode (without label, styled)</h4>
|
463
469
|
<CmdToggleDarkMode :showLabel="false" :use-styled-layout="true" />
|
470
|
+
|
464
471
|
<h2>Checkboxes and Radiobuttons</h2>
|
465
472
|
<h3>Checkboxes [native]</h3>
|
466
473
|
<div class="label inline">
|
@@ -1079,7 +1086,10 @@
|
|
1079
1086
|
<a id="section-thumbnail-scroller"></a>
|
1080
1087
|
<CmdWidthLimitationWrapper>
|
1081
1088
|
<h2 class="headline-demopage">Thumbnail-Scroller</h2>
|
1089
|
+
<h3>Thumbnail-Scroller as wide as content</h3>
|
1082
1090
|
<CmdThumbnailScroller :thumbnail-scroller-items="thumbnailScrollerData"/>
|
1091
|
+
<h3>Thumbnail-Scroller stretched to full width</h3>
|
1092
|
+
<CmdThumbnailScroller :thumbnail-scroller-items="thumbnailScrollerData" :fullWidth="true" />
|
1083
1093
|
</CmdWidthLimitationWrapper>
|
1084
1094
|
|
1085
1095
|
<a id="section-tooltip"></a>
|
@@ -1134,7 +1144,7 @@
|
|
1134
1144
|
textMiscInfo="Miscellaneous information"
|
1135
1145
|
/>
|
1136
1146
|
<CmdAddressData :addressData="addressData"
|
1137
|
-
:linkGoogleMaps="
|
1147
|
+
:linkGoogleMaps="false"
|
1138
1148
|
:cmdHeadline="{headlineText: 'Address data', headlineLevel: 6}"
|
1139
1149
|
/>
|
1140
1150
|
</div>
|
@@ -1226,8 +1236,8 @@ import CmdSiteHeader from "./components/CmdSiteHeader"
|
|
1226
1236
|
import CmdSlideshow from "@/components/CmdSlideshow.vue"
|
1227
1237
|
import CmdSwitchLanguage from "@/components/CmdSwitchLanguage.vue"
|
1228
1238
|
import CmdSystemMessage from "@/components/CmdSystemMessage.vue"
|
1229
|
-
import CmdTabs from "@/components/CmdTabs.vue"
|
1230
1239
|
import CmdTable from "@/components/CmdTable.vue"
|
1240
|
+
import CmdTabs from "@/components/CmdTabs.vue"
|
1231
1241
|
import CmdThumbnailScroller from "@/components/CmdThumbnailScroller.vue"
|
1232
1242
|
import CmdToggleDarkMode from "@/components/CmdToggleDarkMode.vue"
|
1233
1243
|
import CmdTooltip from "@/components/CmdTooltip.vue"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"company": {
|
3
|
-
"iconClass": "icon-
|
3
|
+
"iconClass": "icon-company",
|
4
4
|
"value": "Your company name"
|
5
5
|
},
|
6
6
|
"address": {
|
@@ -8,6 +8,7 @@
|
|
8
8
|
"streetNo": "Your Street/No",
|
9
9
|
"zip": "Your zip",
|
10
10
|
"city": "Your city",
|
11
|
+
"miscInfo": "",
|
11
12
|
"country": "Your country",
|
12
13
|
"longitude": "0.0",
|
13
14
|
"latitude": "0.0",
|
@@ -17,25 +17,28 @@
|
|
17
17
|
<!-- end company -->
|
18
18
|
|
19
19
|
<!-- begin address -->
|
20
|
-
<
|
21
|
-
<
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
<
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
<
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
20
|
+
<template v-if="addressData.address && addressData.address !== undefined">
|
21
|
+
<dt class="address">
|
22
|
+
<span v-if="addressData.address.iconClass && showLabelIcons" :class="addressData.address.iconClass" :title="getMessage('cmdaddressdata.labeltext.address')"></span>
|
23
|
+
<span v-if="showLabelTexts">{{ getMessage('cmdaddressdata.labeltext.address')}}</span>
|
24
|
+
</dt>
|
25
|
+
<dd v-if="addressData.address">
|
26
|
+
<a v-if="linkGoogleMaps" :href="locateAddress" target="google-maps" :title="getMessage('cmdaddressdata.title.open_address_on_google_maps')">
|
27
|
+
<span v-if="addressData.address.streetNo" class="street-address">{{ addressData.address.streetNo }}</span><br/>
|
28
|
+
<span v-if="addressData.address.zip" class="postal-code">{{ addressData.address.zip }} </span>
|
29
|
+
<span v-if="addressData.address.city" class="locality">{{ addressData.address.city }}</span><br/>
|
30
|
+
<span v-if="addressData.address.miscInfo">{{ addressData.address.miscInfo }}</span><br/>
|
31
|
+
<span v-if="addressData.address.country" class="country-name">{{ addressData.address.country }}</span>
|
32
|
+
</a>
|
33
|
+
<template v-else>
|
34
|
+
<span v-if="addressData.address.streetNo" class="street-address">{{addressData.address.streetNo }}</span><br/>
|
35
|
+
<span v-if="addressData.address.zip" class="postal-code">{{ addressData.address.zip }} </span>
|
36
|
+
<span v-if="addressData.address.city" class="locality">{{ addressData.address.city }}</span><br/>
|
37
|
+
<span v-if="addressData.address.miscInfo">{{ addressData.address.miscInfo }}</span><br/>
|
38
|
+
<span v-if="addressData.address.country" class="country-name">{{ addressData.address.country }}</span>
|
39
|
+
</template>
|
40
|
+
</dd>
|
41
|
+
</template>
|
39
42
|
<!-- end address -->
|
40
43
|
|
41
44
|
<!-- begin telephone -->
|
@@ -84,18 +87,19 @@
|
|
84
87
|
<span class="org">{{ addressData.company.value }}</span>
|
85
88
|
</li>
|
86
89
|
<li>
|
87
|
-
<a :href="locateAddress" target="google-maps"
|
88
|
-
|
89
|
-
<span
|
90
|
-
<span
|
91
|
-
<span
|
92
|
-
<span
|
90
|
+
<a v-if="linkGoogleMaps" :href="locateAddress" target="google-maps" :title="getMessage('cmdaddressdata.title.open_address_on_google_maps')">
|
91
|
+
<span v-if="addressData.address.streetNo" class="street-address">{{ addressData.address.streetNo }}</span><br/>
|
92
|
+
<span v-if="addressData.address.zip" class="postal-code">{{ addressData.address.zip }} </span>
|
93
|
+
<span v-if="addressData.address.city" class="locality">{{ addressData.address.city }}</span><br/>
|
94
|
+
<span v-if="addressData.address.miscInfo">{{ addressData.address.miscInfo }}</span><br/>
|
95
|
+
<span v-if="addressData.address.country" class="country-name">{{ addressData.address.country }}</span>
|
93
96
|
</a>
|
94
97
|
<template v-else>
|
95
|
-
<span
|
96
|
-
<span
|
97
|
-
<span
|
98
|
-
<span
|
98
|
+
<span v-if="addressData.address.streetNo" class="street-address">{{ addressData.address.streetNo }}</span><br/>
|
99
|
+
<span v-if="addressData.address.zip" class="postal-code">{{ addressData.address.zip }} </span>
|
100
|
+
<span v-if="addressData.address.city" class="locality">{{ addressData.address.city }}</span><br/>
|
101
|
+
<span v-if="addressData.address.miscInfo">{{ addressData.address.miscInfo }}</span><br/>
|
102
|
+
<span v-if="addressData.address.country" class="country-name">{{ addressData.address.country }}</span>
|
99
103
|
</template>
|
100
104
|
</li>
|
101
105
|
<li v-if="addressData.telephone?.value">
|
@@ -137,19 +141,12 @@ export default {
|
|
137
141
|
default: true
|
138
142
|
},
|
139
143
|
/**
|
140
|
-
* show a label-text
|
144
|
+
* show a label-text for each entry
|
141
145
|
*/
|
142
146
|
showLabelTexts: {
|
143
147
|
type: Boolean,
|
144
148
|
default: true
|
145
149
|
},
|
146
|
-
/**
|
147
|
-
* properties for CmdHeadline-component
|
148
|
-
*/
|
149
|
-
cmdHeadline: {
|
150
|
-
type: Object,
|
151
|
-
required: false
|
152
|
-
},
|
153
150
|
/**
|
154
151
|
* option to toggle labels (i.e. telephone, email etc.) in front/left of data
|
155
152
|
*/
|
@@ -170,6 +167,13 @@ export default {
|
|
170
167
|
linkGoogleMaps: {
|
171
168
|
type: Boolean,
|
172
169
|
default: false
|
170
|
+
},
|
171
|
+
/**
|
172
|
+
* properties for CmdHeadline-component
|
173
|
+
*/
|
174
|
+
cmdHeadline: {
|
175
|
+
type: Object,
|
176
|
+
required: false
|
173
177
|
}
|
174
178
|
},
|
175
179
|
computed: {
|
@@ -186,13 +190,16 @@ export default {
|
|
186
190
|
dl {
|
187
191
|
grid-row-gap: calc(var(--default-gap) / 2);
|
188
192
|
|
189
|
-
dt
|
193
|
+
dt {
|
190
194
|
display: flex;
|
191
195
|
align-items: center;
|
196
|
+
|
197
|
+
&.address {
|
198
|
+
align-items: flex-start;
|
199
|
+
}
|
192
200
|
}
|
193
201
|
}
|
194
202
|
|
195
|
-
|
196
203
|
ul {
|
197
204
|
flex-direction: column;
|
198
205
|
gap: calc(var(--default-gap) / 2);
|
@@ -478,6 +478,10 @@ export default {
|
|
478
478
|
margin-left: auto;
|
479
479
|
font-size: 1rem;
|
480
480
|
}
|
481
|
+
|
482
|
+
&:hover, &:active, &:focus {
|
483
|
+
background: var(--primary-color);
|
484
|
+
}
|
481
485
|
}
|
482
486
|
}
|
483
487
|
}
|
@@ -605,7 +609,7 @@ export default {
|
|
605
609
|
}
|
606
610
|
|
607
611
|
&:hover, &:active, &:focus {
|
608
|
-
background: var(--
|
612
|
+
background: var(--color-scheme-background-color);
|
609
613
|
|
610
614
|
span {
|
611
615
|
color: var(--status-color);
|
@@ -20,24 +20,20 @@
|
|
20
20
|
ref="label">
|
21
21
|
|
22
22
|
<!-- begin label-text (+ required asterisk) -->
|
23
|
-
<span v-if="labelText && $attrs.type !== 'checkbox' && $attrs.type !== 'radio'"
|
23
|
+
<span v-if="(labelText || $slots.labeltext) && $attrs.type !== 'checkbox' && $attrs.type !== 'radio'"
|
24
24
|
:class="['label-text', !showLabel ? 'hidden' : undefined]">
|
25
|
-
<span>{{ labelText }}<sup v-if="$attrs.required">*</sup></span>
|
25
|
+
<span v-if="labelText">{{ labelText }}<sup v-if="$attrs.required">*</sup></span>
|
26
|
+
<slot name="labeltext" />
|
26
27
|
|
27
28
|
<!-- begin CmdTooltipForInputElements -->
|
28
29
|
<CmdTooltipForInputElements
|
29
30
|
v-if="useCustomTooltip && (validationStatus === '' || validationStatus === 'error')"
|
30
31
|
ref="tooltip"
|
31
|
-
:showRequirements="showRequirements"
|
32
|
-
:inputRequirements="inputRequirements"
|
33
32
|
:validationStatus="validationStatus"
|
34
33
|
:validationMessage="getValidationMessage"
|
35
34
|
:validationTooltip="validationTooltip"
|
36
|
-
:inputAttributes="$attrs"
|
37
|
-
:inputModelValue="modelValue"
|
38
|
-
:helplink="helplink"
|
39
35
|
:relatedId="tooltipId"
|
40
|
-
:
|
36
|
+
:cmdListOfRequirements="listOfRequirements"
|
41
37
|
/>
|
42
38
|
<!-- end CmdTooltipForInputElements -->
|
43
39
|
|
@@ -101,18 +97,18 @@
|
|
101
97
|
<!-- begin checkbox and radiobutton -->
|
102
98
|
<template v-else-if="element === 'input' && ($attrs.type === 'checkbox' || $attrs.type === 'radio')">
|
103
99
|
<template v-if="!(onLabel && offLabel)">
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
100
|
+
<input
|
101
|
+
v-bind="elementAttributes"
|
102
|
+
@change="onChange"
|
103
|
+
@blur="onBlur"
|
104
|
+
:checked="isChecked"
|
105
|
+
:value="inputValue"
|
106
|
+
:class="[inputClass, validationStatus, toggleSwitchIconClass, { 'replace-input-type': replaceInputType, 'toggle-switch': toggleSwitch }]"
|
107
|
+
:id="labelId"
|
108
|
+
:disabled="$attrs.disabled"
|
109
|
+
:aria-invalid="validationStatus === 'error'"
|
110
|
+
/>
|
111
|
+
<span v-if="labelText" :class="['label-text', { hidden: !showLabel }]"><span>{{ labelText }}<sup v-if="$attrs.required">*</sup></span></span>
|
116
112
|
</template>
|
117
113
|
|
118
114
|
<!-- begin labels for toggle-switch with switch-label -->
|
@@ -211,7 +207,7 @@ import CmdTooltipForInputElements from "./CmdTooltipForInputElements"
|
|
211
207
|
|
212
208
|
export default {
|
213
209
|
inheritAttrs: false,
|
214
|
-
name: "
|
210
|
+
name: "CmdFormElement",
|
215
211
|
components: {
|
216
212
|
CmdTooltipForInputElements
|
217
213
|
},
|
@@ -423,6 +419,16 @@ export default {
|
|
423
419
|
type: Boolean,
|
424
420
|
default: true
|
425
421
|
},
|
422
|
+
/**
|
423
|
+
* text shown in front of character-count below textarea
|
424
|
+
*
|
425
|
+
* type-property must be set to textarea
|
426
|
+
* showCharactersTextarea-property must be activated
|
427
|
+
*/
|
428
|
+
textCharacters: {
|
429
|
+
type: String,
|
430
|
+
default: "Characters"
|
431
|
+
},
|
426
432
|
/**
|
427
433
|
* toggle visibility of search-button (next to search-field)
|
428
434
|
*/
|
@@ -468,7 +474,7 @@ export default {
|
|
468
474
|
* icon for error-validated items in list-of-requirements
|
469
475
|
*
|
470
476
|
* element-property must me set to 'input'
|
471
|
-
* showRequirements-
|
477
|
+
* showRequirements-subproperty (of CmdListOfRequirements) must be set to 'true'
|
472
478
|
*
|
473
479
|
*/
|
474
480
|
iconHasStateError: {
|
@@ -485,7 +491,7 @@ export default {
|
|
485
491
|
* icon for warning-validated items in list-of-requirements
|
486
492
|
*
|
487
493
|
* element-property must me set to 'input'
|
488
|
-
* showRequirements-
|
494
|
+
* showRequirements-subproperty (of CmdListOfRequirements) must be set to 'true'
|
489
495
|
*
|
490
496
|
*/
|
491
497
|
iconHasStateWarning: {
|
@@ -502,7 +508,7 @@ export default {
|
|
502
508
|
* icon for success-validated items in list-of-requirements
|
503
509
|
*
|
504
510
|
* element-property must me set to 'input'
|
505
|
-
* showRequirements-
|
511
|
+
* showRequirements-subproperty (of CmdListOfRequirements) must be set to 'true'
|
506
512
|
*
|
507
513
|
*/
|
508
514
|
iconHasStateSuccess: {
|
@@ -519,7 +525,7 @@ export default {
|
|
519
525
|
* icon for info-validated items in list-of-requirements
|
520
526
|
*
|
521
527
|
* element-property must me set to 'input'
|
522
|
-
* showRequirements-
|
528
|
+
* showRequirements-subproperty (of CmdListOfRequirements) must be set to 'true'
|
523
529
|
*
|
524
530
|
*/
|
525
531
|
iconHasStateInfo: {
|
@@ -592,8 +598,32 @@ export default {
|
|
592
598
|
}
|
593
599
|
}
|
594
600
|
},
|
601
|
+
/**
|
602
|
+
* properties for CmdListOfRequirements-component
|
603
|
+
*/
|
604
|
+
cmdListOfRequirements: {
|
605
|
+
type: Object,
|
606
|
+
default() {
|
607
|
+
return {}
|
608
|
+
}
|
609
|
+
}
|
595
610
|
},
|
596
611
|
computed: {
|
612
|
+
listOfRequirements() {
|
613
|
+
if (this.cmdListOfRequirements === undefined) {
|
614
|
+
return {
|
615
|
+
showRequirements: true,
|
616
|
+
showHeadline: true,
|
617
|
+
validationTooltip: this.validationTooltip,
|
618
|
+
inputRequirements: [],
|
619
|
+
inputAttributes: this.$attrs,
|
620
|
+
inputModelValue: this.modelValue,
|
621
|
+
helplink: {},
|
622
|
+
labelText: this.labelText
|
623
|
+
}
|
624
|
+
}
|
625
|
+
return this.cmdListOfRequirements
|
626
|
+
},
|
597
627
|
elementAttributes() {
|
598
628
|
const commonAttributes = ["name", "required", "readonly", "disabled", "autofocus"]
|
599
629
|
const attributes = {
|
@@ -640,7 +670,7 @@ export default {
|
|
640
670
|
return false
|
641
671
|
},
|
642
672
|
charactersTextarea() {
|
643
|
-
return "
|
673
|
+
return this.textCharacters + " " + this.modelValue.length + "/" + this.getMaxLength()
|
644
674
|
},
|
645
675
|
validationTooltip() {
|
646
676
|
if (!this.useCustomTooltip) {
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<template>
|
2
2
|
<div class="cmd-list-of-requirements">
|
3
3
|
<!-- begin cmd-custom-headline -->
|
4
|
-
<CmdHeadline :headline-level="cmdHeadline.headlineLevel">
|
4
|
+
<CmdHeadline v-if="showHeadline" :headline-level="cmdHeadline.headlineLevel">
|
5
5
|
{{ headlineRequirements }}<template v-if="labelText"><br/><em>{{ labelText }}</em></template>
|
6
6
|
</CmdHeadline>
|
7
7
|
<!-- end cmd-custom-headline -->
|
@@ -94,7 +94,7 @@ export default {
|
|
94
94
|
* set a helplink to a different page for further support
|
95
95
|
*/
|
96
96
|
helplink: {
|
97
|
-
type:
|
97
|
+
type: Object,
|
98
98
|
required: false
|
99
99
|
},
|
100
100
|
/**
|
@@ -121,6 +121,13 @@ export default {
|
|
121
121
|
}
|
122
122
|
}
|
123
123
|
},
|
124
|
+
/**
|
125
|
+
* toggle headline-visibility
|
126
|
+
*/
|
127
|
+
showHeadline: {
|
128
|
+
type: Boolean,
|
129
|
+
default: true
|
130
|
+
},
|
124
131
|
/**
|
125
132
|
* properties of CmdHeadline-component
|
126
133
|
*/
|
@@ -1,5 +1,6 @@
|
|
1
1
|
<template>
|
2
2
|
<div
|
3
|
+
v-if="navigationEntries.length"
|
3
4
|
:class="[
|
4
5
|
'cmd-main-navigation main-navigation-wrapper',
|
5
6
|
{
|
@@ -297,7 +298,6 @@ export default {
|
|
297
298
|
@media only screen and (max-width: $medium-max-width) {
|
298
299
|
.cmd-main-navigation {
|
299
300
|
--nav-transition: all .5s linear;
|
300
|
-
|
301
301
|
display: flex;
|
302
302
|
background: none; /* overwrite framework-css */
|
303
303
|
border: 0; /* overwrite framework-css */
|
@@ -340,7 +340,7 @@ export default {
|
|
340
340
|
}
|
341
341
|
|
342
342
|
nav {
|
343
|
-
--nav-width:
|
343
|
+
--nav-width: 33%;
|
344
344
|
|
345
345
|
position: fixed;
|
346
346
|
top: 0;
|
@@ -439,7 +439,7 @@ export default {
|
|
439
439
|
> a {
|
440
440
|
span {
|
441
441
|
+ span[class*="icon"]::before {
|
442
|
-
|
442
|
+
|
443
443
|
}
|
444
444
|
}
|
445
445
|
}
|
@@ -448,7 +448,7 @@ export default {
|
|
448
448
|
> a {
|
449
449
|
span {
|
450
450
|
+ span[class*="icon"]::before {
|
451
|
-
|
451
|
+
|
452
452
|
}
|
453
453
|
}
|
454
454
|
}
|
@@ -42,15 +42,10 @@ import CmdHeadline from "./CmdHeadline"
|
|
42
42
|
|
43
43
|
export default {
|
44
44
|
name: "CmdOpeningHours",
|
45
|
-
components: {
|
45
|
+
components: {
|
46
|
+
CmdHeadline
|
47
|
+
},
|
46
48
|
props: {
|
47
|
-
/**
|
48
|
-
* properties for CmdHeadline-component
|
49
|
-
*/
|
50
|
-
cmdHeadline: {
|
51
|
-
type: Object,
|
52
|
-
required: false
|
53
|
-
},
|
54
49
|
/**
|
55
50
|
* set a link to a detail page
|
56
51
|
*/
|
@@ -94,6 +89,13 @@ export default {
|
|
94
89
|
textMiscInfo: {
|
95
90
|
type: String,
|
96
91
|
required: false
|
92
|
+
},
|
93
|
+
/**
|
94
|
+
* properties for CmdHeadline-component
|
95
|
+
*/
|
96
|
+
cmdHeadline: {
|
97
|
+
type: Object,
|
98
|
+
required: false
|
97
99
|
}
|
98
100
|
}
|
99
101
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<template>
|
2
2
|
<a href="#"
|
3
3
|
@click.prevent
|
4
|
-
:class="['cmd-slide-button', 'button', slideButtonType
|
4
|
+
:class="['cmd-slide-button', 'button', slideButtonType]"
|
5
5
|
:title="getDirection.tooltip">
|
6
6
|
<span :class="getDirection.iconClass || 'next'"></span>
|
7
7
|
</a>
|
@@ -4,18 +4,18 @@
|
|
4
4
|
<li v-for="(language, index) in languages" :key="index">
|
5
5
|
<!-- begin link-type 'href' -->
|
6
6
|
<a v-if="language.link.type === 'href'" :href="language.link.path"
|
7
|
-
:class="['flag', language.iso2, {'active': language
|
7
|
+
:class="['flag', language.iso2, {'active': activeLanguage(language)}]"
|
8
8
|
:title="language.tooltip"
|
9
9
|
@click="$emit('click', { originalEvent: $event, language} )">
|
10
10
|
<img :src="getFlagURL(language.iso2)" :alt="language.name" />
|
11
11
|
</a>
|
12
|
-
<!-- end link-type 'href -->
|
12
|
+
<!-- end link-type 'href' -->
|
13
13
|
|
14
14
|
<!-- begin link-type 'router' -->
|
15
15
|
<router-link v-else
|
16
|
-
|
17
|
-
|
18
|
-
|
16
|
+
:class="['flag', language.iso2]"
|
17
|
+
:to="getRoute(language)" :title="language.tooltip"
|
18
|
+
@click="$emit('click', { originalEvent: $event, language})">
|
19
19
|
<img :src="getFlagURL(language.iso2)" :alt="language.name" />
|
20
20
|
</router-link>
|
21
21
|
<!-- end link-type 'router' -->
|
@@ -45,6 +45,11 @@ export default {
|
|
45
45
|
},
|
46
46
|
getFlagURL(isoCode) {
|
47
47
|
return require("../assets/images/flags/flag-" + isoCode + ".svg")
|
48
|
+
},
|
49
|
+
activeLanguage(language) {
|
50
|
+
if(language.active || language.iso2 === navigator.language) {
|
51
|
+
return true
|
52
|
+
}
|
48
53
|
}
|
49
54
|
}
|
50
55
|
}
|
@@ -61,6 +66,14 @@ export default {
|
|
61
66
|
li {
|
62
67
|
list-style-type: none;
|
63
68
|
margin: 0;
|
69
|
+
|
70
|
+
a:not(.active) {
|
71
|
+
filter: contrast(.5);
|
72
|
+
|
73
|
+
&:hover, &:focus, &:active {
|
74
|
+
filter: none;
|
75
|
+
}
|
76
|
+
}
|
64
77
|
}
|
65
78
|
}
|
66
79
|
}
|
@@ -194,19 +194,12 @@ export default {
|
|
194
194
|
gap: calc(var(--default-gap) / 2);
|
195
195
|
|
196
196
|
.button {
|
197
|
-
background: none;
|
198
197
|
padding: 0;
|
199
198
|
min-width: 2rem;
|
200
199
|
min-height: 2rem;
|
201
|
-
background: var(--pure-white);
|
202
200
|
|
203
201
|
span[class*="icon"] {
|
204
|
-
color: var(--primary-color);
|
205
202
|
font-size: 1rem;
|
206
|
-
|
207
|
-
&:hover, &:active, &:focus {
|
208
|
-
color: var(--hyperlink-color-highlighted);
|
209
|
-
}
|
210
203
|
}
|
211
204
|
}
|
212
205
|
}
|