comand-component-library 3.3.87 → 4.0.1

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 (73) hide show
  1. package/dist/comand-component-library.js +1728 -1655
  2. package/dist/comand-component-library.umd.cjs +4 -4
  3. package/dist/media/images/slideshow-images/large/slide1.jpg +0 -0
  4. package/dist/media/images/slideshow-images/large/slide2.jpg +0 -0
  5. package/dist/media/images/slideshow-images/large/slide3.jpg +0 -0
  6. package/dist/media/images/slideshow-images/large/slide4.jpg +0 -0
  7. package/dist/media/images/slideshow-images/medium/slide1.jpg +0 -0
  8. package/dist/media/images/slideshow-images/medium/slide2.jpg +0 -0
  9. package/dist/media/images/slideshow-images/medium/slide3.jpg +0 -0
  10. package/dist/media/images/slideshow-images/medium/slide4.jpg +0 -0
  11. package/dist/media/images/slideshow-images/small/slide1.jpg +0 -0
  12. package/dist/media/images/slideshow-images/small/slide2.jpg +0 -0
  13. package/dist/media/images/slideshow-images/small/slide3.jpg +0 -0
  14. package/dist/media/images/slideshow-images/small/slide4.jpg +0 -0
  15. package/dist/style.css +1 -1
  16. package/package.json +2 -2
  17. package/src/ComponentLibrary.vue +2629 -0
  18. package/src/assets/data/address-data.json +3 -3
  19. package/src/assets/data/main-navigation.json +2 -0
  20. package/src/components/CmdAddressData.vue +91 -97
  21. package/src/components/CmdAddressDataItem.vue +60 -52
  22. package/src/components/CmdBankAccountData.vue +1 -1
  23. package/src/components/CmdBox.vue +50 -14
  24. package/src/components/CmdBoxWrapper.vue +23 -9
  25. package/src/components/CmdBreadcrumbs.vue +1 -1
  26. package/src/components/CmdCompanyLogo.vue +14 -11
  27. package/src/components/CmdContainer.vue +1 -1
  28. package/src/components/CmdCookieDisclaimer.vue +1 -1
  29. package/src/components/CmdCopyrightInformation.vue +1 -1
  30. package/src/components/CmdFancyBox.vue +8 -5
  31. package/src/components/CmdForm.vue +7 -1
  32. package/src/components/CmdFormElement.vue +58 -108
  33. package/src/components/CmdFormFilters.vue +2 -1
  34. package/src/components/CmdGoogleMaps.vue +1 -1
  35. package/src/components/CmdHeadline.vue +116 -52
  36. package/src/components/CmdIcon.vue +1 -1
  37. package/src/components/CmdImage.vue +1 -1
  38. package/src/components/CmdImageGallery.vue +1 -1
  39. package/src/components/CmdImageZoom.vue +1 -1
  40. package/src/components/CmdInputGroup.vue +8 -7
  41. package/src/components/CmdListOfLinks.vue +25 -25
  42. package/src/components/CmdListOfLinksItem.vue +0 -4
  43. package/src/components/CmdListOfRequirements.vue +10 -2
  44. package/src/components/CmdLoginForm.vue +2 -1
  45. package/src/components/CmdMainNavigation.vue +38 -26
  46. package/src/components/CmdMultistepFormProgressBar.vue +50 -4
  47. package/src/components/CmdNewsletterSubscription.vue +8 -15
  48. package/src/components/CmdOpeningHours.vue +34 -19
  49. package/src/components/CmdOpeningHoursItem.vue +22 -14
  50. package/src/components/CmdPagination.vue +22 -16
  51. package/src/components/CmdProgressBar.vue +1 -1
  52. package/src/components/CmdSidebar.vue +13 -2
  53. package/src/components/CmdSiteFooter.vue +14 -14
  54. package/src/components/CmdSiteHeader.vue +14 -29
  55. package/src/components/CmdSiteSearch.vue +12 -11
  56. package/src/components/CmdSlideButton.vue +9 -7
  57. package/src/components/CmdSlideshow.vue +14 -12
  58. package/src/components/CmdSocialNetworks.vue +11 -4
  59. package/src/components/CmdSocialNetworksItem.vue +2 -7
  60. package/src/components/CmdSwitchLanguage.vue +1 -1
  61. package/src/components/CmdSystemMessage.vue +11 -6
  62. package/src/components/CmdTable.vue +64 -16
  63. package/src/components/CmdTabs.vue +2 -2
  64. package/src/components/CmdTextImageBlock.vue +3 -1
  65. package/src/components/CmdThumbnailScroller.vue +180 -155
  66. package/src/components/CmdToggleDarkMode.vue +1 -1
  67. package/src/components/CmdTooltip.vue +6 -1
  68. package/src/components/CmdUploadForm.vue +69 -43
  69. package/src/components/CmdWidthLimitationWrapper.vue +7 -3
  70. package/src/components/ComponentSettings.vue +171 -0
  71. package/src/main.js +3 -3
  72. package/src/mixins/FieldValidation.js +0 -17
  73. package/src/App.vue +0 -2119
