comand-component-library 3.1.22 → 3.1.26

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 (34) 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 +3 -4
  4. package/src/App.vue +30 -9
  5. package/src/assets/data/accordion.json +13 -4
  6. package/src/components/CmdAccordion.vue +84 -15
  7. package/src/components/CmdAddressData.vue +12 -0
  8. package/src/components/CmdBackToTopButton.vue +3 -0
  9. package/src/components/CmdBox.vue +16 -1
  10. package/src/components/CmdBoxSiteSearch.vue +3 -0
  11. package/src/components/CmdBreadcrumbs.vue +9 -0
  12. package/src/components/CmdCompanyLogo.vue +12 -0
  13. package/src/components/CmdCookieDisclaimer.vue +15 -4
  14. package/src/components/CmdCopyrightInformation.vue +2 -8
  15. package/src/components/CmdFakeSelect.vue +33 -6
  16. package/src/components/CmdFancyBox.vue +31 -1
  17. package/src/components/CmdFooterNavigation.vue +6 -0
  18. package/src/components/CmdGoogleMaps.vue +3 -0
  19. package/src/components/CmdImageGallery.vue +3 -2
  20. package/src/components/CmdImageZoom.vue +6 -0
  21. package/src/components/CmdMainHeadline.vue +9 -0
  22. package/src/components/CmdMainNavigation.vue +24 -0
  23. package/src/components/CmdMultipleSwitch.vue +1 -5
  24. package/src/components/CmdMultistepFormProgressBar.vue +6 -0
  25. package/src/components/CmdOpeningHours.vue +23 -2
  26. package/src/components/CmdPager.vue +24 -2
  27. package/src/components/CmdProgressBar.vue +10 -4
  28. package/src/components/CmdShareButtons.vue +6 -0
  29. package/src/components/CmdSiteHeader.vue +12 -16
  30. package/src/components/CmdSlideButton.vue +3 -0
  31. package/src/components/CmdSlideshow.vue +25 -6
  32. package/src/components/CmdUploadForm.vue +5 -5
  33. package/src/index.js +3 -1
  34. package/src/main.js +2 -2
@@ -4,7 +4,7 @@
4
4
  aria-labelledby="fancybox">
5
5
  <div class="popup" :class="{'image' : fancyBoxImageUrl || fancyBoxGallery }">
6
6
  <div class="button-wrapper no-flex"
7
- v-if="((fancyboxOptions.printButtons && (fancyboxOptions.printButtons.color || fancyboxOptions.printButtons.grayscale))) || fancyboxOptions.closeIcon">
7
+ v-if="(fancyboxOptions.printButtons && (fancyboxOptions.printButtons.color || fancyboxOptions.printButtons.grayscale)) || fancyboxOptions.closeIcon">
8
8
  <a href="#"
9
9
  v-if="fancyboxOptions.printButtons && fancyboxOptions.printButtons.color"
10
10
  :class="['button', fancyboxOptions.printButtons.color.iconClass]"
