comand-component-library 3.1.45 → 3.1.48
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 +47 -41
- package/src/App.vue +373 -135
- package/src/ComponentDocumentation.vue +156 -0
- package/src/ComponentLibraryHelp.vue +20 -0
- package/src/assets/data/accordion.json +21 -24
- package/src/assets/data/address-data.json +34 -0
- package/src/assets/data/bank-account-data.json +22 -0
- package/src/assets/data/box-product.json +14 -4
- package/src/assets/data/box-user.json +48 -22
- package/src/assets/data/breadcrumbs.json +11 -3
- package/src/assets/data/cookie-disclaimer.json +4 -4
- package/src/assets/data/fake-select-colors.json +4 -0
- package/src/assets/data/fake-select-filter-options.json +14 -0
- package/src/assets/data/fake-select-options-with-icons.json +6 -12
- package/src/assets/data/fake-select-options.json +3 -3
- package/src/assets/data/list-of-links-section-anchors.json +23 -0
- package/src/assets/data/list-of-links-top-header-navigation.json +20 -0
- package/src/assets/data/list-of-links.json +42 -0
- package/src/assets/data/main-navigation.json +48 -0
- package/src/assets/data/multistep-form-progress-bar.json +33 -0
- package/src/assets/data/select-options.json +4 -0
- package/src/assets/data/{share-buttons.json → share-buttons-page-by-json.json} +8 -8
- package/src/assets/data/share-buttons-page-by-property.json +30 -0
- package/src/assets/data/switch-language.json +20 -0
- package/src/assets/data/table-large.json +1 -1
- package/src/assets/data/table-small.json +1 -1
- package/src/assets/styles/global-styles.scss +43 -13
- package/src/assets/styles/transitions.scss +21 -1
- package/src/components/CmdAccordion.vue +43 -42
- package/src/components/CmdAddressData.vue +124 -56
- package/src/components/CmdBackToTopButton.vue +3 -3
- package/src/components/CmdBankAccountData.vue +104 -0
- package/src/components/CmdBox.vue +253 -56
- package/src/components/CmdBoxSiteSearch.vue +138 -39
- package/src/components/CmdBoxWrapper.vue +206 -0
- package/src/components/CmdBreadcrumbs.vue +29 -13
- package/src/components/CmdCompanyLogo.vue +6 -4
- package/src/components/CmdCookieDisclaimer.vue +99 -75
- package/src/components/CmdCopyrightInformation.vue +1 -1
- package/src/components/CmdCustomHeadline.vue +93 -0
- package/src/components/CmdFakeSelect.vue +285 -60
- package/src/components/CmdFancyBox.vue +47 -33
- package/src/components/CmdForm.vue +107 -0
- package/src/components/CmdFormElement.vue +515 -81
- package/src/components/CmdFormFilters.vue +25 -11
- package/src/components/CmdGoogleMaps.vue +9 -3
- package/src/components/CmdImageGallery.vue +28 -5
- package/src/components/CmdImageZoom.vue +9 -1
- package/src/components/CmdListOfLinks.vue +169 -0
- package/src/components/CmdLoginForm.vue +143 -63
- package/src/components/CmdMainNavigation.vue +140 -42
- package/src/components/CmdMultipleSwitch.vue +33 -2
- package/src/components/CmdMultistepFormProgressBar.vue +60 -10
- package/src/components/CmdOpeningHours.vue +36 -10
- package/src/components/CmdPager.vue +7 -5
- package/src/components/CmdProgressBar.vue +20 -3
- package/src/components/CmdShareButtons.vue +64 -9
- package/src/components/CmdSiteHeader.vue +27 -14
- package/src/components/CmdSlideButton.vue +5 -2
- package/src/components/CmdSlideshow.vue +23 -7
- package/src/components/CmdSwitchButton.vue +10 -3
- package/src/components/CmdSwitchLanguage.vue +18 -10
- package/src/components/CmdSystemMessage.vue +30 -17
- package/src/components/CmdTable.vue +15 -7
- package/src/components/CmdTabs.vue +43 -3
- package/src/components/CmdThumbnailScroller.vue +22 -6
- package/src/components/CmdTooltip.vue +184 -11
- package/src/components/CmdUploadForm.vue +198 -92
- package/src/components/CmdWidthLimitationWrapper.vue +9 -6
- package/src/composables/event.js +8 -0
- package/src/composables/scrollspy.js +52 -0
- package/src/directives/focus.js +19 -0
- package/src/directives/telephone.js +1 -1
- package/src/documentation/commonProps.js +6 -0
- package/src/documentation/components/ComponentCode.vue +50 -0
- package/src/documentation/components/ComponentProperties.vue +237 -0
- package/src/documentation/components/ExampleSectionWrapper.vue +46 -0
- package/src/documentation/components/ViewCodeData.vue +113 -0
- package/src/documentation/data/CmdAccordionHelp.js +22 -0
- package/src/documentation/data/CmdAddressDataHelp.js +17 -0
- package/src/documentation/data/CmdBackToTopButtonHelp.js +3 -0
- package/src/documentation/data/CmdBankAccountDataHelp.js +8 -0
- package/src/documentation/data/CmdBoxHelp.js +45 -0
- package/src/documentation/data/CmdBoxSiteSearchHelp.js +11 -0
- package/src/documentation/data/CmdBreadcrumbsHelp.js +6 -0
- package/src/documentation/data/CmdCompanyLogoHelp.js +8 -0
- package/src/documentation/data/CmdCookieDisclaimerHelp.js +9 -0
- package/src/documentation/data/CmdCopyrightInformation.js +2 -0
- package/src/documentation/data/CmdCustomHeadlineHelp.js +8 -0
- package/src/documentation/data/CmdFakeSelectHelp.js +60 -0
- package/src/documentation/data/CmdFancyBoxHelp.js +7 -0
- package/src/documentation/data/CmdFooterNavigationHelp.js +5 -0
- package/src/documentation/data/CmdFormElementHelp.js +189 -0
- package/src/documentation/data/CmdFormFiltersHelp.js +6 -0
- package/src/documentation/data/CmdFormHelp.js +10 -0
- package/src/documentation/data/CmdGoogleMapsHelp.js +5 -0
- package/src/documentation/data/CmdImageGalleryHelp.js +5 -0
- package/src/documentation/data/CmdImageZoomHelp.js +6 -0
- package/src/documentation/data/CmdListOfLinksHelp.js +24 -0
- package/src/documentation/data/CmdLoginFormHelp.js +6 -0
- package/src/documentation/data/CmdMainNavigationHelp.js +7 -0
- package/src/documentation/data/CmdMultistepFormProgressBarHelp.js +6 -0
- package/src/documentation/data/CmdOpeningHoursHelp.js +10 -0
- package/src/documentation/data/CmdPagerHelp.js +7 -0
- package/src/documentation/data/CmdProgressBarHelp.js +13 -0
- package/src/documentation/data/CmdShareButtonsHelp.js +13 -0
- package/src/documentation/data/CmdSiteHeaderHelp.js +21 -0
- package/src/documentation/data/CmdSlideButtonHelp.js +10 -0
- package/src/documentation/data/CmdSlideshowHelp.js +7 -0
- package/src/documentation/data/CmdSwitchLanguageHelp.js +6 -0
- package/src/documentation/data/CmdSystemMessageHelp.js +32 -0
- package/src/documentation/data/CmdTableHelp.js +14 -0
- package/src/documentation/data/CmdTabsHelp.js +10 -0
- package/src/documentation/data/CmdThumbnailScrollerHelp.js +5 -0
- package/src/documentation/data/CmdTooltipHelp.js +13 -0
- package/src/documentation/data/CmdUploadFormHelp.js +17 -0
- package/src/documentation/data/CmdWidthLimitationWrapperHelp.js +7 -0
- package/src/documentation/data/componentsDescription.json +158 -0
- package/src/documentation/generated/CmdAccordionPropertyDescriptions.json +57 -0
- package/src/documentation/generated/CmdAddressDataPropertyDescriptions.json +32 -0
- package/src/documentation/generated/CmdBackToTopButtonPropertyDescriptions.json +12 -0
- package/src/documentation/generated/CmdBankAccountDataPropertyDescriptions.json +34 -0
- package/src/documentation/generated/CmdBoxPropertyDescriptions.json +91 -0
- package/src/documentation/generated/CmdBoxSiteSearchPropertyDescriptions.json +41 -0
- package/src/documentation/generated/CmdBoxWrapperPropertyDescriptions.json +47 -0
- package/src/documentation/generated/CmdBreadcrumbsPropertyDescriptions.json +17 -0
- package/src/documentation/generated/CmdCompanyLogoPropertyDescriptions.json +27 -0
- package/src/documentation/generated/CmdCookieDisclaimerPropertyDescriptions.json +22 -0
- package/src/documentation/generated/CmdCustomHeadlinePropertyDescriptions.json +22 -0
- package/src/documentation/generated/CmdFakeSelectPropertyDescriptions.json +79 -0
- package/src/documentation/generated/CmdFancyBoxPropertyDescriptions.json +62 -0
- package/src/documentation/generated/CmdFooterNavigationPropertyDescriptions.json +17 -0
- package/src/documentation/generated/CmdFormElementPropertyDescriptions.json +178 -0
- package/src/documentation/generated/CmdFormFiltersPropertyDescriptions.json +32 -0
- package/src/documentation/generated/CmdFormPropertyDescriptions.json +40 -0
- package/src/documentation/generated/CmdGoogleMapsPropertyDescriptions.json +7 -0
- package/src/documentation/generated/CmdImageGalleryPropertyDescriptions.json +22 -0
- package/src/documentation/generated/CmdImageZoomPropertyDescriptions.json +12 -0
- package/src/documentation/generated/CmdListOfLinksPropertyDescriptions.json +60 -0
- package/src/documentation/generated/CmdLoginFormPropertyDescriptions.json +90 -0
- package/src/documentation/generated/CmdMainNavigationPropertyDescriptions.json +62 -0
- package/src/documentation/generated/CmdMultipleSwitchPropertyDescriptions.json +52 -0
- package/src/documentation/generated/CmdMultistepFormProgressBarPropertyDescriptions.json +17 -0
- package/src/documentation/generated/CmdOpeningHoursPropertyDescriptions.json +42 -0
- package/src/documentation/generated/CmdPagerPropertyDescriptions.json +37 -0
- package/src/documentation/generated/CmdProgressBarPropertyDescriptions.json +32 -0
- package/src/documentation/generated/CmdShareButtonsPropertyDescriptions.json +34 -0
- package/src/documentation/generated/CmdSiteHeaderPropertyDescriptions.json +27 -0
- package/src/documentation/generated/CmdSlideButtonPropertyDescriptions.json +25 -0
- package/src/documentation/generated/CmdSlideshowPropertyDescriptions.json +42 -0
- package/src/documentation/generated/CmdSwitchButtonPropertyDescriptions.json +79 -0
- package/src/documentation/generated/CmdSwitchLanguagePropertyDescriptions.json +7 -0
- package/src/documentation/generated/CmdSystemMessagePropertyDescriptions.json +40 -0
- package/src/documentation/generated/CmdTablePropertyDescriptions.json +62 -0
- package/src/documentation/generated/CmdTabsPropertyDescriptions.json +27 -0
- package/src/documentation/generated/CmdThumbnailScrollerPropertyDescriptions.json +32 -0
- package/src/documentation/generated/CmdTooltipPropertyDescriptions.json +17 -0
- package/src/documentation/generated/CmdUploadFormPropertyDescriptions.json +90 -0
- package/src/documentation/generated/CmdWidthLimitationWrapperPropertyDescriptions.json +41 -0
- package/src/documentation/generated/frameworkIcons.json +730 -0
- package/src/documentation/generated/logosIcons.json +110 -0
- package/src/documentation/tabs.js +46 -0
- package/src/documentation/views/ContainerPage.vue +237 -0
- package/src/documentation/views/HelpHome.vue +13 -0
- package/src/documentation/views/IconFont.vue +80 -0
- package/src/documentation/views/components/CmdAccordionHelp.vue +78 -0
- package/src/documentation/views/components/CmdAddressDataHelp.vue +65 -0
- package/src/documentation/views/components/CmdBackToTopButtonHelp.vue +62 -0
- package/src/documentation/views/components/CmdBankAccountDataHelp.vue +88 -0
- package/src/documentation/views/components/CmdBoxHelp.vue +137 -0
- package/src/documentation/views/components/CmdBoxSiteSearchHelp.vue +60 -0
- package/src/documentation/views/components/CmdBoxWrapperHelp.vue +111 -0
- package/src/documentation/views/components/CmdBreadcrumbsHelp.vue +51 -0
- package/src/documentation/views/components/CmdCompanyLogoHelp.vue +48 -0
- package/src/documentation/views/components/CmdCookieDisclaimerHelp.vue +105 -0
- package/src/documentation/views/components/CmdCustomHeadlineHelp.vue +53 -0
- package/src/documentation/views/components/CmdFakeSelectHelp.vue +175 -0
- package/src/documentation/views/components/CmdFancyBoxHelp.vue +79 -0
- package/src/documentation/views/components/CmdFormElementHelp.vue +412 -0
- package/src/documentation/views/components/CmdFormFiltersHelp.vue +69 -0
- package/src/documentation/views/components/CmdFormHelp.vue +41 -0
- package/src/documentation/views/components/CmdGoogleMapsHelp.vue +55 -0
- package/src/documentation/views/components/CmdImageGalleryHelp.vue +46 -0
- package/src/documentation/views/components/CmdImageZoomHelp.vue +34 -0
- package/src/documentation/views/components/CmdListOfLinksHelp.vue +64 -0
- package/src/documentation/views/components/CmdLoginFormHelp.vue +117 -0
- package/src/documentation/views/components/CmdMainNavigationHelp.vue +94 -0
- package/src/documentation/views/components/CmdMultistepFormProgressBarHelp.vue +49 -0
- package/src/documentation/views/components/CmdOpeningHoursHelp.vue +49 -0
- package/src/documentation/views/components/CmdPagerHelp.vue +57 -0
- package/src/documentation/views/components/CmdProgressBarHelp.vue +47 -0
- package/src/documentation/views/components/CmdShareButtonsHelp.vue +65 -0
- package/src/documentation/views/components/CmdSiteHeaderHelp.vue +72 -0
- package/src/documentation/views/components/CmdSlideButtonHelp.vue +90 -0
- package/src/documentation/views/components/CmdSlideshowHelp.vue +60 -0
- package/src/documentation/views/components/CmdSwitchLanguageHelp.vue +64 -0
- package/src/documentation/views/components/CmdSystemMessageHelp.vue +86 -0
- package/src/documentation/views/components/CmdTableHelp.vue +84 -0
- package/src/documentation/views/components/CmdTabsHelp.vue +52 -0
- package/src/documentation/views/components/CmdThumbnailScrollerHelp.vue +50 -0
- package/src/documentation/views/components/CmdTooltipHelp.vue +59 -0
- package/src/documentation/views/components/CmdUploadFormHelp.vue +59 -0
- package/src/documentation/views/components/CmdWidthLimitationWrapperHelp.vue +46 -0
- package/src/index.js +7 -3
- package/src/main.js +25 -15
- package/src/mixins/CmdAddressData/DefaultMessageProperties.js +17 -0
- package/src/mixins/CmdBox/DefaultMessageProperties.js +10 -0
- package/src/mixins/CmdFakeSelect/DefaultMessageProperties.js +9 -0
- package/src/mixins/CmdFormElement/DefaultMessageProperties.js +9 -0
- package/src/mixins/CmdImageGallery/DefaultMessageProperties.js +9 -0
- package/src/mixins/CmdSiteSearch/DefaultMessageProperties.js +14 -0
- package/src/mixins/CmdUploadForm/DefaultMessageProperties.js +5 -1
- package/src/mixins/FieldValidation.js +220 -0
- package/src/mixins/GlobalDefaultMessageProperties.js +15 -0
- package/src/mixins/Tooltip.js +26 -0
- package/src/router/index.js +67 -0
- package/src/utilities.js +3 -6
- package/src/utils/common.js +6 -0
- package/src/utils/dom.js +8 -0
- package/src/utils/globalSequence.js +13 -0
- package/src/utils/string.js +8 -0
- package/src/assets/data/address.json +0 -13
- package/src/assets/data/footer-navigation.json +0 -38
- package/src/assets/data/languages.json +0 -31
- package/src/assets/data/multisteps.json +0 -27
- package/src/assets/data/navigation.json +0 -47
- package/src/assets/data/pager.json +0 -11
- package/src/assets/data/top-header-navigation.json +0 -27
- package/src/components/CmdFooterNavigation.vue +0 -71
- package/src/components/CmdMainHeadline.vue +0 -75
- package/src/components/CmdTopHeaderNavigation.vue +0 -88
@@ -1,54 +1,142 @@
|
|
1
1
|
<template>
|
2
2
|
<div
|
3
|
-
:class="[
|
3
|
+
:class="[
|
4
|
+
'cmd-main-navigation main-navigation-wrapper',
|
5
|
+
{
|
6
|
+
'hide-sub-navigation' : !showSubNavigations,
|
7
|
+
'open-off-canvas': showOffcanvas,
|
8
|
+
'persist-on-mobile': persistOnMobile,
|
9
|
+
'show-content-overlay': showContentOverlay
|
10
|
+
}
|
11
|
+
]">
|
4
12
|
<nav>
|
13
|
+
<!-- begin main-level -->
|
5
14
|
<ul :class="{'stretch-items' : stretchMainItems}">
|
6
15
|
<li class="close-nav" v-if="showOffcanvas">
|
7
16
|
<a href="#" @click.prevent="showOffcanvas = false">
|
8
17
|
<span v-if="closeOffcanvas.iconClass" :class="closeOffcanvas.iconClass"></span>
|
9
|
-
<span :class="{'hidden': closeOffcanvas.
|
18
|
+
<span :class="{'hidden': !closeOffcanvas.showText}">{{ closeOffcanvas.text }}</span>
|
10
19
|
</a>
|
11
20
|
</li>
|
12
21
|
<li v-for="(navigationEntry, index) in navigationEntries" :key="index"
|
13
22
|
:class="{'open' : navigationEntry.open}">
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
23
|
+
<!-- begin type === href -->
|
24
|
+
<a
|
25
|
+
v-if="navigationEntry.type === 'href'"
|
26
|
+
:href="navigationEntry.path"
|
27
|
+
:title="navigationEntry.tooltip"
|
28
|
+
:target="navigationEntry.target"
|
29
|
+
@click="executeLink($event, navigationEntry)"
|
30
|
+
>
|
31
|
+
<span v-if="navigationEntry.iconClass" :class="navigationEntry.iconClass"></span>
|
32
|
+
<span v-if="navigationEntry.text">{{ navigationEntry.text }}</span>
|
18
33
|
<span v-if="navigationEntry.subentries && navigationEntry.subentries.length > 0"
|
19
|
-
:class="subentriesIconClass"
|
34
|
+
:class="subentriesIconClass"
|
35
|
+
></span>
|
20
36
|
</a>
|
37
|
+
<!-- end type === href -->
|
38
|
+
|
39
|
+
<!-- begin type === router -->
|
40
|
+
<router-link
|
41
|
+
v-if="navigationEntry.type === 'router'"
|
42
|
+
:to="getRoute(navigationEntry)"
|
43
|
+
:title="navigationEntry.tooltip"
|
44
|
+
:target="navigationEntry.target"
|
45
|
+
@click="executeLink($event, navigationEntry)"
|
46
|
+
>
|
47
|
+
<span v-if="navigationEntry.iconClass" :class="navigationEntry.iconClass"></span>
|
48
|
+
<span v-if="navigationEntry.text">{{ navigationEntry.text }}</span>
|
49
|
+
<span v-if="navigationEntry.subentries && navigationEntry.subentries.length > 0"
|
50
|
+
:class="subentriesIconClass"></span>
|
51
|
+
</router-link>
|
52
|
+
<!-- end type === router -->
|
53
|
+
|
54
|
+
<!-- begin sub-level 1 -->
|
21
55
|
<ul v-if="navigationEntry.subentries" aria-expanded="true">
|
22
56
|
<li v-for="(navigationSubEntry, subindex) in navigationEntry.subentries" :key="subindex"
|
23
57
|
:class="{'open' : navigationSubEntry.open}">
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
58
|
+
<!-- begin type === href -->
|
59
|
+
<a v-if="navigationSubEntry.type === 'href'"
|
60
|
+
:href="navigationSubEntry.path"
|
61
|
+
:title="navigationSubEntry.tooltip"
|
62
|
+
:target="navigationSubEntry.target"
|
63
|
+
@click="executeLink($event, navigationSubEntry)">
|
64
|
+
<span v-if="navigationSubEntry.iconClass" :class="navigationSubEntry.iconClass"></span>
|
65
|
+
<span v-if="navigationSubEntry.text">{{ navigationSubEntry.text }}</span>
|
66
|
+
<span v-if="navigationSubEntry.subentries && navigationSubEntry.subentries.length > 0"
|
67
|
+
:class="subentriesIconClass"
|
68
|
+
></span>
|
28
69
|
</a>
|
70
|
+
<!-- end type === href -->
|
71
|
+
|
72
|
+
<!-- begin type === router -->
|
73
|
+
<router-link v-if="navigationSubEntry.type === 'router'"
|
74
|
+
:to="getRoute(navigationSubEntry)"
|
75
|
+
:title="navigationSubEntry.tooltip"
|
76
|
+
:target="navigationSubEntry.target"
|
77
|
+
@click="executeLink($event, navigationSubEntry)">
|
78
|
+
<span v-if="navigationSubEntry.iconClass" :class="navigationSubEntry.iconClass"></span>
|
79
|
+
<span v-if="navigationSubEntry.text">{{ navigationSubEntry.text }}</span>
|
80
|
+
<span v-if="navigationSubEntry.subentries && navigationSubEntry.subentries.length > 0"
|
81
|
+
:class="subentriesIconClass"></span>
|
82
|
+
</router-link>
|
83
|
+
<!-- end type === router -->
|
84
|
+
|
85
|
+
<!-- begin sub-level 2 -->
|
29
86
|
<ul v-if="navigationSubEntry.subentries">
|
30
87
|
<li v-for="(navigationSubSubEntry, subsubindex) in navigationSubEntry.subentries"
|
31
88
|
:key="subsubindex">
|
32
|
-
|
33
|
-
|
34
|
-
|
89
|
+
<!-- begin type === href -->
|
90
|
+
<a v-if="navigationEntry.type === 'href'"
|
91
|
+
:href="navigationSubSubEntry.path"
|
92
|
+
:title="navigationSubSubEntry.tooltip"
|
93
|
+
:target="navigationSubSubEntry.target"
|
94
|
+
@click="executeLink($event, navigationSubSubEntry)">
|
95
|
+
<span v-if="navigationSubSubEntry.iconClass" :class="navigationSubSubEntry.iconClass"></span>
|
96
|
+
<span v-if="navigationSubSubEntry.text">{{ navigationSubSubEntry.text }}</span>
|
97
|
+
<span v-if="navigationSubSubEntry.subentries && navigationSubSubEntry.subentries.length > 0"
|
98
|
+
:class="subentriesIconClass"
|
99
|
+
></span>
|
35
100
|
</a>
|
101
|
+
<!-- end type === href -->
|
102
|
+
|
103
|
+
<!-- begin type === router -->
|
104
|
+
<router-link v-if="navigationEntry.type === 'router'"
|
105
|
+
:to="getRoute(navigationSubSubEntry)"
|
106
|
+
:target="navigationSubSubEntry.target"
|
107
|
+
:title="navigationSubSubEntry.tooltip"
|
108
|
+
@click="executeLink($event, navigationSubSubEntry)">
|
109
|
+
<span v-if="navigationSubSubEntry.iconClass" :class="navigationSubSubEntry.iconClass"></span>
|
110
|
+
<span v-if="navigationSubSubEntry.text">{{ navigationSubSubEntry.text }}</span>
|
111
|
+
<span v-if="navigationSubSubEntry.subentries && navigationSubSubEntry.subentries.length > 0"
|
112
|
+
:class="subentriesIconClass"></span>
|
113
|
+
</router-link>
|
114
|
+
<!-- end type === router -->
|
36
115
|
</li>
|
37
116
|
</ul>
|
117
|
+
<!-- end sub-level 2 -->
|
38
118
|
</li>
|
39
119
|
</ul>
|
120
|
+
<!-- begin sub-level 1 -->
|
40
121
|
</li>
|
41
122
|
</ul>
|
123
|
+
<!-- end main-level -->
|
42
124
|
</nav>
|
125
|
+
|
126
|
+
<!-- begin offCanvasButton -->
|
43
127
|
<a href="#" class="button" id="toggle-offcanvas" @click.prevent="showOffcanvas = !showOffcanvas"
|
44
128
|
v-if="persistOnMobile === false">
|
45
129
|
<span :class="buttonOffcanvas.iconClass"></span>
|
46
|
-
<span :class="{'hidden' : buttonOffcanvas.
|
130
|
+
<span :class="{'hidden' : !buttonOffcanvas.showText}">{{ buttonOffcanvas.text }}</span>
|
47
131
|
</a>
|
132
|
+
<!-- end offCanvasButton -->
|
48
133
|
</div>
|
49
134
|
</template>
|
50
135
|
|
51
136
|
<script>
|
137
|
+
// import functions
|
138
|
+
import {getRoute} from "../utilities.js"
|
139
|
+
|
52
140
|
export default {
|
53
141
|
name: "CmdMainNavigation",
|
54
142
|
data() {
|
@@ -59,7 +147,7 @@ export default {
|
|
59
147
|
},
|
60
148
|
props: {
|
61
149
|
/**
|
62
|
-
* toggle if main-entries (on
|
150
|
+
* toggle if main-entries (on first-level) should be (horizontally) stretched equally
|
63
151
|
*/
|
64
152
|
stretchMainItems: {
|
65
153
|
type: Boolean,
|
@@ -67,6 +155,8 @@ export default {
|
|
67
155
|
},
|
68
156
|
/**
|
69
157
|
* set if navigation should persist on mobile and not be collapsed to off-canvas
|
158
|
+
*
|
159
|
+
* @affectsStyling: true
|
70
160
|
*/
|
71
161
|
persistOnMobile: {
|
72
162
|
type: Boolean,
|
@@ -81,6 +171,8 @@ export default {
|
|
81
171
|
},
|
82
172
|
/**
|
83
173
|
* link shown inside off-canvas-navigation to close itself
|
174
|
+
*
|
175
|
+
* @requiredForAccessibility: partial
|
84
176
|
*/
|
85
177
|
closeOffcanvas: {
|
86
178
|
type: Object,
|
@@ -88,12 +180,14 @@ export default {
|
|
88
180
|
return {
|
89
181
|
iconClass: "icon-cancel",
|
90
182
|
text: "Close navigation",
|
91
|
-
|
183
|
+
showText: true
|
92
184
|
}
|
93
185
|
}
|
94
186
|
},
|
95
187
|
/**
|
96
188
|
* button to open off-canvas-navigation
|
189
|
+
*
|
190
|
+
* @requiredForAccessibility: partial
|
97
191
|
*/
|
98
192
|
buttonOffcanvas: {
|
99
193
|
type: Object,
|
@@ -101,7 +195,7 @@ export default {
|
|
101
195
|
return {
|
102
196
|
iconClass: "icon-bars",
|
103
197
|
text: "Open navigation",
|
104
|
-
|
198
|
+
showText: false
|
105
199
|
}
|
106
200
|
}
|
107
201
|
},
|
@@ -110,17 +204,19 @@ export default {
|
|
110
204
|
*/
|
111
205
|
subentriesIconClass: {
|
112
206
|
type: String,
|
113
|
-
default: "icon-single-arrow-
|
207
|
+
default: "icon-single-arrow-right"
|
114
208
|
},
|
115
209
|
/**
|
116
210
|
* icon to show if a sub-entry has further sub-entries
|
117
211
|
*/
|
118
212
|
subSubentriesIconClass: {
|
119
213
|
type: String,
|
120
|
-
default: "icon-single-arrow-
|
214
|
+
default: "icon-single-arrow-down"
|
121
215
|
},
|
122
216
|
/**
|
123
217
|
* toggle if overlay over content should be shown if off-canvas is open
|
218
|
+
*
|
219
|
+
* @affectsStyling: true
|
124
220
|
*/
|
125
221
|
showContentOverlay: {
|
126
222
|
type: Boolean,
|
@@ -128,13 +224,13 @@ export default {
|
|
128
224
|
}
|
129
225
|
},
|
130
226
|
methods: {
|
131
|
-
|
132
|
-
if (navigationEntry.target || (navigationEntry.
|
227
|
+
executeLink(event, navigationEntry) {
|
228
|
+
if (navigationEntry.target || (navigationEntry.path.length > 1)) {
|
133
229
|
return true
|
134
230
|
}
|
135
|
-
if (navigationEntry.
|
231
|
+
if (navigationEntry.path === '#' || navigationEntry.path === '') {
|
136
232
|
event.preventDefault()
|
137
|
-
this.$emit('click', navigationEntry.
|
233
|
+
this.$emit('click', navigationEntry.path)
|
138
234
|
|
139
235
|
}
|
140
236
|
if (!(navigationEntry.subentries && navigationEntry.subentries.length > 0)) {
|
@@ -143,6 +239,9 @@ export default {
|
|
143
239
|
// add entry "open" to navigationEntry-object (will be watched by vue3 automatically)
|
144
240
|
navigationEntry.open = !navigationEntry.open
|
145
241
|
}
|
242
|
+
},
|
243
|
+
getRoute(navigationEntry) {
|
244
|
+
return getRoute(navigationEntry)
|
146
245
|
}
|
147
246
|
}
|
148
247
|
}
|
@@ -214,7 +313,7 @@ export default {
|
|
214
313
|
width: auto;
|
215
314
|
}
|
216
315
|
|
217
|
-
&.open {
|
316
|
+
&.open-off-canvas {
|
218
317
|
nav {
|
219
318
|
left: 0;
|
220
319
|
opacity: 1;
|
@@ -223,13 +322,27 @@ export default {
|
|
223
322
|
background: var(--default-background-color);
|
224
323
|
border-right: var(--default-border);
|
225
324
|
}
|
325
|
+
|
326
|
+
&.show-content-overlay {
|
327
|
+
nav {
|
328
|
+
&::after {
|
329
|
+
content: "";
|
330
|
+
position: fixed;
|
331
|
+
width: calc(100% - var(--nav-width));
|
332
|
+
top: 0;
|
333
|
+
left: var(--nav-width);
|
334
|
+
height: 100%;
|
335
|
+
display: block;
|
336
|
+
background: var(--pure-black-reduced-opacity);
|
337
|
+
}
|
338
|
+
}
|
339
|
+
}
|
226
340
|
}
|
227
341
|
|
228
342
|
nav {
|
229
343
|
--nav-width: 30%;
|
230
344
|
|
231
|
-
position:
|
232
|
-
top: 0;
|
345
|
+
position: absolute;
|
233
346
|
left: -100%;
|
234
347
|
width: var(--nav-width);
|
235
348
|
height: 100%;
|
@@ -346,21 +459,6 @@ export default {
|
|
346
459
|
}
|
347
460
|
}
|
348
461
|
}
|
349
|
-
|
350
|
-
&.show-content-overlay {
|
351
|
-
nav {
|
352
|
-
&::after {
|
353
|
-
content: "";
|
354
|
-
position: fixed;
|
355
|
-
width: calc(100% - var(--nav-width));
|
356
|
-
top: 0;
|
357
|
-
left: var(--nav-width);
|
358
|
-
height: 100%;
|
359
|
-
display: block;
|
360
|
-
background: var(--pure-black-reduced-opacity);
|
361
|
-
}
|
362
|
-
}
|
363
|
-
}
|
364
462
|
}
|
365
463
|
}
|
366
464
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<template>
|
2
2
|
<div :class="['label', 'multiple-switch', {disabled: status === 'disabled', error: status === 'error'}]">
|
3
|
-
<span
|
3
|
+
<span :class="{hidden: !showLegend}">{{ labelText }}</span>
|
4
4
|
<span class="flex-container no-gap no-flex">
|
5
5
|
<label :class="{disabled: status === 'disabled'}" :for="multipleswitch.id"
|
6
6
|
v-for="(multipleswitch, index) in multipleSwitches" :key="index">
|
@@ -23,27 +23,58 @@
|
|
23
23
|
export default {
|
24
24
|
name: "CmdMultipleSwitch",
|
25
25
|
props: {
|
26
|
-
|
26
|
+
/**
|
27
|
+
* value for v-model
|
28
|
+
*/
|
29
|
+
value: {
|
27
30
|
type: [String, Array],
|
28
31
|
required: false,
|
29
32
|
default: ""
|
30
33
|
},
|
34
|
+
/**
|
35
|
+
* toggle label visibility
|
36
|
+
*/
|
37
|
+
showLabel: {
|
38
|
+
type: Boolean,
|
39
|
+
default: true
|
40
|
+
},
|
41
|
+
/**
|
42
|
+
* text for label
|
43
|
+
*
|
44
|
+
* @requiredForAccessibility: true
|
45
|
+
*/
|
31
46
|
labelText: {
|
32
47
|
type: String,
|
33
48
|
required: false
|
34
49
|
},
|
50
|
+
/**
|
51
|
+
* list of switches
|
52
|
+
*/
|
35
53
|
multipleSwitches: {
|
36
54
|
type: Array,
|
37
55
|
required: true
|
38
56
|
},
|
57
|
+
/**
|
58
|
+
* set type for switches
|
59
|
+
*
|
60
|
+
* @allowedValues: checkbox, radio
|
61
|
+
*/
|
39
62
|
switchTypes: {
|
40
63
|
type: String,
|
41
64
|
required: true
|
42
65
|
},
|
66
|
+
/**
|
67
|
+
* name-attribute for switches
|
68
|
+
*/
|
43
69
|
switchNames: {
|
44
70
|
type: String,
|
45
71
|
required: true
|
46
72
|
},
|
73
|
+
/**
|
74
|
+
* status for all switches
|
75
|
+
*
|
76
|
+
* @allowedValues: error, disabled
|
77
|
+
*/
|
47
78
|
status: {
|
48
79
|
type: String,
|
49
80
|
required: false
|
@@ -1,26 +1,70 @@
|
|
1
1
|
<template>
|
2
2
|
<ol class="cmd-multistep-form-progress-bar">
|
3
3
|
<li v-for="(step, index) in multisteps" :key="index" :class="{active : activeLink === index}">
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
<!-- begin type === href -->
|
5
|
+
<a v-if="step.type === 'href'"
|
6
|
+
:href="step.path" @click.stop.prevent="clickedStep($event, index)"
|
7
|
+
:title="step.tooltip"
|
8
|
+
>
|
9
|
+
<span v-if="showStepNumber" class="number">{{ index + 1 }}</span>
|
10
|
+
<span v-if="step.iconClass" :class="step.iconClass"></span>
|
11
|
+
<span v-if="step.text">{{ step.text }}</span>
|
8
12
|
<span :class="separatorIconClass"></span>
|
9
13
|
</a>
|
14
|
+
<!-- end type === href -->
|
15
|
+
|
16
|
+
<!-- begin type === router -->
|
17
|
+
<router-link
|
18
|
+
v-if="step.type === 'router'"
|
19
|
+
:to="getRoute(step)"
|
20
|
+
:title="step.tooltip"
|
21
|
+
>
|
22
|
+
<span v-if="showStepNumber" class="number">{{ index + 1 }}</span>
|
23
|
+
<span v-if="step.iconClass" :class="step.iconClass"></span>
|
24
|
+
<span v-if="step.text">{{ step.text }}</span>
|
25
|
+
<span :class="separatorIconClass"></span>
|
26
|
+
</router-link>
|
27
|
+
<!-- end type === router -->
|
28
|
+
|
29
|
+
<!-- begin type === button/submit -->
|
30
|
+
<button
|
31
|
+
v-if="step.type === 'button' || step.type === 'submit'"
|
32
|
+
class="button"
|
33
|
+
:type="step.type"
|
34
|
+
:name="step.name"
|
35
|
+
:title="step.tooltip"
|
36
|
+
:formaction="step.formaction"
|
37
|
+
@click.stop.prevent="clickedStep($event, index)"
|
38
|
+
>
|
39
|
+
<span v-if="showStepNumber" class="number">{{ index + 1 }}</span>
|
40
|
+
<span v-if="step.iconClass" :class="step.iconClass"></span>
|
41
|
+
<span v-if="step.text">{{ step.text }}</span>
|
42
|
+
<span :class="separatorIconClass"></span>
|
43
|
+
</button>
|
44
|
+
<!-- end type === button/submit -->
|
10
45
|
</li>
|
11
46
|
</ol>
|
12
47
|
</template>
|
13
48
|
|
14
49
|
<script>
|
50
|
+
// import functions
|
51
|
+
import {getRoute} from "../utilities.js"
|
52
|
+
|
15
53
|
export default {
|
16
54
|
name: 'CmdMultistepFormProgressBar',
|
17
55
|
data() {
|
18
56
|
return {
|
19
|
-
activeLink: 0
|
20
|
-
showStepNumber: true
|
57
|
+
activeLink: 0
|
21
58
|
}
|
22
59
|
},
|
23
60
|
props: {
|
61
|
+
/**
|
62
|
+
* toggle visibility of step-number in front/left of link-icon and -name
|
63
|
+
*/
|
64
|
+
showStepNumber: {
|
65
|
+
type: Boolean,
|
66
|
+
default: false
|
67
|
+
},
|
24
68
|
/**
|
25
69
|
* list of multisteps
|
26
70
|
*/
|
@@ -29,17 +73,22 @@ export default {
|
|
29
73
|
required: true
|
30
74
|
},
|
31
75
|
/**
|
32
|
-
* icon-class for separator shown
|
76
|
+
* icon-class for separator shown between multisteps
|
33
77
|
*/
|
34
78
|
separatorIconClass: {
|
35
79
|
type: String,
|
36
|
-
|
80
|
+
default() {
|
81
|
+
return "icon-single-arrow-right"
|
82
|
+
}
|
37
83
|
}
|
38
84
|
},
|
39
85
|
methods: {
|
40
86
|
clickedStep(event, index) {
|
41
87
|
this.activeLink = index;
|
42
88
|
this.$emit('click', {event: event, index: index, stepPath: this.multisteps[index].path})
|
89
|
+
},
|
90
|
+
getRoute(step) {
|
91
|
+
return getRoute(step)
|
43
92
|
}
|
44
93
|
}
|
45
94
|
}
|
@@ -165,7 +214,9 @@ export default {
|
|
165
214
|
|
166
215
|
&:hover, &:active, &:focus {
|
167
216
|
span, span[class*="icon"] {
|
168
|
-
|
217
|
+
&:not(:last-child) {
|
218
|
+
color: var(--primary-color);
|
219
|
+
}
|
169
220
|
}
|
170
221
|
}
|
171
222
|
}
|
@@ -185,7 +236,6 @@ export default {
|
|
185
236
|
li {
|
186
237
|
&:not(:last-child) {
|
187
238
|
border-bottom: var(--default-border);
|
188
|
-
border-bottom-width: .2rem;
|
189
239
|
}
|
190
240
|
|
191
241
|
a {
|
@@ -1,41 +1,67 @@
|
|
1
1
|
<template>
|
2
2
|
<div class="cmd-opening-hours">
|
3
|
-
|
4
|
-
<
|
3
|
+
<!-- begin cmd-custom-headline -->
|
4
|
+
<CmdCustomHeadline v-if="cmdCustomHeadline" :headline="cmdCustomHeadline" />
|
5
|
+
<!-- end cmd-custom-headline -->
|
6
|
+
|
7
|
+
<!-- begin opening-status with link to detail-page -->
|
8
|
+
<template v-if="link && link?.path && link?.show">
|
9
|
+
<a v-if="link.type === 'href'" :href="link.path" :class="{closed: closed}">{{ textOpenClosed }}</a>
|
10
|
+
<router-link v-if="link.type === 'router'" :to="link.path" :class="{closed: closed}">{{ textOpenClosed }}</router-link>
|
11
|
+
<button v-if="link.type === 'button'" :class="['button', {closed: closed}]">{{ textOpenClosed }}</button>
|
12
|
+
</template>
|
13
|
+
<!-- end opening-status with link to detail-page -->
|
14
|
+
|
15
|
+
<!-- begin opening-status (without link) -->
|
5
16
|
<span v-else :class="{'closed': closed}">{{ textOpenClosed }}</span>
|
17
|
+
<!-- end opening-status (without link) -->
|
18
|
+
|
19
|
+
<!-- begin opening-days and -hours -->
|
6
20
|
<dl>
|
7
21
|
<template v-for="day in openingHours" :key="day.day">
|
8
22
|
<dt>{{ day.day }}:</dt>
|
9
23
|
<dd>{{ day.fromTime }}–{{ day.tillTime }}</dd>
|
10
24
|
</template>
|
11
25
|
</dl>
|
12
|
-
|
13
|
-
|
26
|
+
<!-- end opening-days and -hours -->
|
27
|
+
|
28
|
+
<!-- begin holiday-closes-text and miscellaneous information -->
|
29
|
+
<div v-if="textHolidaysClosed || textMiscInfo">
|
30
|
+
<p v-if="textHolidaysClosed">
|
31
|
+
<strong>{{ textHolidaysClosed }}</strong>
|
32
|
+
</p>
|
14
33
|
<p v-if="textMiscInfo">{{ textMiscInfo }}</p>
|
15
34
|
</div>
|
35
|
+
<!-- end holiday-closes-text and miscellaneous information -->
|
16
36
|
</div>
|
17
37
|
</template>
|
18
38
|
|
19
39
|
<script>
|
40
|
+
// import components
|
41
|
+
import CmdCustomHeadline from "./CmdCustomHeadline"
|
42
|
+
|
20
43
|
export default {
|
21
44
|
name: "CmdOpeningHours",
|
45
|
+
components: {CmdCustomHeadline},
|
22
46
|
props: {
|
23
47
|
/**
|
24
|
-
*
|
48
|
+
* properties for CmdCustomHeadline-component
|
25
49
|
*/
|
26
|
-
|
27
|
-
type:
|
50
|
+
cmdCustomHeadline: {
|
51
|
+
type: Object,
|
28
52
|
required: false
|
29
53
|
},
|
30
54
|
/**
|
31
|
-
* set a
|
55
|
+
* set a link to a detail page
|
32
56
|
*/
|
33
|
-
|
34
|
-
type:
|
57
|
+
link: {
|
58
|
+
type: Object,
|
35
59
|
required: false
|
36
60
|
},
|
37
61
|
/**
|
38
62
|
* toggles if "closed"-text will be shown
|
63
|
+
*
|
64
|
+
* @affectsStyling: true
|
39
65
|
*/
|
40
66
|
closed: {
|
41
67
|
type: Boolean,
|
@@ -1,8 +1,5 @@
|
|
1
1
|
<template>
|
2
2
|
<div class="cmd-pager">
|
3
|
-
<p>
|
4
|
-
Content: {{ currentPage }} of {{ numberOfPages }}
|
5
|
-
</p>
|
6
3
|
<div class="pager">
|
7
4
|
<!-- begin button to previous page -->
|
8
5
|
<a class="page-change" :class="{'disabled': currentPage === 1, 'button': showLinksAsButtons}"
|
@@ -69,7 +66,9 @@ export default {
|
|
69
66
|
default: true
|
70
67
|
},
|
71
68
|
/**
|
69
|
+
* button to switch to previous page
|
72
70
|
*
|
71
|
+
* @requiredForAccessibility: partial
|
73
72
|
*/
|
74
73
|
prevButton: {
|
75
74
|
type: Object,
|
@@ -80,6 +79,11 @@ export default {
|
|
80
79
|
}
|
81
80
|
}
|
82
81
|
},
|
82
|
+
/**
|
83
|
+
* button to switch to next page
|
84
|
+
*
|
85
|
+
* @requiredForAccessibility: partial
|
86
|
+
*/
|
83
87
|
nextButton: {
|
84
88
|
type: Object,
|
85
89
|
default: function() {
|
@@ -100,14 +104,12 @@ export default {
|
|
100
104
|
this.currentPage = page
|
101
105
|
this.$emit('click', page)
|
102
106
|
},
|
103
|
-
|
104
107
|
nextPage() {
|
105
108
|
if (this.currentPage < this.numberOfPages) {
|
106
109
|
this.showPage(this.currentPage + 1)
|
107
110
|
}
|
108
111
|
|
109
112
|
},
|
110
|
-
|
111
113
|
previousPage() {
|
112
114
|
if (this.currentPage > 1) {
|
113
115
|
this.showPage(this.currentPage - 1)
|