comand-component-library 3.1.45 → 3.1.48

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.
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,