comand-component-library 3.1.90 → 3.1.91

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. package/dist/comand-component-library.css +1 -1
  2. package/dist/comand-component-library.umd.min.js +1 -1
  3. package/package.json +2 -2
  4. package/src/App.vue +85 -13
  5. package/src/assets/data/main-navigation.json +1 -0
  6. package/src/assets/data/tabs.json +1 -0
  7. package/src/components/CmdBox.vue +12 -7
  8. package/src/components/CmdBoxSiteSearch.vue +2 -1
  9. package/src/components/CmdCookieDisclaimer.vue +19 -6
  10. package/src/components/CmdFakeSelect.vue +11 -19
  11. package/src/components/CmdFancyBox.vue +46 -13
  12. package/src/components/CmdFormElement.vue +17 -29
  13. package/src/components/CmdImageGallery.vue +2 -2
  14. package/src/components/CmdInputGroup.vue +9 -16
  15. package/src/components/CmdLoginForm.vue +1 -1
  16. package/src/components/CmdMainNavigation.vue +6 -6
  17. package/src/components/CmdMultipleSwitch.vue +4 -12
  18. package/src/components/CmdNewsletterSubscription.vue +199 -0
  19. package/src/components/CmdShareButtons.vue +100 -27
  20. package/src/components/CmdSystemMessage.vue +6 -0
  21. package/src/components/CmdTabs.vue +5 -5
  22. package/src/components/CmdThumbnailScroller.vue +9 -1
  23. package/src/components/CmdTooltip.vue +1 -1
  24. package/src/documentation/generated/CmdFancyBoxPropertyDescriptions.json +10 -0
  25. package/src/documentation/generated/CmdFormElementPropertyDescriptions.json +0 -5
  26. package/src/documentation/generated/CmdNewsletterSubscriptionPropertyDescriptions.json +42 -0
  27. package/src/documentation/generated/CmdShareButtonsPropertyDescriptions.json +24 -0
  28. package/src/mixins/CmdThumbnailScroller/DefaultMessageProperties.js +9 -0
  29. package/src/mixins/FieldValidation.js +8 -1
  30. package/src/mixins/Identifier.js +28 -0
  31. package/src/utils/common.js +5 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "comand-component-library",
3
- "version": "3.1.90",
3
+ "version": "3.1.91",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
@@ -21,6 +21,7 @@
21
21
  "comand-frontend-framework": "^3.2.65",
22
22
  "core-js": "^3.20.1",
23
23
  "prismjs": "^1.27.0",
24
+ "sass": "^1.54.9",
24
25
  "vue": "^3.2.31",
25
26
  "vue-router": "^4.0.12",
26
27
  "vuex": "^4.0.2"
@@ -39,7 +40,6 @@
39
40
  "eslint": "^6.7.2",
40
41
  "eslint-plugin-vue": "^7.20.0",
41
42
  "gulp": "^4.0.2",
42
- "node-sass": "^4.14.1",
43
43
  "sass-loader": "^8.0.2",
44
44
  "typescript": "~3.9.3",
45
45
  "vue-jest": "^5.0.0-0"
package/src/App.vue CHANGED
@@ -2,24 +2,31 @@
2
2
  <template>
3
3
  <div id="page-wrapper">
4
4
  <a id="anchor-back-to-top"></a>
5
+ <!-- begin site-header --------------------------------------------------------------------------------------------------------------------------------------------------->
5
6
  <CmdSiteHeader :cmdMainNavigation="navigationData" :sticky="true">
6
7
  <template v-slot:top-header>
8
+ <!-- begin list-of-links --------------------------------------------------------------------------------------------------------------------------------------------------->
7
9
  <CmdListOfLinks
8
10
  :links="listOfLinksData"
9
11
  orientation="horizontal"
10
12
  align="right"
11
13
  />
14
+ <!-- end list-of-links --------------------------------------------------------------------------------------------------------------------------------------------------->
12
15
  </template>
13
16
  <template v-slot:logo>
17
+ <!-- begin company-logo --------------------------------------------------------------------------------------------------------------------------------------------------->
14
18
  <CmdCompanyLogo
15
19
  :link="companyLogoData.link"
16
20
  altText="CoManD Logo"
17
21
  :pathDefaultLogo="require('@/assets/images/logo.svg')"
18
22
  :pathDarkmodeLogo="require('@/assets/images/logo-darkmode.svg')"
19
23
  />
24
+ <!-- end company-logo --------------------------------------------------------------------------------------------------------------------------------------------------->
20
25
  </template>