@@ -69,10 +69,16 @@
69
69
  const FancyBox = defineComponent({
70
70
  name: "CmdFancyBox",
71
71
  props: {
72
+ /**
73
+ * set if content should be loaded by url
74
+ */
72
75
  url: {
73
76
  type: String,
74
77
  required: false
75
78
  },
79
+ /**
80
+ * options to show at top (closeIcon, printButtons)
81
+ */
76
82
  fancyboxOptions: {
77
83
  type: Object,
78
84
  default() {
@@ -94,34 +100,58 @@
94
100
  }
95
101
  }
96
102
  },
103
+ /**
104
+ * allow closing fancybox by escape-key
105
+ */
97
106
  allowEscapeKey: {
98
107
  type: Boolean,
99
108
  default: true
100
109
  },
110
+ /**
111
+ * the content shown in the main area
112
+ */
101
113
  content: {
102
114
  type: String,
103
115
  required: false
104
116
  },
117
+ /**
118
+ *
119
+ */
105
120
  elements: {
106
121
  type: Array,
107
122
  required: false
108
123
  },
124
+ /**
125
+ * use if a gallery of images should be opened (and navigated) inside fancybox
126
+ */
109
127
  fancyBoxGallery: {
110
128
  type: Array,
111
129
  required: false
112
130
  },
131
+ /**
132
+ * if gallery is used, you can set default index
133
+ */
113
134
  defaultGalleryIndex: {
114
135
  type: Number,
115
136
  required: false
116
137
  },
138
+ /**
139
+ * show/hide entire fancybox
140
+ */
117
141
  show: {
118
142
  type: Boolean,
119
143
  default: false
120
144
  },
145
+ /**
146
+ * show/hide overlay (around fancybox, above website)
147
+ */
121
148
  showOverlay: {
122
149
  type: Boolean,
123
150
  default: true
124
151
  },
152
+ /**
153
+ * show slide-buttons (left/previous and right/next)
154
+ */
125
155
  slideButtons: {
126
156
  type: Object,
127
157
  default() {
@@ -24,10 +24,16 @@ import {openFancyBox} from "./CmdFancyBox.vue"
24
24
  export default {
25
25
  name: "CmdFooterNavigation",
26
26
  props: {
27
+ /**
28
+ * headlien above links
29
+ */
27
30
  headline: {
28
31
  type: String,
29
32
  required: false
30
33
  },
34
+ /**
35
+ * list of links shown vertically
36
+ */
31
37
  footerNavigation: {
32
38
  type: Array,
33
39
  required: false
@@ -8,6 +8,9 @@
8
8
  export default {
9
9
  name: "CmdGoogleMaps",
10
10
  props: {
11
+ /**
12
+ * address to show show on Google Maps&trade;
13
+ */
11
14
  addressData: {
12
15
  type: Object,
13
16
  required: true
@@ -15,11 +15,12 @@ import {openFancyBox} from "./CmdFancyBox"
15
15
 
16
16
  export default {
17
17
  name: "CmdImageGallery",
18
-
19
18
  props: {
19
+ /**
20
+ * list of images (incl. captions)
21
+ */
20
22
  images: Array
21
23
  },
22
-
23
24
  methods: {
24
25
  showFancyBox(index) {
25
26
  openFancyBox({fancyBoxGallery: this.images, defaultGalleryIndex: index})
@@ -17,10 +17,16 @@
17
17
  export default {
18
18
  name: "CmdImageZoom",
19
19
  props: {
20
+ /**
21
+ * url for small images
22
+ */
20
23
  smallImageUrl: {
21
24
  type: String,
22
25
  required: true
23
26
  },
27
+ /**
28
+ * url for large image
29
+ */
24
30
  largeImageUrl: {
25
31
  type: String,
26
32
  required: true
@@ -13,14 +13,23 @@
13
13
  export default {
14
14
  name: "CmdMainHeadline",
15
15
  props: {
16
+ /**
17
+ * main/h1-headline
18
+ */
16
19
  mainHeadline: {
17
20
  type: String,
18
21
  required: true
19
22
  },
23
+ /**
24
+ * small pre-headline above main-headline
25
+ */
20
26
  preHeadline: {
21
27
  type: String,
22
28
  required: false
23
29
  },
30
+ /**
31
+ * icon-class for icon shown left/before headline
32
+ */
24
33
  iconClass: {
25
34
  type: String,
26
35
  required: false
@@ -58,18 +58,30 @@ export default {
58
58
  }
59
59
  },
60
60
  props: {
61
+ /**
62
+ * toggle if main-entries (on firt-level) should be (horizontally) stretched equally
63
+ */
61
64
  stretchMainItems: {
62
65
  type: Boolean,
63
66
  default: false
64
67
  },
68
+ /**
69
+ * set if navigation should persist on mobile and not be collapsed to off-canvas
70
+ */
65
71
  persistOnMobile: {
66
72
  type: Boolean,
67
73
  default: false
68
74
  },
75
+ /**
76
+ * list of all navigation-entries (incl. sub-entries)
77
+ */
69
78
  navigationEntries: {
70
79
  type: Array,
71
80
  required: true
72
81
  },
82
+ /**
83
+ * link shown inside off-canvas-navigation to close itself
84
+ */
73
85
  closeOffcanvas: {
74
86
  type: Object,
75
87
  default: function () {
@@ -80,6 +92,9 @@ export default {
80
92
  }
81
93
  }
82
94
  },
95
+ /**
96
+ * button to open off-canvas-navigation
97
+ */
83
98
  buttonOffcanvas: {
84
99
  type: Object,
85
100
  default: function () {
@@ -90,14 +105,23 @@ export default {
90
105
  }
91
106
  }
92
107
  },
108
+ /**
109
+ * icon to show if an navigation-entry has sub-entries
110
+ */
93
111
  subentriesIconClass: {
94
112
  type: String,
95
113
  default: "icon-single-arrow-down"
96
114
  },
115
+ /**
116
+ * icon to show if a sub-entry has further sub-entries
117
+ */
97
118
  subSubentriesIconClass: {
98
119
  type: String,
99
120
  default: "icon-single-arrow-right"
100
121
  },
122
+ /**
123
+ * toggle if overlay over content should be shown if off-canvas is open
124
+ */
101
125
  showContentOverlay: {
102
126
  type: Boolean,
103
127
  default: true
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div :class="['label', 'multiple-switch', htmlClass, {disabled: status === 'disabled', error: status === 'error'}]">
2
+ <div :class="['label', 'multiple-switch', {disabled: status === 'disabled', error: status === 'error'}]">
3
3
  <span v-if="labelText">{{ labelText }}</span>
4
4
  <span class="flex-container no-gap no-flex">
5
5
  <label :class="{disabled: status === 'disabled'}" :for="multipleswitch.id"
@@ -28,10 +28,6 @@ export default {
28
28
  required: false,
29
29
  default: ""
30
30
  },
31
- htmlClass: {
32
- type: String,
33
- required: false
34
- },
35
31
  labelText: {
36
32
  type: String,
37
33
  required: false
@@ -21,10 +21,16 @@ export default {
21
21
  }
22
22
  },
23
23
  props: {
24
+ /**
25
+ * list of multisteps
26
+ */
24
27
  multisteps: {
25
28
  type: Array,
26
29
  required: true
27
30
  },
31
+ /**
32
+ * icon-class for separator shown inbetween multisteps
33
+ */
28
34
  separatorIconClass: {
29
35
  type: String,
30
36
  required: true
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div class="cmd-opening-hours">
3
3
  <h4 v-if="headline">{{ headline }}</h4>
4
- <a v-if="path" :href="path" :class="{'closed': closed}">{{ textOpenClosed }}</a>
4
+ <a v-if="pathToDetails" :href="pathToDetails" :class="{'closed': closed}">{{ textOpenClosed }}</a>
5
5
  <span v-else :class="{'closed': closed}">{{ textOpenClosed }}</span>
6
6
  <dl>
7
7
  <template v-for="day in openingHours" :key="day.day">
@@ -20,30 +20,51 @@
20
20
  export default {
21
21
  name: "CmdOpeningHours",
22
22
  props: {
23
+ /**
24
+ * headline above displayed opening hours
25
+ */
23
26
  headline: {
24
27
  type: String,
25
28
  required: false
26
29
  },
27
- path: {
30
+ /**
31
+ * set a path to a detail page
32
+ */
33
+ pathToDetails: {
28
34
  type: String,
29
35
  required: false
30
36
  },
37
+ /**
38
+ * toggles if "closed"-text will be shown
39
+ */
31
40
  closed: {
32
41
  type: Boolean,
33
42
  default: false
34
43
  },
44
+ /**
45
+ * text for open/closed-information
46
+ */
35
47
  textOpenClosed: {
36
48
  type: String,
37
49
  required: true
38
50
  },
51
+ /**
52
+ * list of opening-hours
53
+ */
39
54
  openingHours: {
40
55
  type: Array,
41
56
  required: true
42
57
  },
58
+ /**
59
+ * text to show if holidays closed (shown below opening-hours)
60
+ */
43
61
  textHolidaysClosed: {
44
62
  type: String,
45
63
  required: false
46
64
  },
65
+ /**
66
+ * additional/miscellaneous text (shown below holiday-closed-text/opening hours)
67
+ */
47
68
  textMiscInfo: {
48
69
  type: String,
49
70
  required: false
@@ -47,25 +47,47 @@ export default {
47
47
  }
48
48
  },
49
49
  props: {
50
+ /**
51
+ * number of items displayed
52
+ */
50
53
  items: {
51
54
  type: Number,
52
55
  required: true
53
56
  },
57
+ /**
58
+ * number of items shown per page
59
+ */
54
60
  itemsPerPage: {
55
61
  type: Number,
56
62
  required: true
57
63
  },
64
+ /**
65
+ * show links as buttons
66
+ */
58
67
  showLinksAsButtons: {
59
68
  type: Boolean,
60
69
  default: true
61
70
  },
71
+ /**
72
+ *
73
+ */
62
74
  prevButton: {
63
75
  type: Object,
64
- required: false
76
+ default: function() {
77
+ return {
78
+ iconClass: "icon-single-arrow-left",
79
+ buttonText: "prev"
80
+ }
81
+ }
65
82
  },
66
83
  nextButton: {
67
84
  type: Object,
68
- required: false
85
+ default: function() {
86
+ return {
87
+ iconClass: "icon-single-arrow-right",
88
+ buttonText: "next"
89
+ }
90
+ }
69
91
  }
70
92
  },
71
93
  computed: {
@@ -1,10 +1,10 @@
1
1
  <template>
2
2
  <label class="cmd-progressbar" :for="id">
3
- <span>{{ labelText }}</span>
3
+ <span v-if="labelText">{{ labelText }}</span>
4
4
  <span class="progressbar">
5
- <span>{{ loadingStatus }}%</span><!-- do not place inside progress-tag (will not be displayed then) -->
6
- <progress v-bind="$attrs" :id="id" :value="loadingStatus"></progress>
7
- </span>
5
+ <span>{{ loadingStatus }}%</span><!-- do not place inside progress-tag (will not be displayed then) -->
6
+ <progress v-bind="$attrs" :id="id" :value="loadingStatus"></progress>
7
+ </span>
8
8
  </label>
9
9
  </template>
10
10
 
@@ -17,10 +17,16 @@ export default {
17
17
  }
18
18
  },
19
19
  props: {
20
+ /**
21
+ * label-text for progress-bar
22
+ */
20
23
  labelText: {
21
24
  type: String,
22
25
  required: false
23
26
  },
27
+ /**
28
+ * id for progress-bar
29
+ */
24
30
  id: {
25
31
  type: String,
26
32
  required: true
@@ -12,10 +12,16 @@
12
12
  export default {
13
13
  name: "CmdContentFooter",
14
14
  props: {
15
+ /**
16
+ * stretch-buttons to share horizontal space vertically
17
+ */
15
18
  stretchButtons: {
16
19
  type: Boolean,
17
20
  default: true
18
21
  },
22
+ /**
23
+ * list of share-buttons (i.e. facebook, twitter etc.)
24
+ */
19
25
  shareButtons: {
20
26
  type: Array,
21
27
  required: true
@@ -19,34 +19,30 @@ export default {
19
19
  CmdMainNavigation
20
20
  },
21
21
  props: {
22
- showHeaderNavBar: {
23
- type: Boolean,
24
- default: true
25
- },
22
+ /**
23
+ * list of main-navigation-entries (incl. sub-entries) given to inner navigationcomponent
24
+ */
26
25
  mainNavigationEntries: {
27
26
  type: Array,
28
27
  required: true
29
28
  },
30
- headerWidthLimitation: {
31
- type: Boolean,
32
- default: false
33
- },
34
- linkLogo: {
35
- type: Object,
36
- required: false
37
- },
38
- logo: {
39
- type: Object,
40
- required: false
41
- },
29
+ /**
30
+ * activated sticky-header (stays on top if page is scrolled
31
+ */
42
32
  sticky: {
43
33
  type: Boolean,
44
34
  default: true
45
35
  },
36
+ /**
37
+ * use a grid for positioning of inner-elements (else a flex-container will be used)
38
+ */
46
39
  useGrid: {
47
40
  type: Boolean,
48
41
  default: true
49
42
  },
43
+ /**
44
+ * use only if default-button of inner navigation-component should not be used
45
+ */
50
46
  closeOffcanvas: {
51
47
  type: Object,
52
48
  required: false
@@ -12,6 +12,9 @@
12
12
  export default {
13
13
  name: "CmdSlideButton",
14
14
  props: {
15
+ /**
16
+ * set slide-button to "next" (= right), else it will be displayed as previous (=left) button
17
+ */
15
18
  slideButtonType: {
16
19
  type: Object,
17
20
  required: true
@@ -10,10 +10,8 @@
10
10
  </figure>
11
11
  </a>
12
12
  <figure v-else-if="!currentItem.href && currentItem && !useSlot" :key="index" class="slideshow-item">
13
- <template>
14
13
  <img :src="currentItem.imgPath" :alt="currentItem.alt"/>
15
14
  <figcaption>{{ currentItem.figcaption }}</figcaption>
16
- </template>
17
15
  </figure>
18
16
  <div
19
17
  class="image-wrapper"
@@ -57,30 +55,51 @@ export default {
57
55
  CmdSlideButton
58
56
  },
59
57
  props: {
58
+ /**
59
+ * use slot for images
60
+ */
60
61
  useSlot: {
61
62
  type: Boolean,
62
63
  default: false
63
64
  },
65
+ /**
66
+ * activate if images should switch automatically
67
+ */
64
68
  autoplay: {
65
69
  type: Boolean,
66
70
  default: false
67
71
  },
72
+ /**
73
+ * set milliseconds to switch images (if autoplay is activated only)
74
+ */
75
+ autoplayInterval: {
76
+ type: Number,
77
+ default: 5000
78
+ },
79
+ /**
80
+ * shows buttons/icons to let user quick jump to each image
81
+ */
68
82
  showQuickLinkIcons: {
69
83
  type: Boolean,
70
84
  default: true
71
85
  },
86
+ /**
87
+ * activate if current number of each image should be displayed
88
+ */
72
89
  showCounter: {
73
90
  type: Boolean,
74
91
  default: false
75
92
  },
76
- autoplayInterval: {
77
- type: Number,
78
- default: 5000
79
- },
93
+ /**
94
+ * list of images to display (use slot smust be set to false)
95
+ */
80
96
  slideshowItems: {
81
97
  type: Array,
82
98
  required: true
83
99
  },
100
+ /**
101
+ * slide-buttons (next/previous) to switch images
102
+ */
84
103
  slideButtons: {
85
104
  type: Object,
86
105
  default() {
@@ -34,14 +34,14 @@
34
34
  </span>
35
35
  </li>
36
36
  </ul>
37
- <CmdSystemMessage v-if="!listOfFiles.length" messageStatus="warning" :fullWidth="true"
38
- systemMessage="No files selected for upload!">
37
+ <CmdSystemMessage v-if="!listOfFiles.length" status="warning" :fullWidth="true"
38
+ message="No files selected for upload!">
39
39
  </CmdSystemMessage>
40
- <CmdSystemMessage v-else :messageStatus="messageStatusUploadSize()" :fullWidth="true">
40
+ <CmdSystemMessage v-else :status="messageStatusUploadSize()" :fullWidth="true">
41
41
  <p>Current upload size is {{ formatSize(uploadSize) }} (of max. {{ formatSize(maxUploadSize) }}).</p>
42
42
  </CmdSystemMessage>
43
- <CmdSystemMessage v-if="uploadSize > maxUploadSize" messageStatus="error" :fullWidth="true"
44
- systemMessage="Total file size to large!">
43
+ <CmdSystemMessage v-if="uploadSize > maxUploadSize" status="error" :fullWidth="true"
44
+ message="Total file size to large!">
45
45
  </CmdSystemMessage>
46
46
  <CmdFormElement
47
47
  v-if="enableComment"
package/src/index.js CHANGED
@@ -1,3 +1,5 @@
1
+ import "clickout-event"
2
+
1
3
  export { default as CmdAccordion } from '@/components/CmdAccordion'
2
4
  export { default as CmdAddressData } from '@/components/CmdAddressData'
3
5
  export { default as CmdBackToTopButton } from '@/components/CmdBackToTopButton'
@@ -31,4 +33,4 @@ export { default as CmdTabs } from '@/components/CmdTabs'
31
33
  export { default as CmdThumbnailScroller } from '@/components/CmdThumbnailScroller'
32
34
  export { default as CmdTooltip } from '@/components/CmdTooltip'
33
35
  export { default as CmdTopHeaderNavigation } from '@/components/CmdTopHeaderNavigation'
34
- export { default as CmdWidthLimitationWrapper } from '@/components/CmdWidthLimitationWrapper'
36
+ export { default as CmdWidthLimitationWrapper } from '@/components/CmdWidthLimitationWrapper'
package/src/main.js CHANGED
@@ -6,7 +6,7 @@ import 'comand-frontend-framework/src/assets/css/framework-iconfont.css'
6
6
  import { createApp } from 'vue'
7
7
  import App from './App.vue'
8
8
  import { createRouter, createWebHistory } from 'vue-router'
9
- import vClickOutside from 'v-click-outside'
9
+ import "clickout-event"
10
10
 
11
11
  /* import additional iconfont containing company-logos */
12
12
  import '@/assets/styles/logos-iconfont.css'
@@ -34,4 +34,4 @@ const router = createRouter({
34
34
  ]
35
35
  })
36
36
 
37
- createApp(App).use(router).use(vClickOutside).mount('#app')
37
+ createApp(App).use(router).mount('#app')