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.
Files changed (233) hide show
  1. package/dist/comand-component-library.css +1 -1
  2. package/dist/comand-component-library.umd.min.js +1 -1
  3. package/package.json +47 -41
  4. package/src/App.vue +373 -135
  5. package/src/ComponentDocumentation.vue +156 -0
  6. package/src/ComponentLibraryHelp.vue +20 -0
  7. package/src/assets/data/accordion.json +21 -24
  8. package/src/assets/data/address-data.json +34 -0
  9. package/src/assets/data/bank-account-data.json +22 -0
  10. package/src/assets/data/box-product.json +14 -4
  11. package/src/assets/data/box-user.json +48 -22
  12. package/src/assets/data/breadcrumbs.json +11 -3
  13. package/src/assets/data/cookie-disclaimer.json +4 -4
  14. package/src/assets/data/fake-select-colors.json +4 -0
  15. package/src/assets/data/fake-select-filter-options.json +14 -0
  16. package/src/assets/data/fake-select-options-with-icons.json +6 -12
  17. package/src/assets/data/fake-select-options.json +3 -3
  18. package/src/assets/data/list-of-links-section-anchors.json +23 -0
  19. package/src/assets/data/list-of-links-top-header-navigation.json +20 -0
  20. package/src/assets/data/list-of-links.json +42 -0
  21. package/src/assets/data/main-navigation.json +48 -0
  22. package/src/assets/data/multistep-form-progress-bar.json +33 -0
  23. package/src/assets/data/select-options.json +4 -0
  24. package/src/assets/data/{share-buttons.json → share-buttons-page-by-json.json} +8 -8
  25. package/src/assets/data/share-buttons-page-by-property.json +30 -0
  26. package/src/assets/data/switch-language.json +20 -0
  27. package/src/assets/data/table-large.json +1 -1
  28. package/src/assets/data/table-small.json +1 -1
  29. package/src/assets/styles/global-styles.scss +43 -13
  30. package/src/assets/styles/transitions.scss +21 -1
  31. package/src/components/CmdAccordion.vue +43 -42
  32. package/src/components/CmdAddressData.vue +124 -56
  33. package/src/components/CmdBackToTopButton.vue +3 -3
  34. package/src/components/CmdBankAccountData.vue +104 -0
  35. package/src/components/CmdBox.vue +253 -56
  36. package/src/components/CmdBoxSiteSearch.vue +138 -39
  37. package/src/components/CmdBoxWrapper.vue +206 -0
  38. package/src/components/CmdBreadcrumbs.vue +29 -13
  39. package/src/components/CmdCompanyLogo.vue +6 -4
  40. package/src/components/CmdCookieDisclaimer.vue +99 -75
  41. package/src/components/CmdCopyrightInformation.vue +1 -1
  42. package/src/components/CmdCustomHeadline.vue +93 -0
  43. package/src/components/CmdFakeSelect.vue +285 -60
  44. package/src/components/CmdFancyBox.vue +47 -33
  45. package/src/components/CmdForm.vue +107 -0
  46. package/src/components/CmdFormElement.vue +515 -81
  47. package/src/components/CmdFormFilters.vue +25 -11
  48. package/src/components/CmdGoogleMaps.vue +9 -3
  49. package/src/components/CmdImageGallery.vue +28 -5
  50. package/src/components/CmdImageZoom.vue +9 -1
  51. package/src/components/CmdListOfLinks.vue +169 -0
  52. package/src/components/CmdLoginForm.vue +143 -63
  53. package/src/components/CmdMainNavigation.vue +140 -42
  54. package/src/components/CmdMultipleSwitch.vue +33 -2
  55. package/src/components/CmdMultistepFormProgressBar.vue +60 -10
  56. package/src/components/CmdOpeningHours.vue +36 -10
  57. package/src/components/CmdPager.vue +7 -5
  58. package/src/components/CmdProgressBar.vue +20 -3
  59. package/src/components/CmdShareButtons.vue +64 -9
  60. package/src/components/CmdSiteHeader.vue +27 -14
  61. package/src/components/CmdSlideButton.vue +5 -2
  62. package/src/components/CmdSlideshow.vue +23 -7
  63. package/src/components/CmdSwitchButton.vue +10 -3
  64. package/src/components/CmdSwitchLanguage.vue +18 -10
  65. package/src/components/CmdSystemMessage.vue +30 -17
  66. package/src/components/CmdTable.vue +15 -7
  67. package/src/components/CmdTabs.vue +43 -3
  68. package/src/components/CmdThumbnailScroller.vue +22 -6
  69. package/src/components/CmdTooltip.vue +184 -11
  70. package/src/components/CmdUploadForm.vue +198 -92
  71. package/src/components/CmdWidthLimitationWrapper.vue +9 -6
  72. package/src/composables/event.js +8 -0
  73. package/src/composables/scrollspy.js +52 -0
  74. package/src/directives/focus.js +19 -0
  75. package/src/directives/telephone.js +1 -1
  76. package/src/documentation/commonProps.js +6 -0
  77. package/src/documentation/components/ComponentCode.vue +50 -0
  78. package/src/documentation/components/ComponentProperties.vue +237 -0
  79. package/src/documentation/components/ExampleSectionWrapper.vue +46 -0
  80. package/src/documentation/components/ViewCodeData.vue +113 -0
  81. package/src/documentation/data/CmdAccordionHelp.js +22 -0
  82. package/src/documentation/data/CmdAddressDataHelp.js +17 -0
  83. package/src/documentation/data/CmdBackToTopButtonHelp.js +3 -0
  84. package/src/documentation/data/CmdBankAccountDataHelp.js +8 -0
  85. package/src/documentation/data/CmdBoxHelp.js +45 -0
  86. package/src/documentation/data/CmdBoxSiteSearchHelp.js +11 -0
  87. package/src/documentation/data/CmdBreadcrumbsHelp.js +6 -0
  88. package/src/documentation/data/CmdCompanyLogoHelp.js +8 -0
  89. package/src/documentation/data/CmdCookieDisclaimerHelp.js +9 -0
  90. package/src/documentation/data/CmdCopyrightInformation.js +2 -0
  91. package/src/documentation/data/CmdCustomHeadlineHelp.js +8 -0
  92. package/src/documentation/data/CmdFakeSelectHelp.js +60 -0
  93. package/src/documentation/data/CmdFancyBoxHelp.js +7 -0
  94. package/src/documentation/data/CmdFooterNavigationHelp.js +5 -0
  95. package/src/documentation/data/CmdFormElementHelp.js +189 -0
  96. package/src/documentation/data/CmdFormFiltersHelp.js +6 -0
  97. package/src/documentation/data/CmdFormHelp.js +10 -0
  98. package/src/documentation/data/CmdGoogleMapsHelp.js +5 -0
  99. package/src/documentation/data/CmdImageGalleryHelp.js +5 -0
  100. package/src/documentation/data/CmdImageZoomHelp.js +6 -0
  101. package/src/documentation/data/CmdListOfLinksHelp.js +24 -0
  102. package/src/documentation/data/CmdLoginFormHelp.js +6 -0
  103. package/src/documentation/data/CmdMainNavigationHelp.js +7 -0
  104. package/src/documentation/data/CmdMultistepFormProgressBarHelp.js +6 -0
  105. package/src/documentation/data/CmdOpeningHoursHelp.js +10 -0
  106. package/src/documentation/data/CmdPagerHelp.js +7 -0
  107. package/src/documentation/data/CmdProgressBarHelp.js +13 -0
  108. package/src/documentation/data/CmdShareButtonsHelp.js +13 -0
  109. package/src/documentation/data/CmdSiteHeaderHelp.js +21 -0
  110. package/src/documentation/data/CmdSlideButtonHelp.js +10 -0
  111. package/src/documentation/data/CmdSlideshowHelp.js +7 -0
  112. package/src/documentation/data/CmdSwitchLanguageHelp.js +6 -0
  113. package/src/documentation/data/CmdSystemMessageHelp.js +32 -0
  114. package/src/documentation/data/CmdTableHelp.js +14 -0
  115. package/src/documentation/data/CmdTabsHelp.js +10 -0
  116. package/src/documentation/data/CmdThumbnailScrollerHelp.js +5 -0
  117. package/src/documentation/data/CmdTooltipHelp.js +13 -0
  118. package/src/documentation/data/CmdUploadFormHelp.js +17 -0
  119. package/src/documentation/data/CmdWidthLimitationWrapperHelp.js +7 -0
  120. package/src/documentation/data/componentsDescription.json +158 -0
  121. package/src/documentation/generated/CmdAccordionPropertyDescriptions.json +57 -0
  122. package/src/documentation/generated/CmdAddressDataPropertyDescriptions.json +32 -0
  123. package/src/documentation/generated/CmdBackToTopButtonPropertyDescriptions.json +12 -0
  124. package/src/documentation/generated/CmdBankAccountDataPropertyDescriptions.json +34 -0
  125. package/src/documentation/generated/CmdBoxPropertyDescriptions.json +91 -0
  126. package/src/documentation/generated/CmdBoxSiteSearchPropertyDescriptions.json +41 -0
  127. package/src/documentation/generated/CmdBoxWrapperPropertyDescriptions.json +47 -0
  128. package/src/documentation/generated/CmdBreadcrumbsPropertyDescriptions.json +17 -0
  129. package/src/documentation/generated/CmdCompanyLogoPropertyDescriptions.json +27 -0
  130. package/src/documentation/generated/CmdCookieDisclaimerPropertyDescriptions.json +22 -0
  131. package/src/documentation/generated/CmdCustomHeadlinePropertyDescriptions.json +22 -0
  132. package/src/documentation/generated/CmdFakeSelectPropertyDescriptions.json +79 -0
  133. package/src/documentation/generated/CmdFancyBoxPropertyDescriptions.json +62 -0
  134. package/src/documentation/generated/CmdFooterNavigationPropertyDescriptions.json +17 -0
  135. package/src/documentation/generated/CmdFormElementPropertyDescriptions.json +178 -0
  136. package/src/documentation/generated/CmdFormFiltersPropertyDescriptions.json +32 -0
  137. package/src/documentation/generated/CmdFormPropertyDescriptions.json +40 -0
  138. package/src/documentation/generated/CmdGoogleMapsPropertyDescriptions.json +7 -0
  139. package/src/documentation/generated/CmdImageGalleryPropertyDescriptions.json +22 -0
  140. package/src/documentation/generated/CmdImageZoomPropertyDescriptions.json +12 -0
  141. package/src/documentation/generated/CmdListOfLinksPropertyDescriptions.json +60 -0
  142. package/src/documentation/generated/CmdLoginFormPropertyDescriptions.json +90 -0
  143. package/src/documentation/generated/CmdMainNavigationPropertyDescriptions.json +62 -0
  144. package/src/documentation/generated/CmdMultipleSwitchPropertyDescriptions.json +52 -0
  145. package/src/documentation/generated/CmdMultistepFormProgressBarPropertyDescriptions.json +17 -0
  146. package/src/documentation/generated/CmdOpeningHoursPropertyDescriptions.json +42 -0
  147. package/src/documentation/generated/CmdPagerPropertyDescriptions.json +37 -0
  148. package/src/documentation/generated/CmdProgressBarPropertyDescriptions.json +32 -0
  149. package/src/documentation/generated/CmdShareButtonsPropertyDescriptions.json +34 -0
  150. package/src/documentation/generated/CmdSiteHeaderPropertyDescriptions.json +27 -0
  151. package/src/documentation/generated/CmdSlideButtonPropertyDescriptions.json +25 -0
  152. package/src/documentation/generated/CmdSlideshowPropertyDescriptions.json +42 -0
  153. package/src/documentation/generated/CmdSwitchButtonPropertyDescriptions.json +79 -0
  154. package/src/documentation/generated/CmdSwitchLanguagePropertyDescriptions.json +7 -0
  155. package/src/documentation/generated/CmdSystemMessagePropertyDescriptions.json +40 -0
  156. package/src/documentation/generated/CmdTablePropertyDescriptions.json +62 -0
  157. package/src/documentation/generated/CmdTabsPropertyDescriptions.json +27 -0
  158. package/src/documentation/generated/CmdThumbnailScrollerPropertyDescriptions.json +32 -0
  159. package/src/documentation/generated/CmdTooltipPropertyDescriptions.json +17 -0
  160. package/src/documentation/generated/CmdUploadFormPropertyDescriptions.json +90 -0
  161. package/src/documentation/generated/CmdWidthLimitationWrapperPropertyDescriptions.json +41 -0
  162. package/src/documentation/generated/frameworkIcons.json +730 -0
  163. package/src/documentation/generated/logosIcons.json +110 -0
  164. package/src/documentation/tabs.js +46 -0
  165. package/src/documentation/views/ContainerPage.vue +237 -0
  166. package/src/documentation/views/HelpHome.vue +13 -0
  167. package/src/documentation/views/IconFont.vue +80 -0
  168. package/src/documentation/views/components/CmdAccordionHelp.vue +78 -0
  169. package/src/documentation/views/components/CmdAddressDataHelp.vue +65 -0
  170. package/src/documentation/views/components/CmdBackToTopButtonHelp.vue +62 -0
  171. package/src/documentation/views/components/CmdBankAccountDataHelp.vue +88 -0
  172. package/src/documentation/views/components/CmdBoxHelp.vue +137 -0
  173. package/src/documentation/views/components/CmdBoxSiteSearchHelp.vue +60 -0
  174. package/src/documentation/views/components/CmdBoxWrapperHelp.vue +111 -0
  175. package/src/documentation/views/components/CmdBreadcrumbsHelp.vue +51 -0
  176. package/src/documentation/views/components/CmdCompanyLogoHelp.vue +48 -0
  177. package/src/documentation/views/components/CmdCookieDisclaimerHelp.vue +105 -0
  178. package/src/documentation/views/components/CmdCustomHeadlineHelp.vue +53 -0
  179. package/src/documentation/views/components/CmdFakeSelectHelp.vue +175 -0
  180. package/src/documentation/views/components/CmdFancyBoxHelp.vue +79 -0
  181. package/src/documentation/views/components/CmdFormElementHelp.vue +412 -0
  182. package/src/documentation/views/components/CmdFormFiltersHelp.vue +69 -0
  183. package/src/documentation/views/components/CmdFormHelp.vue +41 -0
  184. package/src/documentation/views/components/CmdGoogleMapsHelp.vue +55 -0
  185. package/src/documentation/views/components/CmdImageGalleryHelp.vue +46 -0
  186. package/src/documentation/views/components/CmdImageZoomHelp.vue +34 -0
  187. package/src/documentation/views/components/CmdListOfLinksHelp.vue +64 -0
  188. package/src/documentation/views/components/CmdLoginFormHelp.vue +117 -0
  189. package/src/documentation/views/components/CmdMainNavigationHelp.vue +94 -0
  190. package/src/documentation/views/components/CmdMultistepFormProgressBarHelp.vue +49 -0
  191. package/src/documentation/views/components/CmdOpeningHoursHelp.vue +49 -0
  192. package/src/documentation/views/components/CmdPagerHelp.vue +57 -0
  193. package/src/documentation/views/components/CmdProgressBarHelp.vue +47 -0
  194. package/src/documentation/views/components/CmdShareButtonsHelp.vue +65 -0
  195. package/src/documentation/views/components/CmdSiteHeaderHelp.vue +72 -0
  196. package/src/documentation/views/components/CmdSlideButtonHelp.vue +90 -0
  197. package/src/documentation/views/components/CmdSlideshowHelp.vue +60 -0
  198. package/src/documentation/views/components/CmdSwitchLanguageHelp.vue +64 -0
  199. package/src/documentation/views/components/CmdSystemMessageHelp.vue +86 -0
  200. package/src/documentation/views/components/CmdTableHelp.vue +84 -0
  201. package/src/documentation/views/components/CmdTabsHelp.vue +52 -0
  202. package/src/documentation/views/components/CmdThumbnailScrollerHelp.vue +50 -0
  203. package/src/documentation/views/components/CmdTooltipHelp.vue +59 -0
  204. package/src/documentation/views/components/CmdUploadFormHelp.vue +59 -0
  205. package/src/documentation/views/components/CmdWidthLimitationWrapperHelp.vue +46 -0
  206. package/src/index.js +7 -3
  207. package/src/main.js +25 -15
  208. package/src/mixins/CmdAddressData/DefaultMessageProperties.js +17 -0
  209. package/src/mixins/CmdBox/DefaultMessageProperties.js +10 -0
  210. package/src/mixins/CmdFakeSelect/DefaultMessageProperties.js +9 -0
  211. package/src/mixins/CmdFormElement/DefaultMessageProperties.js +9 -0
  212. package/src/mixins/CmdImageGallery/DefaultMessageProperties.js +9 -0
  213. package/src/mixins/CmdSiteSearch/DefaultMessageProperties.js +14 -0
  214. package/src/mixins/CmdUploadForm/DefaultMessageProperties.js +5 -1
  215. package/src/mixins/FieldValidation.js +220 -0
  216. package/src/mixins/GlobalDefaultMessageProperties.js +15 -0
  217. package/src/mixins/Tooltip.js +26 -0
  218. package/src/router/index.js +67 -0
  219. package/src/utilities.js +3 -6
  220. package/src/utils/common.js +6 -0
  221. package/src/utils/dom.js +8 -0
  222. package/src/utils/globalSequence.js +13 -0
  223. package/src/utils/string.js +8 -0
  224. package/src/assets/data/address.json +0 -13
  225. package/src/assets/data/footer-navigation.json +0 -38
  226. package/src/assets/data/languages.json +0 -31
  227. package/src/assets/data/multisteps.json +0 -27
  228. package/src/assets/data/navigation.json +0 -47
  229. package/src/assets/data/pager.json +0 -11
  230. package/src/assets/data/top-header-navigation.json +0 -27
  231. package/src/components/CmdFooterNavigation.vue +0 -71
  232. package/src/components/CmdMainHeadline.vue +0 -75
  233. package/src/components/CmdTopHeaderNavigation.vue +0 -88