21
26
  </CmdSiteHeader>
27
+ <!-- end site-header --------------------------------------------------------------------------------------------------------------------------------------------------->
22
28
  <main>
29
+ <!-- begin width-limitation-wrapper (with table of contents) --------------------------------------------------------------------------------------------------------------------------------------------------->
23
30
  <CmdWidthLimitationWrapper>
24
31
  <div class="flex-container">
25
32
  <ul>
@@ -57,6 +64,8 @@
57
64
  </div>
58
65
  <hr/>
59
66
  </CmdWidthLimitationWrapper>
67
+ <!-- end width-limitation-wrapper (with table of contents) --------------------------------------------------------------------------------------------------------------------------------------------------->
68
+
60
69
  <!-- begin advanced form elements --------------------------------------------------------------------------------------------------------------------------------------------------->
61
70
  <a id="section-advanced-form-elements"></a>
62
71
  <CmdWidthLimitationWrapper>
@@ -637,7 +646,7 @@
637
646
  <CmdInputGroup
638
647
  labelText="Grouplabel for radio-group given by property:"
639
648
  :required="true"
640
- :inputElements="inputGroupRadiobuttonsData"
649
+ :inputElements="idForReplacedInputsInInputGroup('radio-group')"
641
650
  inputTypes="radio"
642
651
  v-model="inputGroupCheckbox"
643
652
  :status="validationStatus"
@@ -652,7 +661,7 @@
652
661
  <h3>Input Group with Checkboxes/Radiobuttons (replaced)</h3>
653
662
  <CmdInputGroup
654
663
  labelText="Grouplabel for radio-group styled as replaced-input-type:"
655
- :inputElements="inputGroupReplacedRadiobuttonsData"
664
+ :inputElements="idForReplacedInputsInInputGroup('replaced-radio-group')"
656
665
  inputTypes="radio"
657
666
  v-model="inputGroupValueReplaceInputTypeRadio"
658
667
  :replaceInputType="true"
@@ -667,7 +676,7 @@
667
676
  </dl>
668
677
  <CmdInputGroup
669
678
  labelText="Grouplabel for checkbox-group styled as replaced-input-type:"
670
- :inputElements="inputGroupReplacedRadiobuttonsData"
679
+ :inputElements="idForReplacedInputsInInputGroup('checkbox-group')"
671
680
  inputTypes="checkbox"
672
681
  v-model="inputGroupValueReplaceInputTypeCheckbox"
673
682
  :replaceInputType="true"
@@ -685,7 +694,7 @@
685
694
  Radiobuttons (toggle-switches)</h3>
686
695
  <CmdInputGroup
687
696
  labelText="Grouplabel for checkbox-group styled as toggle-switches:"
688
- :inputElements="inputGroupRadiobuttonsData"
697
+ :inputElements="idForReplacedInputsInInputGroup('checkbox-group-toggle-switch')"
689
698
  inputTypes="checkbox"
690
699
  v-model="inputGroupValueToggleSwitchCheckbox"
691
700
  :toggleSwitch="true"
@@ -701,7 +710,7 @@
701
710
  </dl>
702
711
  <CmdInputGroup
703
712
  labelText="Grouplabel for radio-group styled as toggle-switches:"
704
- :inputElements="inputGroupToggleSwitchRadiobuttonsData"
713
+ :inputElements="idForReplacedInputsInInputGroup('radio-group-toggle-switch')"
705
714
  inputTypes="radio"
706
715
  v-model="inputGroupValueToggleSwitchRadio"
707
716
  :toggleSwitch="true"
@@ -717,7 +726,7 @@
717
726
  </dl>
718
727
  <CmdInputGroup
719
728
  labelText="Grouplabel for radio-group given by property styled as multiple-switch:"
720
- :inputElements="inputGroupRadiobuttonsData.map(item => ({...item, id: item.id + '-multi', name: item.name + '-multi'}))"
729
+ :inputElements="idForReplacedInputsInInputGroup('radio-group-multiple-switch')"
721
730
  inputTypes="radio"
722
731
  :multipleSwitch="true"
723
732
  v-model="inputGroupValue3"
@@ -774,7 +783,7 @@
774
783
  <a id="section-bank-account-data"></a>
775
784
  <CmdWidthLimitationWrapper>
776
785
  <h2 class="headline-demopage">Bank Account Data</h2>