@@ -19,18 +19,18 @@
19
19
  <div class="inner-thumbnail-wrapper">
20
20
  <!-- begin CmdSlideButton -->
21
21
  <CmdSlideButton
22
- v-if="showSlidebuttons"
23
- @click.prevent="showPrevItem"
24
- slideButtonType="prev"
22
+ v-if="showSlidebuttons"
23
+ @click.prevent="showPrevItem"
24
+ slideButtonType="prev"
25
25
  />
26
26
  <!-- end CmdSlideButton -->
27
27
 
28
28
  <!-- begin list of images to slide -->
29
29
  <transition-group name="slide" tag="ul">
30
- <li v-for="(item, index) in items" :key="index"
31
- :class="[{'active' : activeItemIndex === index}, item.id ? 'item-' + item.id : '']">
30
+ <li v-for="(item, index) in items" :key="index">
32
31
  <a v-if="!editModeContext" :href="executeOnClick === 'url' ? item.url : '#'"
33
32
  @click="executeLink(index, $event)"
33
+ :class="[{'active' : activeItemIndex === index}, item.id ? 'item-' + item.id : '']"
34
34
  :title="tooltip"
35
35
  :target="executeOnClick === 'url' ? '_blank' : null"
36
36
  >
@@ -117,6 +117,11 @@ export default {
117
117
  }
118
118
  },
