comand-component-library 3.1.65 → 3.1.68

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "comand-component-library",
3
- "version": "3.1.65",
3
+ "version": "3.1.68",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
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" :headline="{ headlineText: 'Headline level 1', headlineLevel: '1'}"/>
727
- <CmdCustomHeadline :headline="{ headlineText: 'Headline level 2', headlineLevel: '2'}"/>
728
- <CmdCustomHeadline :headline="{ headlineText: 'Headline level 3', headlineLevel: '3'}"/>
729
- <CmdCustomHeadline :headline="{ headlineText: 'Headline level 4', headlineLevel: '4'}"/>
730
- <CmdCustomHeadline :headline="{ headlineText: 'Headline level 5', headlineLevel: '5'}"/>
731
- <CmdCustomHeadline :headline="{ headlineText: 'Headline level 6', headlineLevel: '6'}"/>
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 from used component</h3>
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
- <h3>Tab 1</h3>
902
+ <h4>Tab 1 headline</h4>
870
903
  <p>Content</p>
871
904
  </template>
872
905
  <template v-slot:tab-content-1>
873
- <h3>Tab 2</h3>
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
- <h3>Tab 3</h3>
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 :cmdCustomHeadlineFieldset="{headlineText: 'Select files to upload', headlineLevel: 3}"
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 headline="Select files to upload"
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="footerNavigationData"
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 headline="Usage of cookies on this web site"
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 footerNavigationData from '@/assets/data/list-of-links.json'
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
- footerNavigationData,
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": "These cookies are required for functionality",
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 cookies prevents bots from sending forms",
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": "These cookies enables the Google Map",
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
- "headline": "Tab 1 Headline",
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
- "headline": "Tab 2 Headline",
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
- "headline": "Tab 3 Headline",
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
- <header v-if="useSlots?.includes('header')">
5
- <!-- begin slot 'header' -->
6
- <slot name="header"></slot>
7
- <!-- end slot 'header' -->
8
- </header>
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
- <a v-if="link.type === 'router'" href="./" :title="link.tooltip">
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
- v-if="cmdCustomHeadlineRequiredCookies?.show && cmdCustomHeadlineRequiredCookies?.headlineText && cmdCustomHeadlineRequiredCookies?.headlineLevel"
18
- v-bind="cmdCustomHeadlineRequiredCookies"
19
- :headlineText="cmdCustomHeadlineRequiredCookies.headlineText"
20
- :headlineLevel="cmdCustomHeadlineRequiredCookies.headlineLevel"
21
- />
22
- <!-- &lt;!&ndash; begin CmdAccordion &ndash;&gt;-->
23
- <!-- <CmdAccordion :accordion-data="cookieOptions.required.cookies.length" :accordionData="2">-->
24
- <!-- <template v-for="(cookie, index) in cookieOptions.required.cookies"-->
25
- <!-- v-slot:[`accordionHeadline${index}`]-->
26
- <!-- :key="index">-->
27
- <!-- &lt;!&ndash; begin CmdSwitchButton &ndash;&gt;-->
28
- <!-- <CmdSwitchButton-->
29
- <!-- type="checkbox"-->
30
- <!-- :id="cookie.id"-->
31
- <!-- :labelText="cookie.labelText"-->
32
- <!-- v-model="cookie.checked"-->
33
- <!-- :status="cookie.status"-->
34
- <!-- disabled="disabled"-->
35
- <!-- />-->
36
- <!-- &lt;!&ndash; end CmdSwitchButton &ndash;&gt;-->
37
- <!-- </template>-->
38
- <!-- <template v-for="(cookie, index) in cookieOptions.required.cookies"-->
39
- <!-- v-slot:[`accordionContent${index}`]-->
40
- <!-- :key="index">-->
41
- <!-- <p v-if="cookie.description">{{ cookie.description }}</p>-->
42
- <!-- <p v-if="cookie.linkDataPrivacy">-->
43
- <!-- {{ cookie.linkDataPrivacy.label }}-->
44
- <!-- <a @click="openDataPrivacy"-->
45
- <!-- :href="cookie.linkDataPrivacy.link"-->
46
- <!-- :target="cookie.linkDataPrivacy.target">-->
47
- <!-- {{ cookie.linkDataPrivacy.linkText }}-->
48
- <!-- </a>-->
49
- <!-- </p>-->
50
- <!-- <div v-if="dataPrivacyContent" v-html="dataPrivacyContent"></div>-->
51
- <!-- </template>-->
52
- <!-- </CmdAccordion>-->
53
- <!-- &lt;!&ndash; end CmdAccordion &ndash;&gt;-->
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
- v-if="cmdCustomHeadlineOptionalCookies?.show && cmdCustomHeadlineOptionalCookies?.headlineText && cmdCustomHeadlineOptionalCookies?.headlineLevel"
59
- v-bind="cmdCustomHeadlineOptionalCookies"
60
- :headlineText="cmdCustomHeadlineOptionalCookies.headlineText"
61
- :headlineLevel="cmdCustomHeadlineOptionalCookies.headlineLevel"
62
- />
63
- <!-- &lt;!&ndash; begin CmdAccordion &ndash;&gt;-->
64
- <!-- <CmdAccordion :accordion-data="cookieOptions.optional.cookies.length" :accordionData="2">-->
65
- <!-- <template v-for="(cookie, index) in cookieOptions.optional.cookies"-->
66
- <!-- v-slot:[`accordionHeadline${index}`]-->
67
- <!-- :key="index">-->
68
- <!-- &lt;!&ndash; begin CmdSwitchButton &ndash;&gt;-->
69
- <!-- <CmdSwitchButton-->
70
- <!-- type="checkbox"-->
71
- <!-- :id="cookie.id"-->
72
- <!-- :labelText="cookie.labelText"-->
73
- <!-- v-model="cookie.checked"-->
74
- <!-- :status="cookie.status"-->
75
- <!-- />-->
76
- <!-- &lt;!&ndash; end CmdSwitchButton &ndash;&gt;-->
77
- <!-- </template>-->
78
- <!-- <template v-for="(cookie, index) in cookieOptions.optional.cookies"-->
79
- <!-- v-slot:[`accordionContent${index}`]-->
80
- <!-- :key="index">-->
81
- <!-- <p>{{ cookie.description }}</p>-->
82
- <!-- <p v-if="cookie.linkDataPrivacy">-->
83
- <!-- {{ cookie.linkDataPrivacy.label }}-->
84
- <!-- <a @click="openDataPrivacy" :href="cookie.linkDataPrivacy.link"-->
85
- <!-- :target="cookie.linkDataPrivacy.target">{{ cookie.linkDataPrivacy.linkText }}</a>-->
86
- <!-- </p>-->
87
- <!-- <div v-if="dataPrivacyContent" v-html="dataPrivacyContent"></div>-->
88
- <!-- </template>-->
89
- <!-- </CmdAccordion>-->
90
- <!-- &lt;!&ndash; end CmdAccordion &ndash;&gt;-->
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 v-if="buttonLabelAcceptCurrentSettings" type="button" @click="acceptCookies('currentSettings')">
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
- // import CmdSwitchButton from "./CmdSwitchButton"
110
+ import CmdSwitchButton from "./CmdSwitchButton"
117
111
 
118
112
  export default {
119
113
  name: "CmdCookieDisclaimer",
120
114
  components: {
121
- CmdCustomHeadline
122
- // CmdSwitchButton
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
- * properties for CmdCustomHeadline-component above required cookies
140
+ * property for CmdBox-component surrounding the required cookies
146
141
  */
147
- cmdCustomHeadlineRequiredCookies: {
142
+ cmdBoxRequiredCookies: {
148
143
  type: Object,
149
144
  default() {
150
145
  return {
151
- show: true,
146
+ collapsible: true,
147
+ showHeadline: true,
152
148
  headlineText: "Required cookies",
153
149
  headlineLevel: 3
154
150
  }
155
151
  }
156
152
  },
157
153
  /**
158
- * properties for CmdCustomHeadline-component above optional cookies
154
+ * property for CmdBox-component surrounding the optional cookies
159
155
  */
160
- cmdCustomHeadlineOptionalCookies: {
156
+ cmdBoxOptionalCookies: {
161
157
  type: Object,
162
158
  default() {
163
159
  return {
164
- show: true,
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;