777
- <CmdBankAccountData :account-data="bankAccountData" :cmd-custom-headline="{ headlineText: 'Bank Account', headlineLevel: 3}" :allow-copy-by-click="true"/>
786
+ <CmdBankAccountData :account-data="bankAccountData" :cmd-headline="{ headlineText: 'Bank Account', headlineLevel: 3}" :allow-copy-by-click="true"/>
778
787
  </CmdWidthLimitationWrapper>
779
788
  <!-- end bank account data ------------------------------------------------------------------------------------------------------------------------------------------------------->
780
789
 
@@ -831,7 +840,7 @@
831
840
  </CmdBox>
832
841
  </div>
833
842
  <div class="grid-small-item">
834
- <CmdBox :useSlots="['header', 'body']" :collapsible="true" :stretchVertically="false">
843
+ <CmdBox :cmdHeadline="{headlineText: 'nase', headlineLevel: 4}" :collapsible="true" :stretchVertically="false">
835
844
  <template v-slot:header>
836
845
  <h3>
837
846
  Collapsible box with image
@@ -981,8 +990,9 @@
981
990
  <h3>Horizontal (aligned right)</h3>
982
991
  <CmdListOfLinks orientation="horizontal" align="right" :links="listOfLinksData"/>
983
992
  </CmdWidthLimitationWrapper>
984
- <!-- end list-of-links ------------------------------------------------------------------------------------------------------------------------------------------------------->
993
+ <!-- end list-of-links ------------------------------------------------------------------------------------------------------------------------------------------------------->
985
994
 
995
+ <!-- begin main-navigation ------------------------------------------------------------------------------------------------------------------------------------------------------->
986
996
  <a id="section-main-navigation"></a>
987
997
  <CmdWidthLimitationWrapper>
988
998
  <h2 class="headline-demopage">Main Navigation</h2>
@@ -991,7 +1001,9 @@
991
1001
  :navigationEntries="navigationData"
992
1002
  />
993
1003
  </CmdWidthLimitationWrapper>
1004
+ <!-- end main-navigation ------------------------------------------------------------------------------------------------------------------------------------------------------->
994
1005
 
1006
+ <!-- begin multistep-form-progress-bar ------------------------------------------------------------------------------------------------------------------------------------------------------->
995
1007
  <a id="section-multistep-form-progress-bar"></a>
996
1008
  <CmdWidthLimitationWrapper>
997
1009
  <h2 class="headline-demopage">Multistepform-Progressbar</h2>
@@ -1001,7 +1013,19 @@
1001
1013
  <p>Page {{ showPageMultistep }}</p>
1002
1014
  </div>
1003
1015
  </CmdWidthLimitationWrapper>
1016
+ <!-- end multistep-form-progress-bar ------------------------------------------------------------------------------------------------------------------------------------------------------->
1004
1017
 
1018
+ <!-- begin newsletter-subscription ------------------------------------------------------------------------------------------------------------------------------------------------------->
1019
+ <a id="section-newsletter-subscription"></a>
1020
+ <CmdWidthLimitationWrapper>
1021
+ <h2 class="headline-demopage">Newsletter Subscription</h2>
1022
+ <CmdForm textLegend="Stay-up-to-date">
1023
+ <CmdNewsletterSubscription v-model="newsletter" buttonType="submit" @buttonClick="submitNewsletterRegistration" />
1024
+ </CmdForm>
1025
+ </CmdWidthLimitationWrapper>
1026
+ <!-- end newsletter-subscription ------------------------------------------------------------------------------------------------------------------------------------------------------->
1027
+
1028
+ <!-- begin pager ------------------------------------------------------------------------------------------------------------------------------------------------------->
1005
1029
  <a id="section-pager"></a>
1006
1030
  <CmdWidthLimitationWrapper>
1007
1031
  <h2 class="headline-demopage">Pager</h2>
@@ -1014,19 +1038,25 @@
1014
1038
  @click="showPagePager = $event"
1015
1039
  />
1016
1040
  </CmdWidthLimitationWrapper>
1041
+ <!-- end pager ------------------------------------------------------------------------------------------------------------------------------------------------------->
1017
1042
 
1043
+ <!-- begin share-buttons ------------------------------------------------------------------------------------------------------------------------------------------------------->
1018
1044
  <a id="section-share-buttons"></a>
1019
1045
  <CmdWidthLimitationWrapper>
1020
1046
  <h2 class="headline-demopage">Share buttons</h2>
1021
1047
  <CmdShareButtons :share-buttons="shareButtonsData"/>
1022
1048
  </CmdWidthLimitationWrapper>
1049
+ <!-- end share-buttons ------------------------------------------------------------------------------------------------------------------------------------------------------->
1023
1050
 
