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/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;