comand-component-library 3.1.88 → 3.1.91

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) 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 +88 -17
  5. package/src/assets/data/main-navigation.json +1 -0
  6. package/src/assets/data/opening-hours.json +1 -1
  7. package/src/assets/data/tabs.json +1 -0
  8. package/src/assets/styles/global-styles.scss +6 -0
  9. package/src/components/CmdBankAccountData.vue +3 -2
  10. package/src/components/CmdBox.vue +12 -7
  11. package/src/components/CmdBoxSiteSearch.vue +2 -1
  12. package/src/components/CmdCookieDisclaimer.vue +19 -6
  13. package/src/components/CmdFakeSelect.vue +11 -19
  14. package/src/components/CmdFancyBox.vue +46 -13
  15. package/src/components/CmdFormElement.vue +17 -29
  16. package/src/components/CmdImageGallery.vue +2 -2
  17. package/src/components/CmdInputGroup.vue +9 -16
  18. package/src/components/CmdLoginForm.vue +1 -1
  19. package/src/components/CmdMainNavigation.vue +30 -48
  20. package/src/components/CmdMultipleSwitch.vue +4 -12
  21. package/src/components/CmdNewsletterSubscription.vue +199 -0
  22. package/src/components/CmdOpeningHours.vue +31 -7
  23. package/src/components/CmdShareButtons.vue +100 -27
  24. package/src/components/CmdSiteHeader.vue +2 -1
  25. package/src/components/CmdSystemMessage.vue +6 -0
  26. package/src/components/CmdTabs.vue +9 -6
  27. package/src/components/CmdThumbnailScroller.vue +9 -1
  28. package/src/components/CmdTooltip.vue +1 -1
  29. package/src/components/CmdWidthLimitationWrapper.vue +2 -2
  30. package/src/directives/scrollPadding.js +6 -0
  31. package/src/documentation/generated/CmdFancyBoxPropertyDescriptions.json +10 -0
  32. package/src/documentation/generated/CmdFormElementPropertyDescriptions.json +0 -5
  33. package/src/documentation/generated/CmdNewsletterSubscriptionPropertyDescriptions.json +42 -0
  34. package/src/documentation/generated/CmdOpeningHoursPropertyDescriptions.json +5 -0
  35. package/src/documentation/generated/CmdShareButtonsPropertyDescriptions.json +24 -0
  36. package/src/main.js +3 -1
  37. package/src/mixins/CmdThumbnailScroller/DefaultMessageProperties.js +9 -0
  38. package/src/mixins/FieldValidation.js +10 -3
  39. package/src/mixins/I18n.js +3 -2
  40. package/src/mixins/Identifier.js +28 -0
  41. package/src/utils/common.js +5 -1
