comand-component-library 4.3.26 → 4.3.28

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 (50) hide show
  1. package/dist/comand-component-library.css +1 -1
  2. package/dist/comand-component-library.js +8574 -8438
  3. package/dist/styles/demopage-only.css +48 -0
  4. package/package.json +2 -2
  5. package/src/ComponentLibrary.vue +1923 -1881
  6. package/src/assets/data/text-image-block.json +3 -1
  7. package/src/assets/data/thumbnail-scroller-images.json +1 -1
  8. package/src/components/CmdAccordion.vue +1 -1
  9. package/src/components/CmdAddressData.vue +60 -72
  10. package/src/components/CmdBankAccountData.vue +55 -33
  11. package/src/components/CmdBasicForm.vue +19 -7
  12. package/src/components/CmdBox.vue +8 -0
  13. package/src/components/CmdBoxWrapper.vue +14 -0
  14. package/src/components/CmdBreadcrumbs.vue +10 -27
  15. package/src/components/CmdCompanyLogo.vue +3 -0
  16. package/src/components/CmdContainer.vue +21 -2
  17. package/src/components/CmdCookieDisclaimer.vue +5 -5
  18. package/src/components/CmdFakeSelect.vue +27 -17
  19. package/src/components/CmdFancyBox.vue +73 -85
  20. package/src/components/CmdFootnote.vue +2 -1
  21. package/src/components/CmdForm.vue +118 -160
  22. package/src/components/CmdFormFilters.vue +1 -0
  23. package/src/components/CmdGoogleMaps.vue +9 -2
  24. package/src/components/CmdHeadline.vue +10 -9
  25. package/src/components/CmdImage.vue +44 -21
  26. package/src/components/CmdImageGallery.vue +13 -8
  27. package/src/components/CmdLink.vue +20 -5
  28. package/src/components/CmdList.vue +7 -2
  29. package/src/components/CmdLoginForm.vue +156 -255
  30. package/src/components/CmdMailToolEntry.vue +2 -1
  31. package/src/components/CmdMultistepFormProgressBar.vue +2 -2
  32. package/src/components/CmdMultistepFormWrapper.vue +2 -6
  33. package/src/components/CmdOpeningHours.vue +14 -2
  34. package/src/components/CmdSidebar.vue +2 -2
  35. package/src/components/CmdSiteWrapper.vue +66 -58
  36. package/src/components/CmdSlideshow.vue +5 -0
  37. package/src/components/CmdSocialNetworks.vue +27 -17
  38. package/src/components/CmdSwitchLanguage.vue +16 -19
  39. package/src/components/CmdSystemMessage.vue +71 -66
  40. package/src/components/CmdTable.vue +42 -24
  41. package/src/components/CmdTabs.vue +15 -7
  42. package/src/components/CmdTag.vue +28 -23
  43. package/src/components/CmdTextImageBlock.vue +62 -53
  44. package/src/components/CmdThumbnailScroller.vue +18 -6
  45. package/src/components/CmdToast.vue +60 -17
  46. package/src/components/CmdToggleDarkMode.vue +31 -32
  47. package/src/components/CmdTooltip.vue +33 -20
  48. package/src/components/CmdUploadForm.vue +212 -183
  49. package/src/components/CmdWidthLimitationWrapper.vue +19 -3
  50. package/dist/styles/templates/casual.css +0 -3
@@ -1,39 +1,27 @@
1
1
  <template>
2
2
  <!-- begin CmdSystemMessage ---------------------------------------------------------------------------------------- -->
3
3
  <transition :name="transition">
4
- <div
5
- v-if="showSystemMessage"
4
+ <div v-if="showSystemMessage"
6
5
  :class="['cmd-system-message', 'system-message', 'flex-container', 'flex-direction-column', { 'full-width': fullWidth }, systemMessageTextAlign, validationStatus]"
7
- :role="validationStatus === 'error' ? 'alert' : 'dialog'"
8
- :aria-labelledby="ariaId"
9
- >
6
+ :role="validationStatus === 'error' ? 'alert' : 'dialog'" :aria-labelledby="ariaId">
10
7
  <!-- begin slot-content -->
11
8
  <slot>
12
9
  <!-- begin CmdHeadline -->
