comand-component-library 4.0.2 → 4.0.3
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/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;
|