@@ -1,4 +1,9 @@
1
1
  {
2
+ "modelValue": {
3
+ "comments": [
4
+ "set default v-model (must be named modelValue in Vue3)"
5
+ ]
6
+ },
2
7
  "align": {
3
8
  "comments": [
4
9
  "set horizontal alignment"
@@ -30,5 +35,24 @@
30
35
  "comments": [
31
36
  "activate if page to share is not given by json-data"
32
37
  ]
38
+ },
39
+ "userMustAcceptDataPrivacy": {
40
+ "comments": [
41
+ "toggle if user has to accept that anonymous data will be send while sharing"
42
+ ]
43
+ },
44
+ "tooltipAcceptDataPrivacy": {
45
+ "comments": [
46
+ "tooltip shown on hovering disabled buttons",
47
+ "",
48
+ "userMustAcceptDataPrivacy-property must be activated"
49
+ ]
50
+ },
51
+ "cmdFormElement": {
52
+ "comments": [
53
+ "properties for cmdFormElement",
54
+ "",
55
+ "userMustAcceptDataPrivacy-property must be activated"
56
+ ]
33
57
  }
34
58
  }
package/src/main.js CHANGED
@@ -23,6 +23,8 @@ import "clickout-event"
23
23
  import directiveTelephone from "./directives/telephone"
24
24
  // directive to set focus on specific form-elements
25
25
  import directiveFocus from "./directives/focus"
26
+ // directive to set scroll-padding to place anchors correctly below sticky header
27
+ import directiveScrollPadding from "./directives/scrollPadding"
26
28
 
27
29
  /* begin imports css from comand-component-library ---------------------------------------------------------------------------------------- */
28
30
  /* import additional iconfont containing company-logos */
@@ -58,4 +60,4 @@ import router from "./router"
58
60
  // })
59
61
 
60
62
  // createApp(App).use(router).directive('telephone', directiveTelephone).directive('focus', directiveFocus).mount('#app')
61
- createApp(App).use(router).directive('telephone', directiveTelephone).directive('focus', directiveFocus).mount('#app')
63
+ createApp(App).use(router).directive('telephone', directiveTelephone).directive('focus', directiveFocus).directive('scrollPadding', directiveScrollPadding).mount('#app')
@@ -0,0 +1,9 @@
1
+ export default {
2
+ data() {
3
+ return {
4
+ defaultMessageProperties: {
5
+ "cmdthumbnailscroller.tooltip.open_large_image": "Open large image"
6
+ }
7
+ }
8
+ }
9
+ }
@@ -210,12 +210,12 @@ export default {
210
210
  inputRequirements() {
211
211
  const standardRequirements = []
212
212
  // check if field is required
213
- if(this.$attrs.required || this.required) {
214
- const inputRequired = this.required
213
+ if(this.$attrs.required || (Object.hasOwn(this, "required") && this.required)) {
214
+ const inputRequired = Object.hasOwn(this, "required") ? this.required : this.$attrs.required
215
215
  standardRequirements.push({
216
216
  message: this.getRequirementMessage(),
217
217
  valid(value, attributes) {
218
- return (!attributes.required && !inputRequired) || value.length > 0
218
+ return (!attributes.required && !inputRequired) || (value != null && String(value).length > 0)
219
219
  }
220
220
  })
221
221
  }
@@ -249,6 +249,13 @@ export default {
249
249
  getRequirementMessage() {
250
250
  return this.getMessage("cmdfieldvalidation.required_field_is_filled")
251
251
  }
252
+ },
253
+ watch: {
254
+ validationStatus: {
255
+ handler() {
256
+ this.$emit("validation-status-change", this.validationStatus)
257
+ }
258
+ }
252
259
  }
253
260
  }
254
261
 
@@ -53,10 +53,11 @@ export default {
53
53
  return message
54
54
  },
55
55
  getDefaultMessageProperty(key) {
56
- if (this.defaultMessageProperties && this.defaultMessageProperties[key]) {
56
+ if (Object.hasOwn(this, "defaultMessageProperties") && this.defaultMessageProperties && this.defaultMessageProperties[key]) {
57
57
  return this.defaultMessageProperties[key]
58
58
  }
59
- const propertyKey = Object.keys(this).find(p => p.slice(-24) === "DefaultMessageProperties")
59
+ //const propertyKey = Object.keys(this).find(p => p.slice(-24) === "DefaultMessageProperties")
60
+ const propertyKey = Object.hasOwn(this, "fieldValidationDefaultMessageProperties") ? "fieldValidationDefaultMessageProperties" : null
60
61
  if (propertyKey && this[propertyKey]?.[key]) {
61
62
  return this[propertyKey][key]
62
63
  }
@@ -0,0 +1,28 @@
1
+ // import utils
2
+ import {createHtmlId} from "@/utils/common";
3
+
4
+ export default {
5
+ props: {
6
+ /**
7
+ * use as unique id if generated it should not be used
8
+ */
9
+ id: {
10
+ type: String,
11
+ required: false
12
+ }
13
+ },
14
+ computed: {
15
+ htmlId() {
16
+ return this.id || createHtmlId()
17
+ }
18
+ },
19
+ methods: {
20
+ buildHtmlId(...params) {
21
+ return params
22
+ .map(param => {
23
+ return param.replace(/\s/g, "")
24
+ })
25
+ .join("")
26
+ }
27
+ }
28
+ }
@@ -12,4 +12,8 @@ function createUuid(){
12
12
  })
13
13
  }
14
14
 
15
- export {isFrameMode, createUuid}
15
+ function createHtmlId() {
16
+ return "cmd-" + createUuid()
17
+ }
18
+
19
+ export {isFrameMode, createUuid, createHtmlId}