13
- <CmdHeadline
14
- class="message-headline"
15
- :cmdIcon="headlineIcon"
16
- :headlineText="systemMessage"
17
- :headlineLevel="messageHeadlineLevel"
18
- :textAlign="textAlign"
19
- :id="ariaId"
20
- />
10
+ <CmdHeadline
11
+ class="message-headline"
12
+ v-bind="cmdHeadlineProperties"
13
+ :id="ariaId" />
21
14
  <!-- end CmdHeadline -->
22
15
  </slot>
23
16
  <!-- end slot-content -->
24
17
 
25
18
  <!-- begin close-icon -->
26
- <a
27
- v-if="iconClose.show && iconClose.iconClass"
28
- href="#"
19
+ <CmdLink
20
+ v-if="cmdLinkCloseIconProperties.show"
21
+ v-bind="cmdLinkCloseIconProperties"
29
22
  class="close-button"
30
- @click.prevent="hideSystemMessage"
31
- :title="iconClose.tooltip"
32
- >
33
- <!-- begin CmdIcon -->
34
- <CmdIcon :iconClass="iconClose.iconClass" :type="iconClose.iconType" />
35
- <!-- end CmdIcon -->
36
- </a>
23
+ @click="hideSystemMessage"
24
+ />
37
25
  <!-- end close-icon -->
38
26
  </div>
39
27
  </transition>
