comand-component-library 3.1.88 → 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 (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
@@ -0,0 +1,199 @@
1
+ <template>
2
+ <!-- begin cmd-input-group -->
3
+ <CmdInputGroup
4
+ inputTypes="radio"
5
+ :labelText="cmdInputGroup.labelText"
6
+ :showLabel="cmdInputGroup.showLabel"
7
+ :inputElements="cmdInputGroup.inputElements"
8
+ v-model="subscription"
9
+ />
10
+ <!-- end cmd-input-group -->
11
+
12
+ <!-- begin cmd-form-element -->
13
+ <CmdFormElement
14
+ element="input"
15
+ type="email"
16
+ :placeholder="cmdFormElementEmail.placeholder"
17
+ :labelText="cmdFormElementEmail.labelText"
18
+ id="cmd-email-newsletter-subscription"
19
+ :required="cmdFormElementEmail.required"
20
+ :useCustomTooltip="cmdFormElementEmail.useCustomTooltip"
21
+ v-model="email"
22
+ @validationStatusChange="checkValidationStatus"
23
+ />
24
+ <!-- end cmd-form-element -->
25
+
26
+ <div class="button-wrapper">
27
+ <!-- begin cmd-form-element -->
28
+ <CmdFormElement
29
+ element="button"
30
+ :type="buttonType"
31
+ :disabled="buttonDisabled"
32
+ :nativeButton="cmdFormElementSubmit"
33
+ @click="sendData"
34
+ />
35
+ <!-- end cmd-form-element -->
36
+ </div>
37
+ </template>
38
+
39
+ <script>
40
+ // import components
41
+ import CmdFormElement from "./CmdFormElement"
42
+ import CmdInputGroup from "./CmdInputGroup"
43
+
44
+ export default {
45
+ name: "CmdNewsletterSubscription",
46
+ emits: ["button-click"],
47
+ components: {
48
+ CmdFormElement,
49
+ CmdInputGroup
50
+ },
51
+ data() {
52
+ return {
53
+ buttonDisabled: true
54
+ }
55
+ },
56
+ props: {
57
+ /**
58
+ * set value for v-model (must be named modelValue in vue3 if default v-model should be used)
59
+ */
60
+ modelValue: {
61
+ type: Object,
62
+ default() {
63
+ return {
64
+ subscription: "subscribe",
65
+ email: ""
66
+ }
67
+ }
68
+ },
69
+ buttonType: {
70
+ type: String,
71
+ default: "button",
72
+ validator(value) {
73
+ return value === "submit" || value === "button"
74
+ }
75
+ },
76
+ /**
77
+ * text used as legend for login-fieldset
78
+ *
79
+ * @requiredForAccessibility: true
80
+ */
81
+ textLegend: {
82
+ type: String,
83
+ default: "Stay up-to-date"
84
+ },
85
+ /**
86
+ * toggle legend visibility
87
+ */
88
+ showLegend: {
89
+ type: Boolean,
90
+ default: true
91
+ },
92
+ /**
93
+ * properties for CmdInputGroup-component
94
+ */
95
+ cmdInputGroup: {
96
+ type: Object,
97
+ default: function () {
98
+ return {
99
+ labelText: "Choose option",
100
+ showLabel: false,
101
+ inputElements: [
102
+ {
103
+ labelText: "Subscribe",
104
+ id: "radio-subscribe",
105
+ name: "cmd-subscribe-group",
106
+ value: "subscribe"
107
+ },
108
+ {
109
+ labelText: "Unsubscribe",
110
+ id: "radio-unsubscribe",
111
+ name: "cmd-subscribe-group",
112
+ value: "unsubscribe"
113
+ }
114
+ ]
115
+ }
116
+ }
117
+ },
118
+ /**
119
+ * properties for CmdFormElement-component for email-field
120
+ */
121
+ cmdFormElementEmail: {
122
+ type: Object,
123
+ default: function () {
124
+ return {
125
+ labelText: "Email-Address:",
126
+ placeholder: "Enter your email-address",
127
+ required: true
128
+ }
129
+ }
130
+ },
131
+ /**
132
+ * properties for CmdFormElement-component for submit-button
133
+ */
134
+ cmdFormElementSubmit: {
135
+ type: Object,
136
+ default: function () {
137
+ return {
138
+ text: "Submit",
139
+ icon: {
140
+ show: true,
141
+ iconClass: "icon-message-send",
142
+ position: "before",
143
+ tooltip: ""
144
+ }
145
+ }
146
+ }
147
+ }
148
+ },
149
+ computed: {
150
+ subscription: {
151
+ get() {
152
+ return this.modelValue.subscription || "subscribe"
153
+ },
154
+ set(value) {
155
+ this.$emit("update:modelValue", {subscription: value, email: this.email})
156
+ }
157
+ },
158
+ email: {
159
+ get() {
160
+ return this.modelValue.email
161
+ },
162
+ set(value) {
163
+ this.$emit("update:modelValue", {subscription: this.subscription, email: value})
164
+ }
165
+ }
166
+ },
167
+ methods: {
168
+ sendData(event) {
169
+ this.$emit("button-click", {subscription: this.subscription, email: this.email, originalEvent: event})
170
+ },
171
+ checkValidationStatus(event) {
172
+ this.buttonDisabled = event !== "success"
173
+ }
174
+ }
175
+ }
176
+ </script>
177
+
178
+ <style lang="scss">
179
+ /* begin cmd-back-to-top-button ---------------------------------------------------------------------------------------- */
180
+ .cmd-back-to-top-button {
181
+ padding: var(--default-padding);
182
+ display: inline-block;
183
+ position: fixed;
184
+ right: 1rem;
185
+ bottom: 1rem;
186
+ text-decoration: none;
187
+ z-index: 1000;
188
+ border: var(--default-border);
189
+ background: var(--color-scheme-background-color);
190
+ border-radius: var(--full-circle);
191
+
192
+ &:hover, &:active, &:focus {
193
+ border-color: var(--primary-color);
194
+ transition: var(--default-transition);
195
+ }
196
+ }
197
+
198
+ /* cmd-back-to-top-button ------------------------------------------------------------------------------------------ */
199
+ </style>
@@ -147,12 +147,28 @@ export default {
147
147
  componentHandlesClosedStatus: {
148
148
  type: Boolean,
149
149
  default: true
150
+ },
151
+ /**
152
+ * set the interval (in milliseconds) when the open-/closed-status should be checked (and updated)
153
+ */
154
+ checkInterval: {
155
+ type: Number,
156
+ default: 5000
150
157
  }
151
158
  },
152
- created() {
153
- setInterval(function () {
154
- this.isClosed()
155
- }, 5000)
159
+ mounted() {
160
+ if(this.componentHandlesClosedStatus && this.checkInterval > 0) {
161
+ // create new property on component by 'this.property-name' and assign value (id) from setInterval (so it can be cleared in unmount)
162
+ this.$_CmdOpeningHours_intervalId = setInterval(() => {
163
+ // use arrow-function to assure that 'this' is the component
164
+ this.currentTime = new Date()
165
+ }, this.checkInterval)
166
+ }
167
+ },
168
+ data() {
169
+ return {
170
+ currentTime: new Date()
171
+ }
156
172
  },
157
173
  computed: {
158
174
  textOpenClosed() {
@@ -183,8 +199,7 @@ export default {
183
199
  return this.closed
184
200
  }
185
201
 
186
- const currentDate = new Date()
187
- let currentDay = currentDate.getDay()
202
+ let currentDay = this.currentTime.getDay()
188
203
 
189
204
  // fix order and check if currentDay equals 0 === sunday. Data are expected to start with monday
190
205
  if (currentDay === 0){
@@ -202,7 +217,7 @@ export default {
202
217
  const openingHoursTill = new Date()
203
218
  openingHoursTill.setHours(openingHours.tillTime.hours, openingHours.tillTime.mins)
204
219
 
205
- if (openingHoursFrom <= currentDate && currentDate <= openingHoursTill) {
220
+ if (openingHoursFrom <= this.currentTime && this.currentTime <= openingHoursTill) {
206
221
  return false
207
222
  }
208
223
  }
@@ -216,6 +231,15 @@ export default {
216
231
  }
217
232
  return timeFormatting(":", " hrs", "", false)(time.hours, time.mins)
218
233
  }
234
+ },
235
+ beforeUnmount() {
236
+ if(this.$_CmdOpeningHours_intervalId) {
237
+ // remove interval
238
+ clearInterval(this.$_CmdOpeningHours_intervalId)
239
+
240
+ // clear interval-id
241
+ this.$_CmdOpeningHours_intervalId = null
242
+ }
219
243
  }
220
244
  }
221
245
  </script>
@@ -1,21 +1,51 @@
1
1
  <template>
2
- <div :class="['cmd-share-buttons',{'stretch': stretchButtons, 'align-right': align === 'right'}]">
3
- <a v-for="shareButton in validShareButtons"
4
- :key="shareButton.path" class="button"
5
- :id="shareButton.id"
6
- :href="getUrl(shareButton)"
7
- target="_blank"
8
- :title="shareButton.tooltip">
9
- <span v-if="shareButton.iconClass" :class="shareButton.iconClass"></span>
10
- <span v-if="shareButton.linkText">{{ shareButton.linkText }}</span>
11
- </a>
2
+ <div :class="['cmd-share-buttons', {'stretch': stretchButtons, 'align-right': align === 'right'}]">
3
+ <CmdFormElement
4
+ v-if="userMustAcceptDataPrivacy"
5
+ element="input"
6
+ type="checkbox"
7
+ :toggle-switch="cmdFormElement.toggleSwitch"
8
+ :labelText="cmdFormElement.labelText"
9
+ :required="cmdFormElement.required"
10
+ v-model="dataPrivacyAccepted"
11
+ />
12
+ <div class="share-button-wrapper">
13
+ <a v-for="shareButton in validShareButtons"
14
+ :key="shareButton.path" :class="['button', {disabled: userMustAcceptDataPrivacy && !dataPrivacyAccepted}]"
15
+ :id="shareButton.id"
16
+ :href="getUrl(shareButton)"
17
+ target="_blank"
18
+ :title="tooltip(shareButton.tooltip)">
19
+ <span v-if="shareButton.iconClass && shareButton.iconPosition !== 'right'" :class="shareButton.iconClass"></span>
20
+ <span v-if="shareButton.linkText">{{ shareButton.linkText }}</span>
21
+ <span v-if="shareButton.iconClass && shareButton.iconPosition === 'right'" :class="shareButton.iconClass"></span>
22
+ </a>
23
+ </div>
12
24
  </div>
13
25
  </template>
14
26
 
15
27
  <script>
28
+ // import components
29
+ import CmdFormElement from "./CmdFormElement"
30
+
16
31
  export default {
17
32
  name: "CmdShareButtons",
33
+ components: {
34
+ CmdFormElement
35
+ },
36
+ data() {
37
+ return {
38
+ dataPrivacyAccepted: false
39
+ }
40
+ },
18
41
  props: {
42
+ /**
43
+ * set default v-model (must be named modelValue in Vue3)
44
+ */
45
+ modelValue: {
46
+ type: [String, Number, Array],
47
+ default: ""
48
+ },
19
49
  /**
20
50
  * set horizontal alignment
21
51
  *
@@ -54,6 +84,37 @@ export default {
54
84
  appendPage: {
55
85
  type: Boolean,
56
86
  default: true
87
+ },
88
+ /**
89
+ * toggle if user has to accept that anonymous data will be send while sharing
90
+ */
91
+ userMustAcceptDataPrivacy: {
92
+ type: Boolean,
93
+ default: true
94
+ },
95
+ /**
96
+ * tooltip shown on hovering disabled buttons
97
+ *
98
+ * userMustAcceptDataPrivacy-property must be activated
99
+ */
100
+ tooltipAcceptDataPrivacy: {
101
+ type: String,
102
+ default: "You must accept data privacy conditions!"
103
+ },
104
+ /**
105
+ * properties for cmdFormElement
106
+ *
107
+ * userMustAcceptDataPrivacy-property must be activated
108
+ */
109
+ cmdFormElement: {
110
+ type: Object,
111
+ default() {
112
+ return {
113
+ toggleSwitch: true,
114
+ labelText: "I accept that anonymous data will be send to the platform I share this page on!",
115
+ required: true
116
+ }
117
+ }
57
118
  }
58
119
  },
59
120
  computed: {
@@ -63,19 +124,28 @@ export default {
63
124
  },
64
125
  methods: {
65
126
  getUrl(shareButton) {
66
- // if path is not given completely by json-data
67
- if(this.appendPage) {
68
- // if page to share is given by property
69
- if (this.page) {
70
- return shareButton.path + encodeURIComponent(this.page)
127
+ if(this.userMustAcceptDataPrivacy && this.dataPrivacyAccepted) {
128
+ // if path is not given completely by json-data
129
+ if (this.appendPage) {
130
+ // if page to share is given by property
131
+ if (this.page) {
132
+ return shareButton.path + encodeURIComponent(this.page)
133
+ }
134
+
135
+ // if current page should be append to url
136
+ return shareButton.path + encodeURIComponent(location.href)
71
137
  }
72
138
 
73
- // if current page should be append to url
74
- return shareButton.path + encodeURIComponent(location.href)
139
+ // if path is given completely by json-data
140
+ return shareButton.path
75
141
  }
76
-
77
- // if path is given completely by json-data
78
- return shareButton.path
142
+ return null
143
+ },
144
+ tooltip(tooltip) {
145
+ if(this.userMustAcceptDataPrivacy && this.dataPrivacyAccepted) {
146
+ return tooltip
147
+ }
148
+ return this.tooltipAcceptDataPrivacy
79
149
  }
80
150
  }
81
151
  }
@@ -87,10 +157,19 @@ export default {
87
157
 
88
158
  .cmd-share-buttons {
89
159
  display: flex;
160
+ flex-direction: column;
90
161
  gap: var(--default-gap);
91
162
 
92
163
  &.align-right {
93
- justify-content: flex-end;
164
+ .share-button-wrapper {
165
+ justify-content: flex-end;
166
+ }
167
+ }
168
+
169
+ &.stretch {
170
+ .button {
171
+ flex: 1;
172
+ }
94
173
  }
95
174
 
96
175
  .button {
@@ -101,12 +180,6 @@ export default {
101
180
  }
102
181
  }
103
182
 
104
- &.stretch {
105
- .button {
106
- flex: 1;
107
- }
108
- }
109
-
110
183
  a:last-of-type {
111
184
  margin-right: 0;
112
185
  }
@@ -100,7 +100,8 @@ export default {
100
100
  }
101
101
  }
102
102
 
103
- > .cmd-main-navigation:last-child {
103
+ // use id to ensure high specificity
104
+ > .cmd-main-navigation#main-navigation-wrapper:last-child {
104
105
  border-bottom: 0;
105
106
  }
106
107
 
@@ -4,6 +4,7 @@
4
4
  v-if="showSystemMessage"
5
5
  :class="['cmd-system-message', 'system-message', 'flex-container', 'vertical', { 'full-width': fullWidth }, validationStatus]"
6
6
  :role="validationStatus === 'error' ? 'alert' : 'dialog'"
7
+ :aria-labelledby="htmlId"
7
8
  >
8
9
  <!-- begin close-icon -->
9
10
  <a
@@ -21,6 +22,7 @@
21
22
  :iconClass="iconMessage.iconClass"
22
23
  :headlineText="systemMessage"
23
24
  :headlineLevel="messageHeadlineLevel"
25
+ :id="htmlId"
24
26
  />
25
27
  <!-- end cmd-headline -->
26
28
 
@@ -32,11 +34,15 @@
32
34
  </template>
33
35
 
34
36
  <script>
37
+ // import mixins
38
+ import Identifier from "../mixins/Identifier"
39
+
35
40
  // import components
36
41
  import CmdHeadline from "./CmdHeadline"
37
42
 
38
43
  export default {
39
44
  name: "CmdSystemMessage",
45
+ mixins: [Identifier],
40
46
  components: {
41
47
  CmdHeadline
42
48
  },
@@ -3,11 +3,12 @@
3
3
  <ul :class="{'stretch-tabs' : stretchTabs}" role="tablist">
4
4
  <li :class="{active : showTab === index}" v-for="(tab, index) in tabs" :key="index" role="tab">
5
5
  <a @click.prevent="setActiveTab(index)" :title="!tab.name ? tab.tooltip : false">
6
- <span v-if="tab.iconClass">{{ tab.iconClass }}</span>
6
+ <span v-if="tab.iconClass" :class="tab.iconClass"></span>
7
7
  <span v-if="tab.name">{{ tab.name }}</span>
8
8
  </a>
9
9
  </li>
10
10
  </ul>
11
+ <!-- begin slot -->
11
12
  <template v-if="useSlot">
12
13
  <div v-show="showTab === index - 1" v-for="index in tabs.length" :key="index" aria-live="assertive">
13
14
  <!-- begin slot-content -->
@@ -15,10 +16,12 @@
15
16
  <!-- end slot-content -->
16
17
  </div>
17
18
  </template>
19
+ <!-- end slot -->
18
20
  <div v-else aria-live="assertive">
19
21
  <!-- begin CmdHeadline -->
20
22
  <CmdHeadline
21
- v-bind="CmdHeadline"
23
+ v-if="cmdHeadline"
24
+ v-bind="cmdHeadline"
22
25
  :headlineText="tabs[showTab].headlineText"
23
26
  :headlineLevel="tabs[showTab].headlineLevel"
24
27
  />
@@ -105,21 +108,21 @@ export default {
105
108
  > li {
106
109
  z-index: 10;
107
110
  margin-left: 0;
108
- border-bottom: 0;
109
111
  border-top-left-radius: var(--border-radius);
110
112
  border-top-right-radius: var(--border-radius);
111
113
  list-style-type: none;
112
114
  background: var(--color-scheme-background-color);
113
115
  border: var(--default-border);
116
+ border-bottom: 0;
114
117
 
115
118
  &.active {
116
- border-bottom: 0;
117
119
  border-color: var(--primary-color);
118
- top: .1rem;
119
120
  }
120
121
 
121
122
  a {
122
- display: block;
123
+ display: flex;
124
+ align-items: center;
125
+ justify-content: center;
123
126
  padding: var(--default-padding);
124
127
  color: var(--color-scheme-text-color);
125
128
  border-top-left-radius: var(--border-radius);
@@ -10,7 +10,7 @@
10
10
  <!-- begin list of images to slide -->
11
11
  <transition-group name="slide" tag="ul">
12
12
  <li v-for="(image, index) in thumbnails" :key="image.imgId" :class="{'active' : imgIndex === index}">
13
- <a href="#" @click.prevent="showFancyBox(index)">
13
+ <a href="#" @click.prevent="showFancyBox(index)" :title="getMessage('cmdthumbnailscroller.tooltip.open_large_image')">
14
14
  <figure>
15
15
  <figcaption v-if="figcaption.show && figcaption.position === 'above-image' && image.figcaption.length">{{ image.figcaption }}</figcaption>
16
16
  <img :src="image.srcImageSmall" :alt="image.alt"/>
@@ -31,6 +31,10 @@
31
31
  </template>
32
32
 
33
33
  <script>
34
+ // import mixins
35
+ import I18n from "../mixins/I18n"
36
+ import DefaultMessageProperties from "../mixins/CmdThumbnailScroller/DefaultMessageProperties"
37
+
34
38
  // import components
35
39
  import CmdSlideButton from "./CmdSlideButton.vue"
36
40
 
@@ -42,6 +46,10 @@ export default {
42
46
  components: {
43
47
  CmdSlideButton
44
48
  },
49
+ mixins: [
50
+ I18n,
51
+ DefaultMessageProperties
52
+ ],
45
53
  data() {
46
54
  return {
47
55
  thumbnails: []
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div v-if="tooltipVisibility" :class="['cmd-tooltip', status]" ref="tooltip" aria-role="tooltip">
2
+ <div v-if="tooltipVisibility" :class="['cmd-tooltip', status]" ref="tooltip">
3
3
  <div v-if="cmdHeadline || iconClose.show" class="headline-wrapper">
4
4
  <!-- begin CmdHeadline -->
5
5
  <CmdHeadline
@@ -1,11 +1,11 @@
1
1
  <template>
2
2
  <div class="cmd-width-limitation-wrapper" :class="{'sticky': sticky}">
3
- <component v-if="innerWrapper" :is="innerComponent" :class="setInnerClass">
3
+ <section v-if="innerWrapper" :class="setInnerClass">
4
4
  <a v-if="anchorId" :id="anchorId"></a>
5
5
  <!-- begin slot-content -->
6
6
  <slot></slot>
7
7
  <!-- end slot-content -->
8
- </component>
8
+ </section>
9
9
  <template v-else>
10
10
  <!-- begin slot-content -->
11
11
  <a v-if="anchorId" :id="anchorId"></a>
@@ -0,0 +1,6 @@
1
+ export default {
2
+ mounted(el) {
3
+ const heightHeader = el.outerHeight
4
+ document.documentElement.style.scrollPaddingTop = (heightHeader / 10) + "rem"
5
+ }
6
+ }
@@ -58,5 +58,15 @@
58
58
  "true"
59
59
  ]
60
60
  }
61
+ },
62
+ "cmdHeadline": {
63
+ "comments": [
64
+ "properties for CmdHeadline-component"
65
+ ],
66
+ "annotations": {
67
+ "requiredForAccessibility": [
68
+ "true"
69
+ ]
70
+ }
61
71
  }
62
72
  }
@@ -95,11 +95,6 @@
95
95
  "may not be named as 'class' because it is a reserved keyword in JavaScript"
96
96
  ]
97
97
  },
98
- "id": {
99
- "comments": [
100
- "if for native form-element"
101
- ]
102
- },
103
98
  "datalist": {
104
99
  "comments": [
105
100
  "set if a native datalist should be used"
@@ -0,0 +1,42 @@
1
+ {
2
+ "modelValue": {
3
+ "comments": [
4
+ "set value for v-model (must be named modelValue in vue3 if default v-model should be used)"
5
+ ]
6
+ },
7
+ "buttonType": {
8
+ "comments": [
9
+ "set value for v-model (must be named modelValue in vue3 if default v-model should be used)"
10
+ ]
11
+ },
12
+ "textLegend": {
13
+ "comments": [
14
+ "text used as legend for login-fieldset"
15
+ ],
16
+ "annotations": {
17
+ "requiredForAccessibility": [
18
+ "true"
19
+ ]
20
+ }
21
+ },
22
+ "showLegend": {
23
+ "comments": [
24
+ "toggle legend visibility"
25
+ ]
26
+ },
27
+ "cmdInputGroup": {
28
+ "comments": [
29
+ "properties for CmdInputGroup-component"
30
+ ]
31
+ },
32
+ "cmdFormElementEmail": {
33
+ "comments": [
34
+ "properties for CmdFormElement-component for email-field"
35
+ ]
36
+ },
37
+ "cmdFormElementSubmit": {
38
+ "comments": [
39
+ "properties for CmdFormElement-component for submit-button"
40
+ ]
41
+ }
42
+ }
@@ -53,5 +53,10 @@
53
53
  "comments": [
54
54
  "activate if component should update open-/closed-status on its own"
55
55
  ]
56
+ },
57
+ "checkInterval": {
58
+ "comments": [
59
+ "set the interval (in milliseconds) when the open-/closed-status should be checked (and updated)"
60
+ ]
56
61
  }
57
62
  }