1051
+ <!-- begin slideshow ------------------------------------------------------------------------------------------------------------------------------------------------------->
1024
1052
  <a id="section-slideshow"></a>
1025
1053
  <CmdWidthLimitationWrapper>
1026
1054
  <h2 class="headline-demopage">Slideshow</h2>
1027
1055
  <CmdSlideshow :slideshow-items="slideshowData" :showCounter="true" :autoplay="true"/>
1028
1056
  </CmdWidthLimitationWrapper>
1057
+ <!-- end slideshow ------------------------------------------------------------------------------------------------------------------------------------------------------->
1029
1058
 
1059
+ <!-- begin system-message ------------------------------------------------------------------------------------------------------------------------------------------------------->
1030
1060
  <a id="section-system-message"></a>
1031
1061
  <CmdWidthLimitationWrapper>
1032
1062
  <h2 class="headline-demopage">System Message</h2>
@@ -1058,7 +1088,9 @@
1058
1088
  <p>This is additional text!</p>
1059
1089
  </CmdSystemMessage>
1060
1090
  </CmdWidthLimitationWrapper>
1091
+ <!-- end system-message ------------------------------------------------------------------------------------------------------------------------------------------------------->
1061
1092
 
1093
+ <!-- begin tables ------------------------------------------------------------------------------------------------------------------------------------------------------->
1062
1094
  <a id="section-tables"></a>
1063
1095
  <CmdWidthLimitationWrapper>
1064
1096
  <h2 class="headline-demopage">Tables</h2>
@@ -1069,7 +1101,9 @@
1069
1101
  <h3>Table as wide as possible</h3>
1070
1102
  <CmdTable :collapsible="true" :fullWidthOnDefault="false" :userCanToggleWidth="true" :table-data="tableDataLarge"/>
1071
1103
  </CmdWidthLimitationWrapper>
1104
+ <!-- end tables ------------------------------------------------------------------------------------------------------------------------------------------------------->
1072
1105
 
1106
+ <!-- begin tabs ------------------------------------------------------------------------------------------------------------------------------------------------------->
1073
1107
  <a id="section-tabs"></a>
1074
1108
  <CmdWidthLimitationWrapper>
1075
1109
  <h2 class="headline-demopage">Tabs</h2>
@@ -1094,7 +1128,9 @@
1094
1128
  </template>
1095
1129
  </CmdTabs>
1096
1130
  </CmdWidthLimitationWrapper>
1131
+ <!-- end tabs ------------------------------------------------------------------------------------------------------------------------------------------------------->
1097
1132
 
1133
+ <!-- begin thumbnail-scroller ------------------------------------------------------------------------------------------------------------------------------------------------------->
1098
1134
  <a id="section-thumbnail-scroller"></a>
1099
1135
  <CmdWidthLimitationWrapper>
1100
1136
  <h2 class="headline-demopage">Thumbnail-Scroller</h2>
@@ -1103,7 +1139,9 @@
1103
1139
  <h3>Thumbnail-Scroller stretched to full width</h3>
1104
1140
  <CmdThumbnailScroller :thumbnail-scroller-items="thumbnailScrollerData" :fullWidth="true"/>
1105
1141
  </CmdWidthLimitationWrapper>
1142
+ <!-- end thumbnail-scroller ------------------------------------------------------------------------------------------------------------------------------------------------------->
1106
1143
 
1144
+ <!-- begin tooltip ------------------------------------------------------------------------------------------------------------------------------------------------------->
1107
1145
  <a id="section-tooltip"></a>
1108
1146
  <CmdWidthLimitationWrapper>
1109
1147
  <h2 class="headline-demopage">Tooltip</h2>
@@ -1118,7 +1156,9 @@
1118
1156
  Tooltip for click
1119
1157
  </CmdTooltip>
1120
1158
  </CmdWidthLimitationWrapper>
1159
+ <!-- end tooltip ------------------------------------------------------------------------------------------------------------------------------------------------------->
1121
1160
 
1161
+ <!-- begin upload-form ------------------------------------------------------------------------------------------------------------------------------------------------------->
1122
1162
  <a id="section-upload-form"></a>
1123
1163
  <CmdWidthLimitationWrapper>
1124
1164
  <h2 class="headline-demopage">Upload-Form</h2>
@@ -1140,35 +1180,54 @@
1140
1180
  :uploadOptions="{url: 'http://localhost:8888'}"
1141
1181
  />
1142
1182
  </CmdWidthLimitationWrapper>
