comand-component-library 4.0.2 → 4.0.3
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +32 -32
- package/dist/comand-component-library.js +3264 -1450
- package/dist/comand-component-library.umd.cjs +3 -4
- package/dist/index.html +16 -16
- package/dist/style.css +1 -1
- package/dist/styles/demopage-only.css +4 -0
- package/dist/styles/templates/casual.css +3 -0
- package/package.json +4 -4
- package/src/App.vue +2117 -0
- package/src/ComponentLibrary.vue +150 -586
- package/src/assets/data/fake-select-options.json +3 -2
- package/src/assets/data/form-elements.json +1 -1
- package/src/assets/styles/global-styles.scss +17 -4
- package/src/componentSettingsDataAndControls.vue +705 -0
- package/src/components/CmdAddressData.vue +1 -2
- package/src/components/CmdBox.vue +60 -42
- package/src/components/CmdCopyrightInformation.vue +5 -3
- package/src/components/CmdFakeSelect.vue +138 -67
- package/src/components/CmdFancyBox.vue +2 -2
- package/src/components/CmdFormElement.vue +53 -27
- package/src/components/CmdGoogleMaps.vue +5 -0
- package/src/components/CmdHeadline.vue +13 -5
- package/src/components/CmdIcon.vue +6 -2
- package/src/components/CmdImage.vue +6 -1
- package/src/components/CmdImageGallery.vue +15 -4
- package/src/components/CmdInputGroup.vue +76 -24
- package/src/components/CmdListOfLinks.vue +20 -7
- package/src/components/CmdListOfRequirements.vue +10 -18
- package/src/components/CmdLoginForm.vue +14 -2
- package/src/components/CmdMainNavigation.vue +5 -1
- package/src/components/CmdMultistepFormProgressBar.vue +12 -7
- package/src/components/CmdOpeningHoursItem.vue +1 -3
- package/src/components/CmdPagination.vue +5 -1
- package/src/components/CmdSiteFooter.vue +11 -1
- package/src/components/CmdSiteHeader.vue +1 -0
- package/src/components/CmdSlideButton.vue +7 -1
- package/src/components/CmdSlideshow.vue +33 -5
- package/src/components/CmdSocialNetworks.vue +18 -13
- package/src/components/CmdSocialNetworksItem.vue +5 -1
- package/src/components/CmdSystemMessage.vue +7 -1
- package/src/components/CmdTabs.vue +5 -5
- package/src/components/CmdTextImageBlock.vue +11 -2
- package/src/components/CmdThumbnailScroller.vue +22 -4
- package/src/components/CmdTooltip.vue +49 -14
- package/src/components/CmdTooltipForFormElements.vue +96 -0
- package/src/components/CmdUploadForm.vue +25 -20
- package/src/components/CmdWidthLimitationWrapper.vue +1 -1
- package/src/components/ComponentSettings.vue +1 -1
- package/src/main.js +1 -1
- package/src/assets/data/accordion.json +0 -45
@@ -57,7 +57,11 @@
|
|
57
57
|
|
58
58
|
<!-- begin box-body -->
|
59
59
|
<div v-show="open" :class="['box-body', boxBodyClass]" aria-expanded="true" role="article">
|
60
|
-
<div v-if="useSlots?.includes('body')"
|
60
|
+
<div v-if="useSlots?.includes('body')"
|
61
|
+
:class="{'default-padding': useDefaultPadding, 'allow-scroll': allowContentToScroll}"
|
62
|
+
ref="boxBody"
|
63
|
+
:style="'max-height: ' + calculatedBodyHeight"
|
64
|
+
>
|
61
65
|
<!-- begin slot 'body' -->
|
62
66
|
<slot name="body">
|
63
67
|
<transition-group :name="toggleTransition">
|
@@ -69,7 +73,9 @@
|
|
69
73
|
{{ textBody }}
|
70
74
|
</p>
|
71
75
|
<a v-if="cutoffTextLines > 0" href="#" @click.prevent="toggleCutOffText">
|
72
|
-
{{
|
76
|
+
{{
|
77
|
+
showCutOffText ? getMessage("cmdbox.contentbox.collapse_text") : getMessage("cmdbox.contentbox.expand_text")
|
78
|
+
}}
|
73
79
|
</a>
|
74
80
|
</transition-group>
|
75
81
|
</slot>
|
@@ -123,7 +129,9 @@
|
|
123
129
|
<!-- end ribbons -->
|
124
130
|
</div>
|
125
131
|
<div class="box-body">
|
126
|
-
<p v-if="product.articleNumber">{{ getMessage("cmdbox.productbox.article_no") }} {{
|
132
|
+
<p v-if="product.articleNumber">{{ getMessage("cmdbox.productbox.article_no") }} {{
|
133
|
+
product.articleNumber
|
134
|
+
}}</p>
|
127
135
|
<p v-if="product.price" class="price">
|
128
136
|
<span>{{ product.price }}</span><span :title="globalCurrency.name">{{ globalCurrency.symbol }}</span>
|
129
137
|
</p>
|
@@ -146,7 +154,7 @@
|
|
146
154
|
<div class="box-header flex-container vertical">
|
147
155
|
<figure v-if="user.image">
|
148
156
|
<img :src="user.image.src" :alt="user.image.alt"/>
|
149
|
-
<figcaption>{{ user.name }} <span v-if="user.age">, {{user.age}}</span></figcaption>
|
157
|
+
<figcaption>{{ user.name }} <span v-if="user.age">, {{ user.age }}</span></figcaption>
|
150
158
|
</figure>
|
151
159
|
<div v-else>
|
152
160
|
<span :class="defaultProfileIconClass" :title="user.name"></span>
|
@@ -161,7 +169,7 @@
|
|
161
169
|
</div>
|
162
170
|
<ul class="tags">
|
163
171
|
<li v-for="(tag, index) in user.tags" :key="index">
|
164
|
-
{{tag}}
|
172
|
+
{{ tag }}
|
165
173
|
</li>
|
166
174
|
</ul>
|
167
175
|
<div v-if="user.links" class="box-footer">
|
@@ -189,7 +197,8 @@ export default {
|
|
189
197
|
return {
|
190
198
|
open: this.collapsible ? this.openCollapsedBox : true,
|
191
199
|
active: true,
|
192
|
-
showCutOffText: false
|
200
|
+
showCutOffText: false,
|
201
|
+
calculatedBodyHeight: this.maxBoxBodyHeight
|
193
202
|
}
|
194
203
|
},
|
195
204
|
props: {
|
@@ -217,7 +226,12 @@ export default {
|
|
217
226
|
*/
|
218
227
|
boxType: {
|
219
228
|
type: String,
|
220
|
-
default: "content"
|
229
|
+
default: "content",
|
230
|
+
validator(value) {
|
231
|
+
return value === "content" ||
|
232
|
+
value === "product" ||
|
233
|
+
value === "user"
|
234
|
+
}
|
221
235
|
},
|
222
236
|
/**
|
223
237
|
* set if content (in box-body) should scroll
|
@@ -232,8 +246,8 @@ export default {
|
|
232
246
|
* set max-height for body (should only be used it allowContentToScroll-property is active)
|
233
247
|
*/
|
234
248
|
maxBoxBodyHeight: {
|
235
|
-
|
236
|
-
|
249
|
+
type: String,
|
250
|
+
default: "100rem"
|
237
251
|
},
|
238
252
|
/**
|
239
253
|
* activate if box should be collapsible
|
@@ -324,7 +338,12 @@ export default {
|
|
324
338
|
*/
|
325
339
|
profileType: {
|
326
340
|
type: String,
|
327
|
-
default: "business"
|
341
|
+
default: "business",
|
342
|
+
validator(value) {
|
343
|
+
return value === "business" ||
|
344
|
+
value === "influencer" ||
|
345
|
+
value === "dating"
|
346
|
+
}
|
328
347
|
},
|
329
348
|
/**
|
330
349
|
* activated if all content (incl. headline) is given by slot
|
@@ -405,13 +424,13 @@ export default {
|
|
405
424
|
required: false
|
406
425
|
}
|
407
426
|
},
|
427
|
+
mounted() {
|
428
|
+
if (this.allowContentToScroll && this.$refs.boxBody) {
|
429
|
+
const topPosition = this.$refs.boxBody.getBoundingClientRect().top
|
430
|
+
this.calculatedBodyHeight = (document.documentElement.clientHeight - topPosition) + "px"
|
431
|
+
}
|
432
|
+
},
|
408
433
|
computed: {
|
409
|
-
setMaxBoxBodyHeight() {
|
410
|
-
if (this.allowContentToScroll && this.maxBoxBodyHeight) {
|
411
|
-
return this.maxBoxBodyHeight
|
412
|
-
}
|
413
|
-
return null
|
414
|
-
},
|
415
434
|
toggleTransition() {
|
416
435
|
if (this.useTransition) {
|
417
436
|
return "fade"
|
@@ -474,6 +493,7 @@ export default {
|
|
474
493
|
a.box-header {
|
475
494
|
justify-content: space-between;
|
476
495
|
background: var(--hyperlink-color);
|
496
|
+
border-radius: var(--default-border-radius);
|
477
497
|
|
478
498
|
&:hover, &:active, &:focus {
|
479
499
|
background: var(--pure-white);
|
@@ -488,7 +508,10 @@ export default {
|
|
488
508
|
.box-body {
|
489
509
|
.allow-scroll {
|
490
510
|
overflow-y: auto;
|
491
|
-
|
511
|
+
|
512
|
+
& * {
|
513
|
+
flex-shrink: 0;
|
514
|
+
}
|
492
515
|
}
|
493
516
|
}
|
494
517
|
|
@@ -508,12 +531,6 @@ export default {
|
|
508
531
|
}
|
509
532
|
|
510
533
|
> .box-header {
|
511
|
-
display: flex;
|
512
|
-
align-items: center;
|
513
|
-
border-radius: var(--border-radius);
|
514
|
-
padding: calc(var(--default-padding) / 2) var(--default-padding);
|
515
|
-
background: var(--secondary-color);
|
516
|
-
color: var(--pure-white);
|
517
534
|
text-decoration: none;
|
518
535
|
|
519
536
|
> .cmd-custom-headline {
|
@@ -599,13 +616,6 @@ export default {
|
|
599
616
|
}
|
600
617
|
}
|
601
618
|
}
|
602
|
-
|
603
|
-
.box-footer {
|
604
|
-
border-bottom-left-radius: var(--border-radius);
|
605
|
-
border-bottom-right-radius: var(--border-radius);
|
606
|
-
padding: var(--default-padding);
|
607
|
-
border-top: var(--default-border);
|
608
|
-
}
|
609
619
|
}
|
610
620
|
|
611
621
|
/* boyType === 'product' and boxType === 'user' */
|
@@ -660,6 +670,8 @@ export default {
|
|
660
670
|
}
|
661
671
|
|
662
672
|
> .box-header {
|
673
|
+
padding: 0;
|
674
|
+
|
663
675
|
> img, > div {
|
664
676
|
display: table;
|
665
677
|
margin: 0 auto;
|
@@ -674,12 +686,14 @@ export default {
|
|
674
686
|
figcaption {
|
675
687
|
font-size: 2rem;
|
676
688
|
font-weight: bold;
|
677
|
-
padding
|
689
|
+
padding: var(--default-padding);
|
678
690
|
}
|
679
691
|
}
|
680
692
|
|
681
693
|
.box-body {
|
682
694
|
flex-grow: 1;
|
695
|
+
padding: var(--default-padding);
|
696
|
+
padding-bottom: 0;
|
683
697
|
|
684
698
|
> * {
|
685
699
|
text-align: center;
|
@@ -703,15 +717,13 @@ export default {
|
|
703
717
|
/* boxType === 'user' */
|
704
718
|
&.user {
|
705
719
|
> .box-header {
|
706
|
-
--icon-size: 6rem;
|
720
|
+
--default-icon-size: 6rem;
|
721
|
+
--box-header-text-color: var(--primary-color);
|
707
722
|
|
708
|
-
|
723
|
+
background: none;
|
709
724
|
|
710
|
-
|
711
|
-
|
712
|
-
display: block;
|
713
|
-
text-align: center;
|
714
|
-
}
|
725
|
+
> div:first-child > [class*="icon-"] {
|
726
|
+
aspect-ratio: 1/1;
|
715
727
|
}
|
716
728
|
|
717
729
|
img, > div:first-child > [class*="icon-"] {
|
@@ -719,7 +731,7 @@ export default {
|
|
719
731
|
margin: 0 auto var(--default-margin) auto;
|
720
732
|
padding: calc(var(--default-padding) * 3);
|
721
733
|
border-radius: var(--full-circle);
|
722
|
-
background: var(--
|
734
|
+
background: var(--box-header-background-color);
|
723
735
|
color: var(--pure-white);
|
724
736
|
|
725
737
|
& + p, & + figcaption {
|
@@ -732,17 +744,20 @@ export default {
|
|
732
744
|
|
733
745
|
img {
|
734
746
|
padding: 0;
|
735
|
-
width: calc(var(--icon-size) * 2);
|
747
|
+
width: calc(var(--default-icon-size) * 2);
|
736
748
|
aspect-ratio: 1/1;
|
737
749
|
}
|
738
750
|
|
739
751
|
> div:first-child > [class*="icon-"] {
|
740
|
-
|
752
|
+
margin: 0;
|
753
|
+
font-size: var(--default-icon-size);
|
741
754
|
}
|
742
755
|
}
|
743
756
|
|
744
757
|
.box-body {
|
745
758
|
flex-grow: 1;
|
759
|
+
padding: var(--default-padding);
|
760
|
+
padding-top: 0;
|
746
761
|
|
747
762
|
p {
|
748
763
|
text-align: center;
|
@@ -760,6 +775,7 @@ export default {
|
|
760
775
|
|
761
776
|
.box-footer {
|
762
777
|
margin-top: auto;
|
778
|
+
padding: 0;
|
763
779
|
border-top: var(--default-border);
|
764
780
|
|
765
781
|
.cmd-list-of-links {
|
@@ -769,6 +785,7 @@ export default {
|
|
769
785
|
|
770
786
|
li {
|
771
787
|
flex: 1;
|
788
|
+
border-radius: var(--default-border-radius);
|
772
789
|
|
773
790
|
a {
|
774
791
|
flex: 1;
|
@@ -776,6 +793,7 @@ export default {
|
|
776
793
|
text-align: center;
|
777
794
|
background: var(--color-scheme-background-color);
|
778
795
|
border-left: var(--default-border);
|
796
|
+
border-radius: var(--default-border-radius);
|
779
797
|
}
|
780
798
|
|
781
799
|
&:hover, &:active, &:focus {
|
@@ -801,7 +819,7 @@ export default {
|
|
801
819
|
|
802
820
|
&.row-view {
|
803
821
|
[class*="icon"] {
|
804
|
-
--icon-size: 3rem;
|
822
|
+
--default-icon-size: 3rem;
|
805
823
|
}
|
806
824
|
|
807
825
|
.box-header > div:first-child > [class*="icon-"] {
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<template>
|
2
2
|
<div class="cmd-copyright-information" role="contentinfo">
|
3
|
-
<a href="http://www.comand-cms.com" target="
|
3
|
+
<a href="http://www.comand-cms.com" target="comand-website" lang="en" title="CoManD-Website">© CoManD</a>
|
4
4
|
</div>
|
5
5
|
</template>
|
6
6
|
|
@@ -13,10 +13,12 @@ export default {
|
|
13
13
|
<style>
|
14
14
|
/* begin cmd-copyright-information ---------------------------------------------------------------------------------------- */
|
15
15
|
.cmd-copyright-information {
|
16
|
-
background: var(--text-color);
|
17
|
-
border-top: var(--border-width) var(--border-style) var(--pure-white);
|
16
|
+
background: var(--default-text-color);
|
17
|
+
border-top: var(--default-border-width) var(--default-border-style) var(--pure-white);
|
18
18
|
text-align: center;
|
19
19
|
padding: var(--default-padding);
|
20
|
+
margin-top: auto;
|
21
|
+
flex: none;
|
20
22
|
|
21
23
|
a {
|
22
24
|
text-decoration: none;
|