@@ -1,8 +1,8 @@
1
1
  <template>
2
2
  <label class="cmd-progressbar" :for="id">
3
- <span v-if="labelText">{{ labelText }}</span>
3
+ <span :class="{hidden: !showLabel}">{{ labelText }}</span>
4
4
  <span class="progressbar">
5
- <span>{{ loadingStatus }}%</span><!-- do not place inside progress-tag (will not be displayed then) -->
5
+ <span v-if="showLoadingStatus">{{ loadingStatus }}%</span><!-- do not place inside progress-tag (will not be displayed then) -->
6
6
  <progress v-bind="$attrs" :id="id" :value="loadingStatus"></progress>
7
7
  </span>
8
8
  </label>
@@ -19,13 +19,31 @@ export default {
19
19
  props: {
20
20
  /**
21
21
  * label-text for progress-bar
22
+ *
23
+ * @requiredForAccessibility: true
22
24
  */
23
25
  labelText: {
24
26
  type: String,
25
27
  required: false
26
28
  },
29
+ /**
30
+ * toggle visibility for label-text
31
+ */
32
+ showLabel: {
33
+ type: Boolean,
34
+ default: true
35
+ },
36
+ /**
37
+ * toggle visibility for loading-status
38
+ */
39
+ showLoadingStatus: {
40
+ type: Boolean,
41
+ default: true
42
+ },
27
43
  /**
28
44
  * id for progress-bar
45
+ *
46
+ * @requiredForAccessibility: true
29
47
  */
30
48
  id: {
31
49
  type: String,
@@ -49,6 +67,5 @@ export default {
49
67
  }
50
68
  }
51
69
  }
52
-
53
70
  /* end cmd-progressbar ------------------------------------------------------------------------------------------ */
54
71
  </style>
@@ -1,23 +1,36 @@
1
1
  <template>
2
- <div :class="['cmd-share-buttons',{'stretch': stretchButtons}]">
3
- <a class="button" v-for="(shareButton, index) in shareButtons" :key="index" :id="shareButton.id"
4
- :href="shareButton.path" :title="shareButton.tooltip">
2
+ <div :class="['cmd-share-buttons',{'stretch': stretchButtons, 'align-right': align === 'right'}]">
3
+ <a v-for="shareButton in validShareButtons"
4
+ :key="shareButton.path" class="button"
5
+ :id="shareButton.id"
6
+ :href="getUrl(shareButton)"
7
+ target="_blank"
8
+ :title="shareButton.tooltip">
5
9
  <span v-if="shareButton.iconClass" :class="shareButton.iconClass"></span>
6
- <span v-if="shareButton.linkName">{{ shareButton.linkName }}</span>
10
+ <span v-if="shareButton.linkText">{{ shareButton.linkText }}</span>
7
11
  </a>
8
12
  </div>
9
13
  </template>
10
14
 
11
15
  <script>
12
16
  export default {
13
- name: "CmdContentFooter",
17
+ name: "CmdShareButtons",
14
18
  props: {
19
+ /**
20
+ * set horizontal alignment
21
+ *
22
+ * @allowedValues: left, right
23
+ */
24
+ align: {
25
+ type: String,
26
+ required: false
27
+ },
15
28
  /**
16
29
  * stretch-buttons to share horizontal space vertically
17
30
  */
18
31
  stretchButtons: {
19
32
  type: Boolean,
20
- default: true
33
+ default: false
21
34
  },
22
35
  /**
23
36
  * list of share-buttons (i.e. facebook, twitter etc.)
@@ -25,21 +38,63 @@ export default {
25
38
  shareButtons: {
26
39
  type: Array,
27
40
  required: true
41
+ },
42
+ /**
43
+ * page to share (appended to social-bookmark-url)
44
+ *
45
+ * appendPage-property must be activated
46
+ */
47
+ page: {
48
+ type: String,
49
+ required: false
50
+ },
51
+ /**
52
+ * activate if page to share is not given by json-data)
53
+ */
54
+ appendPage: {
55
+ type: Boolean,
56
+ default: true
57
+ }
58
+ },
59
+ computed: {
60
+ validShareButtons() {
61
+ return this.shareButtons.filter(item => item.path)
62
+ }
63
+ },
64
+ methods: {
65
+ getUrl(shareButton) {
66
+ // if path is not given completely by json-data
67
+ if(this.appendPage) {
68
+ // if page to share is given by property
69
+ if (this.page) {
70
+ return shareButton.path + encodeURIComponent(this.page)
71
+ }
72
+
73
+ // if current page should be append to url
74
+ return shareButton.path + encodeURIComponent(location.href)
75
+ }
76
+
77
+ // if path is given completely by json-data
78
+ return shareButton.path
28
79
  }
29
80
  }
30
81
  }
31
82
  </script>
32
83
 
33
84
  <style lang="scss">
34
- @import '../assets/styles/variables';
35
85
  /* begin cmd-share-buttons -------------------------------------------------------------------------------------------- */
86
+ @import '../assets/styles/variables';
87
+
36
88
  .cmd-share-buttons {
37
89
  display: flex;
38
- margin: calc(var(--default-margin) * 2) 0 0 0;
90
+ gap: var(--default-gap);
91
+
92
+ &.align-right {
93
+ justify-content: flex-end;
94
+ }
39
95
 
40
96
  .button {
41
97
  padding: calc(var(--default-padding) / 2) var(--default-padding);
42
- margin-left: var(--default-margin);
43
98
 
44
99
  &:first-of-type {
45
100
  margin: 0;
@@ -1,16 +1,27 @@
1
1
  <template>
2
2
  <div :class="['cmd-site-header', { sticky: sticky }]" role="banner">
3
+ <!-- begin slot for elements above header -->
3
4
  <slot name="top-header"></slot>
4
- <header :class="useGrid ? 'grid-container-create-columns': 'flex-container'">
5
+ <!-- end for elements above header -->
6
+
7
+ <!-- begin header-wrapper with slots for logo and other header elements -->
8
+ <header v-if="$slots.logo || $slots.header" :class="useGrid ? 'grid-container-create-columns': 'flex-container'">
5
9
  <slot name="logo"></slot>
6
10
  <slot name="header"></slot>
7
11
  </header>
8
- <CmdMainNavigation :navigationEntries="mainNavigationEntries" v-if="mainNavigationEntries"
9
- :closeOffcanvas="closeOffcanvas"/>
12
+ <!-- end header-wrapper with slots for logo and other header elements -->
13
+
14
+ <!-- begin CmdMainNavigation -->
15
+ <CmdMainNavigation
16
+ v-if="cmdMainNavigation?.navigationEntries?.length"
17
+ v-bind="cmdMainNavigation"
18
+ :closeOffcanvas="closeOffcanvas"/>
19
+ <!-- end CmdMainNavigation -->
10
20
  </div>
11
21
  </template>
12
22
 
13
23
  <script>
24
+ // import components
14
25
  import CmdMainNavigation from "./CmdMainNavigation"
15
26
 
16
27
  export default {
@@ -20,14 +31,21 @@ export default {
20
31
  },
21
32
  props: {
22
33
  /**
23
- * list of main-navigation-entries (incl. sub-entries) given to inner navigationcomponent
34
+ * properties for CmdMainNavigation-component
24
35
  */
25
- mainNavigationEntries: {
26
- type: Array,
36
+ cmdMainNavigation: {
37
+ type: Object,
27
38
  required: true
28
39
  },
29
40
  /**
30
- * activated sticky-header (stays on top if page is scrolled
41
+ * use only if default-button of inner navigation-component should not be used
42
+ */
43
+ closeOffcanvas: {
44
+ type: Object,
45
+ required: false
46
+ },
47
+ /**
48
+ * activated sticky-header (stays on top if page is scrolled)
31
49
  */
32
50
  sticky: {
33
51
  type: Boolean,
@@ -35,17 +53,12 @@ export default {
35
53
  },
36
54
  /**
37
55
  * use a grid for positioning of inner-elements (else a flex-container will be used)
56
+ *
57
+ * @affectsStyling: true
38
58
  */
39
59
  useGrid: {
40
60
  type: Boolean,
41
61
  default: true
42
- },
43
- /**
44
- * use only if default-button of inner navigation-component should not be used
45
- */
46
- closeOffcanvas: {
47
- type: Object,
48
- required: false
49
62
  }
50
63
  }
51
64
  }
@@ -14,7 +14,8 @@ export default {
14
14
  /**
15
15
  * set slide-button-type
16
16
  *
17
- * possible default-values: next, prev, up, down
17
+ * @allowedValues: next, prev, up, down
18
+ * @affectsStyling: true
18
19
  */
19
20
  slideButtonType: {
20
21
  type: String,
@@ -22,6 +23,8 @@ export default {
22
23
  },
23
24
  /**
24
25
  * default slide-buttons
26
+ *
27
+ * @requiredForAccessibility: partial
25
28
  */
26
29
  slideButtons: {
27
30
  type: Object,
@@ -52,7 +55,7 @@ export default {
52
55
  if(this.slideButtons[this.slideButtonType]) {
53
56
  return this.slideButtons[this.slideButtonType]
54
57
  }
55
- console.log("Property 'slideButtonType' does not match slideButtons-key")
58
+ console.warn("Property 'slideButtonType' does not match slideButtons-key")
56
59
  return {}
57
60
  }
58
61
  }
@@ -1,7 +1,14 @@
1
1
  <template>
2
2
  <div class="cmd-slideshow" :class="{'full-width': fullWidth}">
3
3
  <div class="inner-slideshow-wrapper" @mouseenter="pause = true" @mouseleave="pause = false">
4
- <CmdSlideButton @click.prevent="showPrevItem" slideButtonType="prev" />
4
+ <!-- begin CmdSlideButton -->
5
+ <CmdSlideButton
6
+ @click.prevent="showPrevItem"
7
+ slideButtonType="prev"
8
+ />
9
+ <!-- end CmdSlideButton -->
10
+
11
+ <!-- begin area to slide -->
5
12
  <transition name="fade">
6
13
  <a v-if="currentItem.href" :href="currentItem.href" :key="index" :title="currentItem.title">
7
14
  <figure v-if="currentItem && !useSlot" class="slideshow-item">
@@ -22,7 +29,14 @@
22
29
  <slot :name="'item' + currentSlotItem"></slot>
23
30
  </div>
24
31
  </transition>
25
- <CmdSlideButton @click.prevent="showNextItem" />
32
+ <!-- end area to slide -->
33
+
34
+ <!-- begin CmdSlideButton -->
35
+ <CmdSlideButton
36
+ @click.prevent="showNextItem"
37
+ />
38
+ <!-- end CmdSlideButton -->
39
+
26
40
  <ol v-if="showQuickLinkIcons">
27
41
  <li v-for="(item, i) in slideshowItems" :key="i" :class="{active: i === index }">
28
42
  <a href="#" @click.prevent="index = i" :aria-label="index"></a>
@@ -34,7 +48,8 @@
34
48
  </template>
35
49
 
36
50
  <script>
37
- import CmdSlideButton from "./CmdSlideButton.vue"
51
+ // import components
52
+ import CmdSlideButton from "./CmdSlideButton"
38
53
 
39
54
  const NOT_YET_PRELOADED_IMAGE = image => !image.loaded
40
55
  const NOT_YET_PRELOADED_IMAGES = item => item.images && item.images.find(NOT_YET_PRELOADED_IMAGE)
@@ -91,16 +106,18 @@ export default {
91
106
  default: false
92
107
  },
93
108
  /**
94
- * list of images to display (use slot smust be set to false)
109
+ * list of images to display (use slot must be set to false)
95
110
  */
96
111
  slideshowItems: {
97
112
  type: Array,
98
113
  required: true
99
114
  },
100
115
  /**
101
- * slide-buttons (next/previous) to switch images
116
+ * properties for CmdSlideButtons-component
117
+ *
118
+ * @requiredForAccessibility: partial
102
119
  */
103
- slideButtons: {
120
+ cmdSlideButtons: {
104
121
  type: Object,
105
122
  default() {
106
123
  return {
@@ -127,7 +144,6 @@ export default {
127
144
  this.hnd = null;
128
145
  }
129
146
  },
130
-
131
147
  methods: {
132
148
  showPrevItem() {
133
149
  if (this.useSlot) {
@@ -33,8 +33,7 @@ export default {
33
33
  /**
34
34
  * set id for input
35
35
  *
36
- * required for accessibility
37
- *
36
+ * @requiredForAccessibility: true
38
37
  */
39
38
  id: {
40
39
  type: String,
@@ -43,7 +42,7 @@ export default {
43
42
  /**
44
43
  * set name for input
45
44
  *
46
- * require for radio-buttons (and form-submit by browser)
45
+ * required for radio-buttons (and form-submit by browser)
47
46
  */
48
47
  name: {
49
48
  type: String,
@@ -67,6 +66,8 @@ export default {
67
66
  * text for label
68
67
  *
69
68
  * required if onLabel/offLabel are not set
69
+ *
70
+ * @requiredForAccessibility: true
70
71
  */
71
72
  labelText: {
72
73
  type: String,
@@ -76,6 +77,8 @@ export default {
76
77
  * text for on-label
77
78
  *
78
79
  * set to activate switch-label (=label is placed on toggle-switch (not behind))
80
+ *
81
+ * @requiredForAccessibility: true
79
82
  */
80
83
  onLabel: {
81
84
  type: String,
@@ -85,6 +88,8 @@ export default {
85
88
  * text for off-label
86
89
  *
87
90
  * set to activate switch-label (=label is placed on toggle-switch (not behind))
91
+ *
92
+ * @requiredForAccessibility: true
88
93
  */
89
94
  offLabel: {
90
95
  type: String,
@@ -92,6 +97,8 @@ export default {
92
97
  },
93
98
  /**
94
99
  * set to true, if checkbox/radio-buttons should have green/checked and red/unchecked color-coding
100
+ *
101
+ * @affectsStyling: true
95
102
  */
96
103
  colored: {
97
104
  type: Boolean,
@@ -2,15 +2,23 @@
2
2
  <div class="cmd-switch-language">
3
3
  <ul>
4
4
  <li v-for="(language, index) in languages" :key="index">
5
- <router-link v-if="language.link.type === 'router'" :class="['flag', language.iso2]"
5
+ <!-- begin link-type 'href' -->
6
+ <a v-if="language.link.type === 'href'" :href="language.link.path"
7
+ :class="['flag', language.iso2, {'active': language.active}]"
8
+ :title="language.tooltip"
9
+ @click="$emit('click', { originalEvent: $event, language} )">
10
+ <img :src="getFlagURL(language.iso2)" :alt="language.name" />
11
+ </a>
12
+ <!-- end link-type 'href -->
13
+
14
+ <!-- begin link-type 'router' -->
15
+ <router-link v-else
16
+ :class="['flag', language.iso2]"
6
17
  :to="getRoute(language)" :title="language.tooltip"
7
- @click="$emit('click', $event, language)">
8
- <img :src="getFlagURL(language.iso2)" :alt="language.name"/>
18
+ @click="$emit('click', { originalEvent: $event, language})">
19
+ <img :src="getFlagURL(language.iso2)" :alt="language.name" />
9
20
  </router-link>
10
- <a v-else :href="language.link.path" :class="['flag', language.iso2, {'active': language.active}]"
11
- :title="language.tooltip" @click="$emit('click', $event, language)">
12
- <img :src="getFlagURL(language.iso2)" :alt="language.name"/>
13
- </a>
21
+ <!-- end link-type 'router' -->
14
22
  </li>
15
23
  </ul>
16
24
  </div>
@@ -23,6 +31,9 @@ export default {
23
31
  name: "CmdSwitchLanguage",
24
32
  emits: ["click"],
25
33
  props: {
34
+ /**
35
+ * list of languages
36
+ */
26
37
  languages: {
27
38
  type: Array,
28
39
  required: true
@@ -32,9 +43,6 @@ export default {
32
43
  getRoute(language) {
33
44
  return getRoute(language)
34
45
  },
35
- switchLanguage(iso2) {
36
- alert("Switch to " + iso2)
37
- },
38
46
  getFlagURL(isoCode) {
39
47
  return require("../assets/images/flags/flag-" + isoCode + ".svg")
40
48
  }
@@ -2,21 +2,23 @@
2
2
  <transition name="fade">
3
3
  <div
4
4
  v-if="showSystemMessage"
5
- :class="['cmd-system-message', 'system-message', { 'full-width': fullWidth }, status]"
6
- role="alert"
5
+ :class="['cmd-system-message', 'system-message', 'flex-container', 'vertical', { 'full-width': fullWidth }, validationStatus]"
6
+ :role="status === 'error' ? 'alert' : 'dialog'"
7
7
  >
8
8
  <a
9
- v-if="iconClose.iconClass"
9
+ v-if="iconClose.show && iconClose.iconClass"
10
10
  :class="iconClose.iconClass"
11
11
  href="#"
12
12
  @click.prevent="showSystemMessage = false"
13
13
  :title="iconClose.tooltip"
14
14
  ></a>
15
15
  <h6>
16
- <span v-if="iconMessage && iconMessage.iconClass && iconMessage.show" :class="iconMessage.iconClass"></span>
17
- <strong v-if="message">{{ message }}</strong>
16
+ <span v-if="iconMessage && iconMessage.iconClass" :class="iconMessage.iconClass"></span>
17
+ <strong v-if="systemMessage">{{ systemMessage }}</strong>
18
18
  </h6>
19
+ <!-- begin slot-content -->
19
20
  <slot></slot>
21
+ <!-- end slot-content -->
20
22
  </div>
21
23
  </transition>
22
24
  </template>
@@ -31,49 +33,53 @@ export default {
31
33
  },
32
34
  props: {
33
35
  /**
34
- * status of message
36
+ * validation-status for the message-box
35
37
  *
36
- * values: error (red), warning (yellow), success (green), info (blue)
38
+ * @allowedValues: error, warning, success, info
39
+ * @affectsStyling: true
37
40
  */
38
- status: {
41
+ validationStatus: {
39
42
  type: String,
40
43
  required: true
41
44
  },
42
45
  /**
43
- * activate to stretch message-box as wide as parent container (else message-box is as wide as message)
46
+ * activate to stretch message-box as wide as parent container (else message-box is as wide as message (+padding))
44
47
  */
45
48
  fullWidth: {
46
49
  type: Boolean,
47
50
  default: true
48
51
  },
49
52
  /**
50
- * set icon-class for message (will be displayed left from
53
+ * set icon-class for message (will be displayed left from message)
51
54
  */
52
55
  iconMessage: {
53
56
  type: Object,
54
57
  default: function() {
55
58
  return {
56
- iconClass: "icon-warning",
57
- show: true
59
+ show: true,
60
+ iconClass: "icon-warning"
58
61
  }
59
62
  }
60
63
  },
61
64
  /**
62
65
  * the system-message-text
63
66
  */
64
- message: {
67
+ systemMessage: {
65
68
  type: String,
66
69
  required: false
67
70
  },
68
71
  /**
69
72
  * icon to close system-message
73
+ *
74
+ * @requiredForAccessibility: partial
70
75
  */
71
76
  iconClose: {
72
77
  type: Object,
73
78
  default: function () {
74
79
  return {
80
+ show: true,
75
81
  iconClass: "icon-cancel",
76
- tooltip: "Close"
82
+ tooltip: "Close this message"
77
83
  }
78
84
  }
79
85
  }
@@ -90,11 +96,9 @@ export default {
90
96
  /* begin cmd-system-message ---------------------------------------------------------------------------------------- */
91
97
  .cmd-system-message {
92
98
  margin: var(--default-margin) 0;
99
+ align-items: center;
93
100
 
94
101
  h6 {
95
- display: table;
96
- margin: 0 auto var(--default-margin) auto;
97
-
98
102
  strong {
99
103
  margin-left: calc(var(--default-margin) / 2);
100
104
  }
@@ -104,6 +108,15 @@ export default {
104
108
  margin-bottom: 0;
105
109
  }
106
110
 
111
+ ul {
112
+ display: flex;
113
+ flex-direction: column;
114
+
115
+ li {
116
+ margin-left: 0;
117
+ }
118
+ }
119
+
107
120
  > a[class*="icon-"]:not(.button) {
108
121
  font-size: 1rem;
109
122
  color: var(--pure-white) !important;
@@ -15,13 +15,13 @@
15
15
  </a>
16
16
  </div>
17
17
  <table :class="{'full-width': fullWidth}">
18
- <caption :class="{hidden: tableData.caption.hide}">{{ tableData.caption.text }}</caption>
18
+ <caption :class="{hidden: !tableData.caption.show}">{{ tableData.caption.text }}</caption>
19
19
  <thead>
20
- <tr>
21
- <th v-for="(tablehead, indexHead) in tableData.thead" :key="indexHead">
22
- {{ tablehead }}
23
- </th>
24
- </tr>
20
+ <tr>
21
+ <th v-for="(tablehead, indexHead) in tableData.thead" :key="indexHead">
22
+ {{ tablehead }}
23
+ </th>
24
+ </tr>
25
25
  </thead>
26
26
  <transition name="fade">
27
27
  <tbody v-show="showTableData" aria-expanded="true">
@@ -47,7 +47,7 @@
47
47
 
48
48
  <script>
49
49
  export default {
50
- name: "CmdTableWrapper",
50
+ name: "CmdTable",
51
51
  data() {
52
52
  return {
53
53
  showTableData: true,
@@ -85,6 +85,8 @@ export default {
85
85
  },
86
86
  /**
87
87
  * icon to expand table (vertically)
88
+ *
89
+ * @requiredForAccessibility: partial
88
90
  */
89
91
  iconExpand: {
90
92
  type: Object,
@@ -97,6 +99,8 @@ export default {
97
99
  },
98
100
  /**
99
101
  * icon to collapse table (vertically)
102
+ *
103
+ * @requiredForAccessibility: partial
100
104
  */
101
105
  iconCollapse: {
102
106
  type: Object,
@@ -109,6 +113,8 @@ export default {
109
113
  },
110
114
  /**
111
115
  * icon to shrink table (horizontally)
116
+ *
117
+ * @requiredForAccessibility: partial
112
118
  */
113
119
  iconShrink: {
114
120
  type: Object,
@@ -121,6 +127,8 @@ export default {
121
127
  },
122
128
  /**
123
129
  * icon to stretch table (horizontally)
130
+ *
131
+ * @requiredForAccessibility: partial
124
132
  */
125
133
  iconStretch: {
126
134
  type: Object,