1183
+ <!-- end upload-form ------------------------------------------------------------------------------------------------------------------------------------------------------->
1143
1184
  </main>
1144
1185
 
1186
+ <!-- begin site-footer ------------------------------------------------------------------------------------------------------------------------------------------------------->
1145
1187
  <CmdSiteFooter>
1188
+ <!-- begin switch-language ------------------------------------------------------------------------------------------------------------------------------------------------------->
1146
1189
  <CmdSwitchLanguage :languages="languagesData" @click="doSomething"/>
1190
+ <!-- end switch-languager ------------------------------------------------------------------------------------------------------------------------------------------------------->
1191
+
1147
1192
  <div class="flex-container">
1193
+ <!-- begin list-of-links ------------------------------------------------------------------------------------------------------------------------------------------------------->
1148
1194
  <CmdListOfLinks :links="listOfLinksData"
1149
1195
  :cmdHeadline="{headlineText: 'List of links', headlineLevel: 6}"
1150
1196
  />
1197
+ <!-- end list-of-links ------------------------------------------------------------------------------------------------------------------------------------------------------->
1198
+
1199
+ <!-- begin opening-hours ------------------------------------------------------------------------------------------------------------------------------------------------------->
1151
1200
  <CmdOpeningHours :openingHours="openingHoursData"
1152
1201
  :cmdHeadline="{headlineText: 'Opening hours', headlineLevel: 6}"
1153
1202
  textHolidaysClosed="Closed on holidays"
1154
1203
  textMiscInfo="Miscellaneous information"
1155
1204
  :checkInterval="0"
1156
1205
  />
1206
+ <!-- end opening-hours ------------------------------------------------------------------------------------------------------------------------------------------------------->
1207
+
1208
+ <!-- begin address-data ------------------------------------------------------------------------------------------------------------------------------------------------------->
1157
1209
  <CmdAddressData :addressData="addressData"
1158
1210
  :linkGoogleMaps="false"
1159
1211
  :cmdHeadline="{headlineText: 'Address data', headlineLevel: 6}"
1160
1212
  />
1213
+ <!-- end address-data ------------------------------------------------------------------------------------------------------------------------------------------------------->
1161
1214
  </div>
1162
1215
  </CmdSiteFooter>
1216
+ <!-- end site-footer ------------------------------------------------------------------------------------------------------------------------------------------------------->
1163
1217
 
1218
+ <!-- begin copyright-information ------------------------------------------------------------------------------------------------------------------------------------------------------->
1164
1219
  <CmdCopyrightInformation/>
1220
+ <!-- end copyright-information ------------------------------------------------------------------------------------------------------------------------------------------------------->
1165
1221
 
1166
- <CmdFancyBox :show="fancyBoxCookieDisclaimer" :fancyboxOptions="{}" :allowEscapeKey="false">
1222
+ <!-- begin fancy-box ------------------------------------------------------------------------------------------------------------------------------------------------------->
1223
+ <CmdFancyBox :show="fancyBoxCookieDisclaimer" :fancyboxOptions="{}" :allowEscapeKey="false" :cmdHeadline="{show: true, headlineText: 'Cookie Disclaimer', headlineLevel: 2}">
1224
+ <!-- begin cookie-disclaimer ------------------------------------------------------------------------------------------------------------------------------------------------------->
1167
1225
  <CmdCookieDisclaimer :cookieOptions="cookieDisclaimerData"
1168
1226
  buttonLabelAcceptAllCookies="Accept all cookies"
1169
1227
  buttonLabelAcceptCurrentSettings="Accept current settings"
1170
1228
  @closeCookieDisclaimer="closeCookieDisclaimer"
1171
1229
  v-model="acceptedCookies"
1230
+ :cmdHeadlineCookieDisclaimer="{ show: false }"
1172
1231
 
1173
1232
  >
1174
1233
  <template #privacy-text>
@@ -1179,7 +1238,9 @@
1179
1238
  </p>
1180
1239
  </template>
1181
1240
  </CmdCookieDisclaimer>
1241
+ <!-- end cookie-disclaimer ------------------------------------------------------------------------------------------------------------------------------------------------------->
1182
1242
  </CmdFancyBox>
1243
+ <!-- end fancy-box ------------------------------------------------------------------------------------------------------------------------------------------------------->
1183
1244
  </div>
1184
1245
  </template>
1185
1246
 
@@ -1239,6 +1300,7 @@ import CmdLoginForm from "@/components/CmdLoginForm.vue"
1239
1300
  import CmdListOfLinks from "./components/CmdListOfLinks"
