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,7 +1,7 @@
1
1
  <template>
2
2
  <transition :name="transition">
3
3
  <!-- begin CmdCookieDisclaimer ---------------------------------------------------------------------------------------- -->
4
- <div class="cmd-cookie-disclaimer flex-container vertical">
4
+ <div class="cmd-cookie-disclaimer flex-container flex-direction-column">
5
5
  <!-- begin slot -->
6
6
  <template v-if="useSlot">
7
7
  <slot></slot>
@@ -20,7 +20,7 @@
20
20
  <!-- begin slot for cookie-options -->
21
21
  <slot name="cookie-options">
22
22
  <!-- begin required cookies -->
23
- <div v-if="cookieOptions?.required" class="flex-container vertical">
23
+ <div v-if="cookieOptions?.required" class="flex-container flex-direction-column">
24
24
  <!-- begin CmdHeadline -->
25
25
  <CmdHeadline
26
26
  v-if="defaultCmdBoxRequiredCookies().showHeadline && defaultCmdBoxRequiredCookies().headlineText"
@@ -53,7 +53,7 @@
53
53
  <!-- end icon to toggle box-body -->
54
54
  </header>
55
55
  <div v-show="boxIsOpen(cookie.id)" class="collapsible-box-body">
56
- <p v-if="cookie.description">{{ cookie.description }}</p>
56
+ <CmdParagraph v-if="cookie.description" :content="cookie.description"/>
57
57
  <p v-if="cookie.linkDataPrivacy">
58
58
  {{ cookie.linkDataPrivacy.label }}
59
59
  <a @click="openDataPrivacy"
@@ -71,7 +71,7 @@
71
71
  <hr/>
72
72
 
73
73
  <!-- begin optional cookies -->
74
- <div v-if="cookieOptions?.optional" class="flex-container vertical">
74
+ <div v-if="cookieOptions?.optional" class="flex-container flex-direction-column">
75
75
  <!-- begin CmdHeadline -->
76
76
  <CmdHeadline
77
77
  v-if="defaultCmdBoxOptionalCookies().showHeadline && defaultCmdBoxOptionalCookies().headlineText"
@@ -104,7 +104,7 @@
104
104
  <!-- end icon to toggle box-body -->
105
105
  </header>
106
106
  <div v-show="boxIsOpen(cookie.id)" class="collapsible-box-body">
107
- <p v-if="cookie.description">{{ cookie.description }}</p>
107
+ <CmdParagraph v-if="cookie.description" :content="cookie.description "/>
108
108
  <p v-if="cookie.linkDataPrivacy">
109
109
  {{ cookie.linkDataPrivacy.label }}
110
110
  <a @click="openDataPrivacy"
@@ -19,7 +19,8 @@
19
19
  <template v-if="showLabel">
20
20
  <!-- begin label -->
21
21
  <span class="label-text">
22
- <span :id="htmlId">{{ labelText }}<sup v-if="$attrs.required !== undefined" aria-hidden="true">*</sup></span>
22
+ <span :id="htmlId">{{ labelText }}<sup v-if="$attrs.required !== undefined" aria-hidden="true">*</sup>
23
+ </span>
23
24
 
24
25
  <!-- begin status-icon (linked with tooltip) -->
25
26
  <button v-if="($attrs.required || inputRequirements.length) && showStatusIcon"
@@ -604,8 +605,6 @@ export default {
604
605
  }
605
606
 
