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.
- package/dist/comand-component-library.js +1728 -1655
- package/dist/comand-component-library.umd.cjs +4 -4
- package/dist/media/images/slideshow-images/large/slide1.jpg +0 -0
- package/dist/media/images/slideshow-images/large/slide2.jpg +0 -0
- package/dist/media/images/slideshow-images/large/slide3.jpg +0 -0
- package/dist/media/images/slideshow-images/large/slide4.jpg +0 -0
- package/dist/media/images/slideshow-images/medium/slide1.jpg +0 -0
- package/dist/media/images/slideshow-images/medium/slide2.jpg +0 -0
- package/dist/media/images/slideshow-images/medium/slide3.jpg +0 -0
- package/dist/media/images/slideshow-images/medium/slide4.jpg +0 -0
- package/dist/media/images/slideshow-images/small/slide1.jpg +0 -0
- package/dist/media/images/slideshow-images/small/slide2.jpg +0 -0
- package/dist/media/images/slideshow-images/small/slide3.jpg +0 -0
- package/dist/media/images/slideshow-images/small/slide4.jpg +0 -0
- package/dist/style.css +1 -1
- package/package.json +2 -2
- package/src/ComponentLibrary.vue +2629 -0
- package/src/assets/data/address-data.json +3 -3
- package/src/assets/data/main-navigation.json +2 -0
- package/src/components/CmdAddressData.vue +91 -97
- package/src/components/CmdAddressDataItem.vue +60 -52
- package/src/components/CmdBankAccountData.vue +1 -1
- package/src/components/CmdBox.vue +50 -14
- package/src/components/CmdBoxWrapper.vue +23 -9
- package/src/components/CmdBreadcrumbs.vue +1 -1
- package/src/components/CmdCompanyLogo.vue +14 -11
- package/src/components/CmdContainer.vue +1 -1
- package/src/components/CmdCookieDisclaimer.vue +1 -1
- package/src/components/CmdCopyrightInformation.vue +1 -1
- package/src/components/CmdFancyBox.vue +8 -5
- package/src/components/CmdForm.vue +7 -1
- package/src/components/CmdFormElement.vue +58 -108
- package/src/components/CmdFormFilters.vue +2 -1
- package/src/components/CmdGoogleMaps.vue +1 -1
- package/src/components/CmdHeadline.vue +116 -52
- package/src/components/CmdIcon.vue +1 -1
- package/src/components/CmdImage.vue +1 -1
- package/src/components/CmdImageGallery.vue +1 -1
- package/src/components/CmdImageZoom.vue +1 -1
- package/src/components/CmdInputGroup.vue +8 -7
- package/src/components/CmdListOfLinks.vue +25 -25
- package/src/components/CmdListOfLinksItem.vue +0 -4
- package/src/components/CmdListOfRequirements.vue +10 -2
- package/src/components/CmdLoginForm.vue +2 -1
- package/src/components/CmdMainNavigation.vue +38 -26
- package/src/components/CmdMultistepFormProgressBar.vue +50 -4
- package/src/components/CmdNewsletterSubscription.vue +8 -15
- package/src/components/CmdOpeningHours.vue +34 -19
- package/src/components/CmdOpeningHoursItem.vue +22 -14
- package/src/components/CmdPagination.vue +22 -16
- package/src/components/CmdProgressBar.vue +1 -1
- package/src/components/CmdSidebar.vue +13 -2
- package/src/components/CmdSiteFooter.vue +14 -14
- package/src/components/CmdSiteHeader.vue +14 -29
- package/src/components/CmdSiteSearch.vue +12 -11
- package/src/components/CmdSlideButton.vue +9 -7
- package/src/components/CmdSlideshow.vue +14 -12
- package/src/components/CmdSocialNetworks.vue +11 -4
- package/src/components/CmdSocialNetworksItem.vue +2 -7
- package/src/components/CmdSwitchLanguage.vue +1 -1
- package/src/components/CmdSystemMessage.vue +11 -6
- package/src/components/CmdTable.vue +64 -16
- package/src/components/CmdTabs.vue +2 -2
- package/src/components/CmdTextImageBlock.vue +3 -1
- package/src/components/CmdThumbnailScroller.vue +180 -155
- package/src/components/CmdToggleDarkMode.vue +1 -1
- package/src/components/CmdTooltip.vue +6 -1
- package/src/components/CmdUploadForm.vue +69 -43
- package/src/components/CmdWidthLimitationWrapper.vue +7 -3
- package/src/components/ComponentSettings.vue +171 -0
- package/src/main.js +3 -3
- package/src/mixins/FieldValidation.js +0 -17
- 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
|
-
|
23
|
-
|
24
|
-
|
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
|
365
|
+
<style>
|
361
366
|
/* begin cmd-thumbnail-scroller ------------------------------------------------------------------------------------------ */
|
362
|
-
@import '../assets/styles/variables';
|
363
|
-
|
364
367
|
.cmd-thumbnail-scroller {
|
365
|
-
|
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
|
-
|
371
|
+
width: 100%;
|
369
372
|
|
370
373
|
&.full-width:not(.vertical) {
|
371
|
-
|
374
|
+
display: flex; /* allows flex-items to stretch equally over full space */
|
372
375
|
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
376
|
+
> div {
|
377
|
+
width: 100%;
|
378
|
+
}
|
379
|
+
}
|
377
380
|
|
378
|
-
|
379
|
-
|
381
|
+
> .inner-thumbnail-wrapper {
|
382
|
+
border-radius: var(--border-radius);
|
380
383
|
padding: calc(var(--default-padding) * 2);
|
381
384
|
padding-top: 0;
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
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
|
-
|
402
|
-
|
403
|
-
}
|
404
|
-
|
405
|
-
img {
|
406
|
-
border-radius: var(--border-radius);
|
405
|
+
img {
|
406
|
+
border-radius: var(--border-radius);
|
407
407
|
min-width: 15rem;
|
408
|
-
|
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
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
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;
|
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
|
-
|
447
|
+
&.vertical {
|
427
448
|
width: auto;
|
428
449
|
|
429
450
|
.inner-thumbnail-wrapper {
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
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
|
-
|
453
|
-
|
454
|
-
|
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
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
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
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
504
|
+
&:not(.active) {
|
505
|
+
img {
|
506
|
+
border: var(--default-border);
|
507
|
+
opacity: var(--reduced-opacity);
|
508
|
+
}
|
483
509
|
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
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
|
-
|
491
|
-
|
520
|
+
img {
|
521
|
+
border-color: var(--primary-color);
|
522
|
+
opacity: 1;
|
523
|
+
}
|
524
|
+
}
|
525
|
+
}
|
492
526
|
}
|
527
|
+
}
|
493
528
|
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
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
|
-
|
501
|
-
|
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
|
-
|
530
|
-
|
531
|
-
flex: none;
|
532
|
-
}
|
550
|
+
<style lang="scss">
|
551
|
+
@import '../assets/styles/variables';
|
533
552
|
|
534
|
-
|
535
|
-
|
536
|
-
|
553
|
+
@media only screen and (max-width: $medium-max-width) {
|
554
|
+
.cmd-thumbnail-scroller {
|
555
|
+
& > ul > li {
|
556
|
+
flex: none;
|
537
557
|
|
538
|
-
|
539
|
-
|
540
|
-
|
558
|
+
img {
|
559
|
+
max-height: 7rem;
|
560
|
+
}
|
561
|
+
}
|
541
562
|
|
542
|
-
|
543
|
-
|
544
|
-
|
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
|
-
|
551
|
-
|
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
|
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
|
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
|
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
|
-
{{
|
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
|
-
|
112
|
-
|
113
|
-
|
114
|
-
<span
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
</
|
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
|
-
|
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
|
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
|
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:
|
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:
|
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
|
-
&.
|
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
|
}
|