@@ -47,13 +35,21 @@ import Identifier from "../mixins/Identifier"
47
35
  export default {
48
36
  name: "CmdSystemMessage",
49
37
  mixins: [Identifier],
38
+ emits: ["hide-system-message"],
50
39
  data() {
51
40
  return {
52
41
  showSystemMessage: true,
53
42
  ariaId: this.ariaReferenceId || this.buildHtmlId("system-message") // mixin requires id to be defined
54
43
  }
55
44
  },
56
- props: {
45
+ props: {
46
+ /**
47
+ * set if user should be allowed to close the message (by close-icon)
48
+ */
49
+ allowUserToCloseMessage: {
50
+ type: Boolean,
51
+ default: true
52
+ },
57
53
  /**
58
54
  * define the text-align for the system message (will be inherited to CmdHeadline in slot)
59
55
  *
@@ -80,7 +76,7 @@ export default {
80
76
  *
81
77
  * @allowedValues: "none", "fade", "scroll"
82
78
  */
83
- transition: {
79
+ transition: {
84
80
  type: String,
85
81
  default: "fade"
86
82
  },
@@ -107,19 +103,6 @@ export default {
107
103
  type: Boolean,
108
104
  default: true
109
105
  },
110
- /**
111
- * set icon-class for message (will be displayed left from message)
112
- */
113
- iconMessage: {
114
- type: Object,
115
- default: function() {
116
- return {
117
- show: true,
118
- iconClass: "icon-warning",
119
- type: "auto"
120
- }
121
- }
122
- },
123
106
  /**
124
107
  * the system-message-text
125
108
  */
@@ -128,12 +111,21 @@ export default {
128
111
  required: false
129
112
  },
130
113
  /**
131
- * set headline-level for system-message (given to CmdHeadline-component)
114
+ * properties for CmdHeadline-component
132
115
  */
133
- messageHeadlineLevel: {
134
- type: [Number, String],
116
+ cmdHeadline: {
117
+ type: Object,
118
+ required: false
119
+ },
120
+ /**
121
+ * properties for CmdIcon-component shown before headline
122
+ */
123
+ cmdIconWarning: {
124
+ type: Object,
135
125
  default() {
136
- return 6
126
+ return {
127
+ iconClass: "icon-warning"
128
+ }
137
129
  }
138
130
  },
139
131
  /**
@@ -141,26 +133,32 @@ export default {
141
133
  *
142
134
  * @requiredForAccessibility: partial
143
135
  */
144
- iconClose: {
136
+ cmdLinkCloseIcon: {
145
137
  type: Object,
146
- default() {
147
- return {
148
- show: true,
149
- iconClass: "icon-cancel-circle",
150
- tooltip: "Close this message"
151
- }
152
- }
138
+ required: false
153
139
  }
154
140
  },
155
141
  computed: {
156
- headlineIcon() {
157
- if(this.iconMessage.show) {
158
- return {
159
- iconClass: this.iconMessage.iconClass,
160
- type: this.iconMessage.type
161
- }
142
+ cmdHeadlineProperties() {
143
+ return {
144
+ show: true,
145
+ headlineText: this.systemMessage,
146
+ headlineLevel: 4,
147
+ textAlign: this.textAlign,
148
+ cmdIcon: this.cmdIconWarning,
149
+ ...this.cmdHeadline
150
+ }
151
+ },
152
+ cmdLinkCloseIconProperties() {
153
+ return {
154
+ show: this.allowUserToCloseMessage,
155
+ highlightLevel: null,
156
+ icon: {
157
+ iconClass: "icon-cancel-circle",
158
+ tooltip: "Close this message"
159
+ },
160
+ ...this.cmdLinkCloseIcon
162
161
  }
163
- return null
164
162
  },
165
163
  systemMessageTextAlign() {
166
164
  if (this.textAlign) {
@@ -173,13 +171,13 @@ export default {
173
171
  return "align-items-flex-start"
174
172
  }
175
173
  }
176
- return ""
174
+ return null
177
175
  }
178
176
  },
179
177
  methods: {
180
178
  hideSystemMessage(event) {
181
179
  this.showSystemMessage = false
182
- this.$emit("hideSystemMessage", event)
180
+ this.$emit("hide-system-message", event)
183
181
  }
184
182
  },
185
183
  watch: {
@@ -195,10 +193,12 @@ export default {
195
193
  .cmd-system-message {
196
194
  display: inline-flex;
197
195
  margin: var(--default-margin) 0;
198
- align-self: flex-start; /* if used in flex-container component should not be stretched */
196
+ align-self: flex-start;
197
+ /* if used in flex-container component should not be stretched */
199
198
 
200
199
  .message-headline {
201
- margin: 0; /* overwrite default-settings from frontend-framework */
200
+ margin: 0;
201
+ /* overwrite default-settings from frontend-framework */
202
202
  }
203
203
 
204
204
  > :last-child {
@@ -214,10 +214,11 @@ export default {
214
214
  }
215
215
  }
216
216
 
217
- > a.close-button {
217
+ >a.close-button {
218
218
  display: flex;
219
219
  position: absolute;
220
- width: auto; /* avoids stretching by flex-containers */
220
+ width: auto;
221
+ /* avoids stretching by flex-containers */
221
222
  top: .5rem;
222
223
  right: .5rem;
223
224
  text-decoration: none;
@@ -230,7 +231,9 @@ export default {
230
231
  color: var(--default-text-color);
231
232
  }
232
233
 
233
- &:hover, &:active, &:focus {
234
+ &:hover,
235
+ &:active,
236
+ &:focus {
234
237
  background: none;
235
238
 
236
239
  [class*="icon-"] {
@@ -240,14 +243,16 @@ export default {
240
243
  }
241
244
 
242
245
  &.warning {
243
- > a.close-button {
246
+ >a.close-button {
244
247
  border-color: var(--default-text-color);
245
248
 
246
249
  [class*="icon-"] {
247
250
  color: var(--default-text-color);
248
251
  }
249
252
 
250
- &:hover, &:active, &:focus {
253
+ &:hover,
254
+ &:active,
255
+ &:focus {
251
256
  border-color: var(--hyperlink-color);
252
257
 
253
258
  [class*="icon-"] {
@@ -4,26 +4,24 @@
4
4
  :class="['cmd-table-wrapper', {'collapsed': !showTableData, 'full-width': fullWidth, 'has-caption': hasCaption, 'has-overflow': hasOverflow}]">
5
5
  <div v-if="collapsible || userCanToggleWidth" class="button-wrapper">
6
6
  <!-- begin button to toggle table-width -->
7
- <a v-if="userCanToggleWidth" class="button"
8
- href="#" @click.prevent="fullWidth = !fullWidth"
9
- :title="iconToggleWidth.tooltip"
10
- >
11
- <!-- begin CmdIcon -->
12
- <CmdIcon :iconClass="iconToggleWidth.iconClass" :type="iconToggleWidth.iconType"/>
13
- <!-- end CmdIcon -->
14
- </a>
7
+ <CmdLink
8
+ v-if="userCanToggleWidth"
9
+ v-bind="cmdLinkToggleWidthProperties"
10
+ @click="fullWidth = !fullWidth"
11
+ />
15
12
  <!-- end button to toggle table-width -->
16
13
 
17
14
  <!-- begin button to collapse table-content -->
18
- <a v-if="collapsible" class="button"
19
- href="#" @click.prevent="showTableData = !showTableData"
15
+ <CmdLink v-if="collapsible"
16
+ v-bind="cmdLinkToggleExpandProperties"
17
+ @click.prevent="showTableData = !showTableData"
20
18
  :title="showTableData ? iconCollapse.tooltip : iconExpand.tooltip"
21
19
  >
22
20
  <!-- begin CmdIcon -->
23
21
  <CmdIcon :iconClass="showTableData ? iconCollapse.iconClass : iconExpand.iconClass"
24
22
  :type="showTableData ? iconCollapse.iconType : iconExpand.iconType"/>
25
23
  <!-- end CmdIcon -->
26
- </a>
24
+ </CmdLink>
27
25
  <!-- end button to collapse table-content -->
28
26
  </div>
29
27
  <div class="inner-wrapper" ref="innerWrapper" @scroll="updatePosition">
@@ -181,38 +179,58 @@ export default {
181
179
  }
182
180
  },
183
181
  /**
184
- * icon to shrink table (horizontally)
182
+ * icon to stretch table (horizontally)
185
183
  *
186
184
  * @requiredForAccessibility: partial
187
185
  */
188
- iconToggleWidth: {
186
+ iconStretch: {
189
187
  type: Object,
190
188
  default: function () {
191
189
  return {
192
- iconClass: "icon-toggle-table-width",
193
- tooltip: "Toggle table width"
190
+ iconClass: "icon-chevron-one-stripe-right",
191
+ tooltip: "Stretch table"
194
192
  }
195
193
  }
196
194
  },
197
195
  /**
198
- * icon to stretch table (horizontally)
196
+ * properties for CmdLink-component to expand/collapse table
197
+ *
198
+ * icon is set separately by iconExpand-property and iconCollapse-property
199
+ */
200
+ cmdLinkToggleExpand: {
201
+ type: Object,
202
+ required: false
203
+ },
204
+ /**
205
+ * properties for CmdLink-component strtech/shrink table
199
206
  *
200
207
  * @requiredForAccessibility: partial
201
208
  */
202
- iconStretch: {
209
+ cmdLinkToggleWidth: {
203
210
  type: Object,
204
- default: function () {
205
- return {
206
- iconClass: "icon-chevron-one-stripe-right",
207
- tooltip: "Stretch table"
208
- }
209
- }
210
- }
211
+ required: false
212
+ },
211
213
  },
212
214
  mounted() {
213
215
  this.hasOverflow = this.$refs.table.clientWidth > this.$refs.innerWrapper.clientWidth
214
216
  },
215
217
  computed: {
218
+ cmdLinkToggleWidthProperties() {
219
+ return {
220
+ linkType: "button",
221
+ icon: {
222
+ iconClass: "icon-toggle-table-width",
223
+ tooltip: "Toggle table width"
224
+ },
225
+ ...this.cmdLinkToggleWidth
226
+ }
227
+ },
228
+ cmdLinkToggleExpandProperties() {
229
+ return {
230
+ linkType: "button",
231
+ ...this.cmdLinkToggleExpand
232
+ }
233
+ },
216
234
  hasCaption() {
217
235
  if (this.hideCaption) {
218
236
  return false
@@ -26,14 +26,11 @@
26
26
  <!-- end slot -->
27
27
 
28
28
  <div v-else aria-live="assertive">
29
- <!-- begin CmdHeadline -->
30
29
  <CmdHeadline
31
- v-if="cmdHeadline"
32
- v-bind="cmdHeadline"
30
+ v-if="cmdHeadlineProperties.show"
31
+ v-bind="cmdHeadlineProperties"
33
32
  :headlineText="tabs[showTab].headlineText"
34
- :headlineLevel="tabs[showTab].headlineLevel"
35
33
  />
36
- <!-- end CmdHeadline -->
37
34
 
38
35
  <!-- begin html-content -->
39
36
  <div v-html="tabs[showTab].htmlContent" :class="{'no-padding': !useDefaultPadding}"></div>
@@ -93,13 +90,13 @@ export default {
93
90
  /**
94
91
  * set highlight-level for tabs
95
92
  *
96
- * @allowedValues: "none", "primary", "secondary", "tertiary"
93
+ * @allowedValues: null, "primary", "secondary", "tertiary"
97
94
  */
98
95
  highlightLevel: {
99
96
  type: String,
100
97
  default: "primary",
101
98
  validator(value) {
102
- return value === "none" ||
99
+ return value === null ||
103
100
  value === "primary" ||
104
101
  value === "secondary" ||
105
102
  value === "tertiary"
@@ -114,12 +111,23 @@ export default {
114
111
  },
115
112
  /**
116
113
  * properties for CmdHeadline-component
114
+ *
115
+ * headlineText is provided by tabs-property for each tab
117
116
  */
118
117
  cmdHeadline: {
119
118
  type: Object,
120
119
  required: false
121
120
  }
122
121
  },
122
+ computed: {
123
+ cmdHeadlineProperties() {
124
+ return {
125
+ show: true,
126
+ headlineLevel: 3,
127
+ ...this.cmdHeadline
128
+ }
129
+ }
130
+ },
123
131
  methods: {
124
132
  setActiveTab(index) {
125
133
  this.showTab = index
@@ -3,11 +3,7 @@
3
3
  <small v-if="showTag" :class="['cmd-tag tag', highlightLevel]" ref="tag">
4
4
  <slot>
5
5
  <span>{{ tagText }}</span>
6
- <a v-if="removeTagByClick" href="#" @click.prevent="removeTag">
7
- <!-- begin CmdIcon -->
8
- <CmdIcon v-bind="cmdIcon" />
9
- <!-- end CmdIcon -->
10
- </a>
6
+ <CmdLink v-if="userCanRemoveTagByClick" v-bind="cmdLinkRemoveTagProperties" @click="removeTag" />
11
7
  </slot>
12
8
  </small>
13
9
  <!-- end CmdTag ---------------------------------------------------------------------------------------- -->
@@ -26,43 +22,48 @@ export default {
26
22
  /**
27
23
  * the displayed text of the tag
28
24
  */
29
- tagText: {
25
+ tagText: {
30
26
  type: String,
31
27
  required: true
32
28
  },
33
29
  /**
34
30
  * enable removing the tag by click
35
31
  */
36
- removeTagByClick: {
32
+ userCanRemoveTagByClick: {
37
33
  type: Boolean,
38
34
  default: false
39
35
  },
40
36
  /**
41
37
  * set highlight-level for tag
42
38
  *
43
- * @allowedValues: "none", "primary", "secondary", "tertiary"
39
+ * @allowedValues: null, "primary", "secondary", "tertiary"
44
40
  */
45
- highlightLevel: {
41
+ highlightLevel: {
46
42
  type: String,
47
- default: "none",
43
+ default: null,
48
44
  validator(value) {
49
- return value === "none" ||
45
+ return value === null ||
50
46
  value === "primary" ||
51
47
  value === "secondary" ||
52
48
  value === "tertiary"
53
49
  }
54
50
  },
55
51
  /**
56
- * properties for CmdIcon-component
52
+ * properties for CmdLink-component
57
53
  */
58
- cmdIcon: {
54
+ cmdLinkRemoveTag: {
59
55
  type: Object,
60
- default: function () {
61
- return {
56
+ required: false
57
+ }
58
+ },
59
+ computed: {
60
+ cmdLinkRemoveTagProperties() {
61
+ return {
62
+ icon: {
62
63
  iconClass: "icon-cancel-circle",
63
- tooltip: "Back to top",
64
- iconType: "auto"
65
- }
64
+ tooltip: "Remove tag",
65
+ },
66
+ ...this.cmdLinkRemoveTag
66
67
  }
67
68
  }
68
69
  },
@@ -76,7 +77,7 @@ export default {
76
77
  }
77
78
 
78
79
  this.$emit("click", event)
79
-
80
+
80
81
  if (!event.prevented) {
81
82
  this.showTag = false
82
83
  }
@@ -88,18 +89,22 @@ export default {
88
89
  <style>
89
90
  /* begin cmd-tag ------------------------------------------------------------------------------------------ */
90
91
  .cmd-tag {
91
- align-self: start; /* if used in vertical flex-container */
92
- gap: var(--default-gap-half);
92
+ align-self: start;
93
+ /* if used in vertical flex-container */
94
+ gap: var(--gap-small);
93
95
 
94
- > span:only-child {
96
+ >span:only-child {
95
97
  margin: 0 auto;
96
98
  }
97
99
 
98
- &.primary, &.secondary, &.tertiary {
100
+ &.primary,
101
+ &.secondary,
102
+ &.tertiary {
99
103
  span[class*="icon-"] {
100
104
  color: var(--color-white);
101
105
  }
102
106
  }
103
107
  }
108
+
104
109
  /* end cmd-tag ------------------------------------------------------------------------------------------ */
105
110
  </style>