comand-component-library 3.1.65 → 3.1.68
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.css +1 -1
- package/dist/comand-component-library.umd.min.js +1 -1
- package/package.json +1 -1
- package/src/App.vue +59 -24
- package/src/assets/data/box-user.json +0 -8
- package/src/assets/data/cookie-disclaimer.json +3 -3
- package/src/assets/data/tabs.json +6 -3
- package/src/components/CmdBox.vue +18 -5
- package/src/components/CmdCompanyLogo.vue +4 -4
- package/src/components/CmdCookieDisclaimer.vue +88 -101
- package/src/components/CmdCustomHeadline.vue +3 -3
- package/src/components/CmdFakeSelect.vue +12 -2
- package/src/components/CmdFormElement.vue +44 -20
- package/src/components/CmdFormFilters.vue +1 -1
- package/src/components/CmdInputGroup.vue +38 -0
- package/src/components/CmdListOfLinks.vue +6 -4
- package/src/components/CmdLoginForm.vue +3 -3
- package/src/components/CmdProgressBar.vue +1 -0
- package/src/components/CmdSiteHeader.vue +4 -2
- package/src/components/CmdTabs.vue +1 -1
- package/src/components/CmdUploadForm.vue +124 -98
- package/src/mixins/CmdUploadForm/DefaultMessageProperties.js +1 -1
- package/src/mixins/FieldValidation.js +1 -1
- package/src/utils/common.js +10 -1
package/package.json
CHANGED
package/src/App.vue
CHANGED
@@ -418,7 +418,7 @@
|
|
418
418
|
labelText="Label (inline) for inputfield (search) without search-button:"
|
419
419
|
:displayLabelInline="true"
|
420
420
|
type="search"
|
421
|
-
id="inputfield-search"
|
421
|
+
id="inputfield-search-without-searchbutton"
|
422
422
|
placeholder="Keyword(s)"
|
423
423
|
v-model="inputSearch"
|
424
424
|
:showSearchButton="false"
|
@@ -427,7 +427,7 @@
|
|
427
427
|
labelText="Label (inline) for inputfield (search):"
|
428
428
|
:displayLabelInline="true"
|
429
429
|
type="search"
|
430
|
-
id="inputfield-search"
|
430
|
+
id="inputfield-search-with-searchbutton"
|
431
431
|
placeholder="Keyword(s)"
|
432
432
|
v-model="inputSearch"
|
433
433
|
:status="formElementStatus"/>
|
@@ -544,6 +544,24 @@
|
|
544
544
|
:status="formElementStatus"/>
|
545
545
|
</div>
|
546
546
|
</div>
|
547
|
+
<CmdInputGroup labelText="Group label for radio group">
|
548
|
+
<CmdFormElement element="input"
|
549
|
+
labelText="Label for radiobutton"
|
550
|
+
type="radio"
|
551
|
+
id="input-group-radiobutton"
|
552
|
+
name="radiogroup2"
|
553
|
+
inputValue="radiobuttonValue1"
|
554
|
+
v-model="radiobuttonValue"
|
555
|
+
:status="formElementStatus"/>
|
556
|
+
<CmdFormElement element="input"
|
557
|
+
labelText="Label for radiobutton"
|
558
|
+
type="radio"
|
559
|
+
id="input-group-radiobutton"
|
560
|
+
name="radiogroup2"
|
561
|
+
inputValue="radiobuttonValue2"
|
562
|
+
v-model="radiobuttonValue"
|
563
|
+
:status="formElementStatus"/>
|
564
|
+
</CmdInputGroup>
|
547
565
|
<CmdMultipleSwitch labelText="Label for multiple-switch with checkboxes:"
|
548
566
|
:multipleSwitches="multipleSwitchCheckboxData"
|
549
567
|
switchTypes="checkbox"
|
@@ -687,13 +705,13 @@
|
|
687
705
|
<h3>Product boxes</h3>
|
688
706
|
<div class="grid-container-create-columns">
|
689
707
|
<div class="grid-small-item" v-for="(product, index) in boxProductData" :key="index">
|
690
|
-
<CmdBox boxType="product" :product="product"/>
|
708
|
+
<CmdBox boxType="product" :product="product" :cmdCustomHeadline="{headlineLevel: 4}" />
|
691
709
|
</div>
|
692
710
|
</div>
|
693
711
|
<h3>User boxes</h3>
|
694
712
|
<div class="grid-container-create-columns">
|
695
713
|
<div class="grid-small-item" v-for="(user, index) in boxUserData" :key="index">
|
696
|
-
<CmdBox boxType="user" :user="user"/>
|
714
|
+
<CmdBox boxType="user" :user="user" :cmdCustomHeadline="{headlineLevel: 4}" />
|
697
715
|
</div>
|
698
716
|
</div>
|
699
717
|
<h3>Box Site Search</h3>
|
@@ -723,12 +741,12 @@
|
|
723
741
|
<a id="section-custom-headline"></a>
|
724
742
|
<CmdWidthLimitationWrapper>
|
725
743
|
<h2 class="headline-demopage">Custom Headline</h2>
|
726
|
-
<CmdCustomHeadline icon-class="icon-home" pre-headline-text="Pre-headline"
|
727
|
-
<CmdCustomHeadline
|
728
|
-
<CmdCustomHeadline
|
729
|
-
<CmdCustomHeadline
|
730
|
-
<CmdCustomHeadline
|
731
|
-
<CmdCustomHeadline
|
744
|
+
<CmdCustomHeadline icon-class="icon-home" pre-headline-text="Pre-headline" headlineText="Headline level 1" :headlineLevel="1"/>
|
745
|
+
<CmdCustomHeadline headlineText="Headline level 2" :headlineLevel="2"/>
|
746
|
+
<CmdCustomHeadline headlineText="Headline level 3" :headlineLevel="3"/>
|
747
|
+
<CmdCustomHeadline headlineText="Headline level 4" :headlineLevel="4"/>
|
748
|
+
<CmdCustomHeadline headlineText="Headline level 5" :headlineLevel="5"/>
|
749
|
+
<CmdCustomHeadline headlineText="Headline level 6" :headlineLevel="6"/>
|
732
750
|
</CmdWidthLimitationWrapper>
|
733
751
|
<!-- end custom-headline ------------------------------------------------------------------------------------------------------------------------------------------------------->
|
734
752
|
|
@@ -771,6 +789,21 @@
|
|
771
789
|
<p>LoginData: {{loginData}}</p>
|
772
790
|
</CmdWidthLimitationWrapper>
|
773
791
|
|
792
|
+
<!-- begin list-of-links ------------------------------------------------------------------------------------------------------------------------------------------------------->
|
793
|
+
<a id="section-list-of-links"></a>
|
794
|
+
<CmdWidthLimitationWrapper>
|
795
|
+
<h2 class="headline-demopage">List Of Links</h2>
|
796
|
+
<h3>Vertical</h3>
|
797
|
+
<CmdListOfLinks :links="listOfLinksData" />
|
798
|
+
<h3>Horizontal (aligned left)</h3>
|
799
|
+
<CmdListOfLinks orientation="horizontal" align="left" :links="listOfLinksData" />
|
800
|
+
<h3>Horizontal (aligned center)</h3>
|
801
|
+
<CmdListOfLinks orientation="horizontal" align="center" :links="listOfLinksData" />
|
802
|
+
<h3>Horizontal (aligned right)</h3>
|
803
|
+
<CmdListOfLinks orientation="horizontal" align="right" :links="listOfLinksData" />
|
804
|
+
</CmdWidthLimitationWrapper>
|
805
|
+
<!-- end list-of-links ------------------------------------------------------------------------------------------------------------------------------------------------------->
|
806
|
+
|
774
807
|
<a id="section-main-navigation"></a>
|
775
808
|
<CmdWidthLimitationWrapper>
|
776
809
|
<h2 class="headline-demopage">Main Navigation</h2>
|
@@ -863,19 +896,19 @@
|
|
863
896
|
<h2 class="headline-demopage">Tabs</h2>
|
864
897
|
<h3>Tabs with content from json-file</h3>
|
865
898
|
<CmdTabs :stretchTabs="false" :tabs="tabsData"/>
|
866
|
-
<h3>Tabs with HTML-content
|
899
|
+
<h3>Tabs with HTML-content (given by slot))</h3>
|
867
900
|
<CmdTabs :stretchTabs="true" :tabs="[{name: 'Tab 1'}, {name: 'Tab 2'}, {name: 'Tab 3'}]" :useSlot="true">
|
868
901
|
<template v-slot:tab-content-0>
|
869
|
-
<
|
902
|
+
<h4>Tab 1 headline</h4>
|
870
903
|
<p>Content</p>
|
871
904
|
</template>
|
872
905
|
<template v-slot:tab-content-1>
|
873
|
-
<
|
906
|
+
<h4>Tab 2</h4>
|
874
907
|
<p>Content</p>
|
875
908
|
<p>Content</p>
|
876
909
|
</template>
|
877
910
|
<template v-slot:tab-content-2>
|
878
|
-
<
|
911
|
+
<h4>Tab 3</h4>
|
879
912
|
<p>Content</p>
|
880
913
|
<p>Content</p>
|
881
914
|
<p>Content</p>
|
@@ -908,19 +941,20 @@
|
|
908
941
|
<CmdWidthLimitationWrapper>
|
909
942
|
<h2 class="headline-demopage">Upload-Form</h2>
|
910
943
|
<h3>Simple mode</h3>
|
911
|
-
<CmdUploadForm :
|
912
|
-
:enableDragAndDrop="true"
|
944
|
+
<CmdUploadForm :enableDragAndDrop="true"
|
913
945
|
:allowedFileExtensions="['jpg', 'png']"
|
914
946
|
:allowMultipleFileUploads="true"
|
915
947
|
:advancedMode="false"
|
948
|
+
textLegend="Simple upload form"
|
916
949
|
@error="showError"
|
917
950
|
:uploadOptions="{url: 'http://localhost:8888'}"
|
918
951
|
/>
|
919
952
|
<h3>Advanced mode</h3>
|
920
|
-
<CmdUploadForm
|
953
|
+
<CmdUploadForm :cmdCustomHeadlineFieldset="{headlineText: 'Select files to upload', headlineLevel: 3}"
|
921
954
|
:enableDragAndDrop="true"
|
922
|
-
:allowedFileExtensions="['jpg']"
|
955
|
+
:allowedFileExtensions="['jpg', 'png']"
|
923
956
|
:allowMultipleFileUploads="true"
|
957
|
+
textLegend="Advanced upload form"
|
924
958
|
:uploadOptions="{url: 'http://localhost:8888'}"
|
925
959
|
/>
|
926
960
|
</CmdWidthLimitationWrapper>
|
@@ -928,7 +962,7 @@
|
|
928
962
|
|
929
963
|
<CmdWidthLimitationWrapper id="site-footer" inner-component="footer">
|
930
964
|
<CmdSwitchLanguage :languages="languagesData" @click="doSomething"/>
|
931
|
-
<CmdListOfLinks :links="
|
965
|
+
<CmdListOfLinks :links="listOfLinksData"
|
932
966
|
:cmdCustomHeadline="{headlineText: 'List of links', headlineLevel: 6}"
|
933
967
|
/>
|
934
968
|
<CmdOpeningHours :openingHours="openingHoursData"
|
@@ -947,8 +981,7 @@
|
|
947
981
|
<CmdCopyrightInformation/>
|
948
982
|
|
949
983
|
<CmdFancyBox :show="fancyBoxCookieDisclaimer" :fancyboxOptions="{}" :allowEscapeKey="false">
|
950
|
-
<CmdCookieDisclaimer
|
951
|
-
:cookieOptions="cookieDisclaimerData"
|
984
|
+
<CmdCookieDisclaimer :cookieOptions="cookieDisclaimerData"
|
952
985
|
buttonLabelAcceptAllCookies="Accept all cookies"
|
953
986
|
buttonLabelAcceptCurrentSettings="Accept current settings"
|
954
987
|
@closeCookieDisclaimer="fancyBoxCookieDisclaimer = false"
|
@@ -979,7 +1012,7 @@ import fakeSelectCountriesData from '@/assets/data/fake-select-countries.json'
|
|
979
1012
|
import fakeSelectFilterOptionsData from '@/assets/data/fake-select-filter-options.json'
|
980
1013
|
import fakeSelectOptionsData from '@/assets/data/fake-select-options.json'
|
981
1014
|
import fakeSelectOptionsWithIconsData from '@/assets/data/fake-select-options-with-icons.json'
|
982
|
-
import
|
1015
|
+
import listOfLinksData from '@/assets/data/list-of-links.json'
|
983
1016
|
import imageGalleryData from '@/assets/data/image-gallery.json'
|
984
1017
|
import languagesData from '@/assets/data/switch-language.json'
|
985
1018
|
import multistepsData from '@/assets/data/multistep-form-progress-bar.json'
|
@@ -1014,7 +1047,9 @@ import CmdFormFilters from "@/components/CmdFormFilters.vue"
|
|
1014
1047
|
import CmdGoogleMaps from "./components/CmdGoogleMaps"
|
1015
1048
|
import CmdImageGallery from "@/components/CmdImageGallery.vue"
|
1016
1049
|
import CmdImageZoom from "@/components/CmdImageZoom.vue"
|
1050
|
+
import CmdInputGroup from "./components/CmdInputGroup"
|
1017
1051
|
import CmdLoginForm from "@/components/CmdLoginForm.vue"
|
1052
|
+
import CmdListOfLinks from "./components/CmdListOfLinks"
|
1018
1053
|
import CmdMainNavigation from "@/components/CmdMainNavigation.vue"
|
1019
1054
|
import CmdMultipleSwitch from "@/components/CmdMultipleSwitch.vue"
|
1020
1055
|
import CmdMultistepFormProgressBar from "@/components/CmdMultistepFormProgressBar.vue"
|
@@ -1037,7 +1072,6 @@ import {openFancyBox} from "@/components/CmdFancyBox"
|
|
1037
1072
|
|
1038
1073
|
// import external functions
|
1039
1074
|
import * as functions from "@/mixins/FieldValidation.js"
|
1040
|
-
import CmdListOfLinks from "./components/CmdListOfLinks";
|
1041
1075
|
|
1042
1076
|
export default {
|
1043
1077
|
name: "App",
|
@@ -1061,6 +1095,7 @@ export default {
|
|
1061
1095
|
CmdGoogleMaps,
|
1062
1096
|
CmdImageGallery,
|
1063
1097
|
CmdImageZoom,
|
1098
|
+
CmdInputGroup,
|
1064
1099
|
CmdLoginForm,
|
1065
1100
|
CmdMainNavigation,
|
1066
1101
|
CmdMultistepFormProgressBar,
|
@@ -1150,7 +1185,7 @@ export default {
|
|
1150
1185
|
fakeSelectFilterOptionsData,
|
1151
1186
|
fakeSelectOptionsData,
|
1152
1187
|
fakeSelectOptionsWithIconsData,
|
1153
|
-
|
1188
|
+
listOfLinksData,
|
1154
1189
|
imageGalleryData,
|
1155
1190
|
languagesData,
|
1156
1191
|
multistepsData,
|
@@ -8,7 +8,6 @@
|
|
8
8
|
"links": [
|
9
9
|
{
|
10
10
|
"path": "mailto:",
|
11
|
-
"target": "",
|
12
11
|
"iconClass": "icon-mail",
|
13
12
|
"tooltip": "Send mail"
|
14
13
|
}
|
@@ -22,7 +21,6 @@
|
|
22
21
|
"links": [
|
23
22
|
{
|
24
23
|
"path": "mailto:",
|
25
|
-
"target": "",
|
26
24
|
"iconClass": "icon-mail",
|
27
25
|
"tooltip": "Send mail"
|
28
26
|
},
|
@@ -42,7 +40,6 @@
|
|
42
40
|
"links": [
|
43
41
|
{
|
44
42
|
"path": "mailto:",
|
45
|
-
"target": "",
|
46
43
|
"iconClass": "icon-mail",
|
47
44
|
"tooltip": "Send mail"
|
48
45
|
},
|
@@ -54,7 +51,6 @@
|
|
54
51
|
},
|
55
52
|
{
|
56
53
|
"path": "tel:",
|
57
|
-
"target": "",
|
58
54
|
"iconClass": "icon-phone",
|
59
55
|
"tooltip": "Make call"
|
60
56
|
}
|
@@ -68,7 +64,6 @@
|
|
68
64
|
"links": [
|
69
65
|
{
|
70
66
|
"path": "mailto:",
|
71
|
-
"target": "",
|
72
67
|
"iconClass": "icon-mail",
|
73
68
|
"tooltip": "Send mail"
|
74
69
|
},
|
@@ -80,7 +75,6 @@
|
|
80
75
|
},
|
81
76
|
{
|
82
77
|
"path": "tel:",
|
83
|
-
"target": "",
|
84
78
|
"iconClass": "icon-phone",
|
85
79
|
"tooltip": "Make call"
|
86
80
|
}
|
@@ -94,7 +88,6 @@
|
|
94
88
|
"links": [
|
95
89
|
{
|
96
90
|
"path": "mailto:",
|
97
|
-
"target": "",
|
98
91
|
"iconClass": "icon-mail",
|
99
92
|
"tooltip": "Send mail"
|
100
93
|
},
|
@@ -106,7 +99,6 @@
|
|
106
99
|
},
|
107
100
|
{
|
108
101
|
"path": "tel:",
|
109
|
-
"target": "",
|
110
102
|
"iconClass": "icon-phone",
|
111
103
|
"tooltip": "Make call"
|
112
104
|
}
|
@@ -4,7 +4,7 @@
|
|
4
4
|
"cookies": [
|
5
5
|
{
|
6
6
|
"id": "cookie-sessionid",
|
7
|
-
"description": "
|
7
|
+
"description": "This cookie is required for functionality",
|
8
8
|
"labelText": "SessionID",
|
9
9
|
"checked": true,
|
10
10
|
"status": "disabled",
|
@@ -16,7 +16,7 @@
|
|
16
16
|
},
|
17
17
|
{
|
18
18
|
"id": "cookie-google-recaptcha",
|
19
|
-
"description": "This
|
19
|
+
"description": "This cookie prevents bots from sending forms",
|
20
20
|
"labelText": "Google reCaptcha™",
|
21
21
|
"checked": true,
|
22
22
|
"status": "disabled",
|
@@ -34,7 +34,7 @@
|
|
34
34
|
"cookies": [
|
35
35
|
{
|
36
36
|
"id": "cookie-google-maps",
|
37
|
-
"description": "
|
37
|
+
"description": "This cookie enables the Google Map™",
|
38
38
|
"labelText": "Google Maps™",
|
39
39
|
"checked": false,
|
40
40
|
"linkDataPrivacy": {
|
@@ -1,17 +1,20 @@
|
|
1
1
|
[
|
2
2
|
{
|
3
3
|
"name": "Tab 1",
|
4
|
-
"
|
4
|
+
"headlineText": "Tab 1 Headline",
|
5
|
+
"headlineLevel": 4,
|
5
6
|
"htmlContent": "<p>Inhalt 1</p>"
|
6
7
|
},
|
7
8
|
{
|
8
9
|
"name": "Tab 2",
|
9
|
-
"
|
10
|
+
"headlineText": "Tab 2 Headline",
|
11
|
+
"headlineLevel": 4,
|
10
12
|
"htmlContent": "<p>Inhalt 2</p>"
|
11
13
|
},
|
12
14
|
{
|
13
15
|
"name": "Tab 3",
|
14
|
-
"
|
16
|
+
"headlineText": "Tab 3 Headline",
|
17
|
+
"headlineLevel": 4,
|
15
18
|
"htmlContent": "<p>Inhalt 3</p>"
|
16
19
|
}
|
17
20
|
]
|
@@ -1,11 +1,24 @@
|
|
1
1
|
<template>
|
2
2
|
<!-- begin boxType 'content' -->
|
3
3
|
<div v-if="boxType === 'content'" :class="['cmd-box box content', {open : open, collapsible: collapsible}]">
|
4
|
-
<
|
5
|
-
<!-- begin
|
6
|
-
<
|
7
|
-
|
8
|
-
|
4
|
+
<template v-if="useSlots?.includes('header')">
|
5
|
+
<!-- begin collapsible header with slot -->
|
6
|
+
<a v-if="collapsible" href="#" :title="open ? iconOpen.tooltip : iconClosed.tooltip" @click.prevent="toggleContentVisibility">
|
7
|
+
<!-- begin slot 'header' -->
|
8
|
+
<slot name="header"></slot>
|
9
|
+
<!-- end slot 'header' -->
|
10
|
+
<span class="toggle-icon" :class="[open ? iconOpen.iconClass : iconClosed.iconClass]"></span>
|
11
|
+
</a>
|
12
|
+
<!-- end collapsible header with slot -->
|
13
|
+
|
14
|
+
<!-- begin default header with slot -->
|
15
|
+
<header v-else>
|
16
|
+
<!-- begin slot 'header' -->
|
17
|
+
<slot name="header"></slot>
|
18
|
+
<!-- end slot 'header' -->
|
19
|
+
</header>
|
20
|
+
<!-- end default header with slot -->
|
21
|
+
</template>
|
9
22
|
<template v-else>
|
10
23
|
<!-- begin header for collapsible -->
|
11
24
|
<a v-if="collapsible" href="#" :title="open ? iconOpen.tooltip : iconClosed.tooltip" @click.prevent="toggleContentVisibility">
|
@@ -1,11 +1,11 @@
|
|
1
1
|
<template>
|
2
2
|
<div class="cmd-company-logo">
|
3
|
-
<
|
4
|
-
<img :src="pathCurrentLogo" :alt="altText"/>
|
5
|
-
</a>
|
6
|
-
<router-link v-else to="./" :title="link.tooltip">
|
3
|
+
<router-link v-if="link.type === 'router'" :href="link.path" :title="link.tooltip">
|
7
4
|
<img :src="pathCurrentLogo" :alt="altText"/>
|
8
5
|
</router-link>
|
6
|
+
<a v-else :to="link.path" :title="link.tooltip">
|
7
|
+
<img :src="pathCurrentLogo" :alt="altText"/>
|
8
|
+
</a>
|
9
9
|
</div>
|
10
10
|
</template>
|
11
11
|
|
@@ -12,82 +12,75 @@
|
|
12
12
|
|
13
13
|
<!-- begin slot for cookie-options -->
|
14
14
|
<slot name="cookie-options">
|
15
|
-
<div v-if="cookieOptions.required">
|
16
|
-
<CmdCustomHeadline
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
<!--
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
<!--
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
<!--
|
49
|
-
<!-- </p>-->
|
50
|
-
<!-- <div v-if="dataPrivacyContent" v-html="dataPrivacyContent"></div>-->
|
51
|
-
<!-- </template>-->
|
52
|
-
<!-- </CmdAccordion>-->
|
53
|
-
<!-- <!– end CmdAccordion –>-->
|
15
|
+
<div v-if="cookieOptions.required" class="flex-container vertical">
|
16
|
+
<CmdCustomHeadline v-if="cmdBoxRequiredCookies?.showHeadline" :headline-text="cmdBoxRequiredCookies?.headlineText" :headline-level="cmdBoxRequiredCookies?.headlineLevel "/>
|
17
|
+
<!-- begin CmdBox -->
|
18
|
+
<CmdBox v-for="(cookie, index) in cookieOptions.required.cookies"
|
19
|
+
:useSlots="['header', 'body']"
|
20
|
+
v-bind="cmdBoxRequiredCookies"
|
21
|
+
:key="index"
|
22
|
+
>
|
23
|
+
<template v-slot:header>
|
24
|
+
<!-- begin CmdSwitchButton -->
|
25
|
+
<CmdSwitchButton
|
26
|
+
type="checkbox"
|
27
|
+
:id="cookie.id"
|
28
|
+
:labelText="cookie.labelText"
|
29
|
+
v-model="cookie.checked"
|
30
|
+
:status="cookie.status"
|
31
|
+
disabled="disabled"
|
32
|
+
/>
|
33
|
+
<!-- end CmdSwitchButton -->
|
34
|
+
</template>
|
35
|
+
<template v-slot:body>
|
36
|
+
<p v-if="cookie.description">{{ cookie.description }}</p>
|
37
|
+
<p v-if="cookie.linkDataPrivacy">
|
38
|
+
{{ cookie.linkDataPrivacy.label }}
|
39
|
+
<a @click="openDataPrivacy"
|
40
|
+
:href="cookie.linkDataPrivacy.link"
|
41
|
+
:target="cookie.linkDataPrivacy.target">
|
42
|
+
{{ cookie.linkDataPrivacy.linkText }}
|
43
|
+
</a>
|
44
|
+
</p>
|
45
|
+
<div v-if="dataPrivacyContent" v-html="dataPrivacyContent"></div>
|
46
|
+
</template>
|
47
|
+
</CmdBox>
|
48
|
+
<!-- end CmdBox -->
|
54
49
|
</div>
|
55
|
-
<hr
|
56
|
-
<div v-if="cookieOptions.optional">
|
57
|
-
<CmdCustomHeadline
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
<!--
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
<!--
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
<!--
|
89
|
-
<!-- </CmdAccordion>-->
|
90
|
-
<!-- <!– end CmdAccordion –>-->
|
50
|
+
<hr/>
|
51
|
+
<div v-if="cookieOptions.optional" class="flex-container vertical">
|
52
|
+
<CmdCustomHeadline v-if="cmdBoxOptionalCookies?.showHeadline" :headline-text="cmdBoxOptionalCookies?.headlineText" :headline-level="cmdBoxOptionalCookies?.headlineLevel "/>
|
53
|
+
<!-- begin CmdBox -->
|
54
|
+
<CmdBox v-for="(cookie, index) in cookieOptions.optional.cookies"
|
55
|
+
:useSlots="['header', 'body']"
|
56
|
+
v-bind="cmdBoxOptionalCookies"
|
57
|
+
:key="index"
|
58
|
+
>
|
59
|
+
<template v-slot:header>
|
60
|
+
<!-- begin CmdSwitchButton -->
|
61
|
+
<CmdSwitchButton
|
62
|
+
type="checkbox"
|
63
|
+
:id="cookie.id"
|
64
|
+
:labelText="cookie.labelText"
|
65
|
+
v-model="cookie.checked"
|
66
|
+
:status="cookie.status"
|
67
|
+
/>
|
68
|
+
<!-- end CmdSwitchButton -->
|
69
|
+
</template>
|
70
|
+
<template v-slot:body>
|
71
|
+
<p v-if="cookie.description">{{ cookie.description }}</p>
|
72
|
+
<p v-if="cookie.linkDataPrivacy">
|
73
|
+
{{ cookie.linkDataPrivacy.label }}
|
74
|
+
<a @click="openDataPrivacy"
|
75
|
+
:href="cookie.linkDataPrivacy.link"
|
76
|
+
:target="cookie.linkDataPrivacy.target">
|
77
|
+
{{ cookie.linkDataPrivacy.linkText }}
|
78
|
+
</a>
|
79
|
+
</p>
|
80
|
+
<div v-if="dataPrivacyContent" v-html="dataPrivacyContent"></div>
|
81
|
+
</template>
|
82
|
+
</CmdBox>
|
83
|
+
<!-- end CmdBox -->
|
91
84
|
</div>
|
92
85
|
</slot>
|
93
86
|
<!-- end slot for cookie-options -->
|
@@ -98,7 +91,7 @@
|
|
98
91
|
|
99
92
|
<!-- begin button-wrapper for 'accept'-buttons -->
|
100
93
|
<div class="button-wrapper align-center">
|
101
|
-
<button
|
94
|
+
<button v-if="buttonLabelAcceptCurrentSettings" type="button" @click="acceptCookies('currentSettings')">
|
102
95
|
<span>{{ buttonLabelAcceptCurrentSettings }}</span>
|
103
96
|
</button>
|
104
97
|
<button v-if="buttonLabelAcceptAllCookies" type="button" class="primary" @click="acceptCookies('allCookies')">
|
@@ -112,14 +105,16 @@
|
|
112
105
|
|
113
106
|
<script>
|
114
107
|
// import components
|
108
|
+
import CmdBox from "./CmdBox"
|
115
109
|
import CmdCustomHeadline from "./CmdCustomHeadline"
|
116
|
-
|
110
|
+
import CmdSwitchButton from "./CmdSwitchButton"
|
117
111
|
|
118
112
|
export default {
|
119
113
|
name: "CmdCookieDisclaimer",
|
120
114
|
components: {
|
121
|
-
|
122
|
-
|
115
|
+
CmdBox,
|
116
|
+
CmdCustomHeadline,
|
117
|
+
CmdSwitchButton
|
123
118
|
},
|
124
119
|
data() {
|
125
120
|
return {
|
@@ -142,26 +137,28 @@ export default {
|
|
142
137
|
}
|
143
138
|
},
|
144
139
|
/**
|
145
|
-
*
|
140
|
+
* property for CmdBox-component surrounding the required cookies
|
146
141
|
*/
|
147
|
-
|
142
|
+
cmdBoxRequiredCookies: {
|
148
143
|
type: Object,
|
149
144
|
default() {
|
150
145
|
return {
|
151
|
-
|
146
|
+
collapsible: true,
|
147
|
+
showHeadline: true,
|
152
148
|
headlineText: "Required cookies",
|
153
149
|
headlineLevel: 3
|
154
150
|
}
|
155
151
|
}
|
156
152
|
},
|
157
153
|
/**
|
158
|
-
*
|
154
|
+
* property for CmdBox-component surrounding the optional cookies
|
159
155
|
*/
|
160
|
-
|
156
|
+
cmdBoxOptionalCookies: {
|
161
157
|
type: Object,
|
162
158
|
default() {
|
163
159
|
return {
|
164
|
-
|
160
|
+
collapsible: true,
|
161
|
+
showHeadline: true,
|
165
162
|
headlineText: "Optional cookies",
|
166
163
|
headlineLevel: 3
|
167
164
|
}
|
@@ -218,6 +215,12 @@ export default {
|
|
218
215
|
bottom: 0;
|
219
216
|
top: auto;
|
220
217
|
|
218
|
+
.cmd-box {
|
219
|
+
.box-body {
|
220
|
+
padding: var(--default-padding);
|
221
|
+
}
|
222
|
+
}
|
223
|
+
|
221
224
|
h1 {
|
222
225
|
text-align: center;
|
223
226
|
}
|
@@ -234,22 +237,6 @@ export default {
|
|
234
237
|
margin-bottom: var(--default-margin);
|
235
238
|
}
|
236
239
|
|
237
|
-
.cmd-accordion {
|
238
|
-
.accordion-headline {
|
239
|
-
&:hover, &:active, &:focus {
|
240
|
-
label, .label {
|
241
|
-
span {
|
242
|
-
color: var(--pure-white) !important;
|
243
|
-
}
|
244
|
-
}
|
245
|
-
}
|
246
|
-
}
|
247
|
-
|
248
|
-
.toggle-switch {
|
249
|
-
display: flex;
|
250
|
-
}
|
251
|
-
}
|
252
|
-
|
253
240
|
p {
|
254
241
|
a {
|
255
242
|
text-decoration: underline;
|