comand-component-library 3.1.90 → 3.1.91

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.
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() {