119
119
  props: {
120
+ /**
121
+ * orientation for scroller
122
+ *
123
+ * @allewedValues: "horizontal", "vertical"
124
+ */
120
125
  orientation: {
121
126
  type: String,
122
127
  default: "horizontal"
@@ -357,199 +362,219 @@ export default {
357
362
  }
358
363
  </script>
359
364
 
360
- <style lang="scss">
365
+ <style>
361
366
  /* begin cmd-thumbnail-scroller ------------------------------------------------------------------------------------------ */
362
- @import '../assets/styles/variables';
363
-
364
367
  .cmd-thumbnail-scroller {
365
- display: inline-flex; /* do not set to table to avoid overflow is not hidden on small devices */
368
+ display: inline-flex; /* do not set to table to avoid overflow is not hidden on small devices */
366
369
  flex-direction: column;
367
370
  gap: var(--default-gap);
368
- width: 100%;
371
+ width: 100%;
369
372
 
370
373
  &.full-width:not(.vertical) {
371
- display: flex; /* allows flex-items to stretch equally over full space */
374
+ display: flex; /* allows flex-items to stretch equally over full space */
372
375
 
373
- > div {
374
- width: 100%;
375
- }
376
- }
376
+ > div {
377
+ width: 100%;
378
+ }
379
+ }
377
380
 
378
- > .inner-thumbnail-wrapper {
379
- border-radius: var(--border-radius);
381
+ > .inner-thumbnail-wrapper {
382
+ border-radius: var(--border-radius);
380
383
  padding: calc(var(--default-padding) * 2);
381
384
  padding-top: 0;
382
- margin: 0 auto;
383
- border: var(--default-border);
384
- background: var(--color-scheme-background-color);
385
- overflow: hidden;
386
-
387
- > ul {
388
- overflow: hidden;
389
- margin: 0;
390
- display: flex;
391
- gap: var(--grid-gap);
392
- justify-content: space-between;
393
- width: 100%; /* stretch flex-container */
394
-
395
- > li {
396
- align-self: center;
397
- list-style-type: none;
398
- margin: 0;
385
+ margin: 0 auto;
386
+ border: var(--default-border);
387
+ background: var(--color-scheme-background-color);
388
+ overflow: hidden;
389
+
390
+ > ul {
391
+ overflow: hidden;
392
+ margin: 0;
393
+ display: flex;
394
+ gap: var(--grid-gap);
395
+ justify-content: space-between;
396
+ width: 100%; /* stretch flex-container */
397
+
398
+ > li {
399
+ align-self: center;
400
+ list-style-type: none;
401
+ margin: 0;
399
402
  margin-top: 2rem;
403
+ flex: none; /* avoids items to shrink to small on small screens */
400
404
 
401
- a {
402
- text-align: center;
403
- }
404
-
405
- img {
406
- border-radius: var(--border-radius);
405
+ img {
406
+ border-radius: var(--border-radius);
407
407
  min-width: 15rem;
408
- max-height: 10rem;
409
- }
408
+ max-height: 10rem;
409
+ }
410
+
411
+ a {
412
+ display: block;
413
+ text-align: center;
414
+
415
+ &.active {
416
+ color: var(--pure-white);
410
417
 
411
- &.active {
412
- a {
413
- figcaption {
414
- opacity: 1;
415
- }
416
- }
417
- }
418
+ span, span[class*="icon"] {
419
+ color: inherit
420
+ }
421
+
422
+ figcaption {
423
+ opacity: 1;
424
+ }
425
+ }
426
+
427
+ &:has(img) {
428
+ padding: 0;
429
+ }
430
+
431
+ &:hover, &:active, &:focus {
432
+ &.active {
433
+ figcaption {
434
+ color: var(--hyperlink-color);
435
+ }
436
+ }
437
+ }
438
+ }
418
439
 
419
440
  .image-wrapper {
420
- min-width: 11.1rem; // assure to be as wide as action-buttons in edit-mode
441
+ min-width: 11.1rem; /* assure to be as wide as action-buttons in edit-mode */
421
442
  }
422
- }
423
- }
424
- }
443
+ }
444
+ }
445
+ }
425
446
 
426
- &.vertical {
447
+ &.vertical {
427
448
  width: auto;
428
449
 
429
450
  .inner-thumbnail-wrapper {
430
- display: inline-flex;
431
- left: 50%;
432
- height: 75rem; /* remove later !!! */
433
- transform: translateX(-50%);
434
-
435
- > ul {
436
- width: auto;
437
- display: flex;
438
- flex-direction: column;
439
-
440
- [class*="switch-button-"] {
441
- width: 100%;
442
- height: auto;
443
-
444
- &::before {
445
- transform: rotate(90deg);
446
- display: inline-block;
447
- margin: 0 auto;
451
+ display: inline-flex;
452
+ left: 50%;
453
+ height: 75rem; /* remove later !!! */
454
+ transform: translateX(-50%);
455
+
456
+ > ul {
457
+ width: auto;
458
+ display: flex;
459
+ flex-direction: column;
460
+
461
+ [class*="switch-button-"] {
462
+ width: 100%;
463
+ height: auto;
464
+
465
+ &::before {
466
+ transform: rotate(90deg);
467
+ display: inline-block;
468
+ margin: 0 auto;
469
+ }
470
+ }
471
+ }
472
+
473
+ .slide-button-next {
474
+ top: auto;
475
+ bottom: 0;
476
+ }
448
477
  }
449
- }
450
478
  }
451
479
 
452
- .slide-button-next {
453
- top: auto;
454
- bottom: 0;
455
- }
456
- }
457
- }
480
+ &.gallery-scroller {
481
+ max-width: var(--max-width);
482
+ left: 0;
483
+ right: 0;
484
+ position: fixed;
485
+ bottom: var(--default-margin);
486
+ margin: auto;
487
+ display: table;
488
+
489
+ li {
490
+ a {
491
+ color: var(--color-scheme-text-color);
492
+ text-decoration: none;
493
+
494
+ &.active {
495
+ img {
496
+ border-color: var(--primary-color);
497
+ }
458
498
 
459
- &.gallery-scroller {
460
- max-width: var(--max-width);
461
- left: 0;
462
- right: 0;
463
- position: fixed;
464
- bottom: var(--default-margin);
465
- margin: auto;
466
- display: table;
467
-
468
- li {
469
- a {
470
- color: var(--color-scheme-text-color);
471
- text-decoration: none;
472
- }
473
-
474
- &.active {
475
- img {
476
- border-color: var(--primary-color);
477
- }
499
+ figcaption {
500
+ color: var(--primary-color);
501
+ }
502
+ }
478
503
 
479
- figcaption {
480
- color: var(--primary-color);
481
- }
482
- }
504
+ &:not(.active) {
505
+ img {
506
+ border: var(--default-border);
507
+ opacity: var(--reduced-opacity);
508
+ }
483
509
 
484
- &:not(.active) {
485
- img {
486
- border: var(--default-border);
487
- opacity: var(--reduced-opacity);
488
- }
510
+ figcaption {
511
+ text-decoration: none;
512
+ }
513
+ }
514
+
515
+ &:hover, &:active, &:focus {
516
+ figcaption {
517
+ color: var(--primary-color);
518
+ }
489
519
 
490
- figcaption {
491
- text-decoration: none;
520
+ img {
521
+ border-color: var(--primary-color);
522
+ opacity: 1;
523
+ }
524
+ }
525
+ }
492
526
  }
527
+ }
493
528
 
494
- a {
495
- &:hover, &:active, &:focus {
496
- figcaption {
497
- color: var(--primary-color);
529
+ &.large-icons {
530
+ li a {
531
+ display: flex;
532
+ flex-direction: column;
533
+ gap: calc(var(--default-gap) / 4);
534
+ text-decoration: none;
535
+ align-items: center;
536
+ justify-content: center;
537
+
538
+ span {
539
+ margin: 0;
498
540
  }
499
541
 
500
- img {
501
- border-color: var(--primary-color);
502
- opacity: 1;
542
+ [class*="icon-"] {
543
+ font-size: 5rem;
503
544
  }
504
- }
505
545
  }
506
- }
507
546
  }
508
- }
509
-
510
- &.large-icons {
511
- li a {
512
- display: flex;
513
- flex-direction: column;
514
- gap: calc(var(--default-gap) / 4);
515
- text-decoration: none;
516
- align-items: center;
517
- justify-content: center;
518
-
519
- span {
520
- margin: 0;
521
- }
522
-
523
- [class*="icon-"] {
524
- font-size: 5rem;
525
- }
526
- }
527
- }
547
+ }
548
+ </style>
528
549
 
529
- @media only screen and (max-width: $medium-max-width) {
530
- & > ul > li {
531
- flex: none;
532
- }
550
+ <style lang="scss">
551
+ @import '../assets/styles/variables';
533
552
 
534
- & img {
535
- width: auto;
536
- }
553
+ @media only screen and (max-width: $medium-max-width) {
554
+ .cmd-thumbnail-scroller {
555
+ & > ul > li {
556
+ flex: none;
537
557
 
538
- & > ul > li img {
539
- max-height: 7rem;
540
- }
558
+ img {
559
+ max-height: 7rem;
560
+ }
561
+ }
541
562
 
542
- &.gallery-scroller {
543
- max-width: calc(100% - calc(var(--default-margin) * 3));
544
- display: flex;
563
+ & img {
564
+ width: auto;
565
+ }
566
+
567
+ &.gallery-scroller {
568
+ max-width: calc(100% - calc(var(--default-margin) * 3));
569
+ display: flex;
570
+ }
545
571
  }
546
- }
547
572
  }
548
573
 
549
574
  @container (width <= #{$small-max-width}) {
550
- .cmd-thumbnail-scroller {
551
- display: block;
552
- }
575
+ .cmd-thumbnail-scroller {
576
+ display: block;
577
+ }
553
578
  }
554
579
 
555
580
  /* end cmd-thumbnail-scroller ------------------------------------------------------------------------------------------ */
@@ -242,7 +242,7 @@ export default {
242
242
  }
243
243
  </script>
244
244
 
245
- <style lang="scss">
245
+ <style>
246
246
  /* begin cmd-toggle-dark-mode ---------------------------------------------------------------------------------------- */
247
247
  .cmd-toggle-dark-mode {
248
248
  &.styled-layout {
@@ -101,6 +101,8 @@ export default {
101
101
  }
102
102
  },
103
103
  mounted() {
104
+ window.addEventListener('scroll', this.hideOnScroll);
105
+
104
106
  if(this.relatedId) {
105
107
  const relatedElement = document.getElementById(this.relatedId)
106
108
 
@@ -118,6 +120,9 @@ export default {
118
120
  }
119
121
  },
120
122
  methods: {
123
+ hideOnScroll() {
124
+ this.tooltipVisibility = true
125
+ },
121
126
  toggleTooltipVisibility(event) {
122
127
  this.getPointerPosition(event)
123
128
  this.tooltipVisibility = !this.tooltipVisibility
@@ -185,7 +190,7 @@ export default {
185
190
  }
186
191
  </script>
187
192
 
188
- <style lang="scss">
193
+ <style>
189
194
  /* begin cmd-tooltip ------------------------------------------------------------------------------------------ */
190
195
  .cmd-tooltip {
191
196
  padding: .6rem .7rem .4rem .7rem;
@@ -24,22 +24,24 @@
24
24
  </CmdSystemMessage>
25
25
  <!-- end CmdSystemMessage -->
26
26
 
27
- <div :class="['box drop-area flex-container vertical', { 'allow-drop': allowDrop }]" v-on="dragAndDropHandler">
27
+ <div :class="['box flex-container vertical', { 'drop-area': enableDragAndDrop, 'allow-drop': allowDrop }]" v-on="dragAndDropHandler">
28
28
  <template v-if="!listOfFiles.length">
29
+ <!-- begin CmdHeadline -->
29
30
  <CmdHeadline v-if="allowMultipleFileUploads" v-bind="cmdHeadlineNoFilesToUpload" headlineLevel="4">
30
- {{ getMessage("cmduploadform.no_files_to_upload") }}
31
- </CmdHeadline>
32
- <CmdHeadline v-else v-bind="cmdHeadlineNoFilesToUpload" headlineLevel="4">
33
- {{ getMessage("cmduploadform.no_file_to_upload") }}
31
+ {{ headlineTextNoFilesToUpload }}
34
32
  </CmdHeadline>
33
+ <!-- end CmdHeadline -->
35
34
  </template>
36
35
 
37
36
  <!-- begin total-upload information -->
38
37
  <div v-else class="flex-container vertical">
39
38
  <div v-if="showTotalUpload && listOfFiles.length !== 1" class="flex-container vertical list-files-wrapper">
39
+ <!-- begin CmdHeadline -->
40
40
  <CmdHeadline v-bind="cmdHeadlineSummaryOfAllFiles" headlineLevel="4">
41
41
  {{ getMessage("cmduploadform.headline.summary_of_all_files") }}
42
42
  </CmdHeadline>
43
+ <!-- end CmdHeadline -->
44
+
43
45
  <ul v-if="showTotalUpload && listOfFiles.length !== 1" class="list-of-files total-files">
44
46
  <li class="flex-container no-flex">
45
47
  <a
@@ -83,9 +85,12 @@
83
85
 
84
86
  <div class="flex-container vertical list-files-wrapper">
85
87
  <!-- begin list of selected files -->
88
+ <!-- begin CmdHeadline -->
86
89
  <CmdHeadline v-bind="cmdHeadlineListOfSelectedFiles" headlineLevel="4">
87
90
  {{ getMessage("cmduploadform.headline.list_of_selected_files") }}
88
91
  </CmdHeadline>
92
+ <!-- end CmdHeadline -->
93
+
89
94
  <ul class="list-of-files">
90
95
  <li
91
96
  v-for="(uploadFile, index) in listOfFiles"
@@ -108,20 +113,21 @@
108
113
  { error: uploadFile.error }
109
114
  ]">
110
115
  {{ uploadFile.file.name }} <small>({{ formatSize(uploadFile.file.size) }})</small>
111
- </span>
112
- <template v-if="uploadInitiated && !uploadFile.error">
113
- <span class="progressbar">
114
- <span>{{ getPercentage(uploadFile.progress) }}</span>
115
- <!-- do not place inside progress-tag (will not be displayed then) -->
116
- <progress
117
- max="100"
118
- :value="uploadFile.progress"
119
- :title="
120
- formatSize(uploadFile.uploadedBytes) + '/' + formatSize(uploadFile.file.size)
121
- "
122
- ></progress>
123
- </span>
124
- </template>
116
+ </span>
117
+
118
+ <!-- begin progressbar -->
119
+ <span class="progressbar" v-if="uploadInitiated && !uploadFile.error">
120
+ <span>{{ getPercentage(uploadFile.progress) }}</span>
121
+ <!-- do not place inside progress-tag (will not be displayed then) -->
122
+ <progress
123
+ max="100"
124
+ :value="uploadFile.progress"
125
+ :title="
126
+ formatSize(uploadFile.uploadedBytes) + '/' + formatSize(uploadFile.file.size)
127
+ "
128
+ ></progress>
129
+ </span>
130
+ <!-- end progressbar -->
125
131
  </li>
126
132
  </ul>
127
133
  <a
@@ -137,12 +143,18 @@
137
143
  <!-- end list of selected files -->
138
144
 
139
145
  <!-- begin upload conditions -->
146
+ <!-- begin CmdHeadline -->
140
147
  <CmdHeadline v-if="allowMultipleFileUploads && listOfFiles.length" v-bind="cmdHeadlineSelectAdditionalFiles" headlineLevel="4">
141
148
  {{ getMessage("cmduploadform.headline.select_additional_files") }}
142
149
  </CmdHeadline>
150
+ <!-- end CmdHeadline -->
151
+
152
+ <!-- begin CmdHeadline -->
143
153
  <CmdHeadline v-if="!allowMultipleFileUploads && listOfFiles.length" v-bind="cmdHeadlineSelectNewFile" headlineLevel="4">
144
154
  {{ getMessage("cmduploadform.headline.select_new_file") }}
145
155
  </CmdHeadline>
156
+ <!-- end CmdHeadline -->
157
+
146
158
  <dl class="small">
147
159
  <template v-if="maxTotalUploadSize > 0">
148
160
  <dt :class="{ error: totalSize > maxTotalUploadSize }">
@@ -188,7 +200,8 @@
188
200
  </dl>
189
201
  <!-- end upload conditions -->
190
202
 
191
- <div>
203
+ <!-- begin upload-button and drag-and-drop-text -->
204
+ <div class="flex-container vertical no-gap">
192
205
  <button
193
206
  type="button"
194
207
  :class="['button upload primary', { disabled: uploadInitiated }]"
@@ -217,7 +230,9 @@
217
230
  </strong>
218
231
  </p>
219
232
  </div>
233
+ <!-- end upload-button and drag-and-drop-text -->
220
234
  </div>
235
+
221
236
  <!-- begin CmdFormElement -->
222
237
  <CmdFormElement
223
238
  v-if="enableComment"
@@ -268,7 +283,8 @@
268
283
  <!-- end advanced mode -->
269
284
 
270
285
  <!-- begin simple mode -->
271
- <a v-else href="#" @click.prevent="selectFiles" :class="['cmd-upload-form drop-area', {'allow-drop': allowDrop }]" v-on="dragAndDropHandler">
286
+ <a v-else href="#" @click.prevent="selectFiles" :class="['cmd-upload-form box', { 'drop-area': enableDragAndDrop, 'allow-drop': allowDrop }]" v-on="dragAndDropHandler">
287
+ <!-- begin progressbar -->
272
288
  <span class="progressbar" v-if="uploadInitiated">
273
289
  <span>{{ getPercentage(totalUploadProgress) }}</span>
274
290
  <progress
@@ -277,10 +293,11 @@
277
293
  :title="totalBytesUploaded">
278
294
  </progress>
279
295
  </span>
296
+ <!-- end progressbar -->
280
297
 
281
298
  <!-- begin slot-content -->
282
299
  <slot>
283
- <template v-if="enableDragAndDrop">
300
+ <template v-if="!enableDragAndDrop">
284
301
  <template v-if="fileTypeImage">
285
302
  <span>{{ getMessage("cmduploadform.select_image") }}</span>
286
303
  <!-- begin CmdIcon -->
@@ -455,6 +472,22 @@ export default {
455
472
  type: Boolean,
456
473
  default: true
457
474
  },
475
+ /**
476
+ * toggle visibility for legend-text
477
+ */
478
+ showLegend: {
479
+ type: Boolean,
480
+ default: true
481
+ },
482
+ /**
483
+ * text for legend
484
+ *
485
+ * @requiredForAccessibility: true
486
+ */
487
+ textLegend: {
488
+ type: String,
489
+ required: false
490
+ },
458
491
  /**
459
492
  * set icon for delete-icons
460
493
  */
@@ -611,25 +644,12 @@ export default {
611
644
  cmdHeadlineSelectNewFile: {
612
645
  type: Object,
613
646
  required: false
614
- },
615
- /**
616
- * toggle visibility for legend-text
617
- */
618
- showLegend: {
619
- type: Boolean,
620
- default: true
621
- },
622
- /**
623
- * text for legend
624
- *
625
- * @requiredForAccessibility: true
626
- */
627
- textLegend: {
628
- type: String,
629
- required: false
630
647
  }
631
648
  },
632
649
  computed: {
650
+ headlineTextNoFilesToUpload() {
651
+ return this.allowMultipleFileUploads ? this.getMessage("cmduploadform.no_files_to_upload") : this.this.getMessage("cmduploadform.no_file_to_upload")
652
+ },
633
653
  fileTypeImage() {
634
654
  return this.allowedFileExtensions.some(extension => extension.includes('jpg'));
635
655
  },
@@ -1035,7 +1055,7 @@ export default {
1035
1055
  }
1036
1056
  </script>
1037
1057
 
1038
- <style lang="scss">
1058
+ <style>
1039
1059
  /* begin cmd-upload-form -------------------------------------------------------------------------------------------- */
1040
1060
  .cmd-upload-form {
1041
1061
  .cmd-custom-headline {
@@ -1076,7 +1096,7 @@ export default {
1076
1096
  overflow-x: hidden;
1077
1097
  overflow-y: auto;
1078
1098
  border: var(--default-border);
1079
- padding: calc(var(--default-padding) * 2);
1099
+ padding: var(--default-padding);
1080
1100
  margin: 0;
1081
1101
 
1082
1102
  > li {
@@ -1175,7 +1195,7 @@ export default {
1175
1195
  border: var(--default-border);
1176
1196
  border-style: dashed;
1177
1197
  background: var(--color-scheme-background-color);
1178
- padding: (var(--default-padding));
1198
+ padding: var(--default-padding);
1179
1199
  text-align: center;
1180
1200
 
1181
1201
  &.allow-drop {
@@ -1187,14 +1207,20 @@ export default {
1187
1207
  }
1188
1208
  }
1189
1209
 
1190
- &.drop-area {
1210
+ &.box {
1191
1211
  display: inline-flex;
1192
1212
  flex-direction: column;
1193
- text-decoration: none;
1194
1213
  background: var(--default-background-color);
1214
+ text-decoration: none;
1215
+ text-align: center;
1216
+ padding: var(--default-padding);
1195
1217
 
1196
1218
  span {
1197
1219
  margin: 0;
1220
+
1221
+ &[class*="icon-"] {
1222
+ font-size: 5rem;
1223
+ }
1198
1224
  }
1199
1225
  }
1200
1226
  }