606
607
  a {
607
- gap: calc(var(--icon-and-text-gap) / 2) !important;
608
-
609
608
  span {
610
609
  text-decoration: none !important;
611
610
 
@@ -634,6 +633,7 @@ export default {
634
633
  background: var(--color-scheme-background);
635
634
  color: var(--color-scheme-text-color);
636
635
  border-radius: var(--default-border-radius);
636
+ box-shadow: var(--form-input-box-shadow);
637
637
 
638
638
  img {
639
639
  flex-shrink: 0;
@@ -655,7 +655,7 @@ export default {
655
655
 
656
656
  &:hover, &:active, &:focus {
657
657
  background: var(--color-white);
658
- border-color: var(--primary-color);
658
+ border-color: var(--hyperlink-color);
659
659
 
660
660
  span, [class*="icon"] {
661
661
  color: var(--hyperlink-color);
@@ -666,19 +666,30 @@ export default {
666
666
 
667
667
  ul {
668
668
  max-height: v-bind(dropdownMaxHeight);
669
+ overflow-x: hidden;
669
670
  overflow-y: auto;
670
671
  }
671
672
  }
672
673
 
673
674
  &.open {
675
+ border-bottom-left-radius: 0;
676
+ border-bottom-right-radius: 0;
677
+
678
+ > li:first-child {
679
+ a {
680
+ border-bottom-left-radius: 0;
681
+ border-bottom-right-radius: 0;
682
+ }
683
+ }
684
+
674
685
  ul {
675
- border-bottom-left-radius: var(--default-border-radius);
676
- border-bottom-right-radius: var(--default-border-radius);
686
+ border-bottom-left-radius: var(--border-radius-small);
687
+ border-bottom-right-radius: var(--border-radius-small);
677
688
 
678
689
  > li {
679
690
  &:first-child {
680
691
  > a {
681
- border-color: var(--primary-color);
692
+ border-color: var(--hyperlink-color);
682
693
  border-bottom-left-radius: 0;
683
694
  border-bottom-right-radius: 0;
684
695
  }
@@ -705,17 +716,15 @@ export default {
705
716
  a, a:visited {
706
717
  display: flex;
707
718
  align-items: center;
719
+ gap: var(--gap-small);
708
720
  width: 100%;
709
- padding: var(--form-input-padding);
710
- padding-top: calc(var(--default-padding) - .06rem);
711
- padding-right: calc(var(--default-padding) / 2);
712
- padding-bottom: calc(var(--default-padding) - .06rem);
721
+ padding: 1rem;
713
722
  outline: none;
714
723
  border-bottom: var(--default-border);
715
724
  text-decoration: none;
716
725
 
717
726
  &:hover, &:active, &:focus {
718
- background: var(--primary-color);
727
+ background: var(--hyperlink-color);
719
728
 
720
729
  span, [class*="icon"] {
721
730
  color: var(--color-white);
@@ -729,9 +738,7 @@ export default {
729
738
  }
730
739
 
731
740
  img {
732
- &.flag {
733
- margin: 0 calc(var(--default-margin) / 2) 0 0;
734
- }
741
+ box-shadow: none;
735
742
  }
736
743
 
737
744
  &.active {
@@ -742,7 +749,7 @@ export default {
742
749
  }
743
750
 
744
751
  &:hover, &:active, &:focus {
745
- background: var(--primary-color);
752
+ background: var(--hyperlink-color);
746
753
 
747
754
  span, [class*="icon"] {
748
755
  color: var(--color-white);
@@ -820,6 +827,9 @@ export default {
820
827
  > a {
821
828
  text-decoration: none !important;
822
829
  border-color: var(--status-color);
830
+ padding-top: calc(var(--default-padding) - .06rem);
831
+ padding-right: calc(var(--default-padding) / 2);
832
+ padding-bottom: calc(var(--default-padding) - .06rem);
823
833
 
824
834
  > span, [class*="icon-"] {
825
835
  text-decoration: none !important;
@@ -853,7 +863,7 @@ export default {
853
863
  &.color {
854
864
  li {
855
865
  a {
856
- gap: calc(var(--default-gap) / 2);
866
+ gap: var(--gap-small);
857
867
 
858
868
  > span:first-child {
859
869
  width: 1.5rem;
@@ -9,8 +9,8 @@
9
9
  <header class="flex-container">
10
10
  <!-- begin CmdHeadline -->
11
11
  <CmdHeadline
12
- v-if="cmdHeadline?.headlineText"
13
- v-bind="cmdHeadline"
12
+ v-if="cmdHeadlineProperties?.show && cmdHeadlineProperties?.headlineText"
13
+ v-bind="cmdHeadlineProperties"
14
14
  />
15
15
  <!-- end CmdHeadline -->
16
16
 
@@ -19,46 +19,29 @@
19
19
  v-if="(fancyBoxOptionsProperties.printButtons?.color || fancyBoxOptionsProperties.printButtons?.grayscale) || fancyBoxOptionsProperties.closeIcon"
20
20
  class="button-wrapper flex-none"
21
21
  > <!-- begin print buttons -->
22
- <a v-if="showPrintButtons && fancyBoxOptionsProperties.printButtons?.color"
23
- href="#"
24
- class="button print-color"
25
- :title="fancyBoxOptionsProperties.printButtons.color?.tooltip"
26
- @click.prevent="printPage('color')">
27
- <!-- begin CmdIcon -->
28
- <CmdIcon
29
- :iconClass="fancyBoxOptionsProperties.printButtons.color?.iconClass"
30
- :type="fancyBoxOptionsProperties.printButtons.color?.iconType"
31
- />
32
- <!-- end CmdIcon -->
33
- </a>
34
- <a v-if="showPrintButtons && fancyBoxOptionsProperties.printButtons?.grayscale"
35
- href="#"
36
- class="button print-grayscale"
37
- :title="fancyBoxOptionsProperties.printButtons.grayscale?.tooltip"
38
- @click.prevent="printPage('grayscale')">
39
- <!-- begin CmdIcon -->
40
- <CmdIcon
41
- :iconClass="fancyBoxOptionsProperties.printButtons.grayscale?.iconClass"
42
- :type="fancyBoxOptionsProperties.printButtons.grayscale?.iconType"
43
- />
44
- <!-- end CmdIcon -->
45
- </a>
22
+ <CmdLink
23
+ v-if="showPrintButtons && fancyBoxOptionsProperties.printButtons?.color"
24
+ class="print-color"
25
+ v-bind="fancyBoxOptionsProperties.printButtons.color"
26
+ @click="printPage('color')"
27
+ />
28
+
29
+ <CmdLink
30
+ v-if="showPrintButtons && fancyBoxOptionsProperties.printButtons?.grayscale"
31
+ class="print-grayscale"
32
+ v-bind="fancyBoxOptionsProperties.printButtons.grayscale"
33
+ @click="printPage('grayscale')"
34
+ />
46
35
  <!-- end print buttons -->
47
36
 
48
37
  <!-- begin close-icon -->
49
- <a v-if="fancyBoxOptionsProperties.closeIcon?.show"
50
- href="#"
51
- id="close-dialog"
52
- :title="fancyBoxOptionsProperties.closeIcon?.tooltip"
53
- ref="close-dialog"
54
- @click.prevent="close">
55
- <!-- begin CmdIcon -->
56
- <CmdIcon
57
- :iconClass="fancyBoxOptionsProperties.closeIcon?.iconClass"
58
- :type="fancyBoxOptionsProperties.closeIcon?.iconType"
59
- />
60
- <!-- end CmdIcon -->
61
- </a>
38
+ <CmdLink
39
+ v-if="fancyBoxOptionsProperties.closeIcon?.show"
40
+ id="close-dialog"
41
+ ref="close-dialog"
42
+ v-bind="fancyBoxOptionsProperties.closeIcon"
43
+ @click="close"
44
+ />
62
45
  <!-- end close-icon -->
63
46
  </div>
64
47
  <!-- end button-wrapper -->
@@ -94,33 +77,19 @@
94
77
  </div>
95
78
  <footer v-if="showSubmitButtons && fancyBoxOptionsProperties.submitButtons" class="flex-container flex-items-flex-none">
96
79
  <!-- begin cancel-button -->
97
- <button
98
- v-if="fancyBoxOptionsProperties.submitButtons?.cancel"
99
- @click="cancel"
100
- :title="fancyBoxOptionsProperties.submitButtons.cancel?.tooltip">
101
- <CmdIcon
102
- v-if="fancyBoxOptionsProperties.submitButtons.cancel?.iconClass"
103
- :iconClass="fancyBoxOptionsProperties.submitButtons.cancel?.iconClass"
104
- :type="fancyBoxOptionsProperties.submitButtons.cancel?.iconType"
105
- />
106
- <span
107
- v-if="fancyBoxOptionsProperties.submitButtons.cancel?.buttonText">{{ fancyBoxOptionsProperties.submitButtons.cancel?.buttonText }}</span>
108
- </button>
80
+ <CmdLink
81
+ v-if="fancyBoxOptionsProperties.submitButtons?.cancel.show"
82
+ v-bind="fancyBoxOptionsProperties.submitButtons.cancel"
83
+ @click="cancel"
84
+ />
109
85
  <!-- end cancel-button -->
110
86
 
111
87
  <!-- begin confirm-button -->
112
- <button
113
- v-if="fancyBoxOptionsProperties.submitButtons?.confirm"
114
- @click="confirm"
115
- :title="fancyBoxOptionsProperties.submitButtons.cancel?.tooltip">
116
- <CmdIcon
117
- v-if="fancyBoxOptionsProperties.submitButtons.confirm?.iconClass"
118
- :iconClass="fancyBoxOptionsProperties.submitButtons.confirm?.iconClass"
119
- :type="fancyBoxOptionsProperties.submitButtons.confirm?.iconType"
120
- />
121
- <span
122
- v-if="fancyBoxOptionsProperties.submitButtons.confirm?.buttonText">{{ fancyBoxOptionsProperties.submitButtons.confirm?.buttonText }}</span>
123
- </button>
88
+ <CmdLink
89
+ v-if="fancyBoxOptionsProperties.submitButtons?.confirm.show"
90
+ v-bind="fancyBoxOptionsProperties.submitButtons.confirm"
91
+ @click="confirm"
92
+ />
124
93
  <!-- end confirm-button -->
125
94
  </footer>
126
95
 
@@ -152,7 +121,7 @@ const openFancyBox = (config) => {
152
121
 
153
122
  const FancyBox = defineComponent({
154
123
  name: "CmdFancyBox",
155
- emits: ['cancel', 'confirm'],
124
+ emits: ["cancel", "confirm", "update:show"],
156
125
  data() {
157
126
  return {
158
127
  fancyBoxContent: null,
@@ -291,43 +260,62 @@ const FancyBox = defineComponent({
291
260
  }
292
261
  },
293
262
  computed: {
263
+ cmdHeadlineProperties() {
264
+ return {
265
+ show: true,
266
+ headlineLevel: 3,
267
+ ...this.cmdHeadline
268
+ }
269
+ },
294
270
  fancyBoxOptionsProperties() {
295
271
  return {
296
272
  closeIcon: {
297
273
  show: true,
298
- iconClass: "icon-cancel",
299
- iconType: "auto",
300
- tooltip: "Close",
274
+ styleAsButton: true,
275
+ icon: {
276
+ iconClass: "icon-cancel",
277
+ tooltip: "Close dialog"
278
+ },
301
279
  ...this.fancyBoxOptions?.closeIcon
302
280
  },
303
281
  printButtons: {
304
282
  color: {
305
- iconClass: "icon-print",
306
- iconType: "auto",
307
- tooltip: "print in color",
283
+ styleAsButton: true,
284
+ icon: {
285
+ iconClass: "icon-print",
286
+ tooltip: "Print in color",
287
+ },
308
288
  ...this.fancyBoxOptions?.printButtons?.color
309
289
  },
310
290
  grayscale: {
311
- iconClass: "icon-print",
312
- iconType: "auto",
313
- tooltip: "print in grayscale",
291
+ styleAsButton: true,
292
+ icon: {
293
+ iconClass: "icon-print",
294
+ tooltip: "Print in grayscale",
295
+ },
314
296
  ...this.fancyBoxOptions?.printButtons?.grayscale
315
297
  }
316
298
  },
317
299
  submitButtons: {
318
300
  cancel: {
319
- iconClass: "icon-cancel",
320
- iconType: "auto",
321
- tooltip: "Cancel",
322
- buttonText: "Cancel",
301
+ show: true,
302
+ linkType: "button",
303
+ icon: {
304
+ iconClass: "icon-cancel",
305
+ tooltip: "Cancel",
306
+ },
307
+ text: "Confirm",
323
308
  ...this.fancyBoxOptions?.submitButtons?.cancel
324
309
  },
325
310
  confirm: {
326
- iconClass: "icon-check",
327
- iconType: "auto",
328
- buttonText: "Confirm",
329
- tooltip: "Confirm",
330
- buttonType: "primary",
311
+ show: true,
312
+ linkType: "button",
313
+ icon: {
314
+ iconClass: "icon-check",
315
+ tooltip: "Confirm",
316
+ },
317
+ text: "Confirm",
318
+ highlightLevel: "primary",
331
319
  ...this.fancyBoxOptions?.submitButtons?.confirm
332
320
  }
333
321
  }
@@ -409,7 +397,7 @@ const FancyBox = defineComponent({
409
397
  showDialog() {
410
398
  // avoid scrolling if fancybox is shown
411
399
  document.querySelector("body").classList.add("avoid-scrolling")
412
- this.$refs.dialog.showModal()
400
+ this.$refs.dialog.showModal() // invoke native method for dialog-element
413
401
 
414
402
  // overwrite default behavior of dialog-element, which sets focus on first focusable element inside
415
403
  this.$refs["close-dialog"]?.focus()
@@ -463,7 +451,7 @@ const FancyBox = defineComponent({
463
451
  this.index = 0;
464
452
  }
465
453
  },
466
- // close fancybox (by button, escape-key)
454
+ // close fancybox (by button or escape-key)
467
455
  close() {
468
456
  this.showFancyBox = false
469
457
  this.$emit("update:show", false)
@@ -652,7 +640,7 @@ export default FancyBox
652
640
  .outer-content-wrapper {
653
641
  max-height: 85vh;
654
642
  overflow-x: hidden;
655
- flex: none;
643
+ /*flex: none;*/
656
644
 
657
645
  .content {
658
646
  > img, > video {
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div class="cmd-footnote">
3
- <CmdHeadline v-if="cmdHeadline?.headlineText" v-bind="cmdHeadlineProperties" />
3
+ <CmdHeadline v-if="cmdHeadlineProperties?.show && cmdHeadlineProperties?.headlineText" v-bind="cmdHeadlineProperties" />
4
4
  <CmdList listType="description" :items="items" :class="'type-' + descriptionTermType" />
5
5
  </div>
6
6
  </template>
@@ -40,6 +40,7 @@ export default {
40
40
  computed: {
41
41
  cmdHeadlineProperties() {
42
42
  return {
43
+ show: true,
43
44
  headlineLevel: 6,
44
45
  ...this.cmdHeadline
45
46
  }