1240
1301
  import CmdMainNavigation from "@/components/CmdMainNavigation.vue"
1241
1302
  import CmdMultistepFormProgressBar from "@/components/CmdMultistepFormProgressBar.vue"
1303
+ import CmdNewsletterSubscription from "@/components/CmdNewsletterSubscription.vue"
1242
1304
  import CmdOpeningHours from "@/components/CmdOpeningHours"
1243
1305
  import CmdPager from "@/components/CmdPager.vue"
1244
1306
  import CmdProgressBar from "@/components/CmdProgressBar.vue"
@@ -1288,6 +1350,7 @@ export default {
1288
1350
  CmdLoginForm,
1289
1351
  CmdMainNavigation,
1290
1352
  CmdMultistepFormProgressBar,
1353
+ CmdNewsletterSubscription,
1291
1354
  CmdOpeningHours,
1292
1355
  CmdPager,
1293
1356
  CmdProgressBar,
@@ -1312,6 +1375,10 @@ export default {
1312
1375
  showTooltip: false,
1313
1376
  disabledStatus: undefined,
1314
1377
  validationStatus: "",
1378
+ newsletter: {
1379
+ subscription: "",
1380
+ email: ""
1381
+ },
1315
1382
  inputFieldPattern: "",
1316
1383
  inputSearch: "",
1317
1384
  textarea: "",
@@ -1419,7 +1486,6 @@ export default {
1419
1486
  fakeSelectOptionsWithIconsData,
1420
1487
  listOfLinksData,
1421
1488
  imageGalleryData,
1422
- inputGroupRadiobuttonsData,
1423
1489
  inputGroupReplacedRadiobuttonsData,
1424
1490
  inputGroupToggleSwitchRadiobuttonsData,
1425
1491
  languagesData,
@@ -1439,6 +1505,9 @@ export default {
1439
1505
  localizedTime(language) {
1440
1506
  return (h, m) => (localizedTime(language))(h, m).toLowerCase()
1441
1507
  },
1508
+ idForReplacedInputsInInputGroup(prefix) {
1509
+ return inputGroupRadiobuttonsData.map(item => ({...item, id: prefix + item.id}))
1510
+ },
1442
1511
  closeCookieDisclaimer(event) {
1443
1512
  this.fancyBoxCookieDisclaimer = false
1444
1513
  alert(event.join(", "))
@@ -1456,9 +1525,9 @@ export default {
1456
1525
  },
1457
1526
  showFancyBox(type, content, altText) {
1458
1527
  if (type === 'text') {
1459
- openFancyBox({content: content})
1528
+ openFancyBox({content: content, cmdHeadline: {show: true, headlineText: "Fancybox headline", headlineLevel: 3}})
1460
1529
  } else if (type === 'image') {
1461
- openFancyBox({url: content, altText: altText})
1530
+ openFancyBox({url: content, altText: altText, cmdHeadline: {show: true, headlineText: "Fancybox headline", headlineLevel: 3}})
1462
1531
  }
1463
1532
  },
1464
1533
  getOptionName(option) {
@@ -1469,6 +1538,9 @@ export default {
1469
1538
  }
1470
1539
  return null
1471
1540
  },
1541
+ submitNewsletterRegistration(event) {
1542
+ alert(event.subscription + " " + event.email)
1543
+ },
1472
1544
  doSomething(event) {
1473
1545
  event.preventDefault()
1474
1546
  alert("Language changed!")
@@ -3,6 +3,7 @@
3
3
  "type": "href",
4
4
  "text": "Entry 1",
5
5
  "path": "#",
6
+ "iconClass": "icon-home",
6
7
  "subentries": []
7
8
  },
8
9
  {
@@ -3,6 +3,7 @@
3
3
  "name": "Tab 1",
4
4
  "headlineText": "Tab 1 Headline",
5
5
  "headlineLevel": 4,
6
+ "iconClass": "icon-home",
6
7
  "htmlContent": "<p>Inhalt 1</p>"
7
8
  },
8
9
  {
@@ -3,12 +3,15 @@
3
3
  <div v-if="boxType === 'content'" :class="['cmd-box box content', {open : open, collapsible: collapsible, 'stretch-vertically': stretchVertically}]">
4
4
  <template v-if="useSlots?.includes('header')">
5
5
  <!-- begin collapsible header with slot -->
6
- <a v-if="collapsible" href="#" class="box-header" @click.prevent="toggleContentVisibility" :title="open ? iconOpen.tooltip : iconClosed.tooltip">
6
+ <div v-if="collapsible" class="box-header">
7
7
  <!-- begin slot 'header' -->
8
8
  <slot name="header"></slot>
9
9
  <!-- end slot 'header' -->
10
- <span class="toggle-icon" :class="[open ? iconOpen.iconClass : iconClosed.iconClass]"></span>
11
- </a>
10
+
11
+ <a href="#" @click.prevent="toggleContentVisibility" :title="open ? iconOpen.tooltip : iconClosed.tooltip" class="toggle-icon">
12
+ <span :class="[open ? iconOpen.iconClass : iconClosed.iconClass]"></span>
13
+ </a>
14
+ </div>
12
15
  <!-- end collapsible header with slot -->
13
16
 
14
17
  <!-- begin default header with slot -->
@@ -298,6 +301,12 @@ export default {
298
301
  margin-bottom: 0;
299
302
  }
300
303
 
304
+ &.collapsible {
305
+ .box-header {
306
+ justify-content: space-between;
307
+ }
308
+ }
309
+
301
310
  .box-body {
302
311
  padding: var(--default-padding);
303
312
  }
@@ -311,10 +320,6 @@ export default {
311
320
  > *:last-child {
312
321
  margin-bottom: 0;
313
322
  }
314
-
315
- &:not(.open) {
316
- justify-content: flex-start;
317
- }
318
323
  }
319
324
 
320
325
  > .box-header, > a {
@@ -71,9 +71,10 @@
71
71
  <span v-else>{{ getMessage("cmdsitesearch.show_filter_options") }}</span>
72
72
  </a>
73
73
  <transition name="fade">
74
- <div v-if="showFilters && cmdFakeSelect?.selectData.length" class="flex-container no-flex" aria-expanded="true">
74
+ <div v-if="showFilters && cmdFakeSelect?.selectData.length" class="flex-container no-flex" role="listbox" aria-expanded="true">
75
75
  <!-- begin CmdFakeSelect -->
76
76
  <CmdFakeSelect
77
+ role="option"
77
78
  :selectData="cmdFakeSelect?.selectData"
78
79
  v-model="searchFilters"
79
80
  :defaultOptionName="cmdFakeSelect?.defaultOptionName"
@@ -4,7 +4,6 @@
4
4
  <!-- begin CmdHeadline -->
5
5
  <CmdHeadline
6
6
  v-if="cmdHeadlineCookieDisclaimer?.show && cmdHeadlineCookieDisclaimer?.headlineText && cmdHeadlineCookieDisclaimer?.headlineLevel"
7
- v-bind="cmdHeadlineCookieDisclaimer"
8
7
  :headlineText="cmdHeadlineCookieDisclaimer.headlineText"
9
8
  :headlineLevel="cmdHeadlineCookieDisclaimer.headlineLevel"
10
9
  />
@@ -14,11 +13,18 @@
14
13
  <slot name="cookie-options">
15
14
  <!-- begin required cookies -->
16
15
  <div v-if="cookieOptions?.required" class="flex-container vertical">
17
- <CmdHeadline v-if="cmdBoxRequiredCookies?.showHeadline" :headline-text="cmdBoxRequiredCookies?.headlineText" :headline-level="cmdBoxRequiredCookies?.headlineLevel "/>
16
+ <!-- begin CmdHeadline -->
17
+ <CmdHeadline
18
+ v-if="cmdBoxRequiredCookies?.showHeadline"
19
+ :headline-text="cmdBoxRequiredCookies?.headlineText"
20
+ :headline-level="cmdBoxRequiredCookies?.headlineLevel "
21
+ />
22
+ <!-- end CmdHeadline -->
23
+
18
24
  <!-- begin CmdBox -->
19
25
  <CmdBox v-for="(cookie, index) in cookieOptions.required.cookies || []"
20
26
  :useSlots="['header', 'body']"
21
- v-bind="cmdBoxRequiredCookies"
27
+ :collapsible="cmdBoxRequiredCookies?.collapsible"
22
28
  :key="index"
23
29
  >
24
30
  <template v-slot:header>
@@ -57,11 +63,18 @@
57
63
 
58
64
  <!-- begin optional cookies -->
59
65
  <div v-if="cookieOptions?.optional" class="flex-container vertical">
60
- <CmdHeadline v-if="cmdBoxOptionalCookies?.showHeadline" :headline-text="cmdBoxOptionalCookies?.headlineText" :headline-level="cmdBoxOptionalCookies?.headlineLevel "/>
66
+ <!-- begin CmdHeadline -->
67
+ <CmdHeadline
68
+ v-if="cmdBoxOptionalCookies?.showHeadline"
69
+ :headline-text="cmdBoxOptionalCookies?.headlineText"
70
+ :headline-level="cmdBoxOptionalCookies?.headlineLevel
71
+ "/>
72
+ <!-- end CmdHeadline -->
73
+
61
74
  <!-- begin CmdBox -->
62
75
  <CmdBox v-for="(cookie, index) in cookieOptions.optional.cookies || []"
63
76
  :useSlots="['header', 'body']"
64
- v-bind="cmdBoxOptionalCookies"
77
+ :collapsible="cmdBoxOptionalCookies?.collapsible"
65
78
  :key="index"
66
79
  >
67
80
  <template v-slot:header>
@@ -172,7 +185,7 @@ export default {
172
185
  showHeadline: true,
173
186
  headlineText: "Required cookies",
174
187
  headlineLevel: 3
175
- }
188
+ }
176
189
  }
177
190
  },
178
191
  /**
@@ -10,14 +10,15 @@
10
10
  }
11
11
  ]"
12
12
  :title="$attrs.title"
13
- :aria-labelledby="labelId"
13
+ role="listbox"
14
+ :aria-labelledby="htmlId"
14
15
  :aria-required="$attrs.required !== undefined"
15
16
  ref="fakeselect"
16
17
  >
17
18
  <template v-if="showLabel">
18
19
  <!-- begin label -->
19
- <span class="label-text" :id="labelId">
20
- <span>{{ labelText }}<sup v-if="$attrs.required !== undefined">*</sup></span>
20
+ <span class="label-text">
21
+ <span :id="htmlId">{{ labelText }}<sup v-if="$attrs.required !== undefined">*</sup></span>
21
22
 
22
23
  <!-- begin CmdTooltipForInputElements -->
23
24
  <CmdTooltipForInputElements
@@ -25,9 +26,9 @@
25
26
  ref="tooltip"
26
27
  :validationStatus="validationStatus"
27
28
  :validationMessage="getValidationMessage"
28
- :validationTooltip="validationTooltip"
29
29
  :relatedId="tooltipId"
30
30
  :cmdListOfRequirements="listOfRequirements"
31
+ :role="validationStatus === 'error' ? 'alert' : 'dialog'"
31
32
  />
32
33
  <!-- end CmdTooltipForInputElements -->
33
34
 
@@ -36,10 +37,9 @@
36
37
  @click.prevent
37
38
  :class="getStatusIconClass"
38
39
  :title="!useCustomTooltip ? getValidationMessage : ''"
39
- :aria-errormessage="getValidationMessage"
40
+ :aria-errormessage="tooltipId"
40
41
  aria-live="assertive"
41
- :id="tooltipId"
42
- :role="validationStatus === 'error' ? 'alert' : 'dialog'">
42
+ :id="tooltipId">
43
43
  </a>
44
44
  </span>
45
45
  <!-- end label -->
@@ -119,14 +119,12 @@
119
119
  </template>
120
120
 
121
121
  <script>
122
- // import utils
123
- import {createUuid} from "../utils/common.js"
124
-
125
122
  // import mixins
126
123
  import I18n from "../mixins/I18n"
127
124
  import DefaultMessageProperties from "../mixins/CmdFakeSelect/DefaultMessageProperties"
128
- import FieldValidation from "../mixins/FieldValidation.js"
129
- import Tooltip from "../mixins/Tooltip.js"
125
+ import FieldValidation from "../mixins/FieldValidation"
126
+ import Identifier from "../mixins/Identifier"
127
+ import Tooltip from "../mixins/Tooltip"
130
128
 
131
129
  // import components
132
130
  import CmdTooltipForInputElements from "./CmdTooltipForInputElements"
@@ -138,6 +136,7 @@ export default {
138
136
  I18n,
139
137
  DefaultMessageProperties,
140
138
  FieldValidation,
139
+ Identifier,
141
140
  Tooltip
142
141
  ],
143
142
  components: {
@@ -311,13 +310,6 @@ export default {
311
310
  },
312
311
  selectAllOptionsIcon() {
313
312
  return "icon-check"
314
- },
315
- // get ID for accessibility
316
- labelId() {
317
- if (this.$attrs.id !== undefined) {
318
- return this.$attrs.id
319
- }
320
- return "label-" + createUuid()
321
313
  }
322
314
  },
323
315
  mounted() {